Thoughts about Damien’s CouchDB, his new company couch.io, trends and Lotus Notes
Julian Buss, July 27th, 2010 09:49:54
Tags:  Lotus 
Most of you know Damien Katz, ex Loti and the inventor of CouchDB. I just look at the progress of CouchDB from time to time, and I have some thoughts I want to share:

If you look at CouchDB, you'll find many, MANY similarities to Lotus Notes databases. It's document orientated / schema less, it has the concept of views, it can replicate, it can be clustered and app code and data can be in the same container.
I does not have in-depth knowledge of CouchDB, but from the view of an outsider I think one could say: Damien took all the greatness of Lotus Notes databases and re-created it from the scratch, using another technology as platform and giving it another interface, thus making it more "web 2.0" like.

Damien seems to be a hell of a coder, and he deserves the most respect for creating such a beast pure on his own. He showed that he is a good one back in the R5 days, as he rewrote the formula engine (a story well worth reading).

What I find most interesting is the attention his new baby gets. Schema less databases are kind of trendy nowadays, and there are lots of articles in the web and printed press (at least here in germany) about that "new" technology. And CouchDB is present in every of these articles. CouchDB gets the image of a new, modern database approach for the web 2.0 world.

And now guess what product is never present in those articles. Yes, Lotus Notes.
Despite the fact that Lotus Notes has all this technology since decades, it is non-existend in this "new-modern-hip-web-2.0-database-world". All these non relational, schema less databases are treated as pretty new and cool stuff, while the whole technology is as old as Lotus Notes is.

Damien even managed to get good funding and is now building a new company called couch.io. Again, don't get me wrong, he deserves all respect for that, and I'm very happy to see that he makes his way. His website is trendy, he is just about to host his first event (think of Lotusphere, but much smaller and cooler) and he seems to get some attention with his new company.

Now imagine the very same company, the very same website - only offering Lotus Notes databases instead of CouchDB. Instantely, it feels so much less cool, doesn't it?
Would anyone founding a new company about Lotus Notes database services get such a modern, good image? Certainly not.

I think my point is that while the technology of CouchDB and Lotus Notes is very similar, Notes is treated as old-school and big and ugly and so on, while CouchDB is lean, fast, nice, modern, trendy, shiny etc. I wonder what would happen if one codes a REST API for Lotus Domino databases like the CouchDB API and builds a company around that while completely hiding the fact that it's based on Lotus Domino.
Bug with encrypted documents and LotusScript NotesDocument.isEncrypted property - what do you think?
Julian Buss, July 23rd, 2010 09:21:42
Tags:  Development 
I found something by accident: let a collegue send you an encrypted mail.
Then write a LotusScript agent like this:

---
Dim session As New NotesSession
MessageBox "Selected document is encrypted: "+CStr(session.currentDatabase.Unprocesseddocuments.Getfirstdocument().isEncrypted)
---

Now perform the following two tests:

1.) Select the encrypted mail in the inbox and execute the agent. You will see that the .isEncrypted property is FALSE.

2.) Open the mail, then execute the agent against the open UIDocument. You will see that the .isEncrypted property is TRUE (as it should be).

From my point of view, this means:

- As soon as you access an ecrypted document with LotusScript and you got the handle to the document from a view, the document will be decrypted. If you save the document then, it will be saved DECRYPTED. You need to call .encrypt() by yourself again.

- You cannot test if a document is encrypted or not at all if you got the handle to the document from a view.

- The behaviour is different wether you got the document from the view or an open UIDocument.

I tested this with 8.5.1 and 8.5.2CD5. Can anyone confirm this with other clients? What do you think about this?
Gone fishing.
Julian Buss, July 9th, 2010 15:57:11
Tags:  Vacation 
It was quiet in my blog the last days. This was because I'm busy polishing the next release of our CRM suite. BTW that's a work I like: not implementing new big features, but making existing features perfect and faster than before :-)
It's always a big pleasure when I found a way to save the user one click. Or when I re-engineered a feature to save a second.

Anyway. It will continue to be quiet here, because starting today, I'm on vacation for two weeks. Together with my brother and his wife we chartered a nice motorboat in the Netherlands, with which we will cruise through various rivers, channels and lovely towns. We made that kind of vacation several times in Ireland before (you know, Ireland is a very, very, very beautiful landscape, highly recommended!), and I'm sure it will be nice in the Netherlands, too.

So, I'm going offline now. Looking forward to it :-)
Recent updates at xpageswiki.com
Julian Buss, June 10th, 2010 21:10:19
Tags:  XPages 
Apple WWDC: the good and the bad
Julian Buss, June 7th, 2010 21:06:53
Tags:  Mac 
I guess you already read everything about Apple's WWDC event. Steve announced the new iPhone 4 and the new video calling feature.

Both are good news. The new iPhone is a class of it's own - again. And it comes with video calling, which should work perfectly since it's from Apple. But as it seems, it will only work via Wifi for the time being... not sure why. UMTS should be fast enough, too.  It depends on your network if it works everywhere or via Wifi only.

