Older blog entries for Uruk (starting at number 7)

GTKeyboard 1.0 is now in the works - I've ironed out a few bugs that have been sent in to me from users, and I'm working on cleaning up the code, testing it as much as I can, getting the word out for other people to test it hard and send me the results, etc.

I have no idea when 1.0 is going to be finished, I'm hoping in about a month or so. All test results are appreciated as well as any constructive criticism about the GUI layout and so on.

Other than that, school, work, school, school, work, etc.

More GTKeyboard code hacked today - things are looking good so far. I fixed more long-standing annoying cosmetic bugs, and fixed the odd segfault that was reported recently by a user.

I probably need to go through a few more rounds of hunting and fixing before I release 0.99 which I hope will be out before the end of the week. I'm on spring break from school this week, which means the code is calling me...that is, if I wasn't going to be working twice as much at work to make up for that time. :(

Things are moving right along though.

Fixed several *really* annoying cosmetic bugs in GTKeyboard. I just added the ability to, via the menu system or via the configuration file, show/hide arbitrary elements within the keyboard. (F-keys, cursor keys, number pad, main keyboard). I was having a lot of small cosmetic problems with things such as:

Hide the number pad, and change the layout file to a german layout. The number pad keys pop up after the new keyboard has been generated, even though it should still be off.

I also made some fixes to the methods to show everything with respect to the subcategorization of widgets on the keyboard.

Somebody at GNU emailed me today asking me to verify a lot of information about GTKeyboard. Seems they're starting a database of GNU software. Sometimes their software page seems oftly full, so I guess that's a good thing to start subcategorizing and so on. Organization, and all that good stuff.

So it's looking like a hearty round of bug-hunting and responding to feedback, and then version 0.99. Or maybe there's something I'm forgetting...

Well, yesterday I came across a very cool GPL'd library called HRE - it does handwriting recogition with X11/UNIX. It was originally written for Solaris, and the code really showed that. Old K&R style everything, and Makefiles in a strange format that I was suprised GNU make knew how to interpret.

It took me about 2 hours, but I ported it to linux, and it will compile and run now under linux. I also ported a small Xt program that came with it to demonstrate the library. Some of the stuff in the Xt app doesn't work right yet, but the first pass for porting was just "get it to compile, dammit".

I'm going to be checking out the API (there's a ps doc that came with it) to see if there's anything there that might want to make it's way into another application of mine.

Very, very cool library. I'm looking forward to screwing with it. :)

Useless fact of the day: Yesterday, while I was supposed to be studying for an exam, I was actually playing around with a mathematics proof - I went by the prof's office this morning and verified my proofs, did that whole "peer review" thing. Did you know, that for an arbitrary closed polygon with n sides, (n >= 3) the number of diagonals that it is possible to draw is [ (n*n) - 3n ] / 2 ??? Not only that, but I can prove it 3 different ways. :) How the hell do you tell your professor that you're not going to do well on the exam because you wasted your time working on a math proof for fun? You don't. At least not with my professors.

Finshed rewriting most of the file handling code in GTKeyboard - I really, really hate writing string manipulation stuff in C. It's like pulling teeth from a rabid cheetah. I don't think it would be so bad if I hadn't learned perl, but since I have, and I know what it COULD be like, it's hard to get used to slogging through this stuff in C. And I'd love to use an external library to do the dirty work for me, but I don't want to tie the program down to any more external dependancies. Oh well.

It's coming along well though. I have spoken to several on again, off again contributors, and we've decided to release 0.99 once we're done stabilizing a few features. After that, it's bug fixing, code cleanups, and a 1.0 release.

After swapping some emails with a few people who have been contributing patches on GTKeyboard, I've decided that a lot of the code for handing resource files needs to get the axe. I've had a good submission using a different method of file handling, which I'm planning on using for the next release. I'm looking towards having one 0.99 release, hopefully within a few weeks, and then moving onto 1.0 after a few things happen

- Code cleanups. There's a lot of debugging code strewn about from older versions that needs to go.

- UI changes - pieces o the GUI need to change as they are not expandable and are, uh, well, a little bit ugly.

- Bug hunting and fixing. I'm hoping to have some intermediate features finished by 0.99 and ready for final bug testing by 1.0

*Sigh*. Just read the new stuff about the problems people have with the trust-metric system around here. I'm just hoping that people don't fall prey to slashdot syndrome, i.e. taking this too seriously. I think that advogato, (I keep *thinking* advogato, but my hands keep typing "avocado" :) is great, and the trust-metric system is quite interesting, but that none of it should be taken too seriously. I hack my projects because it gives me pleasure, and I hope other developers are doing their respective projects for the same reasons. Do you think Alan Cox or Miguel would quit hacking if all of a sudden they were rated as Apprentices tomorrow?

This type of problem makes me want to go back and reread the section of "Homesteading the Noosphere" that's about ego in developing. I've always thought that ego really doesn't play much of a part, but maybe I'm wrong about that. I hope I'm not.

Just getting into this whole diary thing - I think I'm probably going to be using Advogato more in the future, since it seems to have quite a few nice things in it.

Well, the project that I'm hacking on, GTKeyboard, just released version 0.98.5 which has made some large steps and fixed some very important bugs. The keyboard remapping feature actually works like it's supposed to if it's given a valid mapping file, and users can add new keyboard types on the fly, instead of having to compile them in like the old versions did.

Several people from different companies have approached me about hacking the program into something that can run on embedded systems like on LynxOS, for medical devices, and for other applications as well. I'm going to be working with them quite a bit in the future I would imagine. That is not a direction that I had considered when I started the project, but what the hell. The software is getting put to an interesting use, and the people inside the company are contributing code which they allow me to include in GTKeyboard under the GPL. It's also relatively good code...

Enough ranting for now...

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!