Archive for the 'Living With Software' Category

Artificial Intelligence and Joke Telling Robotic Androids

We know that humans bond in many ways. Often while sharing a common event of adversity in which they over come something. Sometimes thru laughter, jest or a humorous event? What if we could program artificial intelligent robotic androids to seek out anomalous events and spin them into jokes and display a sense of humor? This might help humans bond with their android assistants?

Some say this is impossible to program into an artificial intelligent machine? Impossible is a funny word, as 200 years ago someone might say that an artificial intelligent robot was impossible, but I do not think anyone is saying this now. I have to ask those programmers; How do you propose to bond an android robot if you cannot achieve this? And we all know that a very pleasurable bonding tool happens thru jokes, laughter and humor.

This will be a challenge for future robotic artificial intelligent programmers, personally I am not accepting their work until they get there and believe we must hold their feet to the fire until they do. We should not accept mediocrity in programming and must challenge our up and coming, often boastful programmers to put up or shut up.

To say “Humor is a sophisticated human trait” indeed, but Dolphins, monkeys and dogs do it. Surely we can design this too. I cannot allow the excuse of difficulty to shun such a responsibility of course and ask that you refrain from making excuses for programmers of artificial intelligence, we must have high expectations than this, we need humor from our robots. Consider this in 2006.

Lance Winslow - EzineArticles Expert Author

“Lance Winslow” - Online Think Tank forum board. If you have innovative thoughts and unique perspectives, come think with Lance; http://www.WorldThinkTank.net/wttbbs/

written by adminPermalinkComments OffLeave a Comment »

Hear It in Digits

Music downloads are off the charts! We’re listening to digital music in the digital era.

The driving force behind the phenonmena is the technonolgy called MP3.
This is the technology that has changed the music industry.
MP3 is an acronym for Motion Pictures Expert Group Audio Layer III. MPEG is the standard for audio or video compression that makes any files smaller with no loss of quality.
The standards were set in 1992 by the Industry Standards Organisation, beginning with MPEG-1 which was used primarily for video compression.

MPEG-2 which uses higher bandwith for both audio and video compression has found suitable uses in DVD technology.
MPEG Layer III or MP3 involves only audio compression.
MP3 technology was developed by a German company Fraunhofer-Gesellschaft, who now licenses the patent rights to the multitude of companies that now use the technology common in your MP3 players.

There are several alternatives to the Ipod that all use the same MP3 technology.
The Ipod uses flash storage which means there are no moving parts
One prominent name that is often mentioned as the father of MP3 is Karlheinz Brandeburg, a math and electronics specialist who led Franuanhofer research team. Brandeburg cites that the project almost died when in 1991 , when the encoding procedure did not function during tests.

Luckily for us, MP3 is alive and kicking and is seen by many to be the area of concentration in digitising sound.

A Precusor to todays popular MP3 players is the Win Amp, develop when Two university students, Justin Frankel and Dmirtry Boldev attached an Advanced Multimedia Products player to Windows operating system, creating the WinAmp.

The WinAmp is till alive an operational in a much improved form today.

The MP3 technology has opened up can of worms with file sharing, which appears to pose a real challenge to the recording industry Due to the ease of transmission, and the fact that there is no loss in transmission, illegal distribution of copyrighted material is easy and inexpensive and so the culture of piracy flourishes.

Mp3 is changing the world of audio works, in particular the CD distribution and there is now some spillover into DVD arena, The challenge to the music and movie industry is to determine the threshold for respecting copyrights while utilising the technology.
There are not yet, any easy solutions, as there are laws and treaties that allow the duplication of copyrighted material for private use. Several cases have arisen around the issue of privacy.

Public discussion continues with the development of more sophisticated systems for file sharing. There are now sites numbering in the hundreds of thousands that list music that be can be downloaded with a single click.

The legality is still in question There have been convictions for listing and offering MP3 files. The Liability of Internet Service Providers has also

been brought under the spotlight. Napster has re-emerged, but the popularity and effectiveness may be questionable.

The internet has brought us into untravelled territory, and there is most likely to be different and improved related uses of services using MP3 in

the future. Perhaps more litigation can be expected as the technology gets more sophisticated, the question of legal control becomes a more serious issue…

