Older blog entries for ksandstr (starting at number 4)

After studying lisp & scheme with the aid of librep and the documentation available, I have come to the conclusion that breaking the habit of "hmm, I think I could shave off a cycle here, maybe avoid a branch there" and thinking about things as mathematical functions instead of a list of statements is PRETTY FUCKING HARD. It looks like I've spent the last 5 years of my programming time concentrating on stuff that isn't relevant because the program would spend 99% of its time elsewhere. Or maybe it's just laziness manifesting itself in reluctance to write the rest of the program. Lack of self-discipline would probably be one reason, too.

Or maybe I'm just feeling pessimistic, as usual, or something. Dunno. I guess I should put more effort into finishing distance/evening school and then going on to study computing science or something that would give me an actual education instead of "I've poked this and this and this and this and hacked this and this and this and this". The downside would be that at the current rate, I'm never going to finish school and that even if I do, formal education would still kill the fun in hacking... So maybe I'll just use books as a substitute, or something.

Damned if I remember who said it first, but HTML really needs a <RANT> tag.

Hacking

Bought an old C=64 "home computer". Old model no less, with older version of the kickass SID chip. No PSU or cabling, just the keyboard-and-mainboard-combined bread-box unit, which doesn't bother me one bit since I only need a second C64 for spare parts (in case I happen to fry the CIA or the SID chip while connecting the audio-out to an amp).

I'm planning to do some assembly hacking on it, maybe write some software to drive a small LCD panel (1 or 2 rows or so), possibly some small music experiments with the SID. I'll definitely experiment with blowing a new ROM for it :-) Since I don't have a PAL monitor (or room for one, for that matter), I'll have to do the programming bit on my PC and run tests using VICE. Which isn't a problem either, since VICE seems to do a decent job emulating a serial port. The only problem is that LCD panels with a serial interface cost an arm and a leg...

Hacked a simple vblank interrupt yesterday, but I suspect that it won't provide enough precision to play music with, so maybe I'll implement the BogoMIPS loop in 6510 asm next ;-)

Life

Did I hint that I have one? I don't. Kaapo & Attila (our two budgies) are happy, considering that the days are getting a lot shorter than they were in June. Not that you're interested, anyway.

Tech

Ack. Found out that I've been neglecting my own projects and spending way too much time thinking about work stuff on my own time. Must fix soon.

Ended up IDLing a half-assed replacement for the CORBA event service and implementing an Observable mixin class using omniORBpy. Learned along the way how to use Anys with the CORBA python binding (assuming that omniORBpy's interface is compliant enough...). Now I just have to write it again in C++ just so that I can write implementations for Observable-compliant classes in it. Ugh. The transition from Python is going to be rough.

Still no viable Python bindings for ORBit in the debian unstable tree. Sigh.

Life

Still don't have one.

Ugh. I probably shouldn't be writing this, but what the hell. Being tired and having missed about 18 hours of sleep during the last 7 days gives a good excuse to rant mindlessly.

So, it's been precisely one month since my last diary entry. Whee. Nothing much has happened at work, but still I'm feeling overworked, underpaid and severely irritated.

omniORB3 looks pretty good. Shame that there aren't any debian packages available that I know of. The Python binding for omniORB also looks pretty damn convincing; at least for purposes of rapid prototyping. I've had some misgivings about the python interpreter's habit of keeping reference counts of python objects (thinking that it'd be slower than the mark-and-sweep GC commonly used in JVMs), but after running some tests using a CORBA object factory server written in python I can say that no, python doesn't seem to leak memory provided you do things the proper way (i.e. paranoid del's in the main program and such). Besides, it seems that a group of, say, 10 python statements would do a lot more than 10 statements of Java, let alone C++.

I still don't understand why it was so important to have strong typing in Java. Since most JVMs do a good bit of checking and validation and other things to java bytecode before execution, I wouldn't imagine that it'd be a big problem to do some crude type resolution in the bytecode validator. To me it looks like Java combines the disadvantages of both strong typing (which tend to make the average non-trivial line of code longer than 80 columns [casting, methodsThatAreWrittenLikeThis, ...]) and a bytecode compilation pass (loss of meaningful source code as well as the information contained therein that would give a smart JIT compiler an edge).

Looks like this diary entry became a rant about my pet peeves regarding Java. Oh well. Time to catch some shut-eye. (also, it looks like I kept the promise I made earlier on, the one about ranting without focus...)

Aww crap. Looks like nymia went ahead and commented the "getting rid of files" article to the same effect that I would have. Saves me the trouble, though. The comment also reads much better than the incoherent drivel I would've spewed forth :-)

Since I'm probably going to write stuff about my current research[1] and other interests, I might as well start right now...

Spent a few days (the 19 and 20th days to be precise) studying omniORB. It's funny how the version 2.8.0 Debian package is in non-free when the newest version is licensed under the GNU licenses; I ended up removing the debian packages and compiling it by hand. Looks like they have made lots of improvements (POA, many CORBAservices, other neat and 2.2-compliant stuff), which is nice.

I also spent a few hours today (aug 26th) fruitlessly trying to install orbit-cpp, just to see if it was the better choice for my purposes. Couldn't get it to compile a POA-compatible servant so either I'm not paying enough attention and botched the installation at some point (which is likely), or I've laid my dirty paws on pre-pre-pre-alpha software. Anyway, even if I can't use orbit-cpp right now, I figure that if I write my servants for the POA, they ought to port to the future orbit-cpp system with minimal pain. I'd really like to use ORBit since

  1. it's used by the GNOME people, So It Has Got To Be Good,
  2. that also means continued development and
  3. I like the idea that there's only one set of libraries providing ORB functionality in my system most of the time.

Perhaps in time orbit-cpp will also mature and grow some of the standard CORBA services (you know, LifeCycle and its brethren) and all that stuff. In the mean time, omniORB looks like the ORB of choice for me, both philosophically and technically.

[1]Code word for "what I'm currently poking because I can't think of a better way to spend what little free time I have"

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!