Interesting facts about when you get hit by Hacker News tsunami

Interesting facts about when you get hit by Hacker News tsunami

I was fortunate enough to get featured on Hacker News* last Tuesday with my blog post Let me tell you, why the last 20% of work takes the same amount of time as the first 80%. I was on the front page for some hours, on second for quite a bit and I finally disappeared into the submission abyss some 22 hours after the initial article publish.

Because nobody reads my blog except for a few curious friends, the statistics are more or less as laboratory-clean as they can get.
In actual numbers, users’ activity on my blog before the HN tsunami looks like this:

before-hn-statistics

As you see, I had 41 visits from October 1st till October 21th. From those 41, at least 10 were fake visits from a referrer. I know they are fake, because if you go to the url from that referrer, you get to a porn site, and as far as I know, the content from my blog isn’t of any interest to that industry.

Acquisition Overview is also quite priceless:
before-hn-statistics-2

And now the D Day.

I live in Europe and each time here mentioned is going to be in CET (Central European Time).

I’ve finished my blog post and submitted it to Hacker News at around 10PM. I’ve added the same link to my Facebook and Twitter page.

The following graph shows the timetable of the visitor tsunami by hour (from Oct 22 to Oct 23).

at-hn-statistics-1

I got 285 visits at the first hour, at the second 3,680 and at midnight 4,185 visits. Somewhere in the middle, my site couldn’t handle the pressure so it went offline for a bit. At 1AM there were “only” 1,146 visitors and the number descended fast from then on. The aftershock lasted for four more days and the effects are still visible (there were still 32 visitors untill 3PM on Sunday Oct 27).

The whole timetable from Oct 20 untill Oct 27 – visits by day:

whole

Let’s dissect visitors a little.

 

The first two hours (Oct 22, from 10PM to 12AM)

Channels

at-hn-statistics-acquisition1

All but 6 visits are for this now new post.

We can see which referrals are the most popular:

at-hn-statistics-acquisition2

And which social networks were the most active:

at-hn-statistics-acquisition3

Demographics

Almost 60% of all visitors for the first two hours were from United States.

at-hn-statistics-location

What was 10PM to 12AM for Central Europe, was 1PM to 3PM for USA west coast, 4PM to 6PM for USA east coast and 9PM to 11AM for UK.

From those 2,361 visitors from USA, 32% were from California and 11% were from New York.

at-hn-statistics-location2

 

The next day (Oct 23, from 12AM to 12PM)

Channels

after-hn-statistics-acquisition1

For Direct traffic all but 57 visits were for this post.

Social count rose above Referral. Twitter helped a lot.

after-hn-statistics-acquisition2

And the referrals didn’t change much.

after-hn-statistics-acquisition3

Demographics

After the initial two hours, the demographic also didn’t change much. Over 56% of visits still came from the USA. The one big difference were visits from India who came from 23rd place to 6th.

after-hn-statistics-location

 

Overall (Oct 22 till Oct 27)

What surprised me the most is the activity from China. My blog post was translated into Chinese and uploaded to at least 6 different pages. One of them can be seen here: http://www.sinotube.cn/?p=75043.

All these pages had the same photo (not mine), the same text (as far as I could tell through Google Translate) and all of them sent a pingback to my blog. The times for those trackbacks are 1:23AM, 1:27AM, 2:29AM, 2:31AM, 5:24AM and 8:58AM.

155 people visited my site from China (overall at 10th place), some probably came because of these translated versions. If I find the time, I will try to dig up this data just for the sake of curiosity.

Technology

The most dominant browser by far is Chrome with about 60% share.

browser

Almost 25% of visitors visited the site with their mobile phone or tablet.

mobile

And from those 25% almost 39% of them used Apple iPhone and the next 16% used Apple iPad.

mobile2

There were 15,269 visits and as far as I can guess, at least 15,100 (let’s say around 40 would be here by default and the next 129 would come because I’ve posted the link to Facebook and Twitter) were because the post got picked up by readers of Hacker News. I would like to take this opportunity to thank you/them all for this fun experience. I am a long time lurker on HN and I always wanted to know how does it feel when you get featured. Even though the average visit duration was just 19 seconds long, the comments on HN were all really positive so I believe together those 290,111 seconds (or 3,35 days) of reading were well spent.

 Link to a possible debate on Hacker News.

* Hacker News is probably the first page technology and entrepreneurship enthusiasts look at when we get up from bed in the morning