A new culture has emerged around the phenom of the Ipod which is fuelled bt the technology called MP3
No one yet owns the internet, and as new technoloy emerges, there is usually a period of discovery, where a blend of usage and legality blend with the ethics.
We are not there yet,however we urge all to come along for the ride, for we are just beginning…
The arena of digital audio and video is seen by many to be the wave of the future so enjoy it.

to get some of the best values in digital players, amd MP3, check us out at http://www.eConsumershop.com

Dale Davidson is the publisher of an on-line newsletter “Deal_news”
that provides free info, products and
services to on-line consumers.
With an extensive background in electronics, and membership
in the IEEE, ASME among others, the newsletter provides
regular info on consumer electronics products.
Can be reached via email or visit website:
http://www.eConsumershop.com

written by adminPermalinkComments OffLeave a Comment »

The End of Spyware?

The US House of Representatives has recently passed the “Spy Act” - or to give it its full title - the Securely Protect Yourself Against Cyber Trespass Act. This aims to prevent software companies from installing spyware on users PCs without their knowledge, and anyone found guilty of breaching the act faces a fine of up to $3 million.

Does this mean the end of spyware as we know it? Unfortunately the answer is no, not really. The problem is that most spyware can continue to operate in exactly the same way as it does now, by asking the computer user to agree to a licence before it installs itself. The majority of people who are faced with a lengthy legal-looking page of text when installing a new program, automatically click the “I Agree” option without reading the terms. Therefore spyware programs can quite legally continue to piggy-back their way onto PCs.

Add to this the fact that a large percentage of spyware originates from outside the US, and it quickly becomes clear that the Spy Act realistically has about as much chance of success as the Can-Spam act did in attempting to stop the deluge of junk email that arrives in our mailboxes every day.

Spyware can be a lucrative business for advertisers and software vendors, and with the average home PC already carrying around 26 spyware and adware programs, it’s a problem that looks set to become worse before it gets better. In time, additional international laws may reduce the problem, but for the present at least, every PC user should keep up-to-date anti-spyware software running on their machine.

About The Author

Grant Rogers is an independent computer security consultant. You can find more information on anti-spyware and adware software at http://www.spyware-adware.info

written by adminPermalinkComments OffLeave a Comment »

Customer Relationship Management - A Brief Look At What It Is

Small business/large business management and success is largely dependent upon customer acquisition, customer relationship enhancements, and customer retention, otherwise known as Customer Relationship Management, or CRM.

CRM is a combination of enterprise strategies, business processes and information technologies that are used to learn about customers’ needs and behaviors in order to develop stronger relationships with them.

In the not-too-far past, CRM mainly consisted of a roll-a-deck index file and a telephone and answer machine. An enhanced CRM system would have included an Excel spreadsheet.

Today the Net offers businesses many software applications that simplifies and speeds up the 3 cornered processes of customer acquisition, relationship enhancements and retention. CRM software systems streamline CRM at each phase.

CRM systems generally consist of a contact manager program, snail mail and/or email marketing campaigns, a sales tracking program, and a voice mail system or a multi-media contact center.

On the downside, CRM systems are only as good as the information it contains. The old programmer’s motto “garbage in, garbage out” applies to CRM data quality.

One of the most common reasons cited for high failure rate of CRM systems is poor data quality, but this is easily avoided.

Make rules for creating new profiles. Double check data entries so that duplicates are avoided, email addresses are correct and that the data is inputted completely and correctly and isn’t out of date. Re-establish customer contact if their info isn’t correct or complete or is out of date….the extra contact can’t hurt and will make them feel special.

All aspects of CRM are now available on the Net. Some big name packaged CRM systems are ACT!, Goldmine, and Epiphany. You can do a Google search for more packaged CRM systems.

If you are looking for free CRM software, try Open Office, a free replacement for MS-Office with some enhancements. Or go to FreeCRM.com

Packaged CRM systems or free systems might meet the needs of a small business, but large businesses generally require a custom-built, integrated CRM system.

What will using CRM do for your business? Besides streamlining all the functions of running a business and saving tons of time, basically, it will make your customers feel special by understanding their needs and fulfilling those needs in a personal manner, which will keep them coming back for more.

