Now, however much one can question the maturity of the people who have allowed this to turn into a flamewar, the basic fact is that for a "community distribution", there seem to have been some decisions made in a fairly arbitrary way. Which are they going to choose, vi or emacs?
Anyhow, happy hacking. If any more respect for KDE in your mind has been lost by this post, you and the KDE project have my most humble apologies.
Personally, I'm waiting for tools that
Since my last entry, I've gotten a hang of the MOF and UML metamodels' abstract syntax and written a MOF-to-python mapper/code generator. As I'm working on other mappers and generators (eg UML to EJB, SQL schema and HTML documentation), I'm trying to abstract out syntax tree searching and walking strategies that are common across the abstract syntaxes of various MOF-based metamodels. This should make it easier to write generators in the future and can be useful when dealing with new metamodels, eg those for domain specific languages.
Found an interesting explanation of the differences between various modelling and ontology-related terms.
I currently support version 1.4 of both MOF and UML, but most tools are using 1.3 at the moment. I have not been able to find the UML 1.3 metamodel in an interchangeable format (MOF+XMI), so I've been wondering whether to worry about compatibility problems for now (some do definitely exist). However, the existing UML metamodel is not a "strict metamodel" and leaves a bit to be desired while building tools, eg many places where the semantics of the language are not adequately reflected by the abstract syntax.
I'd like to jump straight to the proposed 2.0 standard, but I have not been able to find it in a machine-readable format either. If it appears soon there seems to be little point in sticking with MOF and UML 1.4 as 2.0 seems nicer already. New drafts of the proposed standard were posted recently, though the working group itself appears shrouded in OMG Mystery and no machine-readable format was posted.
5 Jul 2002 (updated 5 Jul 2002 at 21:25 UTC) »
When I started doing real work, ie outside academia, I automatically assumed I would work better by myself than with a team. Now after 6 months of getting my wish and programming solo I miss being able to run ideas past workmates, especially those with different backgrounds. At my last job my teammates were a mathematician, a physicist and a philosopher. O ben, O tom, O channa, where are you now.... here were guys who didn't have half the programming experience I did, but when they told me I was wrong (on any subject ranging from cutting code to politics), I sat up and listened. Now I just have my own nagging doubts to argue with. :P
In the mean time my old friend Greg is telling me that "the key to a good modeler is ontological soundness." I wonder if Aristotle would have approved of UML. Greg is one of those people who has been infected with Hidden Markov Model Syndrome, a curious affliction propogated by one of our EE professors at unimelb. (greg: pls dont hurt me)
I've created a sort of declarative syntax for specifying metamodel association constraints, eg
(uml.Package, uml.Class, Containment), (uml.Class, dgm.DgClass, dgm.Representation), (uml.Class, uml.Class, uml.Generalization),
and so on. This is used as the modeler's internal representation of the metamodel, currently these rules are specified in python code but eventually I will build a MOF parser once my XMI load/save routines achieve closer to 100% coverage of the XMI DTD.
Now I have a simple querying engine that allows me to 1) ensure the user only builds models that conform to the metamodel constraints and 2) provide custom views of the model based on configurable subsets of the metamodel constraints (eg for a tree view of Project->Package->Class->Subclass etc, like ArgoUML).
The problem is that I am extremely rusty with logic and constraint programming (having dozed through most of the CS classes :P), and all I have is general knowledge of prolog and some functional languages. This is constraining (no pun intended) my ability to write decent querying routines for the metamodel, and I'm going to have to do some serious tuning to ensure that the existing routines scale to large models.
Adding metamodels to the classic MVC architecture, however, even with my currently quite lame implementation, allows for a quite neat framework for creating a whole range of applications. Python helps with this a great deal of course. more about this later...
also working on generating interaction diagrams using python's builtin trace hook. this is an excellent and underutilized (as far as I can see) feature in the python runtime and I expect to see more of it in the future.
Tomorrow I'm going to help migrate a convent school's computer lab to LTSP+KDE+OpenOffice. Should be fun, but the real fun will be watching the kids actually using it. I expect the kids will pick it up well before their teachers do. I really hope this goes well, it could set a great precendent for more prestigious schools in the country.
recent books: Amristar (Mark Tully), The Wreck (Rabindranath Tagore), a random yoga book, Ender's game (again, for old times' sake), The Honourable Company - History of the British East India Company (John Keay), the autobiography of punjabi playwright Balwant Gargi... I went and raided the family library in our ancestral house in punjab. If I didnt have to come back to Delhi I would have been lost in there for several years, as it contains the collections of three generations of a highly bookish family. The last time I saw it was when I was 17 and a lot of those books didnt really appeal to me back then, but now.... jackpot...
1 Feb 2002 (updated 1 Feb 2002 at 21:44 UTC) »
Going to be here a few more months, which gives me time to keep hacking on my UML project (still no name, codenamed banana because I was eating one when I named it). I noticed OMG's Model-Driven Architecture proposal for the first time. The theory of this appeals to the same rationale with which I am designing this app.
I believe a good up-to-date object model needs to be available for an OO project at all times (both domain and functional). KDOC generates documentation for the models after the code is already written - this is the common approach (javadoc, other reverse-engineering tools). However the key term there is "reverse"-engineering...
Most designers (me included) who draw these models still use paper and pen to draw up these diagrams and they are rarely kept up to date even in larger projects, unless they are autogenerated. The main reason of course is that pen and paper is still the most flexible and free UI for doodling diagrams of boxes and lines. Most UML diagrammers are diagrammers first and software design tools later. The goal is to create a software design and development tool that makes the object model the central part of the project from which the rest flows, and reduce the amount of fiddling with the program required to create and apply detailed models for the project.
Anyway more rants later. the app is going quite well and will be able for screenshots soon. I luv python
Oh yeah and Goa was pretty good. The one party I went to sucked though.
I gave two one-hour talks this time, one about the KDE development platform, and one about the KDE project, similar to the one I gave at linux.conf.au in Jan.
Other things of note:
GOA BEACHSIDE HACKERY
Sirtaj empirically determines how much sand it takes to destroy a Compaq Armada laptop. Also, do Goa's much-hyped raves stack up against the competition? Our travel reporter decides!
The free time I'm able to spend hacking is going to drop to nil for a month, until I get to Delhi. Then there will be the problem of locating and procuring hack infrastructure over there, somehow I doubt my brother and father are going to let me wipe their machines and install linux on them. Almost time to purchase a laptop.
Meanwhile finans is going well now that I've overcome my issues with adding/deleting rows in a table-neutral way (lots of primary-key fudging, what fun!) so I should be able to have a preview release available before I go.
Somehow I found the time to read a collection of short stories by Jorge Luis Borges, called Labyrinths. It's a surprisingly good book (translated to english from the spanish) combining bits of sci-fi, metaphysics and ... hmm... hard to put a finger on it. I see elements of Poe and Umberto Eco in there, and perhaps some Kafka. Three years ago I would have laughed at anyone suggesting I would enjoy a book like this but it's a great read.
An example: in one story he imagines a world that is in the form of a great library, arranged in seemingly infinite floors and hexagonal sections, each section containing a number of books of exactly the same dimensions and number of pages. The books are marked and arranged by an unknown (to the library-dwellers) code and seem to contain random text. Over the course of the story the narrator explains that each book in the library is unique and contains one possible permutation of letters in a fixed language (consisting of 23 letters and two punctuation characters). This means that every book that it is possible to write is contained in there, in any language that conforms to that alphabet (eg one contains your entire life story, your entire life story with some details incorrect, your life story as seen by someone else... and so on). The problem is that as nobody knows the code behind the arrangement of the books, searching for a particular book or even verifying its correctness is basically impossible. Of course logically, one of the books in the library explains the cataloguing system for the library... but which one? The person able to find and identify this book is akin to God, as he has the key to all knowledge.
This is one of the stories that grabbed me (is there a meta-catalogue book that explains how to find the catalogue book?), but there are others that are of equal or better inventiveness. I will have to read this one several times over.
Went to work this evening, ANZACs please forgive me this little disrespectful behaviour. Porting apps from old-style jhtml to JSP is a painful thing, especially when the underlying servlets were never designed to work properly in a JSP environment (ServletOutputStream everywhere instead of Writer).
I can't imagine what I would have done if I didn't have that little 20 line perl script to do the grunt work for me, but I still had to manually review 100+ source files before committing them. argh never again...
I'm seriously considering switching back to debian just to see if the update situation is any better. I like mandrake but the distribution upgrade for both RH and mdk fill me with phear. And both of these dists have serious problems providing non-critical updates to older releases.
The reason I switched away from debian was, apt being wonderful and all, I found the only way to keep up to date on non-critical package updates was by moving to unstable and dealing with packages breaking all over the place (not to mention the daily 20M updates of tetex). It's likely I was doing something wrong but it was very frustrating.
To be honest I grew out of obsessively micro-managing my machines a little while ago, I don't get paid to do it and it gets in the way of the stuff I want to use a computer for in the first place. It's not hard to do but it's annoying, all I want is a computer with up-to-date software.
sorry for ranting dear diary but it's 5am and I'm in a cloudy mood so I deserve a bit of slack.
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
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!