Wednesday, September 14, 2005

Reiser4 design document

The reiser4 design document can be found here .
Provides a good overview of the Reiser4 filesystem. A must read for anybody interested in filesystems.

Hans Reiser interview


A great interview of Hans Reiser can be found here .

Looking forward to Reiserfs4.

Peixes on win32

Peixes is a multilingual text editor that I'm currently working on. It is built upon the IMLI library. The UI is done using the FLTK toolkit. Since my company uses a mix of Linux, Win32 and Mac OS X, portability is a key requirement for peixes.

For the win32 port, I decided to use the MingW's port of the GCC compiler. I use KDevelop and Emacs under Linux. Under Windows, I narrowed my choice to Dev-C++ and Code::Blocks .

Both are good IDEs that come with a decent project manager, a class browser, intellisense for C/C++ and an integrated visual debugger. The other good thing is they support multiple compiler toolsets including GCC, DigitalMars, OpenWatcom and Borland's free command line compiler.

Code::Blocks can also import Dev-Cpp's project files. Code::Blocks supports project workspaces which can be of great help when working on multiple related projects. However I settled for Dev-Cpp because it is somewhat faster and snappier on my old PIII + 128M of RAM and Code::Blocks was sluggish and used more resources.

Dev-Cpp is written in Delphi and is Win32 only at the moment. Code::Blocks uses wxWidgets and aims to be cross-platform.

All that said, automatic code indenting is poor in both the IDEs when you compare with Emacs's. Code::Blocks's is atleast ok but Dev-Cpp's is pretty basic. I chose Dev-Cpp purely because of its responsiveness. Is worse better ?

A major plus for Dev-Cpp is its DevPak package manager. A DevPak is basically a tarball containing headers, libraries, templates etc that can be installed into the toolset. Installation is painless and fully automatic. DevPaks for popular libraries are already available. Following Dejan Lekic's instructions, I was able to build a DevPak for the latest FLTK-1.1.x sources in 10 minutes !

Would be an interesting exercise to do a side-by-side comparison of KDevelop, Code::Blocks and Dev-Cpp.

Compiling peixes itself was straightforward as it does not use anything system specific (except for Printing where it uses lpr and friends).

Since there is no filesystem standard under Win32, the application and the library needs to be fully relocatable and should not assume anything related to installation path. Therefore IMLI library required some minor modifications such as using the registry for storing path to data files etc.

The next step was to bundle everything using an installer. This time my choices were Inno Setup and NSIS. I chose NSIS because of its better compression ('LZMA /solid ' is really a heavy hitter) and simpler scripting.

Tools - I love them !

btw, Peixes is under GPL and will be hosted along with IMLI. The plan is to release version 1.0 of peixes for Linux and Win32 by mid october.

Sunday, August 21, 2005

super cool!

Some awesome pavement drawings can be found here . A sample:

Tuesday, August 16, 2005

Last week, Venumadhav quit ETV and has joined GECIS as a consultant. Best wishes Venu!

I'm working on a text editor for indian languages. It is built on top of the IMLI library. Thanks to the availability of good libraries like FLTK, Cairo, libxml2, the editor's code is fairly straightforward. Currently working on an undo/redo facility. Looks like this Al Stevens article is the place to start.

Good to see blogger supporting images in posts.

Monday, July 25, 2005


Me, Durga and Venu spent this Sun'day' at Indrani's house. We were supposed to get her internet connection working on Linux. We ate, talked, watched TV before actually getting down to work.

Looks like it will take another weekend. We (me & durga) plan to use it as an excuse to get out of RFC ;) .

Sunday, June 26, 2005

Lisp is not dead !

Via Dirk Gerrits:

Google is funding NINE lisp based projects in their summer of code. Thats more than Subversion, NetBSD, Wine, SAMBA and Inkscape.

Lisp is alive and kicking :)

Sunday, April 24, 2005

Emacs Code Browser