Your alternative? Don’t use CRM and lose 50% of your customers every 5 years. Can you afford to do that?

Cynthia Macy has been a self-employed entrepreneur/consultant for 26 years and has found the software CRM systems to be time-saving and labor-saving and money-enhancing.

To learn more about CRM, please visit:
http://www.featureblog.com/blogs/customerrelationshipmanagementsite/

written by adminPermalinkComments OffLeave a Comment »

What is a Good Program Spec?

“Whenever you see a ratio of 1:4 analysts:programmers you will find systems analysis being performed at the wrong time and by the wrong person.”
- Bryce’s Law

INTRODUCTION

Since the industry is preoccupied with producing software faster
(and not necessarily better), let’s stop and consider how we typically approach programming and allow me to put my spin on it. There are fundamentally three aspects to any program development effort: defining the program’s specifications, designing and writing the program itself, and testing it. The software engineering gurus in the industry are primarily concerned with the internal design of the program, but there
is now a raft of consultants trying to determine the best way to
approach the program externally. Why? Because there is now many ways for producing software than just writing source code using a common text editor; e.g., visual programming aids/prototyping tools, workbenches, 4GL’s, program generators, etc. Such tools take the need for writing precise source code out of the hands of the programmers and allows them to concentrate on basic screen and report layout. They are excellent tools for most programming assignments, but they cannot do 100% of all of the programming for all applications. We still require
professional software developers with an intimate knowledge of programming languages and design techniques. Regardless if we write a program by hand, or use some sort of interpreter/generator, we still need to provide the programmer with precise specifications in order to perform their work.

Seldom do companies make use of a uniform approach for producing program specifications. It is not uncommon for programmers to receive specs in obscure ways, such as a memo from an end-user (the back of a cocktail napkin is my personal favorite). Rarely are specifications given in a consistent manner that can be evaluated for completeness. A standard approach would improve productivity and communications within the programming staff alone.

What should a good program spec include? Actually, its not too
difficult to figure out…

ELEMENTS OF A PROGRAM SPECIFICATION

Each program should be defined in terms of:

  1. Input Descriptions (to collect data or request an output) - be it implemented by a GUI, command line interface, verbal, optical, or through some other screen interface. All inputs should include:

    a. Name, alternate ID, program label, description.

    b. Defined layout and examples.

    c. Input transaction specifications, including default values and editing rules for data to be collected.

    d. Messages; e.g., data validation, and general processing.

    e. Panels (for screens).

    f. Relationship of inputs to outputs.

  2. Output Descriptions (to retrieve data) - be it implemented by a GUI, printed report, audio/video, or through some other screen interface. All outputs should include:

    a. Name, alternate ID, program label, description.

    b. Defined layout and examples.

    c. Panels (for screens), maps (for reports).

    d. Messages; e.g., general processing and program specific information/warning/error messages.

  3. Data Structure Descriptions (data bases, files, records, and data elements).

    NOTE: Programmers should NOT be in the business of designing
    data bases as they will only do what is convenient for their
    application, not others (thereby missing the opportunity for a
    company to share and re-use data). Physical files should be defined by Data Base Administrators.

    a. All data structures should include: Name, alternate ID, program label, description. They should also include…

    b. Data Bases - organization, key(s), labels, volume/size, backup requirements, internal structure.

    c. Files (both primary and working) - organization, key(s), labels, volume/size, backup requirements, internal structure, file-to-file relationships.

    d. Records - form, length, key(s), contents, record-to-record relationships.

    e. Data Elements - class, justification, fill character, void state, mode, picture, label, size, precision, scale, validation rules. If generated data, rules for calculation. If group data, rules for assignment.

  4. Program Description:

    a. Name, alternate ID, program label, description.

    b. Characteristics: Required processing speed, memory requirements.

    c. Dependencies to other programs externally (e.g., batch job stream).

    d. Dependencies to modules internally (e.g., DLLs, subroutines, etc.)

    e. Functions to be performed with Inputs, Outputs, and Data Structures (create/update/reference).

    f. Special processing rules (logic for processing)

    g. Command language required to execute the program (e.g., command files, JCL, etc.)

    h. Physical environment where program will be executed.

    i. Test Plan and how to assemble test data.

    j. Method of implementation - programming language(s) to be used, design techniques to be observed, tools to be used.

