Living With Software


January 27, 2008: 9:28 pm: adminLiving With Software

If you are a database designer or developer, you may be racking your brains trying to find the most suitable software to help you with your database design-related tasks. There are pretty many tools for designing and modeling database structures available in the market. However, the question is what features and facilities they offer, what the quality is, how easy-to-use (or complicated…) their interface is, how many databases they support and finally what the price and maintenance costs are.

Putting myself in your shoes, I can imagine how tired you can be of evaluating tens of database modeling tools that don’t live up to your expectations and if do, their price is not acceptable. (Believe me, I have the same experience…) Let’s face it, considering all the aspects mentioned above, the offer suddenly narrows down especially if your budget is tight…

I don’t want to make any marketing research or analyze all database modeling tools in the market. I’ve just wanted to draw your attention to one, quite inconspicuous db modeling tool - CASE Studio 2 (CS2). As a user of this software, I’d like to share my experience on this product with you.

This tool has been designed by Charonware, s.r.o., a software company established in the Czech Republic (member of European Union), and is really worth taking up.

The main CS2 features include particularly: Entity relationship diagrams (ER diagrams), automatic generating of SQL (DDL) scripts, generating of HTML and RTF reports and reverse engineering. CS2 allows users to create ER diagrams for more than thirty databases like Oracle, MySQL, MS SQL, Advantage, Interbase, Informix, Firebird and much more. Also, you can take advantage of the reverse engineering feature and load already existing db structure to CS2 very easily. After ER diagram is created, you are allowed to generate SQL scripts automatically.

Besides these main features, I’ve come across another great one - the possibility to customize the software as I need. Via the CS2 Templates Editor, you can modify system templates, import new templates that are available for free on Charonware’s website, or even create your own templates. CS2 also contains MS Scripting dialog for modifying the scripts.

This way you can customize generation of SQL scripts, modify design and content of HTML and RTF reports etc. This feature makes this product much more flexible and more responsive to each customer’s needs and requirements, which I really do appreciate.

Among other helpful features belong: export into XML format, support for text objects like triggers, procedures, views, sequences etc., Data Flow diagrams, Model conversion, Version Manager and more.

Information on CS2 can be found on Charonware’s website (http://www.casestudio.com). Except the free CS2 trial, there’s also a great range of online resources including support documentation, movie tutorials, add-ins, scripts etc.

My friend says: “When you feel like you’re working hard but not getting what you need, it’s pretty frustrating. I need a software that is stable, allows me to do just what I need, is easy to use and… that I can get at a good price!” - That’s it!

Taking into account the CS2 features, functionality and price (Apropos, Charonware provides free updates and free, time-unlimited technical support!), CASE Studio 2 comes out very well!

###

Thierry Brochot is a freelance consultant of database-related issues with a focus on designing and developing database structures.

January 22, 2008: 3:16 pm: adminLiving With Software

When you buy a computer, it most likely comes with Microsoft Windows preinstalled.
And when you need a word processor, spreadsheet, or other software, you probably
buy it from a computer store. That software is vital. Without it, a computer is just an
expensive paperweight.

But you can find free and low-cost alternatives to commercial software. Free
software has been available for years but has never been so accessible to everyday
computer users. These
programs have long been the domain of, well, geeks - experts who were willing to
download huge programs from the Internet and who knew how to compile the
programs from source code. But free software is entering the mainstream, thanks to
faster Internet connections and easier-to-use installers that don’t require a degree
in computer science.

Free software appeals to those on a budget as well as anyone who simply wants
another choice. Examples of free software include GNU/Linux, an operating system
that replaces Microsoft Windows; OpenOffice, a word processor, spreadsheet, and
presentation manager suite; and The GIMP, an image editor
that rivals Adobe Photoshop. A PC with GNU/Linux preinstalled can cost hundreds
of dollars less than a Microsoft Windows PC.

Free software takes time and money to run, and Microsoft will eagerly tell you that
the total cost of ownership for GNU/Linux is umpteen times higher than Windows.
But advocates of free software say cost is not the only issue.

“Free software means the users are in control,” says Richard Stallman, founder of the
not-for-profit Free Software Foundation. “Each non-free program has an owner, a
feudal lord in effect, who dominates the program and its users. The owners of non-
free software often impose changes on the users, changes meant to suit them, not
us.”

Free software advocates say there are two kinds of free: free as in “free beer” and
free as in “free speech.” They’re both good but for different reasons. The mantra of
the Free Software Foundation is “Free software’ is a matter of liberty, not price.”
Commercial software licenses - those wordy, legalese-filled documents that no one
actually reads before clicking “I Agree” when installing software - usually impose
strict limits: You can’t install the software on more than one computer; if it doesn’t
work the way you want, you can’t change it; and so on. Free software often has a
license too, but it’s far less restrictive. Users can amend the software to make it
better.

“The main advantage is the community of people who will continue to improve the
software on a voluntary basis, especially as it relates to security flaws,” says Irwin
Taranto, treasurer of the International Computer Users Fellowship of Rotarians. Case
in point is Mozilla Firefox, a web browser that’s emphasizes speed and
security. The program has taken a quick foothold amongst Internet users who are
tired of the security flaws in Microsoft Internet Explorer.

Most free software can be downloaded from the Internet. The programs are
sometimes large, so a fast Internet connection helps. Some programs are sold in
stores. Many free software licenses allow others to sell the software. Although it
may seem ironic, free software users often opt to pay in exchange for value-added
features such as printed documentation, a CD installer, and technical support.

The next time you need software for your computer, you might consider free
alternatives. It may not be as free as free beer, but it can be as liberating as free
speech.

Copyright 2005 by Kevin Savetz.

Kevin Savetz is a freelance technology journalist who has written for more than 80 publications. He is the founder of FreeDownloadADay.com, which features high-quality free software. You can subscribe to the site’s Free Downloads newsletter, which is also free.

January 21, 2008: 1:57 pm: adminLiving With Software

Outsourcing has become a controversial issue and a hot topic among presidential candidates this year. But have you stopped to think how your business can benefit from the efficiency, functionality and cost savings of outsourcing? If you have, you might find that, like many others, you are already outsourcing-and enjoying its benefits.

What is Outsourcing?

Outsourcing simply means “contracting out” various functions of your business. It doesn’t necessarily mean that you will be contracting out work to foreign countries because there are many American companies that provide outsourcing services i.e.. commercial printing services and cleaning services, among others.) The vendors who supply outsourced services may be self-employed contractors, consulting firms, temporary employee services or professional service firms. One common example of outsourcing is payroll processing. Other commonly outsourced functions that can be provided by professional services firms include:

  • Succession planning

  • Accounting and tax preparation

  • Information technology (IT)

  • Consulting (i.e. due diligence, business planning)

  • Distribution services

  • Pension management

  • Manufacturing

  • Assembly

  • Staffing

  • Grounds Maintenance

  • Estate and income tax planning

