TED Talk: My Stroke of Insight

Lately I’ve been in search of interesting, insightful videos to watch. I want videos which expand my knowledge of the world and the universe, as well as push my intellectual thought.

TED (Technology, Entertainment, Design) has some of the best videos for doing exactly that. If you have never heard of TED, in their own words:

The annual TED conferences, in Long Beach/Palm Springs and Edinburgh, bring together the world’s most fascinating thinkers and doers, who are challenged to give the talk of their lives (in 18 minutes or less).

They then provide videos of those talks on their website, free for anyone to watch.

While all of the talks are incredible, there are some true gems. These are the talks that move you as a person and can change how you look at the world. The tough part can be finding them since there are so many talks to browse through.

In searching for a video to watch recently, I stumbled across a TED talks top 10 list where I watched what was previously their number one talk. I cannot describe in words the emotion and insight this talk emanates with an incredible power. It is presented by Jill, a brain scientist, who experienced a brain hemorrhage and she describes what happened during the event. The talk is: Jill Bolte Taylor’s stroke of insight.

I cannot recommend this talk enough so please, when you have the time (about 20 minutes), watch it. I believe it will at the very least be interesting, if not change your outlook on life.

Sort iPod Artists by Display Name

The Problem

I had always found it annoying how the majority of the songs in my iTunes library, when sorted by artist, were sorted by the artist’s last name instead of their display name (e.g. Faith Hill is sorted as Hill, Faith). This is because when I viewed the list of artists on my iPod, they are shown in the First Last format resulting in the first characters of the artist being in random order.

For example, these three artists could be next to each other in the list:

Charlie Daniels Band Kelly Clarkson Billy Currington

When there’s only three it’s easy to see that I’m looking at the C’s. Get that in a larger list (especially when scrolling fast), however, and it becomes impossible to track where you are without stopping since the first characters are changing with no order. This forces you to stop scrolling and analyze the list to determine where you are at.

To make matters worse, not all artists were sorted the same way. For example, Faith Hill might be found under ‘H’ whereas Tim McGraw might be found under ’T’. This is simply poor tagging, but I do not have the time nor will to put into correctly tagging all of my artists for last name sort.

The Fix

I already knew what needed to happen: I needed the artists sorted by whatever value was in the “Artist” field for a song (this is what’s displayed). I also knew there existed the “Artist Sort” field for a song which specifies how a song’s artist should be looked at for sorting.

It turns out that the “Artist Sort” simply takes precedence for iTunes when sorting by artist over the “Artist” field. In short, here’s the basic algorithm for iTune’s artist sorting:

  1. Is “Sort Artist” field empty?
  2. If no, sort by that value. Otherwise move to 3.
  3. Sort by “Artist” value.

So, delete the “Sort Artist” value and iTunes will sort by whatever the displayed value is. Do this for all songs and the entire problem is solved. Simple.

Note: This change is PERMANENT except by going through and manually setting the Sort Artist field for the changed songs.

If you don’t know how to do that, simply:

  1. Select the songs you want to change (I selected my whole library for consistency).
  2. Right click on any selected song.
  3. Click Get Info.
  4. Click the Sorting tab.
  5. Make sure the Sort Artist field is blank.
  6. Make sure the check box next to the Sort Artist field is checked.
  7. Click OK.

iTunes might take a minute or two before the changes are applied if you selected a lot of songs. Then you’re finished! Don’t forget to sync your iPod to see the changes there of course.

I know this seems exceedingly obvious, but I figure if I had the issue for as long as I did without finding a fix (mind you I wasn’t looking terribly hard for one either), there’s a good chance someone else out there is having the same one.

Anyways, I hope this helped to make life a little easier when using your iPod as it definitely did for myself!

Changes

It has definitely been a while since I have posted, but for good reason I believe. I have made massive changes to my website with user-facing design changes, as well as back-end structural changes. Between finishing those changes and working it has kept me pretty occupied, but I’m definitely happy with how everything turned out!

With this post I hope to describe the changes that took place and the reasoning behind them.

Design Changes