In-house software engineering standards complements any program specification (and should provide guidelines for writing the specification). Such standards define “best practices” for design and conventions to be observed during programming. As an aside, the objective of software engineering should be: Maintainability (easy to correct and update), Performance, Design Correctness (proof), International support (to accommodate languages and cultures), Integration (sharing and re-using code), and Portability (platform independence).

Between the programming spec as listed above and a good set of programming standards, it becomes rather easy to implement any program, be it by hand or through the use of a generator. As a matter of policy, specifications should be written under the assumption that a program generator will be used. This forces us to be more precise in our specifications.

OKAY, SO HOW DO WE GET THERE?

When it comes to assembling a program spec, I am of the philosophy that “You eat elephants one spoonful at a time.” It is difficult to gather the specs for a single program in one fell swoop. Plus, when we consider most development projects today involve more than one program, the problem is further complicated. For major development efforts, I am of the opinion that “layers” of documentation are required. For example, under “PRIDE-ISEM, we view a system as a collection of sub-systems (business processes), implemented by procedures (administrative and computer), administrative procedures consist of operational steps (tasks), and computer procedures consist of programs (which can be sub-divided into modules if so desired).

Basically, “PRIDE” views a system as a product that can be engineered and manufactured like any other product. From this viewpoint, we can make use of other engineering techniques, such as a top-down blueprinting approach to documentation where levels of abstraction define the different levels in the system hierarchy. For example, the Phase 1 Information Requirements contained in the “System Study & Evaluation Manual” define what system(s) are needed (either new or existing systems requiring modification); the Phase 2 “System Design Manual” includes specifies the sub-systems; the Phase 3 “Sub-System Design Manual” specifies the procedures
in the business process; the Phase 4-I “Administrative Procedure Manual” specifies the operational steps, and; the Phase 4-II “Computer Run Book” specifies the programs. This blueprinting approach allows us to progressively refine our specifications until we reach the bottom of the product structure. In other words, it is not necessary to define everything about an Input, Output, File, or Data Element all at once, but rather to initially identify the need for them, then progressively refine the details until we are ready to program.

This approach to documentation is sometimes referred to as “step-wise refinement” whereby the design of a structure, such as a product or building, is refined over various levels of abstraction. Only when we have completed these architectural
designs can the product move to manufacturing/building. Imagine trying to build an automobile or skyscraper without such a technique. It would be virtually impossible. Why should systems be any different? In order for this approach to
work, you must accept the concepts: a system is a product; that there are various levels of abstraction to it, and; there are standards for documenting each level. This is considerably different than a “forms driven” approach to development;
e.g., fill out forms in a regimented sequence without any thought in regard to the design of the system. Instead, documentation should be a natural by-product of the design process.

This also makes a clear delineation in terms of “types” of specifications; for example “information requirements” and “programming specs” are miles apart in terms of content and purpose. Whereas the former is a specification regarding the business needs of the user, the latter is a technical specification
for the programmer to implement.

This blueprinting approach also highlights the need for basic systems work in the earlier phases of design, with the programmers being the beneficiaries of more precise specifications (as opposed to vague concepts), thereby
simplifying their job.

CONCLUSION

So, what is a good program spec? Anything that eliminates the guesswork for the programmer. Consider this: if the up-front system design work was done right, programming should be less than 15% of the entire development process. Then why does it currently command 85% of our overall time (and financial resources)? Primarily because we have shifted our focus and no longer believe we are being productive unless we are
programming. After all, programming is perhaps the most visible evidence of our work effort; system design is less tangible.

Let me illustrate, back in 1976 I took an entry level COBOL training course from IBM in Cincinnati. Our class was divided into teams of three people and each team was given problems to solve. When we received an assignment, the other two programmers in my team immediately started to write code,
key their entries (Yes, we used keypunch equipment back then), then compiled the program. Inevitably, there were errors and they would go back-and-forth correcting errors until they finally got it right. As for me, when I got an assignment, I would pull out a plastic template and paper, and work out the logic of the program before writing the code. I would then key and compile, and would always complete the assignment before my partners. Curiosity got the better of me and I asked them, “Why do you do it that way?” They contended this was how they were expected to work by their superiors; that they weren’t being productive unless they were producing code. I countered that even though they were faster at producing code, I was still beating them every time, simply because I was thinking the problem through.

