WWDC 2008: Most Insane Ever?

It's still a few weeks until WWDC '08, but it's already looking to break previous records for insanity. With the iPhone taking up a huge chunk of the schedule, most who follow these things were predicting a lot of first-timers. And there were rumors from what should be reliable sources of an attendance cap, an unprecedented occurrence. A couple of days ago it became official with this notice on Apple's developer home page:

I don't think WWDC has ever sold out before. I'm guessing the real reason it did this year is that sooner or later the San Francisco fire marshal is going to say, OK, enough is enough. That might have been what prompted the sudden change of plans for WWDC '03. Then, after announcing WWDC dates for the then-typical San Jose venue, and waiting a few weeks while everyone made travel plans, Apple suddenly announced that the conference would be in San Francisco on a different date. This year? It looks like Moscone North and South are already booked for part of WWDC week, so buyers were cut off.

This has already prompted panicked would-be attendees to plead for someone to sell them a ticket. It's also prompted at least one eBay auction (where as of this writing the high bid is actually lower than what Apple's original price). Buyers should beware, though, and not just because the eBay seller has apparently never sold anything on eBay before.

Apple doesn't send out blank, usable-by-bearer tickets to WWDC. This isn't a movie you're attending. They've long since moved on to e-tickets. You can transfer your e-ticket to someone else, but you have to tell Apple to transfer it by logging in to your account at the developer connection member site. And, officially at least, you're not supposed to transfer "assets" like the ticket to anyone who doesn't work for the same company as you. Scalping is not supposed to be an option. Someone buying now might well find out that Apple considers the transfer invalid, and that they can't get in to the conference.

Keynote lineup, WWDC 2007Keynote lineup, WWDC 2007Would they do this? WWDC has already become something of a cattle run at times, and had to be severely pushing the limits of Moscone West already. This year attendees should expect the crowd-control army to be in full force. If there's a session you really want to attend, get there early or you may not get in. I don't know that Apple would invoke their right to bar entry just in the interest of crowd control, but then it's not like they have any room to spare either. And of course the ticket is non-refundable, so hey, they get paid the same either way.

I've got mine. Do you have yours?


Man Page PDFs Redux

Last year I posted a script that could be used in place of the Unix "man" command to generate PDFs of the man pages in question. If Mint is to be believed, this continues to be a fairly popular page, so here's an update on the old version.

When I posted it, Tiger (Mac OS X 10.4) was still current. After Leopard (10.5) came out I found it necessary to update the script slightly. Not because the old one didn't work, but because Leopard brought many updated man pages with it. The caching mechanism used by the script had no way to detect that the cached PDF was out of date relative to the man page it was based on.

Anyway, here's an updated version of the script. PDFs are cached, as before, but are re-generated if the cached PDF is stale.

As with the previous version, you can use it just like "man": "manpdf time" and "manpdf 3 time", for example, differ from the stock "man" command only in that a PDF is generated.

Source is below, you can also download it directly.

#!/bin/bash

# Convert man pages to PDF and open them in the default PDF viewer.
# PDFs are cached when created.
# By Tom Harrington, tph at atomicbird dot com, 16 March 2005

# Directory to save cached PDFs in 
# (if you don't want long-term caching, you could use /tmp/).
CACHEDIR=~/Library/Caches

# Command to read PS from stdin and write PDF to an output file.
PS2PDF_CMD="/usr/bin/pstopdf -i -o"
# Command to open the resulting PDF once it's created.
OPEN_CMD="/usr/bin/open"
# Path to "man", which is expected to take the -w, -S, and -t args.
MAN_CMD="/usr/bin/man"

CACHEDIR="$CACHEDIR/manpdf"
if [ ! -e $CACHEDIR ]; then
	mkdir -p $CACHEDIR
fi