So, why did I redesign the look of the site? A couple of key reasons:

  1. It felt very outdated.
  2. It wasn’t a good design for a blog.

Let’s explore those in more detail.

It Felt Outdated

While the internet in the 90’s was filled with animated GIFs, thick borders and a myriad of colors, this is no longer the case. Simplicity is the rule rather than the exception with today’s web and my website previously didn’t follow that rule near as much as I would have liked.

First there was the mix of colors. I had a dark grey background for everything but the content area, a thick lighter grey border, then stark white for the content area. At the top of the site were two images separated by my header text (my name and slogan). These images contained a mixture of green, brown and blue primarily.

The thick border and dark background I mentioned above, beyond the extra color, was an issue all its own. I found the content area felt compressed; almost claustrophobic and that issue came into play on my small 13” laptop monitor, don’t mind larger 20”+ monitors. On these monitors, the content was a skinny column of white amongst a sea of grey, with the black characters getting lost.

By removing the border and change in background color, I feel that the content now fills the page. Not literally of course! For readability, the text is contained to a column width similar to that of before, but without the visual divider. Also, the line under the header stretching across the width of the browser window gives the illusion of the content filling the page. I believe this works well on larger monitors by helping keep the content from getting lost, as well as small ones such as my laptop for general styling.

I eliminated the images in the header because although they look nice, attention was drawn away from the content below by taking up valuable screen real estate and their colors.

These changes simplified how much there is to look at and gave the website that “clean” design with only thin, simple lines to separate the content where necessary. Anything that doesn’t need to exist, no longer does.

Wasn’t a Good Design for a Blog

When I originally designed the flow and layout of this site (back in grade 11!), it was focused around my resume, portfolio and learning about me. Now it contains a blog. With the ever updating content, it made sense to have the blog as the main focus of the site.

Just as a reminder and some information for those who didn’t see the prior design: previously I had a separate home page which contained summaries of the latest 5 blog posts, then the blog page which would show the latest post. All of the other pages haven’t changed.

What was wrong with how I had the blog laid out? Firstly, the home page felt out of place and lost. Many blogs have a home page which contains summaries of the latest few posts (see ThisIsMyNext, All Things Digital and Engadget for just a few examples), so I figured I would do the same. What I had overlooked was the blogs with summary pages post far more often then I ever will. These summary pages work since people need to be able to see the what are the latest posts over the course of a day. Since I’m updating relatively infrequently, it just didn’t make sense; adding a layer of distraction from the content below.

To fix this, I made the blog page the home page and eliminated the summary page completely. This brings the viewer straight to the content and from there each post has a link to the previous one (in the future I will be adding additional navigational aids such as an archive and click-able categories).

The second issue was I didn’t have a sidebar. Yes, I consider that an oversight in the previous design. The reason? People on the web want to get in, read what they want, then get out. The sidebar provides an easy way for me to have a short description of myself (see right) as well as host other content that I don’t want to be the focus, but still consider necessary to the user experience. The alternative for this content before was a completely separate page and link in the main navigation.

Infrastructure Changes

Although the design decisions make a difference in the short term for visitors, how the site is managed and organized on the server can make a profound difference in the long term. That’s why so soon after implementing my blog system, I redesigned the structure that the blog was built off of.

The biggest decision and change that I made was the switch from my blog posts being dynamic pages to static. Let’s first look at the difference between a dynamic and a static web page.

Static vs. Dynamic

These two terms refer to how website content is generated in the web browser for the viewer to see.

On a basic level, static web pages will show the exact same thing to the user every time they go to the page. This would be the large majority of pages on the web.

Dynamic web pages on the other hand, manipulate or customize the content in some way before the user sees it. An example of this is Google’s search where one page (google.com/) shows the results for any search query (with some additional information stored in the URL). Often times a dynamic page requires accessing a database for information. Any moderately large website uses dynamic web pages to allow for easy content management; you don’t have to hire a web developer just to change the wording of something on a page, but can enter the changes into a web form.

How They Affect Blogs

