Hey you!

Postcards are cool! Go send some ->

postme.me

5 months of blog traffic in 4 days

Dec 20 2011

A traffic spike

A traffic spike

On Thursday I published my most popular post to date Why programmers work at night. After writing I was certain it wasn’t that interesting, sure it might be HN frontpage worthy – it never got there – but other than that I felt it wasn’t a very informative post, just musings of a hacker who has always loved the night-time.

The internets had other plans. Some guy posted it on reddit about half an hour after I published and for the next 30 or so hours it was at the top of /r/programming. Even showing up on the main frontpage briefly according to people on Twitter, I wouldn’t know, my reddit karma is 4.

As is the trend when extraordinary traffic happens on a personal site, I will now brag about share the stats.

Analytics for the last four days:

  • 167,939 visits
  • 157,707 uniques
  • 188,707 pageviews

The peak day was Friday and saw just over 89k visitors. Because gAnalytics offers that real-time thingy, I can also say that the peak traffic I saw was about 600 concurrent visitors and for the first five or so hours it was up on reddit, the mean was something like 400 concurrent users.

30 day analytics

30 day analytics

If you’re so awesome this doesn’t sound like a lot – my usual monthly traffic is around 30k visitors. We are talking about four days here.

There was also a lot of social madness:

  • 1,714 points on reddit (2,866 upvotes,  1,152 downvotes)
  • 40 upvotes on HN, no frontpage, just people submitting the article over the four days
  • 627 G+
  • 2,877 tweets
  • 550+ tweets mentioning me next to the link (hard to measure since search API only returns up to 1500 results)
  • 288 new followers on twitter … I should probably take the time to follow some back
  • unknown amount of facebook likes, because I never quite got around to setting up the widget or Insights properly
  • 475 comments on reddit
  • 173 comments on my blog
  • some emails directly to me
  • three or four people looking for a freelancer
  • somebody even translated the post to Russian

How all of this happened? I honestly haven’t a clue, there are tens if not hundreds of posts on this blog more deserving of such infamy, but I guess people like a good pat on the back and an easy “Yeah totally. I can totally agree with that!”.

The best bit of feedback came not from programmers, all of them were just “Yeah me too!” or “You’re an idiot!”, nope, the best were their wives and people who have to live with programmers claiming that now they can finally understand their werewolf programmer and how it thinks. Makes me feel I accomplished something with the post :)

Oh and the most surprising thing here? The post was 900 words long! Should be a death sentence on the intarwebs, but I guess I made good enough points early on so people still wanted to share. My fancy mixpanel analytics says about 42%of readers made it through all the twenty-two paragraphs.

Paragraph funnel

Paragraph funnel

Broken down for referrers:

  • 46% people from G+ finished reading (plus.url.google.com)
  • 45% people from twitter (t.co)
  • 43% people from mobile facebook (m.facebook.com)
  • 41% people from facebook (www.facebook.com)
  • 39% people from reddit (www.reddit.com)

An interesting note here, this list is ordered in exactly the inverse of amount of people referred. Reddit drove the most traffic, but it also drove the shittiest traffic, while G+ brought the least, but the most people finished reading.

