The Insect Photography Workshop

Last week was National Pollinator Week. Who knew?

The UIUC entomology department held a number of events, including an insect photography workshop. I thought it would be fun to try something a little different so I walked over to the Pollinatarium yesterday for the workshop. The workshop leader is a UIUC post-doc in entomology who studies ants (my sister-in-law Kim is an entomologist who studies fire ants in Texas). He also photographs insects for text books.

Among his tips were:

  1. Know your subject
  2. Use your camera’s manual settings
  3. Simplify the background
  4. Place the subject away from the center of the frame
  5. Light is important
  6. There is no single correct way to take photographs

We tried to keep these points (and more) in mind as we walked around the nearby prairie & forest to practice. It was a lot of fun. Here are a few of my favorites.


Japanese Beetles



You can see more of my insect photos from the workshop here.

The Electric Slide

Fig’s been doing the electric slide lately. Fig takes after her/his daddy.

Clearly when the electric slide line dance was introduced I thought it was totally lame. Apparently that’s just because I never saw anyone do it right. As my former ASP staff coworker Wyatt (Y-it) showed me in the summer of 1999, you have to exaggerate the motions.

Wyatt teaches Rob the electric slide

Wyatt (center-right) teaches Rob (center-left) how to get into the electric slide

Wyatt and Rob do the electric slide

Kick that leg

Wyatt and Rob do the electric slide

It’s electric!

The iPhone

The original iPhone was announced at Macworld Expo in January 2007 while Melissa & I were living in Nicaragua. It was amazing, a phone that ran the same beautiful, wonderful operating system as my desktop and laptop computers. The crowd at the Macworld keynote was disappointed the device wouldn’t be available until June. No matter, I wouldn’t return to the U.S. until August.

I ordered my iPhone in July and had it shipped to my parents’ house so it would be waiting for me upon our return. Around the same time I also ordered a new (non-i) phone for Melissa. We arrived at my parents’ house on a Sunday evening. The iPhone was there, in all it’s glory, but I couldn’t actually use it yet. Apparently, because of the way I set up our account with AT&T, I needed to activate Melissa’s phone first. This required talking to AT&T customer service, which wasn’t open on a Sunday evening.

The disappointment only lasted a few short hours, which was nothing compared to the months of waiting I already endured. I got everything straightened out with AT&T first thing Monday morning and my iPhone was up and running. I loved it.

Cracked screen

Two months later, while I was locking up my bike at work, I dropped my padded carrying case about two feet onto the concrete. The phone slid out face down. I was concerned the concrete might scratch the glass. Even worse, the glass cracked. It was still usable, just less beautiful… but not enough to warrant $199 to replace the screen.

In April 2008 the iPhone (and iPod Touch) developer program was announced and I signed up right away. As a software developer I am exited by the prospect of running my own code on my phone/PDA (much as I did with three previous Palm OS devices, and three Windows Mobile devices). At first Apple highly recommended not using your primary phone for development purposes, so I bought a refurbished iPod Touch.

The iPhone 3G was unveiled in June 2008 to much fanfare. I didn’t really care that much as AT&T still does not offer 3G data service in Champaign-Urbana. I was excited about the built-in GPS and larger storage capacity, but not enough to upgrade. Fortunately, my employer acquired on which I have been able to use. Score. In the meantime I set up my old iPhone for Melissa.

Finally, earlier this month the iPhone 3GS was announced. More storage, better camera, video recording, built-in digital compass. My AT&T contract was nearly up so I qualified for upgrade pricing. It didn’t take much convincing for me to order one. It was Fig’s Father’s Day present for me. It arrived last night and I’ve been using it all day today.

All in the family

from left to right: my original iPhone (now used by Melissa), my iPod Touch (used for development), my employer’s iPhone 3G (soon to be returned), my new iPhone 3GS

The Cobb Park Crit

Yesterday was the Cobb Park Criterium in Kankakee. This is one of the closest bike races to Champaign-Urbana, so a lot of my Wild Card Cycling teammates participated. Unfortunately, I’ve been struggling with some knee pain the past two weeks. It finally seems to be getting better, but I definitely didn’t want to aggravate it by racing again too soon.

I still wanted to support the team so I went up to watch the category 4 race (the one I would have been riding). We had six guys in that race — Mark, Q., Chad, Thomas, Luke, and Nick. Earlier in the day Alexi, Scott, and Art rode in the cat 5 race, while Greg & Karl rode in the masters 50+ race. As with many other types of racing I’m much more accustomed to competing than spectating. I always forget how fun it is to watch friends race.