With blogs, either method can be used to present the blog posts. In the initial version of my blog, I used the dynamic method which meant that I had one page which pulled the information for a blog post from the database. This, however, presented a few issues:

  1. Nasty URL: With this system, the blog post being viewed had to be passed to the blog page through the use of a post ID which corresponds to the entry in the database behind the scenes. What results is a URL of the form colincwilliams.com/Blog?post=60. This provides no information to the viewer and just doesn’t look good.
  2. Speed: With the dynamic system, the database is accessed every time a post is viewed. Database access is a slow operation and therefore increases load time for the page. For low to moderate traffic, the slow down is negligible and perfectly manageable. In high traffic situations (i.e. when extremely large numbers of people are accessing blog posts at the same time), this speed drop can become devastating; sometimes causing the website to seem unresponsive.

While I doubt I will ever face enough traffic for the second point to become an issue (although it never hurts to future proof; one link from a site like Daring Fireball will bring a blog to its knees if it’s not set up properly), I took great issue with the first. Once I was linking to my own posts and typing in the URL, I realized how bad that URL style is in this context. For that reason, as well as for the immense learning experience of doing something new, I decided to switch to static pages for my blog.

You can see the change in the URL with this, or any of my posts. It now portrays the year and month in which I posted, as well as has the full title of the blog post right in the URL. This is just another area of polish that cleans up the look of the entire website.

There is an issue with the static system, however. When I decide to change the HTML structure of the website to change the visual design, I’m going to have to regenerate all of the blog post files with the changes. This could be somewhat difficult, or at least a large operation, in the future after I have made many posts. I do believe that the improvement in user experience and future proofing for traffic increases outweighs that single complication though.

Overall my folder structure on the server is clean and efficient, yet I believe I am providing the best end user experience with these structural changes.

Conclusion

I hope you like the new design of the website. Please feel free to let me know what you think so I can keep making the website better!

Life at Microsoft

It has been two weeks since I started working for Microsoft as an intern so I figured it would be a good time to give my thoughts about life at Microsoft so far.

For those who don’t know, I am currently in the midst of an internship with Microsoft’s Word team in Redmond, Washington. To learn about the internship program (it’s rather unique), please check out my previous post, A New Type of Internship.

The Work

So far the work has been beyond anything I could have imagined! I feel constantly busy, yet having fun at the same time since I’m working on something I feel greatly passionate about. It is definitely challenging since, being on the Word team, there is such a large user-base being designed and developed for (according to Michael Schultz, Microsoft Office Live Director of Marketing, “All told, roughly half a billion people use Office.”). This creates intriguing obstacles when creating a design that is both feasible to create, yet satisfies the needs of the majority of users. There’s a saying I’ve heard which describes this situation perfectly and goes something like this: “Most people only use 10% of a large program’s capabilities. The only issue is that everyone uses a different 10%.”

Currently I am only in the PM phase of the internship, however when I get to the developer phase the fact that the code base is so incredibly large and aged (the first version of Word was released in 1983) will also create many challenges in bug creation/fixing and general implementation problems.

The Campus

For those who have not been able to visit the Redmond campus, it is truly breathtaking. Its sheer size is incredible, occupying an astonishing 388 acres in 2007 on both sides of a major highway. In addition, despite the fact that a technology company occupies it, there is a vast amount of green space, with sports fields, forested areas and trails to walk or ride on in abundance. I find that Microsoft really has done a great job of making sure their campus isn’t a concrete jungle. Indoors, along with a myriad of offices to fit the approximately 40 000 employees in the Puget Sound area, there are multitudes of cafeterias, cafes and other small stores.

To get around the massive campus, there are a fleet of shuttle vehicles that go from building to building getting you to exactly where you need to be. This service is very fast: I’ve only had to wait more than 5 minutes for a shuttle once and I’ve ridden a number of shuttles since I started work.

Getting to work provides a number of different options. While public transit is always available, if you like to drive yourself there are parking garages under practically every building. Microsoft also provides a free commuter service with a fleet of private buses that contain secure WiFi access and pickup locations around the Puget Sound area. If you prefer to ride a bicycle and live close enough to campus, there are bike racks in front of all the buildings, with some buildings having a large bike rack in the parking garage for protection from the weather.

 The People

