Sun 29 Feb 2004
Joy and Verve, and InDesign
Category : Commentary/IndesignJoyVerve.txt
We slipped into this by chance. Somewhere along the way, putting together the Java course, I decided I need to include a concise description of the Java language, together with an explanation of classes and objects, encapsulation, inheritance, method overriding, and exception handling. Something that a person can get a good grasp of the language with, over a weekend of reading. Something along the line of Java in a Nutshell, the very first (slim) edition of which I bought many years ago, and which did the job for me - i.e., taught me Java over a weekend.
Due to the shortage of time, I quickly extracted just the parts I need, in an effort that will be difficult to defend against charges of plagiarism. So, I'm going to promise that I will make sure all the students are encouraged to buy the now much-fattened book from O'Reilly, and subsequently rewrite all my notes in my own style, with our own examples, for future courses.
But the point I'm getting at is about InDesign. I used InDesign to create that language guide and I always knew I could print out a PDF version to distribute to the students. But then I realised that I could export a "text-selectable" version of the notes using InDesign's export-to-PDF feature.
So I tried it out and, yes, you can select the snippets of code, copy them into BBedit or Xcode, and run them right away. So we're on a roll. We quickly moved in all of our examples, both Java and AppleScript code, and wrote up the tutorials, all in InDesign.
Except for some problems we continue to have with either InDesign or the PDF file, or BBEdit or Xcode, putting in extraneous characters that mess up the purity of the copy and paste process, we can pretty much run the course off the PDF version of the course notes - with all the explanatory pictures, instructions and source code available in one place.
Fortune may, or may not, favour the brave - but we've now got a way to move people quickly through a course - and we're going to find out if it works, or not, soon.
But that's not all about InDesign. If you're on QuarkXPress, PageMaker, or, horrors, still on OS 9, dump them all and move on to inDesign on OS X. It's a high-performance productivity engine. Plus, you get application integration between the Adobe applications that, for once, live up to their marketing hype.
And the Adobe applications really do exploit the OS X platform. While you're designing the look of the page, you may not like the fonts you already have on your system. For example, I felt serif typefaces didn't look quite at home on a page about Java and object-oriented programming. I wanted a clean modern serif-less typeface. I got out the OS X Font Book, looked through all the fonts I have, and loaded in a couple more that I happened to have on my external hard disk. When I got back to InDesign, the new fonts were picked up automatically by the running program. If you use style sheets, it's a snap to switch in the new fonts and see the effects percolate through the document.
So, at one go, I'm writing a manual for computer programmmers, looking through a book about type faces ("The ABC's of Type : A Guide to Contemporary Typefaces" by Allan Haley), and I'm putting it all together in InDesign. So I'm a writer, geek, and designer, all at once.
And, one more thing. It's so easy to build a Table of Contents in InDesign from the style sheets' structure. And you can put in hyperlinks that will lead your reader to other resources on the web, when they're clicked on. Export them all into a PDF document, and you've produced an indexed, free-text searchable book that faithfully represents the look you've designed into the original document. And you've done it just like a pro.
If we build it, nine of them will (probably) come
Category : Commentary/9willcome.txt
We've got nine people each for the Java on Mac OS X course on Tuesday & Wednesday, and the AppleScript Studio course on Thursday & Friday.
The course material's ready. Or just about. We've been so busy preparing the notes and tutorials that I've had little time to think about how I'm going to go about delivering it.
But without my friend Hai Hwee's help, I wouldn't even have made it here. The Java on Mac OS X tutorials, as we build it up, will contain a lot of original solutions she discovered as we went about building our Accounting application (called Luca) on Java and Cocoa. There may be the basis of a book in there, somewhere.
It's not easy to find Cocoa on Java material anywhere out there. I grabbed hold of the Big Nerd Ranch book on Cocoa programming because it, at least, had a section on using Java. But when I went home and read it, it said something like, "Doing Cocoa programming using Java? Don't." So much for that and not much help elsewhere, too.
But I'm more convinced than ever that, from the point of view of enterprise computing - i.e. building systems for use by businesses - Java on OS X, including building stuff on Cocoa, has got a tremendous potential. What I am seeing is the power to express and deliver solutions that can address all the fronts that a business is likely to face - on the web, in the back office, in retail point-of-sale terminals, and on hand-held palm-sized computing devices.
What I am trying to communicate, through the courses, and wherever I can, is the concept of code reusability. Say, from the point of view of an insurance system, 80% of the code deals with modelling the business processes - e.g., creating an insurance policy object, then teaching it all about computing premiums and the various levels of taxes and commissions, and then making subclasses of it for motor policies and marines policies, and underneath these we have subclasses for private cars and commercial vehicles, ocean tankers and pleasure crafts, etc.
The idea is all about containing complexity, and once you have done that, reusing the core of the code for supporting the e-commerce applications, client-server applications at the back-office, and for building web services for interfacing with other companies' systems and the regulatory agencies.
So, Java on OS X allows me to think like a corporate IT guy (or at least how they are supposed to think, rather just spouting Microsoft-centric geek-speak), and yet use the best computing platform there is to give form to the ideas.
There's a strong, and very troubling disconnect in the IT world. Or at least, as I've felt it. Why is so much of the corporate IT computing experience so much like being in a totalitarian world? It's like the Chinese movies about olden times. When they mention the emperor, even in passing, they cup their hands in salute and do their obeisance, even where the emperor is nowhere to be found. Life with IT should be lived with so much more joy and verve. And we shouldn't have to live among the Mac (lunatic) fringe to find it.
A Web and Mail Server on a Clamshell iBook
Category : Commentary/oldmacusers.txt
Rob Duncan is running a mail server for two domains (turned on using Postfix Enabler), as well as a web server, on an original clamshell iBook.
As for us, I rotate our server between a Graphite (original) iMac, and an old G4 PowerMac.
And I remember a comment someone made about running Internet servers on old Macs. So I searched my mail archives and, yes, it was Terry Allen, "Just a quick email to separate my last comments/suggestions, I noticed your point about older macs being useful - quite right - I have OSX 10.3.1 running on my old blue & white G3 450 with 256MB RAM & an 18GB Seagate Cheetah 10000rpm HD - it is running Tenon's iTools 7.2 & quite a few virtual hosts - runs great, thought you'd be interested in it. No need to chuck out those older macs."
Also, I know my cousin is among the huge contingent of Mac users over at Sun (count James Gosling, Richard P. Gabriel, John Gage, and Bill Joy among the luminaries), though he uses the sleek Pismo-era PowerBook that he upgraded with a G4 processor and is now running Panther on.
So there is plenty of life left in old Macs. I bet Apple's "share of use" is a lot higher than its so-called market-share numbers, whatever they mean.