On Design

Why products become classics.

Classic Raleigh Sprint

Why is it that some designs become classics while others do not? Some classics were loved right from the beginning while others were little loved and mostly ignored until much later. Yesterday I was greeted by my old polish neighbour, “do you want this bike? 10 bucks.” In our transaction that briefly followed I quickly realized that what he saw as an old, somewhat useful, bicycle while what I saw was an icon of British 70s culture and a classic.

This lead me to ask the aforementioned question, what is it that makes a product become a classic? I believe there are three elements that a product must have that will lead it to becoming a classic. I also believe that it is one of these elements that will answer why some classics are only recognized as such later.

The three elements are as follows:

1. Be beautifully designed.

2. Embody an ideal.

3. Visually represent the culture of its time.

What do these elements mean? Lets start with the first one, beauty. Beauty is rightfully relative to the beholder, yet some designs capture near universal appreciation. This is a core requirement for a design to become a classic. The design of a classic is appreciated by nearly everyone. Furthermore, the design of a classic stands the test of time. It doesn’t merely embody the design of a fad, but has universal principles of design, such as smooth contours or balanced color schemes.

Secondly, a classic usually embodies an ideal. Let’s think about the classic VW Beetle, “the car for the People”. Or the Porsche, “the car to show the world you made it”. Some ideals were respected, some hated and some were ignored. But usually later, as new products saturate the marketplace, the ideal of the classic stands out and becomes more attractive. The form of the classic becomes a visual representation of that ideal.

Lastly, a classic visually represents the culture of its time. Just as the ideal of a product becomes more obvious over time, so do the ideals of cultures. When those two ideals run in parallel a classic is formed. However, often a culture is not aware of the uniqueness of its time. Nor that the boring product that they take for granted will one day symbolize the ideals that they will become known for or believe in.

When an object, a product, captures all three of these elements it is known as a classic. We do not have to think of what makes a product a classic to recognize it as one. However, when you look at that 30+ year old bicycle sitting in the back of the yard, reminding you of a simpler time, a time before computers ruled the workplace and cellphones ruled the living rooms and buses, you realize it is more than a peace of art, its a symbol of hope and the simple life.

Apple TV

How to hook up your Apple TV to a computer monitor

Is it possible to hook up an Apple TV to a computer monitor? Absolutely. One of the really cool things with the Apple TV is the ability to hook it up to a computer monitor. That is exactly what I did with my 24inch Samsung monitor.

Important: Your computer monitor must be HDCP compliant for Apple TV to work. I wasn’t sure if my Samsung 2433 BW monitor was. So it was a gamble, but it worked.

Apple TV to computer monitor
Here's my setup

What you need:

1. Apple TV

2. WiFi or DSL internet connection

3. HDCP Compliant Monitor with an HDMI or DVI input.

4. If your monitor only has a DVI input (like mine) you will need an HDMI to DVI converter as well.

5. HDMI cable

6. If you monitor does not have speakers (most don’t). A stereo/amp with an optic input (for sound).

7. An optic cable.

Instructions to hook it up:

1. Connect your Apple TV to your Computer monitor with an HDMI cable. ( I used a DVI to HDMI adapter here on my monitor as well )

Apple TV to Computer Monitor with HDMI cable

2. Plug your Apple TV power cable and computer monitor in and power both of them on. You should see Apple TV loading on your monitor when you power it on. If you don’t see it, make sure your computer monitor is plugged in and powered on as well.

3. Make sure your internet connection is working.

4. Follow the Apple TV instructions setup instructions on your computer monitor

5. To have sound, connect your Apple TV to your stereo with your optic cable. (If you haven’t used an optic cable before, make sure you remove the caps on the ends of the cable before plugging them in).

Optic cable connecting Apple TV to stereo amp

6. Set your stereo to play music from the correct input.

Congratulations you are finished! Now all you have to do is enjoy your new Apple TV by watching some videos, playing music or streaming content from your iPad and iPhone.


Danny MacAskill – Best bike video ever!

This is an old video already, but it is still one of my favorites. And just in the off chance you haven’t seen it already, here it is. This is my favorite bike video. I love the filming, music and raw style of MacAskill.


How to remove apps from Mac OS X Lion LaunchPad

Mac OS X Lion LaunchPad