The IBM rep who registered me for the class happened to stop by and asked me if I was learning anything. I said I was learning more about “programmers” than I was about “programming.” I am still learning about programmers, but I haven’t noticed any significant changes in their attitudes
towards development since then. True, we now have some great tools to expedite programming. But if they are so good, why doesn’t our backlog diminish? Why are we constantly in a maintenance mode? Why can we never seem to complete our major applications on time? Why? Because we are no longer doing the up-front work.

Just remember, it is always “Ready, Aim, Fire” - any other sequence is simply counterproductive.

Tim Bryce is the Managing Director of M. Bryce & Associates (MBA)
of Palm Harbor, Florida, a management consulting firm specializing in Information Resource Management (IRM). Mr. Bryce has over 30 years of experience in the field. He is available for training and consulting on an international basis. His corporate web page is at:
http://www.phmainstreet.com/mba/

He can be contacted at: timb001@phmainstreet.com

Copyright © 2006 MBA. All rights reserved.

written by adminPermalinkComments OffLeave a Comment »

Choosing The Right Accounting Software

For over 20 years I have been involved in writing accounting software and in training users on how to use both my own and other leading accounting software packages. Their knowledge when I met them for the first time ranged from being qualified accountants to those that had never even switched a computer on – let alone run an accounting software package.

Please understand that there are thousands and thousands of different accounting packages available in the world today and no single article can cover them all.

Is your accounting software suitable for your business?

I have seen time and time again businesses that have bought a package that has been recommended by a particular software vendor or a friend or by an accountant that just can’t do the job properly.

Think about what you have bought and if it is not suitable cut your losses now. The cost to change later on is going to be far greater. You will either stick to the unsuitable package because you don’t have the time or inclination to set up yet another package or, here we go again to set up another new package later on with all of the learning curve, data input etc all over again.

I have seen companies that have changed their accounting package two or three times in as many years. What an incredible waste of time, effort and money.

If you haven’t bought a package yet make a list of your business’s requirements and make sure that the software seller actually shows you how to perform these tasks easily. If you don’t understand ask again and again.

If you work in an industry where you have requirements that are outside the normal then speak to others in your industry, see what they are using.

There are a whole lot of software companies out there that specialize in accounting software that meets the specific requirements of this or that industry.

Remember one thing in choosing your accounting software if nothing else – You can probably buy an off the shelf package from your local computer store for a few hundred dollars, whereas specialist packages probably start at a few thousand. If the few hundred dollar package is not right for your business you have wasted your money. However much you spend – invest it wisely. This initial cost is just the beginning. The software needs to do a good job for you over many years.

Most specific requirements for your business will be on the customer invoicing side. Some of the common questions that people have had in my experience are –

• I have this or that discounting or pricing structure does the package handle this situation. Even the need to show two discounts at the same time. Will the software handle this or will I have to change the way I do things.

• I sell a product that has multiple sizes per product as in the timber and glass reseller markets – can the invoice list the different tally list on one line.

• I sometimes sell the product in a bulk pack, sometimes as a single unit. Does the software cope with this as a single product or do I have to set up a several similar, but individual, products in order to invoice and to show on the invoice as I want.

The list goes on. One thing that you need to understand is that many of the software vendors out there want, or need, you to buy their package. It doesn’t really matter after the sale if it was best for you or just best for them.

Also be absolutely sure that if you aren’t absolutely sure about what you want and need it will be even harder for someone else to understand what you want and need. Sit down quietly and make a list of all the things you need. Don’t rely on being able to come up with it all when you are under pressure looking at a software demonstration.

I have had the experience of selling software and then after installation finding that the business has a specific requirement that is paramount to their business and no one thought of mentioning it. Don’t just assume that accounting software does everything. Find out.

