Archive for the ‘Technology’ Category.

Stack Overflow DevDays Toronto 2009 – Better Late Than Never

So I attended this event literally a month ago, but I had to write this post for work. I figured I would reprint here:

Stack Overflow DevDays was a one day platform-neutral web developer conference, discussing everything from new languages and technologies to general theory on software development and the business of software development.

A public discussion of the Toronto Dev Day is available here, complete with the audio of a few of the speakers:

http://meta.stackoverflow.com/questions/27151/devdays-reviews-toronto

Topics of the day:

Joel Spolsky (Fog creek Software, Stackoverflow) discussed Elegance in User Interface Design, and the tension between giving users lots of options (more power) and the decision paralysis that can come from “asking the user too many questions.” He pointed out that many of the questions and options that appear in most applications via settings menus or pop up boxes are mostly things that really don’t need to be asked (such as “would you like to check for new software updates?”)  – they are things that simply get in the way of a user performing a task. In the example of software updates, why not just check and update them silently? The average user does not really care what version of software they are using.

Other examples of bad UI design given were the Windows Vista UAC dialog (where every time you try to do something, the screen goes dark and you are asked “Are you sure?”) and the Dancing Pigs problem, as well as a music website with a search dialog box where you type in a term, but then have to choose from a dialog box wheter the term is a song, artist or album (Why can’t the application just search in all three places?).