Today I had some apps remain on LaunchPad after deleting them from the applications folder. Apple has some work to do as there was no way of removing these apps from LaunchPad except through terminal. Here is how to use Mac Terminal to remove apps from LaunchPad.

Replace APPNAME with the name of the app. It’s case sensitive.

sqlite3 ~/Library/Application\ Support/Dock/*.db “DELETE from apps WHERE title=’APPNAME’;” && killall Dock

Here’s an example removing Picassa

sqlite3 ~/Library/Application\ Support/Dock/*.db “DELETE from apps WHERE title=’Picassa’;” && killall Dock


Apple TV. Is it everything I had hoped it was?

Having toyed with the idea of hooking up my Samsung monitor as a TV for a the last few months, yesterday I took the next step and purchased an Apple TV. Was it everything I had hoped it was?

Is Apple TV all that it is hope to be

Not exactly. The name Apple TV had conjured up ideas and hopes of the first truly interactive web home interactive tv viewing experience. I thought with Apple computing tied with the traditional concept of TV something amazing lay in waiting. Sadly it did not live up to its name. To my dismay, despite the fact that it is hooked up to WiFi, Apple has not given it the Safari browser. That was my first huge disappointment.

However, I consoled myself, at least it is advertised to connect to apps from my iPhone via airplay. Eagerly I began playing with my iPhone apps to see how they would connect. It did not turn out to be nearly as AirPlay friendly as it was advertised. Even Safari didn’t work with AirPlay. Perhaps they plan for that in the future but as of right now it does not work. Some apps did allow me to stream video to Apple TV, such as Crackle, TED Talks, and VEVO. However my favorite TV watching apps CityTV and Global TV do not. Which kind of defeats the whole point of an interactive TV.

There are some pluses, playing music from my home computer’s shared library is very cool. And airplay seamlessly lets me play music from my iPhone to the Apple TV.

Overall I will still use the music sharing, whatever video sharing I am able, and the video rental features. Hopefully with the upcoming release of OS X Mountain Lion in the summer I will be able to use my browser from my computer on the TV. Then we will be taking a big step forward for mankind. Until then I can only hold my breath. If you were intrigued by the idea of plugging the Apple TV into a computer monitor I have posted my setup here.


What do URL and URI stand for?

So today I thought, I wonder what the definitions for the URL and URI acronyms are. Just incase anyone else out there is curious too.

URL: Uniform Resource Locator

URI: Uniform Resource Identifier


So what’s the difference between the two? All URLs are URIs, but not all URIs are URLs.

It’s like trying to explain that a Human is a Mammal but a Mammal is not always a Human. – DamnHandy

These are URLs

Since they are all URLs they are therefore all URIs too.

This is a URI but is not a URL



Hopefully that makes sense.

On Business On Law

Copyright 101

The laws not the bandSo recently I have been put in a situation where I am forced to think about copyrights (the law not the band). Despite my personal resistance to the field it’s probably a good thing to have a good grasp of. Here is an overview of some general principles worth knowing.

Who owns the copyright?

Generally speaking, the person the work is attributed to owns the copyright. This applies to anybody who created the work (self-publishers, contractors etc) with exception to employees. In the case of an employee, the company they work for owns the copyright of any work done while working at the company.

What is shared copyright ownership?

Multiple people can own a copyright. Unless otherwise specified in writing any work contributed collaboratively is owned equally by all who contributed regardless of the amount they contributed. For example all the members of band collectively working on a song own equal shares to that song’s copyright. Generally speaking shared copyrights usually share equally in profits from any sales of the work. We see this all the time in the music industry.

What is copyleft?

Copyleft is a term originally coined by Richard Stallman and is used to describe copyright laws that ensure the right of individuals to modify, share and distribute copyrighted material, and to ensure that future versions of work be free to modify, share and distribute as well.

Are all copyright licenses compatible with each other?

No. There are many licenses that are incompatible with each other. It is a good idea to do some research before choosing a copyright license for any work you do. Some people prefer licenses that protect the work, and other people prefer licenses that protect the end users’ rights to access, modify and redistribute the work (aka copyleft licenses). Broadly speaking those two kinds of licenses are incompatible with one another.

There are also licenses like the GNU GPL that are copyleft licenses but are incompatible with many other copyleft licenses as it imposes the restriction that all resulting copies be bound by the GNU GPL license.

Final thoughts

There are many streams of philosophy and ideals surrounding copyright law that are good to take into consideration when choosing your copyright practices. If you are only just starting to learn copyright law it can seem a bit overwhelming. However, there are a lot of great resources that help to explain a lot of the different concepts. If you are an expert in the field and have something you want to add please post it in the comments.

For further reading.

Wikipedia article on copyright

Wikipedia article on BSD License

Creative Commons License choosing tool

GNU free copyright philosophy



Awesome lego machine solves Rubiks cube!

I thought it would be fun to post random videos and things I find interesting about machines on this blog every weekend. This one is pretty cool. I think lego and rubiks cubes are two of the best inventions ever and putting them together is even better. So here’s my first “weekend special”, it’s a video I came across on Youtube.


The Scope Resolution Operator (::) explained

Double Colon object oriented programming

I remember when I first came across the mysterious double-colon (::), also known as the Scope Resolution Operator. I was experimenting with a php library I hadn’t written, but was asked to extend, and at the time I had no idea what classes were, how they worked, or how they helped.

To try and figure out what the double-colon did I remember I peppered Google search with questions like, “What is the :: ?” or “what does the :: symbol mean?”  Those searches proved useless. At the time php5 was still very new and most PHP coders were writing procedural code rather than object-oriented code.

Now that I use object-oriented design every day I thought I would explain what the double colon :: means, just in case there are any new PHP programmers, like I was, and are confused by the mysterious double colon.

When and how to use the double-colon:

You use the double-colon to access static methods from a class. To get the color of the bear, from the example class I wrote about here, you would write the following.

Code language: CSS (css)

I will break the above line of code into its three parts.

1. Bear – First you write the name of the class you are referring to. In this case Bear.

2. :: – Then you use the double-colon because the method is declared as static.

3. getColor(); Then you write the name of the function you are calling that exists within that class.

And that’s the basic use of the double-colon to call a method from within a class.

The double-colon is simply a way of referencing the class object and accessing the static methods (functions) and constants within that class. If you are new to this I just said a lot. I explain these things briefly here.


PHP Classes briefly explained

Writing classes in php

What is a Class

A class is also known as an object. To better understand the concept of an object, think of it as you would a material object like a bear. Let’s pretend that we are going to have to make a bear using a class. To start you would give the animal a name. In this case, class Bear. Then you would need to add characteristics. Like the animal’s color and weight. These would be the variables declared at the beginning of the class. You are declaring them as variables as it is possible that these characteristics might change with different bears. You may have the variable $color = ‘white’ or $weight= ‘500kg’. You may also have constants, these don’t change. A constant might be something that classifies a bear as a bear, for example some Scientific classifications would be KINGDOM = ‘Animalia’, or PHYLUM = ‘Chordata’. These things are common to all bears and do not change. You would also have methods. Methods are functions that either call data about the bear or calculate something for the bear and return the values back to the caller. You may have the function getColor(), to get the color of the bear. Or getKindom() to get the kindom of the bear.

When you write a class you have the option of declaring a variable or method public or private. A public method or variable is accessible by all. A private method or variable is only accessible to methods and variables within the class. A good rule of thumb in writing classes is to try to avoid making variables public. You may need to edit your classes over the course of time and the variable may change, this would affect any application that would have been referring to the variable had it been public. Rather, try to refer to variables only using methods. This ensures that even if you change how or where you store the information, the method to get the information could be rewritten to handle the changes so the applications referring to your class would continue to work and know no different.

To create a class simply write: 

class Bear { #Any code goes here }
Code language: PHP (php)

The following is an example of a simple class. A class can include variables (methods), functions, constants etc.

class Bear { const KINGDOM = 'A constant value'; const PHYLUM = 'Chordata'; private static $color = 'White'; private static $diet = 'Salmon and Berries'; public static function getColor() { echo self::$color; } public function getDiet() { echo self::$diet; } }
Code language: PHP (php)

Important Notes:

Usually it is good practice to save each class in individual files. In this case I would save the above class in the file Bear.class.php. I like to include .class within the file name. It is not necessary but it makes it much easier to know which files are classes.

There are a lot more to using Objects than what I showed you in the simple example above. But that is all you really need to know to get started using static functions and classes.

In the future I will create more tutorials showing you how to extend objects and to call them. And explain what new ClassName(); means and how the operator -> works.