Don’t just take the salespersons word for it. See it happen on their demonstration and understand it. Sit at the keyboard, if necessary, and drive it yourself.

If the way they work around your situation is long winded and awkward maybe you should look somewhere else. If it is too complicated for them to set it up during the demo make sure that you talk to several of their existing clients, preferably in allied industries to you, who have been with that software supplier for some time and are still happy.

There are those around that can tailor software to your specific requirements. BEWARE – this is sometimes a costly exercise at best and very often a recipe for disaster.

Be wary of using a package recommended by your accountant solely on the basis that it works in with their package, and thus reduces the work they have to do, to do your tax. Consider whose interests are being served best. Choose a package that will work efficiently for your businesses best interests 365 days a year and not your accountant’s best interests for only a couple or so weeks a year.

Understand what you are buying and how it is going to benefit your business. Understand that the software needs to work around your business and not your business around the software.

Be wary of packages written overseas – do they cater for all of your tax and accounting requirements and, most important, do they have a good support network in your country. What will happen if there are legislative changes, tax law changes and the list goes on.

If you are going on the recommendation of a friend or business collegue make sure that their business and requirements are similar to yours. Businesses and software packages are not all equal. Because it works for them doesn’t mean it will work for you.

There are countless numbers of accounting packages now available with each claiming to have a unique advantage or benefit over the others.

Be careful in your choice – it can be very easy to make an extremely costly mistake.

I run several websites that specialize in various subjects including http://www.diyaccounts.com.au that gives advice on all aspects of accounting software from choosing, setting up and using it. This article is copyright. It can be reproduced but must not be changed or have sections deleted, including this section at the end.

Other sites are http://www.sense-now.com that helps newbies understand different types of internet businesses, which ones could work for them and which probably won’t. http://www.oumas.com.au is all about arts, crafts, cooking, wine and beer making and so on hobbies

written by adminPermalinkComments OffLeave a Comment »

Applicant Tracking Systems - Time in a Bottle

Applicant tracking systems are either an human resource manager best friend or worst enemy. Either a company’s applicant tracking systems identify the best prospects BEFORE they join another company or not. Effective applicant tracking systems like time in a bottle enable HR managers to interview the best candidates. Ineffective applicant tracking systems cause a “bottleneck” that lets excellent job candidates slip through the system.

Hosted Solution - Applicant Tracking Systems
Applicant tracking systems and hosted solutions are a logical combination. While a company may install, debug, upgrade and program its own applicant tracking systems, the question is why? For companies in a niche employment market, it may make sense because the cost per employee of their applicant tracking systems is low. For example, a company reviewing say twenty resumes per hire. The cost of missing the one in a thousand employee of course is HUGE. Hosted applicant tracking systems are more likely to uncover the one in a thousand employee as well better average workers than as company’s own applicant tracking systems.

Search & Data Mining - Applicant Tracking Systems
A day late and a dollar short in the HR department can cost a company dearly. In some companies, just a few people review job applicants. Then there are holding companies in which many people mine the HR database for positions with related divisions in the group. The economy of scale offered by the joint applicant tracking systems reduces the overall employee acquisition cost for individual companies and the holding group.

Interview Sharing - Applicant Tracking Systems
How many employees are hired without a job interview at your company? Not many, that’s for sure. Effective applicant tracking systems recycle good job applicants back to the company’s database with added comments for other managers to review. Their comments may disqualify the applicant for a position, saving time spent and an additional needless interview. On the other hand, the comments may uncover the perfect candidate in a hard to fill position before they find a job with a different company.

Employee Satisfaction - Applicant Tracking Systems
Sometimes it seems companies are insensitive to potential employees. The hiring process is stressful for job seekers shuffled from person to person, concerned by salary and job benefits. Effective applicant tracking systems accelerate the hiring process and promote long term employee satisfaction. Also, happy employees refer their friends saving time and money in the long run.

RedMatch is a leader provider of www.redmatch.com/“>applicant tracking systems for companies seeking a hosted solution or installed www.redmatch.com/“>applicant tracking systems. For more information, visit www.redmatch.com/“> RedMatch.

written by adminPermalinkComments OffLeave a Comment »

Offshore Outsourcing: Unpatriotic Evil or Entrepreneurial Necessity?

