Monday, March 30, 2009

self blogging suspend

After two years of silence, which were by coincidence also related to my previous job :o, I am being encouraged to pick up the habit again. And here I am, ready to write about
items which may or may not seem to be of some importance to you as a reader.

I am considering to switch to, check out and leave a comment on the new blogsite...

Wednesday, November 01, 2006

Performancing plugin for Firefox


I have just installed this plugin on Firefox 2.0 to see how it works. It looks quite easy...

So if you are interested in using this plugin too, please go to

So far still test driving

  1. Bold text some color text to showoff strikthrough strikethrough
  2. Nice
This is a quote

  • item 1
  • item 2

Thursday, May 04, 2006

Standards and communication

Very often companies are standardizing their software development process. The lack of a clear structure often leads to information stored in heads, documents wandering around the place and architects knowing where to find the desired or needed documentation, and telling you what you have to do.

Every time there is this issue: "no time to do it right, IT managament doesn't want to pay for the improvements of the process". Often projects are becoming more and more expensive because the business is "invisible" paying for improvement of the overall process.

The result is that the process will never be finished or in a solid state.

What are the symptoms:
  • Look at what we've got, not what we don't have. - this leads to inactivity on items which need to be addressed.
  • We will improve it during development of the project - this leads to unfinished stuff because of deadlines.
  • Developers are only commited to the project - this leads to different code in projects and not following a standard way of working which makes it very inefficient to maintain the code.
  • Big influence of the business on the IT architecture - this leads to an inefficient IT architecture because the technical and conceptual models shoul be separated.
  • More to follow...
My point is that a developer, because of these defects, always searches for the facts and finds them on a late point during the development stage, which could lead to a big impact on the code.

I am still struggling to find a way to smoothe this process. Advocating other ways of working, pushing IT management and pointing out where it hurts doesn't always result in an improvement. The issues are moved to the next phase, hoping they will be addressed then...

Thursday, March 16, 2006

Personal Synchronizable Wiki

A wiki that is locally installed and used as an idea collector.

  • Team support (share ideas like a real wiki)
  • Merge functionality?
  • Local folders that won't be sychronized
  • Synchronization on-the-fly
  • Client needed
  • Kinda gnutella idea, find each other, distribute knowledge!
This piece comes from

Any plan to have multiuser access (even coarse-grained with full file locks during writes) coupled with offline (i.e. a syncing algorithm, possibly sql based) capabilities? Calendars, addresscards etc. would benefit from it. Typical use: network with a shared contacts storage, which can be accessed directly (rw), or dumped locally for offline use and subsequent sync operation. One way to do syncing might be to store a sequential number (not a timestamp, which depends on the clock, actually the clocks, plural...) for each record/group of records (i.e. a vcard). Every time the record/group is modified, the next sequential number is used. Knowing the max value of this field at the time you go offline, it should be possible to sync the contents of two tables. I am thinking only of a single function to addresses simple situations (which are also quite common), leaving more complex conflict resolution issues to the clients. Assuming identical table structures with an Index field, something like:

sync(recordsetA, recordsetB, indexField, conflictResolution)

conflictResolution = priority_to_A / priority_to_B / duplicate / only_return_a_list_of_conflicts

So defining two items: A and B, and I(A), I(B) their respective sequential indeces, and I(O) the max value of the sequential index of tableA at the time of the last connection, the two recordsets are merged according to the following rules:

  • I(A) <= I(O) &&amp; I(B)<= I(O) : nothing to do
  • I(A) > I(O) && I(B) <= I(O) : A->B
  • I(A) > I(O) && B missing : A->B
  • A missing &&amp; I(B) <= I(O) : delete B
  • I(A) > I(O) && I(B) > I(O) : conflict -> resolve according to conflictResolution

Same thing inverting letters. More complex conflict resolution schemes can and should be implemented by the clients. Syncing two apps based on Uinifed Storage should not be a problem. Syncing with an external application (which does not use the sequential index) is still possible, but it will require an intermediate step (client-side). In this case, a copy of the recordset as of the time of the last connection must be stored. On the next connection, by comparing the old recordset to the new data, it is possible to establish which items were edited offline (i.e. I(B) > I(O))...

Having such syncing functionality within Unified Storage might avoid a lot of code duplication since it is a common task. Moreover it would be more elegant, safer and faster to assign the sequential index internally rather than letting the clients do so.

Friday, February 24, 2006

Rich Internet Client alternative

I just had lunch and during lunch discussed about Web 2.0. I had an interesting idea about the way PDF displays itself and how to combine this with a rich internet client.

Web 2.0 uses standard techniques to display images and so on.

The Web 3.0 standard should be different:
- Use formula's to calculate certain lines and graphics.
- Think of JPEG, LATEX, PDF, SVG, XForms techniques
- XML communication during development time (for debug's sake)
- Binairy communication at production time
- Reduce data traffic
- Richer interface, faster response
- Browser independent (plugin)
- Extension to known programming languages

Thought still in progress

Thursday, February 23, 2006

Another bug in RAD6.0 Web Services Explorer

I found another bug in RAD6.0. Though this one is known at IBM. The problem is the following: when a proxy is configured, the web service invocation throuhg the ws explorer generates an error.
I disabled the proxy to make it work and test my web service locally...

I won't be posting this bug to IBM since they already know it exists. My workaround is to not use the proxy for now.

I left my machine on to give a .net guy the possibility to test the WSDL and webservice... He didn't test until now...

Which reminds me to start blogging on interoperability soon.

Tuesday, February 21, 2006

IBM RAD 6.0 Linked Utility Jar BUG

Trying to figure out what the best solution is for the dev team to not put .jar files under version control, I discovered the Linked Utility Jar option.

This looks great, only does it work?

The answer is NO. Why? I don't know. I will tell you what we did.

We are developing an enterprise application for a client. In the EAR we include linked utility jars that refer to a jar on a location outside the workspace and outside of the application classpath. When I try to run the application inside the WebSphere Test Environment I get ClassNotFound exceptions.

When I copy the jar file as a utility jar it works fine in the WTE.

So I got curious. I changed the utility jar back to a linked util jar and used the export function of RAD6. Rad6 builds an ear with a COPY of the jar !!!
This means that the linked utility jar in combination with WTE doesn't work and is a bug. I am definateley going to report this to IBM.

Once the bug is fixed by IBM I will post it here.

Workaround: copy the jars in the utility jar folder of the ear. Update the .cvsignore file to ignore the resources (if you use CVS). Now WTE works again.

Starting up

Finally after a long period of following blogs on the web, I wanted to start blogging of my own. Reason is that I like a place to dump idea´s, or thoughts.

And maybe even more in the future.

I tend to use this blog mainly to address professional or work related items.