All of the people I have met thus far have been amazing. I have never been in a place where I have felt so much drive and passion; it is truly infectious once you are here. Everyone wants to do the best they can, and want you to do the same. If you need help, everyone wants to give their expertise and if they don’t know the answer, they will find someone who does. Not only are people driven, they are fun. I have attended one random game night that someone set up over the course of a day and I’m sure there will be more to come!

One thing I have been thoroughly impressed with is how many people have been provided for myself, as an intern, to go to for advice and help. These people have no influence in the hiring process and all they are there for is to help me succeed; to get that offer to return. In fact, that reminds me of one thing that was said during the orientation:

“We make it so the only reason you don’t succeed is because of you.”

I feel this is true both at Microsoft, and with life in general. If you have the ambition to reach out to and learn from the resources around you, applying the knowledge and skills back to work and life, you will succeed over any obstacle.

What This All Means

Although this may sound like an advertisement for Microsoft, I can honestly say that it isn’t in any way, shape or form. What I have said is truly how I have felt about working at the company for 2 weeks. So far this has been one of the best experiences of my life and I’m looking forward to 10 more weeks of working and interning for Microsoft.

A New Type of Internship

As a student the world can be incredibly overwhelming, demanding that you decide on a specific job and career path when you haven’t experienced much besides school. I personally have worked a number of jobs, however they had no relevance to my chosen career of programming and computers. Because of the lack of experience in the actual career path I have chosen, I don’t know exactly where I want to be. Do I want to be part of the IT department at a large corporation? Join a small software development company? Create my own business? Work for a large consumer software corporation such as Microsoft, Google or Apple? There are so many options with so little experience on which to decide.

This is why in September 2010, I attended a career fair hosted by my university. It was there that I found out Microsoft offers a new type of internship. A 12 week summer internship, designed specifically for students coming out of their 1st and 2nd years of university: Explore Microsoft.

What is “Explore Microsoft” compared to a regular internship? Variety. During a regular internship, you choose and work in a discipline for a specific amount of time. Although this gives you great experience with that specific discipline, it does not allow one to experience any other roles in the company with which you are interning. If you don’t like the job, there is no immediate chance to try anything else. The effects are magnified when, at least at the University of Calgary, our internships for engineering are supposed to last 12-16 months and be completed all at once between our third and fourth years of university. This results in our only chance for work experience in our chosen field most likely being restricted to one job before finishing our education.

Alternatively, the Explore Microsoft internship offers 4 weeks in the three main disciplines found in Microsoft software development: Program Manager (PM), Software Development Engineer (SDE) and Software Development Engineer in Test (SDET). Each role fully immerses you, requiring you to perform all of the duties a full time employee would; albeit in a shorter period of time. This gives you the chance to make a more informed decision as to which role fits you the best, either in Microsoft itself or somewhere else. In addition to offering the variety, the 3 month duration of the entire internship is ideal, allowing students to complete it without cutting into the school year.

Let me walk you through a typical Explorer Internship.

First of all, you are put in a team with 2 other explorer interns. As a group, your team is assigned a project that directly relates to the product you are a part of. After dividing the project into 3 parts, each of you plans out the part you are responsible for and creates what is called a “spec” or specification sheet. This document is a plan for the developer to work off of. After the PM phase is done, everyone transitions to the SDE position where you develop and implement a team-member’s spec. This is realistic to the actual development life-cycle, since as a developer you would never write the spec you are implementing. Lastly, you would transition to test and find bugs in the implementation that you didn’t code or write the spec for. Once again this closely follows the actual development life-cycle for a feature.

This close following of the real feature life-cycle is paramount to knowledge gained as an intern since you feel as though you are truly an employee of the company. I find this greatly increases my drive to learn and do my best work.

Although I am only two weeks into my Explorer Internship with Microsoft and have only experienced the PM role thus far, I am immediately witnessing the benefit of partaking in this form of internship. By the end of the summer I can see having a far greater understanding of the choices before me which will allow me to confidently decide where I would like my career to start when I finish university.