taj is currently certified at Master level.

Name: Sirtaj Singh Kang
Member since: 2000-10-01 14:33:30
Last Login: N/A

FOAF RDF Share This

Homepage: http://sirtaj.net/


I've done some programming, documentation and PR work for the KDE Project. I'm very proud to be associated with such an excellent team of engineers and artists, who manage to churn out quality software day after day in spite of the extremely large and decentralized nature of the project.

I've also contributed bug fixes and patches to various other free software projects.

I am currently employed as a software architect designing groupware and ecommerce systems using Zope and J2EE.

contact me at taj at kde dot org.


Recent blog entries by taj

Syndication: RSS 2.0
jdub: I haven't personally been involved in the delicious flamewar on that list, but from what I gather, the salient points are:

  • UserLinux is apparently a community distribution.
  • Various people have offered to help make it atleast _possible_ to allow users to run Qt-based applications on this distribution. This only requires the shipping of a handful of libraries on this distribution.
  • Bruce, for whom I have no end of respect, has refused to carry the most basic parts necessary (libqt) to help with this.
  • The reasons for this exclusion have not yet been made clear, and the flamewar seems to have been triggered by Bruce's reticence at clarifying. The best that anyone has received so far is "someone has promised us money, I can't say who", and "we won't be carrying any GPL-only libraries" (this last one is laughably unlikely)

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.

I read the CASE tool debate with interest. The problems that most people seem to have with them coincide with my own thoughts on the shortcomings of many of these tools. Most of these involve poor support of many of the activities involved in system implementation, eg implicit or missing inter-language transformation mappings, no support for human-readable deltas or debugging, UI deficiencies making them more inconvenient to use than tools based on 3GLs, incompleteness of the UML metamodel for purposes of modelling many "real-world" programming language techniques etc.

Personally, I'm waiting for tools that

  • support user-defined domain specific languages. There are examples of useful DSELs in the programming world, eg BNF/EBNF. In the right lighting and after a few strong drinks, XML schemas and many config file formats begin to look like declarative DSELs, some of which are "nicer" for expressing certain problems than a general-purpose programming language.
  • Support formal, bi-directional mapping rulesets for the transformation of abstract syntax trees in one supported language to another. XSL etc are beginning to be used for this but surely there is a nicer way to do this than typing huge XML documents by hand...
  • Provide customizeable user interfaces for the viewing and editing of elements in supported languages, in turn supported by real-time, incremental transformation
I guess I'm hinting at a CASE tool that supports various features of IDEs and design tools - development support environments that "understand" the problems you are working on using strict ontologies in the form of metamodels, and provide you with the ability to look at your project and its artifacts from a number of levels.

You know, it's only funny if it hasn't happened to you. If I hadn't had to write lots of python code alongside immersing myself in this stuff, I'd have lost sight of reality a year ago. Thanks to the watchfulness of roundup, the thought recording ability of MoinMoin and the extremely low design-to-code impedance of python, I manage to actually get something done.

The TATA book that zhaoway mentioned looks really interesting, I'm currently tree-walkin' and pattern-matchin' a lot these days and some (more) theory will really come in handy. It certainly ranks higher in my reading queue than the other two dozen or so papers and books I've got to get through somehow.

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) »

I've been trying to get my head around the various papers on metamodeling available on the net. The concepts behind the "precise UML" efforts seem simple enough but the terminology can get quite confusing. There are not many mentors around here in Delhi with whom I can brainstorm about this stuff.

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...

25 older entries...


taj certified others as follows:

  • taj certified ralsina as Journeyer
  • taj certified gjbadros as Journeyer
  • taj certified vektor as Apprentice
  • taj certified Pseudonym as Journeyer
  • taj certified achitnis as Journeyer
  • taj certified gael as Journeyer
  • taj certified larsk as Journeyer
  • taj certified nicnacs as Apprentice
  • taj certified tackat as Master
  • taj certified Skud as Master
  • taj certified bero as Master
  • taj certified msevior as Journeyer
  • taj certified mjs as Master
  • taj certified vicious as Master
  • taj certified Guillaume as Master
  • taj certified jono as Journeyer
  • taj certified etbe as Master
  • taj certified paul as Journeyer
  • taj certified jasonkb as Journeyer
  • taj certified LeeJay as Apprentice
  • taj certified ajv as Journeyer
  • taj certified tronical as Master
  • taj certified taj as Journeyer
  • taj certified neil as Journeyer
  • taj certified Archit as Journeyer
  • taj certified Capzilla as Journeyer
  • taj certified Uche as Master
  • taj certified daniels as Journeyer
  • taj certified naba as Journeyer

Others have certified taj as follows:

  • acme certified taj as Journeyer
  • Pseudonym certified taj as Journeyer
  • superant certified taj as Journeyer
  • jLoki certified taj as Journeyer
  • vicious certified taj as Journeyer
  • mjs certified taj as Journeyer
  • Guillaume certified taj as Master
  • etbe certified taj as Master
  • faye certified taj as Journeyer
  • paul certified taj as Master
  • jono certified taj as Journeyer
  • jasonkb certified taj as Master
  • voltron certified taj as Journeyer
  • angelsun certified taj as Journeyer
  • tronical certified taj as Master
  • tackat certified taj as Journeyer
  • ralsina certified taj as Master
  • neil certified taj as Master
  • jsinger certified taj as Master
  • lukas certified taj as Master
  • qslack certified taj as Master
  • taj certified taj as Journeyer
  • jkinsella certified taj as Journeyer
  • achitnis certified taj as Master
  • fxn certified taj as Journeyer
  • KrazyKiwi certified taj as Master
  • nixnut certified taj as Master
  • Barbicane certified taj as Journeyer
  • daniels certified taj as Master
  • pasky certified taj as Journeyer
  • lypanov certified taj as Master
  • naba certified taj as Journeyer
  • kclayton certified taj as Master
  • adl certified taj as Master
  • djinn certified taj as Journeyer
  • evans certified taj as Master
  • markdavis certified taj as Master

[ Certification disabled because you're not logged in. ]

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!

Share this page