/images/avatar.png

Just ship it

Let me start with a story. There was a group of friends, somewhere in the fog that was 1997. They had a common interest - computer programming. But not any kind of software, no, they wanted to see how far they could push hardware back then. They were doing the kind of stuff that today you only see in video games. They traveled to various competitions around Europe, having gotten some good placements with their entries. Real time rendering of animation, ray tracing, 3D graphics, music,… and meeting people who shared their interests.

Connecting to a Cisco VPN with OpenConnect on a Chromebook without Crouton

I have been looking at a Toshiba Chromebook 2 with Full HD screen for the last few months. The $300 price tag, my dying home laptop, and the good reviews convinced me to finally take the plunge and purchase it as a laptop for home use.

If you, like myself, have a Cisco VPN at work, you might find out that you can’t connect the Chromebook to your VPN. From what our network engineer found out it’s basically just some XAUTH mismatch. If you don’t know what that is, the basic take away is - you can’t connect without having additional software, OpenConnect. But how to run it in a Chromebook?

Premature optimization

In my many years as a software developer, this is one phrase which I have heard over and over:

“Don’t optimize your software prematurely.”

I have no idea where the phrase came from. I know that most software is shit because people don’t know any better. And generalities like this encourage people to write bad software. I will try to list a few things that I think make up a good developer culture.

PHP Comparisons

/images/2014-03-28-php-comparisons/heading.png

If there is something every developer (not just PHP) should know, it’s when to use a strict equality operator. Interestingly enough, using empty() in PHP has exact behavior as checking loose equality with == false.

This whole thing was inspired (and partially ripped off of) the JavaScript Equality Table. The design caught my eye, more than anything. I’m kinda wishing most if not all languages would have this kind of basic reference.

Outperforming MySQL by hand

There is this SQL table, right?

This is the part where you knowingly nod and prepare yourself for a long story about how a database is as good as the person designing it. Let’s call this table an access log. For the sake of argument, let’s also say it’s 30GB in size, has a 100 million rows, and only has an auto_increment PK ID field. Your task is, should you choose to accept it, to retrieve the last hour of entries in this log table.

So far there is a distinct lack of snakes

In the dashboard which I hacked together at MMC RTV Slovenia, I display a set of related flickr searches based on the current state of the system. So far, there’s a distinct lack of snakes, volcanoes, lava, fire, explosions and other things that might freak an engineer out as much as a server outage.

/images/2014-02-05-so-far-there-is-a-distinct-lack-of-snakes/heading.png

Thoughts:

I like how the hosts are clearly marked when one of their metrics goes over a threshold. The CPU based hosts are on the left two columns, network is in the third, server load in the fourth. The right columns (disk and swap usage) are descriptive but only for a daily report, not so much for a live dashboard. I can clearly see the marked hosts across the room, even if I would miss the background.