Tuesday, December 21, 2004

Factor - 0.70

0.70 released.

Thursday, December 16, 2004

Free E-Book on Agile/XP Development

From an article on Slashdot. The book is available for download here.

For someone who has never done XP (like me), it makes a good reading. The code examples are in Java but can be easily adapted to related languages like Object Pascal (which is what I use at work) and Objective-C .

As for C++, not too sure whether anyone can do XP in C++. Yet to see a free/open source refactoring browser for C++.

Wednesday, December 15, 2004

Back to work...

After a break of 41 days, I'm finally back to work. Nice to be back among friends and colleagues. Hope to write some *good* code in the coming months.

Sunday, December 12, 2004

Factor ported to Win32

From Slava Pestov's blog.

The Win32 port will be bundled with the next release it seems. He is also working on a new compiler that does optimizations from an intermediate representation. It would be interesting to run some micro benchmarks and compare with other scripting languages.

On an unrelated note, I tend to agree with his take on design patterns. For most dynamic languages, these design patterns simply boils down to using features like closures, multiple dispatch (if available), continuations etc.

Friday, December 10, 2004

SmartEiffel-2.1 beta3 released.


Available here.

Plenty of improvements in this release. Improvements in the compiler, lots of improvements in the library including a set of classes for networking.

On a related note, EWG is a SWIG like wrapper generator for eiffel. Currently it provides complete bindings for GTK2, OpenGL and a few other libraries.

Monday, December 06, 2004

Casting SPELs in Lisp - The Comic Book!

Checkout this for a very nice and refreshing tutorial on lisp programming. The diagrams are super cool !

Sunday, December 05, 2004

The 6 Myths of creativity

An interesting article on creativity.

Saturday, December 04, 2004


Factor is a programming language designed and implemented by Slava Pestov (of jEdit fame). Some key features include:

  • Postfix syntax
  • Dynamic typing and scoping
  • Syntactic support for lists, arrays and dictionaries (key<->value pairs)

  • Full support for continuations (as in Scheme)

  • Large math library

  • Integrated web server that uses continuations to handle requests.

  • and host of other features ...

The language resembles Forth a lot but also has features from Lisp. The latest version (0.69) also sports an optional JIT compiler for x86.

It sure looks interesting.

Monday, November 22, 2004

Peter Klausler's tales of bit-twisting terror

Came across this and this via Zach Beane's site. Excellent articles that make your head spin.

His supposedly fast algorithm for computing the day of week for a particular date is here .

Solaris 10 ...

Looks like Solaris 10 is available for download. I want to checkout dtrace in particular. Am sure Jagan will be jumping around in joy...

Friday, November 19, 2004


BGa (my boss) and Saroo (my teammate) got engaged recently. Congratulations and best wishes to them. A few words about them is in order:

BGa is a one man army in my book. He single handedly designed/built ETV's systems and networking department. More about his technical achievements in a later post. He is a great source of inspiration for me. I've been working with him for the last 18 months and its been a great experience. Learnt a lot from him simply by sitting next to him and watch him work. Besides being a terrific programmer, he is also a great manager. Took the bullet(s) and shielded our team on many occasions. It is a previlage, working with him.

Saroo is quite a chirpy person (she is nicknamed squirrel for a reason). Works very hard and for long hours (her uptime records are probably bettered only by Jagan I think). Has good sense of humour and a very good team person. She started her career in ETV as a copy editor then switched to system administration before settling(?) in the graphics department. Nice person to have on the team.

Hope their marriage date does'nt clash with the upcoming stupid elections in Bihar.

Kanchi seer, mutt ...

From what I've read in local magazines and seen on TV, looks like the Sankaracharya of Kanchi Mutt is in big trouble.

I still remember the good old days when I used to stand in the queue at 5:00am to catch a glimpse of the Paramacharya. After he passed away, we stopped going to the Mutt. Too bad the mutt is in news for all the wrong reasons. The image sure has taken a severe beating.

skribe 1.2b released

$(Title) .

Major changes include ConTeXt backend and plenty of bug fixes.

Sunday, November 14, 2004


memcached - A distributed in-memory caching system.

From the website:

memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Danga Interactive developed memcached to enhance the speed of LiveJournal.com, a site which was already doing 20 million+ dynamic page views per day for 1 million users with a bunch of webservers and a bunch of database servers. memcached dropped the database load to almost nothing, yielding faster page load times for users, better resource utilization, and faster access to the databases on a memcache miss.

Looks interesting...


Skribe is a library of procedures in the Scheme language for marking up text from which outputs in various formats like HTML, PS and PDF can be generated.

Currently I'm using it to generate my website. Skribe can also be used to produce manuals and has good support for formatting source code. Examples of projects using Skribe for documentation:

  • Bigloo scheme compiler.

  • STKlos scheme interpreter.

  • And ofcourse, skribe itself.

Also checkout the STKlos site for an example of a website generated using Skribe.

So why Skribe instead of XHTML or some XML markup to seperate content from presentation ?

  • Beneath skribe is a full blown programming language (Scheme)

  • No need to get tangled in stylesheet programming

The only gripe (for non-lispers) is Lots of irritating silly parenthesis :) .

Friday, November 12, 2004

More photos ...

Here are some more photos of my teammates and boss.
If your browser supports viewing flash and you are not behind a slow connection then you can see a slideshow here .

Wednesday, November 10, 2004

Fast compilers.

As I write this, g++ is grinding my hard disk trying to compile a simple application using the FOX toolkit. I'm a big fan of fast compilers (who is'nt ?). At work I use Delphi/Kylix which are very fast. When I write gtk+ apps I prefer the Tiny C Compiler to
compile and run the code during development (the final binary ofcourse will be produced by gcc). This compiler is arguably the fastest I've tried. Recently version 0.9.22 has been released.

From the website:

(Nov 8, 2004) TCC version 0.9.22 is out (Changelog). Linux kernel compilation is 30% faster (10 seconds on a 2.4 GHz Pentium 4).

Your own customised linux kernel in just 10 seconds !!! . Fantastic.

Another brutally fast compiler is the SmartEiffel Eiffel compiler. For a compiler that has to compile a fairly large language, do whole program optimizations and where the library is maintained only in source form, the compile times are excellent. Combined with tcc, SmartEiffel reduces build times considerably.

Other fast compilers that I occasionally dabble with:

  • Free Pascal - A delphi compatible compiler that works on a wide variety of hardware and software platforms. Actively maintained.

  • Digital Mars C++ - arguably the fastest C++ compiler around. Unfortunately win32 only.

Tuesday, November 09, 2004

My team at ETV...

Originally uploaded by vkk.
A few key members missing though ...

Almost a year ...

Its been almost a year since I last updated this blog. Hope to "up" the posting rate in the coming month(s).

Right now, I'm on medical leave and dabbling in GNUstep and FOX GUI Toolkit .

Interesting that FOX is modelled after AppKit and supports the Target:Action paradigm. But has some warts mainly due to the use of C++ as the implementation language. Datatargets are a nice addition.