January 29, 2003

RE: Localisation Considered Harmful

rinkrank.blog-city.com - Localisation Considered Harmful

One of the problems he specifies is that it is hard to maintain the localalized versions. I agree, but you can solve that by just moving all changes to resources into the localized version, so people can restranslate again.

I think that opensource should default to english, unless the application is specific for a certain country :)

Posted by mvdb at 04:33 PM | Comments (0)

Jakarta Commons Betwixt 1.0 Alpha 1 released

We needed this..


The Commons Team is pleased to announce the release of Jakarta Commons Betwixt 1.0 Alpha 1 from the Apache Software Foundation. Betwixt maps beans to XML and back again in a flexible, configurable way using reflection.

This is the first release of betwixt. For more details, see the release notes included in the distributions.

The binary distribution can be download (via a mirror) from http://jakarta.apache.org/site/binindex.cgi

The source distribution can be download (via a mirror) from

http://jakarta.apache.org/site/sourceindex.cgi

When downloading from a mirror please check the signature using the keys from the main apache site

http://www.apache.org/dist/jakarta/commons/betwixt/KEYS

- robert


Posted by mvdb at 12:41 PM | Comments (0)

January 27, 2003

Update on Swing and Swt ..

My previous article was a bit unstructured, so I probably have to make a nice little essay, which is more readable and has some examples, based on what i see around me, to make my point clearer and less rant like.