Mark jumps off the front

Chad in is first race with Wild Card

Just think how fast Luke would be without all that extra hair

Q. takes a flyer

Nick looked as cool as a cucumber the entire race

Thomas takes a flyer

One lap to go

Karl and Scott cheer on the team with one lap to go

I took a lot of photos of my friends (some of which can be seen here, or in the video below), as well as some video footage. I mounted my little Flip video camera to the hot shoe of my Canon 50D DSLR and captured video while I was taking pictures.

I planned to quickly throw together the video clips late last night and post it online. I thought it was kind of cool how the sound of my still camera’s shutter can be heard clicking in the video so I spliced in some of the still photos around the time they were taken. Once this was in place the video clearly needed a soundtrack, so I added the greatest cycling music from the greatest cycling movie (American Flyers). This took considerably more time. I finally finished around 2 a.m., but it was totally worth it.

If you can watch this without a huge smile on your face you clearly haven’t seen American Flyers enough times.

The Worst Ad Campaign. Ever.

The worst ad campaign I've ever seen

Surely I can’t be the only one who’s horribly offended by this ad campaign for Sherwin Williams paint. “Cover the Earth”. With paint. Really?

When I first saw this a few years ago I thought to myself, “Somebody’s going to get fired for that…”. I assumed it would be quickly retracted and a public apolgy would be issued. Nope, they’re still pushing on with it.

The Devil Mountain

I love bicycling up and down mountains. Ironically I live in Champaign-Urbana, IL (i.e. the flattest place on Earth). The past several times I’ve travelled to San Francisco for WWDC I have ridden Mt. Tamalpais, just to the north of the city in Marin county. I decided to mix it up a bit this year, so after the conference ended on Friday I grabbed my bike, hopped on BART, and travelled to Contra Costa county in the east bay to ride Mt. Diablo.

I started at the Walnut Creek BART station. From there I headed down Ygnacio Valley Road (which had a little more traffic that I was expecting). From there I turned onto Walnut Ave. (not Walnut Blvd.). I turned right at the traffic circle at Oak Grove Rd., then I took a quick left onto North Gate Rd. This leads into Mt. Diablo State Park. Before the ride I read that bikes didn’t have to pay so I blew through the park gate.

Mt Diablo map

Mt. Tamalpais rises 2500 ft in around 10 miles, whereas Mt. Diablo rises 3500 ft in 10.1 miles (average 6.5% gradient). So Mt. Diablo is noticeably steeper most of the way.

Mt Diablo elevation

Mt Diablo gradient

Mt. Tamalpais has a fair amount of shade, while Mt. Diablo is almost completely out in the open. So I baked in the sun. This was somewhat unexpected, as the weather had been 60˚ F and overcast all week long in San Francisco. As soon as I left the city the temperature was much, much hotter.

Traffic was light. I think I saw more bikes on the road than cars. Incidentally, most of the cyclists were all decked out in cold weather gear like jackets. Meanwhile I was sweating like a hog and shedding clothes. The flies apparently liked the way I smelled, because a swarm of 6-8 of them followed me the last 6 miles of the climb.

Just like both the West and East peaks of Mt. Tamalpais, the road up Mt. Diablo throws in a 16% gradient to just before cresting the summit, though this steepest section on Mt. Diablo was much longer. I was afraid to stop for fear that I wouldn’t be able to get started again. It was that steep.

Rob at summit of Mt. Diablo

A very sweaty Rob at the summit of Mt. Diablo

The views were spectacular the whole way up. The lack of trees (and guardrails) allowed an unobstructed view. The view from the top did not disappoint either. I could see miles in all directions. I couldn’t quite see San Francisco. I think there was a shorter range of mountains/hills between Mt. Diablo and the city that blocked the view.

View from summit of Mt. Diablo

view to the north from the summit of Mt. Diablo

The ride down was super fast (well above the posted 25 mph speed limit). I recorded the whole thing with my Flip video camera. Here it is at 5X speed.

Anyway, the ride was awesome. I’m a little sad I didn’t get a chance to ride Mt. Tam also, but maybe I’ll do that next year.

