Saturday, May 09, 2009

More time, more problems

It's that time of year again; summer has just begun, so it's time to make a list of things that might be interesting to do so I don't get bored out of my mind (mostly a list so I don't forget things). My first year as a PhD student has gone by somewhat uneventfully. I think I've passed my qualifiers, but this semester's batch has yet to be seen. I've been getting this weird, nostalgic feeling with more friends graduating and leaving Purdue. It's like those sports movies when the coach at the end is being all emo when he's shutting off the stadium lights. Awesome, right?

The only definitive thing I'll be doing this summer so far is research. Not something terribly interesting at the moment, but I'll probably be getting paid as a summer RA (that's research, not resident). This probably means I'll be working towards a workshop paper, but who knows. Hopefully my partner will be around, because the stuff we're doing now is a drag. I'll be going to a week-long summer school in Oregon, as well. The topic is virtual machine/compiler implementation, so I'm looking forward to it.

Summer is when I get all of my recreational reading done. By recreational reading, I mean anything not school related, be it fiction or technical. I finished the Sword of Truth series last summer, and it was great, aside from the poor print quality of the books I got. Possible options:

  1. A Song of Ice and Fire series by George R. R. Martin. Looks to be shorter than the Wheel of Time series. Plus, I already read the first WoT book, and would rather try something else before returning to it. I intend to read at least the first book in this series.
  2. Wheel of Time series by Robert Jordan. Probably won't get around to these, but I don't have much else on my list of fantasy fiction.
  3. Real World Haskell. Enter nerd books. I've read a few chapters into it already, but it's a big book. It's interesting so far, but I certainly haven't reached the part where I would call my Haskell knowledge "real world."
  4. Gödel, Escher, Bach: an Eternal Golden Braid. I bought this book awhile ago and never got past the preface. Maybe I can get past it this summer.

I always want to do some recreational programming over the summer, but I end up getting lazy. Nevertheless, a possible list of things to work on:

  1. Mercurial. Specifically, hgsubversion. I originally applied to do this for Google's Summer of Code, but got turned down. Still, this project is interesting to me, since many people have no interest in learning Mercurial, leaving us stuck with Subversion. Progress on this would let me avoid Subversion. I've already submitted some minor patches during the school year, but I'd like to contribute something significant if I could.
  2. Luke's BookLi.st project. A fairly interesting Django application. Not sure what I would do; API functionality would be an idea to implement, but probably wouldn't be a very large project.
  3. Personal website in Django. This is obligatory; I think I post this every summer. I always dream up designs in my head, but am not graphically-talented enough to really materialize them. I'd still like to get one up, someday. Maybe it would motivate me to blog more, somehow.
  4. Miscellaneous billion-dollar web startup idea. Yeah.
  5. Game programming. I've grown somewhat weary of the idea of game programming, but will nevertheless be revisiting it with a few others. Some of the others have experience in this area, so it may be less tedious. I wish I knew graphics people.
  6. IRC client. Kind of a dead horse, but I'm not really satisfied with any Windows IRC clients. This would end up being a cross-platform (Python) engine with a Windows-only (WPF) GUI built on top of it. Yeah, I could easily use a cross-platform toolkit. No, I won't. This also adds the limitation that the engine has to run on IronPython as well as CPython, which means Twisted is out. Could be interesting if this got anywhere. Big if.

If I had more things on the list, I guess I've already forgotten them. Knowing me, I'm forgetting something big. Hopefully I'll get things done this summer (I say this every summer, don't I?) and have more to write about. It's kind of sad that the few people from Purdue CS I knew blogged have all stopped, myself included. I guess we've relegated our ideas to 140-character messages now.

Side note: If anyone wants to play Civilization IV, I'll be participating in a potentially slow-paced multiplayer game with a lot of newbies in it. If anyone is interested...

3 comments:

Luke said...

I'm about 75% done with Real World Haskell and I love it! Def a great read even if you never ever program Haskell.

GEB sucked. I only made it about halfway through when I realized the book was targeted to readers far below a CS major's understanding of logic. (I had taken quite a bit of Philosophy before reading it as well).

I'd recommend doing /any/ summer project with Django. It exemplifies what is fun about programming. It's quick to be creative yet challenging and completely different from the algo trading work I normally do. Bookli.st could def use an API and a personal site would also be cool.

G said...

Don't worry buddy. I'm still here! At least for another semester. Good luck on WoT. Just be ready for a really large, all-encompassing fantasy world. When you think every aspect has been introduced you'll get hit with another huge piece of the puzzle.

If you need any design advice/help (for your website), Trisha is a graphic designer so I'm sure she could help, though I'm not sure how much since she's working at a web design firm downtown this summer. There's a link to her website on my blog, but that isn't actually her design yet. I'll let you know when her's is up so you can see if you like her style.

Jeff said...

You should look into wxPython for the GUI, its a nice cross platform system and easy to use. OO-oriented and you can use wxGlade to generate the code. I have been using it a lot recently, and it is pretty nice.
Django is a must, like Luke said, its easy to work with and be creative but still gives a challenge. The major difficulty I had is getting out of the mindset I achieved through lower level (non framework). For a design, just layout the HTML and then you can plug in different CSS files, thats how I did the redesign for my site. You don't need to be a graphical artist, I don't think my current design is that bad and I sure as hell have no experience with any art, or any talent for that matter.
My projects are converting my site over to django. I want to give an overhaul to the admin page, set up syncing with Flickr and my gallery, integrate admin capabilities within the main site (like editting and comment deletion), and make all the designs expandable. I also want to work on Hisser, my twitter client. I just need to get the GUI stuff working, and since I am staying away from one main window and trying to keep it as a tray based app, I am going to become frustrated eventually.
Also, you are planning on coming out for Kim's birthday, right ? (I am saying this just for her)