Thursday, December 21, 2006

bit of windows services

Have you ever played with the command 'sc' ? Me not. Me start today. Me like it :)

Trying to set up SVN to start as a service, I found it very interesting. The 'sc' command allows you to create,delete and play with any of your Windows services available in your Start\Run\services.msc

Note: be careful ! I am not to be held responsible if you accidentally delete your core Win services, so do this on your own risk !!

It's been several months now that I've had a "test" service (not even sure how I created it, must have been some play sometime). But I could not delete it, actually I did not had the time to look for how to delete it.

Now, accidentally, I've found the solution:

C:\>sc delete test
[SC] DeleteService SUCCESS


whoooow ! this is fun !

and there's more to it: if you have a longer service name, try first the GetKeyName option, like the following example:

C:\>sc GetKeyName "Kerio Personal Firewall 4"
[SC] GetServiceKeyName SUCCESS Name = KPF4

C:\>sc delete KPF4
[SC] DeleteService SUCCESS

(Kerio personal fw was another service I could not get rid in ages, thus it stayed 'disabled', waiting for me to discover the sc command. )

Now it's time to return to SVN ...

Tuesday, December 12, 2006

message for UK's tabloids

I was born and I am living in Romania. For those who does not know where this country is on the map, google for it. Lots of bright people were born in this country, as they were anywhere in the world.

Now, there is a big fuzz in some of UK's tabloids about Romania joining EU (European Union). Nobody seems to care, except for all romanian media. I hear it all over the radio and television that UK is afraid all romanians will eventually end up working in UK.

For those worried about it, here's a message:










PS: if I owe credit to this picture, please let me know, I think this message is genious :)

Tuesday, December 05, 2006

sort of visio alternative

I've just discovered gliffy , an beautiful example of Ajax powered application which can be freely used to draw diagrams. For a entry-level user of Visio (like me) this can be very useful.

I don't need all the power and fancy stuff of Visio, I just need to sometimes draw diagrams representing different things.

You can export to SVG, PNG or GIF, you can even publish on line the drawed diagrams.

Check it out, I really like it.

Monday, December 04, 2006

up for a new adventure

well yes, a new adventure, this is what I'm calling switching my home desktop into Fedora Core 6.
Still dual booting with windoze for the moment, until I'll get some skills into mangling the linux . Skills which I had about 4 years ago, when I did managed some Domino servers into redhat 6, aix and solaris platforms.

Good old days !

I had some issues though, was not so easy installing, due to some strange hardware: I had an EpoX MB with AMD Sempron 2800+, 2 SATA disks and one IDE. I installed Fedora on the IDE disk, making sure I would not screw my data from the SATA disks (meaning keeping these disks unconnected).
Then, after GRUB modifying into trying to convince it to dual boot, it would not recognized my SATA disks, thus booting Fedora and not Windows :)

I scratched the web for 2 days when I found something related to Epox motherboards and Linux. Seems the SATA controller was lying somehow to GRUB and was not sending the real parameters of the SATA disks, thus GRUB could not boot the Windows.
Solution was to throw away the MB and get a new one, from GigaByte. Together with it I also changed the processor with a AMD Athlon 3000+ on 64bits - as a gift:) and everything is running smooth.

Reinstalled fedora x84_64 this time, which surprisingly comes with the xGL effects I mentioned into a previous post.

I actually feel I'm 5 years younger, there's a lot of new stuff to learn, starting with remembering the vi commands.
I'd like to see how difficult will be to run linux as a desktop, considering I'm not a total newbie. We'll see the following months.

Tuesday, November 21, 2006

get back to where you once belonged ...

Thought this line taken from Beatles (not remembering the name of the song, nevermind) would be the best description for what I did these days ... meaning get rid of Outlook and reverse all my mails to Notes 6.5

Yeah, I know, I was/am a Notes developer without using the mail on Notes :)
Fact is that for me it really didn't care the mail client, that is, until I get mad on Outlook because it started to be so f..ing slow past couple of months. Add to this the crappy search ... So damn it, I migrated ! The migration ('nupgrade 3' from the command line) went smooth, about 1 hour taken to convert the .pst files - yes, multiple ones :) - to one big smootchy .nsf database which I am now using as an archive.

I used to have the Lotus client accessing my internal POP3 account in 2003, when I've got sick of changing locations all the time (multiple IDs) in order to get my mail.

Well, now I've got sick of using Outlook. I figured I better change locations than not to be able to find emails when I need them.

So, getting back to where I once belonged ... to the mail on Lotus Client.

