Payin’ attention

Ping, ping, ping, it’s 22:45 and I keep getting notifications. Emails, Facebook-messages. The whatever Slack named their diarrhoea.

It’s 22:45 and Sunday. I needed to catch up with work so I sat down in front of the screen in super-efficient power-through-emails mode. Music usually helps: Infected Mushrooms cancels out everything while I write code. Radiohead helps to bring out my creative spirit.

And two and two always makes a five
It’s the devil’s way now
There is no way out

Thinking about it, when was the last time I’ve listened to an entire album in one sitting? From the beginning, to the very end, waiting for the hidden track after the 8-minute silence. I don’t even know when was the last time I could listen through one single song without interruption.
If there’s nothing going on outside, I’d go ahead and interrupt myself.

Ping, ping, ping, Slack won’t shut up.
One more ping I hear and I’ll throw my laptop through the closed window.

You can scream and you can shout
It is too late now
Because you’re not there
Payin’ attention
Payin’ attention
Payin’ attention
Payin’ attention

j j j

Bad decisions

If offered a Snickers, a Milky Way and an Almond Joy, participants would always choose the Snickers. But if they were offered 20 candy bars, including a Snickers, the choice became less clear. They would sometimes pick something other than the Snickers, even though it was still their favorite. When Glimcher would remove all the choices except the Snickers and the selected candy, participants would wonder why they hadn’t chosen their favorite.

Turns out that the brain is an expensive thing to run. If you want to dig deeper, here’s your entrance to the rabbit hole: a fascinating article on the Neuroscience Behind Bad Decisions.

j j j

I think I learned to speak Romanian

Nothing can prepare you for the bus ride we were just about to take. Getting lost on a highway. Illegal border crossing. Crashing into an airport bus bay. Police escort in Vienna. All this with a scheduled, international coach service.

On the outside of it, all Budapest-to-Vienna coach services look the same. I therefore chose the one that fit my schedule the best and bought a one-way ticket with Orangeways. Then I went to the station, had a coffee and got ready for the 3-hour trip.

The plus side: we reached our destination, it didn’t take much more than 2 hours extra, and I probably learned to yell directions in Romanian.

Let’s start from the beginning.

It’s a Thursday morning, and I’m waiting for the scheduled 9am Budapest-Vienna service to arrive. Clearly, it won’t be on time, no coach service in Europe has ever been on time, but this one now is in serious trouble.

They are late, it turns out, because our bus is still on the road somewhere far away, and the chances that it would arrive on time equals to it and all its passengers evaporate in the Summer sun. Orangeways, luckily, has a plan B: another bus and another driver.

The replacement service arrives, the driver has a look on his face which makes it obvious for the most untrained mind-reader that he didn’t exactly sign up for this trip. The bus and the driver look like they’ve been stolen from a Kusturica movie.

Well, he looks like he was stolen from the movie, and the bus looks like it was stolen by him.

A small, loud guy with a hoarse voice, a scar face and the moves of a featherweight box champion. And he arrived with this bus.

Orangeways fail 2

Neither the bus nor the driver has ever been to the western part of Hungary, let alone Austria, but that’s exactly what the GPS is for. The GPS takes 15 minutes for the driver to switch on, and since he can’t find Vienna airport in the point-of-interests list, he decides to put the border town as destination and so we get started. We are only 15 minutes late.

Close to the Austria-Hungary border then, although there are no scheduled stops until the airport, the driver calls for a 10 minutes break. 10 becomes 25, in the end of which he desperately wants to find someone who speaks Hungarian and has been to Vienna before.

Now, at this point, I’m writing code in the back of the bus and have absolutely no intention in helping out. I’m quite sure that we will reach Vienna in one way or the other, and have plenty better to do than navigating a clueless driver for the rest of the trip, on a scheduled coach which I paid $19 for.

Which is all cool, because by the time I thought this through, a Hungarian-speaking Romanian guy already took the navigator seat. Suddenly time became the most pressing issue, so the driver tried to convince the three people who’ve bought their ticket to Vienna airport to get off in Vienna city instead.

It may have worked much better if he did speak languages, because now he is only yelling “Airporto? Fluggafen!” on increasing volume levels. At this point, one of the Flughafen guys removes his bag from the overhead lockers, leaves the bus and starts to run towards the motorway.

