Forwarding Address: OS X
What the hell is a dogcow?

Monday, December 01, 2003


My post on migrating to (and back from) KDE/FreeBSD turned out to be quite long and detailed, with gigantic screenshot PNGs, so I've posted it on my server. Please read, and feel free to comment via the Quicktopic link at the bottom of the page.

Thursday, November 27, 2003


I rarely ever play video games, I tend to get bored by them very, very quickly, but Quinn is the exception. Quite simply the best Tetris ever.

Tuesday, November 25, 2003


After many weeks in the FreeBSD wilderness, I have migrated back to OS X aboard a 12" aluminum PowerBook.

I plan on detailing my time in exile in a future post, complete with screen shots and bullet points.

Right now, I just want to note what an excellent piece of hardware this machine is compared to my previous PB, a 500MHz Titanium. That thing scratched like a CD and was as floppy as a phone book. Granted, I tend to be hard on computers, but dammit, portable computers should be designed to be ported, and not require sheepskin swaddling and leather screen-protectors and ultra high impact copolymer resin cases (as cool as those things may be, especially ultra high impact copolymer resin).

There's hardly a speck of paint on this entire computer, and in nearly three weeks of use I have yet to put a single scratch or mark on it -- whereas usually the first ding is inflicted within 24 hours. Hell, even the trackpad button is aluminum! One of the dumb flaws of the titanium was the plastic frame between the upper and lower cases. Thousands of anal-retentive Titanium PB owners shat their pants as they noticed their wrists had worn the paint down to the decidedly un-titanium black plastic underneath. On the 12" there's a small grey plastic seam around the edges of the lid and base, and I'll bet like five dollars that it is solid-color plastic all the way through.

The silver keys I'm less confident about -- time will tell. But at least they're not translucent, so I don't have to stare at the eyelashes and other detritus trapped underneath them. Maybe I wasn't sufficiently antiseptic to own a machine like the Titanium. All I know is, the 12" is tight.

Sunday, November 23, 2003


I'm trying to get PEAR installed on OS X and running into problems. Can you help?

Friday, November 21, 2003


I just noticed that Mark Liyanage has written an OS X book: "Mac OS X "Panther" Timesaving Techniques for Dummies" (Amazon). If you've got questions about Panther this might very well be worth checking out. Mark is one of those guy's who's achieved 'guru' status with OS X, consistently putting out the best LAMP and Unix app packages available.

Tuesday, November 18, 2003


When I told my friend David I was upgrading to Panther, he asked "why?". Good question. Mostly, it was for the better Finder interface, but also because many people reported that 10.3 felt faster. This benchmark site confirms that 10.3 is a bit faster in most areas.

BTW, the new Finder interface (with the sidebar and Exposé) really is quite spiffy. Maybe not $129 spiffy, but much better than the Old Way. And, to my taste, better than any of the Finder-replacement applications that I had tried over the last year.


VoodooPad "is a new kind of notepad. It's like having your own personal hypertext library, where you can jot down notes, web addresses, to-do lists... Anything on your mind. VoodooPad automatically links each page together, to form a miniature world wide web, on your desktop!"

I keep forgetting to mention it but VoodooPad is a great little application. I found that it's entirely replaced my text editor as a place where I jot down ideas and design the little pieces of software that I write in my spare time.

Thursday, November 06, 2003


More Unixy goodness. First, James Stansfield wrote to point out that:

sudo apachectl configtest
The above command works wonders as well... This can be run when apache is running
Second: a friend is looking for answers to the following:
Any idea how to set permissions permanently in /dev/?

It's not a disk filesystem, so any changes you make are lost on reboot, and I want to change the perms of /dev/bpf* so I can run tcpdump as myself.

I've only found one reference, some guy on mailing list suggesting that apple's DevFS is old, and doesn't allow configuration of device permissions.

Any ideas? I can make tcpdump setuid root, but I've built 3 versions in the last 2 days, and there seems something wrong about having to do that (not the building, the setuid rooting).

Anyone? Discuss

Wednesday, November 05, 2003


Ah, welcome back Forwarding Address. Sorry I've been away so long.

So, about Jenson's Cocoa license issue. It's not perfectly clear to me, but there's no license on Cocoa per se other than any Cocoa specific agreement you might assent to when agreeing to the Apple Developer Tools license (and there or may not be anything Cocoa-related in there, I haven't checked lately). Broadly, Apple can't revoke your right to use or link to Cocoa in your applications unless you violate some agreement. If the Developer Tools license agreement says nothing about your specific use of the tools and/or Cocoa, then you can't be held liable for doing something you didn't know and agree to knowing was not allowed.

