jump to article
...intermittent thoughts

that’s frustrating!

every second start, my Firefox cannot start. It comes up with a Update notificator which does not work at all. The Bookmarks bar is completely blank. And of yourse you cannot do anything at all with it. So I have to kill this process and have to start the browser again...

Image:that´s frustrating!

Firefox 1.0.2 mit neuen Bugs?

Also irgendwie ist der Firefox in Version 1.0.2 ziemlich instabil geworden. Seit ich mir diese Version installiert habe, startet der Brwoser immer seltener, bleibt andauernd hängen und beendet sich auch oft genug nicht wirklich. In der Prozessliste findet sich dann immernoch ein alter Firefox-Task, der erst einmal abgeschossen werden muss, bevor ewin neuer starten kann. Klar, den Firefox sollte man wohl nie beenden, aber diese Intention ist doch wohl nicht wirklich in Code gegossen worden?!? :-)

fixed!

There was an annoying bug in Notes/Domino: when using ODBC in combination with the LCLSX, your machine may run out of memory after a while.

A couple of month ago I experienced this while having big trouble with an application I wrote for kind of synchronizing data between a relational database and a Domino database. After a few days of running this application, the server runned out of memory and simply crashed. Situation became harder day by day since the application was new and the base of relational data was growing every minute - in the end we had a crash every couple of hours.

After a few hours of investigating I found a reason. Every time a LotusScript agent uses LCConnection.fetch() a certain bit of virtual memory is allocated but never released. The only way to get the memory back is to restart agent manager on the server or restart the Notes client (which is affected too). No other way of garbage collection - which was not sufficient for the circumstances we had in that application environment.

The bit of memory, lost by every fetch() depends on the ODBC source you use. In a series of tests I did that time, the amount of lost memory varied from a couple of bytes to more than 40 kBytes for every single call of fetch(). Unfortunately our source was the one with the biggest looseage of approx. 45kB per call of fetch(). Thoughts about redesigning the aplication always leaded back to the need of using LCConnection.fetch(), so it was not of any use to redesign the application.

After a while of contact to the developers we got a hotfix for Domino 6.5.2, which simply works fine for us. This fix is now included in the main code stream and will now be available in Notes/Domino 6.5.4 and 6.0.5

das geht auch...

jedes Wort für sich ist richtig, aber trotzdem bringt die EU ein Deutsch zustande, das sich gewaschen hat. Jetzt wissen wir also, warum in Brüssel händeringend noch ein paar 10000 weitere Beamte benötigt werden....


Image:das geht auch...

HTTP redirects with LotusScript

Have you ever used the $$Return field in a Lotus Notes form? Have you then tried to use a similarity in LotusScript? found one? Hey, you are lucky! For all the other's here's a little how to:

The purpose of a $$Return form is to redirect a HTTP-Request from one location to another. This is really useful if you save a document via Web and want to avoid the very well designed and absolutely self-describing "Form processed" page of a Domino server. There are tons of other things you may need to redirect a page for, using the $$Return field is the way to do this. Usually. But what if you have to or want to use just plain LotusScript to do all the stuff you want to - including a redirect to any kind of a return page? Usually you have two options:
try to pre-calculate the $$Return field by the @Formula engine and then use it. But this is not really a clean way - you always have to code in two different programming languages. Additonally if you are using a WebQuerySave agent on a form which should not be saved (SaveOptions field set to "0") this option does not work.
So, the second option is to print out some small html code like:

< html>< head>< meta http-equiv="refresh" content="5; URL=somewreelse">< /head>< body>< /body>< /html>

yes this works, but it is long, very long and not really the best way to make a redirect. Of course there is the option to do the same by using JavaScript, which is in fact even worse - not every browser uses or wants to use javascript. That's why I dont give an example here.

So how does a real redirect work?

Its so simple I wonder, why I didn't realize it before. If you consider that the first print statement of every LotusNotes agent is written directly to the HTTP protocol header you can easily find the solution. In RFC1945, the spec for HTTP1.0 there is a paragraph describing how a redirect should be done by a server, serving the http protocol. So if you do the same, you can get a redirect too:

simply print the complete URI of your redirect adress as the first output line in your WebQuerySafe agent. Here's an example:

... some piece of code...
print "Location:" & newurl
...some other piece of code...


where newurl contains the complete path or URI of the page to be redirected to.

Yes, that's it! Fast, easy and efficient!

vowe off the net

Uh, he's off to CeBIT and his server has went down - hard times if you have a tight schedule in Hannover! Hope you can manage it anyway vowe!
Image:vowe off the net