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.

Wed 17 Mar 2010

A Better PostgreSQL Installer

Category : Technology/PostgreSQLInstaller.txt

When you download and install PostgreSQL from the Mac OS X links at the PostgreSQL website you'll find, after a while, that your Mac refuses to go to sleep automatically. When this happened to my MacBook Pro a few times, because I left it running thinking that it would go to sleep on this own (as this is a habit that dies hard), the battery was severely drained and eventually damaged. (It's now always grumbling at me to "Service Battery").

Somehow, after the PostgreSQL installation, the Mac is left with a setting that interferes with its ability to go to sleep normally. It took me a long time to finger PostgreSQL as the culprit. So I really wanted to find out precisely what was the cause and fix it. (And learn how to work with the Mac OS X package installer at the same time so I could build my own Postgres installer.) But I couldn't find the time, until my friend, Hai Hwee, took on the job.

So, this is Hai Hwee's PostgreSQL installer with the sleep problem fixed. The Mac goes to sleep when it should - great for a development machine.

She's also built a Preferences Pane for PostgreSQL - to start and stop the server - and that actually works (as a dig at the MySQL prefs pane because that doesn't really work properly).

So, the PostgreSQL installer that doesn't suck - available now for Intel-based Macs running OS X 10.5 and greater - in 32-bit and 64-bit downloads.

And Hai Hwee has made the installer able to upgrade the Postgres version if you already have one running. Currently we're installing the 8.4 version, so this will be handy when we find the time soon to bundle in the latest PostgreSQL 8.4.x release.

For MySQL, the Mac OS X downloads at the MySQL site are quite adequate, except for the Prefs Pane which sometimes doesn't work or require a reboot. Maybe, next time, we'll build an installer for MySQL, too, for completeness. Then between these two installers and our soon-to-be-renamed Maven, I'm only missing a tool that'll help a database administrator to set up users and groups in an easy and consistent way across the two databases. Then I'll be getting closer to an end-to-end solution, including tools that'll run on the iPhone and iPad. That's going to make the Mac and iPhone and the iPad serious business machines (at least, as far as the things we dream of building are concerned).

Posted at 12:55AM UTC | permalink

Thu 11 Mar 2010

DNS Enabler Snow 4.0.4 wth Dynamic DNS Updates

Category : Technology/DNSEnablerSnow404DynamicDNS.txt

I've released DNS Enabler Snow version 4.0.4. This is the one with the ability to listen to DNS update notifications from clients on dynamic IP addresses and keep their host names always in sync with their current IP addresses.

This is how it looks like :

The new control is the "Allow Dynamic DNS Updates" check-box.

Once this is set and the name server restarted, the DNS Server will be able to listen to dynamic DNS updates from clients on dynamic IP addresses, or clients that are constantly on the move, like MacBooks. This is so that everybody can refer to them simply by their domain names and not worry about which place or even which country they happen to be currently on.

The clients need to run the companion application to DNS Enabler Snow, called DNS Agent. The only thing the DNS administrator needs to do is to transfer an authorisation key generated by the server to each of these clients so they can be given the credentials to update the server without any user intervention.

Clicking the question-mark icon next to the "Allow Dynamic DNS Updates" opens up a dialog box where you can find the Authorisation Key. The administrator can drag the authorisation key onto the server's desktop and copy it to each of the clients whose IP addresses need to be tracked, either via file transfer or email.

Once on the client, if it has the DNS Agent application on it, the user can simply double-click on the key file to open the DNS Agent application to install the key. Then its a simple matter of entering the address of the DNS Server and the host name of the client machine. Then he can start the IP address-monitoring daemon and close the application.

The daemon continuously monitors the state of the IP address and updates the DNS Server whenever the IP address changes. It continues to run, even across shutdowns and reboots, until the user stops it from the DNS Agent interface.

