The Early Years
I got my first computer (an Apple Macintosh Plus) in the Fall of 1988. After a long hiatus in the working world, I had returned to college to get my bachelor's degree and was thinking I wanted to get one of these newfangled contraptions to write my papers. (These machines fascinated me so much that I joked that I went back to school just so I would have an excuse to buy a computer.) My choices included the IBM PC, which had been out for about seven years, and the Macintosh, which was about four years old. I had seen both, and I knew I wanted a Macintosh.
I used that little Mac Plus throughout college until the second semester of senior year, when I got myself a PowerBook Duo 230 as a graduation present.
Using the computer became my principal interest in those days. I started with not much more than the word processor MacWrite, but soon I was buying all sorts of software. It wasn't long before I stopped using MacWrite and switched to the little wonder of those early word processors: WriteNow. Eventually I started using Microsoft Word, beginning with version 4. I didn't think of Microsoft as the Evil Empire in those days. All I knew was they made a great word processor. Oh, how things have changed.
Shortly after getting the Mac Plus, I discovered it came with something called HyperCard. This program was a sort of software construction kit that you could program using a language called HyperTalk. I was hooked on programming, although I barely knew what I was doing. It would be years before I would learn more commercially-applicable languages.
My main computer is a 15-inch MacBook Pro purchased in February, 2008. It replaced my beloved 12-inch PowerBook purchased in February, 2005. I also have a Dell PC (an antique: 233 MHz Pentium II) running Windows 95, Windows 98, and Windows NT 4 using System Commander. I did some development work on the PC when I first bought it, and then mostly used it for games. I haven't switched it on for a while now.
This section will contain information about my efforts in software development, information about software I use or wish I had, and even the occasional rant. As far as Macintosh development goes, I have one foot in the OS 9 Carbon world and one foot in the OS X Cocoa world. For someone who's still learning, it's very challenging, but I feel it's a great time to be a Macintosh developer.
Some good advice for budding shareware developers:
Posts in “Computers”
Outlook Webmail Toggle Checkbox Bookmarklet
A while ago, a friend who was frustrated with Outlook Web Access (the web-based interface to Microsoft Exchange) wondered if there were a way to programmatically check the checkboxes next to each message so he could “select all.” That would be handy (I use OWA myself from time to time), but I couldn’t think of a way until I realized a bookmarklet could do it. So, here it is:
OWA Toggle Checkboxes
Compatibility Note: While this works with our version of OWA (Exchange 2003), I bet it won’t work at all with newer versions. No harm in trying; it should just do nothing if it’s incompatible. It even works in Internet Explorer, although IE doesn't need the capability.
Movable Type 4
I’ve been running Movable Type 4 (which was released on August 14) for almost two days now, and of course you’re all wondering What took you so long, Mr. Still-Using- Movable-Type-When-Everyone-Else-Uses-WordPress?
I’m not one to move a dot zero version of anything into production, but in this case I had my reasons. When I moved to a new host a couple of weeks ago, I switched from using suexec to cgiwrap. Everything was fine except when someone posted a comment, and MT’s rebuild would fail with a permissions error. When a rebuild was invoked in this way, some script deep within the bowels of Movable Type was clearly not being wrapped, and because the web server doesn’t have permission to change files owned by me, it objects. (The comment was saved and a manual rebuild worked, but the commenter received a nasty error screen that made it seem as if the comment wasn’t saved.) While I was pondering this, MT4 final was released. It didn’t have this issue with cgiwrap, so I thought how hard could this be? And it wasn’t except for a small issue having nothing to do with Movable Type.
While Movable Type has a new interface and lots of new features, I didn’t see any that would let me eliminate any of the hacky stuff in my templates. The biggest disappointment was with the new Pages feature, which at first seemed to offer a way to manage static content and blog entries, but there is no integration between the two—a page can be either bloggy or static, but not both. I was able to move all my templates and handful of plugins over without much fuss with one exception: I couldn’t get the tag MTEntryPermalink to work the way it used to at all. It seems to want to point to the entry’s parent directory and not the entry itself. I was able to work around this, but it sure slowed things down. Anyway it is my sincere hope that in the aftermath of this rather significant upgrade everything on mere cat is exactly the same, except for some, uh, “pre-existing conditions” naturally. Please let me know if you find anything amiss.
Adobe, How Do I Hate Thee?
Let me count the ways.
I wasn’t going to say anything when I upgraded to Adobe Reader 8.1 on my PC at work when I had to restart. (What’s that about? Grr.) Even though this insult came after the “Download Manager” on Adobe’s site crashed Firefox1 over and over again—until I threw in the towel and switched to Internet Explorer.
But just now I was wondering why my Mac laptop was so warm. Could it be because Adobe Updater launched in the background, couldn’t find an Internet connection (Hellooooo! I'm on the train!) and is now “Waiting for Connection” (apparently forever?), meanwhile using about 50-plus percent CPU doing almost nothing. Which is worse, the apparent lack of a timeout while waiting for a connection, or the radical CPU usage? Decisions, decisions. Obviously Adobe makes some great software, which makes this lapse all the more inexplicable and frustrating.
Zeldman Delivers Mixed Message on HTML Email
The cool kids have solved the problem of “monetizing their content” with an ad network called The Deck. Deck ads are small, don’t insult your intelligence, and are very relevant to the host site’s content—so relevant that I’ve actually clicked on some of them.
Since there is only one ad on a page, there’s no chance of the embarrassing situation of showing competitors’ ads side by side. Last week, however, I was reading Zeldman’s rant against HTML email, and the Deck ad showing at the time was for “HTML Email Design & Coding tips from MailChimp.” The rant undermined the ad’s message a little (ya think?), but it sure got a chuckle out of me. I have to admit, though, that if I had to serve up some HTML email, MailChimp is the first place I would turn for help. Now that’s effective advertising.
Mahalo Launches [nanoblog]
1994 called. It wants its search engine back. Not to be a wet blanket, but that was my immediate reaction when I saw Mahalo, which offers handcrafted search results for popular search terms. Although it claims to be the “first human-powered search engine,” it seems little more than a link directory in the tradition of Yahoo!’s original handmade directory or a site like About.com, powered by volunteer “guides.” And hey, what’s wrong with dmoz, the Open Directory Project? It boasts 75,151 editors. Nevertheless, I wish them luck and will definitely be trying Mahalo for broad search terms (like “macintosh”) that return an overwhelming number of results in Google, but Google for narrow searches (like “macintosh powerbook hard drive upgrade”), which, um, also return an overwhelming number of results. Via Blankbaby.
Disable “Snap” Previews [nanoblog]
Snap.com offers an easy way to disable those annoying popup “previews” that have been, um, popping up on some sites recently when you hover over links. Often the previews are “queued for delivery” and blank, but in any case, they are too small to be useful—for my eyes at least. Via Daring Fireball.
Scott unearthed his first order at Amazon.com, which was surprisingly easy to do. My first order was in November, 1998 and consisted of two items:
- Microsoft Exchange Server V5.0: Planning, Design, and Implementation
- At the time, I was supporting Exchange Server (and everything else computer-related) at a client.
- Blue Matter, a CD by guitarist John Scofield
- When Anne heard this, her eyes rolled back so far I thought she was having a seizure. I have so many Scofield CDs (but nowhere near all of them) that she moved them away from the rest of our little collection to their own “shrine” so I can touch them up with the chamois from time to time. Just goes to show how long I’ve been a fan of John’s work.
I can’t honestly remember the first thing I ever ordered online, but I found an email dated January 29, 1996 confirming shipment of Netscape 1.1. If I ordered this online, I wonder how I did it. Maybe I had Mosaic... I don’t remember. The email was to my first ISP post-AOL at PSI.
Back to Amazon. I was amazed that they keep all that online, and if so, why do they so often recommend items I’ve already ordered from them?
Movable Type Upgrade [nanoblog]
Speaking of Movable Type, I upgraded to Movable Type 3.32 last night. I hope no one noticed; you weren’t supposed to. There was a minor glitch in the submenus, however. The submenu is supposed to show the subcategories under a main category. In the case where a main category has no subcategories, the glitch caused all the categories to display instead of none. Bit of a head scratcher, but I found a solution that didn’t involve any hackery. Yell if you see anything odd. Chances are it was there before the upgrade. ;-)
Albert flagged a comment on the previous post as comment spam. True, it was spam in that it wasn’t a legitimate comment, but on the other hand it was spam for a Philly blog, so what the heck... it stays.
The real comment spam I get (the vast majority of which are variations on “cheap meds”) is siphoned off automatically. The daily total is all over the place, but averages around 40. Here’s the weird thing. I have another currently-dormant domain that contains nothing but a stock install of Movable Type 3.2 that I installed late last year. There’s one post with comments and trackbacks wide open. I just checked and that blog has not received a single comment or trackback spam in eight months. Where is the love?
Lobster Roll Mashup
I have always been fascinated by maps and overcompensated for my lack of a sense of direction by buying a lot of them. I never thought I would be able to customize my own maps until Google Maps came along. I think it all started when I saw Andrea’s SEPTA Google map. I thought Wow I would like to do that, followed immediately by Wow, I don’t know how to do that. Besides I didn’t have anything I wanted to map.
When I started browsing Safari Books Online, I noticed an O’Reilly book called Google Map Hacks. That didn’t explain everything, but it was inspiring, and it introduced me to the Google Maps API. After reading the documentation, a terrific tutorial by Mike Williams, and browsing the Google group Google Maps API, I was on my way. I got lost in a few places (could have really used a map) , but finally found my way. It wasn’t as hard as I thought it would be, at least to stick pins on a map.
So here we are. Introducing the Lobster Roll Finder (I had to map something I love, right?). I started with Maine and added about 10 points so far, but I’ll keep adding places as time goes on. If you don’t find that a compelling use of Google Maps (and I’m sure you won’t), pay a visit to Beer Mapping. Now that’s useful. Also check out Google Maps Mania, a blog devoted to Google Maps mashups. If even that bores you, there’s always Google Earth.
Safari Books Online
Like most nerds, I am learning new technologies (and brushing up on old ones) all the time. It’s fun, actually. The challenge is finding that one cogent explanation of a difficult concept that makes the light bulb go on. There’s a notion that one can learn anything just by Googling it, and I Google like a madman, but I’ve always preferred those old-fashioned repositories of knowledge called “books.” (Remember them?) Books pack a lot of solid information in one place.
Trouble is, even the largest chains have a limited selection of technology books, and I like to compare titles before spending my money. It would be great if there were a way to browse all the books available on a topic.
Enter Safari Books Online. SBO has been around for a while, but for some reason I ignored it, because I thought it was an O’Reilly-only thing, since they promote it heavily on their site. As much as I love O’Reilly, the plan wasn’t compelling enough. A little investigation, however, revealed that SBO offers books from over 30 publishers, including Peachpit, New Riders, and, of course, O’Reilly.
As soon as I found that out, I signed up for the cheapest plan, which gives me online access to five books at a time, which I can swap for others in as little as 30 days. That’s 60 books a year. Besides full access to all those books, the entire library is always searchable and the search results contain enough of a excerpt that it’s easy to determine if the book is worth “getting.”
I feel like the proverbial kid in the candy store which led me to grab some books I wouldn’t normally have read, so I’ve been having a little fun this week with a new project. More on that soon.
“You Look Exactly Like Linux”
If operating systems were cars, there are plenty of examples of what kind they would be, but what if the analogy were extended to people. What would they look like? One idea is to make the head of the company serve as a proxy.
Apple didn’t stray too far from this idea in choosing the actors for the “I’m a Mac / I’m a PC” commercials. After all, Steve Jobs dresses similarly to the young man playing the Mac when delivering his keynote speeches, and the actor playing the PC looks vaguely like Bill Gates. Most of the spoofs I’ve seen mine this same vein. But what about Linux? Only the series from TrueNuff TV includes Linux, and I enjoyed these the most. These ads highlight the message that Windows and OS X have much more in common as competing proprietary systems in contrast to Linux as the open-source “outsider.” Check out “Upgrading” to get a glimpse of their characterization of Linux and then “Security,” in which BSD is mistaken for Linux. “You look exactly like Linux.”
I’m also looking forward to seeing how “Mac” does today when Steve Jobs previews the next version of OS X at the WWDC. Hoping for a little proprietary excitement and maybe, just maybe, “one more thing.”
Tales from My Location Bar
I am usually surprised when something I type in the location bar (the thingy with http://) doesn’t take me quite where I was expecting. These tales demonstrate nothing as nefarious as typosquatting or phishing, but I found them interesting nevertheless. Maybe I should enter one in the Bulwer-Lytton contest. “It was a dark and stormy night as I sat hunched over the keyboard, lights flickering, the UPS beeping irritably...”
I guess at URLs all the time, especially when I’m not using my own computer. I wanted to read Robert Scoble’s blog recently (in a browser for once instead of RSS) and, knowing that he had migrated to WordPress not too long ago, I typed scoble.wordpress.com. Surprise! That address belongs to someone known as Maxi-Scoble who says, “I am not Robert Scoble, I was surprised as you when this name was available.” Me, too. Scoble.com and scoble.org aren’t owned by Robert Scoble either, but that’s not as surprising.
Here’s another example. I was reading Guy Kawasaki’s feed and instead of Guy’s usual wit and wisdom found an entry by some, um, guy named Mike, who wrote, “You are subscribed to an outdated Feedburner feed that Guy allowed to lapse... By allowing your Feedburner feed to get deleted, you’ve opened your subscribers up to having somebody else (like me) to come along, create a feed by the same name in Feedburner, and capture the eyeballs of your subscribers.” Mike had no malicious intent; he only wished to highlight a problem with Feedburner. Interesting lesson.
Another example I happened upon might barely fall under the category of typosquatting, where the change in URL is not a typo, but the substitution of a different top-level domain. Mypyramid.gov is a USDA site that introduced the new food pyramid last year. Mypyramid.org is a satirical replica of the government site targeting agribusiness. That’s fine with me. At least they’re not trying to cash in on the domain name.
Shell Snippet to Fix File Dates
When I advanced the hour on our camera for daylight-savings time, I inadvertently changed the year back to 2005. About six weeks of pictures were affected. No biggie, but it bugged me, so here's the shell script snippet I used to fix it. I used stat to get the month, day, and time of the files and then touch to reset the date. Note that this does not change the date in the EXIF data, which is still wrong.
for f in *.[jJ][pP]*[gG]
if [ -e "$f" ] || continue
# show the date before the change
stat -f "%Sm" -t "%m/%d/%G %H:%M:%S" "$f"
# change the date
touch -t 2006`stat -f "%Sm" -t "%m%d%H%M.%S" "$f"` "$f"
# show the date after the change
stat -f "%Sm" -t "%m/%d/%G %H:%M:%S" "$f"
echo "No JPEGs in `pwd`"
It’s odd that I am blessed with the ability to fix this kind of problem, but cursed with the stupidity that caused it.
Klingon Programmer Jokes [nanoblog]
Probably foolhardy to make any kind of a joke at a Klingon’s expense, but Steve Baker has added some of his own Klingon programmer jokes to the anonymous set seen all over the place. Now that’s Extreme Programming.
SQL Server Oopsie
I occasionally get nasty error messages from web pages when some server-side processing has gone south. As I've mentioned elsewhere, I usually only see these kinds of errors on sites using Microsoft technologies, such as Active Server Pages or a SQL Server backend. I'm just saying.
I've been assigned some SQL Server responsibilities at work. Since my experience has all been with DB2 and MySQL, I am trying to get up to speed. In surfing around, I found SQL Server Central, which looks to be one of the biggest SQL Server sites. You would think that a site devoted to SQL Server would be run by people fluent in, uh, SQL Server. Apparently not. Try clicking on any of the columnists' names, and you will see this error:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near ','.
/include\authorheader.inc, line 63
I can't talk, though. There are plenty of mistakes right here on this site. I mean, I have a list and everything.
I've been working away on a small project, and the tool I'm using most, “Query Analyzer,” was a big disappointment. It's certainly adequate, but it's text editing features are almost nonexistent. Some features aren't really thought through very well. For example, error messages include a line number to help pinpoint the source of the error, but the number is not based on the number of lines in the file, it's relative to the selected text. That makes sense to Query Analyzer, since the selected text is what is being executed, but it doesn't help me at all.