October 27, 2013 0 comments
Let me tell you why the last 20% of work takes the same amount of time as the first 80%

Let me tell you why the last 20% of work takes the same amount of time as the first 80%

You know when developers tell you that they did 80% of the application in x days and that they need the same amount of time for the last 20%?

I was trying to find an analogy for »laymen« and I’ve finally figured it out.

This is the same as driving from suburbs to a city center in a rush hour. You make 80% of the distance in x time driving on a highway and then you want to turn from the wide highway to the city center and the traffic becomes stale. Traffic lights, crosswalks, roundabouts, Sunday drivers, you name it.

It is usually the same while programming. You begin by wire-framing and making the foundations of the project. You start developing and after x days/weeks/months when you are coming near 80%, the key functionalities look like they are doing what they have to.

But then, when you say that you just have to polish the product, the fun begins. This is usually the time when many bugs become known (“did you know that when you take away the USB from the computer while trying to read a file from it in the program, the program crashes?”, “looks like the program doesn’t want to download a file that has an exclamation mark in the name”…).

And when stakeholders want those last 20% to be done in less time, this looks like getting stuck in traffic, jumping out of the car and running the last few block by foot and not caring what will happen with the car as long as you come to the finish line in time. It is possible, but it is not wise.

Update: there is an interesting debate over at Hacker News

October 22, 2013 0 comments
The rise and fall of naïve romantics in my daily life

The rise and fall of naïve romantics in my daily life

I believe that every time we see something that we don’t understand yet, we tend to see it in a more naïve romantic way. Below are two examples how I had to change my mentality about chess and billiards if I wanted to improve my game.

Let us first focus on the game of kings – chess. At first, I’d struggled even for moving the pieces around. I was a few years old and my grandfather tried to teach me how to play. After many games, I’d improved my game but still waited for my turn, thought for a moment what to do, and then made my move. In my mind, playing chess was still a wild guess, it depended greatly on the luck and on the lack of concentration or feeling the opponent had.

chess

Years passed and just when I thought that I am getting the hang of it, somebody came along, who read a bunch of books about chess, who knew all the standard openings by heart and beat the romantics of chess from me in a second. Yes, talent is a good asset, yes experiences matter A LOT. But without the hard realistic systematic approach to the problem, you just can’t advance over a certain point that easy. I joined the chess club soon after that match.

What about playing billiards?

You have a stick (called a cue), a white ball (cue ball) and between two and fifteen playing balls (depends on the game you are playing).

At the beginning I took the stick, went to the white ball, fake the aiming from the white ball to the target ball (I didn’t have a clue how to aim), made a few swings towards the white ball (I saw people do it on the television) and then hit the white ball as hard as possible. If I was lucky, I hit the white ball. If I was even luckier, the white ball hit the target ball without a foul. If I was extremely lucky, the target ball went into the hole (I pocketed the ball!). I had no idea, why the white ball went where it went and I didn’t know which ball to target next before the pot.

I thought that practice was for losers so I never practiced by myself. After many games played, I was able to hit the white ball almost every time. I knew how to add some english (how to make the white ball spin to one side) and I even had a solid three balls streak (I could pocket three balls consecutively before I missed the fourth one).

billiardsWhat I saw in billiards at that time was a combination of luck and feeling. I didn’t care if the balls weren’t all touching each other before breaking them, I just hit the white ball as hard as I could and hoped that I will be lucky. When I played, I only used my gut feeling for each shot (when to apply spin, how hard to hit the white ball, where to hit the white ball…).

Just when I thought that I am getting the hang of it, somebody came along, who read a bunch of books about billiards, knew all the theories from how to stand by the table to best practices for a force-follow shot. From the first break of this crucial match up until about three minutes after, when I’d lost the game I could see the naïve romantics of billiards crush and shatter before my eyes.

It is probably not necessary to point out that I immediately started searching for any kind of theoretical information about billiards.

I still love to play chess occasionally and I still regularly play billiards, but the point of view has changed. Now I know exactly WHY I moved the horse rather than the queen and why the white ball went where it went.

Don’t reinvent the wheel, try to understand it.

April 29, 2013 0 comments
Traffic skyrocketed 1378% and I did absolutely nothing about it

Traffic skyrocketed 1378% and I did absolutely nothing about it

I have a webpage about all the LPG stations in Slovenia. You may have heard of her bigger sister myLPG.eu (the site for LPG stations in Europe), but you probably haven’t heard of plinske-crpalke.si.

