Friday 31 December 2010

Summary - 2010 Arbitrary Dividing Point In Time Resolutions

Well it is that time of year again, i figured i would review the successes and failures from this years Arbitrary Dividing Point In Time Resolutions before i publish new ones for 2011 tomorrow.

1. Develop a business that makes £2000/month after taxFailed ... Miserably. 
Don't think i've earned £2000 from the business all year, never mind per month.

2. Develop a business that is location independentTechnically succeeded ... but really failed.
Technically i have a business and technically it is location independent. However as noted above it doesn't make any money, so while the work could be done anywhere, i couldn't afford to live anywhere else.

3. Visit at least 4 new countries Failed ... mostly.
Only managed to visit one new country (The Netherlands) this year, which i suppose is better than none, but not looking good for 30 by 30.

4. Read 1 book per week - Success
Ideally i would have preferred to be more regular in my reading - starting and finishing a book each week - but i suppose averaging a book a week will do.

5. Write 1 Moleskine page per day - Success
Over the course of the year i missed a few days for various reasons, but the overall number of pages was right.

6. Watch a maximum of 1 TV episode per dayFailed ... Miserably.
I'm not sure this resolution lasted a day, instead i have ended up watching more TV than ever. In fact even when there was nothing on i have been getting whole series to watch (e.g. The Wire, The Sopranos, Deadwood etc) which resulted in watching up to 12 episodes in a day.

7. Write a blog post once a weekTechnically succeeded ... but really failed.
According to the rules of the Blog Duel each week missed had to be caught up on, i missed 18 weeks in a row and then caught up on them all this month, so i technically succeeded. On the other hand the real purpose of the Blog Duel was to write regularly - and in my case improve my writing - in that regard i failed miserably.


Unfortunately the failures don't really fall into neat patterns of recommendations for resolutions: I failed on a frequent feedback resolution (daily TV) and a publicly accountable one (weekly blog posts). I also succeeded on a frequent feedback resolution (daily Moleskine page) and a publicly accountable one (weekly book). Maybe the mistake was not combining frequent feedback and public accountability?

I suspect the first 3 were doomed to failure almost from the start: Resolution 1 was predicated on a certain plan i had for starting a business, when i gave up on that plan the resolution didn't seem important or feasible. Resolution 2 was based on the plan from Resolution 1 and Resolution 3 required the success of Resolutions 1 and 2. It was a bit of a cascade failure really, once the first domino failed to fall, nothing else happened.

I think next year i will focus on relatively simple daily habits that can be publicly accountable and will assist me in implementing wider goals as the year progresses.


Tomorrow i shall unveil my Arbitrary Dividing Point In Time Resolutions for 2011 ...

2010 Reading List

