Learning Perl

(2010-07-09 00:00:00 -0700)

After what was probably too long trying to avoid it, I'm finally diving head-first into Perl. I feel learning Perl takes more investigative work than some languages, as what's best practice is somewhat subjective and has changed since a few of the more popular books have been published (e.g. Programming Perl). I've made a few observations:

  • Ruby borrows Perl's syntax more than I realized (e.g., postfix conditionals)
  • The breadth of libraries available is amazing -- by far the best of any language I've used -- and people really seem to be good about writing good docs for their code.
  • cpanminus is by far the best way to use CPAN; it works exactly how I would expect a package management system would in 2010, unlike the bevy of features you need to configure when using the perl -MCPAN -eshell CLI.
  • Moose seems like a very impressive library, and seems much more natural than manually blessing modules the "old-school" way.
  • Variable Context-awareness is something that took me awhile to understand, but now it seems natural to me. I think dealing with references adds another layer of complexity that can be intimidating to new users having to deal with both at the same time.
  • I'm not sure about how argument passing is implemented in Perl, but thinking of it as a simple stack makes the most sense to me.
  • Implicit variable passing (@_ and $_) seem like a bad idea for maintainability, but really cut down on the tedium of dealing with variable names. I'm growing to like the feature.
  • Perl's efforts to be backwards-compatible has left it with a lot of vestigial syntax; in a way it suffers from the same problems C++ does in trying to please too many. The solution for a lot of teams using C++ is to use a well-defined subset of the features, and I believe this parallels making sure to use the latest features of Perl as well.

All in all I'm liking it. Next up: Clojure?

Back in Seattle

(2010-06-27 00:00:00 -0700)

Honestly, I didn't mentally plan for being in Seattle again, but it's here. This time I'm here for the forseeable future; I'm pretty excited to make a mark here...

I picked up some great records already at Zion's Gate and Half-Price Books. I have a feeling finding good music is going to be pretty easy. Here's what I picked up:

Tuftian

(2010-02-10 00:00:00 -0800)

If you're at all interested in visual / graphic design, I'd highly recommend picking up a copy of Edward Tufte's Visual Display of Quantitative Information. I just got done reading through it after having set it aside for awhile. Although very consise, it highlights features of great graphic design every designer should keep in mind. He wrote much of it with pre-computer era graphs in mind, but I found that it translated very well to web design and computer interfaces as well.

One of his main ideas is that great graphic design reveals the greatest number of ideas in the shortest time, with the least ink, in the smallest space. He provides examples for almost every point he's making so it's easy to see what exactly he means.

Even if you're not into graphic design, it looks pretty good on a coffee table.

txting

(2010-01-08 00:00:00 -0800)

One thing I find interesting about text messaging is the constraint the 160-character limit imposes on what you're trying to say. Given that constraint I often have to really think about how I can maximize the density of my message... Ideally without resorting to non-sensical shorthand. It's like a haiku in a way.

mPark working

(2010-01-04 00:00:00 -0800)

I've finally got mPark running again after it being down for a month or so. The goal is to provide a better service to find any kind of parking in Ann Arbor. It currently uses canned data but I should have (hopefully) it pulling from craigslist pretty soon. Users can search by distance from home and/or price, and it shows all the spots on a Google Map complete with StreetView so you can see what it looks like.

pdlib released

(2010-01-03 00:00:00 -0800)

Today marks the intial release of pdlib, which will hopefully encourage more Pure Data development on the iPhone. Also, I'm planning on having wordy and mPark up (and possibly revamped) relatively soon.

Happy new year

(2010-01-01 00:00:00 -0800)

Happy new year everyone!

I'm in the middle of redesigning the site. I'd like to increase the activity level of the site as there are a few projects I've been working on which need a home online. One is iJam, a mobile music app for the iPhone that I and a few others are working on. We hope to have it out sometime in the spring. It uses another library called pdlib which I'm excited to be able to share with other developers.

Summer plans

(2009-04-27 00:00:00 -0700)

Going to Seattle this summer again; anyone know where to see some good music? My goal is to not waste a minute of time there. So far on the list:

  • Go to Vancouver...
  • Maybe take a trip to Portland
  • Get a bike and ride it every day to work
  • Find the best Thai restaurant in Seattle
  • Sailing?
  • Woodshed some pedal steel
  • Go camping in the forest
  • Meet up with Empty Orchestra

mPark beta available

(2009-04-23 00:00:00 -0700)

Just got a preliminary version of a parking locator site for Ann Arbor called mPark working. I'm trying to make finding monthly/weekly/hourly parking easier to find in AA. Eventually I'd like it to pull from craigslist.

Harmony

(2008-12-04 00:00:00 -0800)

"Art is harmony." - Seurat.

When applied to all that is beautiful, this sentence carries a great deal of weight. I think that everything worth achieving in life carries with it the goal of being harmonious in some way, whether that means being dissonant or negative in actuality. The randomness of something is sometimes order on a higher level (Sonic Youth?).

This sentence is what I've decided will drive my decisions in the future. It gives reason to a lot of things I do -- when I'm programming, I often have to argue why I think coding things in an abstract way, using good design decisions is justified in projects that I'll never have to work on again. Why do it? I think it's all about that pursuit of perfection. One has to consistently strive for this to able to get anywhere near it -- and making things as harmoniously as you can gives one reason.

Winter

(2008-12-02 00:00:00 -0800)

Winter is a punch to the face. It's where nature proves it has complete and utter control over our lives.

Quoth nature:

Roads... ha. Let''s see you drive on six feet of pure ice. Pavement isn''t so great now, huh?

Winter is for the STRONG. Hemingway would approve.

Insights for the day

(2008-11-13 00:00:00 -0800)

I realize my life and the maintenance of my psyche essentially boils down to a couple of things... making the most of now in a life where I'm constantly planning my next step. I think these two things don't have to be mutually exclusive, but I can sure make it seem that way. I think you really only are yourself when you're focused on the present. All good happens in that space of time when you forget what your surroundings are, the circumstances you're in, and just let things play out. There was some lyric I heard -- I think it was John Lennon -- that said life is what goes on when you're waiting for something else. Worrying about the future is never necessary - we just say it is because it seems to make everything better in the long run, when really we're just diluting the experience of now. I wish I could take that plunge. Maybe I will. I can sure wax romantic about it, though.

On a tech note, I ordered a veggie burrito at the nearby Chipotle today. While ordering, I couldn't hear what the burrito woman had asked (it was "beans AND stir-fry?" or something like that), and just replied with my order of black beans. Later on inquiring where my stir-fry was, she had told me she had asked me and I said nothing about them, so we assumed I didn't want any. I really don't mind... I find myself to be a pretty easy-going person... but it made me think there had to be a better way to order a burrito than having to be asked every time you order which beans, which toppings, cheese? sour cream? salsa... and list the types of salsa... if someone comes in there often with their card, why isn't there some sort of RFID tag which remembers your information in the first place? You know they're already collecting it, even if it's not personally identifiable. Burrito woman was obviously upset at having to repeat herself, so I think it would be best if we both didn't have to repeat ourselves. This non-interaction would probably be useful more at a lunchtime place like this than somewhere where human interaction is part of the dining experience, not a burden. Or maybe a technological solution isn't best. Maybe it's something that needs to be just streamlined in way so people don't have to answer so many questions. There is a sub shop called Za's that does an index card order system, but that also seems to bother me that I have to fill those out to order as well. Maybe I'm thinking about this too much.