Older blog entries for kai (starting at number 15)

Hacking

After starting to port my circular treemaps code to Java and realising that Java2D is just too slow for the task I've put together a snapshot of my Gtk+ version, which uses Freetype 2 for rendering. A few days ago I downloaded the Anti Grain Geometry graphics library and I'm very impressed so far. Used wisely it should be a good basis for an interactive circular treemap file system viewer. All in all the total confusion regarding hacking is gone, or at least i got a plan for my pebbles code...

Every once in a while I have big trouble with time management. In fact, it happens quite regularly. In those moments I'm thinking of better ways to represent calendaring information and to integrate timeline-based information visualization into user interfaces. Most of the time I end up just printing out my old PostScript-based calendar, fill in the dates and put it on the wall.
I like those calendar year views very much where weeks line up neatly and the flow of time is easy to see. Last year I coded a little Java prototype (screenshot). The prototype has no function whatsoever, but I like the visual design. The main idea is to use this layout as a basis for visualizing stuff like mailing list threads, stock prices, server statistics, etc. Another good point is that it could be used for a zoomable user interface since a day view can easily use the long vertical space each day in the year view gets. Teaching myself a little PHP and CSS I made a PHP version of the same layout earlier this year. It's a good example for how different browsers realize CSS-support :-(

There was a lot of talk about file management on the old Linux Interface Project's mailing lists. One of the ideas which I still miss in contemporary packages is the ability to aggregate files of the same type to a single icon. You would select an entry from the context (or main) menu, saying something like "pile up JPG images" or similar and the files of the respective type would then be represented by a single "stack" or "group" icon, instead of beeing scattered around. A special option would be to collapse/expand "hidden files" which would IMHO be much more convenient then various ways to select "show hidden files" today. On the piled-up icons a menu entry would appear which allows to unpile the stack. See the mockup. Under the pile icons a file-type depending summary would be shown, such as "12 PNG images, 6083 KB" or "5 mp3 files, 24 min".

Programming can be painful at times

I've decided to do some work on the Gtk widget for pebble treemaps before I jump on to learning Ruby and giving the Linux Interface Project file manager a try. I'm in trouble though and need some help:

Even though I've written a little Gtk widget in C before, have looked at quite some Gtk+ application and almost finished the Gtk 2.0 port of the TOM language bindings I'm still totally lost when I have to write a new class in Gtk. There are probably people who can type very fast and write all this stuff by hand, but given that it's almost intirely redundant code I guess most people use code generation or macros to do the job. I was thinking of using m4 and I looked at GOB but didn't quite like the approach, even though it's certainly better then doing everything by hand. Today it occured to me that it's probably better to use the built-in capability of the code editor to spit out the code, XEmacs in my case (though I've lately used Anjuta). I tried to find some information about using Emacs Lisp to write code for me (tutorial style since I'm new to Lisp) but didn't find anything, tried to find Lisp macros/functions to generate Gtk classes, inserte signals and methods and such, found non. Maybe I just tried the wrong queries?

If you're using (X)Emacs and have succesfully deployed Lisp to write Gtk code in C without typing it in manually I'd like to hear from your experiences, maybe you know of some sites where these things are explained or where I could download Lisp code that makes programming Gtk less of a burden. I'm grateful for any help!

Life: After more then 5 years I'm now studying mathematics again, giving it a second try. I've taken 3 classes this term: analysis, linear algebra, and computational mathematics. One week (and one examn) to go and I'm pretty tired. Studying math is definitely rewarding - feels almost like getting an upgrade for my brain :^D I think it'll help me with my programming skills as well in the long run but for now it's adding to the confusion. Last time I tried to study math my personal situation made it impossible to continue and I often felt like being caught in an endless loop since then. Things started getting better when I moved to Berlin and it seems I'm back on track now. Should do more sports, though ...

Free Software: Last fall I've contributed to a PHP/mySQL/X*L portal engine project: cyx5 and learning a little SQL was very interesting (as was having my first exposure to XSL). Maybe I'll have some time to hack on it again during the next two months.
What's cool about it is that it actually started out as a distributed team project - unlike most successful Open Source projects out there. It's a way of working I very much enjoy, and I fear it's the only way that works for me at all - I'm just too unorganized to be productive in isolation for a long time. Maybe that's something mathematics is going to help me with, too.

Programming

The following quote is from a document describing a calendaring architecture but I think it's a good rule for a much broader set of applications.
[Jan Grant] : The system's algorithms should be capable of operating in a mode where instant responses to requests are not required. That is, state transitions should not merge a request and a response.
Get used to writing programs this way. When half of the computers you're talking with are on Mars, it'll all be like this.