Why Outsourcing Can Work for Your Business

Fortune 500 corporations are under the microscope for outsourcing thousands of jobs overseas to low wage workers, potentially leaving American workers out of work. But according to Forrester Research Inc., of the 2.7 million jobs lost over the past three years, only 300,000 have been from outsourcing. With that in mind, outsourcing means something different for family and privately owned businesses. With fierce competition affecting the margins of many businesses, companies are finding that they cannot afford layers of administrative overhead dedicated to operating their core business. They are realizing that outsourcing provides alternatives to doing everything for themselves. For example, if your business is distribution, there may not be a need to employ a large administrative overhead dedicated to support functions like those listed above. Companies that provide outsourcing services are able to invest more time and resources into the specific functions that generate revenue. Because of this, they can operate more efficiently and economically, which can help you compete more effectively than companies that do it themselves.

Information technology is a good example of this. The cost in personnel, benefits and training to keep pace in the rapidly changing world of information technology is prohibitive for most privately owned businesses. By outsourcing this function, management is free to focus its energies on the core aspects of the business-those that provide revenue-generating products and services-and leave the other areas to vendors who specialize in performing those functions.

Benefits of Outsourcing

Proponents of outsourcing cite a variety of reasons for “letting others do it.” Here are some of the most important:

Cost savings - By outsourcing functions that were previously performed in house, companies are often able to reduce their employee levels and related costs, such as recruitment, supervision, salary and benefits. By outsourcing a capital intensive function, you can also reduce the costs of equipment obsolescence and depreciation. A portion of your cost savings will go to the outsourcer, but outsourcing vendors have a tighter control of fringe benefits and run leaner overhead structures. They also know how to deal with vendors serving the function they are providing and therefore, are able to pass on to your company the benefits derived from bulk purchasing and effective leasing.

Quality of service - Because your company is the outsourcer’s customer, you will likely experience a “can-do attitude,” which may not always be exhibited by an in-house staff.

More capital funds - Outsourcing reduces the need to invest capital in non-core business functions, thereby freeing capital to invest in profit-making aspects of the business.

State-of-the-art technology - Outsourcers have to spend time and money on the most current equipment and on employee training to remain competitive. By outsourcing certain areas, you are assured of receiving the most efficient services and the latest technological advances within that particular function.

Price stability - By signing a contract to outsource, you will likely be able to obtain stable pricing, eliminating the future need to shop around. Stable pricing allows the company to budget operating expenses and capital purchases more accurately, while potentially preventing the likelihood of surprise expenses.

New business partners - Outsourcers clearly wish to be viewed as your business partner. And as a business partner, they share in the desire to keep your company operating at its maximum potential. Through this business partner arrangement, outsourcers are eager to introduce you to other outsourcers to assist in that goal.

More time to focus on core business activities - You cannot overlook this intangible benefit of outsourcing. If a company is to be successful and profitable, management is needed to spend time planning and directing the company’s business strategies and not wasting time worrying about managing certain administrative or ancillary functions.

Potential Drawbacks