Recently, I switched to KDevelop as my primary IDE. Yesterday, I loaded the source code of mlt++ and boom! - it crashed. I was about to switch to SourceNavigator but then I remembered something. Back when I was a "proud" emacs user, I used to use ECB, the emacs code browser. Out of curiosity, I checked out the latest copy from CVS and loaded all of mlt++ code. To my surprise, it parsed the entire code base! . The version of emacs that was installed in my system is slightly old (21.3.x) and I read that a number of improvements were made since then. Besides, I never liked the lesstif based interface. So checked out a copy of the latest sources and built a spanking new version with gtk2. Here is a screenshot of a session.


At the core of ECB is the semantic framework (provided by CEDET) which provides support for parsing code. Intellisense (aka autocomplete) basically works but it has a lot of rough edges.

ECB comes with a number of different window layouts. Another big plus is it works just as well in terminals. Not many IDEs can do that.

There is one problem with ECB though: its key bindings. To go to the method display window from the editor window you have to type C-c . g m - a total of 5 keystrokes! - this is a punishment considering the fact that the Control key is badly placed on most keyboards.

A longterm gripe with emacs is it's font selection mechanism. XLFD should go away, period.

I like thin 'bar' cursors rather than the stocky block cursors, Adding this line in ~/.emacs solved the problem.