I’m one-hundred-percent sure that this is a movie.

We are still in Hungary, but there will be a point in the not-too-distant future when we will cross the border. Normally it’s not an issue, because it’s as simple as following the motorway.

The driver is nervous though, which, in my head, immediately means that, one, he has no idea that Hungary and Austria are both part of the Schengen area, and two, he surely, definitely, must have stolen the bus.

On the border the former customs buildings still exist, and that’s the place where you can buy vignettes for the motorway. I’ve never seen an operating coach service do this, so it’s definitely a first, and it’s also a first trying to enter a car’s lane with a massive vehicle. We took a couple of wrong turns, got super-lost among the parking 18-wheelers and tried to pass through an operating police station.

Good news is that Austrian police are actually pretty cool, and instead of yelling the driver’s guts out, they simply point him to the right direction. We are on our way now to Vienna airport.

After the border crossing experience we are not an international coach line but a school bus. Random strangers are chatting loud with each other, some are singing, and when the driver seems to be contemplating the wrong exit, everyone keeps yelling directions in any language.

Everyone, except the two guys in the front, who have a plane to catch. They jump up to grab their bags when we reach the departures building. The driver is happy too, so happy that he doesn’t notice the bus bay’s overhead signs and crashes into them.

Now it’s only until Vienna city, we have the address, the address is in the GPS, where can it go possibly wrong?

Let’s just say that Vienna is a big city with many roads, high traffic and such exotic transport vehicles like, say, the tram. Quite confusing for a first timer, small wonder that we had the chance to meet the Austrian police once again.

Orangeways fail 1

Sometimes, the Internet is right.

j j j

Web design that looks fresh after 10 years

What’s the secret of creating products that age well?

I’ve been cleaning up my old disks this weekend and found these screenshots of webpages from 8-10 years ago. I used to send these pictures to designers to explain art direction choices, so this collection is essentially an insight into graphics trends a few years after the millennia.

Shortlisted here, five webpages that look a bit more fresh than the rest. Let’s revisit them briefly: which designs could you get away with today (and why)?

A fun exercise for the next art direction meeting: how would you change your products right now to make sure they will look ok-ish in 2026?

j j j

One system, many options

There was just one thing left for me to do on this tech meetup: I wanted to talk to the guys who made an open-source 3D printer that can be assembled at home by normal people, for buttons.

Tech meetups are events where geeks go to demo their products and inventions. These evenings offer an opportunity to discover new ideas and, right away, ask questions from the people who invented them or know the most about related technologies.

The 3D printer guys were nowhere to be found after the demo, but their table was open and full of 3D-printed objects. Those all looked cool, and I was wondering what kind of garbage I would manage to make if I had a 3D printer at home. Alex, the guy next to me was thinking the same, though he apparently knew his way around the technology.

He explained about accuracy levels and said that you don’t need to use this rigid plastic, you can print with all sorts of materials: you could create rubber-like stuff too. Wink. This was the first time I’ve ever talked to Alex, and I knew we will be friends.

Meetups are also a good way to mingle with the local startup community. We are in Berlin now, which is one of those large international cities where seemingly no one was actually born, but plenty people flocked to from all around the world. Every conversation starts with a good five minutes of the prison-talk: why are you here, how long are you staying, what do you normally do?

On startup events you constantly bump into those Zuckerberg-wannabes who either left their job to work on a side project, or are prepared to do so in the near future. Their most important task for the night is to approach every investor-looking person with a 3-minute elevator pitch, and try to say something that triggers their “I want to invest in this company with no delay” instinct.

This startup event was no different. I was rather suspicious when, to answer the “what do you normally do” question, Alex took out his phone and opened the Photos app.

“It’s going to be a PDF demo. Let’s run away!”, I thought.

He then proceeded to show a bunch of pictures, high-quality 3D renders of his furniture line. “Cool designs though.”, I thought then.


“I designed this Kivo system,” Alex started to explain, “where you can create any sort of environment out of triangles. If you want a silent room to make phone calls, make a booth. Or, create separators between different areas in the office. A meeting room. Individual work stations. A tent.”

I wanted to say something smart, so I went on: “triangle was my sign in kindergarten”. Luckily, Alex didn’t take my clever remark as smugness.