Of course, IANAL, so I'm chasing this up, but I do work with a lot of intellectual property lawyers, and this is the general interpretation I get. Note that this is entirely different from agreeing to a license and then to have the licensor find you to be violating it, as was the case with Apple's iTunes SDK and iCommune a while back.


And when you totally hose your httpd.conf, this little command: httpd -t is really, really useful. Just makin' the mistakes so you don't have to ;-)


Should you need to install DBD::mysql on Panther, here's a few tips you might find helpful. First: DBD::mysql installation will likely fail if you try to do it using the CPAN installer because it won't be configured with your database settings. You'll need to manually install it. Get it from CPAN here: DBD-mysql-2.9003.

To create the Makefile you'll need to pass it your database's username and password:

perl Makefile.PL --testuser=usename --testpassword=password
Next you'll need to add the following step (thanks to Casey West):
perl -pi -e's/MACOSX/env MACOSX/' Makefile

I also had to sudo make install which makes the whole process like so:

perl Makefile.PL --testuser=username --testpassword=password
perl -pi -e's/MACOSX/env MACOSX/' Makefile
make
make test
sudo make install
"Good luck, you're gonna need it." - Han Solo

Monday, November 03, 2003


The founder of the GNU-Darwin project wrote an interesting editorial on Apple and open source today. I really appreciate that the GNU-Darwin project played a role in helping to make the APSL a better open source license.

In my opinion, Apple has made a lot of good progress (such as opening up Darwin, WebCore, and the Objective-C runtime under the APSL) but I do hope they'll go further and open up Cocoa under the APSL. Frequently when programming in Cocoa I remember that I have no significant rights since everything is still, as all of the Cocoa header files simply say, "Copyright 2003 Apple Computer. All Rights Reserved". I didn't use to care about that. Open source helped me realize that I can have rights, too. Apple's been gracious so far, I hope they continue to be. It's played a significant role in me buying and evangelizing Apple products.

Saturday, November 01, 2003


Some software I've been meaning to talk about lately:

Poisoned -- A P2P open-source file sharing application that aggregates "FastTrack (Kazaa, iMesh, Grokster), Gnutella(LimeWire, BearShare, Shareza), OpenNap (Napster), and OpenFT". If you really feel like paying for it, they have links to the EFF among others. One thing I find interesting about this app is that everybody has the username "poisoned" so who will the RIAA sue?

LaunchBar -- surely this has been blogged before here but LaunchBar is an app switching utility that has an uncanny ability to know which app you mean. I find myself using Expose and command-tab more now but others I know swear by LaunchBar.

iSeek -- Puts a search box in your menu bar, allowing you to search Google, Dictionary.com, and wikipedia easily.

iChatStatus -- a great, dorky little open source app that will display what music you're listening to (from iTunes) over iChat.


Mere seconds after posting that last entry I noticed that the following in httpd.conf were commented out:

LoadModule php4_module libexec/httpd/libphp4.so
AddModule mod_php4.c
Uncommenting those has Apache recognizing .php files and everything working nicely.

Is there a Murphy's Law-esque axiom for publicly asking a question being the surest way to stumbling across the answer yourself?


Apache/PHP help needed: I'm getting a new machine up and running and starting with Panther. Everything was going fine until I got to PHP. When I attempt to POST to PHP pages on the new machine I get the following error:

405 Method Not Allowed
The requested method POST is not allowed for the URL...
Googling this came up with dozens of questions about it, and no useful answers so... Anyone know what I need to tweak in Apache for it to permit POSTs to PHP pages? Discuss

Thursday, October 30, 2003


A long time ago I had the idea that perhaps a little utility that stuck a menuitem in the menubar from which you could pop down the picture of your choice might be a handy thing to have. The other night I finally got around to building it. After spending far too much time on this, I present to you: Pictu: The Picture Menu. Discuss


Extended iCal rant from a timezone warrior

Apple's iCal has an unbelievably annoying, poorly thought-out system for handling timezone changes. Here's how it works: when you change the timezone of your system-clock, it adjusts all of your calendar items, so if you go from Pacific to Eastern time, you noon lunch appointment is "fixed" so that it shows up at 3PM -- the Eastern equivalent of 12PM Pacific.

