Wednesday, December 06, 2006

Lotus Roadshow 2006 in Stockholm

On the November 30th there was a half-day seminar at IBM about the new release of Domino and features of Sametime 7.5.
A little strange that roadshow in Stockholm was whole 23 days after the seminar in Gothenburg. Stockholm was the last city out of 12.
All seats in the conferance room were taken by more than 200 visitors (customers and business partners).
IBM's presenters showed how the new Lotus Notes 8 client looks like and some of the new features not available in earlier versions.

A funny thing happened when the presenter would show the integration of Notes client with SAP. He asked if there were any people in the audience who used SAP at their company. Noone raised their hand.




Here are presentations from the Road show: http://www-5.ibm.com/se/news/events/lotusroadshow/
And here are presentations available for online reading, converted by Thomas Adrian to Flash format: http://www.notessidan.se/A55B53/blogg.nsf/plink/TADN-6WGVR3

Saturday, November 18, 2006

A quick Sametime tip

If your Sametime server is accessible from the Internet and external users are not able to join the meetings, getting "Sametime server disconnected" message when connecting to Meetings, check that you have specified a valid Internet-resolvable server name (e.g.: sametime.company.com) in the server document: Internet protocols\HTTP\Host name(s) field.

Check also that users ha´ve correct Sametime server in "Sametime server" field in their person documents in NAB.

Information in the web browser's Java console can provide valuable clues to why the web browser failed to connect to the meeting and other client-side sametime problems.



Tags:

Friday, November 17, 2006

Borat from Kazachstan

For Borat's fans, this web site can be interesting. It contains links to several video interviews with Borat Sagdiev. I haven't seen many of them before, but I am not his greatest fan either... Ali G character is way cooler than Borat.
http://www.funkymusic.se/category/borat/




Technorati:

Thursday, November 16, 2006

Skype on mobile phones

From the 1st December will cell phone network operator "3" (Three) begin selling Nokia's N73 and Sony Ericssons W950 equiped with Skype software.

With flat price for mobile Internet access, phone users can make free calls to other Skype-users and cheap international phone calls.

So far the Skype-enabled phones will be available only in UK, but maybe they will work in other countries too as far as there is a mobile broadband connection.

Wednesday, November 08, 2006

Free e-book: Sametime For Dummies



As posted earlier by Ed Brill and Adam Gartenberg, there is a free ebook called "Sametime For Dummies", which you can download from IBM's web site.

The book has 72 pages. I could not find a reference to the number of pages in the paper edition, so I am not really sure if the PDF and paper book are same or not.

You can download the book at http://www-306.ibm.com/software/info/stdummies/index.jsp
It took me about 3 minutes to get the "save file" dialog box after right-clicking the download link and chosing "save target as", so be patient.

Here is the table of contents:

Introduction.......................................................1
Part 1: What Is IBM Lotus Sametime? .................5
Part 2: Instant Messages ..................................15
Part 3: Lotus Sametime Web Conferences ..........31
Part 4: Lotus Sametime Your Way .....................51
Part 5: Ten Lotus Sametime Reminders ..............61
Part 6: Ten Reasons Lotus Sametime Beats
the Competition ...............................................65


Technorati: Sametime

Tuesday, November 07, 2006

Embedding AJAX-based Sametime chat widget on web pages

With STWidget web application it is possible to put chat client on any web page. All you need is to include an IFRAME reference into your page's HTML code. Using STWidget, web users can connect to external or internal Sametime server and chat with other people who use either same STWidget web application or a stand-alone Sametime chat client.

If your internal Sametime server allows anonymous users, you can allow web visitors to directly contact selected people (or any person without restriction) without exposing internal Sametime server to Internet. This works because communication between STWidget app and server goes through a servlet, the web client never accesses the Sametime server directly.

The developer of the web page can choose whether users must with username and password or anonymously. There is also a token login mode, where user is logged in automatically with his current credentials which he used for opening the page, so he doesn't need to login twice (first to Domino web application and then to Sametime).

User's web browser does not need to have support for Java applets, the application works using AJAX-style XMLHTTP technology for communication with the web server.

Flash version of the STWidget application is planned to be released in about 2 months, which will overcome the AJAX limitation of only 2 concurrent connections to the web server.


<iframe src="http://stwidget.dyndns.org:19760/stwidget.html?login=anonymous" scrolling="no" frameborder="0" style="width:175; height:330;"></iframe>


Below is a working example of embedded Sametime chat (not just a picture). Input any name and you'll be logged in to Sametime server where you can chat with our Sametime Bot. Bot knows a lot of jokes, just type "joke" to him and he'll reply with a funny joke :) If you think the joke was not funny, type "joke" again and again until you are satisfied :)