“That’s exactly where the inspiration comes from! When I was a child, I’ve been using a towel, carpet and other daily necessities to build special spaces for myself. Now, I wanted to create something that looks nice but is also very useful. We made these triangular modules durable but very lightweight, and chose the materials so that they are environmentally friendly.”


At this point I’ve only seen the designs, and I’m just about to learn how successful of a business this is: Kivo is part of the global Herman Miller brand now, used in offices all over the world, from London to Hong Kong.

[My interview with Alex continues on Yakuzuzu.]

j j j

AI might actually kill us all

A friend asked me yesterday when artificial intelligence is going to take over the world and kill all humans. It’s a rather casual question at a Summer barbecue party, a question that I predict to come up more and more frequently in the next years.

AI was uninteresting for a long time. Yes, it was hot for a while in the 90s, but then it has not-worked for so long that it acquired a bad reputation. Even when it did work it was doing only computer stuff like playing silly games or fly airplanes: none of them feels really human or seems to be that hard in the first place.


Now however, artificial intelligence is capable of mind-blowing things. It understands what you say to them. It responds. It translates what you see or hear, on the fly.

Have you ever seen kids say “Siri, do you love me?” It’s not uncommon at all. (And, apparently, you don’t know what sexy means until you’ve heard a guy with a slight Indian accent slowly enunciate “I want to have sex with you” to his texting app.)

Next-generation AI is all around us. It drives our cars, watches over our home and family, translates texts on our phone.

The problem with humans and our inventions is that we have a tendency to mess things up at first try. The more power we give to semi-perfect artificial intelligence, the more damage it can cause: Tesla’s autopilot made the decision to drive under a trailer last week, killing the driver in the accident. And, Google’s Nest thermostat seems to have an appetite to freeze people’s houses every now and then.

On the big picture, AI does make our life safer. The real problem is that when it goes wrong, we don’t even understand what has just happened. In normal accidents we tend to know what was going on: the thermostat broke. The engine stalled. The driver fell asleep.

When it comes to AI, most of the time we have no idea what was going on in the computer’s “brain”.

This isn’t a human move

Whenever your phone’s camera uses face recognition to identify the areas to set the focus on, it uses simple algorithms that search for a face’s core features like skin colours or the a position of the eyes.

Modern AI can go many steps further: it can also recognise things like whether you have a hat on, whether you’re smiling, or if it really isn’t you but a dog. Or an orange. Modern AI can actually tell what it sees on a picture.


Unless it can’t. In an experiment on the University of Wyoming, researchers were able to fool cutting-edge deep neural networks using simple, random-generated images. For example, artificial intelligence looked at this first picture and said, with a over 99 percent certainty: it’s a centipede.


What’s interesting here is not that researchers can bring up a state-of-the-art image recognition algorithm and trick it into being wrong. What’s interesting is that most of the time no one can tell where exactly did it go off track.

When you show a picture to a kid and they say something funny, we can understand how their brain worked: it’s not a cat, it’s a lion. When it comes to deep neural networks, even if they are right, we don’t even know why exactly they are right. We don’t share the context with them.

[End of the outtake from my article in Yakuzuzu Issue 7. To continue, read “AI might actually kill us all” there.]

j j j

The best quote I’ve read this week

“It is impossible for a man to begin to learn what he has a conceit that he already knows.” — Epictetus

It’s so simple and so smart: you can’t learn something you think you already know.

And another share-worthy quote from a James Altucher blog post:

“The floors are empty. That’s the Citigroup building over there. That’s probably some ad agency there. That’s a bank or a law firm over there. All empty desks, empty floors, empty buildings.

“The middle class has been hollowed out. There’s no need for paper shufflers anymore. No need for middle management. It’s either outsourced to China or technology takes care of it. Millions of people in middle management, in middle class jobs will be fired or replaced by cheap labor and technology and there’s nothing anybody can do about it.

j j j

Daily Email Reports with Serverless & Node.js

I like to receive quick-and-simple reports for my side projects in the email inbox every morning. This helps to have a good understanding of the progress, but without paying too much attention to Google Analytics or getting lost in sql queries.