Although I think the days of that analytic might be numbered, mixpanel will get fed up with me and I won’t be able to afford the service :(

Mixpanel datapoints

Mixpanel datapoints

Edit: fixed the facebook widget, it reports 7k likes.

 

Enhanced by Zemanta

No responses yet

A lesson about client-side templating

Dec 19 2011

Preona Muffin Making

Image by Peter Čuhalev via Flickr

The past few months have seen an explosion of client-side MVC frameworks. Wikipedia lists eleven of these things! And yet even a year ago the majority of developers was perfectly content with jQuery.

But as browser apps become ever more powerful it only makes sense to realize callback soup isn’t fun and hey, wasn’t there some paradigm we use on servers to make this web insanity work? Yeah, there is.

A few months ago I gave a talk entitled Tools that get you laid at WebCamp Ljubljana. The basic premise was that client-side MVC is so insanely awesome you are sure to get laid for using it. The main benefits I talked about were:

  1. Server is just a DB interface, means less melting servers
  2. Effect similar to progressive loading, means users see something immediately - makes waiting easier
  3. Using powerful client machines to do the heavy UX lifting
  4. I may have had some other points :P

The lesson

The past four days have taught me an important lesson though – perhaps none of this is true.

Since Thursday my blog has seen two months’ worth of normal traffic – more about the shiny stats tomorrow – it was only natural that poor ol’ wordpress would crumble under the pressure … right?

Well, actualy, no, it totally shouldn’t have. There’s all this fancy caching going on that what readers see are pretty much just static pages. There’s no more PHP or server involved!

A stats screenie

A stats screenie

But none of that helped. Even redirecting the URL with most traffic straight to the stored static page didn’t help. Something strange was happening. Something strange happens every single time this blog gets some traffic. This time it was particularly bad so I investigated.

Turns out the problem is in the small bit of client-side templating I do in my footer.

Because the pages are static, loading my latest foursquare checkin, the last four instagram pics, and the list of my github repos must happen client-side. It would be stupid to generate all this server-side every time somebody visits my site.

To achieve this I’m using jquery template, it’s a bit archaic and I may have started working on the footer before finding out about backbone and other cool MVC frameworks … but it works and it’s so small I don’t think it would even benefit much from using a framework. The basic premise of most javascript templating is simply substring replacement, like so:

<img title="${the_title}" src="${url_var}" alt="" />

Everything marked as a variable gets replaced with its value and everyone can be happy.

Try to guess what happens with that src=”${url_var}” bit in there. Yep, the browser tries to load it. Firing a request to something that always returns at least a 404 after wordpress decides that, hey, this isn’t something I know of!

This means that the url is never cached either server-side or client-side!

Turns out my blog was firing two such requests every time somebody came to the page. Every. Single. Time! In the latest case this meant 8 useless request per second at its peak. To the point most of my site just started throwing a 500 error and only that one redirected static page was still up …

All I have to do now is find a permanent solution. Any ideas?

Enhanced by Zemanta

7 responses so far

Why programmers work at night

Dec 15 2011

A chimpanzee brain at the Science Museum London

Image via Wikipedia

A popular saying goes that Programmers are machines that turn caffeine into code.

And sure enough, ask a random programmer when they do their best work and there’s a high chance they will admit to a lot of late nights. Some earlier, some later. A popular trend is to get up at 4am and get some work done before the day’s craziness begins. Others like going to bed at 4am.

At the gist of all this is avoiding distractions. But you could just lock the door, what’s so special about the night?

I think it boils down to three things: the maker’s schedule, the sleepy brain and bright computer screens.

The maker’s schedule

Paul Graham wrote about the maker’s schedule in 2009 – basically that there are two types of schedules in this world (primarily?). The traditional manager’s schedule where your day is cut up into hours and a ten minute distraction costs you, at most, an hour’s worth of time.

Prim clockwork of a wristwatch, watchmaking ex...

Image via Wikipedia

On the other hand you have something PG calls the maker’s schedule – a schedule for those of us who produce stuff. Working on large abstract systems involves fitting the whole thing into your mind – somebody once likened this to constructing a house out of expensive crystal glassand as soon as someone distracts you, it all comes barreling down and shatters into a thousand pieces.

This is why programmers are so annoyed when you distract them.

Because of this huge mental investment, we simply can’t start working until we can expect a couple of hours without being distracted. It’s just not worth constructing the whole model in your head and then having it torn down half an hour later.

In fact, talking to a lot of founders you’ll find out they feel like they simply can’t get any work done during the day. The constant barrage of interruptions, important stuff ™ to tend to and emails to answer simply don’t allow it. So they get most of their “work work” done during the night when everyone else is sleeping.

The sleepy brain

But even programmers should be sleeping at night. We are not some race of super humans. Even programmers feel more alert during the day.

Ballmer's peak

Ballmer's peak

Why then do we perform our most mentally complex work work when the brain wants to sleep and we do simpler tasks when our brain is at its sharpest and brightest?

Because being tired makes us better coders.

Similar to the ballmer peak, being tired can make us focus better simply because when your brain is tired it has to focus! There isn’t enough left-over brainpower to afford losing concentration.

I seem to get the least work done right after drinking too much tea or having a poorly timed energy drink. Makes me hyperactive and one second I’m checking twitter, the next I’m looking at hacker news and I just seem to be buzzing all over the place..

You’d think I’d work better – so much energy, so much infinite overclocked brainpower. But instead I keep tripping over myself because I can’t focus for more than two seconds at a time.

Conversely, when I’m slightly tired, I just plomp my arse down and code. With a slightly tired brain I can code for hours and hours without even thinking about checking twitter or facebook. It’s like the internet stops existing.

I feel like this holds true for most programmers out there. We have too much brainpower for ~80% of the tasks we work on – face it, writing that one juicy algorithm, requires ten times as much code to produce an environment in which it can run. Even if you’re doing the most advanced machine learning (or something) imaginable, a lot of the work is simply cleaning up the data and presenting results in a lovely manner.

And when your brain isn’t working at full capacity it looks for something to do. Being tired makes you dumb enough that the task at hand is enough.

Bright computer screens

This one is pretty simple. Keep staring at a bright source of light in the evening and your sleep cyclegets delayed. You forget to be tired until 3am. Then you wake up at 11am and when the evening rolls around you simply aren’t tired because hey, you’ve only been up since 11am!

A city

Image via Wikipedia

Given enough iterations this can essentially drag you into a different timezone. What’s more interesting is that it doesn’t seem to keep rolling, once you get into that equilibrium of going to bed between 3am and 4am you tend to stay there.

Or maybe that’s just the alarm clocks doing their thing because society tells us we’re dirty dirty slobs if we have breakfast at 2pm.

Fin

To conclude, programmers work at night because it doesn’t impose a time limit on when you have to stop working, which gives you a more relaxed approach, your brain doesn’t keep looking for distractions and a bright screen keeps you awake.

Enhanced by Zemanta

217 responses so far

Science Wednesday: Self-driving cars

Dec 14 2011

A DARPA challenge loser

A DARPA challenge loser

Science Wednesday is a category I’ve wanted to create for a while. It will feature a weekly summary of an interesting academic article or other piece of science that I find – the primary reason being to force me into reading original sources and hopefully give you guys something interesting.

Even though the world is a-buzz with news of a possible higgs boson discovery, I decided to start off Science Wednesday with excerpts from this week’s lecture on robotics at ai-class.com. Sebastian Thrun talked about Stanford’s autonomous vehicles and how the Stanford Racing Team managed to snag victory at the DARPA challenge a couple years ago.

And when I say “snag victory”, I mean Stanley was the only car to even finish the race. The way they did this is really impressive and by now the technology has become so advanced the Google cars can drive in normal traffic on regular San Francisco roads!

That was the inspirational OMG THIS IS AWESOME part of the lecture.

Two algorithms are essential to achieving this: localization and path planning.

Localization

For localization they use something called monte carlo localization. It uses a particle filter as the beating heart of the approach – it sounds all fancy, but it’s really quite a simple approach.

Basically the idea is that you take measurements from your sensors and randomly scatter some points on your likely location. Then you compare measurements with whatever you know is correct for each point and assign appropriate weights – basically saying “Ok, if I am on a road marking there is a 90% chance the sensor will say ‘White’”.

After some normalization you take points with the most weight and move them forward a bit, adding some scatter and eventually you become very certain of your location on the road because the algorithm converges into a single point.

Path planning

For path planning two approaches are used. Dynamic programming is used to plan the path and a modified A* algorithm is used to plan the actual movement within the map.

A* search that uses a heuristic that is 5.0(=ε...

Image via Wikipedia

Dynamic programming enables the robot to find the shortest path from current state to goal. The approach is actually pretty simple – just backtracking from the goal to the start and subtracting the cost of movement, if you have stochastic actions (e.g. sometimes going forward makes you go left) you have to perform the whole calculation a few times until the algorithm converges.

To plan the actual movement a modified A* algorithm is used. The biggest difference is that the algorithm works in a continous world instead of discrete and the cost estimation function considers limitations in the robot’s movement.

And here are two shiny videos that show off these two concepts.

So there you have it, the basics for making a car that drives itself :)

Enhanced by Zemanta

One response so far

The best $5 I have ever spent

Dec 13 2011

English: Comedian Louis C.K. performs for serv...

Image via Wikipedia

A few days ago Louis C.K. did something truly outstanding – he released Louis CK Live at the Bacon Theater.

It’s a self-produced, self-published, self-everything hour of laughter inducing madness. That’s right, you will laugh. Out loud. No, not just “lol”. I mean laugh.

He also put up what is probably the best anti-pirating plea I have read in a while; of course it only works if you aren’t a big corporation and have no intention of suing me for damages up to $150k every time I pirate a 5minute song.

To those who might wish to “torrent” this video: look, I don’t really get the whole “torrent” thing. I don’t know enough about it to judge either way. But I’d just like you to consider this: I made this video extremely easy to use against well-informed advice. I was told that it would be easier to torrent the way I made it, but I chose to do it this way anyway, because I want it to be easy for people to watch and enjoy this video in any way they want without “corporate” restrictions.

Please bear in mind that I am not a company or a corporation. I’m just some guy. I paid for the production and posting of this video with my own money. I would like to be able to post more material to the fans in this way, which makes it cheaper for the buyer and more pleasant for me. So, please help me keep this being a good idea. I can’t stop you from torrenting; all I can do is politely ask you to pay your five little dollars, enjoy the video, and let other people find it in the same way.

Sincerely,
Louis C.K.

Certainly the best five bucks I have ever spent … hell, you pay almost as much for a good tea at Starbucks and that doesn’t leave nearly as lasting an impression. I’d love to tell you what was so special about it, but this is standup comedy, if I try to tell you it will just come out pathetic and we’ll both feel kind of awkward about it.

If for whatever odd reason  you have no idea who this Louis C.K. person is, and shame on you if you don’t, here’s a helpful video.

Enhanced by Zemanta

No responses yet

Javascript’s lack of strftime

Dec 12 2011

You know that one piece of shitty code that always makes you cringe? Something along the lines of months = ['Jan', 'Feb' ....]; dateString = date.day()+’ ‘+months[date.month()];

An air-raid siren in Nice, France, is still op...

Image via Wikipedia

Yeah that piece of code. Let’s talk about that.

It sucks. There is a special circle of hell for people who do it and yet JavaScript developers are forced to doing it all the freaking time!

In JavaScript that’s the only way you can do it. I shit you not.

A couple of days ago I caught myself writing code like that and red flags and alarms and air-raid sirens started going off in my head. I felt like that proverbial axe murderer reading my code who knows where I live was already breathing down my neck.

Scary situation that.

But when I went looking for an elegant way of coercing datetime into a string, I found the whole situation rather lacking. Turns out JavaScript doesn’t have a native strftime function even though it is surprisingly brilliant in converting strings to native representations.

String -> Date

Have a string? Want a date? JavaScript’s got your back bro!

// all of this correctly returns a millisecond timestamp since unix epoch
// the string argument can also be passed to the date constructor by the way (returns a correct Date object)
Date.parse("Aug 9, 1995")
Date.parse("Wed, 09 Aug 1995 00:00:00 GMT")
Date.parse("Wed, 09 Aug 1995 00:00:00")
Date.parse("Thu, 01 Jan 1970 00:00:00 GMT")
Date.parse("Thu, 01 Jan 1970 00:00:00")
Date.parse("Thu, 01 Jan 1970 00:00:00 GMT-0400")

Date -> String

Have a date and want a string? You’re shit out of luck son.

Pretty much the only date to string conversions javascript natively supports is returning a locale string, which is nonstandard and varies greatly computer to computer, and forms of standardized ISO time. It can do this and only this in numerous ways even!

> var d = new Date()
> d
Mon, 12 Dec 2011 11:28:55 GMT
> d.toString()
'Mon Dec 12 2011 12:28:55 GMT+0100 (CET)'
> d.toDateString()
'Mon Dec 12 2011'
> d.toISOString()
'2011-12-12T11:28:55.401Z'
> d.toJSON()
'2011-12-12T11:28:55.401Z'
> d.toGMTString()
'Mon, 12 Dec 2011 11:28:55 GMT'
> d.toLocaleDateString()
'Monday, December 12, 2011'
> d.toLocaleString()
'Mon Dec 12 2011 12:28:55 GMT+0100 (CET)'
> d.toLocaleTimeString()
'12:28:55'
> d.toString()
'Mon Dec 12 2011 12:28:55 GMT+0100 (CET)'
> d.toTimeString()
'12:28:55 GMT+0100 (CET)'
> d.toUTCString()
'Mon, 12 Dec 2011 11:28:55 GMT'

Notice how none of those functions accept a format parameter? Sure, you could get those strings and hack them apart to create a string formatted to your liking … but I’m not sure that’s the ideal approach.

And let’s not even get into wanting to coerce a 12-hour time format out of this thing. Perhaps if your computer is situated in the US the localeString would return that?

However I was able to find a jquery plugin that implements a rough strftime function, although it doesn’t seem to have been actively worked on for the past three years and there are many things missing.

What?

So there you have it. JavaScript’s epic and yet abysmally poor support for date->string conversions.

What do you think is it about the javascript ecosystem that tolerates this? Countless developers must have been implementing shitty code because of this and nobody has thought to complain? Nobody has gone so far as to suggest adding a simple strftime function to the language? Most popular languages seem to have this in their standard library …

Enhanced by Zemanta

5 responses so far

A food experiment

Dec 09 2011

Every few days an email from Gojee winds up in my inbox with pictures of delicious delicious food to make me hungry. This week something came up that I wanted. It was a food so delicious looking I couldn’t get it ouf o my head.

Wild Mushroom Stroganoff.

Wild Mushrom Stroganoff - what I wanted to make

Wild Mushrom Stroganoff - what I wanted to make

After begging every female I know to make this, I finally resorted to making it myself today. Sure enough, right after I decided to make it myself a friendly female decided to lend a helping hand! Bastards.

By some act of magic or divine will I actually managed to buy all the correct ingredients on my first try, unlike when I was making cake.

Apparently dry mushrooms need to be soaked ...

Apparently dry mushrooms need to be soaked ...

Chop chop chop

Chop chop chop

That pan has butter in it! Butter! Terribly against any modern notion of not-very-fatty food, but it makes all the difference.

Right before the last integration testing

Right before the last integration testing

Then something went wrong and it doesn't look that great

Actually looks tastier in the pan

Somehow my version didn’t look that much like foodporn, but damn it was delicious! Definitely going to be making this again and I think I should start using Gojee more often. They actually have some good food there.

Enhanced by Zemanta

One response so far

Can I please take all my classes online?

Dec 08 2011

English: 5th floor lecture hall at Baruch Coll...

Image via Wikipedia

As I prepare to study for the subject that has been the bane of my existence for the past two years (by writing this blog post instead) I can’t help but draw a comparison between how classes in my real world university are going and the classes I’m taking as part of Stanford’s online experiment offering this year.

Granted, the medium of a real world lecture hall and an online set of videos is very different so I might be comparing apples to oranges. But there is something inherently wrong with the fact I have actively been trying to pass a class for two years and failing, whereas I’m getting scores in the 70% and 80% range on both online classes.

Even though the subject making my university experience somewhat horrible is probability and statistics, which is supposed to be the raw basis for both artificial intelligence and machine learning.

Something is wrong with this picture, probably me though.

I believe the main difference is one of attitude. You go into most classes at my faculty expecting to struggle and fail, it’s just the way it is around here. Failure isn’t only an option, it’s a way of life. Regardless, failure isn’t applauded, it’s not even encouraged, in fact it is frowned upon by everyone.

Failure isn’t encouraged, it’s a given

Stranger still, the professors themselves expect people to fail. Not all of them, some are actually quite nice and very good at teaching. For others it almost seems like grading coursework is a final act of irony. The probability and statistics class, for example, considers it a pass if you solve 20% of your homework.

FAILURE

Image by surekat via Flickr

Imagine this contrived situation, answering 20% correct is success.

And of course you’re only allowed to take the quizzes once. Because how else are you going to learn? Surely being given a single chance to answer a question, being told that it’s wrong (without an explanation as to how) and not being allowed to try again is the best way to learn.

Compare this with stanford’s online classes – and I wonder if their real world classes are the same – the teaching is so good that after a single listening to the lecture you can get an 80% correct. Sure, you might say they are somewhat easier than the homework/quizzes I’m used to around here, but it’s a lot more encouraging.

Most of all, getting decent grades and being encouraged to retake the quizzes until you get 100% and are certain you understand the material … well it’s a much better experience than being explained something once, not getting very satisfying answers to questions and then being hammered into the ground with coursework.

I guess the fundamental difference is this: the online classes convey a sense of teaching, the real world classes convey a sense of putting you in your place and jumping hoops.

Enhanced by Zemanta

No responses yet

Fun javascript feature

Dec 07 2011

Not only was my nondeterministic turing machine implementationway too long at 20 lines, it was also wrong. Shortly after @dionyziz reported a bug and it took me until last night to get around to fixing it.

class NP

Image by Henry Work via Flickr

The problem was that when I was passing tapes for each possible step into the next iteration of the algorithm the good old “everything is a reference” javascript feature bit me in the arse. Because of this all the tapes looked exactly like the tape belonging to the last state inspected and so when you moved the instructions around a bit you could make my implementation fail without actually changing the actual turing machine.

Fixing it was a simple matter of strategically using underscore’s clone function to make sure ever inspected state is acting on its own version of the tape.

And since the fix was so simple and I didn’t feel like studying the subject that has been the bane of my existence for the past two years, I decided to try codegolfing the algorithm a bit. Doing so I accidentally came upon what is possibly javascript’s funnest feature.

var δ=function(S,s,e){var π=_.keys,Θ={},k,i,λ,μ,ι,Σ=_.size,β,ψ;
if(π(s).indexOf(e)>=0)return!0
for(k in s){i=s[k][0],λ=s[k][1],ψ=S[k][λ[i]]||S[k].B;for(ι=0;ψ,ι<Σ(ψ);){
μ=ψ[ι++],β=_.clone(λ),β.splice(i,1,μ.w),Θ[μ.n]=[i+μ.m,β]}}return Σ(Θ)?δ(S,Θ,e):!!0};

Glorious 252 characters of nondeterministic turing machine right there! I’d say 252 bytes, but it’s not, look at all those shiny unicode characters!

Turns out even though javascript legally only allows numbers, letters and the $ and _ signs for variable names … using almost any imaginable unicode character is also legal. Perhaps slightly difficult to type, but definitely a useful feature for making more expressive code.

Especially when codegolfing or implementing physics or maths.

Not sure I’ll ever be using this again though … oh and here’s a slightly more readable version:

var δ = function(S,s,e){
    var π=_.keys,Θ={},k,i,λ,μ,ι,Σ=_.size,β,ψ;
    if(π(s).indexOf(e)>=0) return!0
    for(k in s){
        i=s[k][0],
        λ=s[k][1],
        ψ=S[k][λ[i]]||S[k].B;
 
        for(ι=0; ψ,ι<Σ(ψ); ){
            μ=ψ[ι++];
            β=_.clone(λ);
            β.splice(i,1,μ.w);
            Θ[μ.n]=[i+μ.m,β];
        }
    }
    return Σ(Θ)?δ(S,Θ,e):!!0;
};

Before you ask, machine instructions look like this and you can find a script for running all of this over at my github.

Enhanced by Zemanta

One response so far

Stop being so fucking productive

Dec 06 2011

"The Alchemist" by William Fettes Do...

Image via Wikipedia

Productivity is a big thing in my part of the universe. Everyone thinks they’ve cracked the secret for turning time into gold. Modern day alchemists, the lot of us.

This gives us a pervasive culture of 20-somethings busting their backs to squeeze every last ounce of productivity out of their day. Sleep, sex, health and culture be damned! If you condense your whole working life into five years of a startup you’ll be rich didn’t you know? Then everything will be alright!

I have this deeply seated hunch that it won’t be alright. You’ll never be a 20-something again. Ever seen a top athlete when they hit 35? They can barely walk, if they’re lucky they get to train a bunch of 20-somethings, but more often than not they just sort of wither away and nobody hears of them again.

You’re doing that to your brain.

But with mental tasks productivity doesn’t increase linearly with time worked. Every hour spent working hard is a tax on the next hour you want to spend working hard. And so on until you can spend hours, even days, working without achieving.

Remember the quote “You speak a lot, but you don’t say much”? Same goes for working a lot.

A couple weeks ago an article titled If you’re busy, you’re doing something wrong floated around the internets. It was about a study comparing the crème de la crème of violinists at an elite school in Germany with those that are just the crème.

Think of it like comparing Senna and Schumacher. Newton and Feyman. Even Turing and Torvalds.

Nederlands: Leistenen beeld van Allan Turing, ...

Image via Wikipedia

The study found that despite putting in the same amount of measurable work (hours spent) those at the very top report being significantly less busy than those who are merely near the top. They also report having heaps of free time and generally having a rather easygoing lifestyle.

And yet, they significantly outperform those who are constantly busy and under pressure.

With this in mind I started looking for ways of fighting being busy. The first thing I noticed was that under crunch time Itend to do a little bit of everything every day. Two hours on this project, three hours of school and so on.

Makes me feel super productive! Moving forward on every project every day. How much better than that can you get?

But the reality is that context switching presented significant overhead and while I felt productive, I was actually just wearing myself out and producing ever worse amounts of crap.

So for the past few weeks I’ve only been working on a single project every day. Some days are reserved for school, some are reserved for freelancing and so on. This way I can go about my weeks in a pretty relaxed manner, even managing to have a decent social life, while still getting everything done!

It’s amazing. I heartily suggest you try it.

But this is all just talk. I don’t have anything other than anecdotal evidence to support my findings, so next week I am starting a four week one-man study trying to find the link between mental agility and being busy. I want cold hard numbers supporting this hypothesis.

If you want to help with the study to get a better sample, I’m all ears for volunteers ;)

Enhanced by Zemanta

23 responses so far

« Newer - Older »

« I kicked myself in the balls Fun javascript feature »