(It's not a rant on any person though)

Another note though that troubles me is that the design of many components is so restrictive, that it is hard to get around without looking at the source of eg the JTable to see what actually happens and why it eg resizes my columns when I don't want to (or not when I want them too). A lot of functionality is embedded in private methods, which normally just need changing, but instead you have to rewrite, or as often happens and probably not allowed, in copy & pasting over the original code to make happen what you want. I didn't hit that point yet in nyx, but when I do, it turning up to be a complete rewrite of swing I am afraid (to have those basic objects, that give me gui, instead of pretend model).
In short I want to know what happens without necesseraly hitting view source.

Another thing I forgot to mention is consistancy.
SWT lets you know that you have to get rid of everything yourself, so you know what you are up to (and save lot's of programming in the end). (some are a bit far fetched though). It is the exceptions that kill an application.
Swing leaves too much to be disposed, without people knowing it, which runs applications out of memory if that part of the application is used a lot.
Nyx gets rid of everything it creates, especially in swing. If a "leak" is left behind the only way to find is a profiler, which is a tedious task. So if you know of anything that doesn't get disposed correctly, mail it to me, so I can add it to nyx :)

Posted by mvdb at 01:32 AM | Comments (0)

SWT & Swing probably both suck

In reaction to the little essay CLD wrote cries for a reply.
This is not about preformance : I don't care about that much (atm)

I am not a long time gui programmer using Java (started last year april with some serious stuff using Swing), but I am GUI programming since 1990.
From that time I just used Clarion for all my gui programming (from the dos version on). There were only 4 problems with Clarion : they were slow on new developments (mainly Windows, OCX), had a lot of strange bugs in their database drivers (mainly during devlopment), not multplatform and not really suitable for server tasks. I still think it is the best environment to create a gui application in (mainly focussing on what everyone has to do here : providing a user interface to view data and store data!)
I will leave swt out of the picture for now, since it's just gui, but since Swing also says it is mvc, I want to commit suicide (not that swing is worth getting killed over though).

Maybe a little overview of what a gui is normally used for :

- Providing a nice userinterface to a user to view data and enter data

That's it.

Since I am a programmer who wants that wish to come true, I want to do the following :

- Create the datamodel
- Generate the application
- Add business rules
- Tweak the gui, so the user is really happy.

This is what happens to me when I have to do that in Swing (or for that matter SWT)

Creating the datamodel
As a good citizen you create it upfront and it is always perfect, it never needs fixing.
Generating the application
Even though I have a model, I cannot generate a gui based on that model.. Hmm..
Add (business) rules
Hmm.. Don't have a clue how to keep the model and view seperated when you have (business)rules. Most business rules have consequences for the way it is experiences on the screen.
Tweak the gui
80% of your programming time is in tweaking the gui, adjusting the rules to make the gui do what you want, etc, although what I want is maintain my model, update my gui accordingly and it should do what I want it to do.

Bringing it all together

Since you create your datamodel first, you base your gui on what data should be provided. When the datamodel changes you can almost redo your complete (if not impossible, it is very hard to quickly prototype guis in java) (try using XP with a customer breathing in your neck looking at how fast you are adding a control to the screen, he will probably cancel the contract). When the datamodel changes you have to recreate and refactor a lot of gui stuff, reposition, which is really simple to do when you have to type .setPreferredSize(10,10) or was it Dimension, oh I have to do setSize eh what do I have to set actually?? or have to come to the conclusion your layout sucks bigtime and have to swithc to the an XYLayout (the first thing I made) to keep the customer happy.
Never seen an application that had a NORTH or EAST side to it.. (I don't care normally, I just want it on that position!).
Since most of the time the business rules have ended up in the gui classes, since else you have to have create accessors for all you gui components, it renders the code unreadable. You don't know when to clear variables remove listeners (they all have to be instances apperantly, since some need to be removed), it makes coding in Swing a bitch, since coding in Swing is not what you want, you want to create business rules 80% of the time. That's why people tend to ignore java for client side programming.


Conclusion

Maybe SWT is even better than Swing. Since it doesn't pretend to be MVC and puts you on the right track immidiately : creating a layer on top of it to achieve flexibility. In swing you are always having a lot of rubish in your code to work around the models they use, since you cannot do WITHOUT them. The design is too restrictive in the sense that on your first play with Swing you already have to write your own TableUI to get things done/ (eg variable table layout). Since it uses tablemodels by default, you have to duplicate your data anyway else you get a nice classname@hashcode as the string representation of your data. Viewing the data should be flexible and if you pretend to have objects being able to represent data, please have real support for them.

Suggestions

Return to the basics with swing. Give us a nice toolkit that is model free and just gives you the view. On top of that give some extra stuff that has a model (which we can ignore en masse if we want). Keep us flexible and not programming around those models sun thinks is so good, since it isn't. Let us regain control of the events that sun thinks are usefull to fire when a model changes. I just love to see a huge number of calls to getTooltipText every time I just move my mouse over a table (and if it is null it will even create one for your). But yeah, still using using jdk1.3)
And I just love 100 custom Combo's in my application to get a simple list of items in there. Really nice work. (If you want I can dig deeper into the combo and table thing..)

Disclaimer

If I am expecting something different than sun had intended too achive, please let me know.

Solution

Currently working on a solution (open source Apache Style License, called nyx). Which will support anything I can get my hands on or find usefull (for now Swing and SWT).
The site is outdated, too busy programming around Swing (and swt) :)
I think with enough exposure when the first release is there, it will revolutionize programming gui's. Use rmi, eob, betwixt, ojb, hibernate or whatever ? Just generate your application from the model, startup eclipse, tweak the gui and maintain model updates from there (if you want to , you can do it with xml). Let's get prototyping back again and let's not be embarresed to be able to do that together with a customer (java is a 10 year step back in that respect, at least for me).

Posted by mvdb at 12:31 AM | Comments (4)

January 25, 2003

RSS / RDF for sailors.

A lot of information is out there for sailors. One important thing these days is waypoints, so you can program a possible route ahead of your trip (and possibly mark danger areas) in the hope wind will take you there. There are a couple of source fow waypoints : do it yourself, get a map and try to get a waypoint from it, buy a book with waypoints or get some from the internet.
It would be coolest to have a database with waypoints, with an feed created from it. The feed should contain new entry or a feed should be provided from a planned route or the waypoints from a certain area, all most likely collected by sailors. To actually make this work, importing those waypoints should be provided for most widely used gps systems, or making it a standard so people can adjust their application to use such feeds.

Another important improvement will be changing the messages to sea going people (in dutch berichten aan zeevarenden), which in Holland, they just moved it to use the internet. It would be better to have these messages in a standard feed, so updates can be provided automatically.
Have tried to find some standards on this, but didn't come up with much. (geoURL is close though).

If you know of any standards, let me know, it will save time reinventing the world ;)

Posted by mvdb at 02:20 PM | Comments (0)

January 24, 2003

Spam was there before computers and mail existed..

Yeah.. It's there since 1930...

Everytime I hear the word spam, it reminds me of the scatch from Monty Python, Spam Spam Spam.
I wondered if the mail spam was derived from that spam. To find out I looked on google and I ended up on spam that probably isn't annoying. At least I guess, since I never ate that brand and it is probably annoying if you hate plants (ehh are vegetarian).
They at least give you an whole new perspective on spam..

The only thing I can think of that spam means is "stupid posts and mail", but that means I do spam a lot when writing my log.

Sorry for taking up your time on this very enlightend subject :)

Posted by mvdb at 03:16 PM | Comments (0)

I was on hyped.nl LOL :)

Just did a search on google, to see where I ended up. A lot of weird entries (eg I ended up in tamboras cvs as a contributor) I also found myself on hyped.nl. This website with remarkable e-business news, made an entry about my mvdb.com website (please don't go there, your browser may stall :).

My website says that with a little bit of luck I will be online in 2003 and I put it there in 2000 like that.
One of my slogans "mvdb.com your partner in e-business", a pretty empty site and some humor saying "Laat nu uw website oplappen" (Have your website taken care of"). I am a marketingsdepartment worst nightmare (ehh I am the marketing department)..

They wished me good luck (see hyped.nl
Thank you guys for even taking the time to comment on my site.

Time to get back in control and move that website to my servers at home (is running somewhere in the us and cannot seem to change the dns entries for that thing.. sigh)

What a life :)

Posted by mvdb at 01:10 AM | Comments (0)

January 23, 2003

Anyone has any tips on good db books?

I was a book It book fan for a long time (my attick is full of them), the problem however these days is that if I buy a book, I am not really convised that it will give me the information that I was looking for (and most of the time it's a big bummer..)
What I am looking for is some good optimization, administration, tips & tricks, based on practice and not on theory. I want to have moments like oh, can I tweak this to make it go faster,etc,etc. So I am not looking for a sql-92 manual :)
I am looking for these books for SqlServer and Oracle.
I thought it was best to ask all of you who are reading this, so I can benefit from the people who have found the right books.

Thanx :)

Posted by mvdb at 05:11 PM | Comments (4)

January 22, 2003

Welcome back leo :)

