Haskell Introduction

So one of my interests and therefore, one of the things I plan on rambling about in this blog is programming languages.  I’m pretty sure that based on the people who currently about this blog I’m not going to have a very big audience which will care about or understand these ramblings, but that’s not going to stop me.

For anyone out there that does care and wants to understand, I recommend the following videos as a starting point.  Haskell is my current favorite programming language and these videos contain one of the main people behind Haskell giving a very accessible introduction to the language.

Part 1

Part 2

So watch the videos then dowload ghc and play with it.  Or ignore me when I blog about this stuff.  Either way.  If you are at all interested in computer science beyond what you need for a job you should learn Haskell though.  Here are a few reasons why:

  1. It’s just about the only functional language which has a really nice syntax.  I know Lisp people love their parentheses to death but that’s not for everyone.  Most functional language designers see syntax as unimportant but the designers of Haskell actually cared.  It’s not familiar for people brought up on C and certainly has its warts but overall it’s a joy to work with.
  2. It’s designed so that a very large class of errors that plague most languages, just never happen or a caught at compile time.  No null pointer errors!
  3. Powerful type system.  The static type system helps you out rather than gets in the way.  It has type inference so you only need to  specify types you want to for documentation purposes.  Other cool stuff that’s hard to explain briefly (the video goes into it a bit).  Anyone who claims dynamically typed languages are universally better than statically typed languages based on only using C++, Java and such, needs to try Haskell to have an informed opinion.
  4. Unlike most obscure languages, there’s a good community and a fair amount of libraries.  Hackage is a centralized software repository like CPAN (obviously much smaller so far).  Two really cool libraries worth checking out: parsec and stm.  Both of those libraries take advantage of some of Haskell’s features and you couldn’t write those libraries the same way (or as nicely IMO) in another language.
  5. It has ideas in it that will change the way you think about programming.

Things I’ve been up to lately

In no particular order:

D&D – Yeah, one of the only nerdy things I had never done up until this point.  I’ve still never gotten into Star Trek though.  It seems very much like the game depends very much on the group you play with and luckily we have a good group, so it’s fun.  I have been putting a character together very slowly with everything else I have going on, so as  a cop out my character has amnesia.

Music – Playing a lot of guitar lately.  Brandon helped me get started playing and we jammed a fair amount throughout college.  Now I’m living with him so it has and hopefully will continue to happen more frequently.  I’ve also been trying to relearn the saxophone after not playing for many years.  Finally, there is a possibility I will be playing bass in a band with a few friends.  It’s pretty similar to guitar so hopefully I’ll be able to pick it up pretty quickly for them.

Firefly night – Firefly is one of my favorite TV shows of all time, even though it was sadly cancelled after 14 episodes.  I’m watching it over again with a group of people.  Some of them have seen it, others are watching it for the first time.  We get together every 2 weeks and watch a few episodes and discuss them.

Watching the fireworks – I’ve only been in Boston for the 4th of July for once before and I was out at a party in JP, so we watched the fireworks from a random overpass.  This time I went with a group of friends and got right up near the Charles.  They do a really good show in Boston, and I highly recommend watching them up close.

Exercise – There’s a gym in my work place which is very convenient.  I’m taking a yoga class there, it’s supposedly good for my condition and it’s also a relaxing way to break up the day.  I’m trying to get back into running but I’ve been exhausted with moving to an new area and starting a new job.  Plus it’s been raining for pretty nearly the past month and a half straight.  I didn’t choose to live in Boston for the weather but it’s been bad even for here.  Anyway I went for my first run since I’ve moved here last weekend.  Ouch.  Taking it slower next time.

The Agreement

One of the reasons I hadn’t started a blog until now was that I figured I would write a few posts and then get busy with other things and neglect it.  To avoid that I have entered into the following agreement with some other bloggers:

When anyone adds a new post to their blog, above and beyond whatever post debt they may have accrued, all others will endeavor to update their blog within 24 hours of the initial post. Auto-generated posts pulling from twitter do not count towards the agreement. Leniency will be provided in case something comes up of course, but try to do your best to be prompt. Failure to update without good reason may result in us calling you names or insulting your mother. You have been warned.

Here are the other people involved and links to their blogs:

So check out those blogs too, if you are so inclined.

With that, let the blogging begin…

Hello world!

Some of you out there may be a bit surprise that I’m starting a blog, since I’m a quiet, inwardly focused person by nature so I’d to use my first post here to talk about the rationale behind it and what you can expect to find here.

There are two reasons I have decided to start a blog.  The first is that I have a strong tendency to lose touch with people.  If I don’t see you on a regular basis and you don’t make the effort to get in touch with me, we will probably go for a long time or perhaps indefinitely without communicating.  By my nature I’m just not particularly interested in shooting the breeze with people and so unless I have something to say to you, you won’t hear from me.  This will give me a way to give people updates a about my life and hopefully people I’m close to will subscribe to it and it will help us stay in touch. You’ll have a steady source of communication from me that I’m just not going to keep up on a one to one basis with everyone that I should.

The second reason is that I spend a lot of time thinking about lots of things, topics are mainly but not in any way limited to philosophy, politics, technology, computer science and culture.  I’d like to start writing my thoughts down.  The process of writing helps one clarify their thoughts, I’ll have record of them to go back to and maybe there are even people out there who are interested in hearing what I have to say.  I often have difficulty striking up a conversation with people so maybe if people find things I write here interesting we’ll have more to talk about.

So for everyone out there who hasn’t heard from me recently, let me catch you up on the current state of my life.  I graduated from Northeastern University two months ago with a B. S. in Computer Science and a minor in Philosophy (actually I don’t know if the minor technically happened, I fulfilled all the requirements and but I never heard back after I filled out the paper work).  Despite that slacking off and partying that should happen at the end of school, the last few months of school were one of the most difficult times of my life for a few reasons.  I ended up having to take some of the harder classes my last semester.  Looking for a job with the economy as it is, was very stressful and emotionally draining.  Additionally I have a chronic medical condition I developed about a year ago.

It’s something you won’t hear about much from me on this blog or otherwise unless, both because the nature of the disease isn’t something you want to hear about and because I am a stoic person and it’s my burden to bear.  I’ll write something here if I get significantly better or worse.  All you should know is that I’m not going to die of it, I am significantly uncomfortable much of the time, I’m just trying to go through life as normally as I can and if you must know more, talk or email with me privately.

On a lighter note I have managed to make it out of this job market and find a job.  I’m working for BBN Technologies in Cambridge as a software engineer in their Advanced Networking group.  It’s going fairly well so far, more details will follow in a later post.

I recently moved into the Brighton neighborhood of Boston.  My only gripe so far is I’d really like to be more centrally located.  40 minutes to Park Street on the Green Line makes getting to Cambridge for work or anywhere outside the Brighton, Brookline, Allston area a pain.  There are definitely some awesome people there though.  More on that and things going on with them later as well.

So, there you have it, welcome to my blog.