If you leave the DNS Enabler Snow application on in the server, you can see the updates appearing automatically, but a few minutes later (say, 10 minutes). Why so late? This is because updates are cached by the server but not written straightaway to disk because the updates have to be fast in case they come in in volume (the way dyndns.com's server's load would probably be). They're registered immediately by the server and you can check that it's true if you do a dig on the server in Terminal. But the zone files are batch-updated later. When they do get updated, you'll see that reflected on the DNS Enabler interface immediately.

Both DNS Enabler Snow 4.0.4 and DNS Agent 1.0 are available now.

And so, I can continue now with my iPhone/iPad exploration.

Posted at 7:17AM UTC | permalink

Wed 10 Mar 2010

Introducing DNS Agent

Category : Technology/IntroducingDNSAgent.txt

For a long time, I've been wanting to replace DNSUpdate with my own app (DNSUpdate had been keeping my server's IP address record on dyndns.com updated in sync with my domain name whenever that IP address changes).

Ever since the Work Around Bonjour troubles we've had on OS X 10.4.7, DNSUpdate hadn't been working quite right, always stalling when you try to install its IP-monitoring daemon, and even now on Snow Leopard.

So building something to replace it had been on my radar for some time. And the time came when I received a request to add dynamic DNS client support to DNS Enabler Snow. I worked on this over the last couple of months and I have now a new version of DNS Enabler Snow to release, which I'll do next, but first I'll introduce its companion app, DNS Agent :

DNS Agent can update a DNS Enabler Snow-enabled DNS Server with a client's ever-changing IP address (i.e., those machines on dynamically assigned IP addresses or those machines always on the move), as shown above.

Or, DNS Agent can update dyndns.com, if the user has a member's account with dyndns.com (see below).

Setting it up to use with dyndns.com is dead easy - just enter your members.dyndns.com userID and password by clicking on "Set Up Update Keys" button, enter the host name(s) of the machine for which you want DNS Agent to update dyndns.com, start the IP-address monitoring daemon, and you're good to go (as shown above). You can then close the app because the daemon continues to run, even across reboots, until you stop it.

Setting DNS Agent to work with a DNS Enabler Snow DNS Server is just as easy. I'll come to it next when I've finished updating DNS Enabler Snow's web page.

But DNS Agent is available now. Only for Snow Leopard.

Posted at 2:34AM UTC | permalink

Sat 06 Mar 2010

MailServe Snow 4.1.4

Category : Technology/MailServeSnow4dot1dot4.txt

I've updated MailServe Snow to 4.1.4, so that it can also handle 2048 bit length SSL keys.

On top of that, I've also added a new custom Procmail settings button to the Spam panel.

MailServe Snow uses Procmail to integrate Postfix, Dovecot and SpamBayes to implement spam filtering. With version 4.1.4, the user can now set up custom Procmail directives to be processed before or after the default procmail directives for handling spam filering.

The default procmailrc can also be edited and there's a button to revert the directives back to their default state if, for some reason, the user's custom edits fail to work.

Download the latest MailServe 4.1.4 now.

I have a new version of DNS Enabler Snow to be released next. Plus a new companion app, DNS Agent. They will work in concert to allow client machines on dynamic IP addresses to update the DNS server whenever their IP addresses change. With this, users can now set up their own dynamic DNS service, much like dyndns.com.

Actually, I've made DNS Agent able to also update dyndns.com so that I can now use my own app instead of DNSUpdate. It seems to be working well on my live site but I'll need to test it for a few days more.

Plus, I'm also working (with my friend, Hai Hwee) on the iPhone and the iPad simulator to port Maven (which will soon be renamed) and Luca to these platforms. So lots of work. More work, less talk, more reading, and more time with the family - that comes pretty close to paradise on earth, at least for me.

Posted at 4:31AM UTC | permalink

WebMon Snow 4.0.5 Released

Category : Technology/WebMonSnow4dot0dot5.txt

I've updated WebMon Snow to 4.0.5.

From this version, on WebMon Snow will create SSL test certs and cert requests at a default 2048 bits instead of the previous 1024 bit standard.