This page has a steady flow of regulars who want to find out about the locations, prices and schedule about a certain station.

There are some ups and downs in traffic, but they are more or less quite predictable (when the fuel prices change or a new station appears on the map and I send this info to my trustees through the mailing list).

However, other than that there aren’t any odd spikes around. Therefore, you can imagine my surprise when one day I get an alert that the traffic is increasing a lot. I had that morning more visitors than I usually have through the whole day, and they just kept coming.

Of course, the first thing was to try to find out where all this traffic comes from. One page stood out by far; it was some sort of a coupon page. When I checked it, one of the offers was cheap LPG conversion. A company wanted to become known in the market and threw a campaign. The description looked promising, the whole deal also, and for the social proof that LPG is a great thing, they added a link to my LPG page where I have a calculator for helping to calculate if LPG can be economical for you (mileage, consumption, price of conversion…) or not.

So all this new visitors were pouring in while I’ve watched them on Google Analytics.  I didn’t know how to take advantage of this situation so I just refreshed the page and stared into the screen.

plinske

This phenomenon lasted for roughly two days and after that, it came back to normal.

What have I learned from all this? Nothing much. Expect the unexpected I guess.

I hope visitors found out they could drive more economically with autogas and if they did I hope there were enough coupons for everybody.

March 27, 2013 0 comments
Learning is just like LEGO®

Learning is just like LEGO®

In preschool you are learning the basic things about life. So you start with a big blank plate with nothing on and after a while you get the first few Duplo® bricks, the first basic knowledge.

Lego_City_ViewThe teachers in grade school define the first broad-ish specter like math, history, geography… By learning those subjects you get the main building blocks that will probably be used through the whole life.

By the secondary school you already knew which subject to love and which to hate. You like LEGO® City, but you don’t want to play with pirates or spacemen. That’s why you mainly use all your City bricks you obtained and very few pirate or spacemen bricks. You know exactly how to use the first ones, and the second ones slowly disappear (under the closet, under the bed…).

When you finally come to high school you most likely get to study things you are eager to learn. You get the opportunity to obtain the bricks you always wanted and needed for your next big adventure. But even though pirates do not fit in the picture, some of their bricks will be necessary for making the perfect product.

So next time your child says to you that learning sucks, ask him if he wants to play with LEGO® Duplo® all his life.

 

“LEGO® is a trademark of the LEGO Group of companies which does not sponsor, authorize or endorse this site”

March 14, 2013 0 comments
Why are you still afraid of failing?

Why are you still afraid of failing?

tl;dr
Check the image below

It is way easier to see the whole picture now-a-days than it was a few decades ago. At that time you just heard the success story and maybe how much effort was put into building that business if you were lucky. If you wanted to know more, you had to wait for the (auto)biography of founders.

But now you have to intentionally turn a blind eye to all this data and backstage stories about what it takes to succeed.

The formula to success is quite simple:

  1. Find a problem people have
  2. Work hard to solve that problem (usually to save someone’s money/time)
  3. Work hard to promote your revolutionary solution/product/service
  4. FAIL and go back to step one – or – Succeed

There are factors we as individuals usually can’t influence, like luck, global economy, etc.

But there is one feature that can be the tipping point in a successful business: experience.

How do you gain experience? By failing of course.

Theory is a good start, but you can read all the books in the world, you can follow every new thread on Hacker News (link to this article’s discussion); if you won’t try something, you will never know if that’ll work or not. And only when you try, you see the problems and the holes in the big plan.

Tom Kelley's quote "Fail often so you can succeed sooner"

I know everybody has excuses. We are brilliant at making them. I know some of you have really good excuses (young family, two jobs, a hard life…) and that it is difficult to add another big time-consumer in the equation. But everybody else has the time to fail. And then fail some more and at some point win.

I once asked a painter how long does he need to make a painting. He said 20 years and 2 hours. How long do you thing did it take him to make the first painting? I didn’t ask, but still; One day? One week? Through time he learned the art, he got used to his brush, canvas and paints. He is using his 20 years of experience to make a really decent painting in 2 hours.

Let’s make an experiment.

Find a time tracking app and check how much time do you throw away surfing the web for no reason, how long are you on Twitter, Facebook, YouTube, Hacker News…

