Categories:
Tuesday, 28 September 2004
Meta-Programming Is Fun
Meta-Programming is becoming an increasingly important part of my life as a software developer. It's a fascinating way to take programming to a new and higher level. Ian has blogged some thoughts about Meta-Programming. I would like to respond to them:
Read More
Tuesday, 28 September 2004
Qt Cryptographic Architecture moves into KDE
The Qt Crytographic Architecture (QCA) was originally written by Justin Karneges as part of the PSI instant messanger. After a little bit of discussion, and an agreement on how it will work out, he's agreed to move it into the kdesupport module (KDE already has two copies - one in kdenetwork, and another in kdenonbeta).
Read More
Tuesday, 28 September 2004
So long autotools!
Geiseri
|
So I am fed up with autotools. Its possibly the worst possible build system I have ever had the displeasure of being abused by. Its probably because I never got into m4 macros, or testing the size of an int of my machine every time I try to build a project. So finally with the arrival of Package Config and QMake I can rid myself of this horrible mess. Anyone looking at the QMake documentation might discount it immediately as a serious build system. Since its VERY simple. SOURCE += main.cpp CONFIG += application debug thread Is a very simple case. Even the "CONFIG" portion is optional though because it will use the current Qt configuration if none is specified. "So okay I can build Qt apps, what about KDE apps?" you might ask. Well this is where a neat application kde-config comes into play. This application will tell us all sorts of things about kde as long as the binary is in our path. kde-config --expandvars --install lib will return location of the KDE libraries live. To get a full list of all the path elements kde-config returns just issue a kde-config --types. Now with this handy program we can use the system( ) directive in QMake to populate things like our include paths. QMAKE_LIBDIR+=$$system(kde-config --expandvars --install lib) LIBS += -lkdecore -lkdeui
Read More
Monday, 27 September 2004
Genericly doing generic things...
Geiseri
|
So about 3 months ago I took a survey of some of the projects I have been using meta-programming techniques with and decided on two basic things: a) Meta-programming can make tedious error prone development faster, easier and more reliable. b) Maintaining meta-programming tools is not fun. I have 2 KDE projects Krafty and makekdewidgets, that both extensively simplify building a component via a processed template. They are awesome tools, and makekdewidets is so flexable it will even work with Qt only widgets. The problem is maintaining these tools is a liability. Maintaining code within code is nightmarishly complex, and involves quite a bit of madness with copying and pasting in and out of test programs. Worse, it seems that over time the code just flat out gets harder to read and organize. The other issue is the matter of input files. Believe it or not XML is not always the best solution, and same goes for flat csv files, or INI files. I also have yet to meet anyone who recreationally programs in lex and yacc so custom parsers are even more painful. Cornelius Schumacher has done some interesting stuff wrt to KConfigXT and meta-programming, as has Rich Moore in using XSLT to generate bindings for KJSEmbed. I quickly grew tired of XSLT though, its constant brain damages, and completely bizzare constructs made the templates as hard to maintain as just embedding code in C++. Also its reliance on using a xml file for input killed its usefulness for things like makekdewidgets or krafty. So with that in mind I have been trying to explore a tool that can solve my big problems:
Read More
Monday, 27 September 2004
Logitech mouse support
I've finally started work on the special support for Logitech mice (eg 400cpi/800cpi switching, wireless status reporting). I'm integrating it into the Mouse KCM (kdebase/kcontrol/input), with a conditional build on libusb.
Read More
Saturday, 25 September 2004
WARNING! Power user at keyboard!
Uga
|
There are some days when one shouldn't touch a computer keyboard. Today must be one of those days. But we'll never learn, and we'll keep doing these stupid things once, and again, and again. It must be Murphy who probably wrote:
Read More
Friday, 24 September 2004
Update
Lately I didn't have too much spare time, but I've been working a little bit on the Qt Mozilla port yesterday and today. I finally figured out why we've been getting paint event storms but I haven't yet implemented it as it's a fundemental flaw in the way I wrote nsCommonWidget. I'm still waiting for a super-review to get CVS write access on mozilla.org to commit this stuff. Hopefully it's going to happen over the weekend. Also hopefully by then I'll have the paint event storms and offset bug in the toolbar fixed.
Read More
Wednesday, 22 September 2004
More Ruby blocks
Michael writes more about ruby blocks:
What I have yet to do, however, is find a way to get braces to work with if, while, or other flow-control type statements. For example, the program yes implemented in Ruby:
Read More
Wednesday, 22 September 2004
Ruby blocks
Michael Pyne is learning ruby.
Call me stubborn, but I am so used to { and } for forming blocks of code that I don't even want to go back to anything else. Python neatly sidesteps the problem by not having keywords for this sort of thing. Although I'm not fond of using indentation for creating blocks, that at least works with my programming style.
Read More
Tuesday, 21 September 2004
new computer
Chouimat
|
This weekend after wanting to have one for about a year, I finally got a laptop (iBook G4 12").
and my first reaction is WOW what a nice piece of hardware... after playing with macosx for about 45 minutes, the call of Linux was starting to be too strong ...
Read More