Note: this embedded chat is for testing purposes only. Do not put it on your web site as it can be removed or modified at any time without prior notice. Contact us if you want to place chat widget on your web site.

Demo for anonymous login and login with password: http://www.botstation.com/products/stweb/demo.php



Technorati:

Tuesday, October 31, 2006

The forgotten art of StampAll .. or the fastest way to update documents

I've been analyzing an agent and found that it uses NotesDocumentCollection.StampAll(fieldname, value) method. I knew about the existence of the method but didn't remember about actually using it, so I decided to test how effective it was compared with other methods. For comparing I used looping through all documents in a document collection and updating them one by one.
The result was that for updating one field StampAll is 80% faster than any other method. To update field called "testfield" in 15000 documents using StampAll("testfield", "test") took 31 seconds, using doc.testfield="test" tool 54 seconds and doc.ReplaceItemValue("testfield", "test") took 50 seconds.

Surprisingly to update the same field using @Formula (Field testfield:="test") took 120 seconds. Using Simple Action it took 65 seconds.

One disadvantage with StampAll method is that it updates only one field at a time. So if you want to update 2 fields in a document, it would take 2 times as long time, while with other methods the difference is about +10% for each additional field.

Here is the source code of the agent and the agent's output.

Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim coll As NotesDocumentCollection
Dim doc As NotesDocument
Dim item As NotesItem
Set db=session.CurrentDatabase

Set coll=db.AllDocuments
timerStart=Timer
Call coll.StampAll("testfield", "test1")
Print "Elapsed in test nr1: "+Cstr(Timer-timerStart)

timerStart=Timer
Set doc=coll.GetFirstDocument
While Not doc Is Nothing
doc.testfield="test2"
Call doc.Save(True, False)
Set doc=coll.GetNextDocument(doc)
Wend
Print "Elapsed in test nr2: "+Cstr(Timer-timerStart)

timerStart=Timer
Set doc=coll.GetFirstDocument
While Not doc Is Nothing
Call doc.ReplaceItemValue("testfield","test3")
Call doc.Save(True, False)
Set doc=coll.GetNextDocument(doc)
Wend
Print "Elapsed in test nr3: "+Cstr(Timer-timerStart)
End Sub

Elapsed in test nr1: 30,89014
Elapsed in test nr2: 54,27002
Elapsed in test nr3: 50,06982

Tuesday, October 24, 2006

Problem with Sametime installation

I hope this post will save some Domino/Sametime administrator time searching for solution.

I had Domino 5 server with Sametime 3.0 installed on my test server. The server was not in autostart mode. I didn't use it much so I decided to upgrade it to Domino 6.5 for making local tests of STWidget application in Anonymous mode. I chose not to update to the latest Sametime 7.0/7.5 because many (50%?) companies still use Domino 6 and Sametime 3.1/6.5.1. Although Sametime 7 Java Toolkit should work fine with Sametime 6, you never know.

I installed the Domino 6.5.5 server to a new folder and tested that it started correctly. Then I tried to install Sametime 6.5.1 server. The installation aborted with following message:
IBM Lotus Sametime 6.5.1 requires that
IBM Lotus Domino 6.0.3 or later
be installed on the same
computer as IBM Lotus Sametime 6.5.1

Install Domino 6.0.3 or later and
then restart this installation.


I checked that PATH environment variable does not point to the old Domino5 installation and even manually registered the nlsxbe.dll file "regsvr32 c:\lotus6\nlsxbe.dll" and un-registered the dll file in R5 folder.
That didn't help. Then I renamed the folder containing the old Domino 5 server files to c:\aaaaaaaLotus5\, hoping that installation will continue after it failed to open non-existant files.
Now when the new Sametime server installation started, it showed "Path not found" error message. This clearly pointed ou that it was just as I suspected that the old R5 server still was somehow found from the new server installation.
With "Path not found" search string I found IBM's technote describing the solution. The solution was simple: delete the HKEY_LOCAL_MACHINE\SOFTWARE\Lotus\Domino\5.0 registry entry.
After deleting the entry, the new Sametime server was installed without problems.


http://www-1.ibm.com/support/docview.wss?rs=0&q1=1158939&uid=swg21158939&loc=sv&cs=utf-8&lang=

Sunday, October 22, 2006

Skype and Lotus Notes

The View journal has recently published my article "How to add Internet telephony to your Lotus Notes and Domino applications"

The article describes how to integrate Skype telephony and chat into Lotus Notes applications using Skype COM API and how to integrate Skype with Domino web applications using javascript and other solutions.

