Inspired by Morgan Deters’ Dissertation Countdown, I thought it would be fun to find out how my own dissertation grew over time. Although I never had the foresight to run a nightly script like Morgan’s, I did record all of my changes in a Subversion repository. It’s like having a virtual time machine that can backtrack through the complete history of my work. With a tool such as StatSVN, I can create a nifty graph that shows my research activity over the last couple of years. This one shows the increase in dissertation size over time:
It’s a bit misleading because my dissertation work actually started well before December 2007. I’d been writing code and publishing some initial results in early 2006, but I didn’t start merging it all into a single coherent document until late 2007. Much of the effort from then on was largely a matter of polishing code and evolving the overall narrative, which explains the remarkable growth in the summer of 2008. (It makes me look uncharacteristically productive.) My effort subsided as my defense date drew near, finally ending in March 2009 when I graduated.
StatSVN can also reveal a finer grain of activity. This one shows the number of commits by day of the week:
There’s a distinct pattern here. My productivity seems to increase closer to the weekend, peaking mysteriously on Friday. One explanation is that I started working full-time before my dissertation was complete. Another explanation is that this is a sad testament to my social life. I prefer to think it’s the former.
Zooming in even closer on my daily activities, StatSVN can show Subversion commits by hour of day:
I suppose the insight here is that I become super-productive late in the evening, but I’m pretty much dead in the morning hours. If you need me to do something, don’t expect it done before lunchtime.
While these charts show progress over time, I was also curious about what exactly I ended up with. Here are some quick stats I collected about the dissertation itself:
Average words per sentence
Percentage of words with three or more syllables
Average syllables per word
Gunning fog index
Flesch reading ease
The readability statistics were collected by Juicy Studio’s Readability Test. The fogginess is at 16—pretty high but still in the expected range for an academic paper. The reading ease of 36 (on a 100-point scale) is also depressingly low, considering how much time I spent rewriting my words to make them flow and digest well. The grade level indicates that a person would need at least twelve years of schooling to understand the paper, which sounds about right.
Finally, here’s a tag cloud derived from the text of the dissertation. The bigger the word, the more frequently it occurs in the text.
After spending most of my life in school—I’m now in the 21st grade—and working for the last half-decade on a Ph.D., my career as a student is nearly at an end. It’s time to find a new one.
For a while, I seriously considered life as a professor, but as a graduate student I saw how the sausage was made, so to speak. It’s not all teaching and research. Professors spend a large portion of their time searching for funding, performing administrative tasks, and struggling with departmental politics. For some, these chores are a small price to pay for the chance to live on the cutting edge of science, train talented students, and possibly become famous in their chosen field. For me, however, having to write grant proposals and surrendering to the publish or perish system takes the fun out of academia.
Instead, I decided on an industry job. It wouldn’t offer as much flexibility and independence as being a professor, but it pays a little more and the hours are more predictable. (I’d never have to kill a weekend grading papers, for instance.) Plus, industry offers something academia can’t: instant gratification. With academic research, I may have to wait ten or even twenty years to see whether my ideas lead to a genuine scientific advancement or just another chapter in the annals of obsolete academic research. I can’t be sure that my hard work will ever have an impact on people’s everyday lives.
An industry job, on the other hand, offers immediate impact. Think about the engineers who built, say, Gmail or the iPhone. These products aren’t exactly technological breakthroughs, but their creators have the satisfaction of knowing that their work benefits millions of people every single day.
I had that feeling once, many years ago, when I worked for a tiny startup company in St. Louis. We were building a handheld medical device for early diagnosis of hearing problems in newborns. It was a remarkable feeling to know that my work would soon end up in the hands of pediatricians all over the country.
In January, I started on a journey to get that feeling back. First, I updated my résumé and uploaded it to a few of the mainstream job sites like CareerBuilder and Monster. Soon my inbox was full of email from staffing agencies, but most of the offers were for web development, user interface design, and application programming, nothing particularly exciting.
Next, I contacted a few companies directly. I’ve always admired products from Google, Apple, and Sun, and just as importantly, they have a company culture that appeals to me. All three are very open-source friendly, for example. I sent them a copy of my résumé and was lucky enough to get a call back from each of them for a job interview.
My luck ended there. After the interviews, Apple said that my “interests and skill set lie elsewhere”; Sun told me that “your work and our needs don’t really match”; and Google somehow decided on the basis of a phone interview that my computer programming skills weren’t on par with their standards.
Eventually, I secured offers from a few other companies, but I wasn’t really fired up about any of them. By now it was April and I was running out of time. Not only was my fellowship funding set to expire, but I was nearly finished with my Ph.D. anyway. I needed to make a decision soon, so I pulled out my job hunting notes for one last look. Maybe I had missed something.
Mixed in with my list of prospective companies was a curious entry that sounded like something out of an Isaac Asimov novel: Perrone Robotics. I wondered why I hadn’t contacted them before. I knew I had planned to, but somehow I never got around to it. I sent them my résumé.
The next day, Paul Perrone called me, and we spoke for an hour about his company, my background, and where the two intersect. Soon afterward, he invited me to Charlottesville, Virginia, where Perrone Robotics is based, to meet the team and learn more about the projects they were working on. One week later, Paul offered me a job, and I accepted.
Even if Google, Apple, and Sun had all offered me a position as well, I probably still would have chosen Perrone Robotics. Getting paid to build bots and autonomous vehicles is more or less my dream job. The opportunity for this kind of career is exactly what brought me back to school as a graduate student in the first place. The work is also a good match for my skills because the company’s technology is built entirely around real-time Java, which happens to be the focus of my Ph.D. dissertation.
I’m not the only one excited about Perrone Robotics. Paul’s choice of technology has recently caught the eye of Sun, the company that created Java. For each of the last three years, Sun executives have invited Perrone and his team to present their work at JavaOne, the annual developer conference for all things Java. The executives probably believe, quite rightly, that remote-controlled helicopters and driverless cars are a more exciting demonstration of Sun’s technology than the usual fare of web services, mobile phones, and enterprise frameworks that have traditionally been Java’s purview.
You can judge for yourself by watching the videos below, where Paul gives the JavaOne audience a taste of real-time robotics. (The MC in these videos is none other than James Gosling, best known as the father of the Java programming language.)
The next step for me is to pack up my belongings and get ready to leave Irvine, California, which has been my home for the last five years. The trip will take me to the opposite side of the country, more than 4000 kilometers away, to a new home and, I hope, the start of a satisfying new career.
During episode #66 of This Week in Tech, host Leo Laporte reminded his fellow pundits that August 2006 marked the 25th anniversary of the IBM PC. It cost $1565—a fairly inexpensive computer in those days—but Leo noted that’s because it didn’t come with a hard drive, only a cassette port. John C. Dvorak immediately asked, “Does anyone remember if that used the Kansas City standard?”
My reaction was the same as Leo’s: Kansas City standard? Is that a joke? I grew up in K.C. and have lived there most of my life, and yet I’d never heard of such a thing.
This thirty year-old standard was actually fairly revolutionary. According to Wikipedia, it was one of the first standards to allow consumer-quality audio cassettes to store computer data. It was thus a catalyst in the rise of the personal computer, offering home users inexpensive data storage at a time when floppy disk drives cost around $1000.
An example comes from personal experience. I recall my dad’s old TI-99/4A having a cassette port to which he had hooked up an even older portable tape recorder. I’d use it to save my little BASIC programs and whatnot. I could turn off the computer then come back the next day, playback the tape, and pick up where I left off…hopefully. (As Leo says, those cheap tapes weren’t particularly reliable.)
Despite reliability issues, the Kansas City standard remained influential. It even spawned a completely new type of computer data storage: vinyl records! That’s right; old-fashioned 33⅓ RPM records were once used for recording high-tech digital data—formatted according to the Kansas City standard, of course.
And all this time I thought my home town was known only for its barbecue and jazz…
It’s not every day one hears about Ghana. Most Americans don’t know where it is, and many don’t even know it exists. The only mainstream media that gives Ghana any attention is the BBC News, but their stories are almost always soccer-related: a Ghanaian player transfers to a European club, a coach for the Black Stars gets fired, that sort of thing. As a returned Peace Corps Ghana volunteer, I’m a little disappointed the country doesn’t get more press.
That’s why, when watching ABC World News Tonight last December, my mouth dropped open. Charles Gibson suddenly started talking about Ghana! The story, from London-based correspondent Mike Lee, was all about Paga, a small town far in the northeast that is famous for one thing: crocodiles.
Note that Mike mispronounces the town’s name: It’s pägä, not pāgä. (Surprising, given that he actually visited the place.) Otherwise, it’s a nice segment that provides a fun glimpse into Ghanaian-style tourism. If you’re interested in even more scenes from Paga, check out the videos Straddling a Crocodile and sight n sound from the jungle.
These videos are especially fascinating for me because I’ve never actually been to Paga, even though I lived for twenty-six months in Tumu, a town less than 100 kilometers away. And I would often pass through Navrongo, a town just 10 kilometers from Paga, for my trips south. (If you use Google Earth, see just how close I was.)
So why did I never end up in Paga? At the time, I was much more interested in using my vacation days to head down to Accra, the only place in the whole country where a guy can get a burger, a shake, and a movie! But the next time I visit Ghana, I’ll definitely be swinging by Paga.
“Trevor” comes from a Welsh surname that originally meant “big village” or “great settlement.” It’s derived from the Welsh words tref (“village” or “homestead”) and mawr (“large”). “Trevor” is also a name of Irish descent, an Anglicized form of Gaelic Ó Treabhair, meaning “wise” or “prudent.” Alternate forms include “Trefor,” “Trevar,” and “Trever,” and it is closely related to the names “Trevis” and “Trevin”. Here it is in Chinese:
“Harmon” is an Anglo-Saxon name, originally derived from the Old French hermant and Old German Herreman, both meaning “warrior.” A common spelling variation is “Harman.” Famous Harmons include model Angie Harmon, cyberneticist Leon Harmon, and actor Mark Harmon. The Harmon Trophy is a prestigious aviation award. The Irish coat of arms for the Harmon family looks like this:
Last summer, I sent a quick e-mail to the editors at SERVO Magazine thanking them for their online service. Free to all subscribers, the service provides electronic copies of back issues, which is great for when I see an article that’s relevant to my research and I want to archive it.
Other publishers provide electronics copies, too, but you usually get a weak HTML conversion, or you have to pay extra to get the full back issue database, or both. SERVO, on the other hand, offers high-res, fully searchable PDFs of every issue, and they match the printed version exactly. Not many publishers go that extra mile.
When the October issue of SERVO arrived, I found a reprint of my little email on page 7.
My computer upgrade cycle is 2.5 years. That’s about how long it takes for technology to improve to the point where new computers, with their faster chips, bigger hard drives, and more RAM, make the upgrade cost worthwhile. And since I’ve had my PowerBook since April 2004 (about 2.5 years ago), I’ve really been itching to upgrade.
My eye has been on the MacBook Pro, but with Intel’s announcement of the Core 2 Duo chip, I knew an upgrade of Apple’s flagship portable was imminent. I decided to put off my purchase until the very day the Core 2 Duo MacBook Pro was announced.
So I waited. And I waited. And I waited some more. While I was waiting, I saw countless news stories of PC manufacturers announcing Core 2 Duo laptops. But Apple? They were silent. During this time, my PowerBook felt as if it were getting slower and slower and slower.
And then, one day in September, my PowerBook got really slow. In fact, it stopped. Completely. Something had gone horribly wrong with the main logic board, and I had to send it to Apple Support for repair. I didn’t want to be without a computer for the next 7 to 10 days, and I certainly didn’t want to wait who-knows-how-long for Apple to announce a Core 2 Duo laptop. So I bit the bullet, walked into an AppleStore, and walked out with a brand new 15-inch MacBook Pro.
After upgrading the RAM from 512MB to 1.5GB (almost a necessity with Mac OS X) and upgrading the hard drive from 80GB to 120GB (did the upgrade myself, aided by Other World Computing’s instructional video), I ended up with a pretty smokin’ fast laptop. How fast is it?
It’s so fast, it finishes compiling my code before I type it.
It’s so fast, it requires two halt instructions to stop it.
It’s so fast, it executes an infinite loop in six seconds.
(Ah, the oldies but goodies. I love computer jokes.)
Of course, the true measure of a computer’s speed is BZFlag. My new MacBook Pro is so fast I can pump up all the detail settings to the max, and the game still runs smoothly. That was impossible on my old PowerBook. In fact, I didn’t quite realize how much I was suffering with my PowerBook’s aging G4 processor until I saw a Geek Patrol article that chronicled Mac performance through the years. Their graph clearly shows the huge jump in speed that Apple is getting by moving their laptops to Intel processors, not to mention how severely the G4 has stagnated in recent years.
But speed isn’t the only thing I’m getting with my new MacBook Pro. It includes some nice bonus features, too:
Nifty remote for listening to music and watching DVDs
Backlit keyboard for low-light situations (airplanes, midnight snacks, etc.)
Built-in iSight video camera
Full-size DVI port
(My old PowerBook had a mini-DVI port, so I had to remember to bring an adapter whenever I was to give a presentation. Very annoying.)
One final note: My new MacBook Pro has a 15“ display, pleasantly roomier than my old 12” PowerBook. Web surfing, coding, and almost everything else I do is more comfortable with the increased screen real estate. Of course, that also makes the laptop itself much wider and thus a bit harder to squeeze into a carry-on bag. Still, it’s thinner than my old PowerBook and only one pound heavier. It could always be worse.
Nate Anderson wrote an excellent article for Ars Technica about the recently released version 2 of the Robosapien. This humanoid robot is just a toy, but it’s supposedly one of the most advanced toys ever. After all, the manufacturer claims that the Robosapien V2 is a “highly evolved robotic fusion of technology and personality, combining fluid biomechanical motion with a multi-sensory, interactive humanoid personality.”
That’s quite a statement! But how does it compare with reality? The answer can be found in one of Nate’s videos. Here, Robosapien demonstrates a new ability: bowling.
Yes, I realize Robosapien is just a toy, but I think the video perfectly illustrates the state of robotics today. There’s an enormous disconnect between the kind of robot we want to build:
…and the kind that’s actually available to us:
In other words, the field of robotics is wide open. There’s so much work to do, so much more we’ve yet to accomplish! In fact, the robotics industry looks so compelling and full of promise that I’m seriously considering making a career of it. I’m convinced this century will come to be known as The Robotics Age, and I want to be ready for it! In fact, I’m already finding myself focusing on robotics as the major “motivating example” for my doctoral thesis.
Who knows? Maybe one day I’ll learn enough to create a robot that can actually bowl…
After discovering Spamusement, the website of cartoons inspired by actual spam, I began to notice that some of my junk mail would make pretty good cartoons. Though I’m no artist, I thought I’d try my hand at making some “spamusement” of my own. Here’s my first attempt:
Yes, I actually received some spam titled “orbit burp.” It was an ad for a penny stock, but the subject line was randomly generated, obviously.
I posted my drawing in the Spamusement forums, and it was surprisingly well-received!
This summer I’ve gotten into the habit of playing Warcraft III online. Unlike certain other online games that are all the rage these days, WC3 isn’t a timesink. Games only last about twenty minutes on average, and they’re self-contained, so you don’t feel like you have to keep playing to build up your character’s experience points or inventory or whatever.
My favorite format is the three-on-three pick-up game, in which the server selects six random people and forms them into two ad hoc teams. One such game was a bit more interesting than most, so I saved it as a replay. (You can play it back if you happen to own a copy of Warcraft III.) Here’s a play-by-play:
11:30 The opposing team masses an army of Level 2 units and rushes Orange. 14:15 Orange’s base is toast, and Teal delcares his team the winner. Orange gives up and leaves the game. It’s over! …or is it?
Orange faces destruction.
17:00 The opposing team now sets their sights on me. Purple advises that I retreat to his base, so I teleport there. 18:00 As my base is being destroyed, Purple and I counter-attack Red. 20:00 Caught off-guard, the opposing team tries to defend Red, but it’s too late. Red is annhilated, leaving Green and Teal. Armed only with Purple’s base and my five Chimeras, is victory possible? 20:30 I send my Chimeras for an end run around the back of Green’s base. He has no AA, so the Chims destroy his base easily. Only Teal remains! 22:30 My Chimeras make another end run, this time to the back of Teal’s base, destroying his gold mine. 27:00 Teal and Green attack us in a last-ditch effort, sending everything they’ve got. It’s a battle for the center!
It’s a battle for the center!
27:30 The opposing team’s Level 2 units are no match for our Level 3 Chimeras and Tauren! Green and Red give up. 28:00 Teal, deprived of gold by my Chimeras, has no units and admits defeat. 28:18 Victory! What a comeback!
Mikołaj on Resize a UIImage the right way Hi. I really like what you have done, but after some time of developing using your code I encountered run-time …
shmim on Resize a UIImage the right way Not sure if you're replying to these questions anymore, but...
I'm having some issues with
My tests for this compile and …