The
Ultimate
Business Machine

Technology, business
and innovation.

And, not least, about
the Mac.

Weblog • Archive • Cutedge

by: Bernard Teo








Creative Commons License

Copyright © 2003-2012
Bernard Teo
Some Rights Reserved.

Tue 18 May 2004

Teach Yourself Accounting

Category : Commentary/essentialsOfAccounting.txt

This is the best book that I know of, if you need to teach yourself about accounting principles, concepts, and terminology very quickly. It's called, "Essentials of Accounting" by Robert N. Anthony. Read the Amazon.com reviews and you'll get a very good feel for what this book is about.

Accounting may seem like a dry, boring subject but this book works very well if you have the desire the learn, have very limited time, and have zero prior knowledge of accounting. And it's a surprisingly enjoyable read, too. You feel like you're being guided by a calm, sure, steady hand.

When I was going through the book many years ago, I wished I could have worked through the many examples (that the author provided) on an actual accounting system. Well, you could use something I didn't have then - Luca.

I believe that a good working knowledge of accounting principles is one of the most important skills that anybody involved in running a business has to have.

If you can operate an accounting system which, say, has extended features to manage payroll, inventory, and time billing; and you get utilties to set up a mail server and a few other Internet services, so long as you have a broadband line. All these, together with, say, Microsoft Office or AppleWorks - would it be enough to help anybody set up and run a business on the Mac? Of course, you'll need to supply your own business acumen. But we're on the way to putting all these together for our own use. If you'd like to share it, be our guest.

I wrote an article more than a year ago, "A Mac Business Scenario" (which you can find on the right side-bar) and, at that point, I was still turning on the mail server by hand using the command line. By now, I've done Postfix Enabler, and DNS Enabler, and we've gotten our accounting system up on OS X (as I had hoped for), and I keep going back to this article to see how else we can make it easier for other people to turn on all the things I talked about in the scenario. It's getting to be like a manifesto.

Posted at 1:04PM UTC | permalink

Mon 17 May 2004

Payments News

Category : Technology/paymentsNews.txt

Here's another interesting site that made a reference to ours : Scott Loftesness, and from which I've found Payments News, a survey of developments in the field of electronic payments. It's so interesting to find something just when you need it. I've been wondering why we couldn't just use PayPal to accept normal credit card payments, instead of having to sign up with WorldPay or Planet Payment or stuff like that.

I've learnt from this PayPal page that this is now possible to receive credit card payments from people who may not want to create a PayPal account (that wasn't possible before).

And I've learnt from this link on Payments News that there are further interesting developments at PayPal.

I've often wondered what's the point of doing all this writing. This is probably the answer, that I get to learn at the same time. That's the reward for taking part.

Posted at 9:56AM UTC | permalink

Usable Help

Category : Technology/UsableHelp.txt

I like to look up the web server log files to see how our site is being used and what information people are looking for. Occasionally, I find some very interesting sites that have made references to ours, and here is one :

Usable Help - "Examining documentation and help systems for software and consumer products." I think it's a very useful site for developers, with very interesting ideas. Definitely worth a visit.

Posted at 7:34AM UTC | permalink

Business @ the Speed of Stupid

Category : Technology/bizatspeedofstupid.txt

I picked this book up from the Special Offers bin yesterday and have been reading it since.

Business at the Speed of Light? More like, Business @ the Speed of Stupid - "a comedy and a tragedy in every chapter", according to an Amazon.com review. This ought to be required reading for users, business owners, and IT practitioners alike because "the business landscape is littered with the remains of thousands of technology ventures", and we need to get everybody to understand why this had happened and how we can do better.

While reading the book, I've been thinking about the comment I made in the last post about taking just eight weeks to bring a client-server-based application onto the web. If it gives a feeling of bravado, of the sort that comes out quite foolishly on the pages of "Business @ the Speed of Light", then I must hasten to add that a lot of trial and mostly errors had preceded it, through a couple of projects I did on the side, using other failed approaches.