As with every new system and procedure, you have to take the good with the bad. Critics argue that outsourcing creates too much loss of control, less flexibility, questionable savings and the risk of over dependence on too few vendors. Owners of family and privately owned businesses should understand that initiating an outsourcing arrangement takes considerable management time. Finding and selecting the right outsourcing company can take many months. And outsourcing companies need to be given overall directives and guidelines for what the company wants done, and therefore, some level of supervision by management will ultimately be needed. Also, if an outsourcer is replacing a function that has been historically done within the company, layoffs could very possibly affect employee morale and may cause talented staff in other core areas to leave for fear of job security. In addition, be cautious not to completely eliminate the internal ability to provide the basic product or service you offer. For example, if you are a manufacturer and you have outsourced the assembly of your product, be sure you can still provide a sample of a specialty order in-house if asked to by a customer. A delay of a product sample could cost you the customer’s business.

One of the biggest complaints by companies that have outsourced is that there has been a mismatch between expectations and reality. When an outsourcer is marketing its services there is usually much enthusiasm and talent dedicated to solving the problems that were defined at the outset. However, once the contract is signed, the outsourcer brings in its implementation team, which often lacks the same level of enthusiasm that the sales and marketing team had. Due diligence is necessary when beginning any new business relationships. It is best to get recommendations from current customers of the outsourcer or other reliable sources in your industry.

Careful Selection Is Key

By being aware of these drawbacks at the start of the outsourcing process, you can mitigate many of these and build outsourcing relationships that benefit your business. The key to successful outsourcing is careful selection of both the functions you outsource and the vendors you choose to supply them.

Paul Rich, Principal and Business Consultant

Siegel Rich Division of Rothstein Kass - Certified Public Accountants

About The Author

Paul Rich is a business consultant and specializes in assisting closely-held and family owned businesses in structuring and negotiating mergers and acquisitions, securing financing, rendering IPOs and private placement advisory services, assisting with succession planning and providing profit-enhancement business planning and executive coaching, among other hot button areas for small business owners.

http://rkco.com

prich@rkco.com

January 18, 2008: 1:31 am: adminLiving With Software

Anyone who has seen the movie’ Honey I shrunk the kids’ can imagine how useful compression can be. Compression, which has become anonymous with Zip files work
off the same idea only with a (add your joke here)’slightly’ different technology.
You will find a lot of data compression programs in use today and some are easier and have better features than others, so in this article I will talk about compression in general, but may through in a couple of examples for comparison.

The first thing you need to know is that there can be more than one compressed file; you can have an archive (a multiple of files). The main benefit of this is that the user can:
 Save valuable disk space
 Can send and receive files on the internet quicker
 Speeds up your processor
 Depending on the file compression program can reduce files as much as 90%

The user should also be aware that files can only be opened with the original compression program that compressed it. Think of this as a form of protection, if you will since this is like an encrypted file or archive. Adding a password is another way to insure files are safe from prying eyes and some compression programs let you do this at any level of compression or decompression with the associated commands (update,move,feshien,add). Only individual files can be password protected not whole archives.
Ever since the first personal computers (PC’s) came about people found how easy it is to load up there drives with programs and downloads that eat up much of there memory. That’s why developers created data compression programs in the first place, to free up hard drive space and increase processor speed.
There are a lot of data compression programs and they are not exactly alike because they use different data compression algorithms. One popular program, for example looks for repeating words or phrases and assigns them there own character or number value.

A lot of users don’t fully understand the more advanced features of their data compression programs so they are not really getting there full value. Syntax command lines are a good example of this confusion. There are four basic commands in syntax (the shape of a command line);
 Command: The task to be preformed like add, delete or update.
 Archive: the name of the archive.
 Switch or Option: lets user specify a file option like adding file directories for compression.
 File: name of file(s) to be processed.
A user can compress files four basic ways:
 Add files to archive - old files with same name are overwritten.
 Move files to archive - upon compression old files are deleted.
 Update files - makes sure you have the most recent file version.
 Freshen files - almost like update, seeks out the last modified file and adds it to archive.
The above commands have there basic functions but can do other things. Ex. the update & add commands can create and compress files and the Freshen command can create a new archive.
There are only a couple of data compression programs out there that give the user more than one compression method - PKZIP AND ARJ.
PKZIP has what they call an imploding method and a shrinking method; without going into great detail imploding uses less memory (90k), and is very through. This is the default setting. Shrinking is fast but uses a bit more memory (128k), works great for smaller files.
ARJ gives the user more options for data compression. It uses multiple settings (m1 to m4). This is a tradeoff of prosessing speed versus packing dentisy. There are 2 more options available here but test runs show no significant change in time or compression.
Even with experienced compression users, extracting compressed files with a newer version of a data compression program may prove difficult, so programmers created self extracting files (SFX) to enable beginners to easily use compressed files. This small program may be part of the original program or added after as a separate program.

I realize some of this may sound confusing and for that I apologize, and after all, people will compresses data using only the basic functions and be happy and content because it suits there present needs. In conclusion you can tell there are many options available when using any data compression program and it is well worth the time (got time on the week end?) and effort to learn some of the advanced features if you want to save some serious space on your hard drive.

Robert Hanania is a student of the internet, learning about home based businesses and computers. Robert is currently promoting his web sites. All are welcome to visit him at:
www.fileanddatarecovery.com
www.houseimprovementonline.net

January 13, 2008: 9:18 am: adminLiving With Software