Barry Gervin and from Joey Devilla from Microsoft were next, discussing the ASP.NET MVC Framework. This is a framework built on the Microsoft stack, which simplifies the menial tasks that most developers go through whenever building a modern web application. For instance, querying from a database to display results on a webpage are greatly improved, and within a couple of clicks most of the code is generated for you. This is something I’ve always liked about the Microsoft frameworks; setting up the basic things that you normally have to write over and over again in other languages is quick and easy, and gives the developers more time to spend on actually building the logic for the site and other features. It also simplifies tasks like modern SEO techniques such as relevant paths for pages (http://fakesite.com/products/games/nintendo/ or http://fakesite.com/user/edit ).

Jordan Baker (Plone, Scryent) gave a very insightful introduction to the Python scripting language. His demo included a Spell checker written in 21 lines of code. It covers everything from extra letters, missing letters, transpositions (letters in the wrong order), and replacements (an Q typed instead of a W). The spellchecker was accurate up to a distance of two (meaning a word could have two different problems with it). This example was given to illustrate Python’s strength in list manipulation – it is very easy to write loops for reading, writing to and checking values in long sets of data.

Ralph Whitbeck gave a demo of jQuery, a technology already used on tvo.org, the upcoming drupal integrations of the new websites, as well as several Ideashaker projects. While I was already farmilliar with it, I am still new to this Javascript library, so it was nice to confirm based on his walkthroughs that I was not missing anything or doing anything incorrectly.

Joel came back out to give a live demo of FogBugz 7, a suite of tools for software bug tracking. While this was more a sales pitch then anything else, it did strengthen his presentation from the start of the day, illustrating some great UI design choices: The entire web app is cross browser compatible, can be used entirely via the keyboard with the tab key (makes data entry much faster), and uses things like Bayesian filtering to learn which users should be assigned certain emails and tasks based on their previous history.

Greg Wilson (U of T) gave a presentation about the history/future of software development, and how it should be compared to areas of academia such as medicine, specifically the methodologies used to build software and the way we benchmark these practicies. He cited several studies regarding several project management styles and methods as they pertain to software development. Some of them include:

  • Most errors occur during analysis and design. The later they are removed, the more expensive they are.
  • For every 25% increase in problem complexity, there is a 100% increase in solution complexity
  • The two biggest causes in project failure are poor estimation and unstable requirements
  • If more than 20-25% of a component has to be rewritten, it is usually better to rewrite it from scratch.
  • Inspections can remove 60-90% of errors by reading code before the first run. The first hour of code review is the most important.
  • Code Maintenance is 40-80% of the cost of a software project.
    • 30% of the time is spent figuring out how the code works.
    • 60% is code enhancements.

And one of the most important ones to me:

  • Physical Distance between project participants has no bearing on post-release faults. However, distance on the company org chart DOES.

This can apply directly to projects the Ideashaker works on, as almost all of our projects work with other departments (web encode, the web teams, producers, etc). It is important to have clear communication early and often with all these teams to make sure that everyone is on the same page at all stages of the project.

At the end of the day, Reginald Braythwayt gave a chat on the differences on programming languages and how they reflect how we think about software development. Specifically, he is implementing features in Ruby to “rewrite” the language in ways that reflect how he thinks about code.

Overall It was a great day of workshops. It not only shed some light on new technologies in the web development world, but also gave me some things to think about when it comes to project management and software design.

Joining the Mobile Computing Masses; Visual Studio 2005 and Vista Woes

Now that I have a commute to work every day (30-50 minutes on the Go Bus each way), I decided to take a look at a portable computing device. Personally I’ve always been partial to a desktop environment; I’ve never had a need to “program on the go,” typically because I’ve never really had the time. Even with my commute to school (40-60 minutes in good weather, 60-120 in snow) each day for 3 years, I would be working from the lab PCs anyways during school hours, and working from my desktop when at home.

These days however, I’ve been a little more stretched for time and there are some personal tasks I would like to accomplish during my commute. For the last few months, I have been listening to and watching podcasts (stackoverflow, The Hollywood Saloon, Layers TV, and The Agenda to name a few), but have since found the desire to get some reading done on the bus. Not books mind you, but blogs and articles that have been bookmarked on my desktop for months, even years, that I originally saved with the intent of reading “one day.”

My original impulse was to look for a tablet. No keyboard, just the screen, the stylus and wifi. Unfortunately, due to my limited knowledge of tablets, I didn’t realize that the only readily accessible form of tablet (read: available at best buy or future shop), was in the form of tablet PCs. Having never really used a tablet before (I have attempted to play with a Wacom Graphire4 4×5″ in Photoshop and illustrator before, to varying degrees of failure), I really wanted to try one out, to see if it was the right thing for me, as most of what I plan on doing during the commute is reading.


Tablet PCAfter about a week of researching, I decided upon the HP Pavilion tx2500 line. Several sites gave it favourable reviews, stating that it more or less does exactly what I what I need it to do. After some debating I went with the tx2508CA, running Vista 32-bit, which was the deciding factor. Having never really utilized vista before (my girlfriend’s laptop the exception; which doing certain tasks while still accustomed to the “old way” of doing things proved difficult), I was prepared for some struggles, but with the exception of installing Visual Studio 2005 it seemed to go smoothly.

Before I began, I searched Wikipedia and MSDN regarding any problems with the install.

I found no issues.

My bad.

Turns out I should have looked harder. The install crashed about halfway, during the installation of MSXML6. After several hours of research online, I discovered that VS2005 crashing during install on Vista is not only a common occurrence, but it doesn’t always crash the same way. There is also no silver bullet to fix or avoid this.

The way I solved it was via a series of steps (Edit: link attached) involving installing a series of helper apps on the VS CDs (such as MSXML6) before running a repair install on VS. Then, apply the SP1 update, and the Vista update patch. The next time I have a clean install of Vista, I will attempt to install the helper apps first, followed by a clean install.

So how is it? As of day 4, excellent. The tablet functionality was exactly what I was looking for, with regards to reading. For those curious, I have installed Firefox 3 with Scrapbook and FireGestures, which easily allow for temporarily saving and reading offline content such as bog posts. I have yet to try programming on it (That will probably be tomorrow’s test – my mother has been after me to finish an inventory tracker for her that I started last July and put on hold indefinitely once “real work” picked up), but even if that doesn’t work out, I think I’m sold on this product. The stylus, while obviously taking some getting used to, is quite practical on the bus, and the added touch screen functionality (placing your finger on the screen pops up a “virtual mouse” that you can use for both right and left clicking) is great. I’m also a fan of Pen Flicks which (again, after some trial and error) allow you to page up and page down with simple gestures. I read several backlogged bookmarks yesterday without the use of any input device beyond my hand, which on the bus is fantastic.

I’m also working to master OneNote, a tool which I had seen limited use with back in college, but since reading up on it the other day, I now think is the greatest tool ever created – we’ll see how long that lasts. The laptop comes with a 60 day trial of Office 2007, which is really only a “open an office application 25 times or less” trial, which I think is a little hypocritical. I picked up Office 2007 the other day, but have decided to try OneNote out in trial mode first before I commit (I am currently writing this blog post in OneNote).

If you are looking for a lightweight PC for reading on the go, I would highly recommend trying out a tablet PC, specifically the HP Pavilion models. They’re small and lightweight, something that I have never liked about the recent trend of “portable desktops.” While sometimes the glare makes it a little difficult to read on the screen, usually just repositioning the angle fixes it.

Now I just need to master the stylus and track pad, two things I have put off doing for about a decade now.