What is the use-case for this? If I'm in San Francisco and I'm going to Toronto in a week and I make a 6PM dinner appointment with my brother and sister-in-law, should I enter it as a 3PM appointment, knowing that my computer will adjust this to 6PM when I land in Toronto and change my system clock? And if I do, how do I avoid double-booking myself when someone else asks me to have dinner at the same time and my calendar shows that 6PM isn't booked, that's fine?

In other words, why does Apple think I want to use Greenwich Mean Time, rather than my internal, subjective frame-of-reference, as my clock?

Now, Apple has updated iCal with a "switch timezones off" feature. Which doesn't work.

Here's how it doesn't work: Create an appointment with timezone "support" switched off. Make it from noon to 1PM. Now, go to your system clock and change your timezone to one hour back. The appointment will shift back by one hour. That's with timezone "support" switched off.

If you switch the "support" on and change timezones, iCal will ask you if you want to change the timezone "display" for your appointments. Answering "no" seems to solve the problem, as all of your events will stay localized for whatever timezone you were in when you created them. What's more, whenever you create an event, it gives you the option of specifying a timezone for it and adjusts it on your behalf -- so if you create a 12PM appointment while in EST and specify that its timezone is PST, iCal will move the event back to 9AM for you.

This stinks. For starters, that's all well and good when you and I make a lunch date for noon next week in New York, but it falls down when you call me back an hour later and ask me if we can make it brunch at 2PM -- now I have to go into iCal and work out that my noon-Eastern/9AM-Pacific appointment is really a 2PM-Eastern/11AM-Pacific appointment and, rather than simply bumping a noon appointment to 2PM, I need to subtract three and move a 9AM appointment to 11AM.

It gets worse, though: say you use the timezone "support" and just don't worry about the timezones. All start/stop times stay as you entered them, provided you keep on clicking "no" every time you change zones and iCal asks you if you want to update your display. So far so good. But woe betide you if you create an appointment with an alarm -- your 9AM alarm will ring a 6AM when you're on the west coast (if you created it while your clock was set Eastern), even though it will show up as a 9AM alarm in your calendar. There's a user-hostile design decision!

It gets even worse: Just wait until you synch iCal with your PalmOS device! Last night, I moved from Mountain to Central time. I adjusted the time-zone on my Clie and my Powerbook, but asked iCal to leave all my appointments in Mountain time. Then I made the mistake of synching my Clie: iSync decided that all the appointments in my Clie were an hour behind, and moved them up an hour -- including my wake-up alarm and the alarm for my 8:30AM conference call (Thanks, Apple!).

I have toyed with the idea of leaving my timezone set to GMT or some arbitrary value, and then spoofing my clock by manually setting it forward or back whenever I get off an airplane, but this royally screws up your email (which arrives at the remote end with bogus timestamps that indicates that it was sent hours in the past or the future, depending), and messes up any kind of incremental backup that uses change-dates to determine which version of a file to overwrite.

So, after all that whingeing, I have a solution of sorts. I used to use an app called "iCalTimeZoneFixer" that would automatically adjust your calendar items when you changed timezones, undoing the damage wrought by Apple's system. But with Panther and the new iCal, this doesn't work so good anymore: about 70% of the time, running iCalTimeZoneFixer deletes all the items in my calendar.

So this morning, while I was missing my phone call because my alarm hadn't gone off, I figured out a fix of sorts. It hinges on the fact that your iCal calendar file (which you'll find in ~/Library/Calendars/$CALENDARNAME.ics") is a flat text file, that you can edit with a text-editor like BBEdit.

1. Quit iCal, then make a copy of your calendar file. Open your calendar file in a text-editor (I used BBEdit)

2. Look for the string that denotes the city/timezone your calendar is localized to, i.e. "America/Chicago" or "America/San Francisco"