IPMONTOR - NETWORK MONITORING SOLUTION

IPMonitor is a sophisticated network monitoring solution that allows network administrators, webmasters, and Internet service providers to monitor any networked device on the Internet, corporate intranet, or TCP/IP LAN and receive alerts immediately via audible alarm, message, e-mail, or third-party software when a connection fails. It is a powerful personal monitoring product delivering low cost, simplicity of operation, and round-the-clock coverage.

Main Features:

• System tray application - Runs as a system tray application automatically on startup.

• Comprehensive monitoring - Monitors up to 500 network devices or services simultaneously.

• Global settings - Allows quick network resource configuration.

• Independent parameters - Allows all parameters to be set independently for each network resource.

• Maintenance mode - Permits you to temporarily disable monitoring of certain resources.

• Robust alerting - Alerts you to failures using a variety of techniques ranging from audible alarms to third-party software.

• Alert schedule - Allows you “fine tune” the alerting functions to avoid unnecessary alerting during an extended failure.

• Failure and recovery alerts - Alerts can be enabled for any combination of failure and recovery notices.

• Custom alerts - Allows custom alerts to be created for each monitored resource.

• Test alert configuration - Each alert type can be tested in order to verify that the alert is configured correctly prior to going live.

• E-mail notification - Allows e-mail notification via SMTP with the server of your choice.

• Custom messages - Supports keyword values and customized message information.

Avoid costly network downtime by using IPMonitor as your first line of defense. IPMonitor continually probes and transacts with network resources on timed intervals, to test their availability and responsiveness. If a failure occurs, IPMonitor automatically notifies you. The result? You are back in business faster!

About Software Developer:

Incorporated in early 2003 and headquartered in Haifa, Israel, Tsarfin Computing is a privately held company specializing in network diagnostic and monitoring software for the Internet, corporate intranets, and TCP/IP local area networks. Today its products and custom solutions may be found in businesses all over the world, including a large number of Fortune 500 companies, as well as in thousands of smaller ventures.

The company’s product family includes NetInfo, one of the most widely used network toolkits and a pioneer in the grouped network tools arena, and IPMonitor, a sophisticated network monitoring solution.

Product Requirements:
• Windows 98/ME/NT/000/XP
• Internet Explorer 5.5+

The developer’s web site:
www.tsarfin.com

Experienced, versatile freelance writer.
Strong research skills, clear and concise writing, compassionate journalism.

January 12, 2008: 3:23 am: adminLiving With Software

In today’s climate of business, CEOs and executives are cautiously optimistic about the economy and their company’s future growth. They realize that they still need to market to drive profitable growth and increase the company’s value, but the financial strings are being tightened. However, there is a clear growing trend for companies, regardless of size and industry, to outsource (or a term used not to long ago sub-contracting) an element of their business. Why does this trend continue to grow, and how do executives assess their needs? Outsourcing is not a passing fad, but clearly a paradigm shift that can change a business model for the better.

Outsourcing involves the use of resources outside of the organization to perform specific tasks required for the business. However, there are a variety of ways to use these resources, including business process outsourcing and co-sourcing. Business process outsourcing involves the selling off one part of the business to create positive cash flow and probable gains in productivity and quality. Co-sourcing involves retaining part of the service in-house, and off-loading or outsourcing a portion to a third party partner. This is the one we will discuss, and in our case the marketing function.

Companies often forget to ask the basic question: What business are we in? Too often the need to perform various functions and to keep a business running does not allow management to step back and ask this question. The answer should bring management to the fundamental product/service that generates revenue for this company.

In the book “Living on the Fault Line” (HarperCollins, 2000) by Geoffrey Moore, described an outsourcing concept. He says, all employees should be focused on core activities–that is, things that contribute to the company’s competitive advantage and increase shareholder value. The opposite of core is context–activities that do not contribute to competitive advantage. Context activities should be outsourced.

For example, your head of marketing was hired to develop and coordinate strategies, direct tactics and their implementation, to generate more sales leads by new customers, while maximizing the loyalty and profitability of current customers. That is their “Core” function. However, over time they have developed a talent for public relations and as a result have become the communication manager of the company. They edit the company website, makes changes, etc. These responsibilities (those of PR Manager) can be described as “Context.”

This is how most companies handle the “Context” with respect to positioning, messaging, and public relations, three tasks for marketing. A similar example could be used for any marketing tasks. It is not their core responsibility and yet, they take it on. The problem with “Context” is that it often takes on a life of its own and begins to obscure what the “Core” should be. The example above was selected because it represents what actually happens for most small to midsized companies. What management needs to consider is the effect that “Context” has on productivity, return-on-sales, ROI and the general operation of the business.

Outsourcing allows companies to focus their resources and control their head count. This form of operations allows the company to hand over full responsibility for the outsourcing function within clearly defined management guidelines and then monitor the performance. When you break down the costs of a full marketing department internally, versus the cost of outsourcing with an external partner, the business case begins to tip in favor of not allowing the “Context” to conceal the “Core.” The following elements would be common to build out a high-quality and stable relationship in a typical small organization with gross sales revenues of $20 million.