I will also try and run 6 and 7 on the same machine. I'll get back when I'll manage to do it, not so easy ... It keeps trying to upgrade my 6 installation, but I need it for my development work ! I only want 7 for POP3 mail, just for fun :) Found an article though describing how to modify the registry to allow the coexistence. Once I did it I could installed 7 in a different location, but all executables were deleted from my 6 installation.

So, I will try and hack the damn thing, same as I did when running 5 and 6 simultaneously :)

update: does not work !! even if I managed to keep same executables (which apparently are the same). I gave up this track, reverting back to 6 so I could continue my development work.

Tuesday, November 07, 2006

still kicking around

this is to let you know I'm not dead, it's been some crazy weeks with lots of work to complete. I don't have something interesting to share with you, so I'll keep quiet for the moment ...

Thursday, October 26, 2006

a local personal DNS server

If you've ever played with DNS servers (like me) you'd like to know there's a free for personal use DNS server called TreeWalk

This usually makes DNS lookups faster (if used as a cache server) so your machine will appear to load web pages faster (specially if your provider's DNS servers are slow).

And is fun.

Friday, October 20, 2006

Domino Designer speed up notes.ini variable

If you're working remotely with the Lotus Designer, you might find annoying the relatively low speed of opening design elements (dbs,forms,agents,views and so on).
Of course this depends heavily of the speed connection, but this is not the point.

I came up today on a notes.ini variable which I've tested on my Domino Designer
disable_note_cache=3

Guess what, at least for me, I noticed an approx. 30% improvement in speed of opening design elements from the remote network. The only drawback I noticed is that icons of dbs do not show up in the left hand Designer navigation, which is not very bad.

So, I'm keeping it. I think this setting is supposed to stop the Lotus Client doing local cashes of design elements. Guess what, it did a lot more for me, since I can more rapidly check design elements I want.

new stepping stone

A couple of days ago I met with a friend of mine who managed to install on his laptop the xGL technology on top a Fedora RedHat distribution. Boy this is awesome !
I know Vista is having the same sort of stuff and improvements, but *nix distributions really will have something to say (if they don't already) into the desktop market. To see it in action, with my own eyes, was something cool.

Check out this video which I think was the first presentation from Novell - it's 11 minutes, be patient, won't regret it :)

Can Vista do this ?

Monday, October 16, 2006

Little experiment ...

I've been testing for couple of weeks now the Google Reader. This has been recently revamped, and I am stuck with it. My last feed reader was BlogBridge (google for it).
I do recommend the Google Reader for RSS/Atom feeds as you get same feeds on different computers with net access. From time to time it will throw errors, but hey, it's a beta :)

Additionally, I was thinking of adding my blogroll to this site, but I was to lazy to do it. You know what they say, good things happens to those who wait. And I've got my good thing now, that is I made my google reader domino blogroll public and I've linked it in this site (on the right-hand, Blogroll news).

How cool is that :)

something caught my attention . 32K limit again ?!

I stumbled upon this article via Lotus RSS Feed.

If basically say that the annoying 32K limit with the @DBLookup is still there, though it has been raised to 64K with Domino 6.x
On the other hand, I see the Domino version to which is applied is 7.0, not 7.0.1 or 7.0.2.

I have some bad memories of this limit, this is why I wrote this article.

On the other hand, I seem to gain more wisdom when upgrading environments. At least for Domino as web/application server, the best policy is to wait a few sub-releases (like Domino 7.5, or Domino 7.6). Then, test, test, test your apps on a safe environment to make sure no issues occurs. This way you'll be on the safe side. Do not assume that if 7.0.2 is out, your apps will work, even if you have 7.0.1 running.

This is because sometimes 'regressions' are included in newer releases. These are bugs which were once fixed, but appear in newer releases. Why these things happen I cannot know or explain, except that Domino is some 'code monster' for those guys coding C at IBM labs.

I wonder if the 32K regression is out there on 7.0.2 ....

Thursday, October 05, 2006

dvd player

I was using the well known BSPlayer for playing all sorts of video content. That is, until I noticed that BSPlayer comes with shitty aditional ads software. Then I start searching for alternative. And I found one, very comfy, as in free: AVS DVD Player. The site provides this player for free, and they also offer a bunch of video related tools, which might be just great to try/evaluate/buy. As I am not a video addicted junkie, I only need their player, which is great !

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.

Monday, August 28, 2006

protected flag on Domino Directory

I recently run into a nasty issue which is exactly the same story described by Jens Polster

More than that, seems like IBM created an Technote as a result of Jens complaints.