1 - The Collaborative Habit by Twyla Tharp
2 - 59 Seconds by Richard Wiseman
3 - The War Of Art by Steven Pressfield
4 - The (mis)behaviour Of Markets by Benoit Mandlebrot
5 - Drive by Daniel Pink
6 - Velocity by Dee Jacob et al
7 - The Art Of The Start by Guy Kawasaki
Brave New World (f) by Aldous Huxley
9 - Linchpin by Seth Godin
10 - Rework by Jason Fried and David Heinemeier Hanson
11 - The Management Myth by Matthew Stewart
12 - The 4-Hour Work Week (r) by Tim Ferriss
13 - Maverick (r) by Ricardo Semler
Q1 Bonus - The Dice Man (f) by Luke Rhinehart
-----------------------------------------------------------------------------------
14 - Confessions Of A Public Speaker by Scott Berkun
15 - The Man In The High Castle (f) by Philip K Dick
16 - Presentation Zen by Garr Reynolds
17 - Neverwhere (f) by Neil Gaiman
18 - The End Of Faith by Sam Harris
19 - The Knowing-Doing Gap by Pfeffer and Sutton
20 - The Design Of Business by Roger Martin
21 - Speak Human by Eric Karjaluoto
22 - Childhood's End (f) by Arthur C Clarke
23 - Outliers (r) by Malcolm Gladwell
24 - What The Dog Saw (r) by Malcolm Gladwell
25 - Blink (r) (a) by Malcolm Gladwell
26 - The Elements Of Style by William Strunk
Q2 Bonus - American Gods (f) #1b1t by Neil Gaiman
-----------------------------------------------------------------------------------
27 - What Should I Do With My Life? by Po Bronson
28 - The Upside Of Irrationality by Dan Ariely
29 - Foundation (f) by Isaac Asimov
30 - Let My People Go Surfing by Yvon Chouinard
31 - The Big Short by Michael Lewis
32 - Foundation And Empire (f) by Isaac Asimov
33 - Leading Change by John Kotter
34 - Second Foundation (f) by Isaac Asimov
35 - Into The Wild by John Krakauer
36 - Delivering Happieness (a) by Tony Hsieh
37 - The Complete Stories Of Sherlock Holmes (f) by Arthur Conan Doyle
38 - Roomanitarian by Henry Rollins
39 Win Without Pitching Manifesto (e) by Blair Enns
Q3 Bonus - Tell-All (f) by Chuck Palahniuk
-----------------------------------------------------------------------------------
40 - The Bootstrappers Bible (e) by Seth Godin
41 - Neuromancer (f) by William Gibson
42 - The Paleo Diet by Loren Cordain
43 - Then We Came To The End (f) by Joshua Ferris
44 - Fascinate by Sally Hogshead
45 - Player One (f) by Douglas Coupland
46 - Notes On The Synthesis Of Form by Christopher Alexander
47 - Head First Rails (e) by David Griffiths
48 - Agile Web Development With Rails (e) by Sam Ruby et al
49 - Pragmatic Version Control With Git (e) by Travis Swicegood
50 - Unbearable Lightness of Being (f) by Milan Kundera
51 - The Art Of Non-Conformity by Chris Guillebeau
52 - The Metamorphosis (f) by Franz Kafka
Q4 Bonus - The 4-Hour Body by Tim Ferriss
-----------------------------------------------------------------------------------

Key:
(f) = Fiction
(r) = Re-read
(a) = Audio
(e) = Electronic

Friday 24 December 2010

My Hikikomori Year

Well it is exactly a year to the day since i left my last job and i can tell you one thing; i really don't miss it.

Unfortunately in the time since, i have come to realise that the same issues i had with the job are endemic to most money-making endeavours. This realisation has caused me to become what the Japanese would refer to as Hikikomori; a hermit who does not go outside. While i probably don't meet the technical criteria - due to ocasional visits to the supermarket (when internet shopping isn't fast enough) and a trip to Barcelona - i like to think i conform to the spirit of the term.

Sidenote: The post title is a slightly obscure reference to the My Hotel Year story from Douglas Coupland's Life After God.

Thursday 23 December 2010

Top 10 Books I Read in 2010

1. Rework by Jason Fried and David H Hansson


2. Speak Human by Eric Karjaluoto


3. The Knowing-Doing Gap by Pfeffer and Sutton


4. Player One by Douglas Coupland [Fiction]


5. Foundation by Issac Asimov [Fiction]


6. American Gods by Neil Gaiman [Fiction]


7. The Big Short by Michael Lewis


8. The Upside of Irrationality by Dan Ariely


9. The War Of Art by Steven Pressfield


10. The Man In The High Castle by Phillip K Dick [Fiction]

Wednesday 22 December 2010

New Additions To Best and Worst Airports

Last year i put a couple of posts together on the best and worst airports i have been to. While i didn't do much traveling this year, there are two clear additions to my lists:

Best - Barcelona [BCN]
Terminal 1 in Barcelona is what Terminal 2 in Charles De Gaulle should be; BCN has the same open light feeling as CDG, but with a host of decent shops, restaurants and executive lounges. Security and check-in was nice and efficient, plenty of seating near the gates and theoretically there was free wifi though i couldn't find it.

Worst - Schiphol [AMS]
Ok it's not as bad as the Top 5 Worst, but i would still avoid transiting through it again if possible. The first issue is that it is a single terminal, normally this is a good thing, but when it is one of the largest, busiest airports in the world, that means a lot of walking. Maybe it's just because i had a sore foot, but it seemed like i had to walk from one end of the airport to the other for my connecting flight. I also found it quite difficult to navigate, not sure if it was the layout or the signage, but it seemed like a lot of concentration was required. The only upside was that all of the staff - even security - were very friendly.