I was an early blogger. No-one read my page, so I went back to a normal diary. Nowadays, blogging is all-that, so I figured I'd start this thing over once more. I'm using movabletype, which is working rather nicely

Didn't notice you had a log too.. Welcome back Leo :)

Posted by mvdb at 10:17 PM | Comments (0)

Debugging event based application (Swing related)

Currently writing a custom JTable en TableUI to have flexible columns and rows, based on their content (not generic yet, but I probably need a generic one for nyx in the future). When you however scroll through the page however, the table is not painted correctly.So you start debugging on some obvious method names. The problem is that all that stuff is done via events, which will end up your debug trace in the main eventqueue, as the source.
So I have to override every method now to be able to see what is called when (by using system.outs) to figure out what's going on. Tracking the event source is also not very simple to do, since there are too many events.

There must be a better way to get to do this I suppose, hope someone has some pointers, because I think I am missing something obvious that makes debugging easier than this.

Posted by mvdb at 05:07 PM | Comments (0)

RE: Who cares what you think, you don't even vote

in reaction to andies Who cares what you think, you don't even vote I sent him a mail (he unsubscribed form my feed..)

Hi Andy,

Since you don't read my feed anymore , I have to clear up (apache) things.. (assuming you meant my voting on apache..)

I vote on apache. I vote always +1 regarding persons that are nominated (without exception). I abstain from votes where I don't know anything sufficiently about (which is a lot, so I trust others to actually give the right feedback). If I vote about something that I don't completely agree with , , I vote -0, asking for clarification on the issue. (happened only once) Voting because of voting is just not my style, if I don't know exectly what's going on.

You can resubscribe again if you want, I'm gonna just keep to java stuff as much as possible from now on :) and put other stuff in another log.. (assuming you have a feed on my blog because of java stuff). If that's not the case, let me know, I'll save myself the work of maintaining 2 logs..

Btw I don't consider it a personal attack on me, since an attack from you on others is only effecting yourself, so don't worry about huring me and let it out :)

Mvgr,
Martin

Posted by mvdb at 03:37 PM | Comments (0)

Don't commit me, I am a good guy!

In reference to my other posts, I may have triggered the reaction "let's completely ignore Martin, since he is dangerous, an extremist, nuts".
I aint :) (look at my picture, how much harm can that sweet face do to others?)

I am just a normal guy, which shares his views on life so now and than (altough not really java related, I must admit), when I feel I need to share that.

A little bit about myself :
- Live and let live is my motto.
- I will not harm other "brothers" (brothers = everything that has a soul).
(another term for animal in my vocabulary is "less developed brothers", which proves that humans are way of track, since a lot of times, we can expect more wisdom from animals thatn from people).
- My views on life are my views on life, I will not try to convince you to adopt my view. Just want to share.
- I will talk freely about stuff that other people don't dare speek about (or just didn't think about) and I don't care if I make myself a walking target for criticism that way. We all know what can happen when people judge you for being different.
- I consider myself a world citizen (that's why I mentioned that I would vote on UN elections). A country is based on power, since it feels it needs to defend it's borders. The power however is not positive power, it is possesive and destructive (look at what has happened to Africa, because we all protecting our borders)
- If I am destructive in any way, it is most of the time self destructive behaviour, but I'm working on that. (not talking suicide here!). The bad thing about this part, that it tends to hurt other people too.
Examples of above point :
- I have a money problem (I seem to just throw it away or something).
I simply don't care enough or care too much, which works pretty destructive
- If I forgot something (eg a birthday), I have a hard time contacting that
person again. I am ashamed that I forgot and that is holding me back,
although when I have contact again, it was never a big problem for the other
person, so maybe I have to use that for the benefit of all.
- In addition to the previous point. If I have postponed something I was
planning on doing too long (which involves other people), I tend to ignore
it completely, untill there is no way out and then it's probably too late.
- I tend to focus on 1000 things at the same time, which makes it hard to
really finish up on something, untill there is no way out :)

- Am I nuts or a genius, you probably will never find out :). When in doubt just choose nuts. Saves you a lot of work, determining the genius factor.

I am basically a good guy, with some problems (not in complete control of myself) and you can have a normal conversation with me.