I had learned, from the failures, to value the whole body of code that had already worked. And that the key to getting things done is controlling complexity, and not let the tail wag the dog.

So the point I was trying to make was that, when IT departments insist on issues like standardisation on the languages and platforms they had "blessed", above all other considerations, they may be underestimating the dangers they're exposing their business. They may look like they're simplifying things, but actually creating a combinatorial explosion of complexity. They like to say things like, "the web server must be .Net, or whatever, compliant, or we won't endorse it", and my stomach turns the way it's been described for many of the unfortunate souls who populate the "Business @ the Speed of Stupid" book.

Finding a way to get along with IT departments, managing the expectations of users, and living with the limited project management skills of the IT coordinators in-between - these are the hardest challenges facing external IT developers and consultants.

Posted at 5:51AM UTC | permalink

Sun 16 May 2004

About 4th Dimension

Category : Technology/4D.txt

We've used 4th Dimension for much of the last ten years. It's been good to us, so I wouldn't knock it. I believe that, in many ways, 4D was ahead of its time. So, while my kid's still having his nap (when he wakes up, he's going to climb all over me to take him out, and it looks like it's going to be a wonderful Sunday evening), I'm trying to see if I can do a comparison of my experience using 4D, against what I'm currently seeing using Xcode, Cocoa, and Java on Mac OS X.

Firstly, in the old OS 9 days, 4D sat in the middle of the spectrum, with FileMaker Pro at one end, and MPW and Code Warrior at the other. It's significantly harder for an end-user to build stuff using 4D than with FileMaker Pro. But you can build a lot more useful applications, more quickly, and with database access built-in, than coding with the lower-level languages in MPW or Code Warrior.

And it's a good complete software development platform. But I haven't used it for almost two years now, so I've gone and take a look at www.4D.com to see if the tools we've used are still there, and I think they are.

It's important to mention the 4D suite of applications because it was the way they were put together - 4D, 4D Server, 4D Insider, 4D Compiler, 4D for Oracle, etc. - that contributed a lot to our own productivity.

For example, with 4D, you can do development on a standard 4D standalone set-up. Or you can use the Server edition, and immediately be able to do development as a project team. While the server makes sure that you are not able to make changes on a piece of the project that another person is working on, you're very much working the same way as if you're working on your own.

I think 4D Server is a superior piece of technology. Even now, I'm trying to think about how we can duplicate this functionality using Java. 4D Server is an application server. You load the application you have written on the machine running 4D Server, and the users access the application from their machines, using an application called 4D Client. Everytime you need to give the users a new version of your application, you only need to go to the 4D Server machine, bring the system down, replace it with the new version, and when the users log in again from 4D Client, they all get the latest revisions. It's a real time-saver. If you have, say 50 or more users, you'll appreciate not having to go to each of their machines to do a new application system release.

Then there is the 4D Insider application. It gives you a very nice ability to look inside and analyse your application - e.g., you may need to know how many other methods or sub-routines are calling on a particular method or sub-routine, so that you can anticipate the kind of problems you're going to be facing when you start making changes to things.

