|
Thu 24 Mar 2005
WebServer Monitor 1.0.3
Category : Technology/WebServerMonitor103.txt
I've added a search field to WebServer Monitor. (Download? Click here.) I'll keep changing the interface while I figure out what I want to add to it, but this is what it looks like now : 
I'm surprised Sendmail Enabler is still being downloaded. And I've never really known how many times people are downloading Postfix Enabler, or any of the other stuff, each day. Now I know.
Posted at 5:34PM UTC | permalink
Wed 23 Mar 2005
Brendan at Five
Category : Commentary/brendanAtFive.txt
Our kid's five today. He figures in these pages because he's the reason why I'm doing the things I'm doing these days. We used to work six or seven-day weeks, my wife and I, but we've had to change the way we lived ever since he arrived. 
I've mentioned Michael Gerber's "The E-Myth Revisited" a few times in these pages. I've lived through the horrors that many entrepreneurs go through and on Brendan's second birthday, I decided that there must be a better way. Otherwise, I wouldn't be around to watch him grow. I talked to a friend the other day, who's running his own company, and he often sleeps over at his office. And so nothing has changed. If you don't make your business work like a machine, you're going to run yourself into the ground. So these pages are a chronicle of my journey to build a business machine of my own. It could be a business that helps other people build business machines of their own, through the systems that I can design, the software that I can write, or the ideas that I can share. Or it could be that we finally found a business that we can run, using the systems that we've built ourselves. Whatever it is, I'm still finding my way there. You know those Rich Dad, Poor Dad books? Don't laugh at them. There's power in some of those ideas. If I had known at 20 the things that I understand now, I would be where I want to be a lot sooner than I have - and that is to live a life of some leisure so that I can work like a demon on the things that interest me. Rich Dad? Poor Dad? I guess I should just aim to be a good dad, after all.
Posted at 2:49PM UTC | permalink
WebServer Monitor 1.0.2
Category : Technology/WebServerMonitor102.txt
OK, release 1.0.2 of WebServer Monitor is up for download. You can now sort the columns, rearrange the column order any way you want, and when you export the log records out (in comma-separated-values format now and possibly tab-delimited and what else later), it'll open up in, say Excel, in the exact same order you have on your log window. Cocoa programming is really so much fun. I like the way a lot of its power remains hidden and unobstrusive and you can just reach out and use them and put them away when you're done. I'm going to re-do some of the things using Cocoa Bindings now and see if I can add in a search field. Throw away your 4th Dimension, FileMaker Pro, Real or Visual Basic. Cocoa is it.
Posted at 12:33PM UTC | permalink
Sun 20 Mar 2005
On the cusp of ...
Category : Commentary/cusp.txt
Already, there have been a few downloads of WebServer Monitor. I hope they're all doing fine. Actually, it's a really simple (and, maybe, limited) application but it represents a few opportunities. For a long time, I was hoping to be able to configure my server remotely, through the Remote Login/SSH secure shell mechanism (and a Mac-like interface), but in such way that the same code will work whether I'm doing something remotely or working locally on localhost. So, WebServer Monitor is actually a technology demonstration - that the idea can work - you use the same application to configure a server locally, as well as remotely (where the application runs on a remote roving machine). Actually that's how it works with the Admin application on OS X Server but I'm not sure how they did it - the important thing to me is that I know how to do it myself, too. Now, this opens up a few opportunities. One, WebServer Monitor can be improved no end - provide log analysis, graphs, real-time monitoring of the activity, etc. I'm sure I will get suggestions soon. Also, now that we can do something to the Apache config file remotely via the user fiddling with a graphical interface, why not do more? Turn on PHP, virtual hosting, WebDav, etc... Why stop with Apache? Do DNS, Mail, the whole ISP-in-a-box idea. I'm thinking about the Mac Mini. Once you've turned on Remote Login in the Sharing Preferences, you may never need to touch that machine anymore. You can do everything from a Mac-like interface remotely. Make it dead easy for a normal human being. I come back to the Ultimate Business Machine idea - the Mac Mini as the Ultimate Business Machine - one that a small business can base their complete operations on. So, we may be on the cusp of great things ...
Posted at 4:35PM UTC | permalink
WebServer Monitor
Category : Technology/WebServerMonitor.txt
I've been using this for about two years. I built this, in AppleScript Studio, even before I built Sendmail Enabler, and way before Postfix Enabler. 
I've been using it to monitor my web server log (i.e., the Apache log file) remotely from wherever I happen to be. It's been quite useful, knowing which pages people find useful on my site, as well as all the places that happen to refer to something that I've written. But I've never released it because it was slow (if you're trying to load in more than 3000 lines of server log records using AppleScript Studio). And, also, because I think it'll bring me even more queries than I have time to answer, e.g., in order to use this, you'll have to know how to set up an auto SSH (Remote Login) connection on the command line first. Even though you only have to do it just once, it's really too difficult to explain. But, now, I think I've solved it. Both questions. Firstly, I've re-written it in Objective-C and it's fast enough to load in, say, 10000 lines of log records reasonably quickly. Then I've also, finally, found the time to write a utility that will help a user set up the SSH (which means Secure Shell) connection from whatever machine (an iBook, say) he wants to use to monitor his server from - with just one click and without knowing any Unix. All he needs to provide is his password for the administrator account on his server machine. He does this in the Preferences Window in WebServer Monitor, which appears automatically when the program launches, if an SSH connection to a server machine is not yet set up : 
As shown, in the picture above, you can set up a Remote Login connection to your server machine from your roving iBook, with just one click. Once you're done, you can do one more thing from your iBook - set up the server's Apache log file so that it'll report referrer information (i.e., the pages that refer to pages on your web site). The Apache log file is not set up that way, by default, but you can change it. With the WebServer Monitor set up to show the referrers' URLs, you're just one click away from knowing how your pages have been referred to from elsewhere : 
This is one of the fun things about looking up your referrers. You never know what might turn up. For example, that referrer URL above will lead me to : 
Have fun, using WebServer Monitor. You can download it from here, right now.
Posted at 3:37PM UTC | permalink
WWDC
Category : Technology/wwdc2005.txt
Leon Chen at Apple WWDR (Developer Relations) asked me if I would have any problems putting this up on my web page. 
Unfortunately, I won't be able to go. Have a great time, those who are going.
Posted at 12:01PM UTC | permalink
Thu 10 Mar 2005
Macs in Labs
Category : Technology/MacLab.txt
I'm still thinking about that Makmal 10 Mac Lab. It was originally meant for conducting multimedia courses. But you could use the machines to teach the Unix stuff. Like teaching students about how mail servers work - by downloading the pieces and compiling from source, where the binaries need to go, and how the config files need to be set up. I know I've learnt a lot about Internet technology by tracing the pieces this way. There's so much good stuff going on in the Open Source world. This is the best time to learn - on a Unix machine that's also so easy to set up, tear down, and pull apart, from a software point of view, that is. I can visualise the process. For example, you can learn how SQL databases work by starting on a smaller project like SQLite, reading the code, and then moving on to something heavier, like MySQL. Same for JDBC drivers. You can read the code and learn so much. Plus, DNS, BIND, Apache, PHP, SSL, etc. You can make the training materials on the Mac, too. Keynote slides, and InDesign-produced manuals and workbooks, all exported to PDF, with hot-links to the relevant URL's for background information, and code snippets all ready to be copied and pasted into software development projects. And you can use Apple Remote Desktop for administering the machines. And Unix scripts to keep all the machines synchronised, in terms of materials. And organise the students into projects - to write code that will eventually be used to run and administer the training program - on-line access to academic schedules, calendaring systems, room bookings, course registrations, feedback forms, etc. - a totally paperless workflow. Because we ourselves (me and Hai Hwee) have done all that. Better still - you can get the graphic artists and the programming geeks to pair up and work together on projects - to build systems that are nice to look at, nice to touch, yet work like a well-oiled machine. You know, you can do a lot with all those Macs sitting in that lab. I know that I already have a lot of fun just thinking about designing just such a curriculum.
Posted at 3:28PM UTC | permalink
Makmal means Lab
Category : Technology/Makmal10.txt
I spent most of the last three days at Makmal 10, the Mac Lab at Fakulti Teknologi Maklumat Sains Kuantitatif (the Faculty of Information Technology and Quantity Sciences) at Universiti Teknologi MARA in Shah Alam, Selangor, Malaysia. I was teaching Java on Mac OS X to people who, themselves, teach Java, operating systems, computer security, multimedia, etc, to students at various Universities in Selangor. These people know a whole lot more about their respective areas of expertise than I do, and so I tried to find ways to help them map what they know to how things work on the Mac - so that, hopefully, something lights up in their minds that a tremendous potential - of exciting discovery and infinite usefulness - awaits them. I hope I have achieved that. But I did enjoy myself immensely. They, of all people, should know that a teacher draws his energy from his students. And I found energy I didn't know I had, over the two days of teaching, because I had great, attentive, and very bright students. So I'd like to say thanks to : Mohd Shahril Razali, Hanizah Anuar, Hayati Abd Rahman, Salyani Bt Osman, Suriana Bt Ismail, Suzana Bt Ahmad, Nur Atiqah Sia Abdullah, Noor Elaiza Abd Khalid, Anita Bt Mohd Yasin, Syed Ahmad Aljunid, Mohd Ali Mohd Isa, Anusuyah Subbarao, Azlan Bin Ismail, Mohd Yunus Mohd Yussof, Normi Sham Bt Awang Abu Bakar, and Aminuddin B. Mohammad.
Posted at 2:27PM UTC | permalink
Sat 26 Feb 2005
Brilliant!
Category : Technology/UserDefaultsBindings.txt

I was playing around with that part of Cocoa Bindings that allows you to save the user's preferences without writing any code. The window above shows a slider, colour well, popup menu, switch, radio buttons, and a text field - covering, more or less, all the things you're likely to use in a preferences panel. The User Defaults Controller mechanism, which first appeared in Panther, worked very well, saving the state of your preferences when you quit the application and restoring everything when you came back. It was all so easy to set up. The "Helvetica" text on top of the window also shows the power of Cocoa Bindings to synchronise the appearance of an object dynamically with the state of your preferences - e.g., its size, font, colour, and even its contents. No code. Yet, you get neat entry points into the system to exert control, if and when you need to. For example, I could save the location of the circle, which doesn't have a user interface control, together with the rest of the preferences, so that it reappears at the exact same position when I quit and come back into the system. Amazing stuff, because it's neat and easy to understand. It just encourages you to build things. In over twenty years, this must be the best software development environment I've ever had the pleasure of using.
Posted at 3:35PM UTC | permalink
Wed 23 Feb 2005
Cocoa, AppleScript Studio, Objective-C, and Java
Category : Technology/courseSummary.txt
We've now created material for three courses - Java on Mac OS X, AppleScript Studio, and Objective-C. We've now done Java on Mac OS X and AppleScript Studio a few times each, improving the material with each round. On reflection, I think probably the best entry point for learning Mac OS X programming is through AppleScript Studio. This is because, with just a modest investment of effort in learning how to use the tool, you can start to get quite a lot of useful things built with it. Then, while working with AppleScript Studio, you're also getting familiar with all the commonly used Cocoa objects (like windows, buttons, check boxes, radio buttons, menus, etc), and learning that there is a pattern to using them. So, you might end up with a lot of things you can use (that you built with AppleScript Studio), that are probably slower than if you built them with Objective-C, but which do the job reasonably well. These are like protoypes and proof-of-concepts. Then, the day may come when you're ready to get them more professionally done. And you may be ready to pick up Objective-C. After all, you already know how to find your way around Xcode and Interface Builder. And Cocoa. I'm starting to think that learning Objective-C is not such a fearsome prospect (at least for "normal" people) after all. It used to be, in pre-OS X days, that you've got to have at least some level of technical competence to work with things like PowerPlant or MacApp, or whatever people used to build commercial OS 7, 8, or 9 applications. Cocoa makes it possible for people who can handle 4th Dimension-type development work to really build commercial-quality applications - without the overheads that tools like 4D brings (not least the overheads associated with development software costs). This is what I'm watching as I teach the current Obj-C/Cocoa course that I'm doing now. How fast can people pick it up? If the idea works, that "normal" people can pick it up and develop useful stuff right away, then you can extrapolate this from it - that exceptional people are going to do some wonderful stuff with it. Give it time, you'll see some interesting things happening (as though they're not already happening), and it'll be a great time to be a Mac user.
Posted at 1:57PM UTC | permalink
Java on OS X in KL
Category : Commentary/JavaOSXKL.txt
It's virtually confirmed that we'll be doing the Java on Mac OS X course up at Kuala Lumpur, Malaysia, on the 8th and 9th of March. The venue is: Makmal 10 (Apple Mac G4), Fakulti Teknologi Maklumat Sains Kuantitatif, UiTM, Shah Alam, Selangor. Java on Mac OS X in Singapore - that was originally scheduled for 1st and 2nd of March. That's definitely being re-scheduled. No further news at the moment.
Posted at 1:14PM UTC | permalink
Tue 22 Feb 2005
Of cults and zealots, or, The case of the blind leading the blind
Category : Commentary/cultsAndZealots.txt
I found this book, "The Cult at the End of the World - The Incredible Story of Aum", at the library. Since, we're always being called Mac zealots or Mac cultists, I thought I'd go read what a real cult feels like. I'll let you know when I've finished it. Now, the thing that irks me about Michael Malone's book "Infinte Loop" is the pointed jab in the direction of Mac users who stayed loyal to the platform through all those lean years - zealots and cultists, indeed. Like we're so blind, we couldn't see through the faults of the company who built those machines we insist on using. But the question is, who's the one that's really blind? The thing I learnt while working in an IT company is that there're two kinds of people. The ones who put their heads down and build stuff. And the ones who hate to build stuff but love sitting in committees and making pronouncements - like who's "standard" and who's not, and which ones win and which loses, which products are "wildly successful" and which won't get pass the door. The thing is, I much rather make stuff, but I've learned that you've got to look up from your work and join in the debate. Otherwise, those other guys can do a lot of harm. Where the problem is, if you're not into "building stuff", is that you don't have any real point of reference. Your head becomes an empty vessel those confident, influential people like Malone and Jim Carlton can do weird things with. For example, when you're into "building stuff", you know your enemy is not Steve Jobs but Chaos. Anarchy. Entropy. You're forever struggling with keeping things from popping out. You're watching the interfaces, keeping things simple, making sure things will work with just one click. You understand about trade-offs. You know what's practical, and what's purely theoretical. You start to get a feel for design. For simplicity. And a healthy fear of what a monster Complexity can turn out to be. The thing is : what Apple has chosen to do - building the whole widget (what's called vertical integration) and taking responsibility for delivering the whole usage experience - that's a pretty reasonable, defensive, complexity-containing engineering design strategy. But in Malone's and Carlton's book, that's greed and myopia, not-invented-here. They're right because Microsoft won. Look around you, in nature, in a water droplet. It's firm and round. Engineers understand surface tension. Things occur in nature up to a certain size and then they get tucked in. Megalomania. That's what Malone and Calton wants us to believe is the natural order of things. Horizontal integration. The things we use have to be used by everybody. Or not at all. Everybody's got to use Windows. Building things in layers is, actually, another reasonable, engineering way of building things. Except that it's not one or the other. You often use both, horizontal and vertical integration, in combination. The trick is to know when to use one and when to use the other. The Microsoft Way, where things are built wholly in layers; it doesn't work. But working, I mean, working well, and not working as in being dictated upon, by political will. We all know Mac users love their machines, while Windows users barely tolerate using it. Nobody (is it Dell, MS, or Intel?) takes responsibility for anything. If the Microsoft model really works, you would see it occurring more in nature. For example, we must all be of one race, one physical specimen, otherwise how could we all talk together. ("Everybody must standardise on Windows, otherwise how could we exchange correspondence efficiently"). We all know how God did it. We're all splendidly different from each other - singularly compact and graceful in design. How we're able to communicate is that we agreed upon the interfaces - like the English language (or the Internet protocols) - which is where we agree to keep things non-proprietary. We know what's proprietary. You, me, myself, I. The Microsoft Way is a topsy turvy world. Where things which didn't work were held together by dictate. Let these guys, the pundits, say what they want. But they love being influential, so let's not let what they say go un-challenged. Otherwise, it'll lead to a rule by fiat. It's not that I love Apple. I love it's products, and the way their engineers build stuff, and the way good design seems to be a way of life. But I definitely hate their sales team. And like a good Taoist, I can see the seeds of future destruction strewn in current successes. But so what? Things go round in circles. Do I cheer when Carly Fiorina got thrown out? I much rather worry about my own compay. How anyone can generate so much bile to kick a man when he's down is beyond me. I'm getting back to building stuff. Zealot or not, you've got to say what you've got to say.
Posted at 3:46PM UTC | permalink Read more ...
|