Surf Roots, Software Thoughts A blog by Alex Loddengaard

29Apr/082

Preparation Purchases for Europe and China

I've been buying things like mad in preparation for Europe and China.  Take a look:

  1. 80GB Black iPod Classic - $250
  2. Plastic Classic iPod Case - $24.95
  3. 3x 2GB SD Cards - $7.99 each
  4. 8GB USB Flash Drive - $31.99
  5. Compact Card Reader - $11.99
  6. Universal Plug Converters - $17.99
  7. Lonely Planet Shoestring Guide to Europe - $18.47
  8. Pocket Journal - $10.95
  9. Black Passport Money Waste Strap - $11.95
  10. Some sort of power adapter + extra battery - $?? (my Dad bought it for me at the Sharper Image sale)

All these new gismos are giving me something to play with.  I've already encoded 20GBs worth of DVDs onto my iPod, and I'm absolutely astonished at the quality of the sound and video.

In other news, I've began researching the current culture in hopes of fitting in better.  I've found some notable YouTube videos related to dancing and hair styles.  It's pretty unfortunate that I erased the mullet, because apparently they're the cool thing in Europe along with strange dance moves.  Take a look.  I got some practicing to do.

You need to a flashplayer enabled browser to view this YouTube video

I must admit, I'm a pretty big fan of the pump-up shoes.  I'm gonna look to buy a pair while I'm over there.

Filed under: China, Europe, Traveling 2 Comments
29Apr/080

Bill Gates: Software Isn’t Going Anywhere

I attended Bill Gate's talk entitled "Software, Innovation, Entrepreneurship, and Giving Back" last week at the University of Washington, and I must admit that this talk was not nearly as interesting or enlightening as the Dalai Lama's talk a few weeks ago.

The talk began with the showing of a video depicting his last day at Microsoft.  Take a look:

You need to a flashplayer enabled browser to view this YouTube video

After the video Bill went on to discuss his view of the future of software.  He foresees technology surfacing in our day-to-day life even more.  He believes that one day all of television will be interactive and targeted.  You will be recommended different TV shows to watch, and you'll have the opportunity to see what your friends are watching, rate shows and movies, etc.  He also said that television advertisements will one day be targeted just as Google's text ads are targeted.  He also claimed that one day we'll no longer have normal mirrors, whiteboards, or desks.  Instead we'll have computer screens in place of these things that are interactive and customized.  He said the rise of these items will also make us think differently about user experience and interaction in a similar way that the iPhone has.

This portion of his talk was rather interesting.  He commented on Bubble 1.0 and 2.0 and wasn't worried at all about Burst 2.0.  He claimed that new technology will always create bubbles and that new bubbles will be created shortly after the burst of another.  He said, and I quote, "Software is the most interesting thing in the world."  This made me really happy, though I suppose it wasn't too surprising.  I definitely agree that software is an incredibly creative and exciting intellectual practice, and it makes me happy to hear others who are also as passionate about the field as I am.

The remainder of his talk focussed on his foundation and social issues.  He said that large foundations must partner with foreign goverments of the developing world to ensure progress is made in healthcare, environmental sustainability, education, and vaccination.  He claimed that having a healthier society decreases the birth rate.  His reasoning for this was that parents will have less children if they know their children have a high chance of survival.  He claimed that foundations need to think critically about incentives, because the incentive system of a particular project will determine its success.

I'm again grateful to have been given to opportunity to listen to such an influential person.  This talk convinced me that worrying about computer science jobs in the short term isn't worth it and that the software industry has plenty of growing to do.  It's rather exciting, actually :) .

25Apr/081

DirtyInq: A New Blog

Some friends and I have teamed up to create a blog about random, strange, and quite possibly dirty questions, comments, and situations. I've found many of the posts to be pretty fun (some samples below), so I thought I'd share the link here - the blog is called DirtyInq (like dirty inquiries). If you think you could give a good contribution, then send an email to contact -at- dirtyinq -dot- com. Hope you enjoy!

  • How would you respond if you were told, "Your blog-prowess butters my English muffin?"
  • What distinguishes prostitution from pornography? Both involve individuals getting paid and getting laid.
  • Would you be grossed out if you found chunks of cereal inside your shirt from earlier in the morning when you sneezed into your shirt after eating?
Filed under: Links 1 Comment
24Apr/080

This is Customer Service: Aptana

Earlier today I wrote a post describing my difficulties with Aptana, which is an IDE for PHP, Ruby on Rails, and other things.  A few hours after I published my post I was contacted by means of a comment and an email by several people from the Aptana engineering team.  They wanted to know more about my troubles and offered personal assistance.  Are you kidding me?  This is perhaps the most exquisite customer service I've ever been witness to.  Not only is the Aptana team willing to help me for free, but they're also actively searching for bloggers having trouble.  I'm speechless.

Customer service like this makes me want to run down the streets of Seattle skipping and screaming, "Aptana! Aptana!"  Seriously.  Once I get a response I'm going to give Aptana another chance as an environment for running Rails apps - currently I just use it for text editing.