(setq default-frame-alist '((cursor-type . (bar . 1))))

Will post more details as I continue to explore ECB and friends.

Saturday, April 23, 2005


After 6 hours of downloading (thanks to my poor dialup connection and the large frontends for Ada and Java), finally built GCC-4.0.1 on my machine.
As a first test, tried the compiler on the FLTK sources. The build was a breeze and was over within 10 seconds. As advertized, with -O0, the compiler simply blitzed through the sources.

In the next few days, I plan to build GNUstep (to check Objective-C), MLT, MLT++ and ShotCut. I'm particularly interested in the ELF symbol visibility options and size of the resulting binaries.

Wednesday, April 20, 2005

Raghu to join StarNews

Came to know that Raghu has got a job in StarNews as a Sr. System Admin. For the past few months, worked with him on MLT/Pyro installation and testing.

Wonder who's next...

Wednesday, April 13, 2005

my nerd score ...

Found this from G.Balaji's blog . Here is my score:

I am nerdier than 89% of all people. Are you nerdier? Click here to find out!

Wednesday, March 23, 2005

Factor - 0.73 released.

Highlight of the release is the PowerPC compiler and assembler.

Monday, March 21, 2005

IMLI tree checked in

Finally, managed to check in the source tree of the IMLI project. Took almost an hour to upload the files to over a sloooow dialup connection.

Friday, March 18, 2005

Opera 8.0 beta3 released

Adds native SVG support. Some sample SVG files can be found here .

Friday, March 11, 2005

Kasparov to retire

Former World Chess Champion and arguably the strongest chess player of all time, Garry Kasparov has announced his retirement from competitive chess. His career comes to an end on a high note with a victory at Linares today.

Tuesday, March 08, 2005

Alex Stepanov's papers online...

Here . My particular favourite is the abstraction penalty benchmark.


Yet another Lisp dialect+implementation.

From the website:

  • Hedgehog is a very concise implementation of a Lisp-like language for low-end and embedded devices. It consists of a compiler and a byte code interpreter. The byte code interpreter is written in standard conforming C, is efficient and easily portable, and can be compiled to a very small executable of only some 20 kilobytes in the smallest configuration for the Intel x86 architecture.

  • The Hedgehog Lisp dialect has proper support for local and lambda functions, lexical scoping, variable argument functions, garbage collection, exceptions, macros, and over a hundred predefined functions or special forms. The built-in types are lists, symbols, strings, 32-bit integers, AVL-trees, and tuples up to 16 elements wide. Proper 32-bit wide integers are necessary for various bit-level operations in embedded systems.

A paper and a set of slides describing the implementation is also available.

Monday, February 21, 2005

Stepanov's advice for "Young Programmers"

Durga forwarded me this . In the post, Alex Stepanov is mentioned as Principle Scientist, Adobe Systems. In case you did'nt come across the name, he was the principal designer of STL and generic programming in C++ (and Ada).

Fonts for code editing

Today, woke up with a swollen left eye. Came to office in the afternoon. After finishing the pending code cleanups, decided to cleanup the mess that is my home directory. Found a few font files lying there. I downloaded them sometime back when I was looking for some nice programmer friendly fonts. By programmer friendly I mean fonts that are easy to read, pleasant so that you can stare at it for long hours, clearly distinguish characters like 0,O,1,l,I and also pack many lines in one screen. So I decided to give these fonts a try:

  • Anonymous - this is my current choice.



  • ProFont

  • Proggy fonts - the ttf fonts are terrible. However, the bitmap versions work fine.

  • Terminus - I really like these fonts. Since these are bitmap fonts, I'll have to specify the full XLFD string which is a real pain. This is the only reason stopping me from using these fonts. The README says that the fonts work on Linux and BSD consoles too but I could not get them to work (consolechars failed to load the font file).


  • Monaco - I think I copied this from a Mac. If the font is freely available, I'll switch ;)


I'll start hunting for more fonts after Bihar elections. In the meanwhile, if you have any pointers to good fonts please leave a comment.

BTW, the screenshots were taken using Shutterbug - a fine screengrabber that comes with the FOX toolkit.

Saturday, February 19, 2005


This is a fine piece of work. For a person who does not know Sanskrit this is a great help. Since a word by word translation is provided, I can actually read it in Tamil and make sense out of it!

Factor-0.72 released

From the changelog:

  • Tuples.

  • Improved Windows port, thanks to Mackenzie Straight.

  • Improved web framework, thanks to Chris Double.

  • Beginnings of GUI toolkit -- try running examples/gadget-test.factor.

  • Automatically-resizing hashtables.

  • Doubly-linked mutable lists, thanks to Mackenzie Straight.

  • SDL-ttf binding for anti-aliased text rendering.

  • SQLite database binding, thanks to Chris Double.

  • Improved jEdit plugin.

  • Optimizations, bug fixes, cleanups.

Since 0.71, an x86 assembler is also available. I plan to write some Factor code after Bihar elections. CL is another language that I want to learn. Hmmm... elections... I hate them.

Friday, February 18, 2005

Jaggu dada to Chennai...

Was surprised to learn that Jagan is actually heading to Chennai and not Mumbai. He has joined HCL and will be working on storage.

Bloggomania is catching on in my team. Now everybody has one. Only Raju (our enthusiastic office attendent who is like a living google when it comes to day-to-day info) is left I guess. Will talk to him tomorrow :)

Thursday, February 17, 2005

Goodluck Jaggu dada

Today is Jagan's last working day in ETV. He'll be moving to Reliance.
Good luck and best wishes to him.

Terrible day ...

Terrible day so far. Up and down to the PCRs,
fighting with a crashing Viz|RT and the list goes on...
Durga's was even bad. He had to give a presentation to the
NCs and the location was changed three times!

Tuesday, February 15, 2005

BGa weds Saroo...

On the 13th, BGa married Saroo. We all (our team) went to the reception. BGa was looking great and Saroo was looking like an armoured vehicle. 'll have to admit it - getting back to work after a good dinner was very difficult indeed.

Saturday, February 12, 2005


Arisimootai, Happy Birthday!

Tuesday, February 01, 2005

Designing and Writing Generic Facilities: A C++ Challenge

Sample chapter from Herb Sutter and Alexandrescu's book "Exceptional C++ Style".

Saturday, January 29, 2005

programming with GNUstep - demo

Check this out for Nicolas Roard's flash demo.

Monday, January 24, 2005

Thinking Forth online!

Leo Brodie's Thinking Forth book is online. Even though it is for Forth, it is well worth the read.