Tabs vs Spaces

Ok, this is some serious shit that drives me crazy. The reason why you should never, and I mean never and let me emphasize NEVER in your entire life use tabs for indentation is because:

  • We use spaces in the code to separate words anyways.  Why do you wanna introduce yet another character?
  • Tabs will be displayed differently depending on the editor in question.
  • People are gonna mix tabs and spaces in surprisingly novel (or just plain random) ways which will screw indentation even more than before because it's harder for editors to figure out the correct indentation in this case.
  • The mixture of tabs and spaces will produce lots of redundant lines in your {SVN / Git / whatever VCS} diffs because developers will (un)intentionally change them which is gonna be a lot of fun during code reviews.
  • Tabs are evil!  They're evil, evil, evil!  Don't use 'em! (Except for Makefiles (which as you may suspect are EVIL!))

As a last word, it's not possible to avoid using spaces for indentation in such scenarios:

<tab><tab><tab>function_call(arg1, arg2, arg3,
<tab><tab><tab>              arg4, arg5, arg6);

Long life to spaces!

Ethernet cable labelling

Ever felt that you have too many cables in your home and don't know which one leads where?  Welcome to my world!  Here's my recipe to how to make the situation easier.

It all starts with a sticky tape.

ethernet-cable-labelling-1

Now comes the pen.

ethernet-cable-labelling-2

Let's cut the tape with scissors.

ethernet-cable-labelling-3

At this point you should remove the protective foil from the back of the tape to expose the glue and shape a loop.

ethernet-cable-labelling-4

As a final move, pull the cable through the loop and push the tape against the cable to make it stick.

ethernet-cable-labelling-5

When doing all the above properly, you'll get a of sight that makes the pants of any nerd wet.

Make your OpenWrt router automatically enable your home server and notify you

Here's the situation: I have a Mini-ITX home server in my LAN that sometimes gets disabled when the power goes down. I could setup its BIOS to get automatically enabled when it gets power but considering the nature of power outages it may happen that the power goes out and on in rapid succession over a short amount of time which isn't really good for the hardware.

I'd rather choose my server to be checked on a 5 minute basis and have it automatically woken up and I also wanna be notified by email on such an occasion so that I can SSH into it and uncrypt the crypto partition.

I'm about to carry out this task using my OpenWrt driven router. Everything is pretty straightforward, except that I can't send emails through GMail SMTP using Openwrt because mini_sendmail lacks SASL support so I'll just fetch a PHP script that'll actually send the mail.

openwrt:/usr/bin/supervise-host

Be aware that the above wol utility is a home-cooked one.

openwrt:/etc/crontab/root

# m h  dom mon dow   command
0,5,10,15,20,25,30,35,40,45,50,55 * * * * supervise-host mybox http://mydomain.com/notifyme.php

At this ponit restart cron on OpenWrt.

mydomain.com:/var/www/notifyme.php

< ?php
mail('admin@mydomain.com', $_GET['host'] . ' has been rebooted', 'uncrypt me!');
?>

Enjoy!

Google Reader transition

I've been using Google Apps for a while and a transition opportunity has appeared lately on the Google Apps admin interface that I've just executed. As a result I can use Reader through my Apps account instead of my Gmail account and my shared items page has changed from the old page to the new page.

According to the statistics I've read 86,937 items since April 7, 2006 with my old account which seems like a lot.