Hats off to you guys, Aptana engineering team.

24Apr/082

A Second Look at Software Engineering a Startup

I wrote a post a while back about software engineering a startup, and Clint's comment made me realize that my post was poorly thought out and just plain bad.  I argued that the quality of code you write should be related to the type of financial situation you're in.  For example, if you're a funded startup, then you should be writing good, maintainable code.  However, if you're not funded or if you're doing a personal project, then you should code quickly to get features out the door.  I want to revise my argument.

I've now worked on two pretty large personal projects: Cellarspot and Best Seattle Bars.  Cellarspot was developed in JSP, and the code we wrote was totally maintainable and robust.  On the other hand, Best Seattle Bars was developed in PHP, and the code I wrote was all inline.  The following analysis may be obvious, but I'll make it anyway:

Robust, Maintainable Code
Advantages: Maintainable, easily refactorable, and expandable
Disadvantages: Generally requires more work, thought, and usually a more advanced development environment

Inline Code
Advantages: Requires less work, less thought, and a much less sophisticated development enrivonment
Disadvantages: Not maintainable, not easily refactorable, and not expandable

So when should you write fast, inline code, and when should you write good, robust code?  Inline code is great when you want to prototype something.  It allows you to quickly launch a set of features so you can evaluate your idea.  Robust, maintainable code is basically great for all other cases.  Now let's examine three cases:

You write inline code and your idea blows up
Your idea takes flight and before you know it you have tons of users, tons of peers programming with you, and your users want more features and better reliability.  Chances are good that you'll have to recode your entire web app, and that's going to be a HUGE upfront cost that perhaps is more costly than writing good code to begin with.

You write good, maintainable, robust code, and your idea flops
First, let me just say that I feel your pain. One might think that this case is a total waste of time, but I'll argue the contrary. I learned an insane amount by going through the process of writing good code, and it would be a good practice for me to do it again. The value one gains by going through this process is huge - it can help you get jobs (it did for me at least), and it keeps you sharp.

You use Ruby on Rails or some similar framework
Frameworks such as Ruby on Rails and Django let you write good, maintainable code very, very quickly.  They let you avoid the above two cases completely, because you won't waste your time on a flopped idea and you won't find yourself scrambling for dear life if your idea blows up.

My conslusion is the following: write good, maintainable code, and choose a framework that makes it easy for you to do so.  You'll avoid the upfront costs of writing good code, and you'll avoid the posiblity of large refactoring down the road.

24Apr/085

Ruby on Rails: First Impression

First impression of Ruby on Rails: awesome.  It does so many things for you, and it makes things so easy.  "Things" is a very vague term, so I plan to write a much more in-depth post when I know more.

I tried to use Aptana as a fully enclosed IDE, but I couldn't get it to work correctly after trying to reinstall it at least 10 times.  I followed a guide on how to install Ruby on Rails on Mac 10.4; I got everything working from the command line.  Finally!

More Ruby on Rails updates to come.

23Apr/085

Just Another Weeknight in the U-District

I recently wrote about 10 ways the University of Washington could improve, and forth on my list was the UW police.  I mentioned that I receive an email once every six months that describes a stabbing, shooting, or murder.  Here's my proof.  Below is a quote from an email I received earlier today from the UW police office:

On Wednesday, April 23, 2008, at 1:48 AM, a female UW student was robbed by several
men at knife point while walking alone at the intersection of NE 47th Street and 18th
Avenue NE. The suspects emerged from a vehicle. The victim was not injured.  The
suspects fled the area after taking personal belongings from the victim.  One of the
suspects is described as a male, 5'7", in his 20s, wearing a black baseball cap and a
dark hooded sweatshirt.  This incident was assigned Seattle Police incident #
08-144718.

Approximately 7 minutes after the above incident, at 52nd and University Way NE, two
male victims were confronted by two groups of  males who assaulted and robbed them.
These groups also emerged from vehicles. One victim was stabbed during the fight and
was subsequently treated at Harborwiew Medical Center. The victims were not students
and had no affiliation with the University.  The suspects in this incident fled prior
to the arrival of the police.  One suspect was described as a male in his 20s, thin
build, with an orange colored hoodie, black shirt and shorts.  The incident was
assigned Seattle Police incident # 08-144725.

Pretty ridiculous, huh?  I know the issue is more complicated than I make it out to be, but I'm pretty certain that having an officer or two patrol the greek system at night would be relatively innexpensive and very effective.

Filed under: School 5 Comments
23Apr/084

The University of Washington Campus Rail Jam Saga

This Spring marks the second consecutive year that the Husky Snowboard Team president (me this year, Barry last year) has failed in getting the University of Washington to approve of an on-campus rail jam.  For those of you unfamiliar with rail jams, a rail jam is a type of snowboarding event where professional snowboarders and skiers slide down boxes and rails while spinning and pressing.  Here's a photo from one of the other campus rail jams:

Last year Barry worked with the Student Activities Office (SAO) to try and get this event approved.  The event management company, Galvanic Designs, was low on funding at that time, so they weren't able to provide financial support.  The SAO decided that there was not enough incentive for the club to throw this event, so they wouldn't let us do it.  Fair enough.  "We'll do it next year!" said Barry and I.  Yeah right ...