So if video calling would work over normal UMTS connections, it would be a killer feature. It would cause me to buy one for my mum, so that she can do video calls with their grandchilds. But, since it's Wifi only at the moment, there is no reason to buy it.

And what's more? Nothing. Unfortunately. No updated Mac Mini. Nothing in the TV area, no new Apple TV. Nothing about the next Mac OS.

So, I will update my iPhone 3GS to iOS 4 when it's available. Then I'll wait if Apple sorts out various issues with iPad. Otherwise, I'll be a happy camper with my current Macbook, Mac Mini and iMac.
Why Flash is oldschool and HTML5 is the raising star. Cool Demo.
Julian Buss, June 4th, 2010 09:23:05
Tags:  Development 
You know that Apple don't like Flash anymore and doesn't include it in the iPad. Personally, I never liked Flash in the first place because it needs a non-standard plugin in the browser, and I can never be sure that the visitor has the most recent version of that plugin. Same goes to Microsoft Silverlight; I know that it's awesome and one can do incredible cool things with that technology, nevertheless, it needs a plugin, so I would never use it for public websites / webapps.

HTML5 seems to be the way to go. And Apple just published a demo what HTML5 can do.

Note, that demo only runs in the Safari browser. Most other browsers should be able to do the same, but I think Apple want to show how nice all that stuff works on the iPad and therefore made it Safari only.

Here is the demo: http://www.apple.com/html5/
Lotus Notes is getting faster and faster - report from 8.5.2 CD5
Julian Buss, June 2nd, 2010 13:21:51
Tags:
Disclaimer: this is beta and there are no guarantees that the features described here will be in the final product that IBM ships.

Some weeks ago a customer of ours complained about the performance in one of our applications. He used Notes 8.5.0. Since I could not reproduce, I suggested to upgrade to 8.5.1, which did a significant performance boost. So, until now Notes 8.5.1 is as fast as Lotus Notes can get.

Not anymore. I'm very pleased to report that the most recent Lotus Notes 8.5.2 Beta is notable faster than 8.5.1 in many aspects:
  • Startup is faster due to a new "load parts of Notes at operating system start" option.
  • Opening Mail is faster.
  • Opening complex framesets with many forms, pages and so on is faster (in my test scenario: 8.5.1 about 4 seconds, 8.5.2 about 3 seconds).
  • Opening Notes documents with complex forms (lotus of tables and images) is faster (in my test scenario about .5 seconds).
  • And overall the client feels more responsive.

I hope that IBM is still tweaking performance where possible, since performance always makes a real difference for customer satisfaction. But personally I feel that with 8.5.2 we will get a client that's as fast as (or as slow as :-) ) competitor products, but has tons of additional functionality.

PageIcon in Composite Application: where is the mistake?
Julian Buss, May 31st, 2010 11:22:19
Tags:  composite applications 
I want to change the page icon (com.ibm.portal.PageIcon) in a composite application. But. It. Simply. Does. Not. Work.

Here are the steps, please enlighten me what's wrong:

1.) In 8.5.1: opened composite application editor, opened page properties, opened icon selector, icon icon list is being read and... nothing. No entry in the list, I cannot select an icon (yes, there is a PNG-icon in the app!).

2.) in 8.5.2 I don't have the CA editor installed, so I opened the XML directly. Searching for "PageIcon" revealed the following entry somewhere in the XML:

"com.ibm.portal.PageIcon">
               "" xsi:type="base:String"/>

 
I took the equivalent entry from another application and changed it to:

"com.ibm.portal.PageIcon">
               


No luck, Icon didn't changed.

3.) Then I looked for the section in the XML describing the page the application starts with. I found it and added

"com.ibm.portal.PageIcon">
             "nrpc:///C1256E980026EBBC/icon?file=youatnotes%5Cdevelopment%5Ccrm%5Cproduct%5Ccasetracker.nsf&name=ca_applogo.png" xsi:type="base:String"/>              


Again, no luck.

4.) I changed the URL in the property to:

"com.ibm.portal.PageIcon">
             "nrpc:///[rep_id]/ca_applogo.png?OpenImageResource" xsi:type="base:String"/>              


or

"com.ibm.portal.PageIcon">
             "notes:///[rep_id]/ca_applogo.png?OpenImageResource" xsi:type="base:String"/>              


Both without luck.

Please can someone share the missing link with me?


UPDATE 1. july 2010: I nailed it down. The icon selection dialog in the composit application editor works when I remove all image resources except one. In the app there are about 300 image resources, so it seems that the icon dialog has a problem with that amount of images. I made a reproducible case and sent it to IBM.
European Song Contest: Unbelievable!
Julian Buss, May 30th, 2010 11:01:37
Tags:  Allgemeines 
Unbelievable. Simply u n b e l i e v a b l e.

It's about 30 years ago since Germany won the European Song Contest. I have only fade memories about the artist named "Nicole" who won past then. After that, every year our artists and songs got nearly no points at all. Every. Single. Year.
There were few exceptions who made it to the top ten (out of 26 or so). Last year was a total desaster, we were to position 25 or so... huh, what a miserable evening that was.