3. Go to System Preferences -> Date and Time -> Time Zone and use the map interface to find out the name of your desired timezone (i.e., if you're in America/San Francisco on your way to America/Denver, America/Denver is your desired timezone)

4. Search-and-replace the existing timezone string with your desired timezone and save

5. Start iCal up again, then go back to System Peferences -> Date and Time -> Time Zone and change your timezone. iCal will "adjust" your calendar and you'll find yourself looking at the correct times again

There you have it: using a text-editor and search-and-replace, you can undo the stupidest feature I've ever seen in a calendar app. Discuss

Monday, October 27, 2003


Using GNU Privacy Guard with Mail.app just got a lot better. With the OS X 10.3 upgrade that has rocked a lot of worlds, the nice folks behind GPGMail updated their plugin, which is really just a nice go-between for Mail.app and GPG. The GUI integration has taken a big step forward in this new version, with my wish for a way to select which key you want to encrypt/sign with being granted. If you need to use GPG with Mail.app, there is no living without GPGMail.

Tuesday, October 21, 2003


As part of moving to my new laptop I've also decided to give Mail.app a try and so far it's going well except for two things I've been unable to figure out how to do:
1. Mark all the unread messages in a folder (err mailbox) as Read.
2. Create rules to filter outgoing messages.

Someone fill me in? Discuss

I gotta say though: thread colouring is excellent and the spam filtering seems to be working really well, despite other reports I've read to the contrary.

Monday, October 20, 2003


Sidetrack: a replacement driver for your laptop trackpad that provides pseudo-scrollwheel support. Pretty cool!

Wednesday, October 08, 2003


So, I'm not planning on Pantherizing until I buy my replacement iBook, probably February or March of next year. (This is on the assumption that they announce them a the beginning of January at MacWorldExpo, start shipping them soon thereafter, then get the new hardware bugs worked out over the course of a month.) But I'm sure some of the other folks on this blog have the final version and are using it.

Is it worth upgrading now instead of waiting four months? Will I be able to have a Panther machine and a Jaguar machine (this one, which will become a backup) without going crazy?

Monday, October 06, 2003


the one thing i truely miss from my linux environments is a good pager -- with the resolution on my tibook being so low (comparatively), i just get completely fed up with trying to jam itunes, emacs, safari, ichat, and a billion other things onto my screen (i am a compulsive non-minimizer). i grabbed desktop manager from sourceforge, and now i can't live without it.

i have four desktops setup, with command-option-left and command-option-right for me to move through them all. i have a coding window (also where ichat sits), a music and entertainment window, a webbrowsing and rss window, and one spare one. its either going to make me more productive, or cause me to have 4x the clutter. we'll see.

Sunday, October 05, 2003


Brad Oliver, long time Mac developer, rants about the sorry states of Mac installers and third-party Mac tools. I have to agree on the Mac installers front. If all you're doing is making a Cocoa app to distribute via a dmg file, you're fine. If you need to install kernel extensions, etc, you're going to have a miserable time of it.

Tuesday, September 30, 2003


On the theme of migration, I thought I'd post about an unexpected, probably temporary, migration I made this afternoon -- I'm posting this from the Konqueror web browser, on a machine running KDE on FreeBSD on Intel hardware.

My first-gen PowerBook G4 (500MHz) has served me incredibly well, but it is nearing the end of its service life, with vertical lines on the display and freezes galore. Yes, I should have bought AppleCare :P Today I just couldn't take one more freeze. I dragged the FreeBSD machine, which had been a headless development box, over here to my desk and plugged it into my monitor.

I know this probably isn't going to last. For one thing, I hate desktops, and love laptops. If I made this a longer-term adventure I'd be looking to get me a nice sub-4-pound wintel laptop on eBay. But for now (i.e. while I deal with selling my old PowerBook and buying its replacement), I'm enthused and I think it's going to be very interesting.

I in terms of bang for the buck my "new" machine is quite tremendous. Apple can't touch that. The OS, desktop environment, and all the apps I'm using are free -- and quite current -- and the 333MHz/128M/10GB/CD-R Pentium II tower cost me $60 at a yard sale.

One irony that strikes me is that I never would have done this if I hadn't been using OS X for the past 2+ years. Apple did a tremendous job of making the OS perfectly usable and tidy while leaving the Unix clockwork there for inquisitive souls to play with. So now I know enough to really be dangerous. I've been using FreeBSD on web servers for years, but this is my first foray into the non-OS X Unix desktop world.

Random notes: There is a mind-blowing selection of software out there. The ports system is fantastic. I'm using mostly stock KDE apps right now because that's what I have installed, but plan to move to Firebird for browsing and Thunderbird for mail. Being a web developer, I'm very intrigued by the Quanta Plus development environment, which looks like BBEdit on [insert drug of emphasis here]. My Kensington Expert Mouse Pro USB is plug-n-playing just fine, in left-handed mode no less. I like this old-style tactile feedback keyboard. I like the "Klipper" multiple clipboard. I miss Quartz, especially the text. I miss the Keychain, imperfect though it may be. I miss Launchbar bad. Really bad.

Finally, while the feel of the UI is of course not as nice as Apple's in most respects, the mood is very fine -- and by that I mean that nothing on this machine is trying to sell me something else. I like that. A lot. I'm not being endlessly pestered to upgrade to Quicktime 17, or get a .mac account, or open my MSN Wallet, or pay my shareware fees. I'm free, baby, and it feels good. Discuss

Monday, September 29, 2003


Cocoatech has released a Finder replacement as partially as open source payware under a BSD license. It's interesting watching the traditionally Macintosh shareware world collide with the traditionally open source Unix world.

[via Ranchero]

Update: Neil Lee from Cocoatech wrote in to politely let me know that I didn't read closely enough. Only certain frameworks and other applications have been open sourced. Regardless, I think seeing more open source in the Mac world can only help everybody.

Saturday, September 20, 2003


In looking for OS X tidbits to add to my lazysearch script, I came across /usr/share/calendar, which is full of "today in history" type stuff. This is already there in every stock OS X install, one of the weird bits of BSD detritus. Anyway, I added the following line to my .login file (actually, ~/Library/init/tcsh/login.mine if you must know):

cat /usr/share/calendar/* | grep `date +"%m/%d"`
Note the backticks around the date command, which tell the shell to actually use the output of that command as an argument for grep. Today's output (you can see there are a few rough edges):
09/20   Upton (Beall) Sinclair born, 1878
09/20   Harlan Herrick runs first FORTRAN program, 1954
09/20   Equal Rights Party nominates Belva Lockwood for President, 1884
09/20   First meeting of the American Association for the Advancement of
09/20   First meeting of the National Research Council, 1916
09/20   Magellan leaves Spain on the first Round the World passage, 1519
09/20   The Roxy Theater opens in Hollywood, 1973
09/20*  First Day of Rosh Hashanah (Jewish Lunar New Year; 5741 == 1980;
09/20   Jim Croce dies in a plane crash, 1973
Have fun!

Friday, September 05, 2003


I've started a page that catalogues applications that use or require MySQL to operate: OS X Apps that Use MySQL. I'd really like Apple to include MySQL as part of the default install (I'm sure they can come to an agreement with MySQL AB over licensing if they really wanted to) but until that time it's up to the end-user to do it for themselves.

My thinking is: the more quality reasons to do it, the more likely users are to make the effort to get it done. If you've got an OS X app that uses MySQL, drop me a line and I'll add it to the page. Discuss

Sunday, August 24, 2003


i've been going through the its-the-end-of-the-summer-so-lets-secure-the-house-network fiasco. my home network is managed by one firewall linux box that has three NICs in it -- one for the outside world, one for my wired network, and one for my wireless network. the wireless network is fully open, but it is firewalled off and cannot see the wired network at all. what i wanted was a vpn solution that would let me log onto the network from my tibook and get an encrypted link into my wired network.

i've been tinkering with openvpn as my vpn solution. it really works well even when both ends obtain their IP addresses from a DHCP server and instead of doing something funky as most vpn inplementations does, this actually sets up a virtual interface tun0 on your box that you can send packets back and forth through. after setting it up on the firewall box, i followed pfisterer's os x instructions and after manging the routing table with the following route command

route add -net 10.0.0.0/255.255.255.0 192.168.2.2

i got all the packets destined for 10.0.0.0/24 on my tibook to route over tun0 and into my wired network just perfectly. now if only somebody made a nicer interface so i didn't have to do everything using sudo on the command line... free, kick-butt software!

Friday, August 22, 2003


I only use one news aggregator these days, NetNewsWire. Brent Simmons has just released another beta of the 1.0.4 version. This is the pay version of NNW. There is still NetNewsWire Lite which is free.

The number of features that have been packed into this beta is truly astounding. The biggest is probably that NNW has switched over to Web Kit, so all the content encoded feeds render very nicely. Aaron Swartz's htmlDiff has been integrated. It's faster. It has more keyboard shortcuts than you can shake a 17" Powerbook at. It even has gzip support for servers that can send out gzip compressed files.

One of the best things is that development is fairly open. By that I mean that Brent is willing to listen to people and you can see from his release notes where ideas come from and you almost get a feel for how fast they get integrated into NNW.

Update: The final 1.0.4 version (3.0 MB) is out.

Home
border=0