My portion of this saga started earlier this fall on the second or third week of school.  I went into the SAO office with another officer; we were hoping to throw a jam in the fall.  Our SAO advisor told us to fill out a certain form and to wait for Risk Management to get back to us.  I filled out the form immediately and waited.  I was told that Risk Management usually took three weeks to respond, so I set the event date for a month after I submitted the form.  Three weeks later I get a response from the HUB saying that I filled out the wrong form.  Great.  I filled out the form I was told to fill out, and now it's too late because Risk Management won't have enough time to approve the event.  I submitted the right form and pushed the date back.

A few weeks pass, and I get a response saying that they need a contract outlining the responsibilities of the HST and Stevens Pass, the mountain that was planning to throw this event with us.  I draft a contract as best I can and send it off the next day.  I don't hear anything back, so a week prior to the event date I ping the SAO advisors to see what's going on.  I basically get a response along the lines of, "Sorry, nothing."

I'm kinda frustrated at this point, because it's now December.  I give up on throwing an event in the near future and start working with Galvanic Designs to get an event thrown May 1st.  Galvanic Designs has a great track record - they do campus rail jam tours at tons of other schools including University of Oregon, Oregon State, Washington State, Gonzaga, Colorado University, Denver University, etc.  The have a huge insurance plan, lots of contracts that have already been used by other schools, and in general good experience throwing events like this.  Immediately after requesting May 1st as our date, I send paperwork to the SAO that Galvanic gave me - the same paperwork that got the event passed at all the other schools.  I then take a few months off to let them look through the papers.

I head into the HUB at the start of April to see how things are going.  "Oh, we didn't receive any documents from you."  Duuuuude.  I give them another copy right away and give them a few days to look at it.  I ping them a few days later.  "Oh sorry, we haven't looked at them yet."  Alright, it's time to go into overdrive.  Dan, the cofounder of Galvanic Designs, drives up from Oregon to meet me at the HUB.  The two of us drop off a printed and signed copy of the documents at the SAO and at the Risk Management office.  Oh by the way, up until this point, I had never heard from, seen, or knew anything at all about Risk Management.  I envisioned some group of lawyers piled into small cubicles, locked away at some strange corner of the university.  The SAO never let me speak directly to Risk Management, and Risk Management would never respond to me.  Read on ...

From here on out, the story stays pretty consistent: I visit the SAO three times a week, ask them how things are going, and once I hear "Oh we haven't read the documents yet," I head to the Risk Management office.  Once I get to the Risk Management office, I pick up the phone in front of their locked door and try to speak to one of the officers.  I either get a voicemail and leave a message or I get a, "Sorry, she's not in right now"  response.  A few weeks pass, and the SAO gives us a date when they'll have a response for us.  The date comes, and I don't get a response.  I call them at 4:00pm to see what's up, and they quickly reply with a flat out "no."

Now I don't want to pass judgement on the SAO and the Risk Management office, but it seems to me that they didn't put an ounce of work into this.  It seems to me that they didn't want this event to happen, yet they let Dan and I continue to call and stop by, which now I realize was an utter waste of time.  I don't know.  This frustrates me, but I suppose it's just how it's gotta be.  To give the SAO and Risk Management credit, this would have been a HUGE event with lots of responsibilities and lots of mayhem, so I somewhat understand where they're coming from.  I would also like to point out that I'm not putting blame on any one individual at the SAO or Risk Management office.  I'm instead putting blame on the officers themselves and the processes that they choose to follow.

I tend to try my best to learn from my failures, but I don't think there is much to learn here.  If anything I've learned that it's important to look for bad signs and quit early, but I don't like to quit.  Hopefully the president next year will get approval and throw this sucker; I just worry that he or she will waste as much time as I have and as Barry did before me.  Good luck, Husky Snowboard Team president '09.  Hopefully the University of Washington will loosen up a little and let the kids jam.

Photo credit: here.

22Apr/081

Google’s Earth Day

It appears as though Google has beaten me to the punch again.  A few months back I wanted to create a user-driven, Q&A-style search engine.  Two days after I got my idea and started coding I learned that Google had done this in Google Labs and that Mahalo was already doing this.  Dang.

Another recent idea I had was to create an index of non-profit organizations in hopes of allowing people to become more aware of the organizations that are out there.  Google just announced that as well.  I suppose it's better Google than me - they have huge traffic and will most likely generate a lot of donations.  If my non-profit index would follow suit with all of my other websites such as Helpd, which has somewhat of a similar goal, then the non-profits would get little to no donations.  Go take a look at what Google is doing, and donate if you want.  It'll probably help out :) .  I donated to Acterra.

Filed under: Links, Projects 1 Comment
18Apr/081

AGR Shout Out

I just wanted to note that the dudes from AGoodReed, Andrew Hart and Barry Sevig, are always commenting on my posts, so I wanted to share some love.  Thanks for all the love, guys.

Filed under: Links 1 Comment