Friday, October 24, 2008

Cute icon theme

Vedran just pointed me to very nice icon theme named OpenWorld. Too bad SVG files are not available yet since there is a very high level of interest for them (as I can see from the comments).

For now, we'll have to be happy with 48x48 size only.

Wednesday, October 15, 2008

Distributing programs correctly

One of the things I like in Chicken scheme is one of the cleanest distribution model I ever seen. For some it will look, at first, very ordinary or they will not notice it at all (at best) but... shouldn't The Right Way be the program installation without noticing that procedure at all?

I never was a fond of distributing own binaries (except a distro specific packages) on Linux; you never know what the person who downloads it has. Does it have correct glibc or stdc++ or whatever libraries you are using? Just bump the source archive and let configure do the magic.

But in Chicken case, things are different. You simply download the binary and extract it in / directory.

Later, you find out you are missing the big integer support (not enabled by default), simply telling "chicken-setup numbers" in command line and "(use numbers)" at the beggining of the program will brings them.

And at the end, you want to compile your code, "csc yourfile.scm" will do it.

Now, can things be more simple than that? You should not be worried will Chicken's binary works on your Linux distro nor what are the eggs, nor how "chicken-setup" resolves egg dependencies, finds and downloads them and at the end, compiles and installs them. Nor how "csc" calls gcc at the background to perform final translation of generated C code to the binary.

Everything works.

Now, when the big names or the big programs will have the similar thing with the same (or at least similar) easiness?

Monday, October 13, 2008

Code prettyfier

Just played with a Google's code prettify and after following these advices and these, code highlighting is available here too.

Let we see what it can make...

/*
* some C/C++ code
*/
class Foo {
private:
// nothing
public:
// nothing
};

void baz(void) {
/* nothing too */
}


Some python code:

# a comment
def foo():
print "bla"


And scheme code:

(define (func a b)
(+ a b))


Looks like it works :)