And now cut that time in half and use one half for a project. Find something you always wanted to try to build but was too afraid because of the sheer amount of work. Split it into tasks that can be done in 30 minutes. These tasks will look much less frightening and better yet, you will not have to wait a decade for the results, only half an hour.

Let’s say that the time for the project is only 30 minutes per day. I would be willing to bet, that it is much higher, but let’s start small. Half an hour is little to no time. But 30 minutes each day, that’s 210 minutes per week, that’s 14 hours per month or 28 tasks.

It’s not a lot, but that could be 14 short blog posts, alpha version of a mobile app, a new page about your favorite hobby, or first earned dollar in internet marketing.

If you have little or no prior experience, you will most likely fail. But that is OK, I did it to and I still fail a lot. But the percent of failing is getting smaller and I can see the first results of my hard work. And you should too!

* Photo from StartupQuote.com

November 14, 2012 0 comments
How much does the client know about technology?

How much does the client know about technology?

tl;dr
It is your responsibility to find out

We all know those help desk horror stories about the computer illiterate clients who don’t know anything what the tech guy is trying to say to them.

But there is even a greater problem providers and clients are facing nowadays. The pace of everyday life is so fast that average person can’t follow all the changes anymore even if he would like to. But we all know not everybody is for everything, so the average person knows even less than he could have, because well, he just isn’t interested in some fields.

Let’s say we stay on the subject of IT. It’s a nice subject where we all know there are huge differences between a savvy person and a layman. We don’t know the reasons why the layman is a layman and in this post it doesn’t matter. We accept his (non-)knowledge.

And now the important questions:

  • Do you know the clients knowledge on a given field?
  • Do you appreciate the situation in which you are professionally dealing with a layman?

Let me give you an example:

Mary and Jane are cooperating together on a website. Mary is the web developer and Jane is the manager of the project. They are brainstorming about a page that will contain a set of data in a table. Mary asks Jane if she would like a normal table or an interactive one. Jane of course chooses the second one, it sounds better. Because Mary is really busy doing her job, she continuously postpones the work on the interactive table that would require a day’s work in a really tight schedule. And when Jane finds out after some time, the website lacks the very important data chart, she immediately confronts Mary. Only at that time Mary finds out Jane doesn’t know how complex the making of this table is as opposed to the “normal” table and if she knew that, she would’ve asked for a normal table in the beginning.

No matter what whoever says, it will always be your fault. As a savvy person it is your job to find out how much does the non-savvy person know.

It could be very difficult to find out how much somebody knows and how deep you have to go with the explanations at the beginning of your career. But believe me, for project’s sake, it is much cheaper to invest a few more hours communicating with your client, than to steer the development in the middle of the project when the client sees you two weren’t on the same page and understood the problem differently.

September 24, 2012 0 comments
Weekend project: Live traffic density report for highways in Slovenia

Weekend project: Live traffic density report for highways in Slovenia

tl;dr
I made a weekend project, check the traffic density on Slovenia’s highways

During the summer vacation period there is usually more traffic on main roads than ordinary. And if you want to travel on these roads, the info about road density on your designated route can be really valuable.

Slovenia, the country I live in, unfortunately doesn’t have traffic density on Google Maps. The company that maintains the main roads and highways tries their best to inform drivers about the status on the web page promet.si. They provide all the latest info including live video feed from different roads and traffic forecast.

One of their features is the traffic density counter on checkpoints all around the country. There are 346 of them (normal roads both ways and highways both ways on driving lane and fast lane). The table on the page sorts these checkpoints by density, so at times the fast line and the driving line for one place in the same direction can be separated on the table.
Usually as a driver (or a codriver if we take safety into consideration – and we should) has little or no time to filter through the table and find out if he will have any troubles en route.
That is why I wanted to find out how difficult it would be to sort the data in a more driver (codriver) friendly way.

The goal was to make a working proof of concept just to take my mind off of improving mylpg.eu for a day or two.

I knew coding per se wouldn’t be a challenge, only the parsing was. The big challenge was how to make all this chunk of data super simple and still useful.

Firstly I eliminated all other roads and focused only on highways.

Our capital is more or less in the middle, so I split the highways into parts: from borders to Ljubljana and one for Ljubljana’s highway ring. Then I had to find all the checkpoints for both directions and for every lane. At some parts only one direction is covered and the checkpoints are not everywhere of equal distance in-between.

