Gesticulations and Other Geekery » Archive of 'Apr, 2012'

An update on plans and schools and being an academic

So it’s been a while since I posted and, just in case there in anyone who reads this who I don’t regularly talk to, I thought I’d give an update.

I have decided (3 weeks ago) to go to Austin for my PhD. I’m scared but it’s the right choice academically. I will definitely lose something, since I have a several very good friends here in Portland. But who knows maybe I will be able to come back someday. I do like it here.

Regardless, it is decided. So in Aug I will be moving across the country again. Not quite as far as last time, but it’s still a ways. I’ve been thinking about logistics: I will either ship things (FedEx) or drive a mini-van or similar. I’ve already started making some contacts in Austin and I will probably visit there in July before I move. There are a couple reasons. One is that it will allow me to get an apartment. The other is that there are some people at UT that would like to talk to me before the semester starts, including a student who is leaving and I will be continuing their work to some extent (probably, nothing is set about what I will do and there are a lot of options).

Also I submitted my Master’s thesis to my committee. I will be defending it on May 10th (if you are in Portland you would be welcome to come to the defense just email me and ask for location and time), so I still have a lot of work to do to prepare for that and once that is done I need to prepare for my presentations in Japan (see below), so I’m still quite busy but I’m relieved to have the thesis out of my hands for at least the moment. I will still have to do another revision after the defense.

In other news, I’m going to Japan for a week in late May. I have a paper in FLOPS (First author is Sergio Antoy) and will probably have an extended abstract in the WFLP Work-in-Progress session. I will also have 3 days to be a tourist. I have a 7-day Japan Rail Pass, so I will be able to run around Japan in most of the trains. It will be pretty exciting, but also scary. I still have logistics to work out.

I’m planning on buy a semi-fancy camera for the trip and because I like to take pictures of things currently I plan on getting the Sony Alpha NEX-5N. I will be buying it very soon, probably today, so that I have it for my trip.

Also my websites got hacked a while back and I didn’t even notice. Grr. I feel like an idiot. I have now fixed everything and upgraded everything. I am 99% sure there are no lingering backdoors. :-/ I’m going to set up some monitoring scripts, so I will get notified immediately if it happens again.

Posted in Grad School, Life (other than code)

A musing on how to become a better programmer

So I had this thought and I wrote it up to send to someone so I thoughts I would post it here too.
If you want to become a better programmer learn lots of languages of different kinds. I think all programmers should learn at least one language from each of these groups (or a language of the same kind, these are just ones that came to mind) and really learn how to think in it and write idiomatic code in it:
  • Haskell, OCaml, SML (Functional languages)
  • Prolog, Mercury (Logic languages)
  • Python, Ruby, JavaScript (Dynamic languages)
  • Java, C#, Scala (Modern O-O languages)
As you learn how to think in all these languages you learn new ways to approach problems. Also learning each type system will help you understand what types are for and why you should care.
  • Functional languages show you how to think about computation as transformations on data and about side effect freedom.
  • Logic languages teach you how to express problems and solutions without needing to specify the algorithm used to find the solution.
  • Dynamic languages teach you how to make use of an mutable runtime environment (by doing things like changing class definitions at runtime) and how important types really are.
  • And finally modern OO languages teach you how to structure data in a way that captures the fundamentals of what the data is. Especially if you use generics and variances.
Posted in Computers, Programming