Swift

I got an iPod Touch in 20091 and wished from the start that I could write my own apps for it.2 I knew approximately nothing about coding, though, so it was a rather far-away sort of wish.

In grad school I learned to code in Matlab. It was a sink-or-swim kind of thing. With the help of another grad student, two books, the wonders of Matlab Central (and later StackExchange), and lots of practice, I learned how to write and debug programs.

My brother is a programmer, and by his standards I'm a hobbyist at best, but I can make the computer do what I need, and I've gotten better as I've gone. Still, he teases me about how I should learn a "real" language, and I kind of agree. So about a year ago, after listening to a Mac Power Users episode about learning to code, I bought a book about learning Objective-C.3 I got a little better than halfway through it before other things got in the way; it's one of the things I was planning to come back to this summer between grad school and job.4

Those summer plans may have just changed, though. A week or two ago at the WWDC Keynote, Apple announced a new programming language called Swift and I think I'm in love. I watched the demo and thought "I can definitely do this." I may finally be able to write the apps I wished for. There's an eBook about the language, which I've already started reading. Though it starts from "Hello world," I don't think it would be much help if you had no familiarity with programming whatsoever,5 but it does look promising for someone (like me) who has at least dipped their toes into the programming pool before.

So that's my next side project: learn another language, try to make an app (I have several ideas), and see how it goes. I'm excited to get started.


1: Nearly 5 years later, it's a bit sluggish but still kicking.

2: I was also bowled over by the idea that the device playing podcasts in my pocket had a bigger hard drive than my laptop's original drive: 64 vs 60 GB. When I stop to think about it, it still amazes me how powerful the gadgets in my pockets and bags are. And then I start feeling old…

3: It's a really good book, too: The Big Nerd Ranch Guide. My inability to finish it has much more to do with being an overwhelmed graduate student in need of "off" time for my brain than the quality of the book. I highly recommend it, and I think it's an excellent example of instructional writing.

4: Oh yeah, I accepted a job about the same time I was completely overloaded with dissertation and defense stuff. The defense is done, the dissertation is submitted, and though I wrote about the stresses and thrills of job-hunting, I guess never did mention here that I did accept an offer. More on that another time. Short version: I have a job starting in August and I'm excited about it!

5: This is actually the same gripe I have about the Matlab Getting Started Guide and books for "beginners." All of these say that you can start from scratch, but they usually assume knowledge and vocabulary that a first-time programmer may not have. (I'm looking at you, floating-point array.)

Consider these programming languages like human languages: the Getting Started Guide might tell me how a verb is conjugated, but if I don't know what "conjugation" is, I don't know what to do with that information. If you've learned another language before, you've probably learned the meta-terminology already, and have some kind of structure for understanding this new set of words, sounds, and grammar rules.

They call me Dr. Haas

Good morning. How are you? I'm Dr. Worm Haas.
I'm interested in things.


As of today, I've officially completed all the requirements for my PhD.

So I'm not a real worm, but I am a real doctor.1

Dr. Worm has been stuck in my head for a few days. Now you too can share in my joy/misery.


1: As my grandmother joked: I'm not a "real" doctor, either because I'm not "the kind that helps people." (She agrees that a PhD is helpful, too.)

Some things I've enjoyed recently

  • Type:Rider, a game about the history of typography. It's beautiful and fun.
  • This post at Wandering Scientist. I love the two quotes at the end.
  • This post at the Chronicle of Higher Education blog. I'm bothered whenever I hear someone preaching about the "real world" and how students aren't prepared for it. The "real" world is full of real people who should be treated with respect and kindness. We gain nothing by dismissing our students.
  • Forbidden Island, my new favorite puzzle (it's a digitized board game, but I've been playing the local multiplayer solo)
  • 2048, which has usurped sudoku as my go-to time-waster. (Thanks a lot, @chemjobber)
  • iThoughts, an iOS/Mac mind-mapping app I've used for a year or two that was recently updated with some nice improvements.
  • This post at Penny Arcade on the use and purpose of Twitter was amusing. I also worry at times that my tweets aren't "good enough." Plus, I have a soft spot for Austen references.
  • This Periodic Table by Compound Interest is pretty cool.
  • It's not nearly as recent as the rest of this list, but I've really been enjoying the Points of Significance column at Nature Methods, and the Points of View column before it. My statistics background is much weaker than I'd like, so it's nice to have a primer. Points of View is similarly helpful for tips on designing figures.