Maybe it's time for a martin FAQ ?
This way you can look up why I said certain things (eg swaring at the government because I pay too much to them, you just go to the martin FAQ and go to the money section and see what might have caused that reaction (he probably cared too much this time).

Or maybe I have to install yet another bugzilla database, which contains bugs of mine, which everyone can add things to (don't be surprised if you get a RESOLVED, WONT FIX in response though)

Posted by mvdb at 01:00 PM | Comments (0)

Proposal: changing the way elections work

Here I go again. Since I said I didn't vote and one of the thing I like about giving -1's on apache is that you have to come with an alternative (or better thing), or shut up, so here I go on elections.

Step 1
Reform the voting process, to let us be able to vote for multiple people. Like giving 5 votes to the SP, 3 to the VVD and 10 to the (Dieren Partij) Animal Parrty (since they only have 1 goal, to make the life better of animals, I like when people focus on one thing, which I have a hard time doing btw).
So people can cast 3 votes : one with 10 votes, one with 5 votes and one with 3 votes.
This way they can combine party politics and give points to there overall view, which should influence the creation of a coalition, based on what probably seems important to people.

Step 2

When experience and trust in step 1 grows, we should move to step 2.
Step 2 doesn't let you vote on any party (although we should be able to select a prime minister), but select on points of view. You can vote for 10 things that are compiled together by "the people". The majority of the outcoming of this election will be negiated by political parties and they coorperate together to get the work done. This way parties will start to think with one mind to get the issues resolved.

Step 3
I am sure I am going to see this happen!
No party exist, the country doesn't need governing, since we are self governing and the people who represent us do so automaticcally by speaking for the community.
This step requires that you have complete control over yourself (about 10% of the community is enough, to do this correctly).
Maybe I am thinking 100's of years ahead, but this should be doable in a life time.. ( I am leaving it to other to decide what a life time means or how long that is).

Posted by mvdb at 12:27 PM | Comments (0)

A swami perspective on communities

This is a mail I sent to community @ apache last year. It will explain a little bit more about how think of communities. This mail was a mail regarding a thread about having more rules on jakarta-commons (or something in that area). You can replace apache with any other community. It was just to make it more clear :)
Hi World of Apache ;) The "freedom" adds the extra spark to j-c in my opinion. The leads to one of the great wisdoms the swami in me picked up from somewhere : <swami_mode> Freedom brings up responsibility and rules remove people from being responsible. By accepting rules of any kind a community actually is saying "we don't have a common sense". If a community has a common sense, rules are not needed, period. </swami_mode> How does this statement apply to apache. Let's assume apache is the world <apache_is_the_world> Apache doesn't need any rules. Now say Big Bad Wolf (who is part of the community) does an rm -rf /home/cvs (intentionally) What actually happened here ? 1) Did Big Bad Wolf fail the community? 2) Did the community fail as a whole? None of the above, since Big Bad Wolf failed himself. Now the 3 piggies say : Hey someone deleted /home/cvs!!! We want to have rules that it is not allowed! Whoops what happened here ? 1) Did the 3 piggies fail themselves ? 2) Did the community fail as a whole ? I hope you answered 1, since we are still a community. The 3 piggies start a vote to get this rule in place. The 3 piggies of course say +1 When all votes are counted the majority decides to have the rule in place. 1) Did the community fail as a whole ? 2) Did the community become stronger because of this rule ? I hope you chose number 1 The effort of Big Bad Wolf to fail himself, has undermined a complete community. The community now by default assumes that everybody is capable of failing himself. Mistrust grows between each other. What else are people in my community capable of ? What if... More rules come in place, since what ifs can be scary ones. Ego's take over the community and so the community is gone. Some seek power to control the others and the community sense is further removed. Now we are just a bunch individuals who are having private agenda's and private goals. A couple of people however still have the community in mind. For the greater good of the community they seperate themselves for the rest, to not be distracted from the "spark" they still have. If the community did not accept the rule in the first place, it would still have the "spark" that comes with it and will still reside in "heaven".. </apache_is_the_world> <apache_as_part_of_the_world> I did the seperation between the two tags, because apache needs some rules, because the bad scenario described above happened in the world outside of apache (liability, etc,etc,etc). Too bad, these rules need to be in place to be able to keep the community in mind. Any other rule needed within apache is just breaking up the community and will stand in the way of any progress. </apache_as_part_of_the_world> They, them, those etc are all signs of possible seperation in communities, which undermine the goals we want to achieve. If we just accept the fact that the community can never fail, we will experience greater achievements then anyone can imagine. Mvgr, Martin NickName : Swami Baahmi ;)
Posted by mvdb at 12:05 PM

More clarification on not voting..

My point of view on not voting, keeps on giving me people lectures about how we must treasure our democracy and we should be lucky to live in one. I think it should be normal to live in freedom, unless that freedom is at the expense of others, which currently means creating laws tries to solve that. My parents cricize me the most (they even get angry about it), but they never seem to completely understand the choices I make. It's not that I try to prevent others from voting. Here is a copy & paste from the reorg mailinglist.. The discussion was about voting and stuff on apache. The mail was from 26/10/2002 btw.. FYI we had elections last year in May. (the government lasted 87 days because of ego's..), with a big Harry Potter as president :)
<swami_mode_on> Democracy as we practice it is highly overrated, since it is still at the infant stage . Democracy means government by the whole population, by elected representatives. This would work if the representatives and the voters don't have an ego (= speaking with one mind), which is hardly the case. Not anything I can change about that, since I (and anyone else) cannot disrespect rule of free will. Since I cannot find any political party (we have a lot in Holland) that even closely speaks with one mind and the fact that government just is there to decrease freedom (ever heard of laws?:)), I will not vote, so I CAN be free. (freedom is something that cannot be persued at expense of others btw). </swami_mode_on> Since I chose to get involved in apache (I didn't nominate myself though, although people got tired of applying my patches, so in a way I did I guess ;)) to join apache the mind, I will vote at apache. Since voting in apache is a bit based the fact that by default everyone is in favour, and if you are not make a better proposal. (although I sometimes forget that myself ;). Better is always improvement and thus better for apache ;). For eg pmc elections however I will give +1 to everyone on the list by default, since willing to fullfill that task should not be declined by me. If I was to be forced to only select one person, I would not vote. Mvgr, Martin "swami baahmi"
Hope this makes my position a bit clearer. My observations from the current elections, just made my choice stand from another perspective.
Posted by mvdb at 11:14 AM

