January 22, 2008
In which we restore from backup
Frequent — and easy! — backups accompany all the best software systems. I was perturbed this morning when my telephone crashed, hard enough that it needed a full reinstall and restore. I was happily surprised at how completely the software restored itself: all of the settings, down to the "wallpaper" photograph. Hooray! All I lost was a list of words to look up from the book I was reading yesterday.... Read more
December 05, 2007
In which we propose a quieter world
If all the world were compiled, rather than interpreted, things would run much more smoothly. Imagine: all the portions of the day that are dead routine, such as brushing one's teeth, trimming the mustaches, walking to the office. Individuals could choose to optimize breakfast, if they always stop at the corner for a coffee ("regular"1) and danish (or, in a C++0x world, I suppose that would be at the Coffee King for a decaf non-fat triple Americano &mash; "We make it different, here" — and a muffin). They could optimize sleep (wow! this is fantastic) and ... now I am thinking about debuggers and inspecting elements, and this whole idea is becoming less amusing. 1On reflection, perhaps "regular" would be a localization thing.... Read more
October 26, 2007
In which the MacBook Pro is on its way out
Probably anticipating Leopard: (salim@drassanes) ~ % last salim console drassanes.local Sat Oct 27 11:10 still logged in reboot ~ Sat Oct 27 11:08 salim console drassanes.local Sat Oct 27 11:01 - crash (00:06) reboot ~ Sat Oct 27 11:00 salim console drassanes.local Mon Oct 15 16:47 - crash (11+18:13) reboot ~ Mon Oct 15 16:47 shutdown ~ Mon Oct 15 16:45 salim console drassanes.local Mon Oct 15 16:42 - 16:45 (00:02) reboot ~ Mon Oct 15 15:26 shutdown ~ Mon Oct 15 15:25 salim console drassanes.local Fri Oct 5 11:23 - 14:18 (10+02:54) reboot ~ Fri Oct 5 11:22 shutdown ~ Fri Oct 5 11:21 salim console drassanes.local Wed Oct 3 14:19 - 11:21 (1+21:02) reboot ~ Wed Oct 3 14:18 salim console drassanes.local Mon Oct 1 10:28 - crash (2+03:49) reboot ~ Mon Oct 1 10:27 shutdown ~ Mon Oct 1 10:27 salim console drassanes.local Wed Sep 26 16:15 - 10:26 (4+18:11) reboot ~ Wed Sep 26 16:05 salim console drassanes.local Mon Sep 24 10:05 - crash (2+06:00) reboot ~ Mon Sep 24 10:04 salim console drassanes.local Wed Sep 12 06:52 - crash (12+03:12) reboot ~ Wed Sep 12 06:49 shutdown ~ Wed Sep 12 06:48 wtmp begins Wed Sep 12 06:48... Read more
October 19, 2007
In which we stare at the Marble of Doom
I wonder if the time-wasting (and time-waste-measurement) site Marble of Doom will accept uploads from Spin Control? Then we could collectively describe the amount of time that OSX programs spend blocking; correlating this information with ktrace output and see which programs use too many syscalls ... Or perhaps we had best leave all this to the good developers at Apple.... Read more
August 31, 2007
I've been living in a downtime world
This is the longest uptime the MBP has enjoyed in months: (salim@bar\M-C\M-'a) ~ % uptime 10:58 up 11 days, 15:56, 6 users, load averages: 0.60 0.59 0.58 Sadly, the Finder decided to quit early for the long weekend. Reboot time.... Read more
July 24, 2007
In which we work around
This script is a work-around for Apple Bugs 5296510 and 5296576, which have not yet been fixed by Apple. This problem only affects certain models of MacBook Pro. This script downgrades the Apple AirPort drivers and firmware distributed with Mac OS X 10.4.10 to the ones distributed in 10.4.9 Your model identifier is MacBookPro2,2 You are running Mac OS X, version 10.4.10, build 8R2218 Performing task: check You have 4 of 4 parts reverted to 10.4.9 You have 4 of 4 parts present Currently loaded 802.11 and AirPort drivers: com.apple.iokit.IO80211Family (153.2) com.apple.driver.AirPortAtheros (223.47.4) Your WiFi stuff: Wireless Card Type: AirPort Extreme (0x168C, 0x87) Wireless Card Locale: USA Wireless Card Firmware Version: 1.0.47 Wireless Channel: 44 See this and this for a little background. The script (output only shown above) was developed by a colleague, and he will release it once wider testing bears out my excited assurances that the dam' thing works!... Read more
July 17, 2007
In which we fly under the radar
I am trying to add more information about the kernel panics I have been seeing several times each day on my MacBook Pro, but Apple's bug-tracking site spits out java.lang.NullPointerException repeatedly. Ha bloody ha. An unfortunate coincidence, as my productivity with using the MBP and the particular wireless base-stations we have at work has come to a grinding halt. And a frustrating occurrence, because I really want Apple to sort this one out so that I can work untethered (from both power and network!) again. I'm a mobile sysadmin, dammit.... Read more
July 13, 2007
In which we downgrade from a Brigadier
About two dozen of these from the MacBook Pro to Apple over the past three days, ever since Travis pointed out a known issue with a specific wireless access point, 802.11, and the MBP running 10.4.10. I swear this had never happened before he demonstrated the kernel panic on his own machine. panic(cpu 0 caller 0x0035E29B): mbuf address out of range 0xa9 Backtrace, Format - Frame : Return Address (4 potential args on stack) 0x251d3ac8 : 0x128d08 (0x3cc0a4 0x251d3aec 0x131de5 0x0) 0x251d3b08 : 0x35e29b (0x3ecf78 0xa9 0x51c7400c 0x1) 0x251d3b58 : 0x34d18b (0x251d3b8c 0x618 0x0 0x0) 0x251d3b98 : 0x6d33b3 (0x0 0x618 0x0 0x251d3bcc) 0x251d3be8 : 0x98867e (0x0 0x618 0x0 0x519f1038) 0x251d3c28 : 0x98e5ed (0x237e8000 0x618 0x251d3c78 0x35e98c) 0x251d3ce8 : 0x9914fc (0x237e8000 0x36ed3a00 0x51a12000 0x6) 0x251d3e98 : 0x98a785 (0x237e8000 0x38e8b80 0x40000000 0x38e4900) 0x251d3f08 : 0x39b3c3 (0x237e8000 0x38e8b80 0x1 0x38e4900) 0x251d3f58 : 0x39a595 (0x38e8b80 0x135eb4 0x0 0x38e4900) 0x251d3f88 : 0x39a2cb (0x38e9c40 0x0 0xaeffab 0x0) 0x251d3fc8 : 0x19ad2c (0x38e9c40 0x0 0x19e0b5 0x420a140) Backtrace terminated-invalid frame pointer 0x0 Kernel loadable modules in backtrace (with dependencies): com.apple.iokit.AppleYukon(1.0.11b2)@0x984000 dependency: com.apple.iokit.IONetworkingFamily(1.5.1)@0x6cc000 dependency: com.apple.iokit.IOPCIFamily(2.2)@0x584000 dependency: com.apple.iokit.IOACPIFamily(1.2.0)@0x63b000 com.apple.iokit.IONetworkingFamily(1.5.1)@0x6cc000 Kernel version: Darwin Kernel Version 8.10.1: Wed May 23 16:33:00 PDT 2007; root:xnu-792.22.5~1/RELEASE_I386... Read more
In which we compromise security
The iPhone is buggering my passwords for web applications. I typically use -- and many sites prudently require! -- a password seed that is a mixture of letters and numbers, so as to throw off the brute-force, dictionary, and script k1dd3 attacks. However, the iPhone's split keyboard (one view for alpha, a second for numeric and symbols) means additional taps in order to enter passwords that have combinations of alpha and numeric characters. Worse, logging in to a site where my username or password contains these interleaved becomes slow and tortuous. It's re-learning typing, but less efficiently. I changed a few passwords for apps that I expect to use more from the 'phone than the 'puter, but in doing so felt a pit in my stomach that I was easing up too much on the security of the passwords in favour of the convenience of the keyboard. I wonder if a subsequent update will include an escrow service (like Keychain?), or an option for an extended keyboard.... Read more
July 11, 2007
In which we party like it's 10.4.1
MacFixIt has a few words on the OSX time-bomb. updateGoogle pointed me to a freely-available version of this alert. One reader pointed out that you could use the value of defaults read /System/Library/CoreServices/SystemVersion ProductUserVisibleVersion , but I don't know a programmatic way to get at that value. Mac OS X 10.4.10 is the first iterative release of Mac OS X to have 5 digits in its version string (1, 0, 4, 1, 0). It is also the first iterative release of Mac OS X to use the ".10" extension. This is causing some significant issues. The initial three [sic] digits for "10.4.10" are the same as "10.4.1," an earlier release of Mac OS X 10.4 (Tiger). Since the "MAC_OS_X_VERSION_ACTUAL" string (used by Cocoa applications to determine the current OS version) can carry a maximum of four digits, Mac OS X 10.4.10 and and 10.4.1 are both labeled "1041." This means that some applications recognize Mac OS X 10.4.10's version string as Mac OS X 10.4.1 and refuse to properly run, erroneously thinking that the system version is too old. For instance, the application UNO requires Mac OS X 10.4.4. When running under Mac OS X 10.4.10, it recognizes the Mac OS X version number as 10.4.1 and refuses to operate. Essentially, the built-in Cocoa method for forbidding an app to run on too low a system breaks against Mac OS X 10.4.10. We're still searching for a viable method for tricking applications into thinking that the system version is 10.4.9, which would largely obviate this problem.... Read more
June 24, 2007
In which we fall for the charm of the blinking lights
I had been using TomatoTorrent, a simply, Cocoa-y app that did lots of nice things with BitTorrent. It does not, however, recover well from tracker failures (isn't that what p2p is all about?!?), and does not manage bandwidth as marvellously as does Azureus. I was leery at first, given the nature of the project (exploring Java's SWT (Standard Widget Toolkit). I used to stare into the closet full of (computer) hardware here at home, watching the drive lights, the switch lights, the router lights: dozens of LEDs reassuring me with their green and yellow flicker. And now? Now I watch avidly the steel, cold blue of the download screen on Azureus.... Read more
June 21, 2007
In which we control the spin
A while ago, Apple added Spin Control to the OS, in order to monitor and collect data on application hangs. I have been using it to collect samples about Firefox, which has really been lodged in my craw. I am correlating the samples from this app with my network logs. Yuck.... Read more
June 17, 2007
In which we take a fall for the beta
Peer Guardian and Privoxy. I have time to play around with p2p shielding because the new Beta of the Safari web browser keeps taking a dive, knocking out my laptop (and, intermittently, work that I am doing -- !). It ducks into an unkill-able state, and I can't manage to whack it from the Dock, from Activity Monitor, from the Force Quit Applications menu, nor even from a command line (kill -9)! Re-booting seems to help, although it occasionally produces unbearable tuning signals upon reboot (wait, I did sync before flipping the power switch, right? I have to bounce on the power because properly shutting down the MacBookPro fails when it tries to kill Safari, which is the whole reason I'm shutting down in the first place ...).... Read more
June 15, 2007
In which I wonder: where do all the unknown tokens go?
0:1: syntax error: A unknown token can't go here. (-2740), courtesy AppleScript.... Read more
April 04, 2007
HOWTO Crash your browser while watching dumb videos
For above result, visit this Modern Humorist page using the Firefox web browser. Yo.... Read more
April 03, 2007
On setting up a Mac again and again and again
When setting up a new Mac (which I have to do with alarming frequency! alas!), I rely on my cheat sheet, dashboard widget notes, and a few other notes. I also found LockTight, and Visor (once again, props to the folk(s) at Blacktree!). Part of the reason that I so wanted a hotkey for screen-lock is that the screensaver sometimes decides that it no longer requires the password to unlock, and this aggravates me no end. A workaround for that: % cd~/Library/Preferences/By Host/ % rm com.apple.screensaver..plist file. You then must reset the Screensaver Preferences to again enable locking.... Read more
January 21, 2007
HOWTO get video onto yr ipod
In order to get .mov, .avi, .mp4, and other files shoe-horned onto an iPod, try VisualHub, successor to iSquint; for DVDs, the (free!) Instant Handbrake, a sibling of the full-featured Handbrake. Alas, the excellent DVDBackup is not to be found any longer. Most of these pieces of software are drag-an'-drop; should a more detailed explanation be necessary, read Mark Pilgrim's HOWTO.... Read more
January 18, 2007
In which we score a minor victory
Ninja Kitten's Menufela extension (part of the Application Enhancer family of whatnots) allows OSX users to reclaim the precious twenty-odd pixels at the top of the screen. This doesn't require a kernel extension, although for some reason I thought it would -- that damn Menu Bar is so integral to the Apple gestalt.... Read more
December 19, 2006
In which we enter Safe Mode and screw the pooch
I have had some trouble getting Firefox to trim certain built-in toolbars. I want to maximize the screen space I have, eliminating the Bookmarks and Navigation toolbars (but keeping the Status bar -- I could not cheerfully browse without the "Connecting to ..." messages!). Each time I load the program, I find that I had to make the customization; the changes would not persist across restarts. I looked through the various .js bits in my Profile, but could only find the incantations to make third-party toolbars go away (and these worked, curiously). I looked into the userChrome.css file, and mucked around with user.js, to no avail (I had to guess at element names). I looked through the Mozillazine Knowedgebase and tried making the changes in Safe Mode; that didn't do the trick. Someone helpfully pointed me to the workaround for a localstore.rdf bug, and this worked like a charm. Yay: another 24 pixels. Bye the bye, the magnificent expression "Screwed the pooch" comes from Tom Wolfe's "The Right Stuff": The phrase 'screw the pooch' itself was derived from an earlier phrase that was quite familiar to those of us in the service in WW2. I was a Fire Control Computer technician (Fire Controlman) in the US Navy 1944-1946. Anyone who has ever been in the military has spent an inordinate amount of time in a 'stand-by' formation waiting for someone to get the orders to start some activity. Many man-hours were spent in an activity that was commonly known as 'Effing the dog.' [Note: They didn't really say, 'Effing,' but I'm sure you can figure it out.] Back home in civilian life this was cleaned up to the slightly more acceptable 'screwing the pooch.... Read more
December 09, 2006
In which our hero triumphs over the OS
I finally corralled my music, all of it, onto a modern version of OSX. This all came about because OSX cheerfully upgraded the firmware on my iPod to a version that was incompatible with the verison of iTunes with which it synchronized. No problem: a subsequent run of Software Update helpfully told me to update iTunes. The two still would not talk to each other, and a little poking 'round in Apple's Knowledge Base uncovered the problem: I needed the shiny new iTunes 7, which does not happilly coëxist with OSX10.2, which, you know, isn't broken so why should I fix it? I painstakingly backed up the old g4, and gingerly set up a brand-new Mac Mini (the dual-core Intel version). A few hours of rsync later, I had all of the metadata from the g4 copied to the Mini, and had connected the music-containing hard drives. Amazingly, nothing blew up. Everything worked! The iPods sync'd happily, music continued to play, and life seems swell.... Read more
December 04, 2006
In which we have fun with Disk Futility
Thanks to a tip from Greg, I set my Crash Reporter preferences to "Developer", and was able to attach a debugger to a crashing Safari: Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_INVALID_ADDRESS (0x0001) at 0x017fe7dc Reading symbols for shared libraries ............. done /Users/salim/341: No such file or directory. Attaching to program: `/Applications/Safari.app/Contents/MacOS/Safari', process 341. Reading symbols for shared libraries ................................................................................. warning: Can't find LC_SEGMENT.__DATA.__data section in symbol file .................... done 0x901d134a in TAATAcceleratedMorph::SetupTableData () Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x017fe7dc 0x901d134a in TAATAcceleratedMorph::SetupTableData () (gdb) bt This suggested a memory problem, which could be the stuck i/o that I saw earlier. Processes would remain in the process table forever, with the kernel waiting to complete some sort of network, disk, or, as it turns out, memory, operation. I opened up the OS X Disk Utility, and found hundreds of problems when I asked it to Verify Permissions on the startup disk, /. (Frustratingly, the Verify and Repair Permissions are separate buttons but produce similar output, concluding with "The privileges have been verified or repaired on the selected volume." Several passes later, many things seem to be working well. One curious artefact: the disk-repair effort revealed that the /usr/standalone/i386/boot.efi file had read-only permissions (fixed) and that it contains the stern admonition "This program cannot be run in DOS mode."... Read more
December 02, 2006
In which we use ktrace and kdump
OSX just works, right? No. Lately the number and variety of problems afflicting my relatively new Mac Book Pro feels like the tasks of Heracles have beset me. Or, worse, that I can only solve problems such as the Finder going away by rebooting. That feels icky. Or, more technically, it is ass-backwards. Most intriguingly, processes, even native Apple applications like Mail and Safari, go out to lunch and never return. Forcibly quitting them, either through the Force Quit dialog, is effective but unsatisfying. I cannot type more than four characters in an HTML form without Safari entering a death spiral (I call this a spiral, although the call graph provided by Activity Monitor shows nothing, nothing). Reading through the ps man page teaches me a lot about wayward processes in BSD, but I am still not convinced I know what is happening. The moribund E state that some processes find themselves means that the kernel is waiting to complete some i/o for the process; perhaps network, perhaps disk. What sort of i/o would Quicksilver get hung up on? In fact, while I was looking for more information about debugging tools for OSX, Safari crashed in a spectacular way.... Read more
December 01, 2006
In which we, finally, restore sessions
A combination of the hints in this blog and this blog led to adding four user preferences in Firefox 2.0 in order to enable the Session Restore feature. To edit the config, either hand-edit the user.js file in your profile directory; or, through the browser's about:config URL, manipulate or add the following items: browser.startup.page 3 [1 is the default Start Page] browser.sessionstore.enabled Type: Boolean Value: true browser.sessionstore.interval Type: integer Value: 30000 [the Value sets the time between restores, in milliseconds] browser.sessionstore.resume_session Type: Boolean Value: true Easy as pie, really, but why this is not exposed through the Preferences | Tabs widget I do not know.... Read more
November 24, 2006
HOWTO Downgrade iPod firmware?
A few months ago, my iPod (two generations old) broke. To be precise, the interaction between the computer to which the iPod syncs broke: an iTunes upgrade forced a firmware upgrade on the iPod, and the firmware in turn required a more recent version of iTunes -- which is not available with the 10.2 version of the Mac OSX. Crap. I thought, well, I can downgrade the iPod. I keep older versions of the iTunes application bundle handy because each rev disables some functionality that I had particularly enjoyed. No such luck: one Updater helpfully noted that "An iPod is connected, but is not mounted on the Desktop." Now, if only I could force OSX 10.2 to mount the dam' thing, I'd be in business. I turned to the wisdom of the Internet. Threads on iPodHacks and iPodBank (cache, because the site appears down) sounded helpful but did not work in practice. On the reasonable-sounding advice on these sites, I hacked various BuildIDs into the SysInfo file; restored the iPod itself to old, older, and ancient versions of the firmware; and downloaded somewhat sketchy updaters from third-party sites on the 'net. No go. What now?... Read more
November 16, 2006
In which I take an advanced degree
The MacBook Pro now runs much cooler (under 60º), thus making it a more likely candidate for a laptop.... Read more
November 06, 2006
November 04, 2006
In which I still cannot lock the screen
I have long struggled with OSX's lack of resource for locking the window manager and the screen. I am not content with the Hot Corners available in the Screen Saver Preferences Pane: not only might pointer bounce away from the edge, but it requires mouse movement, and I prefer a hotkey or a command-line to do this. I am also not happy with the two-click lock icon provided in the Menu Bar by the Security Pref., for reasons you now understand. I have tried hacks such as a short shell + AppleScript to invoke the ScreenSaverEngine (/System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app/), which is what I thought locks the screen. Although this is not the right thing to do, because I might end up with multiple ScreenSaver instances (and a totally unlockable screen!). Apparently the right way to start the screensaver is the private API used by the keychain menu item to lock the screen, and this is used by the LockTight application. I want to try the MenuMaster program, which allows hotkeys to bind to things like scripts, but am a little nervous about third-party OS extensions. UPDATE: Quicksilver's LockScreen plugin loads the Keychain menu extra internally as a bundle, and then invokes the keychain menu's "_lockScreenMenuHit" selector directly.which calls the same code path as selecting the screen lock icon from the keychain menu.... Read more
October 26, 2006
In which I get no S(MC)atisfaction
Although Apple's new firmware does not address the crashes on my MacBook Pro, it may help MacBook users who experience random crashes.... Read more
October 21, 2006
More belly-aching about the macbook pro
Oddly, Universal binaries on the MacBook Pro keep crashing, most notably Safari and the Finder itself. Third-party applications seem most stable: even Firefox remains running reliably. The MacBook Pro has also developed a tinny, high-pitched whine that I cannot correlate with high disk or CPU activity, and drives me absolute batshit (I am also preternaturally sensitive to the "whine" of fluorescent lamps). Yuck. I am going to go play with a MacMini and see if that offers any relief.... Read more
October 19, 2006
In which the the third time's the charm
The second MacBook Pro battery — Apple recalled the first version — began discharging completely overnight. The battery charge went from 210 to 39 minutes overnight, and in fact barely held 15 minutes once disconnected from the power supply. I swapped out the battery, and the third time's the charm. I hope.... Read more
October 11, 2006
In which we have fun with power management
I have (just only!) discovered the pmset command for the PowerBook / MacBook Pro (ugh. that name!). sudo pmset -b lidwake 0 instructs the power manager to wake the machine only after a keypress, even if the lid opens. pmset -b specifies the paramets for battery power management only, and pmset -c for AC only. pmset -a sets both, but may overwrite the battery settings in some cases. I had to reboot recently because of permissions corruption somewhere in my profile: after the upgrade to 10.4.8, the computer no longer demanded a password when waking from sleep or screensaver mode (the preference remained selected, though). The uptime was 28 days, which I don't think I ever had with a PowerBook.... Read more
September 19, 2006
In which iPhoto bites the dust
I can reliably cause iPhoto to crash by clicking on a slideshow -- any slideshow. In fact, restarting after the first crash showed that almost all of my photographs were gone, but the crash-inducing slideshows remained. Date/Time: 2006-09-20 12:53:34.069 +0100 OS Version: 10.4.7 (Build 8J2135a) Report Version: 4 Command: iPhoto Path: /Applications/iPhoto.app/Contents/MacOS/iPhoto Parent: WindowServer [62] Version: 6.0.4 (6.0.4) Build Version: 2 Project Name: iPhotoProject Source Version: 3050000 PID: 10948 Thread: 0 Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x000000b4 Thread 0 Crashed: 0 com.apple.iPhoto 0x00138f56 0x1000 + 1277782... Read more
September 17, 2006
In which we cook eggs
After the second rev of the PowerBook arrived, I found my legs burning from the searing heat dissipated along the body of the laptop. Now with the MacBook Pro, the heat is even more intense, but Marcel Bresink has released a Universal binary of the OSX Temperature Monitor, a fantastic piece of software that reads the hardware monitors to report on CPU and hard-drive temperature. The configuration and ease-of-use are tremendous, and the app as a whole is very OSX-er-iffic. It offers dynamic reports in the menu bar, in the dock, as a dashboard widget, and in its own application pane. So far I have recorded temperatures as high as 82º, mostly while compiling. Over-night, while idle, the CPU temperature will drop down to the teens. Another mac tip: To eject a stuck disc from a PowerBook or MacBook Pro, try $ drutil eject.... Read more
September 04, 2006
Some notes on setting up a laptop
In addition to the applications I regularly use and the single widget I use, I have a few other bits of setup for a new laptop. Mail.app specific ports for SSL-enabled IMAP and SMTP; install a personal cert; install the self-signed cert for my IMAP server; and add some headers: defaults write com.apple.mail UserHeaders '{"Reply-To" = "theemail@goes.here"; "Bcc" = "another@address.here"; }' Terminal.app in addition to my colour scheme, I always forget to enable the "Use option key as meta key" tick-box. I also need to use the Netinfo Manager to set my login shell to /bin/zsh from /bin/bash (you laugh, but the default until 10.3 was /bin/tcsh!) Security Why doesn't OSX offer a key combination, or some scriptable method, to lock the screen? keyboard layout Although I don't want to remap the "capslock" key, I do want to disable it. startup To show verbose, non-graphical startup: sudo nvram boot-args="-v". (To turn this back off: command-option-P-R while booting, or sudo nvram boot-args="". Check the flags from the command line with nvram boot-args ) A few other interesting applications: rogue Rogue, the classic curses-based game.... Read more
September 01, 2006
In which I do not know HOWTO get ogg and flac files onto my ipod
Although this page hints how to get files from ogg and flac into mp3 format, I still want to play them directly from the ipod. Can't.... Read more
August 18, 2006
In which another one bites the dust
No, I cannot get a MacBookPro: in addition to the different power supply, the MBP has an ExpressCard/34 but not a PCMCIA slot, which I rely on for mobile internet access. Dagnabbit.... Read more
August 11, 2006
In which I find the only widget I will ever use
I have not become accustomed to using the OSX Dashboard Widgets, despite the proliferation of almost-there ideas expressed as mini-applications. I am still quite enamoured of the widget idea, and wrote a handful to ease some routine tasks at work -- actually, it did nothing for the tasks themselves, but take the scripts from very small pieces of shell code to bloated applets in a very pretty presentation layer. I found this, the Disable Dashboard Widget, and voilà!, hundreds of megs of memory become free, and I am can remap a function key (f12) to something useful, like a screen-lock script.... Read more
July 15, 2006
July 08, 2006
In which our hero dives into the xml
Frustrated with the forever-limited export options available in Delicious Monster's Delicious Library media-management software, I decided to wade through the single XML file the program uses to store data. Hey, at least it's not a plist. The file does not contain timestamps, but it does contain links, however inconvenient, to the hack-y "shelf" concept in the software. The xml file swells to about 12400 bytes per entry Using perl's XML::Simple on my late-model PowerBook on the 4M XML file, a simple run of the parser takes several minutes: 106.13s user 1.62s system 57% cpu 3:07.57 total. I want to extract title, author, and ISBN information, as well as the date I added the item; but the XML output by Delicious Library does not conform comfortably to a structure that I can parse, and reading through the source to DeliciousExporter shows that the authors had to include plenty of special cases and output-munging in order to build the HTML pages from the source XML.... Read more
June 12, 2006
Howto get real audio files on to your ipod
I have been listening to the Rolling Stones Sessions of Death Cab for Cutie, which are readily and handily available from Rolling Stone's web site. To get these from the interwebs to my iPod was but the work of an instant: download use Audio Hijack, a simple and superb piece of software. It requires that you restart the application from which you are recording audio, but other than that is completely non-invasive. And it has a hilarious logo. Play the RealAudio link, and click "Record" in AudioHijack. The file appears as a .aiff Open the file (the default association is with Apple's iTunes) and control-click on it from within the application. One of the options offered is "Convert to .mp3" (or "to .aac", if that is your default). Select this, and iTunes converts the file in the background. Edit the mp3 info (control-click, select "Get Info", and edit from the resulting popup window). Sync to an iPod, and Bob's yr uncle. MTv has some non-Mac compatible Windows Media Player DRM built into its site. I have not yet figured out how to get this to work with their setup.... Read more
May 30, 2006
In which we phone home
Manas Tungare has published his freeware version of LoJack for Laptops: the Laptop Theft Protector. Not for the faint of heart, it requires knowing how to place and run a php script on a webserver. Other than that (and surely that can be automated even more fully, without the privacy concerns the author cites), it's oojah-cum-spiff, or a little bit of all right.... Read more
May 25, 2006
In which we provide a public-service announcement, with GUITAR
Fasier Spiers's FlickrExport plugin for uploading snaps to flickr directly from Apple's iPhoto application has a whole new progress meter setup, and also measures bandwidth usage (cool!). Despite the iPhoto claim of supporting 250 000 images, my wee little Mini simply cannot cope with my thirty-odd thousand photographs (six years, and that's all I have saved? Heavens! That's probably 15% of the total shutter clicks.) I started an album of feral cats in Istanbul. Such cute, flea-bitten li'l beasts.... Read more
May 24, 2006
In which we study the design of trains
A Parable by Edsger W.Dijkstra, sometime in 1973. Years ago a railway company was erected and one of its directors -- probably the commercial bloke -- discovered that the initial investments could be reduced significantly if only fifty percent of the cars would be equipped with a toilet, and, therefore, so was decided. Shortly after the company had started its operations, however, complaints about the toilets came pouring in. An investigation was carried out and revealed that the obvious thing had happened: despite its youth the company was already suffering from internal communication problems, for the director's decision on the toilets had not been transmitted to the shunting yard, where all cars were treated as equivalent, and, as a result, sometimes trains were composed with hardly any toilets at all. In order to solve the problem, a bit of information was associated with each car, telling whether it was a car with or without a toilet, and the shunting yard was instructed to compose trains with the numbers of cars of both types as equal as possible. It was a complication for the shunting yard, but, once it had been solved, the people responsible for the shunting procedures were quite proud that they could manage it. When the new shunting procedures had been made effective, however, complaints about the toilets continued. A new investigation was carried out and then it transpired that, although in each train about half the cars had indeed toilets, sometimes trains were composed with nearly all toilets in one half of the train. In order to remedy the situation, new instructions were issued, prescribing that cars with and cars without toilets should alternate. This was a move severe complication for the shunting people, but after some initial grumbling, eventually they managed. Complaints, however, continued and the reason turned out to be that, as the cars with toilets had their toilet at one of their ends, the distance between two successive toilets in the train could still be nearly three car lengths, and for mothers with children in urgent need -- and perhaps even luggage piled up in the corridors -- this still could lead to disasters. As a result, the cars with toilets got another bit of information attached to them, making them into directed objects, and the new instructions were, that in each train the cars with toilets should have the same orientation. This time, the new instructions for the shunting yard were received with less than enthusiasm, for the number of turntables was hardly sufficient; to be quite fair to the shunting people we must even admit that according to all reasonable standards, the number of turntables was insufficient, and it was only by virtue of the most cunning ingenuity, that they could just manage. With all toilets equally spaced along the train the company felt confident that now everything was alright, but passengers continued to complain: although no passenger was more than a car length away from the nearest toilet, passengers (in urgent need) did not know in which direction to start their stumbling itinerary along the corridor! To solve this problem, arrows saying "TOILET" were fixed in all corridors, thereby also making the other half of the cars into directed objects that should be properly oriented by the shunting procedure. When the new instruction reached the shunting yard, they created an atmosphere ranging from despair to revolt: it just couldn't be done! At that critical moment a man whose name has been forgotten and shall never be traced, made the following observation. When each car with a toilet was coupled, from now until eternity, at its toileted end with a car without a toilet, from then onwards the shunting yard, instead of dealing with N directed cars of two types, could deal with N/2 identical units that, to all intents and purposes, could be regarded as symmetrical. And this observation solved all shunting problems at the modest price of, firstly sticking to trains with an even number of cars only -- the few additional cars needed for that could be paid out of the initial savings effected by the commercial bloke! -- and, secondly, slightly cheating with regard to the equal spacing of the toilets. But, after all, who cares about the last three feet? Although at the time that this story took place, mankind was not blessed yet with automatic computers, our anonymous man who found this solution deserves to be called the world's first competent programmer. I have told the above story to different audiences. Programmers, as a rule, are delighted by it, and managers, invariably, get more and more annoyed as the story progresses; true mathematicians, however, fail to see the point. Dijkstra developed the concept of semaphores for inter-process communication. He also described the problem of deadlocks, as eventually retold in the Dining Philosophers Problem.... Read more
May 23, 2006
In which we open the hotel door with a carton of cream cheese
I was inadvertently locked out of my hotel room a few days ago: I had left the heavy brass key at the reception desk, and planned on returning before the clerk left for the night at 2300. However, sunset at the beach in Kijkduin was late, and I spent too long watching the windsurfers. As I hastily arranged a ride back to the hotel I imagined covert ways to get in to the room: with a thin credit card? with a picklock set? with my pocket-knife? with someone else's key? I did not, however, contemplate using cream cheese: [Lukas] Grunwald cowrote a program called RFDump, which let him access and alter price chips using a PDA (with an RFID reader) and a PC card antenna. With the store's permission, he and his colleagues strolled the aisles, downloading information from hundreds of sensors. They then showed how easily they could upload one chip's data onto another. "I could download the price of a cheap wine into RFDump," Grunwald says, "then cut and paste it onto the tag of an expensive bottle." The price-switching stunt drew media attention, but the Future Store still didn't lock its price tags. "What we do in the Future Store is purely a test," says the Future Store spokesperson Albrecht von Truchsess. "We don't expect that retailers will use RFID like this at the product level for at least 10 or 15 years." By then, Truchsess thinks, security will be worked out. Today, Grunwald continues to pull even more-elaborate pranks with chips from the Future Store. "I was at a hotel that used smartcards, so I copied one and put the data into my computer," Grunwald says. "Then I used RFDump to upload the room key card data to the price chip on a box of cream cheese from the Future Store. And I opened my hotel room with the cream cheese!" Much more about RFID hacking in WIRED.... Read more
May 22, 2006
On methods of Human-Computer Interaction
Smack your MacBookPro and switch desktops. Oooh, visceral.... Read more
May 17, 2006
In which we provide sufficient thrust for a pig to fly
Some of the core problems of DNS include: cache poisoning, spoofed servers, answers tampered in transit, and the inadequacy of udp (for dns). Secure DNS does not address software problems such as buffer overflows or some attack vectors -- Denial of Service, for example--, but does provide for authentication of data (intact xmission) from a guaranteed name server; and for non-repudiation (who and signed what data); and requires a chain of trust to the root. It anticipates the use of the DNS extensions proposed in EDNS0 in order to address reply packet sizes (>512 bytes). How about storing ssh-key fingerprints in DNS? This could be a poor-man's key-management system. Combining the functionality of DNSSEC with GPG, PGP, and SSH keys with DNS might solve the burgeoning problems of key management. ... but only the Swedish registrar offers a signed top-level registry. And, by some estimates, 95% of the .com zones probably do not want to be signed -- they are ephemeral or fly-by-night, and have no practical use for information authentication. With sufficient thrust, a pig will fly. This phrase originates with Lewis Carroll or in Scotland, or both. It also appears in RFC 1925.... Read more
March 24, 2006
In which we harness the power of the command line
I think of quicksilver as a visual command-line, with completion, but having a genuine cli is often very valuable, as Mohit Muthanna points out in this nicely-put-together piece on using mdfind and mdls.... Read more
March 13, 2006
In which web services rox0r
zooomr and amazon web storage (how cool is that!?!?) join the ranks of wacky widgets available on the web. and through the magic of SOAP, REST, xml-rpc, and myriad other buzzy words, I bring you:... Read more
March 12, 2006
In which the mac dumps core
Of all the osx applications to barf, I least expected Terminal.app to throw up all over the place. Yet it did: Date/Time: 2006-03-12 15:37:11.304 -0800 OS Version: 10.4.5 (Build 8H14) Report Version: 4 Command: Terminal Path: /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal Parent: WindowServer [64] Version: 1.5 (133) Build Version: 13 Project Name: Terminal Source Version: 1330000 PID: 203 Thread: 0 Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000000 Thread 0 Crashed: 0 > 0xffff8a60 __memcpy + 704 (cpu_capabilities.h:189) 1 com.apple.CoreFoundation 0x9074e410 copyBlocks + 164... Read more
February 11, 2006
In which we explore the world, remotely; or, the armchair hacker
Romeo vs. Salling Clicker for couch-surfing supremacy. The former offers a plugin architecture; the latter, stability and support. ... and I rediscovered some (non-os-specific) toys for use with photos, and with flickr in particl'r at Flagrant Disgregard.... Read more
February 07, 2006
In which we head out to the bike shed
A colleague insisted I read Poul-Henning Kamp's post to FreeBSD mailinglists on collaboration (and pettiness, and time-wasting, and ... ). The "bikeshed post" has become canonical. Parkinson explains that this is because an atomic plant is so vast, so expensive and so complicated that people cannot grasp it, and rather than try, they fall back on the assumption that somebody else checked all the details before it got this far. Richard P. Feynmann gives a couple of interesting, and very much to the point, examples relating to Los Alamos in his books. A bike shed on the other hand. Anyone can build one of those over a weekend, and still have time to watch the game on TV. So no matter how well prepared, no matter how reasonable you are with your proposal, somebody will seize the chance to show that he is doing his job, that he is paying attention, that he is *here*. In Denmark we call it "setting your fingerprint". It is about personal pride and prestige, it is about being able to point somewhere and say "There! *I* did that." It is a strong trait in politicians, but present in most people given the chance. Just think about footsteps in wet cement.... Read more
January 30, 2006
In which it walks like a duck
flyakite announced v3, which implements OSX in a browser. I smell lawsuit, the same open-grave odor that brought down the googleX homage to the dock. In other OSX news: jwz is porting xscreensaver to the Mac.... Read more
January 07, 2006
In which we stare at the tickr-tape of the unconscious
David Young released tickr, a pretty cocoa app that scrolls images from flickr. Vive le flickr!... Read more
January 04, 2006
In which the system is down
The fileserver behind this is having some issues. In the meantime, consider that MUNI will be shutting down the Market St Subway later this month, in order to perform some maintenance: Metro Subway Stations from Embarcadero to Church Street To Close at 10 pm Monday-Friday for Metro Improvement Project On Tuesday, January 17th, 2006, the Municipal Transportation Agency (MTA) will begin Phase I of the Metro Improvement Project. The Metro subway from the Embarcadero to the Church Street stations will close at 10:00 p.m. instead of 1:00 a.m. Monday-Friday for Phase I of the project. Also, there will be no N Judah rail service after 10:00 p.m. Monday-Friday between the Caltrain depot at 4th & King Sts. and Duboce Ave. & Church St. Bus shuttles will provide substitute service for the subway trains. The Castro Street, Forest Hill, and West Portal subway stations will remain open until their usual closing time of 1 a.m. Monday-Friday during Phase I. The Metro Improvement Project The Metro Improvement Project will replace the overhead-wire system that provides power for the Metro cars in the subway. Phase I will take approximately one year and includes the stations from Embarcadero to Church Street. Phase II, which will start in the winter of 2007, will replace the overhead-wire system between the Castro Street and West Portal stations. Combined, the two phases will take approximately two years. The replacement project is necessary because the overhead system in the subway is over 25 years old, and maintenance costs and service problems in the subway have been increasing because of the aging system. Metro Service After 10:00 p.m. Monday-Friday During Phase I After 10:00 p.m. Monday-Friday, K, L, and M Metro rail lines will only operate between their outer terminals and the Castro Street Station until the start of regular Metro Owl bus service at 1:00 a.m. J and N Metro rail lines will only operate between their outer terminals and Church & Market Sts. until the start of Metro Owl bus service. Shuttle bus service will be provided between 4th & King Sts. and Castro & Market, along King St., The Embarcadero, and Market St., until the start of regular Metro Owl bus service. The buses will stop at designated stops along the route. Passengers will be able to transfer to and from the J and N Metro rail lines at Church & Market, and to and from the K, L, and M Metro rail lines at the Castro Street Station. Saturday-Sunday Metro Service Saturday and Sunday evening Metro rail service will not be affected, and all the stations in the subway will close at their usual time of 1:00 a.m. However, Saturday morning Metro rail service will start at 7:00 a.m. instead of 6:00 a.m. for the duration of the project, and Metro Owl bus service will be extended to 7:00 a.m. on Saturdays. Ballpark Service Metro rail ballpark service on the K and N lines will be provided on baseball game days. However, no rail service from the subway to the ballpark will be available after 9:30 p.m. Monday-Friday. For games that end after that time, K and N rail service from the ballpark will only be provided by the Metro cars that have been banked to the west of the Caltrain depot. After those cars have picked up passengers at the ballpark, service from the ballpark will be provided by the shuttle buses as outlined above, as well as by the regularly scheduled 15 Third Street, 30 Stockton, 45 Union-Stockton, and 47 Van Ness bus lines that serve the ballpark area. Accessibility Transfers between the shuttle buses and rail service will be provided for wheelchair users and others needing to use the accessible wayside platforms for the J and N Metro rail lines. The transfers will take place at the Duboce Ave. & Church St. stop for both inbound and outbound J-line service, as well as for inbound N-line service, and at the Duboce Ave. & Noe St. (Duboce Park) stop for outbound N-line service. For more information on Muni service, please call Muni's Telephone Information Center at 415/673-MUNI (673-6864), or visit Muni's Web site at www.sfmuni.com. For information on Muni's Accessible Services Program, please call 415/923-6142 (TTY 351-3443).... Read more
December 16, 2005
In which we pit Finder vs MultiFinder
System 6, my favourite. Before the Finder and MultiFinder united, when we had to splurge for programs like RamDoubler, before QuickTime ... Then again, System 7 does have a lush feel to it, what with the bulging Trash and all.... Read more
December 12, 2005
In which the idea falls short of the mark
TrafficGauge are selling their shiny new handheld communications widget. Its sole purpose: to provide a way for drivers to learn about freeway congestion. Although very nifty -- it draws information from public CalTrans sensors, and combines data from several third-party sources -- it falls short of being useful because it's a handheld without any additional interface. How to use it, safely, as a driver? And why not make the software available for mobile-phone and pda platforms via Java? (This is one of the few times I will endorse Java!) Cool, but ... so what? Were data available for secondary streets, the device might be able to indicate alternative routes -- but the state does not yet collect this data, so this feature is lacking. Even were recommendations made for alternative routes, surface and feeder roads are not always able to handle sudden, massive overflow from freeways (that would lead to even more and disparate congestion, and, instead of isolating the problem to the freeway system, which is self-contained, it could affect traffic on a much larger scale; so perhaps the lack of alternative routes is a good thing).... Read more
November 18, 2005
In which punk rock is whatever we made it to be
After reading the ugly presentation on Why I hate apache, I felt compelled to clean up my various httpd.conf files, in the process fixing punkrock.virji.net, which rips off the famous d boon sticker and plays The Minutemen's sentimental "History Lesson Part II" from "Double Nickels on the Dime". As much as the song brings tears to my eyes, the album title (and the awesome diy cover photograph) makes me chuckle. The same image figures into The Shins' video for "New Slang", which sweetly pays tribute to this album (and others). Yes, the punkrock url has been broken for about three years. I finally fixed it. And I really cannot stand apache config syntax, but give me an httpd.conf over a sendmail.cf any day.... Read more
November 07, 2005
In which we have a photofilesystem
tuxmann has released 1.0 of flickrfs, a FUSE-based representation of flickr, the (social) photo-storage service.... Read more
November 02, 2005
In which multicast is our king
Stuart Cheshire, designer of Zero-Configuration Networking (that's RFC 3927 to you IETF fans out there) quoted Antoine de Saint-Exupéry today with respect to protocol design: "You know that you have finished not when there is nothing left to add to the protocol, but when there is nothing left to take away from the protocol." Saint-Exupéry was an aviator, and I suspect that he was referring specifically to aircraft design when he said that "La perfection est atteinte non quand il ne reste rien à ajouter, mais quand il ne reste rien à enlever." I think the same applies to bicycles!... Read more
October 19, 2005
In which I love it when a plan(imeter) comes together.
The ACME Laboratories BART map is cool; the Metro map is cooler. As is the planimeter, which gives rise to a miserable play on words. These do not work in Safari.... Read more
October 12, 2005
In which vector graphics appear
Eyebeam research (great name, that!) have added vector-graphics support for Google Maps. Their proof-of-concept application is a New York City Subway map. I like this better than the transit-maps-on-ipod widgets of a few months ago: different medium, yes, but easier to design programmatically, and more functional ( alpha portability, I suppose).... Read more
September 17, 2005
In which it is to larf, nay to hoot an' holler
Thanks to the OSX Password Generator (also available as a Dashboard widget): classicist516696945*woolgrowing The mostly-undocumented OSX builtin is actually FIPS-181-compliant. You can find it via System Preferences -> Accounts -> Change Password -> (click on the key to the right of New Password).... Read more
August 15, 2005
In praise of screenshots
change the default screenshot dump type by using a command-line: defaults write com.apple.screencapture type image_format \ && killall SystemUIServer where image_format is any of png pdf jpg tiff. Pre-Tiger (10.4.x), the default was pdf; Tiger defaults to png. You must restart the SystemUIServer to see the changes. Screenshots are cool.... Read more
August 02, 2005
In which changes are at hand
Apple introduces its first multi-button mouse in the era of OSX, and Greg points out that Tiger supports remapping the capslock key to control (!!): System Preferences -> Keyboard and Mouse -> Modifier Keys (irritatingly, a non-navigable button: one needs a mouse to activate it!).... Read more
July 22, 2005
In which life is delicious
After using Delicious Monster for the past year or so, I find the lack of feature development somewhat frustrating. Why can't I export to formats other than text (and even that export does'n't allow me to choose delimiters, CSV format, etc. ...) The delicious guys have posted some cool new third-party stuff on their blog, such as the DeliciTunes, but really this should be integrated into the app. I'm dumping some of my DVD to hard drives, and they are now in brown paper bags awaiting transit to Amoeba or something. I'd post the list online, but ca'n't get DeliciousExporter to work with DeliciousMonster 1.5 and Tiger [ insert sad 'smiley' face here ].... Read more
July 18, 2005
In which I hack
Over the past few days, I have been hacking a lot, mostly for work, but also a little for non-work. I have discovered or re-discovered many power-user bits of zsh, my interactive shell of choice. In between long stretches of late-night firefighting (routers melting, electrical systems failing, infrastructure subsystems behaving oddly), I am moving some of my little webapps from their miserable perl or python existences into a world of ruby. Part of this is sped along by nice interfaces such as the flickr API and instiki (wow, what a great name for a wiki!). Another really nice thing is that, barring configuration parameters, the code works seamlessly on either the powerbook (for development) or the linux or g4 servers. Rich Kilmer blogs about some hacks to get ruby working more smoothly under tiger.... Read more
July 14, 2005
In which we annotate Google search results via del.icio.us
The Ponderer has a nice Greasemonkey script to annotate and bookmark google search results; the script checks for feeds from the resulting pages, and also summons lists of related tags from del.icio.us.... Read more
July 07, 2005
In which an interface cheers me
The two-step login for a Bank of America ATM has long irked me: the first screen asked which language I wanted, and the second asked me to enter the PIN. I suggested that the two screens be combined. Several years later, voilà:... Read more
June 20, 2005
In which we are as different as chalk and cheese
The list of apps I added to my powerbook after a clean install of Tiger: Acquisition Adium Camino Conversation IRC client Delicious Library to catalogue my books and DVDs (the music is already managed through iTunes, natch). This cost money. DivX 5.2.1 DVDBackup, fair right usage and all that. I prefer having my movies on one disk, not four hundred, thankyouverymuch. flickrExporter plugin for iPhoto flickrUploader Growl Notifier iLife '05: this cost money. iPassConnect KisMac, a port of the excellent BSD wireless-security tool kismet. MacStumbler, a very handy tool for finding wireless access points, especially when iPass is not an option. NeoOfficeJ NetNewsWireLite, despite the RSS integration in Safari osx2x, the awesome little widget that forwards X connections between boxen Quicksilver ß42. If this cost money, I'd pay for it. SSHKeychain, painless key management TomatoTorrent, even though the official BitTorrent client supports retries and resumption of partial downloads, this has a better logo ;-) VideoLan Client (the beta: the head does not run on 10.4)... Read more
May 21, 2005
How we read today
An ugly chart, which shows that you, d. readers, are using hip browsers.... Read more
May 03, 2005
HOWTO: install a personal cert for Mail.app
After starting on a quest to sign my personal email messages, I found this three-step HOWTO at MacMerc. Thawte has a clear signup process, with well-presented information about security and why they ask the questions they do. They also allow you to customize the questions for password recovery, which I liked a lot. Thawte then send a special URL to the email address specified for the certificate. Once you follow the instructions within, another browser window opens. This leads you through the steps to requesting the actual certificate: you need to choose the type X.509 cert: select "Netscape Navigator / Communicator"; neither Apple OSX nor Mail.app are an option. You will receive a second email message when the cert is ready. Returning to thawte's web site, I clicked on the certificate name and then on "Fetch" caused Safari to download the cert (via a PC Application named "deliver.exe" -- the most curious part of this process, since the cert is all about security, and sending me a small, unexpected, and anonymously-named app to "deliver" something onto my computer is counter-intuitive. This finally stuck it into my Keychain. The coolest part comes now: I opened a new mail message in Mail.app, and voilà!, an icon appears at the bottom-right of the addressing pane, and I can send signed email messages.... Read more
December 28, 2004
Flash fun
Thanks to the Deadly Dragon Sound System, I discovered the dub flash games at Infinite Wheel. Whee! And while we're talking of Flash and accents, how 'bout the blaspheming Scots in Chunk Ideas' Snowball?... Read more
December 17, 2004
dust my lemon lies
Wow. Erik pointed out that fraser speirs wrote an iPhoto plugin for uploading to flickr. Hot damn. And something at flickr or something in Safari has changed, because I can now use their web-based Flash tools to organize my photos.... Read more
December 05, 2004
flickr rss feeds r00lz
Man, I love flickr's rss feeds. I subscribe to barcelona, graffiti ("Photos tagged with graffiti", hahaha), and myriad others. Delicious.... Read more
November 23, 2004
ESP Game
From the ESP Game FAQ: Q: Does the ESP game work in Mac OS and Linux? A: Not always. The ESP game is written as a Java applet, and the versions of Java included in some of the browsers for Mac OS or Linux are slightly incompatible with the current implementation of the game. We are working hard to make the game available everywhere.... Read more
November 16, 2004
November 15, 2004
Always too much to not read.
sage, a firefox plugin, vs. NetNewsWire, a beautiful cocoa app (free/shareware). Fortunately, each can read the other's OPML file.... Read more