Tuesday 21 December 2010

Unique Password Generation System

After last weeks hacking of Gawker Media's passwords, we have yet again been warned to use unique passwords on every site. While I appreciate the security reasons for this, there is no way i can remember 75+ unique, 9-digit alpha-numeric-symbol passwords - henceforth referred to as a 'strong password'.

While my current password system wouldn't succumb to the normal guesses for passwords, or probably even a brute force attack, i am certainly guilty of using the same 5 or 6 passwords over most sites. I have been thinking about how to diversify my passwords for a long time and have looked at various options but they all seemed to have problems:

Write Passwords Down - Back in the day (pre-1996) you were always advised never to write your passwords down. Two things have changed since then: 1) People have way more passwords to remember now and 2) The primary threat is remote (via the internet), rather than requiring physical access to your machine. The rationale for writing down passwords is that you get more security from having unique strong passwords, than you would with re-used weak passwords that you can remember. The only downside - and it's a doozy - is that if someone does get physical access to you computer or even just your password list, you are screwed. You also can't access your passwords remotely if you are travelling or away from your desk (unless you take them with you everywhere which would be pretty dumb).

Encrypted File Storage - Building on the above, how do you make it harder for someone to read your written down passwords? ... easy, encrypt the file. Write down all the passwords in a text or excel file, then encrypt the file with TrueCrypt - whatever you do don't use the built-in encryption in MS Office, it's terrible - using a really strong password. Now you only need to remember one password to open the file and get access to all of your other passwords. Alas it only solves the problem of someone getting access to your passwords, but doesn't fix being able to access your passwords from anywhere because you need admin rights to run TrueCrypt (no use for internet cafes).

Encrypted Online Storage - For a long time i thought PassPack was going to be the best option. Your passwords are double encrypted, stored on a website and there are various nifty security (one-time keys) and management (automatic logon) features. This means the passwords are securely encrypted AND available anywhere. I really wanted to use PassPack, but ultimately two things killed it for me: 1) If the site disappears (goes bankrupt, gets sold), so do my passwords and 2) A website containing passwords has a giant target painted on it for hackers and nothing is 100% secure forever.