January 21, 2003

I am not voting anymore! Give me one reason why I should

This is a perspective on the dutch elections for tomorrow (or today, depending on where you are living).

(rather lengthy, sorry about that..)

Even though I promised myself not to watch the big last polical debate, while typing this, I am actually hearing it. My perspective on government is 100% different from what all these politicians seem to think.
The national government should in my opinion do this :
- Provide services that are of national interest or are not easily achieved idividually or in smaller communities (highways, public transport, making sure people that this country takes care of can eat, sleep, etc,etc)
- Provide services that are of international interest (supporting countries that don't do that well, because of our previous occupations, funding the European Union)
- Promote the thruth
- Protect people against themselves.
- Collect money to achieve this (although thruth should be free)

In short, a country should be a community, which provides services that are the wishes of the people in the country.

After 55 minutes I have had enough of viewing. In short what it was about :
- Immigrants
- Immigrants
- Immigrants
- Hmm I think I forgot Immigrants
- Variations on immigrants (you know criminal immigrants, getto's, black schools, integration, etc)
You get the picture.

People, get a life. If you really think immigrants are the problem over here, you got it wrong. It is the "natives" that are the problem, since they think the immigrants are the problem (they are even overlooking the fact that "immigrants" are born here, immigrant in the dutch sence is just not being white (the only thing they don't dare to say it though).
A simple example : Someone white from Canada is going to work here. If he can say "Dank u wel" (=thank you) in dutch after 2 years everybody applauds. If an immigrant (or actually someone that is not white) is here for 1 day and can say "Hallo" (=hello, hi) then people are saying that he should learn dutch better.

Ok I am overreacting a bit here, some people who are living here for 30 years, don't speak any dutch at all, which is not good for that person, so you probably have to help these people learn dutch.

Some say Holland is "full" (although we are the most densily populates country of the world, I welcome everybody over here!).
The best question I heard about it was from a 6 year old kid (maybe a bit older..)
If Holland is full, why do you still build new highways ?
No suitable answer came from this of course, but the kid is right, he sees everything in perspective.

There are also politcal parties that come a bit closer to my vision, but they want to control too much and have too much side effects.

One of those side effects is "inkomens nivellering", which means that the lowest income is as close as possible to the highest income.
It is even suggested that I pay for a specific part of my income a 70% tax.
Which means each sweatdrop I put it in more to make some extra money, I have to make 3.30 Euro to be able to spent 1 euro, yeah that will stop me from leaving holland, I will move as soon as they introduce this. (not that I make loads of money, but if I have to give it away, let me decide where I give it too in these cases..)

Enough ranting.. No voting this time and I seriously doubt there will ever be a time again ( unless I can vote on UN elections or something)

Posted by mvdb at 10:32 PM | Comments (2)

January 20, 2003

Grease & Grease 2 Best and Worst movie..

If you get bored easily, just don't read this.

I am a big Grease fan (every year I watch it about 3 or 4 times). It is still one of the best movies I've seen (except the end with the car flying away is a big bummer). Thinking about why, is a bit hard to answer. It could be the songs, or it could be that the small child I was at that time, actually discovered a world that I was not familiar with (the US that is). Anyway reasons don't need to be rationalized all of the time, so I leave it to your imagination why.
I've never seen Grease 2 in my life and still haven't completely. They broadcasted it last weekend on television. I watched it for 10 minutes and began to barf, getting annoyed, suicidal, agressive, dissapointed and decided to never watch that bad movie again in my life, since it is bad for my mental peace.
Almost started rewriting my suicide notes, that I just got rid of (some people call it a will, but since I just decided I cannot die, unless I specifically do so myself, I thought the will was pretty useless).
Btw Highlander shouldn't have made sequals too :) "I am Conor McLoad of the Clan McLoad and I cannot die, unless...".

Conclusion : Grease 2 is even worse than Star Wars.

Posted by mvdb at 11:39 AM | Comments (10)

January 19, 2003

Made gump installation a bit easier (I hope)

Just committed LocalCheck to gumps cvs tree. It will check if your local gump dependencies are present, if not it will give you some output on what is missing. It will show the project, the jars that are missing and where you can download it (al taken from the project/*.xml files btw). This way you don't have to decipher or keep track of the gump commit mails to see what needs updating. Enjoy :)
Posted by mvdb at 11:41 PM

January 16, 2003

xml, sql, java and eiffel (really need some advice..)

update
I am going for the suggestion provided by James (see comments).
Will also help the commons-sql to have an extra use scenario and if it needs fixing, well I can fix it myself :)


Ok here is the story. The system I am currently working on at my employer uses eiffel as a means to do database communications. The schema is defined in 3 xml files,
a physical schema (with oracle/sqlserver specifics), a conceptual schema (the stuff / naming we use in the java code) and a mapping schema to connect the 2 together. The mapping and the physical schema are db specific. The big problem is maintainance. Currently we are doing a lot sqlserver work and this way the oracle schema is out of date, so we end up in a lot of misery. I started a long time ago on a java system that would help us with this (using betwixt) and to add extra flexibility (eg altering tables, recreating indexes, etc). The problem is that the xml has to be in the old format, so it can be parsed via the eiffel backend into a lib file (with the orignal name of libFile.lib).
I really need some advice on tools I can use in java to replace the current way of maintaining the db schemas.

My requirements are :

- The conceptual schema,physical schema and mapping schema should always be maintain ones, use everywhere (it may be in another format, I don't care that much about that).
- I need to create those schemas that eiffel needs to create his libfile (use xml transformation, or betwixt)
- The new parser should be able to alter tables, and drop indexes so we don't have to mess around in the database while doing an upgrade (so killing the manual process..)

Are there any tools out there that can be suitable for the things I want ? (it's currently not an option to switch to OJB or something, so that is not an alternative).
The problem is that with figuring it out yourself that it takes weeks to go through al the solutions, so I though it's best to ask the people who most possibly knwow whats around there and what is best to use, based on experience.

Thanx for your help :)

Btw if you need to see the xml files we currently use, I can send them over..

Posted by mvdb at 07:04 PM | Comments (1)

Betwixt, preparing the first release

Working hard now to have our first release of betwixt. Still a lot on the wish / todo list, but we have to release one day. I thought I did some great work on recursion of elements, but it seems that it is not working that great. All my testcases ran fine, but the problem was that my testcases just read and wrote the xml without actually checking if everything went ok (besides the out of memory exception that can occur with recursion). What I really love to see in betwixt is namespace support (probably after the first release), but I am still breaking my head over this problem. How to read namespaced elements isn't that much of a problem.. But how to write them ? How should I know which namespace something should end up in. If I figured this out (probably James or Robert already have a better overview of this..), we can even use betwixt for jelly scripts (jelly already has support for betwixt btw) For people who don't know betwixt:
The Betwixt library provides an XML introspection mechanism for mapping beans to XML in a flexible way. It is implemented using an XMLIntrospector and XMLBeanInfo classes which are similar to the standard Introspector and BeanInfo from the Java Beans specification. Betwixt provides a way of turning beans into XML as well as automatically generating digester rules in a way that can be customized on a per type manner in the same way that the BeanInfo mechanism can be used to customize the default introspection on a java object.
Posted by mvdb at 06:35 PM

Smoking Grass and health problems and some advice

Just heard on the dutch radio that smoking grass is bad for your health. You can become psychotic and develop a huge number of mental disorders, which doesn't make you a happier person. The problem seems to be that "the decease" actually lasts for 40 or 50 years, with a slim chance of curing. A lot worse than the about 5 years it takes to die from smoking tabacco (what happened to chewing that stuff?).

I am far from medical and my next statement is not based on scientific research, it's just plain and simple the truth :

If you smoke grass, smoke it alone!

The problem is not that you smoke (although too much is just too much), but who you smoke it with. This probably needs some explenation to really convince all of you :)

When you smoke, stuff happens in your mental state. Your perception of the world changes and you are open to anyone else (hope that is the effect though, since barfing isn't really the intention of smoking).
So what you might say.
Since you are open to everyone else, you pick up all shit that people are currently facing. (if you are in a coffee shop, have a look around and you see some people must be facing a lot of misery).
When you "sober" up, you cannot identify the miserable feeling you have as not being yours and you decide that it must be you that suffers so much (although you don't have a clue why). You can recover from it, but if you smoke too much in company, you get in a permanent state of misery, which can cause psychoses (33 percent of the people needing mental help is smoking).

As I said before : smoke alone, or don't smoke, since you never know what problems your going to end up with.

Btw reletively less people are smoking grass in holland then in the US (and 3 other countries that were researched), even though its legal to buy grass over here! A cheer for freedom (btw coffee shops cannot legally buy grass, but they are allowed to sell it, how the hell do you want to explain that to foreigners..)

Posted by mvdb at 06:18 PM | Comments (10)

January 14, 2003

Offline usage of web resources and tools

Since more and more people are coming to look at my house to (hopefully) eventually buy it, I have to figure out some strategy to view the stuff I regularly need offline. I am not talking about offline viewing in a webbrowser, but really retrieving everything (interesting) from a site to a local resource in a simple way for later viewing. This needs to be flexible in a couple of ways : - I want to use linux as my server for the data access - I have a portable which must retrieve the data when there is an internet connection. The retrieval however should not progress without me knowing, but based on a profile that will retrieve the things I can afford at that time (eg persoanl mail when I have a mobile phone connection to the internet and eg resource updating when I have some bandwith at my disposal, or when low bandwith an aggregation (eg RSS) of what changes can be found. My idea so far is that I need a server on the internet (need that anyway), that will cache everything I need, so I just need to go to one source to retrieve my stuff. As an example : I am going to need to full website of jakarta.apache.org (forgetting the cvs option here, which is more obvious in my case) and want to to know what the changes are when I am on low bandwith and retrieve the changes when my bandwith is sufficient to be able to retrieve the changes. If jakarta would have an rss of the changes, it would be easy, to just get the rss and give feedback from that to keep up-to-date. If however jakarta hasn't got a rss feed, my little internet server should generate one based on the changes he encounters on the server.

Client Issues

On the client side I don't need much, since I am a geek and have enough equipment to have me a server running, however when I am sailing on the atlantic (with a power aggregator), it would be nice to have a client that can handle everything I need for when I get back online in some way (eg mail, updated blogs, commits to public cvs servers, updating of the route I had, preferrably in one zip (ehh tar.gz is even smaller I guess) uploaded to my server, and the server handles the rest (cvs can be problematic though). Also my client would love to have something as small as possible in return, so he wants tar.gz with all the changes too.. Hmm, going to be interesting effort to solve my little problem here :) Also it's nice if other folks that are on a long trip can use this kind of stuff Hope satelite internet can solve this all, but for now I don't assume I have a good worldwide connection using that and it will be a waste of money if it is just usable in Europe (although for 100 Euro a month, it's pretty affordable). If anyone has any ideas for a nice internet connection which is pretty much worldwide usable, let me know :) Hmm enough for now, I need to clean my place for some visitors tomorrow :)
Posted by mvdb at 07:05 PM

January 12, 2003

"Barney" wins the embassy..

Raymond van Barneveld just won the embassy in the UK for the third time. Darts is getting big in Holland (you cannot turn on your tv or you see some idiot playing darts). Congratualations duded.. Your making a decent living out of it and instead of spending money in bars, your making money there.. In my opinion darts cannot be considered a sport. Much of the preperation is in drinking alcahol and smoking grass (a dutch darter was suspended because of that, since it is illegal in sports to smoke grass, yeah some people think it is a sport). Playing pacman or space invaders is a sport too, I know.. Darts is highly overrated and very dangerous when misused. Wonder why darts is still legal and doesn't need a weapon license :) Ask my brother how painfull and permently damaging darts can be, sorry brother I get angry when I loose playing darts against you. I didn't miss him btw..
Posted by mvdb at 08:38 PM

Use of geopgraphical mapping when sailing around the world

Just read Abort,Retry,Fail URL Geographical Mapping part 2 and releated links. I really like this kind of stuff for my sailing trip around the world. One of the things I want to do is meet a lot of people. The site I want to create for that, will allow people to add themselves on the "please visit me" list or "I want to sail with you and I am here" list. They add themselves to the list, and a worldmap will show where I should visit people and show details about them (when I click on a dot). This map will also show my progress and anticipated route, so people can see how many years they will have to wait untill I arrive at there "waypoint" (sailing can be a slow progress, especially when you want to meet a lot of people and need to earn some money to be able to continue sailing.. ;) More on (IT) issues I'm gonna face during my trip later..
Posted by mvdb at 05:37 PM

RE: Bought my first digital camera

Gerhard says something new in his blog about his first digital camera I've got a digital camera too (an old sony with floppy drive) and had the opportunity to use some more advanced camera's. I am not much of a camera expert, (although in my younger days I did develop colour photos to buy me the necessary computers..). I never seen however behaviour that you had to wait 3 seconds before a picture is taken (besides saving to a floppy disk) and people running in and out of your picture ??. If I take photo (= click it), the photo is there. Never took a photo of someone that didn't appear on the picture because I pointed my camera to the ground immidiately after the click (and bleep). Maybe I am just missing something, since he was talking about taking pictures in the dark, which I couldn't get working correctly when the light (=daylight) comes from behind me.. Anyway : enjoy the camara and enjoy the fact that horrible photo's don't cost any money anymore rm * -rf will help you with that..
Posted by mvdb at 05:10 PM

January 10, 2003

Personalized my weblog a bit

I decided to add a photo. It makes it easier for people to see who is typing al these messages. Since this is the best photo of me I could find, I have to explain my current progress a bit : - I am bigger now - I can talk now - I don't wet my pants anymore (yes indeed, I am potty trained) - I hardly cry anymore - For the rest I am just proportianally bigger (add a bit facial hair though) - Got very hairy legs (although legs are not on the photo..) - The look I give there was at the sight of my first computer :) - I still am that intelligent as it shows on the picture.. I am watching you :))
Posted by mvdb at 02:04 PM

Specifying language in logs..

I am not much of a log expert, but it would be usefull to know in what language a certain entry has been written. It will save us all a lot of reading things we don't understand :).

Posted by mvdb at 01:52 PM | Comments (1)

Kalixia.com move almost done..

Yesterday (ehh today?) jeje and me have made an effort to get his site moved to my machine. After being 368 days online, finally it has something to do (was just an experimental box on the internet, without anything running on it that was usefull, untill now..). It's not a really fast machine (probably pII 233, with 255 Meg of memory and 7 Gig disc). It's at least something and almost everything is running (snipsnap import export didn't work, so jeje wil look at this tonight). Everything went mostly smooth and what I couldn't get working (ehh perl module installations eg..), jeje did without problems :) Btw the temporary move doesn't require you to go somewhere else, since dns will be updated when the move is complete.. Keep in mind that it is an adsl connection, 1024 down and 256 up, so it has some limitations.. I am currently looking into using johncompanies for hosting for a more permanent solution btw.. (esp when I am going to live on a boat..)
Posted by mvdb at 01:17 PM

January 08, 2003

Memory Profiler as an example application for nyx

As an example for nyx I am writing a memory profiler based on hprof (just parses the ascii output, the binaries seem to change to much). As said, it's just an example, but it's hard not to take a step further. Say I just want to now why the hell my custom EditorKit is leaking (it loves to leak), I just want to know what is leaking and don't want to be bothered withl all other allocations that are done in the application. I think to get this done "easily", it would be cool to have a debugger integrated with a profiler, this way you can during debugging ask which objects are still allocated that are related to your breakpoint... Maybe something for the eclipse team to consider ? I am trying to get this working in the example, since I need that pretty badly.. The nice thing about programming is that you can make yourself if you don't like it :) The downside is that it takes a lot of time to create it yourself ..
Posted by mvdb at 03:48 PM

Java GUI Testing

I and a collegue of mine have been looking at gui testing systems. All solutions have it's pro's and con's, but I couldn't find a real suitable solution for me.
I need the gui testing for nyx, which depends on swing and swt (swt is a work in progress thougb, which currently breaks nyx completely).
My goal with gui testing is to also test things that are under the covers in eg swing. I want to to know what messages are fired and how many times they are fired and test for execution paths. Also just testing a single component / widget is a tedious task, so eg testing a JComboBox and an swt Combo, you have to add a window surrounding it, which should be automated.
I am thinking of filling the gap myself and write a junit extension for nyx, swing and swt.
Jemmy looks good, but also seems limiting (you can play scenario's, but eg not record them). You also need jelly (is not the jakarta jelly!) to make testcases out of them.
If anyone has some good or cool scnerios I can use for swing and swt testing, please let me know and if you'r interested help me out. Let me see the light :)

For now my conclusion is that gui testing is way too bad to be usefull and not very timesaving, especially when there is a fast rate of changing the gui itself.

Posted by mvdb at 12:26 PM | Comments (2)

January 07, 2003

A very wet internet protocol

Just read this : http://www.computing.co.uk/News/1137783 The protocol is called h2o/ip. Hope it is salt water so everyone can benefit from using this :)
Posted by mvdb at 10:34 PM

M$ does it for free ;)

Today we got a surprise. We got a free MSDN set (the full package). So M$ doesn't always want to earn a lot of money I guess. This all because our software is being made workable on a tablet pc. (I work in the healthcare industry, where the tablet pc has a perfect use). Wonder if the tablet pc can read the handwriting of doctors though.. Let's hope they give me a tablet pc for free too :) Btw our system is written in Java..
Posted by mvdb at 06:08 PM

January 06, 2003

NYX (Not Yet Xulux) starting on SWT support

Here is a copy & paste from my mail to xulux-interest : (see the nyx website for current docs) - Currently working on adding swt support in nyx. The default for nyx will still be swing though. This way swt will be supported for all todo's on the list and let's me focus on one widget at the time for both swing and swt. - Also updating testcases and adding them as much as possible. - Do something about the heavily outdated documentation... Todo list - Add complete application support, instead of just single forms - Add examples (currently a java profiler is in private cvs, that will be completely gui-fied by nyx). It's just an hat replacement though, so nothing fancy yet (using hprof ascii output..) - Add generators for eg hibernate, eob, ojb and betwixt (other suggestions welcome) - Create a plugin for eclipse for nyx in nyx and creating plugin widgets for that purpose. (this will be a GUI Editor) - Dig into XUL to see if it can eventually replace the xml I am using. - Add support for scripting - Refactor the rule engine, so other engines can be plugged in (mainly drools) - Stephane Mor has volunteerd to create a jelly taglib for nyx when the first official release is done (means alpha release). - Add more sophistication to the widgets (eg adding functionalaty blocks / objects to widgets, like a sorter for combo's, a locator for combos, page loading of data, etc,etc. - Test under unix. For now using and xy layout, which hasn't been tested on eg unix.. - Create junit extensions for nyx. - Make it easier to see what's happing in nyx, Nyx must be able to run in some kind of debugging mode. (sort of execution tree, eg what happens when you change a field, etc). - Localisation in the nyx xml (probably will handle it like eclipse does with the percent sign, which maps to resourcebundles with the same name as xml - Add (better and tested) serialization support (eg remote gui definitions)
Posted by mvdb at 10:03 AM