There is a movement towards supporting only 2048 bit length keys by Certificate Issuers and browser makers by December 31st 2010 and this is to prepare for it.

According to the GoDaddy link that I quoted, above, "It is estimated that the computer power required to break 1024-bit length secure certificate private keys will exist by 2011."

But it seems like it's already been broken yesterday. (See "RSA 1024-bit private key encryption cracked").

So, right on time. And I'll be updating MailServe Snow, too.

Posted at 1:49AM UTC | permalink

Fri 29 Jan 2010

MailServe Snow 4.1.3 Released

Category : Technology/MailServe4dot1dot3Released.txt

I've released MailServe Snow 4.1.3.

It includes a few new features. I've added the ability to create and delete mail users from within MailServe, and decide if the user should be hidden from the Login Window and whether he has the full complement of the standard OS X home folder or a minimal home folder to store only the IMAP folders.

The administrator can also decide for this user if his spam mail will be deleted right away or continue to collected in the spam folder.

Dovecot has been updated to the latest version 1.2.10.

Fetchmail was updated by Apple to 6.3.11 via the latest software updates, and this version has a much less chatty log and so the Fetchmail log has been merged with the Postfix and Dovecot log in the MailServe Log Panel.

Finally, there used to be a 16K limit to the size of the Aliases field (and all other similar fields). This limit has been removed and they can now contain as much information as the mail admin wants.

This is a release that includes a substantial amount of code changes, plus a lot of tweaks that the user don't see underneath - unless I left some bugs and, of course, hell may then break loose. But I've tested as much as I can and I've been using it on my live server for a week now. Hope that I've done enough.

This is really the time to put in the new features - when Snow Leopard has already settled in for a while. It would have been unwise to attempt all these when Snow Leopard just came out. So it's a bit of an inversion (in terms of business practice) from what the users would have expected. But this is dictated by the realities of living at the cutting edge of technology. I think this works. (And I'm now going to work on a major new feature addition to DNS Enabler Snow, though there's a new toy - the iPad simulator - that's calling out its siren song.)

Posted at 3:38AM UTC | permalink

Wed 27 Jan 2010

Dovecot 1.2.10

Category : Technology/Dovecot1dot2dot10.txt

Dovecot 1.2.10 is out, so I've updated the latest test version of MailServe Snow 4.1.3 to include it.

I might also be able to include a feature that'll allow the user to set up his own custom procmail recipes, in addition to the one that's set up for the SpamBayes junk-mail filtering to work.

This is going to be a pretty significant update.

Posted at 8:42AM UTC | permalink

Mon 25 Jan 2010

Dovecot 1.2.9

Category : Technology/Dovecot1dot2dot9.txt

I forgot to mention that the latest (testing-stage) MailServe Snow 4.1.3 also includes the latest Dovecot 1.2.9 release.

But you'll need to save your MailServe config and then do a de-install of MailServe so that MailServe can then replace it with the new version of Dovecot when you start up all the services again.

I'm starting on a new version of DNS Enabler for Snow Leopard that will hopefully make it able to support dynamic DNS updates from client machines that are on dynamic IP addresses.

Posted at 12:50AM UTC | permalink

Sat 23 Jan 2010

MailServe Snow 4.1.3

Category : Technology/MailServeSnow4dot1dot3.txt

There is now a new 4.1.3 version of MailServe Snow (as yet unreleased). I've added the ability to create new OS X users from within MailServe.

The administrator has the option to create standard OS X users (with the full complement of folders inside their home folder) or ones with only a minimal home folder (to contain only the IMAP folders) and these latter type of users are hidden in the OS X login window.

It needs more testing before I'll release it. I'm using it now on my live server.

There's one more new feature - the ability to indicate that spam for a specific user should be sent straight to the black hole, via /dev/null, with just one click. I've used this to make sure that my son Brendan never ever gets to see the spam/junk/filth that was heading his way (or at least the ones that were filtered off by SpamBayes - a few still get through unfortunately).