Ride Information
Date: 2009-06-12 1:33 PM PDT
Mountain: Mt. Diablo
Road Elevation: 3849 feet
Climb Distance: 10.1 miles
Climb Ascent: 3471 feet
Climb Average Grade: 6.5%
Climb Maximum Grade: 16%
Ride Distance: 32.75 miles
Ride Total Ascent: 4400 feet
Ride Maximum Speed: 35.9 miles/hour
Ride Start: Walnut Creek, CA (200 feet)
Ride End: Walnut Creek, CA (200 feet)

The Cable Car Museum

As Melissa mentioned we visited the Cable Car Museum on Saturday. It was relatively small and easy to take in, but quite fascinating at the same time. The fairly primitive technology behind the cable cars is remarkably clever.

Melissa & Fig at the Cable Car Museum

Melissa & Fig at the Cable Car Museum

There are three operating cable car routes in San Francisco (California, Powell-Hyde, & Powell-Mason), but there are four separate lines (California, Powell, Hyde, & Mason). The museum lies roughly in the middle of these four lines. In addition to the cable car museum, this building also houses the motors and pulleys that actually operate the cable cars.

Motors pull the cable cars

510 HP electric motors pull four steel cables (three pictured) at 9.5 mph, bearing the load of every cable car in the city

Cable & grip

This display shows how the grip clamps onto the cable under the street.

Motors motors keep the wheels turning. A system of large underground pulleys allow the cables to turn corners.

The Bell Ringing Contest

We arrived in San Francisco last Sunday. When we took our first cable car ride of the trip that evening I noticed signs everywhere advertising the 47th Annual Cable Car Bell Ringing Contest. I thought nothing of it. I met up with Melissa & Laura for lunch on Tuesday right when the contest was taking place a short distance away at Union Square… so we grabbed some lunch to go and watched the bell ringing contest.

Union Square

Cable Car bell ringing contest at Union Square

When we first arrived the amateurs had already started, and let’s just say it wasn’t quite what we were expecting. Fortunately, the professionals (actual MUNI cable car employees) started soon and they were much better. Granted, there’s only a certain level of creativity one can express with a single bell, but it was all good fun.

Bell ringer

The pros show how it’s done

The Twin Peaks

On my 6 a.m. bike ride this morning I headed towards Golden Gate park. When I reached Market & Castro the “bike route” split off from Market up this hill, so I continued up the hill. I reached the top at an intersection. To the left it continued to go up, so I turned left. A few turns later, after a mile and a half climbing at 10% gradient, I found myself at the top of Twin Peaks (nearly the highest point in the city). Even though the air was hazy the view was spectacular.

San Francisco panorama

San Francisco panorama

Market Street

Market Street & downtown

You can see this hill from anywhere in the city, but for some reason I always assumed the top wasn’t publicly accessible so I never tried to ride up before.

After descending the hill I rode through Haight-Ashbury, Golden Gate Park, along the Pacific coast, then back downtown.

TwinPeaks ride map

ride map

TwinPeaks ride elevation profile

ride elevation profile

The Keynote

As I write, Melissa & I are at Chicago O’Hare airport waiting on our (delayed) flight to San Francisco. I am attending Apple‘s Worldwide Developer Conference (WWDC) this week. Melissa is along for the ride.

Since I started working full time as the primary Mac OS X developer of Mathematica at Wolfram Research in 2001 I have attended this conference every year except 2006. That year the conference was scheduled (Apple has been really bad lately at waiting until the last minute to schedule this huge conference) during the week Melissa & I were moving to Nicaragua, so I missed out. The conference is exciting every year, but none was more exciting for me than 2005 when I (along with my boss Theo Gray) participated on stage during Steve Jobs’ keynote address.

Note: some of this information was confidential at the time, but is now mostly publicly known. I can’t imagine any of the details I mention below would still be considered sensitive information.

On Wednesday night the week before WWDC I got a call at 9:30 pm from Theo. I was almost ready to go to bed. He asked if I would be able (and willing… but more able :) ) to fly to California at 6 am the following morning. I suppose I could, but why? Theo went on to tell me that Apple had a super secret project and they wanted our help, but he wouldn’t tell me what the project was.

I have since learned that he actually knew what the project was at the time of that call, but he couldn’t tell me. Stephen Wolfram, the founder and president of Wolfram Research wouldn’t sign off on the idea until he knew what was going on. Steve Jobs told Stephen Wolfram & Theo what the project was and they agreed to take part… but they couldn’t tell anyone else.