At the end I made two tables for each part of highway previously split; one for each direction, where the first was from the border to Ljubljana’s ring and the other from the ring to the border. Each table has two rows, where the first row is the fast lane and the second row is the driving lane. Each cell is a checkpoint with average speed, average distance between vehicles and the location. The background color of the cell is the indicator of the density; from green (normal traffic) to red (heavy traffic with traffic congestions).

traffic density on Slovenia's highways example

Each visitor can see the density of the given section of highway without the need to search around and read actual text.

All in all I know it could be done better but for a proof of concept and testing purposes I think I‘ve done a decent job. It is only in Slovenian language, but you can try it here (traffic density on Slovenia’s highways) and tell me what you think.

September 7, 2012 0 comments
Be your client’s client

Be your client’s client

tl;dr
When you build something for somebody, do you know everything he or she needs?

The main difference between building custom solutions for yourself or for clients is that you already know why you need it and usually don’t have a clue why that customer needs it. It is dangerously easy to underestimate the power of thorough analysis of the problem.
When you “scratch your own itch” you know exactly which functionalities are fundamental and how the flow has to go to perfectly fit your needs. You also know your tech savviness (never underestimate “tech non-literacy” of your product’s users). And because you already know all this, it is no problem to build solid specifications.

But when you are trying to make your customer’s life better you usually don’t know anything about his or her problems. You don’t know who the end users are, how they think, how good are they with using keyboard and or mouse, how are they used to work with existing solutions…

Watch and learn The best way to build a great product for a client is to really get to know the problem from all perspectives. The client will always forget some important details that he or she takes for granted or thinks that are too obvious to even tell you about them. But because you don’t know them, it could cost you a lot of time and money to modify the product in the middle of client testing.

So what to do? Be the client of your client. Ask him to show you their current solution, let them show you how they are doing things right now, also with “real” users not only with their tech guy. Ask the users how they see that product, what is great and what would they (not just the management) change. Fiddle with that solution yourself, find the faults that drove the users mad, find ways that could help fasten or cheapen the flow.

It will cost you some more time, but that’s the price if you want to be the best in your field.

*Photo from Knight Foundation

August 16, 2012 0 comments
What if we would select software services like food

What if we would select software services like food

tl;dr
Cheap is not usually healthy

Last time I watched a TED video where JP Rangaswami talks about Information is food.

“Information, if viewed from the point of view of food, is never a production issue. … It’s a consumption issue, and we have to start thinking about how we create diets [and] exercise.” (JP Rangaswami)

It got me thinking. I clearly remember a textbook from primary school that contained a picture of two stands from two different apple vendors. The first one had a sign that said “Beautiful apples” and on that stand there really were big and shiny apples. The second one had a sign “Healthy apples” and they looked different. They were smaller and covered with tiny black dots. And this stall had a long line of customers, who were waiting to buy the less perfectly shaped apples that were also a little bit more expensive. The first vendor was alone and was looking at the competitor angrily.

Beginners mistakes

At that time I was young and inexperienced. “I would rather go to the first vendor. There is no line, I would get more for less and they look almost perfect”. But when I grew older, when I have tried a lot of apples (of course this applies also to all other products as well) of different sizes, prices, varieties and sources, I slowly developed my preferences. The older I get, the more I appreciate quality even if that means that I have to pay some more.

I think the same analogy could be applied to software services. Which company would you rather go to? The one that promises you everything cheaper and quicker just to get another customer; or the company that tells you what is possible and what not, that needs more time than the first company and the service has a somewhat higher price? The only thing that you know is that the first company will deliver the product a bit faster at the end, it will look almost the same as from the second company, but the service will have more problems in the long-term.

The devil is in the details

The products can look the same from a distance, but when you look closely you can see that those small differences matter a lot. Let’s say that the second service is more user friendly and that enables users to do something 10% faster. Because of higher quality, the maintenance costs are another 10% lower.

When you escalate the service, the bigger it is and the more you use it, just those two 10% differences can make or break the deal.

So, in the long run you should probably take the second service when the budget or time is over a certain threshold.

Somebody will try to scam me

Naturally there will always be software companies that want to sell you expensive products even though their software is not any good. The same as some vendors lie and put signs “Healthy food” and want to charge you more, even if their products are neither healthy nor expensive to produce.

If you are unfortunate enough because of poor experiences, you develop a filter, that gut feeling that tells you when the vendor does or does not have a good product. But usually somebody you know already knows something about that company, or if everything else fails, you still have Google.

July 24, 2012 0 comments