Wed 30 Nov 2005
MySQL 5.0
Category : Commentary/mysql5.txt
MySQL 5.0 is here. Stored procedures, triggers, views, etc. Support for views - that was the last thing we were waiting for to replace Oracle entirely in our applications. Oracle should be afraid - very afraid.
Posted at 2:37AM UTC | permalink
Tue 29 Nov 2005
Softpedia
Category : Commentary/softpedia.txt
Softpedia is featuring all of my products in its collection. How did we get in there? We've been awarded its "100% Clean - No Spyware, No Adware, No Viruses" badge. Don't want to look too unappreciative. Hey, thanks guys.
Posted at 2:10PM UTC | permalink
The MailServe Page
Category : Technology/MailServePage.txt
I've created a more permanent place to house the MailServe project. MailServe is the successor to Postfix Enabler. I thought it needs a name change because it's doing a lot more than just enabling Postfix.
The trial version now expires on 30th December 2005. I think this will give me enough time to add a couple more things and test it more thoroughly (as well as to bulk up its documentation). To try out MailServe, just use your current Postfix Enabler serial number.
Posted at 1:42PM UTC | permalink
Mon 28 Nov 2005
Requiem for Georgie Best
Category : Commentary/requiem.txt
Remembering George Best. It was 1968, I think, or early 1969. I watched, on the black and white TV, Manchester United vs Benfica, and what looked like one of the Beatles, beating two defenders, rounding the 'keeper, and side-footing the ball into the empty net. Amazing. The crowd went wild. My father said, "that's Georgie Best". I was hooked. That famous picture, of Best in the number 7 shirt, wheeling away, right arm raised to salute the crowd, was ingrained in my memory. Football became my favourite sport, and United my favourite team. I shared the same birthday as George Best, May 22nd. I remember writing, as a kid, to a UK football magazine about that, and about my love for Man U - and got one pound £ in the mail as prize. (Could that have seeded a lifelong interest in making money from ideas?) Whatever, it's true - I love Man United as much as I love my Mac. My wife often says, she thinks she comes third, or even fourth, after that, behind the kid - especially on Saturday evenings when I go missing when United are playing. So, goodbye, Georgie. Thanks for the memories. You are the Best.
Posted at 10:09AM UTC | permalink
Mon 14 Nov 2005
Comics & The Art of User Interface Design
Category : Commentary/comics.txt
You can find inspiration in the unlikeliest places. I discovered "Understanding Comics - The Invisible Art" by Scott McCloud, while reading Daniel ("Free Agent Nation") Pink's book "A Whole New Mind". Scott McCloud shows how comics work by deconstructing the medium into its constituent parts, most of which work invisibly in telling a story. For example, there's this concept called "closure", whereby the reader is able to predict what is going to happen, or realised what had happened, simply because we all have a shared understanding of how things work in life. The artist exploits closure to eliminate things that need not be said, to control the pace of the story, which in turn, controls tension or heightens the drama of the story telling. The story, in fact, happens between the panels of the comic strip, and the reader becomes the co-author of the story by exercising his imagination. Look at how this works in the Mac's Finder interface. The icons for files, folders and the trash can are metaphors for how things work on a physical desktop. Rolling that thing we call a mouse, our imagination allows us to slip into the metaphor and explore that environment. Closure allows us to predict what will happen when we pick up a file and place it in the trash. Scott McCloud shows how the pace of a story quickens when the drawings are made less representational and more iconic (i.e., more cartoonish"). He uses the following framework to describe how our mind moves from what is perceived by the eye to its representation as meaning and ideas inside our brains : Comics work their magic in that area across The Language Border along The Representational Edge, where words and iconic pictures combine to tell a story in the quickest and most economical way. If you think about it, there's where user interface design occurs, too. We, as information systems designers and consultants, need to understand how to use metaphors and words and icons in combination to shortcut the trip from representation to ideas so that a user can learn to use a system in the shortest possible time and with the least amount of user-interface clutter. We have a lot we can learn from comics. First, like comic book artists, we need to start with a purpose. We need to decide what the big idea is, i.e., what we want to convey. These form the contents and we need to decide, next, how we want to present that. That's form. That's the interface design. Third, we need to understand the idiom, the vocabulary of styles, gestures and other constructs that, for a Cocoa programmer, say, would include things like switches, panels, pop-up menus and radio buttons. Fourth is structure. We we need to put it all together, deciding "what to include, what to leave out, how to arrange, how to compose the work". That's what we do when we work in Interface Builder. Fifth is craft - "constructing the work, applying skills, practical knowledge, invention, problem solving, getting the job done" - e.g., what we do in Xcode. Finally, the surface. Production values, finishing what the user sees. All art - painting, writing, theatre, film, sculpture or any other art form including user interface design - follow this path, from idea and form to craft and surface. But everything starts from having a clear purpose.
Posted at 1:14PM UTC | permalink
Sat 12 Nov 2005
Prescience?
Category : Commentary/prescience.txt
I was following a particular hit, looking through my server log. It's a search through the weblog for the keyword "Wheelock", and it returned three hits, a couple of which I found interesting given what's happening now. First, "Will we get an AppleStore?". I said it's a no-brainer (in a phrase that's already dated). Plus, what are they waiting for? Well, we still aren't going to get one, not the ones run by Apple anyway, but we are going to get the largest 3rd-party-run Apple retail centre in this part of Asia, in about a week's time. That store will open at The Orchard Cineleisure, which is probably the best place in Singapore to open such a store, and that's something to look forward to. Next, "Dull as Dell". Well, Dell's looking not too bright these days, but what caught my eye were these paragraphs in the article: So they did. The video iPod has now come to pass. Should we be surprised? Let's move on and look at the next paragraph, So what did Andy Grove talk about? So, who then has been pushing the limits, and what could that mean? That sent a chill down my spine. Written on 16th June 2003. Am I clairvoyant, or what? We're looking ahead to the first MacTels - Macs on Intel chips - probably as early as January. We're probably going to be able to run Windows at native speed on these machines. They're going to be the only machines that cover all the bases (Mac OS X, Linux and Windows). They're going to be sexy as hell. They're going to be cheaper even than Dells, or in any case, provide unprecedented value for money. And, when we're done crossing over, we'll get to run Mac OS X on those other ordinary PCs. No, I'm not dreaming. Or being inconsistent. Because, by that time, things are really going to be different...
Posted at 1:20PM UTC | permalink
The Crapolla According to Fek'Lar
Category : Commentary/feklar.txt
While going through my web server logs using WebMon, I "stumbled onto another issue of The Crapolla" : I love finding things like these - where Postfix Enabler, WebMon, and DNS Enabler have done some good. Just how many people are now running sites on Mac Minis, where they used to use Linux or Windows? It'll be interesting to know.
Posted at 8:07AM UTC | permalink
Sun 06 Nov 2005
Doing IT right
Category : Commentary/ITtransformsIndustry.txt
I'd hate to tinge these pages with any hint of negativity, so instead of simply ranting about how inept corporate IT departments can be, maybe I owe it to the reader to describe an alternative vision as to how IT could be used to transform an entire industry. I'm going to return to the example of the general insurance industry and see if I can describe how information technology can be made to work to the users' benefit, and explain that all in the users' own terms. Bear with me, because I've not tried to lay this out in any coherent sense before, but I feel that if we can pin-point what has gone wrong with traditional MIS/IT manager mindset, maybe we can work towards improving its effectiveness. So, here it goes. Imagine you're insuring a ship. The key idea is to make sure you're not putting too many eggs in one basket. For example, you could be insuring several freight forwarders, some of whom could be putting stuff on the same ship. Without a computerised database, it would be hard to keep track of all these. Because, in the physical world, once you've filed the policies in one order, say by freight forwarders or by the insured's name, you can't file them by ship. But with a relational database, you can store the data in one arbitrary physical order, and yet retrieve them in an almost infinite number of ways. And the best thing is that the computer "remembers" long after our mind has lost the battle to keep track of the details. So, how has the system to be designed? First, once you've entered the period of insurance and the name of the ship, the system's got to pull out all the policies in effect across the same period, for the same ship, and accumulate those risks to see if it goes beyond a pre-set limit. A lot of factors come into play - the start and end dates of the policy, the quantity and nature of the items being insured, and the insurance cover being sought. So, in terms of what is required at the user interface, there's a sort of dance where you change the dates of the insurance, tab out of the field, and you want immediate feedback as to whether that's still okay. Or you add new lines of items to be covered by the policy, etc, and you want to know if it's worth going ahead with the policy and what options you can take to re-insure the policy and spread out the risks. There's a lot more of such details but what's fascinating here is the design of the database that will allow the user to get at the information, and the design of the user interface that will allow him to focus on the risks that's been taken and the wordings on the agreement - all these without even being aware that he's working on a computer. So, you're thinking about data structures and user interface navigation. This - the desire to help the user focus on the meaning behind the data so that he can price the product to make a profit - provides the context around which you map the available technologies to pick the ones that will serve these needs. That's why we'll look at relational databases, like Oracle and MySQL. The way we'll use the technology determines how we'll judge the relative merits of the competing vendor offerings. For example, for our purposes, MySQL offers almost everything that Oracle does except that Oracle offers "views" - automated support for the creation and optimisation of views, which are descriptions of what the data needs to look like to an end user, no matter how they're actually stored in the database. Since we use this so often in our design, Oracle has an edge, for the moment. But the important point is that we have a context to base our choice, rather than simply making an assertion that it has to be Oracle just because they're huge or to it has to be MySQL just because it's free. Notice that we've spent a lot of time thinking about what the business needs and trying to map out the data structures. So why do IT managers waste no time in shouting out the slogans - "Windows, VB, .Net, or Java"? Take Java, for instance. Java is just a programming language. The relevant question to ask is what follows next : what kind of application are we using Java to build - a browser-based application or a window-based client-server application? If it's a browser-based application, you rapidly run into problems. Traditional web applications work by having a user submit a form to a web server, and if there is a data entry inconsistency or a transgression of the business rules, the server sends the whole page back to be refilled. So in our marine cargo example, it rapidly becomes unwieldy. With a window-based client-server application, you can trigger a check through all the business rules every time a user tabs out of one field onto the next. But with a browser-based application, you're plodding through one form after another. And that creates another problem - session-management. Because a single business transaction occurs aross a series of form submissions, and many people could be transacting business at the same time, it's quite possible to mix up the sessions and get one person's data crossed over to another's. On top of that, you get concurrency and deadlock issues when more than one session accesses the same set of data - especially when users are quite likely to exit to a totally different site altogether in the middle of a transaction! There are ways to make a browser-based application work more like a window-based client-server application - through the use of JavaScripts, as described in the Ajax project. But this means that you have application logic strewn all over the place - in the JavaScript scripts among all the HTML files, on top of the Java servlets in the web server application. And I'd hate to use scare tactics the way IT managers like to use them but let's turn the table on them. Isn't it a security consideration that you have access and application logic in JavaScripts that can be easily hacked among the HTML files? Any hacker worth his salt can use this to gain access to the system. Notice that I'm talking like an IT manager. The security argument cuts both ways. So, the point is : web browser-based applications could take at least four times longer to build than native, window-based, client-server applications, and when they do get built they're unwieldy, insecure and hard to maintain. So, you can hire any number of Java programmers off the street but you may not get your system built. That's what happened to the company we saw. Their Java development went nowhere even after two years. Their IT guys blamed it on their lack of domain knowledge about the insurance industry. That's about all they're willing for us to be hired. But they still insist that the development has to be in Java and I can only presume that their resumes will look good with them as Java programmers. Java can be used to build client-server applications, using Swing as the Java equivalent of Cocoa. Now that we're comparing apples to Apples, it is possible to demonstrate that using Cocoa is many times more productive than using Swing, as the many Java programmers who took our Java-Cocoa courses will attest. But this is the corporation, and they've got to run Windows. 4th Dimension (4D) is cross-platform, will run on Windows, and is still significantly faster to develop for than using Java with Swing. So, kick out Java and 4D. Just use Visual Basic. But here's one other consideration. What do you do when you have fifty users and you need to make frequent updates to the system? Do you go to every desktop and copy over a new version of the application each time or leave it to the users to mess things up? With 4D, there is a very neat feature where you only need to update the application server and all fifty users immediately get the latest version. That ought to count for something, I believe. So I think the problem with Microsoft-centric IT managers is that they're secure in the domination of Microsoft, where might means right, that they've never bothered to train their minds to see the big picture, to focus on the near term as well as the long term, to see the business as it grows, and to imagine how the system will work as it scales. Somehow Microsoft will provide. It's a waste because there's a more dynamic way of integrating the business for the end users so that the information flows like a well-designed waterway. I see fifty users and, while they have titles like underwriters, claims managers, marketeers and financial controllers, they're doing no better than a clerk's work pushing paper. You could make the system push the paper, or eliminate it altogether. Instead of sherperding deals through the system, the underwriters could concentrate on the nuances of an agreement. Instead of being data entry clerks, they should be developing a more legalistic mind. And claims managers could work like actuaries, using the patterns they find among the payments they're making to help the underwriters fine-tune the pricing of the products. We've built a system that made the information flow like that - that can propel the users towards higher-value work - and I know that it can be done. But we've done that by being open to variety of influences, including Apple's, insofar as there's such a thing as style in information design. A better world awaits and IT managers can help if they concentrate on acquiring domain knowledge and adding value, rather than acting as policemen and selfishly acquiring the means to reach higher paying jobs. Now, how do we bring all these to bear? I don't know and it may to be too slow, our old way, changing the world one person at a time. But if one person reading this could see that it makes sense, and use these ideas to achieve a significant improvement in using IT in his or her own company, then this could be a start. Eventually we may all succeed in making a dent in the universe.
Posted at 2:04AM UTC | permalink
Fri 04 Nov 2005
The Spare Room Tycoon meets the Corporate Orifice
Category : Commentary/spareRoomTycoonMeetsOrifice.txt
I'm taking a break as I try to figure out why this route I've taken is so hard. My interest is in helping people use technology to kill their competition (kill in the metaphorical sense, not as in violence, but it does reflect an intense longing for vindication). So, why not work with corporate IT departments when they specify their "allowable platforms" - Windows, .Net, Visual Basic, or even Java? But this pre-supposes that I hadn't already spent a good deal of thought on that same choice of technologies. The difference, I believe, is that I have a context to situate that choice. I choose tools that will allow me to build in four what I quote five months to build. That extra month is my profit or my buffer against the vagaries of my trade - the users' mis-specification of what they need or simply an increased appetite for features once they see what can be done. It would be a saintly user that will offer to pay more than what they have secured for their end of the deal and we know there are no saints in business. In any case, I would be committing suicide if I choose a tool that will cause me to take anything more than the five months I've promised to build. But corporate IT departments don't seem to have that urgency. They seem to keep one eye on their employability in the job market rather than to do right by their company. Never mind if they themselves couldn't build anything useful in two years - that was the case in my earlier parable of the Corporate Orifice. But why do IT departments have such a voice, even in the face of such abject failure? Because technology is complicated and the IT departments have no incentive to make it less so. For example, insurance is a very complex subject - you insure a ship and the ship travels to many ports, they hold cargo of many items, and they do transhipments, moving the items between ships and across ports. You have to accumulate the risks and check that it doesn't bust a limit, handle items being insured in one currency, billed in another, settled in a third and consolidated as an accounting balance using a fourth. You have to calculate agents' commissions and all the discounts being offered across all the cargo items. You have to be able to do all these complex calculations and yet be able to project that same system to a freight forwarder's office, to capture as much of the data as possible at source. The right system to use is a judicious mix of technologies - one that will give the users at the back office a friendly GUI-based application that will provide all the computational assistance they need to set up the insurance arrangements, tabbing from one field to the next. And yet offer a restricted subset of the controls to be accessed by the freight forwarders and other intermediaries over the Internet via a less rich browser-based interface. To build everything that is required via a browser-based interface is just not possible, given the current state of the technology. We've built something that does what is required at the two ends of the spectrum using 4th Dimension - we can offer a rich client-server based application for the back office, and a browser-based interface for the intermediaries, with both sharing the same computational core in terms of the insurance-based logic. But when the IT department pronounces that it has to be Java, VB, or .Net, pronouncing the magic words with such awe and abandon, who are mere mortals to raise any questions? So why not take the job? Because I've already had Hai Hwee do a prototype in Java and JavaScript to understand the limitations of the technology, and I know, from having built one working system, that you can't make the same thing work with those other technologies, in two years or even five. That's why there are developers who are looking to break that technical impasse and improve the speed of development, with efforts like Ajax and Ruby on Rails. The jury is still out on whether these will help, but technology keeps mutating, and it's stupid to be so dogmatic about Java, VB, .Net and anything Microsoft, even if they are huge today. So why not take the job, still, even if we know that it won't produce a thing but we'll get two years of work and get to play with VB and .Net all this while? Because I can't see how the IT departments can continue to face the users while producing nothing. And we're confident we can find other things to do to avoid being part of that scam. We already have a system that works today, but for the IT department. It's going to be a long war to change people's mindset, because it will take time to educate users that you can try to understand the technical issues even if you don't know the details, so long as you try to understand the concepts. If you're willing to understand issues and avoid learning things by rote, you should insist that IT people talk along those terms, instead of hiding behind the buzzwords. Make them explain what all these means, because they're often all sound and fury, signifying precisely nothing. That's the loneliness of the Spare Room Tycoon, finding the balance in life between profit and ideals and keeping the sanity. But the journey is reward. Or is it?
Posted at 8:19AM UTC | permalink
Thu 03 Nov 2005
The Spare Room Tycoon
Category : Commentary/spareRoomTycoon.txt
I'm reading this book, Spare Room Tycoon by James Chan. Most books about "being your own man" and running your own business are quite smug, as if the authors believe they're more believeable if they're enviably rich and successful. But the reality of life as an entrepreneur is rather different : I came across this book years ago, but forgot about it, and I'm glad I re-discovered this, serendipitously, among some obscure shelves at our Library. It's come at the right time.
Posted at 1:48PM UTC | permalink
The Corporate Orifice
Category : Commentary/corporateOrifice.txt
I recall this quote by Steve Jobs, about "As you know from our limited success at getting our computers into the Fortune 500, Apple's never been very good at going through corporate orifices in order to get at the end users". Neither have I. We were invited to do a demo of our General Insurance System. As usual the users liked it, but the IT guys hate it. "We'll only let it pass if it's VB, Java or .Net". We wrote it using 4th Dimension. Never mind that it's cross-platform. Of course, it's never going to pass. We've spent ten out of the last twelve years of our lives building software for the General Insurance industry. I'm reminded now of why we've decided to leave that aside for a while. There's a sickness in the MIS/IT manager mentality. Fortunately we've stashed some of those hard-earned cash into some passive income generating instruments, so we can dig in. It's going to be a long war.
Posted at 1:48PM UTC | permalink
Tue 01 Nov 2005
OS X 10.4.3 System Update
Category : Technology/OSX10dot4dot3.txt
I've just updated all my machines to 10.4.3 via Software Update. They all look OK after the update. At least my server continues to work OK - SMTP, POP, IMAP, WebDAV, SSL, etc. Hope I'm not talking too soon.
Posted at 8:26AM UTC | permalink Read more ...
|