Friday, September 29, 2006

brilliant movies, essence of human behaviour

They're about 10 minutes, but they sure worth every second. The language you hear is romanian (actually is a dialect of it), the translation in english is poor comparing with the actual beauty of the language.

Both of them are directed by the same smart fellow, Igor Cobileanski. They received some awards for short films, google for more info.

"When the lights go out"


"Sasha, Grisha & Ion"

Friday, September 22, 2006

Lotus Notes/Domino 7 ? who cares ? bring Hannover on ...

In this post, let me share some thoughts with you. I was thinking about the new released Lotus Notes/Domino 7 version. While I didn't installed/played with it, I think I could as well skip it. Why ? Because IBM is already planning the release of Hannover, which is in fact "Lotus 8". And the release year is 2007. Meaning almost 1 year from now on - ok, assume 1,5 years :)

Don't get me wrong. I am a Principal CLP into R5/R6 Administration, and I love Lotus. As stated into my description field on this blog, I first started with Exchange. 5. What times, what glory :) Then I've got addicted to IBM and their Lotus.

However, why bother with large deployments of Lotus 7, when Lotus 8 will be a totally different and new approach to the product ? Think about this: IBM promised integration with DB2 since Lotus 7 was first planned. They missed it, now delivered under 7.2 or something.

This is the point, and also the battle between IBM and its closest competitor (sic!) , Microsoft: to have a collaboration platform (mail,document management,workflow,security and so on) working with its core, on a relational database. What IBM is doing with it in Lotus 7, is an experiment. Or is a lean transition towards it.
Microsoft promised SQL Server as storage for Exchange, and they missed it by far. Guess what: Hannover will be the first collaboration platform to deliver it.

As recently heard, Eclipse will be able to speak with .nsf files, on API level. This is why the new Lotus 8 client is Eclipse based. This means that our .nsf flat databases are transforming. They are getting ready to be easily replaced by ... let's say, Apache Derby. Or Hibernate. Or ... DB2, SQL Server, Oracle and whatever RDBMS system out there.

Will I be right ? The future will tell ...

Monday, September 18, 2006

@NameLookup not returning multiple values ... so make it single value

These weeks I am developing a web interface for administrating Domino users. Web users. No fancy Domino Administrator, no Lotus Notes ID's, nothing of this sort. Just plain database with design inherited from pubnames.ntf, then add/modify design elements.

In this adventure I was inspired by the following great articles:
Bob's view navigation
Ferdy's Domino XHTML Forms