if [ $# -eq 1 ]
then
	MANSECT=""
	MANARG=$1
elif [ $# -eq 2 ]
then
	MANSECT=$1
	MANARG=$2
else
	echo "Usage: " `basename $0` "[section] name"
	exit
fi

if [ "$MANSECT" != "" ]; then
	MANSECTARG="-S $MANSECT"
fi

# Look for the command's man page.
MANFILE=`$MAN_CMD $MANSECTARG -w $MANARG 2>/dev/null`
if [ -z $MANFILE ]; then
	echo No manual entry for $MANARG
	exit
fi
# OK, got the man page.  Now get the name for the corresponding
# PDF.  The goal here is to organize cached PDFs in CACHEDIR
# according to man-page section, similar to the way /usr/share/man
# is organized into "man1", "man3", etc.
echo file: $MANFILE
MANSECT=`echo "$MANFILE" | sed 's/.*\.\([0-9]\).*/\1/'`
MANPDF=$CACHEDIR/pdf$MANSECT/$MANARG.$MANSECT.pdf
FINALDIR=`dirname $MANPDF`
echo PDF: $MANPDF
# Create the PDF if it's not in the cache dir or if the cached version is obsolete.
CREATEPDF=0
if [ ! -e $MANPDF ]; then
	echo Generating man page...
	CREATEPDF=1
else
	if [ $MANFILE -nt $MANPDF ]; then
		echo Man page newer than PDF, regenerating...
		CREATEPDF=1
	fi
fi

if [ $CREATEPDF -eq 1 ]; then
	mkdir -p $FINALDIR
	$MAN_CMD $MANSECTARG -t $MANARG | $PS2PDF_CMD $MANPDF
else
	echo Reading man page from cache...
fi
# Now open the PDF.
$OPEN_CMD $MANPDF

Back to the office, or, the iPhone Cometh

It's an interesting time to be a Mac developer. With the release last week of the iPhone SDK, Apple suddenly opened up a whole new interesting platform to software developers. And as one might expect, those who have experience developing for Mac OS X have a huge head start when it comes to this new platform. Development for the iPhone uses the same tools, language, and even many of the same frameworks as the Mac.

I think I can say all of that, despite the NDA and Apple's rapidly-developing official position on what can be said and where. Earlier this week Apple reps announced that iPhone development could be discussed on Apple's Cocoa-Dev mailing list, but this was followed the next day by a hasty retraction. That is, one day the rule seemed to be "go a head, talk amongst yourselves", but by the next day this had changed to "don't you dare". I can only imagine the internal discussions. The official line may have changed again by the time you read this.

Anyway, in my case the nature of the SDK means that my daily routine has changed rather suddenly, in a nice demonstration of business on internet time. On Thursday the SDK was released. Friday I saw an ad on Craigslist for a company near me needing an iPhone developer. Saturday morning the company's CTO phoned me, and Monday I started doing iPhone development on a contract basis. And incidentally, soon afterward I started filing bugs with Apple against the SDK. Of course, it's still a beta release.

I don't often do contracts, but I really wanted to get a fast start on the iPhone, and what better way to do it? Aside from the same deal where I can continue working from home, I guess. Some aspects of the work mean that I really do need to be on-site for a lot of it, and I'm out of practice at making daily trips to an office.

Right now I'm splitting my time between this contract and my own apps. I'm not putting anything on hold or making fundamental changes to my business, but at the same time I didn't want to pass up this opportunity.

We'll Meet Again?

I'd like to thank everyone who responded to my previous post, either here or in email. I appreciate the support and offers of assistance.

The continuing emergency ended just a few hours after that post appeared. Not, however, in the manner I would have preferred. From the Newark Star-Ledger, last week:

Nancy S. Harrington, 69

Mrs. Nancy S. Harrington, 69, of Montclair died on Sunday, Feb. 10, 2008, at Columbia-Presbyterian Hospital in New York.

A funeral service will be held at 10 a.m. on Saturday, Feb. 16, at St. James Episcopal Church, 581 Valley Rd., Upper Montclair. A reception will follow. Friends may also visit with the family on Friday, Feb. 15, from 7 to 9 p.m. at the church. Arrangements are by the Hugh M. Moriarty Funeral Home, 76 Park St., Montclair.

Nancy was born in Detroit, Mich., on Feb. 25, 1938, the daughter of Robert and Zilpha Steele. Following graduation from Edsel Ford High School in Dearborn, Mich., she lived in Washington, D.C., Detroit and New York City. Before moving to Montclair in 1986, she and her family lived in Brooklyn and in Nyack, N.Y.

Nancy's vocational interest centered on the education of young children, a field that she worked in for most of her life. She will be remembered by a generation of children who attended St. James Pre-School in Montclair, where she taught for 20 years before retiring in 2006. She taught Sunday school at St. James Episcopal Church for 21 years, serving as the director for part of that time.

Nancy was an avid gardener, always eager to try out a new addition to her backyard garden or her window greenhouses.

Nancy is survived by her husband of 42 years, Preston Harrington; her son, Tom and wife, Carey, of Colorado Springs, Colo.; her daughter, Lisa and husband, Jeff Mead, of London, England; her son, Gerry and wife, Katey, of Forest Hills, N.Y., and her grandson, Andre. Her sister, Peggy, of Florissant, Colo., and brother, Gerry, of Anchorage, Alaska, also survive her.

In lieu of flowers, donations may be made to St. James Episcopal Church Pre-School, 581 Valley Rd., Upper Montclair, N.J. 07043.

I'm back home now and getting back to the regular cycles of my life. I'm still going through my email backlog, but should be getting back to everyone soon.


The continuing emergency

I just wanted to post a short note for people who normally see me online all the time and who may wonder what's happened to me recently. And for people sending me support emails wondering why response time is so slow lately.

The short story is that my mom developed an autoimmune condition that led to liver failure. She had been due for a transplant, but soon became much too sick to be considered a transplant candidate (you can't get a transplant unless they think you'll survive the transplant surgery). For the past several days I've been spending all my time visiting the intensive care unit at NY Presbyterian hospital.

The nice thing about independent developers is that you can get hold of the guy who wrote the software, but the downside is that one person's personal life can bring the entire operation to a halt. For those writing me in regard to customer support, Sparkle, etc, I'm not ignoring you but I just can't deal with that stuff right now. I'll get back to you all as soon as I can.

If you're religious at all, say a prayer for my mom, she'd appreciate it.


Atomic Bird, LLC