The article includes a downloadable database with example code. Examples show different ways to trigger Skype functionality from Notes client and to monitor Skype status. You can copy buttons from the examples and paste into your own applications to enable one-click phone calls from Address Book.

Prerequisites for the examples to work: installed Skype client and Skype COM API toolkit, both are free to download and use.

Debugging web applications in Firefox

Finding errors in JavaScript on web pages can be a difficult task. In Internet Explorer you can in best case see the line number where the error occured.

I recently began using Firefox Javascript console for debugging web applications. Besides javascript errors, console also shows invalid properties of CSS stylesheets.
The console can be opened using Tools-JavaScript Console menu in Firefox browser. In the console you can see all the errors which occured, not only the last one as in IE. By clicking on error message, it opens a window with the script file where the error occured and marks the error line.




A strange thing I experienced with Firefox console is that it somehow caches XML-document nodes which results in "ghost" nodes. When I changed WIMBO Sametime chat application to use XML-formatted data instead of plain-text data, the Javascript console reported that the web browser still received the old plain-text data. The data was clearly not a part of the information received from the servlet, so I am still wondering why Firefox appended that data to the real data. Similar problem with ghost nodes happened when I replaced an empty "<RESPONSE></RESPONSE>" root node which caused problem in Firefox to "<RESPONSE><NONE>-</NONE></RESPONSE>".

Wednesday, October 18, 2006

A L33T Java agent one-liner

I noticed that most of the Domino developers split object calls into separate (more manageble?) pieces. What a waste of space in the code editor!

Let's create a one line of code which gets days difference between the first and the last document in a view and the total number of documents in a view, all without any declarations of variables.
The code is written in Java (agent), but the same thing can be done in LotusScript.


System.out.println("Time difference in days: "+String.valueOf(getSession().getAgentContext().getCurrentDatabase().getView("all").getLastDocument().getCreated().timeDifference(getSession().getAgentContext().getCurrentDatabase().getView("all").getFirstDocument().getCreated())/60/60/24)+". Number of documents: "+String.valueOf(getSession().getAgentContext().getCurrentDatabase().getView("all").getAllEntries().getCount()));



Post your own one-line code snippets, maybe we can find a practical use for them :)

Sunday, October 08, 2006

USB phone for Skype

Last week I've buyed a Doro 212IPC USB phone for Skype... and tested it as soon as I came home :) It costed 99 SEK (12.5 USD) at Media Markt



The phone quality is pretty good. Both incoming and outgoing sound is clear. But the integration with Skype and Windows could be improved.
Essentially, the USB phone is nothing more than a phone-formed headset with a keypad. I had some more expectations from a device called "phone", but what can you expect for 13 dollars?

The phone is setup as a sound device in Windows, and when plugged-in to the USB port, all sound goes through the phone instead of regular speakers. This is not very good as you most probably only want the sound from Skype program go through the phone, not sound from other programs. At the same time, this "feature" makes it possible to use the phone with the most of other softphones because it takes over standard audio input/output devices. It worked fine to speak and hear with X-Lite softphone (I dialed using mouse and softphone's virtual keypad) and after I downloaded a special driver, I could even use phone's number pads to dial the number.
Luckily, it's possible to manually change the settings in Windows after plugging in the phone to use standard sound devices instead of "Doro 212IPC" (you can still keep the Doro settings in Skype).

The first thing I noticed that you must manually open the "dial" tab in the Skype client, otherwise you can not dial a phone number. If any other tab than "dial" is selected in the client, the phone's number pad works for navigation up/down/left/right, which e.g. makes it possible to choose a Skype user in the buddy list. But as it's actually a phone, one would expect that when dialing a number from the key pad, the phone puts the Skype client into dial mode by default. As you must visually verify that the Skype client is on "dial" tab, the number pad on the phone is almost useless, as I can as easily type the number in the Skype software client on the computer when I am there anyway checking that the correct tab is open.

The other thing I expected to find in the phone was that incoming calls would ring in the phone. But the ring signal is possible only from the computer. How hard would it be to put a small speaker in the phone and activate it on incoming calls? Without this feature, the phone feels like an odd headset.


Overall impression of the phone device is positive, specially considering the low price. It's OK for making casual calls, but probably too boring if you are making a lot of calls. As the phone does not have a screen showing the dialed number, you will rather soon happen to dial a wrong number if you do not verify it on the computer screen.


Note: you must purchase SkypeOut credits for making outgoing phone calls; and SkypeIn service for accepting incoming phone calls to Skype client. Skype-to-Skype calls are free.