Preparation Purchases for Europe and China
I've been buying things like mad in preparation for Europe and China. Take a look:
- 80GB Black iPod Classic - $250
- Plastic Classic iPod Case - $24.95
- 3x 2GB SD Cards - $7.99 each
- 8GB USB Flash Drive - $31.99
- Compact Card Reader - $11.99
- Universal Plug Converters - $17.99
- Lonely Planet Shoestring Guide to Europe - $18.47
- Pocket Journal - $10.95
- Black Passport Money Waste Strap - $11.95
- 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.
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.
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:
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
.
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?
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.
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.
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.
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.
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.