Look at your shoes. Where do you think they were made? Probably not in Ohio.
Look at your TV. Look in… your mirror! Probably all of these items were made
overseas, but we don’t associate them with being “outsourced.” Why is it then, when
I was developing my website Adcandy.com, I had to constantly apologize for having
my development work done overseas?

Friends and acquaintances would all cringe when I told them I was having the site
developed in India. The conservatives ones felt I was being unpatriotic and hurting
the
economy. Liberals felt I was being exploitative and hurting the
economy. But the bottom line is, I’m not rich (yet) and I couldn’t have gotten my
company off the ground without outsourcing the work to an offshore company.

Now, I’m a patriotic and liberal person. (Yes, not only conservatives are patriotic….)
How did I rationalize my decision? Simple. I just thought about what would happen
when my company took off. I would have to hire local people for many of my tasks.
I would need an office. I would pay more taxes and so would my employees. Plus,
the ideas generated on my website would help U.S. companies with both product
development and marketing effectiveness.

How could that be bad for the economy?

Now, I don’t think the government should buy foreign-made cars or weapons, but
the difference between them and us is that they have A LOT more money than us,
and all of it came from you and me in the first place.

They say you can tell a lot about a person by their shoes. Take a look at your own.
If they say “Made in The USA” anywhere on them then I guess I’m wrong. Otherwise,
get over it, and try to get the best price and quality you can for web development… wherever that may be.

Per Hoffman is the founder of Adcandy, the world’s first “virtual” ad agency in which
everyone is a member. Any consumer can submit their advertising and product
improvement ideas or participate in ad challenges through its unique portal:
http://www.adcandy.com

written by adminPermalinkComments OffLeave a Comment »

Five Reasons for Using an O/R Mapping Tool

So, why should you use any O/R mapping tool? I am not talking about a specific tool but rather all O/R mapping tools in general. There are a number of reasons for using an O/R mapping tool but before I dive into that, let me give you a brief overview of what an O/R mapping tool really is.

An O/R mapping tool generates persistence objects for your .NET application. It is a modeling and code generation tool that connects to your database and reads its schema, then lets you map objects to database tables and views, specify single-row insert, update, load, and delete operations, queries and stored procedure calls, as methods to these objects. And, it also lets you define one-to-one, one-to-many, many-to-one, and many-to-many relationships between objects based on relationships between tables in the database. It then generates fully working persistence objects code for you.

There are many other features that a good O/R mapping tool provides but I’m keeping my description brief so I can talk more about the benefits.

Reason 1: Cuts down your development time

First benefit of an O/R mapping tool is that it saves you a ton of development time (20% to 50% time depending on your situation). Now, O/R mapping tool is not generating any “rocket science” code for you and you could definitely do it manually if you wanted. But, this is a lot of tedious work and you would definitely be happier if you didn’t have to do it yourself. Let’s do some simple math.

A typical application with 15-20 database tables has 30-50 objects (including domain and factory objects) and this is roughly 5000 to 10,000 lines of code. It is likely to take you a few weeks to a couple of months to develop and test this code. And, if your application has more tables than this (which many do), then just multiple the above numbers by that much.

On the other hand, an O/R Mapping tool would generate this code for you in a day or two. Even here, you need these 1-2 days primarily to determine your object mappings to the database. The actual code generation is instantaneous. So, your time saving is tremendous.

Reason 2: Produces better designed code

Second benefit of an O/R mapping tool is that it lets you produce better designed code than doing it yourself by-hand. I know what you’re thinking. You think you can do a better job than an O/R mapping tool because you write every aspect of your code. Some of you definitely can but not everyone. Consider this. An average development team has different levels of expertise and experience and not everybody is a good designer. As a result, they may not follow design patterns in their code and end up with a lesser quality code. And, if multiple developers are writing code, their code is very likely going to be inconsistent with each other. And, inconsistency itself is a big source of poor quality in an application’s code.

On the other hand, a good O/R mapping tool uses code templates that have excellent design because they are very likely designed and created by very senior (architect level) engineers. And, these code templates almost always follow known design patterns. So, the code that you’ll generate from an O/R mapping tool is very likely going to be better designed than code designed by your own development team.