Description Annual Salaries Outsourced Cost
Marketing Director $120,000 NC
Marketing Manager $75,000 NC
Marketing Assistant $40,000 NC
PR Manager $80,000 NC
Program Budget $1,000,000 $900,000
Outsourcing Fees NA $150,000
Total Approximate Annual Cost: $1,350,000 $1,050,000

(The costs above are average for mid-sized companies.)

Consider the example of a high performance marketing partner that offers you results, flexibility, and reduction in staff and overhead. Companies can typically have equal if not better results, while maintaining product and service quality for a fraction of the cost by turning to an expert in sales and marketing. And what is the cost of a bad hire? The commonly referenced cost of a bad hire is 2.5 the times annual salary. In most small to mid-sized organizations, marketing can be outsourced while they focus on the core.

Cost is clearly the most popular reason for outsourcing. However, strategic reasons such as improving company focus on core business and improving quality are next.

Why companies decide to let “Context” take over and drive the business can usually be attributed to lack of information. Many businesses and marketing specialists believe that by keeping everything internal the sales growth is more efficient. It’s hard to find sales and marketing experts that have years of experience and are all aligned with the top line growth objectives. Companies who are not using marketing as part of their “Core” focus usually do not have the teams of marketing experts to handle the needs of their marketing. As a result, the “Context” begins to take over leaving less and less room for the “Core.” So, is it worth “controlling” all of your marketing functions? Is this an area of your business that is core to your success? Probably not.

It is important for a company to focus on the things that add value and make it competitive. If you build software, stick to doing those things that help you to build better software, and outsource all those things that can be outsourced. The more focus you place in “context” areas, the harder it becomes for you to do your “Core” well. When you take into account the cost of what it really takes to do it right, the business case cannot be ignored.

George Schildge is the president and CEO of Matrix Marketing Group Inc., a full-service marketing firm that specialize in helping small to mid-sized business-to-business firms grow profitably and build their business through effective growth planning and marketing. He can be reached at press@matrixmarketinggroup.com or www.matrixmarketinggroup.com or 86.456.9100.

George Schildge has over 20 years of marketing and operational experience in the high-tech, computer hardware and software, and medical fields. George’s experience includes working at Sun Microsystems, CoCreate Software, Baan Business Systems, IBM and several start-ups. During these affiliations he gained experience in developing, launching and managing a company’s business and marketing strategy and operational plans for products and services. Working on numerous high-tech firms, he has helped companies bridge the gap between technology and branding.

As a senior executive at these major high technology firms, George has gained expertise in the areas of marketing strategy, product development, organizational development, international marketing and distribution, interactive marketing, brand management and integrated marketing communications. He has a track record of ramping multiple products and firms to profitability and has extensive knowledge of computer and high-tech markets and trends.

January 10, 2008: 4:55 pm: adminLiving With Software

Many software and hardware producers take pride in the exponential pace of technology change, but for users and consumers of their products and services the rapid technological obsolescence often means increased costs, frustrations, and unfulfilled promises. Corporate America expects to make capital investments in goods and facilities that should last five, ten, even twenty years, but only an eighteen-month lifetime for computer software and hardware investment is not uncommon.

Lowering the costs to develop new software solutions or extending the lifetime of software applications are two complementary approaches to addressing technological change. These goals can often be met by taking a declarative strategy when designing software systems independent of the programming methodology employed.

Issues with Imperative Programming

Most programming projects today use the imperative style of programming. Developers write sequences of operations in a language, such as C++, Java, Visual Basic, etc., that implement an algorithm, or recipe, for performing tasks. The algorithm for the task mixes logical, or relational, statements about the task to be solved and control statements about how to calculate the solution. The logical statements describe “what-to” calculate while the control statements describe “how-to” calculate. Debugging the algorithm consists of verifying the accuracy of the logical statements and fixing the control statements, if necessary.

There are many problems with the imperative approach. The sequence of operations critically determines the correctness of the algorithm. Unexpected execution sequences through an algorithm caused by user input actions or real-time events in a multitasking environment may result in subtle or catastrophic algorithm failure. Writing the control logic is the programmer’s responsibility and, therefore, subject to implementation errors. Understanding a program’s algorithm is often difficult for other developers without extensive metadata, or comments, on the code and empirical tracing of the program’s execution with sample data. Verifying program correctness consumes a significant portion of the development effort, but also usually fails to discover a significant number of defects.

To address the problems associated with imperative programming, the computer industry has developed and advocated many approaches. Structured programming and campaigns against “go-to” statements address some of the problems discovered with ad hoc control structures and statements. Modularization initiatives stress decomposition techniques on the premise that humans can better comprehend, reason about, and maintain smaller pieces of code. Object-oriented programming advocates program constructions using reusable components, libraries, and frameworks. The pattern programming school stresses analogies to other fields, such as architecture, by constructing programs using well-designed and crafted solutions, or patterns, that recur in many programming contexts.

What is Declarative Programming?

Declarative programming separates the logic, or what, of an algorithm from the control, or how, of an algorithm. The programmer still specifies the logic or equations specifying the problem’s relations, but the programming system is responsible for control, or how the logic is evaluated. The most familiar examples are spreadsheets and query languages for relational databases. The user, or programmer, specifies a mathematical relation as a query, say in SQL, for what to retrieve, while the database engine determines how to execute the query against the database.