I spent the next two hours packing (including the Dahon, my folding bike at the time) before going to bed. Early the next morning I arrived at the Champaign airport. Apple purchased my one-way ticket to San Jose (by way of Chicago). An Apple limo picked me up at the San Jose airport and drove me straight to Apple’s campus in neighboring Cupertino. Luggage still in hand I entered 3 Infinite Loop (I think). A few minutes later I was in a meeting with Ron Okamoto, Vice President of Worldwide Developer Relations.

Ron told me what the secret was, that Apple was building a Mac which used an Intel x86 processor. They had ported all of Mac OS X to this new architecture (Darwin, the open source core of Mac OS X, already ran on x86). They intended to demonstrate this new x86 version of Mac OS X on Monday’s WWDC keynote. They wanted to demo a 3rd party application running on the x86 Mac. They chose Mathematica to be that 3rd party application. He asked me if I thought it would be possible to get Mathematica up and running on Mac OS X Intel by Monday.


That’s a potentially huge task. Our code is fairly portable (at the time Mathematica ran on several Unix platforms in addition to Mac and Windows), but supporting new platforms usually takes a fair amount of time. Ron told me Apple was prepared to provide significant resources to make this happen, including a small team of Apple developers and immediate access to any other relevant Apple developers. I was cautiously optimistic.

(Now 30,000 feet over Iowa)

We travelled across De Anza Blvd (luggage still in hand) to a different Apple building where I was ushered into a conference room with a single desktop computer sitting on the conference table. It was in the same metal case as Apple’s high end desktop computers at the time, the PowerMac G5. I think the case even said “G5” on the side. From the outside you couldn’t tell the difference between this machine and a G5 unless you carefully peeked through the holes on the front and noticed it didn’t have the huge heat sink the G5’s had.

I was greeted by the team of Apple engineers (Matt, Eric, & Ronnie) who would be providing technical assistance in the porting process. This place was not only hidden from the public, but it was hidden from the rest of Apple. Very few people at Apple were even aware this project existed. The four of us got busy.

I sat down at the Macintel and immediately began working. The experience wasn’t just familiar it was identical to any other Mac I had used. I was blown away by how seamless Apple had made the transition. The whole OS was there it all its glory, including every bundled application (even Xcode). I could just work exactly like I do on any other Mac.

But wait, sometimes I use BBEdit to edit text. I guess I won’t be able to do that since it (or any other 3rd party application) hasn’t been ported yet. “Why don’t you just go ahead and try it?” Matt said to me as he tried to hold back a smile. It hit me immediately. “You’re kidding, right?” I downloaded BBEdit, double clicked the icon, and it ran. I ran just like it does on any other Mac. Apple had incorporated (with technology licensed from another company) a PowerPC translation layer into the OS. This meant that nearly all existing Mac applications would run on the new Intel machine, with a slight performance penalty. This was amazing news, as it meant the new machines could be adopted immediately by users rather than waiting until all their applications were ported. Very exciting.

Back to work. We started with MathLink. This is a low level library used by both the Mathematica user interface (FrontEnd) and the computation engine (Kernel). With one set of flags MathLink builds for Mac OS X PowerPC and with different flags it builds for x86 Linux (or Windows, etc.). It only took a few minutes of experimentation with the Makefile and headers to find the right set of flags to treat the OS as Mac OS X and the architecture as x86. The elapsed time from entering the conference room to having a built, fully functional MathLink library was probably around 20-25 minutes. As we progressed our excitement grew.

Xcode target architecture

Next was the Mathematica FrontEnd. I normally spend all my time working on the FrontEnd, so this part didn’t worry me much. The FrontEnd is built with Xcode, which had a new “architectures” setting checkbox. We checked the checkbox for the Intel architecture (actually, we didn’t because Intel was the default target architecture when building on Intel… but we did verify the checkbox was properly set). Within 4-5 minutes the FrontEnd built with only a couple of minor build errors which were easily fixable. After 10 minutes working on the FE we had it built and running. It wasn’t running flawlessly, but it was a very good start. I had only been at the secret Intel machine for around a half hour. This was getting really exciting.