Reason 3: You don’t have to be a .NET expert

Third benefit of using an O/R mapping tool is that you don’t have to be a .NET expert to develop your persistence code. As you know, data access code is critical for the overall performance of your application. If this code is designed and developed poorly, it can severely affect your application. So, if you developed this code by hand, you need to be an export of .NET, COM+, stateless components, and MTS.

However, if you use an O/R mapping tool, you can focus primarily on the “logical design” of your persistence objects including object mapping and the different types of interactions with the database including insert, update, load, delete, queries, stored procedure calls, relationships, and more. And, the O/R mapping tool would do the rest for it. It would ensure that the generated code follows all the best practices of writing stateless .NET components to run in COM+ and MTS.

Reason 4: Saves you testing time

Fourth benefit of an O/R mapping tool is that it reduces your testing effort dramatically. If you developed all the persistence code by hand, you would also be responsible for testing it yourself. And, as you know, testing is as much effort as development in any project.

On the other hand, if you generated code from an O/R mapping tool, it is coming from code templates that are very likely thoroughly tested by the software vendor itself (more so than you because it is their primary focus). And, on top of it, most likely hundreds or perhaps thousands of other customers are using this tool and have tested the code generated from this O/R mapping tool. As a result, many of the bugs that you might not find in your own testing have already been found and fixed in the generated code of an O/R mapping tool.

Reason 5: Simplifies your .NET development

If you have to write all the persistence code yourself, you’re bogged down into the details of ADO.NET, COM+, MTS, stateless .NET components, and more. And, you end up spending a lot of time in details that you really don’t need to. On the other hand, if you generate code from an O/R mapping tool, you get well design objects and you only need to deal with their public interface.

Below is an example of code you’ll write if you used an O/R mapping tool.

try {

Employees objInfo = new Employees();

EmployeesFactory objFactory = new EmployeesFactory();

objInfo.EmployeeID = EmployeeID;

objFactory.Load(objInfo);

// code here to use the “objInfo” object
}
catch(Exception ex) {

// code here to handle the exception

return;
}

As you can see, the generated code is very simple to use than actually writing the .NET components yourself.

Many people have never heard of O/R mapping tools and many more have heard of them but are afraid to use them. I hope I have made a strong enough case here for you to give a serious consideration to O/R mapping for your project.

Iqbal Khan is the Director of Sales & Marketing at AlachiSoft (http://www.alachisoft.com/), a leading provider of O/R Mapping tool called TierDeveloper. You can reach him at iqbal@alachisoft.com.

written by adminPermalinkComments OffLeave a Comment »

Log File UNIX Commands

One of the biggest parts of my job is managing website log files. Our business is very “marketing-centric”, so missing log file data isn’t expectable. There have been a few situations were log files have been split or broken. Below are three nice little commands which have helped tremendously.

Removes all log files with no data
find /home/httpd/logs -size 0 -type f -print0 | xargs -0 rm –f
This is a simple little command which helps keep things neat and organized. Once files rotate I’ve found a bunch of empty files on the folder. This really confuses some of the marketing people.

Converts log files extention into logical month.
for i in `dir /home/httpd/logs/*-access_log.1|sed s/\.1$//`; do mv $i.1 $i.feb; done
A little more complicated. Again, the overall goal here is to make the log files more friendly for marketing people connecting into the FTP server. I am converting the *.1 extension file created by the log rotate into *.month. I use this single line to change the extension on 300+ files. Works fantastic!

Combines log files with extentions .1.1 -> .1 and creates a new logical month.
for i in `dir /home/httpd/logs/*-access_log.1|sed s/\.1$//`; do cat $i.1.1 $i.1 >$i.mar; done
Here is the big daddy. One month because of a mistake the log files rotated mid-month. This would have been a nightmare to manually concatenate each file. This script above takes the files and combines them. Try to do this in windows!

For the most part I’ve learned to hate access logs. They are a big, always changes, difficult to backup, and from a technical perspective somewhat useless. These little few commands above however make life a little easier.

Atlas-Tuesday - Log File UNIX Commands

written by adminPermalinkComments OffLeave a Comment »

Next Page »