Because the users thus created who have a minimal home folder do not appear in the login users list, they will also not show up in Systems Preferences' Accounts pane. So, how do we delete them when necessary? I've given the mail administrator the ability to delete users but, to be safe, MailServe will not delete admin-level users.

Current MailServe Snow users who would like to try it can just contact me and I'll send the copy over.

Posted at 10:52AM UTC | permalink

Mon 18 Jan 2010

Designing Software Cinematically

Category : Commentary/Story.txt

Actually there's one book I'd like to recommend that software developers read (okay, only if you also love movies) and that's Robert McKee's "Story: Substance, Structure, Style and The Principles of Screenwriting".

Long ago in the '80s, Brenda Laurel made the analogy that designing computer systems is a lot like figuring out the manifold activities that go towards putting together a play. That was in her book, "Computers as Theatre" which, though rather dated by now, is still a classic. And one can argue that with the Internet, YouTube and all, its time has come.

So, if you're of such a persuasion, you can find much of relevance in Robert McKee's exhortation to tell good stories always. For in telling good stories, you pare away at the details, so that what you have left is all that you need to keep the viewer on the message.

Where computer-systems design and story-telling diverges is when after you've set up a sense of expectation (via the layout of the "scene"), in computer-systems you must go on to fulfill the expectations, but in a play, the playwright often does just the opposite, building suspense and creating the drama that keeps the audience transfixed.

But the point is, the principal creative activity in both endeavours is the setting up of the scene (because in computer-systems, if you create in the user the right expectations, he will already know what to do, and you save yourself the bother of having to write a thick user guide). And the principles are quite similar in both cases, which shouldn't be surprising if you're a software designer who also loves watching movies.

Just one more thing. Reading the book, you'll enjoy movies a lot more because Robert McKee deconstructs famous scenes from e.g., Casablanca and also one from Chinatown, which struck me because, watch this. In the scene the detective slaps the woman, saying, "You're lying. Tell me who she is!". "She's my daughter." Slap. "She's my sister." Slap. "She's my daughter." Slap. "She's my daughter. And my sister!" Slaps. Then the horror, as the truth dawns on the detective (and also on us, the audience).

Now watch how Steve Jobs uses this technique, in the launch of the iPhone. "We're launching three products today. An iPod. A phone. And an Internet communicator. An iPod, a phone. Are you getting it?" And the crowd goes wild.

Posted at 1:50AM UTC | permalink

Sun 17 Jan 2010

The Apple Licensing Myth

Category : Technology/AppleLicensingMyth.txt

Glad to see that Jean-Louis is still a fan. What's with the Apple Licensing Myth? Let's hear it from one who should know.

P.S.: Jean-Louis Gassée lost out to Steve Jobs when Apple chose NeXT instead of his Be to build what became Mac OS X. Yet he's generous in his assessment of what Steve Jobs had done to turn around Apple. Unlike most business failures, Apple's problems in the John Sculley / Mike Spindler eras weren't in the strategy. The "build the whole widget" idea really does work. The problem was in the execution and also, in some small part, due to the fact that Apple was way ahead of its time.

Posted at 11:32PM UTC | permalink

WebMon Snow 4.0.4

Category : Technology/WebMonSnow4dot0dot4.txt

I've just released WebMon for Snow Leopard 4.0.4 with two new features. WebMon now allows Server Aliases to be changed, rather than be set to the default *.domain, so that server admins can easily set up sites with sub-domains.

Also WebMon now allows Custom Apache Directives to be set for each hosted domain (called Domain-Specific Directives), on top of the ones that are set for the server as a whole (called the Server-Specific Directives).

And I've re-arranged the GUI so that, as the user's eye moves down the window, his mind concentrates first on the domain-specific settings before moving on to the increasingly server-specific. (Or at least that's what I hope will happen.)

P.S.: I'm now working on some enhancements to MailServe Snow. I hope to be able to release them by next weekend or the one after. Then I'll work on one new feature for DNS Enabler Snow.

Posted at 4:17AM 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.