Encrypted Hardware Storage - So on top of security and portability, it turned out i also want to have ultimate control over my passwords too. It seemed that the easiest way to have the most control would be to use hardware. I remembered i had seen the Mandylion Password Manager on Think Geek, it is a physical token that generates and securely stores your passwords. Two problems though: 1) Inputting site names or usernames to it with only arrow keys looks to be a serious pain and 2) If you lose or break it your passwords are gone. I also looked at things like: 1Password (not sure about security), Roboform (don't trust it) and Iron Key (expensive) but ruled them out.

Repeatable Online Generation - Ultimately i think i am just uncomfortable trusting my clear text passwords to any hardware or software, nothing is secure forever. I came across a website called PwdMkr which allows you to repeatably generate unique random passwords for websites. It checks almost all of my boxes: self-hosted (so quite obscure and controllable), lots of options (character sets, length, salt), the website can be encrypted for backup and best of all the password isn't stored, you just need to remember how to generate it. My only issue is that i can only protect the site with an .htaccess password. Ok so an attacker would have to break my .htaccess password AND work out my system for generating passwords, but still a worry.


So after years of research and thought, i was still stuck doing what i have always done, then a couple of nights ago i had an epiphany, go back to the future with a Book Cipher!

Book Cipher - A book cipher is a classic espionage technique for passing covert messages. In it's simplest form there is a numeric code which refers to a specific word; e.g. 040 15 07 would refer to page 40, line 15, word 7, but there are a number of ways it could be used to generate a password. Maybe just have a code that refers to the page and line, then use the first letters from each word in the sentence for the password. Alternatively you could refer to a page, then some words on that page could be joined together to make a password. The possibilities are endless. Similar to Repeatable Online Generation, the password is never stored, instead you store a key which allows you to generate the password from a specific book. There are a few things to keep in mind: 1) Make sure you know the edition of the book you are using because if you lose the book, a different edition will probably have different page numbers etc. 2) Portability can be achieved either with a small book you can take everywhere with you or by storing an e-book online (make sure your generation process is suitably obscure). For me this brings together a lot of benefits: 1) I just have to remember a process and not even a single password, 2) There is plenty of redundancy built it - multiple copies of books, multiple storage of keys etc. 3) Security through obscurity. There may not be any fancy encryption, but unless you have Bletchly Park or the NSA working on it, a book cipher is a tough code to crack.


In the end there is always a balance between security and ease of use, how far you go to either side is up to you. Really any of the techniques above will leave you better off than the average person and a book cipher is perhaps a little onerous and obscure.

Monday 20 December 2010

Hardware is Hard ...

A little over a year ago i read about an awesome product called Wakemate, it monitors your sleep patterns and sends a signal to a mobile phone to wake you at the optimum time. I almost always wake up feeling groggy so it seemed like something i would find useful. At the time the release date was listed as January 2010 so i didn't pre-order one because i didn't know where i was going to be in January.

I didn't think much more about it until i got back to the uk and stumbled on a story that the release had been delayed until April, at which point i decided to put in a pre-order. At least two release dates have come and gone since then (late june, late september) and still no product. Each time there was an explanation; the IC they wanted to use was no longer available, design issues, manufacturing issues, certification issues etc etc. Well they are finally shipping - though not to international customers - almost a year late.

The title of the post is a classic technology aphorism, software isn't always - or even often - easy, but hardware is definitely hard.

Saturday 18 December 2010

Writing pt2

Yup i like the idea of conveying ideas, it just takes longer than expected and i'm never as clear or as convincing as i'd like to be. Had two ideas and drafts today and yet neither posted.

Friday 17 December 2010

Writing

... or lack thereof.


I find myself reaching the conclusion that i am not meant to write. It just seems like a lot of effort and i am never happy with the end result.

Thursday 16 December 2010

Wednesday 15 December 2010

Perfect Twitter

Today i finally found the perfect Twitter - All the benefits of New Twitter (on-page photos, better use of  width etc) with none of the useless junk (random images, Trends, Who to follow etc).

Alas this beautiful new design is only available if you use Chrome or Safari, if so you can download the extension from: http://www.chrismasterson.me/feather/


Before - Ugly, Cluttered & Nasty

After - Clean, Simple & Minimalist

Tuesday 14 December 2010

Missed Post

Well somehow i managed it, only 10 posts in to my 18 Days of Blogging and i managed to miss a post already.

Lessons from this:
1) Daily routine is best for building habits - I've been pretty good at writing in my Molie every day, but i think taking the weekends off from posting in this blog breaks the habit too much. I guess my issue with posting every day is that i end up with a lot of crap (see most of the last 10 posts) but without the daily routine i fail miserably (see the last 5 months). Perhaps as a resolution next year i might try to write for an hour every day and use that time to build up to a decent weekly blog post.
2) Going to bed too early wrecks my routine - There is a high correlation between going to bed too early and breaking routine. Missed Molie entries and blog posts are almost always on nights i go to bed before 9am.

Other than that i guess i'll have to post on saturday to make up for yesterdays lapse.

Friday 10 December 2010

Sleep Sucks

Or more to the point the time wasted asleep sucks, but i can't see myself doing less of it.

Thursday 9 December 2010

Follow Through On Books

I read a lot of books, i don't actually take action based on most of them, they change what i think but not what i do.

I guess it's like Pfeffer and Sutton have observed in The Knowing Doing Gap, there is a big gap between knowing and doing.

The reason this came to mind is The 4-Hour Body. Lots of interesting advice, will i follow it? Maybe.

Wednesday 8 December 2010

Philosophical or Scientific Question?

When you leave the fridge door open, do you let the cold out or the heat in?

Tuesday 7 December 2010

Slightly worrying things ...

1) I spent the evening watching a TV show about statistics (check out The Joy Of Stats on iPlayer if you are in the uk) and getting slightly toasted (beer, vodka and sambuca [though not at the same time] is a strange combination).

2) There is no 2.

3) Put down your brains any your entrails, it's time to stop and learn some rails [jingles] ... see video in post below.

4) What i should have posted tonight was titled: Lessons from Zombies and it would have been rather more interesting/amusing.

Monday 6 December 2010

Programming for Zombies! Redux