The next step was the one which caused me the most concern, the Mathematica Kernel. The reason for my concern was that I don’t often work with the Kernel. I knew how to build it (the build system is somewhat complicated) and I knew roughly how the code was organized, but there are all sorts of minor details which could really slow down the process. It relies on many external libraries (open source and commercial) and custom build tools. Fortunately, the Kernel, like MathLink, already ran on Mac OS X PowerPC and Intel Linux & Windows. It took a while longer to figure out some of the proper build flags, and some of the build errors weren’t entirely obvious.

This is where Matt, Eric, & Ronnie really came through. They had each spent a lot of time porting open source applications to Mac OS X Intel to learn what types of issues developers might run into along the way. Each time we encountered some sort of problem in an open source library one of them would go off on their own for a few minutes to resolve the problem while the rest of us kept hammering away. Every few minutes we would get further and further along in the build process with new issues popping up all the time. It was like an assembly line. In parallel.

After about 90 minutes (2 hours from when I entered the room) we had the Kernel running, the FrontEnd running, and the two processes were able to talk to each other through MathLink. Again, it wasn’t perfect, but nearly everything just worked.

News spread up the ranks. Within minutes we had high level executives stopping by to see the first 3rd party commercial application running on Mac OS X Intel. By early evening Theo (who took a later flight) arrived frantically asking what he can do to help. He was a bit shocked, and very pleasantly surprised, that it was mostly done.

Friday we worked to fix bugs and showed off the software to an ever growing number of people. Since Mathematica already ran on Intel processors on other platforms, most of our cross platform code was byte order agnostic. There were a few cases where Mac specific code was assuming big endian byte order, particularly related to Quartz (bitmap drawing) and OpenGL. There were also some issues with Quickdraw PICT drawing.

Friday evening some of the Mac rumors sites (original CNET article appears to have been removed) reported that Apple would be announcing the switch to Intel processors at Monday’s keynote. Rumors like this had been published for years, so it wasn’t that out of the ordinary, but this report was different. It contained many specific (correct) details rather than just wild speculation (like every previous report like this). It was clear someone in the know had blabbed. The conference room was silent for a few moments. Oh well. Until Monday, it’s still just a rumor.

Saturday morning we drove up to San Francisco to prepare for the WWDC keynote. We had a rehearsal where I met and shook hands with Steve Jobs. I had heard horror stories about his temper, but he was in a great mood when I met him… sitting perfectly relaxed, legs crossed, smile from ear to ear. I could tell he was excited.

Theo practiced his speech, asking Jobs for feedback along the way. The funny thing was that Steve was so happy he kept telling Theo “say whatever you want” or “talk for as long as you want.” Meanwhile I set up the demo machine (and backup demo machine) with our freshly built Mathematica for Mac OS X Intel.

Monday morning before the keynote Theo & I hung out in the VIP lounge. Woz (Steve Wozniak, the other co-founder of Apple) was there, Sergey Brin (co-founder of Google and former Wolfram Research intern) was there, along with many other influential people in technology.

Once the keynote started we sat in the front row on the far right side. Midway through the keynote Jobs called us up to the stage. Theo described our experience porting Mathematica to Mac OS X Intel over the previous few days. I drove the demo machine as he talked. It was a big hit. Theo captivated the audience. At one point Theo mentioned my name, which immediately caused 4,000 people to turn their heads to stare at me. It was a little awkward (which is quite evident in the video). Had I known that was going to happen I think I could have played it a little more cool. Anyway the demo was a success. Mission accomplished.

Note that a few minutes of the demo were edited out of this video for some reason.

That wasn’t all for that WWDC. On Tuesday I gave a 10 minute presentation during Bud’s science session about Mathematica on Mac OS X, detailing how we utilize various OS features. This went more smoothly for me as I had actually been preparing for it for a few weeks. Later that week I spoke about Mathematica for a minute or two in Ernie’s 64-bit session. I went from participating in zero sessions my first four WWDC’s to three sessions in 2005, back to zero sessions every year since. Perhaps that was my 15 minutes of geek fame (actually, the total time I spent on stage was almost exactly 15 minutes).

Last year I attended a reunion for the non-profit organization where I worked in college, ASP. A guy who I hadn’t seen in 8 years came up to me and asked me if I was in a Steve Jobs keynote a few years ago. “I thought that was you…”

Anyway, tomorrow’s 2009 WWDC keynote won’t be as exciting for me, though I’m sure it will still be exciting. I won’t be participating in the keynote. At least, if I am they haven’t told me yet. Always with the secrecy.