hisham hm

10 Songs That Shaped The Decade

It dawned on me that, decades from now, when we get nostalgic about the 2000’s, it won’t be whatever songs were playing on the radio that will instantly transport us to that era. But these.

Part I - The Originals

1. “Bed Intruder” - Gregory Brothers feat. Anthony Dodgson

The Gregory Brothers were the redemption to auto-tune. 95 million views.

2. “Chocolate Rain” - Tay Zonday

This song is perhaps the symbol of the golden era user-generated content on Youtube, circa 2006, before Vevo and design changes that moved the focus away from communities and into corporate content. 74 million views.

3. “What What (In The Butt)” - Samwell

What can I say. 44 million views and even a South Park parody.

Part II - The Loopers

4. Nyan cat

Ah, the loopers. The internet is not complete without them. Nyan cat got over 50 million views.

5. “The Llama Song” - Burton Earny

After “Hampsterdance” in the late 90s, I think this was one of the earliest major loopers. Originally from the Albino Blacksheep website, I’m posting here a Youtube upload for your convenience.

6. “Ievan Polkka” - Loituma

Made popular by leekspin.com, this is actually part of a Finnish song performed by a folk local group. Here’s a link to a full performance (it’s quite good!), but the one we’ll remember most is this:

Part III - The Subversions

7. “Dragostea tin dei” - O-Zone

Sometimes one fan can make the fame of one song. In 2004 a guy posted a video of himself… oh boy, Wikipedia can describe it better than I ever could: …”wearing headphones and lipsyncing to the audio of the original O-Zone track whilst moving his head, shoulders and arms gesticulating to the music in an animated and earnest manner.”

And thus was born “Numa Numa“, the second most watched viral video of all time: over seven hundred million views.

8. “Я очень рад, ведь я, наконец, возвращаюсь домой” (”I Am Glad, Cause I’m Finally Returning Back Home”) - Eduard Khil

It all started with this website: http://trololololololololololo.com/. Perhaps the most appropriate domain name in history.

9. “Tunak Tunak Tun” - Daler Mehndi

The song was originally released in 1998, but the video made waves through the internet during the 2000s. The first of many Indian music videos and snippets from Bollywood movies that amused the world:

10. “Never Gonna Give You Up” - Rick Astley

And finally, of course, the song that left a mark in two separate decades, and for very different reasons. Ladies and gentlemen, the one and only:


Advice for a beginning Linux programmer

A piece from a private message I posted in a forum, which I thought it could be useful to share.

As advice for somebody just starting out writing system utils, what resources have you found the most useful/valuable over the years? What is worth spending lots of time to understand? Best books? Advice that you wish you knew 8 years ago?

Oh, good questions. I can only think of general pieces of advice; you may already know some, most or all of them, but let’s see:

That’s all I can think of for the moment, I hope that helps!

Happy hacking!


Notes on the configuration of keys for Dit

These are some “notes to self”, in case I ever need to reconfigure a terminal to get all keys working properly on Dit:

Command line for urxvt

urxvt -cr green -fn '*-lode-*' -fb '*-lode-*' -fi '*-lode-*' -fbi '*-lode-*' \
-bg black -fg '#c7c7c7' -sb -sr +st -sl -1 -b 0 -tn rxvt

Setting Ctrl-Shift on urxvt

Add this to ~/.Xdefaults:

urxvt.saveLines: 10000
urxvt.keysym.C-S-Up: \033[1;6A
urxvt.keysym.C-S-Down: \033[1;6B
urxvt.keysym.C-S-Right: \033[1;6C
urxvt.keysym.C-S-Left: \033[1;6D
urxvt.iso14755: false
urxvt.iso14755_52: false
urxvt.colorBD: #fff
urxvt.colorIT: #ddf

The “saveLines” is unrelated, but it’s nice to have. :)

Force Ctrl-H to generate ^H (0×08)

Try:

infocmp | grep kbs

If it says “kbs=^H”, there’s your problem. Run:

infocmp > rules.txt

Edit rules.txt to make sure it says “kbs=177”. Then recompile/reinstall the file with:

sudo tic rules.txt

Running it with “sudo” will make it sure it reinstalls to the proper systemwide place, or else it will install to ~/.terminfo and you’ll have to configure the $TERMINFO variable properly.

(Terminfo information from this page.)


How to make the Print dialog use PDF by default in Firefox

  1. Go to about:config
  2. Type “print_to_filename” in the search box
  3. For all entries that appear, change their values to .pdf


“.la file not recognized: File format not recognized”

If you’re writing a program using Autotools (Autoconf, Automake, Libtool and friends) and start getting this error message after adding a new library dependency, this means the library in question exports its link flags using Libtool, but your program’s build is not libtoolized yet.

You need to add a call to “libtoolize” to your project. I usually use a script called autogen.sh which calls the various autotools. This is what a typical autogen.sh of mine looks like:

#!/bin/sh -e
echo "libtoolize..."
libtoolize --copy --ltdl --force
echo "aclocal..."
aclocal -I aclocal
echo "autoconf..."
autoconf
echo "autoheader..."
autoheader
echo "automake..."
automake --add-missing --copy
echo
echo "Now run: ./configure --prefix="
echo

Note the call to "libtoolize".

Then, in your configure.ac, add this:

AC_CONFIG_MACRO_DIR([libltdl/m4])
LT_CONFIG_LTDL_DIR([libltdl])
LT_INIT([dlopen])
LTDL_INIT([recursive])

I got this snippet from this bit of the Libtool manual. I usually add it near the top, after AC_PROG_CC and before AC_HEADER_STDC. In the end, add libltdl/Makefile to the AC_CONFIG_FILES rule. Assuming you already have Makefile and src/Makefile, it would look like this:

AC_CONFIG_FILES([Makefile src/Makefile libltdl/Makefile])

Then in your root Makefile.am, add this:

SUBDIRS = libltdl # plus any subdirs you may already have
ACLOCAL_AMFLAGS = -I libltdl/m4

and for your executable's rules (suppose it is called foo), add:

AM_CPPFLAGS = $(LTDLINCL)
foo_LDADD = $(LIBLTDL) # plus anything else you may already have

And that's it: that's what you need so that .la files can link properly when building your executable. I don't know if that's the optimal way, but it works for me.