Categories:
Sunday, 18 January 2004
Second PIM Meeting and the life after KDE 3.2
Hmm, haven't written something in a while, but now that KDE 3.2 is tagged and branched, I think I should give an update. Cornelius has already described everything that comes into my mind these days (and yes, picturing Zack without dreads scares the hell out of me as well...).
Read More
Saturday, 17 January 2004
Categorizing Classes without Namespaces or Packages
Tjansen
|
This time it started with a a thread on kde-core-devel: I wrote about using classes for organizing functions and later wondered why I am using static class methods - that's what C++ has namespaces for. I think the answer lies somewhere between the way I am using namespaces and the way tools like Doxygen organize the documentation. I am using namespaces in a Java-package-like way. They are a coarse categorization for classes, with 5-50 classes per namespace. That's what I am used to from Java, and it makes a lot of sense for classes. It would be possible to collect functions in namespaces instead of classes, but then you would have to browse through both the classes and the namespaces in Doxygen-generated documentation. Having two kinds of categorization is just too much, it makes documentation too hard to read and code too hard to find.
The C++ syntax does not really help you with organizing your code or reading other people's code, especially if you are not using an IDE. It's hard to find out in which file a symbol is declared, and even more difficult to find out where it is implemented. Functions and global variables are the worst, unlike classes they usually do not have their own header. Avoiding these problems requires quite a lot of discipline, you need to keep a consistent naming scheme for all files. This does not help when you work with someone else's sources though. Another part of C++ that I don't like is the separation of declarations/headers and implementation. I hate typing more than necessary, syncing headers with the implementation can be annoying and the stupid #ifdef protectors that you need to write in every header are just braindead. Two features in Java that work really well are packages and the source file layout. When you have a class My.Library.Helper you are required to write both implementation and declaration into a file My/Library/Helper.java. This makes it easy to locate the implementation. As everything in Java is in a class there are no problems with locating functions. They are static methods and can only be invoked by specifying the class name (e.g. Math.round()). This is annoying to type, but makes reading someone else's source code much easier. Unfortunately Sun recommends to use a reverse DNS name as package name, and when you follow it you will have to hide your source code somewhere in a deep directory hierarchy. Unless you are writing a library I would suggest you to ignore Sun's advice and use a short one-step package name.
Read More
Saturday, 17 January 2004
Changes
Winter is the time of changes. It is because I made it so. Some of you might have been taught that it's a different season, but for the sake of my argument we'll assume that I'm correct and all the others are wrong. It's like going out naked and people questioning that. Good, I'm glad you're with me on that. I was bored two days ago so I shaved my dreads. Actually I shaved my head, but I figured that it'll sound much cooler if I'll say "dreads" instead of "head". Looking back I might have decided to do pushups or something more productive like fingerpainting, but it happened. I'd post some pictures but because my cleaning lady is sick (I think she's real sick because I haven't even seen her once. They do come with the apartments, right?) I can't find my bluetooth connector to upload some pics from my phone. I took half an hour off today and created a homepage at my automatix.de location. On Tuesday I'm leaving for LinuxWorld Expo. Six of us is going out on Tuesday, which is rather scarry, because I have a new vector quantization algorithm for images, Geiseri his connector and kjsembed, Matthias is the ultimate source on Qt news, Mathieu is Mathieu and that's scarry in itself, Jason can't eat almost anything and Nadeem doesn't eat the stuff that Jason can eat. So we're pretty much covered on the conversation and food front. It's going to be a lot worse on Wednesday when all of us are meeting. Currently George counted 14-20 (for those less fortunate: it's not -6 in total) people. I'd write more but I remembered that I haven't eaten anything today. The friend that used to be feeding me quit that position and I have more important things to do than eating.
Read More
Thursday, 15 January 2004
http://linux.conf.au
I'm at http://linux.conf.au in Adelaide.
Yesterday I went to two tutorials - Keith Packard's talk on cairo ( http://www.cairographics.org ) and Malcolm Treddnick's talk on the Gnome Libraries. Cairo is a really interesting concept - lots of possibilities for 2D graphics rendering. I'll have to blog on that seperately.
Read More
Monday, 12 January 2004
Linuxworld banner art is FINALLY finished
Geiseri
|
I never thought this day would ever come, but finally I got enough together so I could get the banner for linux world ordered. Its only been on hold for 3 weeks now as I've tried to extract useable artwork out of various KDE people. Finally after some sincere and direct prodding tackat was able to produce a pdf file that was able to scale to the size needed for the banner.
Read More
Sunday, 11 January 2004
3.2, PR
Aseigo
|
more fun in the world of hacking on odds and ends for 3.2 ... just finished up a kfiledialog patch. fun stuff. on the other side of life, just got through listening to the Linux Show this week where ESR and Dennis Powell slag KDE with all sorts of stupidity. i'll be happy to remind those two dolts of their empty headed predictions in a year or two. heck, i'd be happy to school them in public discussion today. they apparently lack good grasp of the facts, but i suppose that's never stopped people (especially those two) from opening their mouths. so be it... time to send a patch for perusal to kde-core-devel.
Read More
Sunday, 11 January 2004
Combining the Advantages of Qt Signal/Slots and C# Delegates/Events
Tjansen
|
My favorite Qt feature is the Signal/Slots mechanism. Before working with Qt I only knew the horrors of Java's event handling by implementing interfaces, and libraries that worked only with simple functions but not with class methods. Qt was the first library that allowed to handle an event in a method of a specific object instance - which is what you actually want most of the time. Unfortunately Qt Signal/Slots are not really well integrated into the language. This is mainly due to the preprocessor mechanism that works only on the declarations. Thus the declaration syntax is fine, but the use of signals and slots in the definition has some problems and limitations:
Read More
Sunday, 11 January 2004
kdedevelopers e-mail feed, thinkpad KMilo plugin, proofreading and top secret KDE groups!
Jriddell
|
kde.me.uk has some things of mine on it.
kde.com's e-mail feed of KDE dot news died along with kde.com so I set up another one for dot news and added debianplanet.org and kdedevelopers.org. email news feeds. KDE dot news are planning on adding their own e-mail feed so that one may dissapear.
Read More
Saturday, 10 January 2004
Amazing KDE
This week brought a couple of new exciting things to KDE. Having a closer look at what was announced these days I'm pretty amazed.
It started with kde-apps.org on Monday, the followup to the highly popular kde-look.org. On Tuesday we got KDEPIM on Mac. Wednesday brought integration of native KDE widgets in OpenOffice. On Thursday we saw a nice interview about Qt styles for Gtk apps and the announcement of KDE ioslaves for FUSE which basically means that they are now accessible by any non-KDE program, OpenOffice only being one of them. On Friday Zack released his QtGtk library which allows to use all the fancy stuff of KDE like the file dialogs or DCOP in Gtk apps. KDE seems to become the integrative desktop. That's good news. Let's see what will happen on the weekend...
Read More
Friday, 9 January 2004
Hooray for managed code
Tjansen
|
For a long time I have hoped that managed code will beat statically compiled code one day. Managed code can make software more secure, CPU-architecture-independent and makes it easier to generate executable code. The only remaining problem is the performance. Theoretically managed code should be faster than native code that the linker does not understand, because of the better optimization opportunities. But in practice and especially in public perception it always trailed behind. The benchmarks published by OSNews suggest that, at least in the commercial space, managed code is already competitive and can beat unmanaged C code. The nice thing about the OSN article is that it's probably the first time that someone was so (stupid|brave) to violate Microsoft's licensing agreement and publish benchmarks for C# - but even Java did very well against gcc.
Read More