Problem is, for all my projects the KPIs are different. For some apps it is the daily subscriber count, for others a key API’s usage for example. The technical stack also varied a lot: some project were written in Python, some in Node.js and others in Java. I couldn’t reuse much of the code for all those projects.

The solution was to create a super-lightweight external app that extracts the important data points from the database and sends it out in a nice email.

This new open-source project is then a simple tool, where you can create reports from simple database queries, and send those reports out in pretty emails. (I also did one Google Analytics integration for one of my projects, but that code still needs some cleaning-up before it can be open-sourced.)

This app runs on AWS Lambda, so you don’t need to set up servers or worry about hosting: you just deploy the function and add a scheduler on the AWS dashboard to run it. I’ve set it for daily or weekly mails, but it does support all sorts of triggers too.

Source code & quick start guide on Github.


j j j

App idea: find your double

Take this idea and run: the find-your-double app. You take a selfie, the app analyses it and tells you where your identical twin, I mean, your identical twin from-another-mother is to be found.

I’d love to have something like this out there, but won’t be able to start a new thing just now. (Insert sad smiley here.)

Another brilliant idea that I had before has just been made by PornHub: the BangFit is a fitness tracker service that tracks a special kind of fitness. Though this one is done by PornHub, so I guess it will eventually measure the mhm, exercise of men’s underarm?

There, a pivot idea for takers: WankFit.

j j j

Scaling up WordPress: 3 advices from the newsletter

In my latest newsletter I’ve asked about whether anyone reading this blog needed (free) advice scaling up WordPress projects. I regularly help out friends with their apps and ideas, and the same topics tend to bubble up all the time – maybe there are more generic advices there that you could use too?

Here, the three questions that came up most.

1. How do I find developers?

Apart from a couple of guys I love to work with, I quite often hire people on Upwork. It’s not as easy as it seems actually: a lot of developers are available, good and bad, and if you don’t know WordPress or to code yourself, it’s quite difficult to tell them apart.

My usual practise is to come up with a small enough part of the project, and test the team’s abilities on a development server. For example, instead of redesigning the whole website in the course of a few months, they will just work on a landing page template for two days. If they succeed they are in for the long run, otherwise I only lost a couple of days altogether.

It’s important to mention that at this point the developers have access to only a copy of the project and non-sensitive data. You’d be surprised to know how many professional-looking development companies went on to accidentally delete all data from my (test) databases.

2. How much more expensive is scalable cloud hosting compared to other providers?

To compare, a non-scalable alternative Hostgator starts at $2.78 per month, which you can’t really compete with on the price level. If you never plan to scale the project it might as well be a good enough solution actually.

For apps that need to scale however, you will need to set up database and file storages, and those are to be paid for separately. (Mind you, using an Amazon EC2 instance or any VPS, and then hosting the static files and database there is pretty much as scalable as Hostgator is.)

To avoid comparing apples to oranges then, let’s just say that the maximum amount of traffic you can serve with standard hosting providers can be easily hosted on the smallest hobby Heroku instance as well, for $7/month. Amazon EC2’s smallest instance would cost around $25/mo.

File storage depends on the traffic and the size of the static files: for this blog with ~3000 monthly unique visitors I pay less than $0.1 in a year, but more traffic and bigger files (like hosting videos for example) would cost you more.

Cloud MySQL databases start at $3.5/mo from ClearDB, Amazon RDS starts around $20/mo (though you can use that for multiple projects).

All in all, a small website is around ~$10/mo on scalable cloud solutions versus ~$3/mo on Hostgator. The big difference is that if you suddenly need to support a higher load of traffic, it only takes a few clicks to scale up on Heroku – while Hostgator just slows down.

3. Why am I pushing for Heroku as opposed to Amazon?

Most development companies are familiar with Amazon EC2 and simple VPS solutions. Those are actually excellent products and are very flexible, but the exact reason I like to recommend Heroku is that it’s more strict.

For example, you can only copy files to Heroku via a Git repository, and you can’t access them via FTP. Developers like to argue that they could also use git to push code to an EC2 server. However, they can also just modify the code directly, and if that’s quicker and easier, that’s exactly what they will do.

Developers tend to get lazy and fall back to harmful defaults, like, storing files on ephemeral disks. All those bad decisions would then keep the project from scaling up quickly in the future — but if those options are not even available, at least that’s one less thing to worry about.

j j j