Syncronous, control-flow based languages make this hard, though.

Life

It's always better in the summer :°)

Web-mining

I'm looking for a tool to extract structured data from semi-structured web documents, identifying records (and hopefully fields) by learning extraction rules automatically or semi-automatically from multiple-record web-pages. I only found some research papers, can somebody point me to a Free Software tool to start with ?

With every day, Google seems to become more PDF/citeseer-infested, but there is (almost) no competition left, sigh.

LCDs

raph: Don't worry, marketing will coin a cool term, probably something containing "double", "ultra" or so ...

Coding

Linux Interface Project: Too hot for coding. Circular treemaps will have to wait.

During the 1990s Ben Shneiderman of the Human-Computer Interaction Laboritory (HCIL) at the University of Maryland invented Treemaps as a compact visualization of directory tree structures. Treemaps involve turning a tree into a planar space-filling representation using assorted boxes-in-boxes algorithms.

I've lately coded on a new, fresh, evolutionary dead-end approach to disk-usage visualization using nested circles instead of boxes: circular treemaps or pebble treemaps.

On the weekend I set up a page with explanations and screenshots about pebble treemaps.

BenFrantzDale: Don't think about it rationally: Sony Z7, though a reviewer points out: "If you are new to the Sony phone range, you will definitely find it different to your Nokia, "[snip].</plug>
nymia: (Re)using code for a Flash clone: besides Xr and xsvg I'd like to point out aztec, a GPL 3d modeling and animation program containing a nicely written scene graph library and some other things which could be of use for 2d vector graphics animation.
30 Sep 2002 (updated 30 Sep 2002 at 10:46 UTC) »

Life

Three weeks ago a robber attacked me with a hammer. He probably wanted to struck me down and get into my appartment. A couple of days ago I had a nightmare. I awoke by the sound of a hammer hitting my skull. I hadn't remembered that sound. The wounds are healing nicely, though. Of course the police didn't catch him.

I got trouble with my lungs so I'll be taking antibiotics for the next three months.

I've got some very close friends I can talk with about many things like politics, music, or life in general, but nobody in my surrounding is interested in my other interests: information visualization, human computer interaction, and pattern languages. Sometimes I wish my former arrogance back so life on Elba may become less hard.

I've been pretending to be sleeping for a long time. I don't even quite remember what it feels like to be awake. I think it was quite cool. Maybe I should have some lucid dreams again, singing and dancing until I'm back in this place and at this time.

Programming

Having to work alone hurts. I'm not very productive working alone, either. My projects are stalled. Last thing I coded was a cute hack modifying the KDE color scheme control panel which wouldn't get accepted anyway but I might put together a page of things that will never be including a screenshot eventually. Last time I wrote a significant amount of code was after a bottle of good red wine. The next morning was a desaster so I'm not going to do it again anytime soon.

The imperative "show me the code" is pointless, yet not new.

I read halfway through a book on Java and doing some examples was fun, nice libraries. Doing it in Windows was not so cool.

Certs

I think the new diary rating system is annoying, but I realize it's point is about research so usefulness is of little concern. Advogato has become a monological environment, very sad.

I do not like writing anymore.

tor: To me C always feels like a strange mix of high-level and low-level. I often catch myself rewriting things for no good reason such as:
n = 1 + strlen(s); s0 = malloc (n); memcpy(s0, s, n);
And then the head-spinning starts: Should it be inlined, should I use malloc at all, and so on. Doesn't happen to me when using a high-level language :-)
Can the code for your project(s) be downloaded (didn't find a link) ?

I'm pretty new to functional languages so it's just a mental exercise to me for now, expanding my understanding in general (learning, slowly, SML). I think that by using SML and Forth to implement some algorithms I'll become a better programmer in general (highly speculative so far).

As you are using ObjC for the toolkit, have you checked out TOM? TOM is a very balanced compiled, high-level, object-oriented language. The syntax is similar to Objective-C, it has closures and GC. TOM is inspired by Eiffel, Java, and some) I highly recommend taking a look if you havn't done so: TOM language homepage.

Fitz

I wonder if there is going to be support for flyweight nodes (instance vs. copying) like OpenGL display lists ? That would be cool! I'd also like to know what horizontal/vertical sub-pixel positioning resolution will be the default for interactive screen display ? Do you plan to support progressive refinement for slow systems ?

6 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!