Yet another crazy Git idea

As you probably know, Git has been getting a lot of attention and momentum lately and all kinds of crazy usages for Git are devised almost daily. Besides the usual source code management, writers are using it to track their books sources(think postscript), digital artists are using it to track their content creation, lots of people are using it for backup purposes and some crazy people are even thinking about creating a filesystem based upon Git’s workflow and paradigms.

I myself am using Git for all kinds of things, be it backup, bookmarks, documents and of course source code(basically everything that is subject to change, versioning, snapshoting and reverting), but in the last couple of months i’ve been using Git to track something special, the /etc/ configuration directory on *NIX systems. I am sysadmin on several boxes, including the one that’s hosting this site and let me tell you, in these couple of months that i’ve been tracking /etc/ directories using Git, it saved my ass a couple of times and lots of productivity, thus resulting more free time to drink beer and do mostly useless stuff. 🙂 It saves your ass when you fuck up, it gives you hassle free opportunities to test out new configurations, you can keep an eye on automated or undesired configuration changes and of course the usual lazy snapshots/backups. This is great, because once you get comfortable with git, all of this comes naturally to you, i didn’t have to read about it or anything like that, the idea just came to my mind and seemed pretty normal and right. Once you get into the git mindset, this becomes conventional thinking.

No wonder that Git’s man page first line is “git – the stupid content tracker”, because indeed it is stupid, stupid in the sense that it doesn’t care about the actual content you are tracking, the content is transparent and not interesting to git. This kind of stupidity is great, it is simplicity and simplicity leaves room for innovation and creativity. Cool.

Tagged with:
 

Kaspersky Antivirus source code leaked

Apparently the source code for the Kaspersky Antivirus 8.0 has been leaked on the intertubes… Too bad. :-/

For more insight check these to articles at Softpedia:

Kaspersky Anti-Virus Source Code Leaks Online

Former Kaspersky Employee Responsible for Leaked Source Code

Tagged with:
 

Polycode, an amazing piece of art!

As stated in the title i have truly came over an amazing piece of art:

http://mauke.ath.cx/stuff/poly.html

Hit view source on that and stare at pretty strange,at the first look,source code. Well that source, my friends,is neither html,c,python or perl it is all of them,plus some more.The above linked source code compiles/interprets and runs under all of this languages: html+js,c/c++,python,perl,ruby,bash,sh,zsh,haskell,makefile,tcl and brainfuck.

I’ve tested the source on all of them just to make sure that it isn’t a joch and it isn’t! even if we count haskell which in my case it didn’t interpret(i used hugs but it didn’t work for some reason and i didn’t insist). Here is some proof output for the unbelievers:

shinnok@donkey:/tmp$ wget http://mauke.ath.cx/stuff/poly.html
–2009-01-21 18:26:11– http://mauke.ath.cx/stuff/poly.html
Resolving mauke.ath.cx… 91.67.1.238
Connecting to mauke.ath.cx|91.67.1.238|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 2376 (2.3K) [text/html]
Saving to: `poly.html’

100%[======================================>] 2,376 –.-K/s in
0.001s

2009-01-21 18:26:12 (2.21 MB/s) – `poly.html’ saved [2376/2376]

shinnok@donkey:/tmp$ python poly.html
I’m a Python program.
shinnok@donkey:/tmp$ perl poly.html
I’m a Perl program.
shinnok@donkey:/tmp$ ruby poly.html
I’m a Ruby program.
shinnok@donkey:/tmp$ cp poly.html poly.c
shinnok@donkey:/tmp$ gcc -o poly poly.c
poly.c:37:20: warning: trigraph ??! ignored, use -trigraphs to enable
shinnok@donkey:/tmp$ ./poly
I’m a C program (C89 with // comments, trigraphs disabled).
shinnok@donkey:/tmp$ cp poly.html Makefile
shinnok@donkey:/tmp$ make
I’m a Makefile.
shinnok@donkey:/tmp$ beef poly.html
I’m a brainfuck program.
shinnok@donkey:/tmp$ tclsh poly.html
I’m a tcl script.
shinnok@donkey:/tmp$ sh poly.html
I’m a bash script.
shinnok@donkey:/tmp$ zsh poly.html
I’m a zsh script.
shinnok@donkey:/tmp$ bash poly.html
I’m a bash script.

I find it amazing the way the writer of that piece of poly-code managed to use various syntactic and lexical as well as operators and language specific tricks in order to get that same piece of code to compile/interpret and run on all of those languages.