There are many advantages to declarative programming over the imperative style. In declarative languages, programmers do not specify sequences of operations, but only definitions or equations specifying relations. Unlike imperative programming, the logic relations in declarative programming are execution order independent, free of side effects of evaluation, and semantically clear to visual inspection.

The declarative family of programming languages has a long history in the academic computer science community and specialized areas of commercial application, such as compiler construction, expert systems, and databases. Declarative languages have two main family trees. The logic declarative languages, such as Prolog, are based on first-order predicate calculus, which generalizes the notions of Aristotelian true or false values to statements, or predicates, involving relations among any entities. The other family branch consists of functional declarative languages, such as Miranda, Haskell, and SML. The functional declarative languages are based on the l-calculus developed by the mathematician, Alonzo Church in the 1930’s. l-calculus formalizes the notions of recursive application of pure functions to computable problems. Although not widely known as such, the latest programming fashion, XSLT, an extensible stylesheet language for transforming XML, is also a functional declarative language.

Despite the theoretical advantages of declarative programming languages, they do not have widespread use in commercial programming practice despite an attempt in the 1980’s by Borland to mass-market a PC version of Prolog along with the highly popular Turbo Pascal. There are many factors contributing to the infrequent use of declarative languages. A large contributor is the paucity of collegiate training in declarative languages, but awkward syntaxes of some languages, inefficient compilers and run-times, and restricted domains of applicability of generalized “how-to” mechanisms are all contributors.
Using Declarative Strategies in Commercial Software

While declarative programming languages have not received wide-spread commercial usage, the strategy of separating logic, or what, from control, or how, in an algorithm is a powerful, generalized technique for increasing ease of use and extending the longevity of software. Declarative techniques are particularly powerful in user interfaces and application programming interfaces (APIs) that have a rich, complex set of inputs over a relatively small field of execution behaviors.

Two examples of commercial software that illustrate the applicability of declarative techniques are DriverLINX and ExceLINX in the fields of data acquisition and test instrument control.

Using Declarations for Data Acquisition

DriverLINX is an API for controlling data-acquisition hardware used to measure and generate analog and digital signals interfaced to all types of external transducers. Data-acquisition applications include laboratory research, medical instrumentation, and industrial process control.

Traditionally, APIs for data-acquisition devices modeled the characteristics of the hardware design and had a large number of functions of one or more parameters to setup the hardware and control data flow through the system. The ordering of sequences of operations was often critical to correctly programming and controlling the hardware. Upgrading to new data-acquisition hardware was often costly as hardware-necessitated changes in the order of operation sequences to program the hardware required costly software changes.

To surmount these problems, DriverLINX takes an abstract and declarative approach to data-acquisition programming. Instead of modeling specific board designs, DriverLINX abstracts the functional subsystems of data-acquisition hardware into generalized attributes and capabilities. Programs request the measurement task they want to perform by parameterizing a “service request” declaration. The DriverLINX runtime determines how to satisfy the service request using the available hardware and returns the measurements as a packetized stream to the program. The data-acquisition programmer is relieved of any responsibility for data-acquisition algorithm control.

Besides relieving the programmer of control responsibility, the DriverLINX abstract, declarative approach gives the program syntactic and semantic interchangeability when migrating to equivalent hardware products. The abstract, declarative approach also helps isolate the software vendor from early technological obsolescence of change in the computer industry by focusing on the immutable logic of data-acquisition relations while the control mechanisms vary with software developments. DriverLINX has been a viable approach to data-acquisition programming for more than 12 years despite the market evolution from 16-bit Windows to .NET today.

Using Declarations for Test Instruments

Test instruments, such as digital voltmeters and electrometers, have evolved from simple devices with a front panel knob and display screen to sophisticated measurement processors performing dozens of measurement and control functions. Like data-acquisition devices, typically developers send a carefully ordered sequence of commands to an instrument to setup the measurement and then send additional command sequences to control the data flow of measurements from the instrument. The aforementioned problems for developers using imperative approaches to instrument control significantly limit ease of use and prohibit quick instrumentation solutions to short-term measurement needs.

ExceLINX is an add-in to Microsoft Excel that allows rapid specification of instrument test setups by using worksheet forms. Users specify, or declare, the channels, configurations, sampling rates, triggering, and data locations for the measurements they wish to perform by filling out an Excel worksheet. When the user selects the “start” button on the toolbar, ExceLINX translates the specification into the correct command sequence for the target instrument, initiates the measurement, and flows the data back to the requested worksheet. Users can setup and collect measurements by themselves in minutes using logic specifications compared to days or weeks using programmer’s time for imperative specifications.

Internally, ExceLINX also uses a declarative approach to handling the complex problem of field validation for the worksheet forms. Instruments have hundreds of parameters with complex overlaps among parameters. To validate whether the instrument supports the parameter set the user selected, ExceLINX maintains a dependency tree of allowed, disallowed, and unused parameters for every input cell on the worksheet. Each node in the tree also maintains logical relations among the selected set of parameters that ExceLINX evaluates at runtime to cross validate user input selections. Each supported instrument model has different parameter semantics, but ExceLINX can easily handle this complexity by switching model trees because the model-specific logic in the validation tree is separate from the shared control implementation in the ExceLINX code.