I finished the tutorials on Rails For Zombies and while they were fun i'm not sure how useful they really were.

I picked up a few snippets of code which will be useful and there were some interesting Rails 3 features, but looking beyond the catchy theme, there isn't much there. I said in the original post that i didn't think it would replace Agile Web Development With Rails, but i don't think it even replaces the first example in Head First Rails. The goal of Rails For Zombies is to allow people to get their feet wet with Rails without having to worry about configuration, but the depth of information is more like dipping a single toe in the water.

What blew me away in the first example in Head First Rails was that i could create and run a functional (though not pretty) web application with 4 lines of code. You never quite get that level of "wow" in Rails For Zombies; unless you have programmed extensively in another language you don't really appreciate the brevity and simplicity of the code in the examples. The coding at the end of each tutorial is fine and provides a good way to check comprehension, but you are never dealing with more than a couple of lines of code so it is hard to know where everything fits in. You also never get to actually play with the application you are supposed to be working on, which is a large part of the feedback.

What would have been more useful is a mashup - Head First Rails For Zombies. Combine the lack of configuration worries and fun theme of Rails For Zombies with building an app from the ground up like in the first Head First Rails example.

The one thing that has really stuck with me is the jingle:
Quite funny and disturbingly catchy.

Friday 3 December 2010

Programming for Zombies!

Today i found the single greatest tutorial site for learning programming; Rails for Zombies!
(Go check out the video on the homepage)

While the awesomeness of adding zombies to anything should be obvious  - Pride, Prejudice and Zombies for example - in this case it is awesome for learning.

If you have ever learned any programming language you should be familiar with the cliched "hello world!" example, unfortunately in most 'learn to program' books the examples don't get much more exciting than that. Infact a lot of books on programming don't even get to that stage, instead they have some arcane and obscure steps that you have to get through to even start programming. You can fall at this step for a number of hard to identify reasons which cannot be easily troubleshot in a book. The same is true once you actually start programming the examples, from being on a different version of the software to having a single symbol in the wrong place, your program might not work for a non-obvious reason.

Based on the above Rails for Zombies gets a number of things right:

1) Unique and light-hearted examples - No more boring twitter / ebay / webstore clone examples, while building an app for zombies isn't that useful (until the zombie apocalypse of course) it is certainly different and entertaining. In my experience humor is highly underrated in education, it is amazing how much more memorable an example is if it is funny.

2) Web-based programming environment -  This kills two birds with one stone: 1) The programming environment is just there; nothing to install, configure or otherwise go wrong. 2) You know you are using the right version of the software for the examples.

3) Instant interactive feedback - Nothing is more frustrating when learning to program from a book than hitting a brick wall with an example and not knowing how to fix it. Most books assume everything has gone right and only offer tips on the most obvious mistakes. If you happen to use the wrong type of brackets or put a full stop or a capital in the wrong place it can take hours to find and fix. Rails for Zombies provides interactive feedback on what you are doing (useful error messages) and has small enough examples that errors are easy to track down.

4) Reward at the end - Maybe it is just because i love obscure t-shirts, but being able to order a Rails for Zombies t-shirt at the end is a serious incentive for me to finish the course. A lot of books get more complicated and obscure towards the end and are never finished, at least this gives a good reason to make it all the way through.

At this stage my biggest concern is whether you would learn enough to enable you to create an actual application. Sure installing and configuring ruby, rails and SQLite can be a pain, but if you can't do that then you can't actually build anything. Also Rails for Zombies jumps in at a slightly strange point - CRUD operations - without really covering MVC or databases which i think i would have found confusing without having read some books. I suspect i will be able to comment on this more fully when i finish the tutorials.

I'm sure Rails for Zombies isn't a replacement for Agile Web Development With Rails but it is an entertaining way to reinforce what i'm learning elsewhere.

Thursday 2 December 2010

I <3 Beer

That is all.

PS It's a real post because i had to look up & lt ; to get a < symbol in the title.

Wednesday 1 December 2010

Technological Nemesis

Everyone has something technological that just never quite works for them, for me it is trying to setup an FTP server. What should be the simple installation of a piece of software, never quite goes to plan.  Doesn't matter what software i use, what operating system i'm on, what router i'm using, where i am. It just doesn't work without days of frustration.