I think that IBM has missed the point, though: I want my key users to be able to web edit person documents. I want to do it simple, using the Author level within the ACL. If this BUG maintains, I have to somehow create a separate security model for the application, which is of course time consuming. And the BUG is really simple: a field without the Security Property "Must have at least Editor access to use" gets the PROTECTED flag when saved by an Author. I will also test my Custom Directory in different scenarios and try to find a solution/answer. My environment is 6.5.4FP1 on Windows.

UPDATE: it's not a sensational update, since the solution was to allow ACL level to Editor instead of Author. I was lucky enough because the condition of one key user to NOT edit other documents was an external factor, meaning the key user had to have the same country as the user he is trying to edit. So, Author fields are of no use, insead the OfficeCountry field come to solve my particular need for simulating restrictions offered by default at Author ACL level. Afterall, I didn't have to create a rocket-science security model, I could trick the damn BUG. Hey IBM, wake up, you have a BUG in ur Domino system :)

UPDATE 2: After allowing Editor access, I've got myself another issue: how to prohibit deletion of users ? If we allow Editor + Delete documents right, all Editors will be able to delete users from other OfficeCountry then theirs. Then it struck me: we don't allow the Delete right at all. We show the Delete button on web, instead remove that person document from all Domino views, including ($Users) which is used by Domino to lookup usernames. So, this BUG turned out to be a feature, afterall ... not really.

... back after holidays

I've been away with my family in a two-week holiday. Away from the big-smokey-traffic-jammed Bucharest which is a hell to live in :(
Here are some pictures of my 3.5 years old daughter, Ana:
2006_08_21-26
Aug 21, 2006 - 17 Photos

Wednesday, August 02, 2006

can I do programming ?

here's a very interesting publication which seems to be able to respond to the question: hey, mum, I wanna be a programmer, what do you think ?

And the mother pulls the below test:
A cognitive study of early learning of programming by Saeed Dehnadi, Richard Bornat

Personally didn't have the time to complete all the quizes and the evaluation seems a little complicated, however this could be used in schools. Afterall, in my case, after 7 years of actual programming, I guess I can do programming, mum :)

Friday, July 21, 2006

saving the day !!

well, being in some sort of time crisis, I needed a quick way to change multi-valued fields on multiple documents. Usually when I needed this I would create an agent and perform the task myself. It just got to me that I need a clever tool to reuse it whenever I might need it again. With littke diggin', here is the tool, thanks to our everlastingopenntf.org:

Joe Litton - ChangeFieldValue

Thanks, Joe !

Wednesday, July 19, 2006

multiple IE versions on the same machine ?!

I am working these days to reproduce an error which seems to appear only on IE 5.0 and some versions of IE 5.5 which are using Scripting Engines older than version 5.6 (is the JS error “Error: Unexpected Quantifier” ring a bell ? ).
We do have an old machine which was kept only for this specific purpose, of testing against 5.5.

And I get the idea of searching if somebody ever tried to run multiple versions of IE on the same machine. Guess what, they actually managed to get this going. How ? Well, read the following article:

http://labs.insert-title.com/labs/Multiple-IEs-in-Windows_article795.aspx which I found thanks to one of my preffered sites,http://www.quirksmode.org/browsers/multipleie.html
And to cut the chase, this is the link to the packed versions of IE, ready to unzip and run on the same machines: http://browsers.evolt.org/?/ie/32bit/standalone

I will soon give it a try, hopefully this will work ... Anyway, this is another way thank to the effort taken to put this is place. IE sucks :)

Friday, June 30, 2006

fighting spam, locally

As I've noticed in past weeks that more and more spam is reaching my inbox, thought I should look for a free and acceptable solution which should work with my outlook client - and yes, I'm a Domino developer ;)

Here it is: SpamPal
You need to feel comfortable changing your email settings, as this pretty cool app will open your 127.0.0.1:110 (POP3) port to which your email client will connect.

On the other hand, your username for POP3 has to change into: username@my_actual_POP3_host, so that SpamPal will take ur host from your username and connect to it.

These being said, I am now almost 'spam proof', which makes me a happy man. Today.

Wednesday, June 28, 2006

using YM and want to get rid of annoying ads ?

here's how to do it - Not my findings, though is useful to share :)

Open Regedit, navigate to HKEY_CURRENT_USER\Software\Yahoo\pager\YUrl and create a new string key named Messenger Ad that has the value * (an asterisk).

Other keys you can create to remove ads from Yahoo Messenger:

Webcam Upload Ad
Webcam Viewer Ad
Webcam Viewer Ad Big
Webcam Viewer Ad Medium
Change Room Banner
Conf Adurl
Chat Adurl

This works for YM 7.5 and also for the new 8.0 Beta which I've installed today. Thus the reason for this post :)

Monday, June 12, 2006

want a personal firewall ? check this out ...

Congrats to the team at coresecurity for their initiative of a free firewall product.

While the product is beta, for an average user this is great for self protection. Give it a try, this is a must have !!

Friday, June 09, 2006

no, really, when will MS give up into marketing 'Domino to Exchange (sorry, now it's Sharepoint) migration '?

Here's annother announcement that the application migration tool from Domino to Sharepoint has been 'updated'. As already pointed few months ago by people who tested the older version(sorry for not giving links here, too lazy to search), such a tool is almost impossible to migrate but the default Domino templates and that's pretty much it. Complex Domino apps cannot be migrated with a 'tool'.

So if you want to waste some time, have a look

Wednesday, May 31, 2006

JS querystring params when ! is the command delimiter

I faced a problem receiving the querystring params using only JS code.
Scratching the web I found examples of JS functions which rely on document.location.search to retrieve the querystring, then parsing it into oject.property=value

This solution works well on standard URL (which Domino generates by default):
myserver.com/db.nsf/docUNID?OpenDocument¶m1=value1

This is because the document.location.search would return everything after the question mark, meaning OpenDocument¶m1=value1

But what we can do when the Domino generated URL is:
myserver.com/db.nsf/docUNID!OpenDocument¶m1=value1 ?

This change can be performed server-wide by setting a parameter into the server document, then all generated URL will change the question mark with the exclamation mark. And in this case, document.location.search would be empty :)

My solution was something like this:

if(document.location.search=="") {
if (document.location.href.indexOf('!') != -1) qryString = document.location.href.substring (document.location.href.indexOf('!')) ;
} else {
qryString = document.location.search ;
}

meaning that if location.search is empty, I search for the first ! into the location.href and assume everything after is the querystring to be searched for required parameters. Not sure if this is the best approach, though ...

Thursday, May 18, 2006

domain search related

these days I'm very tired and busy trying to somehow improve the search results which are thrown by the Domino Domain Search.

while I do know how to configure the customization of the search results form, I still haven't quite understood how to control what gets display into the DSDocSummary field. I wonder if this can be controlled at all ...

So far I read somewhere that the Search engine is adding the most relevant phrases to this DSDocSummary, for each entry it founds. Doh ... so what is considered to be relevant or not ? I managed to get some summary in the results, however it didn't make any sense ...

Friday, April 21, 2006

starting to learn XSLT ? here are some tools ...

As I wanted to take a closer look at this "language", I found myself loaded with lots of articles describing what it is, how to use it and so on ... much information useful theoretically, hard to apply in practice. Why ? because as I am not so familiar with XML syntax itself I could hardly focus on what's important to get things done. And what I want is simply to play a little bit with the XML generated by a ?readviewentries Domino command and trying to transform it into something more useful.

So I started to look on the net to find useful tools which can increase my learning curve into XML/XSLT stuff. After reading articles and stuff I did find a useful example list and a great tool

Both above links are great resources, because they allow you see step-by-step what is going on when you apply an XSLT to a XML source.

Actually, the ExchangerXML allows debugging of XSLT transformations, much like the examples mentioned above. And can be used free of charge for a beginner like myself. If I will go deep into this technology I will consider buying the full license, this is a very good piece of software.

Tuesday, April 18, 2006

use domino servlets unpacked

As many others like you Domino devs out there, I am also approaching Java. For the moment, Java under Domino. And I am also playing more and more with servlets, due to their feature of being loaded into memory. I think this makes things a little faster.

I used to like packing files (classes) into *.jar files, then deploy them on the domino server using ftp, issue 'tell http restart' and test. No more this approach, at least the jar packing. Why ? Because if you deploy a new servlet into domino\servlet\someServlet.jar, you also have to specify the same relative path into the server document (the Classpath field). If you have many servlets, you may end up deal with the 32k limit for the Classpath field.

Solution is to leave the Classpath field to its default domino\servlet path, then recreate the folder hierarchy on the domino server

Example: using Eclipse, I like to keep things organized. I use packages, thus the servlet code is looking something like:

package ro.radu.mypackage ;
public class MyServlet extends HttpServlet {
....
}

When compiled, on the Domino server, I go and create the proper folder hierarchy: domino\servlet\ro\radu\mypackage and copy the MyServlet.class into the last folder.

This is old news, I know :)