[I managed to get and use the view navigation from Bob's site, I also tweaked it according to the requirements. I hope that when finished, I will upload my work back to the community, in an empty template. A future article will follow on this subject.]

The issue I was facing is that @NameLookup apparently does not return a list of values, when the item I'm looking for is multiple-values. It only returns the first value. Why the hack is this happening I cannot tell.

Let me explain:

I do have a computed for display field (can be also a simple computed text) with the following standard formula:

user := @Name([CN] ; @UserName);
lookup:= @NameLookup ([Exhaustive]; user ; "OfficeCountry");
lookup

No error checking as to keep it simple. As you see, I am trying to return the OfficeCountry Domino item. By default, this is a single value field in pubnames.ntf design. Ehh, so what, I've made it multiple values in my web form, also in $PersonInheritableSchema subform which is used to display the document in Notes.
I had no luck: even though values are displayed as list in the OfficeCountry field, only the first value is returned when I do the @NameLookup.

Feel free to drop me an email if this works for you, it didn't for me. And I don't have to worry about it because I managed to trick the damn thing.

Obviously I had to drop the idea of making OfficeCountry as multiple value field, instead I made a trick, described here. The idea through me off my chair due to its simplicity:

The HTML code in my web form is the following:
<select name="OfficeCountrySelect">
<option>Country1</option>

<option>Country2</option>
<option>Country3</option>
</select><br/>

<input name="OfficeCountry" value="" type="hidden">


Then, just before doing the submit() so that changes are saved, we do some validation (Carefully read and understand Ferdy's article above, it explains it very well) and I simply take all options values and put them into the OfficeCountry hidden field, with a JS code some something like:


//validation function body
....
if (document.all) document.all.OfficeCountry.value = _
getOptionsFromSelect ('OfficeCountrySelect') ;
....
//validation function body


then comes the getOptionsFromSelect function:


function getOptionsFromSelect (strObj) {
selected = new Array();
var obj = document.getElementById (strObj) ;
for (var i = 0; i < obj.options.length; i++)
{
if (obj.options[ i ].selected) {
selected.push (obj.options[ i ].innerText);
}
}
return selected.toString ()
}



And here we go, the OfficeCountry will store a single value: Country1,Country2,Country3
Then, @NameLookup will return all values as a single string and I don't need to worry about it returning only single values.
Obviously, in other parts of the code, I need to @explode this string so that I can work with it.

Sunday, September 17, 2006

FOSS

Stands for "Free and Open Source". Right, every day I'm learning new things, so from now on I will label as such the posts which highlight programs and applications created by FOSS community. You can check these posts on the right hand on this site. These are all applications I ran into, usually I'm keeping them in my toolbox. If you know of other similar apps, feel free to drop me a line at sigpwrATgmailDOTcom.

Saturday, September 16, 2006

registered to dominoblogs.com

I finally took the step of register this blog with above community of Domino diggers.

I did it because I feel I have things to give back to the community, after years of searching solutions/ideas into some of the most famous Domino related blogs.
When I'll have the time I will also create the blogroll list on this site, meaning the list of Domino bloggers which inspired me during the years.

Another trigger for me was that I seem to be the first Romanian Domino blogger, which is kind of cool. I personally know several good Domino developers located in our beautiful country, though I don't think they do blog.

Thursday, September 14, 2006

New look, better features

blogger.com has it, I moved. The new beta of their tool looks much better. In fact this is my new post into the beta, after switching to it completely. The best thing I like is that now we do have Labels. Yupieee ! This means that I finally can categorize my posts without following daunting solutions to have this simple feature. Great work folks !

Tuesday, September 12, 2006

Another great tool for domino dev/admin

It might be a long time since our fellow Domino blogger Chad Schelfhout has started working on his version of Edit Document Fields, I've just discovered it. And I've add it to my toolbox. This has to be one of the best tools for changing fields into *.nsf on the fly. It is a 'must have', like you have to take with you the key to your car.

Thanks Chad, eternal fame to you !

Monday, September 11, 2006

more secure Internet Passwords issue

got an issue today with setting the field 'Use more secure Internet Passwords' field into a 6.5.4 Domino Directory. Seems that the Lotus Team changed somehow the design of the Domino Directory so that no matter what, the new algorithm for encrypting the Domino Web Passwords is active, no matter what. To demonstrate that, just open your names.nsf database, the Person form and check the WebQuerySave event. Mine lists the following formula:

lookupProfile := @GetProfileField("DirectoryProfile"; "SecureInetPasswords");
@If(lookupProfile = "1"; ""; @Return(""));
FIELD $SecurePassword := "0";
""

So, even though the lookup is made for "DirectoryProfile", they still set the field $SecurePassword to the value 0
When did they changed this is not clear to me, fact is that from 6.5.4 new Directories will have this behaviour, unless they changed it in newer versions.

So, why is this such a big deal ? Because I customized a Domino Directory to use it for web users only. And I also added a change password form so my users can reset their passwords. I am aware of the ?changepassword command, however this uses the Adminp process to reset the http password, I wanted to avoid that.

And my form uses the encrypted password to verify against the one stored within the Person document. With the new algorithm though, the result of the encrypted password is different on each save, no matter if the password is the same. And my code can no longer verify the existing password against the one stored. And I'm screwed :)

Thus, I need to revert to the traditional (and yes, less secure) way of Domino Directory encrypting HTTP passwords. How do I do that ?

After 1 hour of testing and cursing, appears that I need to delete the field $SecurePassword from all person documents, beside the fact the Directory Profile has to list a big 'No' in the field 'Use more secure Internet Passwords'.

new migrate to Domino redbook

Though like 4 years past since I've last done some serious Domino administration, this is a cool draft redbook to have in view, should you get sick of Exchange and its requirements for more and more processing power, memory and HDD storage just to have ... mail
The last buzz is that Exchange 2003 requires 64bit Windoze machines to run on, otherwise it won't install. Suppose you have Exchange 200x or whatever current version and you want to evaluate the new/bragged Exchange 2003. Suppose you didn't bought 64bit servers because you didn't have to.

Question: can you evaluate Exchange 2003 ?

Answer: probably not. Sic !

So, you'd probably want to evaluate Domino 7, then go get the Migrating from Microsoft Exchange2000/2003 to Lotus Notes and Domino 7 redbook and get rid of Exchange.

On the other hand, if you don't need other than simply mail, why installing Exchange or Domino, you'd be better with *nix mail servers, at least they're reliable and won't request 64bit CPUs hardware.

Friday, September 01, 2006

subversion ? why not ! why ? read on ...

Today I finally found some time to look over Subversion, which was praised by a colleague of mine to be far more superior to CVS. While it took couple of hours to set it up and start running (as a newbie which I consider myself), I also started to have a look over the official book - after installation and mocking around, of course :)

Reading the first pages, I discovered why Subversion is better than CVS: because it was designed to be better. Here is the link to the page which describes these reasons.
Even if I didn't quite turn to Java (not yet, though this seems to be my development future), currently I design couple of applets/servlets/Java agents for Domino, using Eclipse. I also like the Aptana plugin, which allows me to build JS libraries and test things.

All my Eclipse environment for Java, as well as JS, was versioned with CVS. Guess what, after today's 'test-drive', I think I'll turn to Subversion.