Declarative programming strategies that separate logic from control in algorithms are powerful techniques that can be used with today’s popular imperative languages. These techniques can make software more interchangeable, maintainable, usable, and endurable.

Copyright Roy Furman, M.D, Ph.D. 2005

Roy Furman, M.D., Ph.D. is Director of Research and Development at Scientific Software Tools, Inc. He leads a team of software developers who have developed over 70 commercial software products for customers in the manufacturing, high technology, healthcare and life science industries. Visit their website, http://www.sstnet.com, for articles and information on software development.

: 4:31 pm: adminLiving With Software

Lotus Domino/Notes - Microsoft Great Plains tandem as ERP with Documents Workflow - overview for IT Specialist

Microsoft Business Solutions has the whole spectrum of business applications, the good combination seems to be Microsoft Great Plains and Microsoft CRM. However we need to admit that Microsoft is relatively new in the CRM market and also for large corporation it could not be a good idea “to put all the eggs into one basket”. If you have investment into other platform from CRM side - such as Lotus Domino/Notes - we offer you integration with Microsoft Great Plains

Why does the company need document workflow system if it has an Accounting/ERP?

The benefits of having financial, sales, services, communication, negotiation and other information be tightly linked and exposed to simple reporting and data mining are obvious. Now we are observing the second and I would dare to say successful phase of CRM systems implementation, which is probably final successful marriage in the long history of datawarehousing, document workflow, contact management systems.

Some business situations where you see the benefits

Reports creation without special knowledge

Special skills are required in order to work with complex ERP system. Usually financial specialist has such skills, but top-level managers, who do really need the information, may not be prepared. Also, ERP based reports should be delivered on regular basis. If Lotus Domino/Notes is used as a corporate communication platform, then to resolve the issue, specially designed routines may be used to pull the information from financial systems (Great Plains, Solomon, Navision, Axapta, SAP, SCALA, Accpac, MAS90 to name a few) to Lotus databases on the schedule. In this case users, including top-level managers will work with this information via custom interface.

Documents routing

One of the competitive advantages of CRM is a workflow. Financial documents are usually subject for approval before posting. Typical accounting/ERP systems do not have (or have very limited) workflow design. Such the workflows could be created on Lotus Domino/Notes platform. Then, through the connection to Microsoft Great Plains or other ERP system you will have document approval workflow.

The typical simple workflow would be like this - send notifications to AR to take off the hold from the customer upon the payment receipt.

So the approach to integrate accounting system and documents oriented Lotus Domino/Notes seems very interesting for corporate information architecture.

Happy designing, customizing and programming! If you want as to do the job - call as 866-528-0577, help@albaspectrum.com