The advantage is that you can have one Eclipse project called DominoServlets, and all little servlets can be developed under the same Eclipse package, deployment meaning:
- copy your class file on the Domino server proper path
- if new, modify the servlet.properties file under /domino/data to add an alias or whatever needed.

Monday, April 17, 2006

Domino embedded groups solution ... done !


well, I finalized the solution and it is actually working, as you can see in the picture. The biggest challenge was to find a proper tree-view builder, free of use (as I didn't want to reinvent the wheel, that's what I love to open-source community). And the best I found and can recommend is the Yahoo Tree-View Builder


Next steps were to figure how to use it and put this widget to work under AJAX Domino technique of calling an agent which performs full text searches agains groups documents within a Domino Directory.

The agent is rather simple, calling query syntax of [Members] CONTAINS "name of group" and return the names.

Then, simple matters of JS coding and put together these pieces.

So, you start by entering a search string (can be the username or the group name), then the button 'search person' gets the search string and mocks with the tree-builder. Then, on each click of a result group, the agent is called behind the scene and builds the hierarchy of embedded groups.

As you see, 'radu cadariu' belongs to the 'group test1' . 'group test 1' is embedded in 'group test 2', which in turn is embedded in 'group test 3' and so on. I didn't check for the loop in the embedded groups which can obviously be noticed by the person who builds the hierarchy.

This tool is for Domino directories which contain a lot of embedded groups, as it was born out of necessity rather than fun. Anyway, it was fun to build it :)

Friday, April 14, 2006

rediscover things ....

just had rediscovered Wikipedia , a tremendeous useful resource of information. For instance, let's take the example of the nowadays key word "AJAX". I remember I've read an article back into 2005 which defined this acronym. I even bookmarked that article, then I've lost it and obviously didn't remembered the site.

Guess what, by accidentally get on the Wikipedia page for AJAX, I rediscovered the article which invented this acronym

Wednesday, April 12, 2006

Domino embedded groups solution ...

As we all (Domino related staff) know by now, embedded groups can be a pain to manage and have an overview upon. Not to mention an old and good project I'm working on, which heavily relies on groups for security management. Editor can do whatever they want with their groups, thus resulting a mess when we try to figure out why a user cannot gain access to certain part of the site.

After thinking over for some time, I think I may have a solution for this, thanks to my more or less recent discoveries in terms of Ajax applied to Domino web apps.

In the first step, using an agent build using the Andre Guirard's LS class NotesGroupManager (more here ), I managed to search group embedded hierarchy with an URL command such as:

http://srv/names.nsf/agent?OpenAgent&parm=username

This command would launch the agent, get the query parameter and perform full text searches recursively against the groups, returning HTML as format. Problem is that this agent would eventually throw 'agent did not complete within time limit', so I had to gave up on this approach.

What to do ? building a separate db with a scheduled agent would be to much of work, and as I've already admitted I'm pretty lazy :)

And today it came to me: since I seem to not be able complete the embedded search in one run, I may request the user to participate. This means a simple page with an inputbox and a search button. Scenario is this:
- user enters the search string and hit Search.
- using ajax, I call the agent and full text search the string, returning the group names as JS array
- we do have the DOM and little JS skills, so we build the first level of embedding with radio buttons.
- then, if the user needs to go deep in the hierarchy, he will hit a returning entry and the same process starts again, with the results inserted right below.

Result ? my agent performs only one full text search in one run, so it will not crash. User builds the embedded hierarchy of groups as it see the results.

There might be even loops in this embedded groups of Domino, and for this project there certainly are, but I will rely on the site admin to figure this out :)

Saturday, April 08, 2006

new ideas ...

applied to Domino, coded by my own hands, with ideas taken from blogosphere. Those Domino bloggers which give back to community are pure gold for lazy programmers like myself :) Thank you guys, my hat's off.

I'll update this entry with the proper links, for the moment I'll describe my ideas, details in future posts:

1. a generic web view for inline edit of Domino fields
2. a XSL/XSLT transformation of a ?readviewentries result. In fact I would have multiple readviewentries calls performed from the same page towards several domino dbs, with ajax
3. I'd like to obtain a file selection JS window for the Domino dbs. This would be accomplished with NotesDbDirectory LS class, put in an agent and called from web. I'd like to have another solution aside the DbDirectory class, for the moment I have to stick with it and give it a tryout.

Monday, April 03, 2006

GlobalSign CA not available into the cacerts file

Just fixed an issue which is well known, related to GlobalSign Root CA not available into the cacerts file of the JVM.

The solution is described here