But now this. No one believed in this. No one. A miracle. To be exact, a miracle with four letters: LENA.

LENA was found in a casting show organized by Stefan Raab. He already sent some artists to the European Song Contest some years ago, and they made it into the top ten. He even performed personally one time, and was in the top ten, too. And after the last year's desaster Stefan took the whole thing personally.

Stefan teamed up with two big TV networks in Germany and organized a casting show. And it was a very good one, where the music was the most important thing, and not weird personal tears & weep stuff like in those other casting shows.

That was only four months ago. In four months, LENA won the casting show, placed four tracks in the german top five and drove to Oslo for the European Song Contest.

As every year we invited a couple of friends to watch the contest together. We had a barbecue, some drinks and then assembled around the TV. We saw 25 other artists from all over europe, we saw good, bad and weird performances. Nearly all of them had various bells and whistles around them, like dancers, a band, clowns, fireworks and so on.

And then LENA came. A 19 year old girl. Nice, black dress. Alone on the stage, only three background singers were behind her in the dark. All the light was on LENA only. She smiled and started performing the song, made it look like it was nothing to stand on the stage watched by all people in Europe.

Finally, after the show, all countries gave their votes. Every country can vote one to 12 points for 12 artist.

In the former years, we were happy when someone gave Germany one or two or three points. More than five points were enough for celebration... but this year, we were simply blown away. For the first time since many, many years we heared the words "...and 12 points to... Germany". Or "...and 12 points to lovely Lena from Germany". Or "...and 12 points to our neighbours from Germany". And so on.

We were stunned. No one could believe it, that some European fellow country gave 12 points for Germany. And then another, and another... and so on. And from so many other countries we got four or more points, there was only ONE were only six (out of 39) countries who didn't gave us any point.

In the end, LENA won. She. simply. won.


With 246 points, next in line was Turkey with 170 points. She really made it. As I said, no one could believe that. Even LENA herself couldn't believe it. The co-moderators in Germany frankly admitted that they didn't prepared for this case. They were as surprised as everyone else :-)

So, we all are touched and very happy. LENA and Stefan won, for Germany. They created a miracle and gave us a great, a historical evening.
Thanks to all European fellows for voting for LENA.

And as a side note: during the show, there were short videos of people all around Europe dancing the same dance, and people all over Europe like us gathering around the TV at home to watch the contest. All of them happy, peaceful and watching together a great music contest.

It was one of these very precious times were we felt that in the end, we are all alike, that we all are Europeans.

More about the contest:
http://www.eurovision.tv/

Click here to watch LENA's song.
Optimized an agent’s runtime from >30 minutes to less than 30 seconds
Julian Buss, May 25th, 2010 17:10:52
Tags:  Development 
I had that agent in one application... the app contains about 300.000 documents, and some of them needs to be checked multiple times a day for events (for example, if they are expired). The agent doing this check needed over 30 minutes to run, and due to agent manager's configuration was always terminated after 30 minutes.

Pretty bad performance, isn't it? Well... not anymore, I'm down to less than 30 SECONDS now, only by re-engineering the logic and one view.

There were several performance killers in that agent, and all of them based on one very common problem: using time/date functions in a view or using the NotesDatabase.search() instead of a ftsearch().

Every Notes dev should know that using time/date functions in a view, either in the select or column formula, is a very bad idea. Granted, there are times where using that technique cannot be avoided, or where this does not cause severe performance problems. But in general, it's a bad idea and if possible, code should be changed so that there is no time/date function used in a view.

In my case, the agent did the following:

1.) Using a NotesDatabase.search() with time/date functions three times (!) to search for a subset of documents, only to remove one item from them.

2.) Refreshing a view which uses multiple time/date functions, then iterating over all documents of that view.

The three NotesDatabase.search() calls alone took 20 minutes or so. Boy, what a bad architecture. Oh, and yes, I have to take all the shame on myself... I wrote that agent some years ago myself. In that time, the application didn't contained many documents, and I was not aware that these techniques could create such a performance problem :-)

So, I managed to remove all NotesDatabase.search() calls and all time/date functions from the view. Now, the agent just iterates over all documents in that view. For every documents some time/date checks are performed and then, when the conditions are met, the event is fired.

The view contains many more documents now, and the agent iterates over many more documents - but still that's WAY faster than before.

Remember: iterating over lots of documents in a view is much faster than using time/date functions in that view.
 
About this site
I am a Lotus Notes developer, consultant and one of the founders of YouAtNotes, a german software vendor specialized in Lotus Notes software for CRM, Workflow and Web solutions.
I write about IBM Lotus software and other stuff which I come across. Have a nice time here!

Search
RSS-Feeds
rssfeed.pngContent Feed
rssfeed.pngComment Feed
Recent posts
Recent comments
Links to YouAtNotes
Links to YouAtNotes (in german)
Archive
Impressum / Datenschutz
(german)