Rafael software developer in Alba Spectrum Technologies (http://www.albaspectrum.com/) - USA nationwide Lotus Domino/Notes, Great Plains, Microsoft CRM, Microsoft RMS customization company, based in Chicago, Arizona, California, Texas, New York, Florida, Minnesota, Washington, Georgia, Canada, UK, Australia and having locations in multiple states and internationally, our Lotus page - http://www.albaspectrum.com/Lotus/OffshoreLotus.htm, Rafael is Principal CLP IBM Lotus Domino 6 Application Developer, Certified Professional E-commerce Concepts Analyst

About The Author

Rafael Osipov is Principal CLP IBM Lotus Domino 6 Application Developer, Certified Professional E-commerce Concepts Analyst; RafaelO@albaspectrum.com

January 9, 2008: 8:29 am: adminLiving With Software

When you look around the world for likely IT offshore outsourcing destinations you may want to open your view a little to the south toward Brazil. Software programming is becoming a global commodity and Brazil offers the clear advantage of time zone, easy travel, and low cost IT professionals. Imagine skilled English speaking IT professionals at 50-70% less, working in the same business day as the Eastern U.S.A. The bill rate may not be as low as India and China, however, your ability to benefit from joint creativity during all parts of the development life cycle will far out weigh the difference. Top people in all countries seldom work nights. With Brazil’s time zone, the best and brightest are working in the same work day that you work. Even with well documented requirements, if your team can’t communicate often and freely due to time zone, you may not end up with what the user really wants?

Yes I know, you are probably wondering why you seldom hear of Brazil. This country hardly ever hits the radar when the decision is made to start looking offshore. And those U.S. companies that find Brazil seldom flaunt it, keeping it a best kept secret. Companies like AGCO, Alcatel, American Express, Blue Cross Blue Shield, Caterpillar, Citibank, Deutsche Bank and the list goes on. Brazil unlike India, has a huge domestic IT market that has only recently looked offshore for opportunities.

One good reason to consider doing business with Brazil is security. They respect your patent, copyright, and trade mark under penalty of law. Enforcement of intellectual property laws should be a major concern of businesses that venture offshore for IT development. Brazil has intellectual property protection legislation that is substantially similar to that of the United States which should put you at ease. Brazil enacted its first intellectual property law in 1887 and has current laws that are in line with international standards. Legal penalties for infringement can be civil or even criminal in Brazil.

In today’s world, data security is very important. Brazil rates better (62)on Transparency International’s Corruption Perceptions Index for 2005 than India (88), Russia (126), China (78),Saudi Arabia (70), and the Philippines(117) to name a few.

Some other reasons to consider Brazil for your next offshore outsourcing project include:

1. Brazil is an $18 billion IT industry and one of the largest IT industries in the world. It has a large and experienced work force.

2. Billing rates in Brazil are very competitive. They come in less than Canada and slightly more than those of India.

3. This is a highly educated professional work force. Brazilian Universities are very competitive to get into and very inexpensive to stay in. Expect to find professionals with advanced degrees.

4. Brazil has 1-3 hours different in time with U.S. Eastern Standard Time. Time zones do matter if you are traveling or trying to collaborate with someone long distances away. You can easily call your Brazilian project team during your work day.

5. English is a very popular skill and not hard to find with technical professionals in Brazil. English language capability is expected of young and middle aged high tech professionals in Brazil.

6. Air travel to Brazil is convenient and affordable. Sao Paulo is a 10 hour direct flight from Atlanta, Ga.

7. Good industrial infrastructure and low cost telephony service.

8. Brazil has excellent hotels and restaurants also at a low cost.

9. Brazil offers a friendly culture with similar racial diversities, religions and family life styles as in the U.S.A. This similarity facilitates remote cross cultural team building.

10. Brazilian women play a leadership role in business and in government. Traveling female executives are no surprise in Brazilian conference rooms or leading negotiations.

If you consider Brazil remember that it is as large as the Continental United States. Just as the salaries of IT professionals varies between a high in New York and fall as you travel south, salaries vary in Brazil as well. Professionals working in Sao Paulo or Rio may well garner a higher wage than similarly skilled professionals in Curitiba or Belo Horizonte. Your business stay in either of these smaller cities would be cheaper and have a comfortable tempo.

W. Henry Johns- President

Vision TRE, Inc.

henryj@visiontre.com

http://www.visiontre.com

Mr. Johns has over 25 years of experience in global project management and is currently the President of Vision TRE, Inc., a Georgia based IT outsourcing company. More about the author can be found at http://www.visiontre.com/aboutUs.htm

January 6, 2008: 10:28 pm: adminLiving With Software

Running a business from home has its advantages, including no commute, a more accommodating work schedule, fresh coffee and home-cooked meals at any time you want.

But running a business from home using a home wireless local area network (WLAN) with your computer may lead to thievery of confidential information and hacker or virus penetration unless proper actions are taken. As WLANs send information back and forth over radio waves, someone with the right type of receiver in your immediate area could be picking up the transmission, thus acquiring access to your computer.

Here is a list of things that you should consider as a result of implementing a home wireless network setup used your business:

Viruses could be loaded onto your laptop which could be transferred to the company’s network when you go back to work.

Up to 75 per cent of home wireless network WLAN users do not have standard security features installed, and 20 per cent are left completely open as default configurations and are not secured, but are made for the users to have their network up and running ASAP.

It is recommended that home wireless network router/access point system setups be always done though a wired client.

Always change the default administrative password on your home wireless network router/access points to a secured password.

Enable at least 128-bit WEP encryption on both card and access point. Change your WEP keys periodically. If equipment does not support at least 128-bit WEP encryption, consider replacing it. Although there are security issues with WEP, it represents minimum level of security, and it should be enabled.

Change the default SSID on your router/access point to a hard to guess name. Setup your computer device to connect to this SSID by default.

Setup router/access points so as to not broadcast the SSID. The same SSID needs to be setup on the client side manually. This feature may not be available on all equipment.

Setup your home wireless network router to block anonymous internet requests or pings.

On each computer having a wireless network card, network connection properties should be configured to allow connection to Access Point Networks Only. Computer to computer (peer to peer) connections should not be allowed.

Enable MAC filtering. Deny connection to wireless network for unspecified MAC addresses. MAC or physical addresses are accessible through your computer device wireless network connection setup and they are physically written on network cards. When adding new wireless cards / computer to the network, their MAC addresses should be registered with the router /access point.

Your home wireless network router should have firewall features enabled and demilitarized zone (DMZ) feature disabled. Periodically test your hardware and personal firewalls using Shields Up test available at http://www.grc.com. All computers should have a properly configured personal firewall in addition to a hardware firewall.

Update router/access point firmware when new versions become available.

Locate router/access points away from strangers so they cannot reset the router/access point to default settings. Also, locate router/access points in the middle of the building rather than near windows to limit signal coverage outside the building.

You should know that nothing is 100%. While none of the actions suggested above will provide full 100% protection, countermeasures do exist that will help. The good collection of suggested preventative actions contained herein can help you deter an intruder trying to access your home wireless network. This deterrant then makes other insecure networks easier targets for the intruder to persue.

Greg Lietz is an internet business man, freelance writer and computer enthusiast. His websites provide information on wireless networking and personal computer hardware that may be of interest to you.

« Previous PageNext Page »