Finally, 4D Compiler allows you to build really fat binaries, versions that will run on Mac (OS 9 and then X, but I hadn't use 4D with OS X much), as well as Wiindows, all from the same piece of code. This is something I miss. It was what allowed us to keep our Macs while working with PC-using customers all these years.

So, in summary, I want to say that 4D is a very expressive language, in the sense that you can express difficult concepts using it (in exactly the way that FileMaker Pro isn't), and you can build very powerful applications using it.

Oh, I forgot, it also has built-in multi-threading, even though OS 9 didn't. It allowed us to build applications where each window ran within its own process. 4D programmers ought to take advantage of this power because, once you've written a procedure and launch it within its own process, e.g., within its own window, you can continue to launch many other similar windows based on this same procedure, and not having to worry about variables being overridden, etc.

And it's this multi-threading mechanism which allowed third-party 4D plug-ins like Christian Quest's Internet-Toolkit (ITK) to work its magic. By the time the Internet came out, we already had a substantial body of code in 4D (about 50 to 70 MB of code - it was a large insurance application). Using the extra functionality that ITK added to the 4D language (and the fact that 4D was multi-threading), it was possible to build a very effective, fully functioning web server with only 600 KB of code. Joining this little piece of code to the larger application, we were then able to re-purpose the whole 4D application for the web, with just two months of added work (in other words, the insurance company we were working for was able to do transactions over the web, in just two months after we discovered and tried out ITK).

We should have gotten hero status for this particular piece of magic (the users were indeed delighted) but we somehow seemed to have drawn the ire of the corporate IT department - they seemed to have a problem with the fact that the web server wasn't Apache or something like jBoss, or WebSphere (you mean you wrote your own web server? what a waste of time.) So that's for another story but the system did well enough, from my point of view, for quite a while yet.

Which brings me to the point, why switch away from 4D, then? Actually, I have not yet decided if this, indeed is a final switch from 4D. It's still pretty good. Being years ahead of their time gives them that little bit of longevity, in terms of relevance.

But I'm finding that we're having too many battles to fight with corporate IT departments. First there's the Mac that we're fond of using. It's been tolerated but there's a suspicion that we'll go on proselytising and in no time Mac pockets will spring up all over the place and out of control (of the IT deprtment, that is). Also, no matter what the 4D corporation does to distance itself from the Mac (I think it tries to do that sometimes, and if that were true, perfectly understandable), I get questions like these from the IT department, when our system was considered for a wider use within their corporation :

"Was 4D originally written for Mac or IBM compatible hardware?"

What kind of a question is this? Why does it matter? I thought - I give up and wrote "4D came out initially on the Mac platform, just like Microsoft's Word and Excel. At that time, the PC was still in the character-based mode; so it broke new ground in its use of the graphical user interface, just like Word and Excel." And died on my own sword. I guess I should have done better.

So, we're doing Java to fight one less battle. As far as we're concerned, the hardware is non-negotiable. It's either the Mac, or get out of IT altogether, and a lot of this weblog is trying to work out why we can take such a strong stand on this utterly stupid position.

But I know we're more productive on the Mac. If I had an actual business that I'm running, rather than being the software developer or the consultant, I would still (most definitely still) be using the Mac.

But I'm finding that using Java, and showing some stuff on the Unix command line, does help break some ice with the mainstream IT people because we can quickly get beyond the sectarian issues and move on to grounds where we share common interests, like building write-once run-many applications, the power of object-oriented design, the potential of web services, etc. The IT guys, they're not all bad, just like not all the guys on the Apple side are the good guys. There are various shades of greys.

I'm supposed to compare 4D with the use of Xcode, Java, and Cocoa, but this piece is already the longest I've ever written at one go, and the kid's waiting and there's not much sunlight left. Perhaps the next time.

Posted at 10:55AM UTC | permalink

Fri 14 May 2004

Weblog and DNS Enabler Bug Fixes

Category : Technology/weblogbugfix.txt

There was a problem with the "Search This Weblog" function on the left side-bar. If there are more entries found than we've provided space for, there is a Read More... link at the bottom. The problem was that the Read More... anchor was acting funny. It didn't lead to the next set of entries properly. This has been fixed and the PHP code can be found in the Weblog article on the right side-bar.

Also, I wrote something called a DNS Enabler once to help people get around some problems when they're running a server behind an old Airport Base Station (the original ABS) - they're not able to "see" the server from machines sitting inside the local network, unless they run a local DNS server.

When Panther came out this little application broke and I never had the time to fix it. Until yesterday. I didn't think anybody needed it still until this week. So, that is also available for download from that page that talked about running an Internet server behind an Airport Base Station.

Now, that DNS Enabler is fixed, it's possible to build further on it. It's now programmed to identify a server on a fixed IP address (10.0.1.201) on an Airport network. But it should be possible to make it work with any user-specifiable IP address, and for multiple domains, and multiple servers.

The best interface I've ever used is QuickDNS Pro from Men and Mice, back in the days of OS 9. They've probably gone beyond the Mac, now. I'm thinking it's possible to do an interface quite like theirs, if imitation is the sincerest form of flattery. No, better do something different. If I can find the time.

So, the Mac's really good value for money, considering that you've got all these Internet services, built-in, out-of-the-box. They just need to be turned on and provided with configuration tools.

So we've got a lttle catalog of these : Sendmail Enabler, Postfix Enabler, DNS Enabler (no web page or tutorial for it, yet), and Luca. Hopefully, one day, you can go to this page and find all you need to turn on and run a business out of your Macs.

Posted at 1:06PM UTC | permalink

About Cocoa and Java, and Luca

Category : Technology/JavaCocoaSummary.txt

About six to eight months ago, when we thought of putting a Cocoa interface on top of our accounting system, there wasn't much information we can find about doing Cocoa development using Java. Even now. So this is what we've found.

First thing, we wanted to be able to do most of the common things we would expect to see on an Aqua interface, using Java instead of Objective-C, e.g., drawers, sheets, dialog boxes, the search mechanism, radio buttons, check boxes, pop-up menus, the notification mechanism, tables with hierarchical data views, page setup, print previews, etc.

(Oh, we forgot icons, when are we going to do icons?)

It's very difficult to find material on this but this page at Whiningdog.net helped. Not nearly enough, but it kept us going. Even things like printing and exporting - they're no cakewalk. I believe Hai Hwee had to be pretty tenacious to find the answers to doing all these things.

But we now know that it can be done. And that the Model-View-Controller paradigm works very well. We've retained the ability to use 60-70 % of the code as a webserver-based application, and we've abstracted out the database access, so we can plug in a wide range of databases. These were the two main reasons why we had to stick with Java. But we've got almost all the interface elements pinned down now, so we can concentrate on building the application.

The accounting application was written originally using 4th Dimension. Comparing the two, I'm impressed with the amount of code we didn't have to write using Cocoa.

For example, when you open up a lot of windows, you may be providing different views of the same piece of information from different angles. So when you change the data in one view, you want all the views to be updated quickly. I've written the code to do that myself in 4D, but it's always been pretty messy. Think about all the things you have to coordinate. But Cocoa's notification manager is really neat. You can set up the updating mechanism with just a few lines of code.

Another example is ability to show a hierarchical view of tabular information. Again, I wrote all the code to do that when I was using 4D. With Cocoa, it's a breeze. So I can immediately appreciate the benefits that Cocoa brings from the productivity angle. The best code is the code you don't have to write.

It's a wonderful development environment. I would like to show this to more Java programmers but I think, as usual, the thing that will come up again and again is the Mac's limited market share.

Anyway, if you're looking at Luca, look at the navigational aspects, the ability to relate one piece of information to another, and the thought that went into the data structures (I think MYOB can only do Chart of Accounts maybe four levels deep and we've asked ourselves why not any number of levels deep - the answer lies in the design of the data structures).

Luca may be no great shakes to look at now (from the romantic point of view), but the beauty that we're talking about is from the classical viewpoint (in Robert Pirsig's terms, as I've written about in "Awk", the classically-minded person is pre-disposed towards looking at things below skin deep).

The problem we wanted to solve was how to make the relationships between all these accounting figures clear, and how to prove the accuracy of the data through the ability to audit the information from many different angles. And then to take this ability and make it available through the web, through a client-server application, or through web-service calls, using largely the same body of code. We're not through with this yet, not by a long way. If you're interested to build on top of it, e..g, through embedding the system as a Jar library within a larger project, through the API's we're going to make available, just let me know.

Posted at 9:09AM UTC | permalink

Thu 13 May 2004

Luca Accounting Beta Release

Category : Technology/lucaBeta1.txt

Anybody interested in an OS X-based Accounting application?

Our Luca is now ready for download. It will work with a wide range of databases, but out-of-the-box we've made it work with MySQL and we've included an installer that will make it as painless as possible to set up and use a MySQL database.

It's also a demo of just what you can do with the combination of Java and Cocoa, if you're interested in such things. Due to some dependencies at the Java end, it will only work on OS X 10.3.3 onwards.

Posted at 12:59PM UTC | permalink

Wed 12 May 2004

A Weblog as a form of Chautauqua

Category : Commentary/chautauqua.txt

I'm finding that there is a close parallel between the mode of discourse made possible by a weblog, and the mechanism used by Robert Pirsig to link together the events and ideas he described in Zen and the Art of Motorcycle Maintenance.

If you don't mind, look at the discussion on this page that I've found :

"I would like to use the time to talk in some depth about things that seem important. What is in mind is a sort of Chautauqua Ñ that's the only name that I can think of for it Ñ like the traveling tent-show Chautauquas that used to move across America, [...] an old-time series of popular talks intended to edify and entertain, improve the mind and bring culture and enlightenment to the ears and thoughts of the hearer. ( Pirsig, p.17)

From the discussion that I linked to earlier : "The narrator sticks to this expression as well as to the lecture-form, the most defining element of the original Chautauquas, throughout the novel. He uses the term Chautauqua whenever he wants to present notions of a more theoretical kind: motorcycle maintenance, philosophy, technology, 20th century life, etc. These Chautauquas gain importance for the narrator on a very personal level, because the lectures become more specifically linked to the narrator's life. Still, he never abandons pointing out general implications, trying to come to conclusions at the end of the Chautauquas (although sometimes the end of one and the beginning of another are blurred). A wide range of topics is discussed, which seemingly also inspired the narrator to come up with the term chautauqua."

Note : "a wide range of topics is discussed ... these Chautauquas gain importance for the narrator on a very personal level, because the lectures become more specifically linked to the narrator's life ... never abandons pointing out general implications, trying to come to conclusions at the end of the Chautauquas (although sometimes the end of one and the beginning of another are blurred)."

That's what a weblog is like, isn't it. You can use it to lay out an idea that is very difficult to get across at one go. Especially when you're still trying to untangle the strands of your own thoughts. The weblog gives you the time to ruminate about a position that you've taken, find other situations from which you can draw implications that will either strengthen or weaken your convictions, and ultimately move you closer to better knowledge or a greater truth. If that ever happens, it doesn't matter if nobody else reads it because you've rendered a service to yourself.

Posted at 11:48AM UTC | permalink

Patents and the Penguin

Category : Commentary/patentsPenguin.txt

This is a very interesting article, "Patents and the Penguin".

On the one hand, one can see how fast MySQL has grown in terms of market penetration, using the Open Source model in parallel with an ability to sell profitable services alongside the free downloads. But MySQL AB has, sort of, hedged its bets with a dual licensing model, so they have a lot of flexibility to play their cards no matter which way the game turns.

And nobody knows how all these will pan out. The issues about intellectual property rights and patents are complex, as the article above clearly shows.

But it's still important for any business to try to understand them.

You can choose to work in a business, as a self-employed person. Or to work on a business, as a business owner. But the second is the nicer, more evolved and preferred position to be in. That's because you've established the procedures, methods, and systems so that the business will run without your needing to be there. And it makes it that much more attractive, as a going concern, for other investors to want to buy into because it doesn't matter much to them, then, if you do get run over by a truck.

But before you say, watch out Hawaii (or substitute your dream retirement enclave), here I come, you've got to make sure that you really do own the procedures, methods and systems, because that's what the investors are buying. That's why intellectual property issues are so important to understand and track. Maybe, more so because there doesn't seem to be that many lawyers around who understand a thing at all.

Posted at 10:22AM UTC | permalink

Features, Functions, and Benefits

Category : Commentary/featuresFunctionsBenefits.txt

Zig Ziglar, in The Ultimate Handbook for the Complete Sales Professional, makes a very clear distinction between features, functions, and benefits, adding that you can only sell on benefits - because everyone tunes into WII-FM (what's in it for me!).

That's why I have a lot of problems with the Mac-BMW comparisons. It's a nice analogy but it has zero effectiveness.

Expensive cars are but one of the many ways people have at their disposal to signal an elevated status (whether real or imagined). We can talk all we want about the features of a BMW, or an Audi (like the author of the following article did when comparing the Mac to an Audi), as the case may be. But the chief benefit that an expensive car confer its owner is status.

Now, when do you ever hear of people buying expensive computers to gain instant status recognition, and arouse envy among the neighbours? Okay, geeks may understand the phrase, "So, how much is your mind worth?", and some Mac users may feel that they're using the BMW of computing. But the argument that we can get ordinary people to plunk their money down for the most expensive computers, just so they can feel rich, is inane, isn't it? I don't have to work very hard to prove that it doesn't work.

There's a saying that insanity is doing the same thing over and over again, expecting a different outcome. So why not try selling it a different way? You've got to sell on benefits and you've got to think about what those benefits are. And there are real benefits to using a Mac. But you've got to think really differently, for a change.

Posted at 10:17AM UTC | permalink

Tue 11 May 2004

Postfix Enabler 1.1 Beta 3

Category : Technology/pfe1dot1beta3.txt

Beta 3 now includes an updated French localisation, contributed by Michel Pansanel, www.carpo.org. Postfix Enabler has included a French localisation since version 1.0.9, due to work done by Michel Poulain (La Shampoo.net). On behalf of the French users of Postfix Enabler, I'd like to say thanks to both Michel Pansanel and Michel Poulain.

www.carpo.org contains two tutorials in French about using Postfix Enabler. You can find them by following the links below :

Utiliser Postfix pour gŽrer son propre serveur SMTP

Utiliser Postfix pour gŽrer un serveur SMTP - 2¡ partie : offrir le SMTP ˆ un rŽseau interne

Beta 3 also contains a bug fix - again related to the SpamAssassin installation. If you turn on SpamAssassin, but did not have any SMTP-Authentication active (either using SASLDB or the built-in OS X user accounts mechanism), you will see this error among the log entries :

fatal: parameter "smtpd_recipient_restrictions": specify at least one working instance of: check_relay_domains, reject_unauth_destination, reject, defer or defer_if_permit

I need to make the smtpd_recipient_restrictions line look like this :

smtpd_recipient_restrictions = permit_mynetworks, check_recipient_access hash:/etc/postfix/filtered_domains, reject_unauth_destination

I'm misssing the "reject_unauth_destination" directive when no SMTP-Authentication mechanism is active. Thanks, Sean Alcorn, for reporting the bug, and sorry about that. Even though the number of combinations to test for is getting to be quite a lot, this is one bug that shouldn't have slipped through.

I've since fixed this and the Postfix Enabler 1.1 Beta page is now containing the best and latest version.

Posted at 10:55AM UTC | permalink

Read more ...

Mac@Work
Put your Mac to Work

• Sivasothi.com? Now how would you do something like that?

• Weblogs. Download and start a weblog of your own.

• A Mac Business Toolbox
A survey of the possibilities

• A Business Scenario
How we could use Macs in businesses

• VPN Enabler for Mavericks

• MailServe for Mavericks

• DNS Enabler for Mavericks

• DNS Agent for Mavericks

• WebMon for Mavericks

• Luca for Mavericks

• Liya for Mountain Lion & Mavericks

• Postfix Enabler for Tiger and Panther

• Sendmail Enabler for Jaguar

Services running on this server, a Mac Mini running Mac OS X 10.9.2 Mavericks:

  • Apache 2 Web Server
  • Postfix Mail Server
  • Dovecot IMAP Server
  • Fetchmail
  • SpamBayes Spam Filter
  • Procmail
  • BIND DNS Server
  • DNS Agent
  • WebDAV Server
  • VPN Server
  • PHP-based weblog
  • MySQL database
  • PostgreSQL database

all set up using MailServe, WebMon, DNS Enabler, DNS Agent, VPN Enabler, Liya and our SQL installers, all on Mavericks.