by: Bernard Teo
Back to weblog:
The Ultimate Business Machine
Copyright © 2003
Some Rights Reserved.
This work is licensed
under a Creative
A Mac Business Toolbox
A database system has to ensure accuracy. It has to be fast. And it has to scale well as the business expands. Those features are now taken as a given. To gain an edge, though, businesses ought to pay attention to database design :
- how you organise the data
- how you present information to an end user
- how you make it clear that there are controls available for digging deeper into the data
A good database design ought to make it easy for users to see patterns in the data - to review how they got from there to here, and decide where they want to go next. The computing environment, as a whole, has to make it easy for the users to extract data from the system, and re-use them in other tools that can help them communicate those plans.
A useful synergy exists if we can take things we learnt from desktop publishing and apply them to database design. There is a tradition in desktop publishing to pay attention to the use of fonts on a page, to the balance of white space versus text, and the use of colours, all in the service of helping people understand information with the minimum of effort.
In all the years of the PC's dominance, there was very little cross-over whereby corporate systems benefit from the refinements we have come to expect as readers and television viewers. With the Mac, however, even software developers pay attention to good interface design, simply because that is just the expected culture among the user base.
Prior to OS X, there were less opportunities to demonstrate the value of that aesthetic sensitivity because we had less choices in databases. The databases created using FileMaker Pro were pretty to look at and easy to use, but they had limited conceptual power. For example, it was never possible to build an accrual-based (double-entry, rather than cash-based) accounting system using it. A posting to Income is often accompanied by a posting to Accounts Receivable. If one fails, due to deadlock for example, (remember, there are other processes updating the system at the same time) the other will have to be rolled back gracefully.
With OS X, we've now got powerful new tools at our disposal. We can install databases like MySQL, PostgresSQL, and Oracle natively on OS X (which is just another flavour of Unix). These are all first-class, scaleable, multi-user, fast, popularly-supported databases that can support mission-critical applications (we are now so buzzword-compliant). And of course, MySQL and PostgresSQL are gloriously free.
More importantly, with all these databases appearing on OS X, we are getting the drivers we need to connect front-end applications to databases. For example, we can now once again pull data out of Oracle (or MySQL) into Excel on OS X. This was a capability which languished in OS 9. With this feature on the Mac again, we can provide accountants, managers, and analysts with pre-packaged queries which they can use to extract data from corporate databases.
So the opportunity comes again, where we get the data circulating to where it could be better used. Now, this is where the IT industry can make a real contribution to business productivity - if we realise we're really in The Understanding Business, rather than in the technology business. If we realise that we're really in the business of helping people understand information better, we'll know how all the desktop publishing, digital media, and visual design tools fit within the larger scheme of things. Databases and networking form the plumbing. If we fit in a convoluted, difficult to use contraption for a tap, we'll never get the understanding flowing where it matters (no matter how much fun the technologists have playing with the plumbing).
Mac users and Mac developers are quite united in the understanding that good design matters. I believe we are only beginning to see the consequences being played out as former Unix/Linux geeks discover the Mac via OS X, absorb the culture's aesthetic sensibility, and deliver applications that combine power with simple usability.
Let's say we agree that working within the traditions of the Mac will implicitly encourage an adherence to good design principles. And now, all the necessary plumbing are in place - databases, conformance to networking standards so that the Mac becomes a good corporate citizen, etc... What other tools exist to create custom solutions for business users? We now turn to the OS X programming environment.
Objective-C. When Steve Jobs returned to Apple, he brought along the NeXTStep software development environment, whose primary language was Objective-C. NeXTStep has since become Cocoa, and we can now also program in Cocoa using Java. But Cocoa remains a very productive development environment. What this means to users is that we are once again getting a lot of hot new products appearing first on the Mac, all coming from independent developers. Example : NetNewsWire. You can look up Version Tracker to get a feel for the pace of the innovation.
Java. Java is a god-send to OSX. Although Apple's own Objectice-C is arguably more elegant and productive as a programming language (Mac is better than PC; Betamax is better than VHS, etc...), the Java developer community is huge. As a developer, I am starved for access to databases, and I have drunk deep from the Java well. JDBC (Java Data Base Connectivity) drivers exist for so many databases, including Oracle and MySQL. They all work out-of-the-box on OS X. Java programs call these drivers in a consistent way. So you can swop in and out databases at will. (Check out Luca, an accounting system on OS X written using Java, Cocoa and MySQL).
PHP, Perl, etc... These languages, which are a staple in the Unix/Linux world, are supported out of the box in OS X. If you need more recent releases than are provided in a stock OS X installation, or you need even more alternatives as to language and libraries, there is a project called Fink which has done a fantastic job of porting Unix/Linux applications onto OS X.
The point about listing all these alphabet soup of programming languages is to describe how the Mac is not isolated as a platform any more. If an OS X developer is at a loss as to how to implement a certain business solution, he has the whole Linux/Unix/Windows community on tap on who uses the exact same language as him. Just like on Windows or Linux, OS X-based systems are infiintely tweak-able. That should reassure the techie.
Project Management Software
Projectory. There is one Project Management System that was written specially for Mac OS X users, called Projectory by Corey Ehmke, but it will run on any platform with Apache, Perl, and MySQL installed. It was created completely on Mac OS X.
Apache. On OS X, when you turn on Personal Web Sharing, you are actually turning on Apache, the world's most popular web server. Once you modify the web pages, that's it. You move on.
But to the techie, there is a CGI-Executables folder (under /Library/WebServer) he can drag Perl scripts into that makes the web server even more useful, e.g., for hosting weblogs from the simple (Bloxsom) to the baroque (Moveable Type).
Actually, you can extend the capability of OS X's built-in web server to run Perl, PHP and AppleScript scripts and Java servlets, among others. The point here is that you have choice - lots of choice - to fashion a custom e-commerce solution to a business problem. Did you notice, Apache, PHP, Perl, Java are all license-free? There is a cost for the techie who does the custom work. But you get no Microsoft tax.
Mail Servers and Others
The "free" theme continues when we look at offerings available for hosting the company mail server. SendMail, the veritable workhorse in the Unix world for e-mail servers, is built into OS X. You just have to know how to turn it on. If you need to run your own Domain Name Server, you guess it, that other work horse called BIND for DNS is also built in. All these on a plain-vanilla OS X installation.
Macs may be a little more expensive but Apple continues to make the most appealing hardware, in terms of looks, portability and usability. How else could they have gotten such a loyal customer base?
What we usually forget to add to the equation is the amount of robust applications that are built into the system out-of-the-box. These applications solve real-world problems and cost nothing to use.
It is ironic that in today's Internet-based world, a Mac user ends up with greater choices than a Windows user. A business whose applications run on Macs can move these over to Windows, Sun, Linux, IBM, HP hardware easily, depending on the trends the future holds. A Windows user using Windows-only applications like .Net is locked into Microsoft's proprietary architecture, no matter what advances emerge in the rest of the world.
A business should use the right tool for the right job. In a day when we have established standards at the Internet level, we only impoverish ourselves when we settle on the lowest common denominator. If we can find an edge to do things better, if we can find better ideas, don't you think we should at least give it a try?
Finally, keep this book at your side: