ksandstr is currently certified at Journeyer level.

Name: Kalle Sandström
Member since: 2000-08-26 19:40:57
Last Login: N/A

FOAF RDF Share This

Homepage: http://www.iki.fi/ksandstr/


(I'd like to state for the record that my native language isn't english, so whenever I'm not making any sense just blame my writing. [this is also a damned convenient way to fight flame wars.])

I am currently employed in a small-to-medium Finnish database service company doing system administration and application programming (mostly internal, private applications -- no actual proprietary angle). It pays the bills.

Politically I'm a firm believer in the Free Software cause and a near rabid GPL pusher.

I have been keeping an irregularly updated weblog for a few months now. There may be more useful stuff there than here.


Recent blog entries by ksandstr

Syndication: RSS 2.0
Thoughts on compilers and such

While prototyping miscellaneous stuff with O'Caml (it's quite a neat language for that [among other things], if you can mentally push aside the 31-bit signed integer thingy), I noticed that there are some rather common (in the semi-functional language world anyway) ways of further optimizing code that the ia32 compiler doesn't seem to know about. Closure inlining in a "map", "iter" or "init" construct and instantiation of certain functions where the function has been partially applied to a constant parameter that would cause significant strenght-reduction (or other) gains in the emitted code, just to name two. Then again, I haven't examined the output to see what the compiler does at different "-inline" levels, so there's no telling what I may be missing... I'm a bit surprised though that the compiler that gets second place for many weightings of the ``great computer language shootout'' scorecard doesn't implement the closure-loop inlining thing, seeing as function calls through a pointer are somewhat expensive when compared to function calls to a fixed address.

Maybe I'll take a look at the compiler's source later on, just for the hell of it.


Why do I always get most work done a couple of days before a deadline? And why is most of the work that I do right before said deadline of the "this bit was misdesigned in the first place, so I'll reimplement a better version of something equivalent in one fourth of the source lines" kind? Do I really suck that much? :-)

19 May 2002 (updated 19 May 2002 at 18:49 UTC) »

Phew. It's been a long time since the previous entry. Let's see if I can't make up for it.

Got a job. It seems nice enough, although I've been spending my working hours mostly on "the premises of the client", whatever that means. Forgot to check the employer for particular worthiness in the area of patent policy, but it doesn't seem that software patents are in any way central to anything they (we?) are doing. And having money under a rock somewhere is certainly very nice.

The laptop mentioned in the previous entry (an IBM 560Z) is actually pretty good. The only minor complaint is that I'm getting slightly worried over the fact that the fan in the left edge of the "keyboard part" only seems to function during early startup, i.e. after the machine starts to run LILO it stops and doesn't start again, ever. I've only had the keyboard get warm a couple of times, so this probably isn't all that significant. I'm slightly more worried that the early startup process doesn't display the "press F2 to enter setup" or whatever it was in the top edge of the screen like it used to (or am I misremembering things again?).

As for q:laruisku, I wrote a "DisplayKit" abstraction so that the program can select between a SDL framebuffer implementation of certain 2D drawing primitives and an OpenGL wrapper. This seems to be working pretty well this far, although I feel that the SDL framebuffer impl could have better low-level blitting loops... then again, I likely shouldn't pay so much attention to their particular efficiency at this stage of the project. Once I actually get something resembling a rocket game on the screen, I'll make the first source release, after all these years. "Release early", indeed.

Also, I took a look at the XPLC component framework thing. Apart from the somewhat disgusting IInterfaceNamingStyle (also the functionNamingStyle), I think it might be something worth keeping an eye out for. Assuming that the virtual method call ABI in G++ doesn't suddendly change, of course...

On the "life" side, since the last diary entry I tested for the 6. kyu grade at our Aikido dojo, exactly 3 months after I started training there. Looking back, I wasn't by far as nervous about it as I am about my upcoming 5. kyu test... I'm still finding it to be much fun, though, and my ukemis are getting such that I barely feel like I've been doing any when I get back home :-)

19 Nov 2001 (updated 19 Nov 2001 at 02:51 UTC) »


Got myself a cheapish used laptop for about 670 euros -- a ThinkPad 570Z. Debian GNU/Linux installed from over the network with the 3-disk "compact" set on the first try (which is also a first for me -- I usually end up messing something up at first...). The keyboard on this thing is nice enough for some typing (although the auditory feedback just isn't there) and the 800x600 TFT screen doesn't seem to be causing me any head or neck aches so far. It remains to be seen if this laptop is any good for long hacking sessions -- the battery seems to last for about two and a half hours when the CPU is mostly idle.


q:laruisku is coming along pretty well, I think -- I took the easy route and neatly encapsulated the Airhook reliable datagram protocol so that I could concentrate on the structure of the actual game instead of spending an awful lot of time on a problem that has already been satisfactorily solved. Now I'll just have to figure out how to encapsulate the physics model in a clean way and make the server transmit sufficient game state information so that the client can actually draw frames that actually look like something... Then I'll start posting CVS snapshots on my home page, or something. Hopefully I won't get tired of this project before I release something that actually works.


I quit my new job after I found out that my new potential employer has a patent policy that's incompatible with what I personally believe in. That's one more thing I'll have to remember to ask about in the next interview... I'm just hoping that this was really the right thing to do, as I seem to have hit a few snags in finding a new job; there aren't that many openings for a generic C/C++/perl programmer here at this particular time, especially with the few (i.e. none, apart from some work experience) formal qualifications that I have. I suppose it'll just take me a bit longer to find a worthy employer...
7 Oct 2001 (updated 7 Oct 2001 at 18:46 UTC) »

So, they've started bombing Afganistan. Bastards, complete, utter, goddamn, motherfucking, inbred bastards, the lot of them.

I'm giving the U.S. state-terrorist retributive operation a new name -- "Operation Indirect Genocide". Guess how many times the number of people are going to die of hunger, disease and other stuff that tends to occur when about six million refugees are on the move than died at WTC? I expect the total bodycount will be somewhere between 4,000,000 and 9,000,000. "A battle between Good and Evil", in-fucking-deed.

I don't get it. Why put XML into everything under the sun? Haven't we already tried the "one size fits all" approach to programming languages, operating systems, desktop environments, operating system kernel designs and pretty much everything else? Why try it on data formats? What's so wrong with the format of the Makefile that we know and love that you'd want to move to a format that is about as much fun to write by hand as COBOL (I'm referring to the ant Java build tool, not that I'd touch Java code in the near future, thankyouverymuch)?

Sigh. Will we ever learn?

I restarted the old q:laruisku (that's something like ``cannonball syringe'' in english, for a rough translation) project, a network-playable rocket game in the spirit of Turboraketti and Gravity Force 2. Maybe I'll start putting up CVS snapshots at some point, once I get the client to actually display something... This time I'll definitely use OpenGL for the display -- wasting a couple of weeks writing alpha-blending rasterization functions for a SDL framebuffer surface isn't something I'm particularly planning to do.

25 older entries...


ksandstr certified others as follows:

  • ksandstr certified wwwwolf as Apprentice
  • ksandstr certified ajk as Journeyer
  • ksandstr certified voltron as Apprentice
  • ksandstr certified lerdsuwa as Journeyer
  • ksandstr certified jao as Apprentice
  • ksandstr certified shd as Journeyer
  • ksandstr certified ks as Apprentice
  • ksandstr certified keverets as Apprentice
  • ksandstr certified julian as Journeyer

Others have certified ksandstr as follows:

  • ajk certified ksandstr as Journeyer
  • voltron certified ksandstr as Apprentice
  • lerdsuwa certified ksandstr as Apprentice
  • jao certified ksandstr as Apprentice
  • binaryfoo certified ksandstr as Apprentice
  • khazad certified ksandstr as Apprentice
  • ks certified ksandstr as Apprentice
  • shd certified ksandstr as Journeyer
  • angelsun certified ksandstr as Apprentice

[ Certification disabled because you're not logged in. ]

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!

Share this page