Ben Langhinrichs

September, 2005
SMTWTFS
    01 02 03
04 05 06 07 08 09 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

Search the weblog





























Genii Weblog


Civility in critiquing the ideas of others is no vice. Rudeness in defending your own ideas is no virtue.


Fri 30 Sep 2005, 09:33 AM
Ethann posted Google must really like me, in which he says:
The last time I checked, my name returned about 700 hits.  When I checked this morning, it returned 11,700 hits.  To be honest I can't see what the difference is between last week and this week, but I'll take it!
I went to check for "Ben Langhinrichs", and I must admit I was surprised:



I may be popular, and I may even answer too many blogs and discussion topics, but there is no way this number is right.  Interestingly, it was 90,800 last night and this morning it is 90,900.  I think Google may have a glitch.

Copyright © 2005 Genii Software Ltd.

Thu 29 Sep 2005, 09:55 AM
The addition of DXL processing has been a great bonus for customers who need rich text manipulation, as there is now a native way to do many of the things which could previously only be done with the C API or with our Midas Rich Text LSX.  So, the question comes up sometimes, why bother with Midas for rich text manipulation? Sure, it does other things DXL can't touch, such as HTML generation, MIME e-mails, rich text comparison, contextual link matching and so on, but what about simple stuff like adding a table?  To address that, take a look at this question from the Notes 6 & 7 Gold forum: 
I am writing codes to generate a NotesDocument with a tailor-made table(diff cell color, merged cell) by DXL.

I found out using DXL to generating document with table is much slower than by using LS-RT table, especially when the table size is large.(9 sec vs 2 sec for 52row*16col table) However, DXL offers more flexible controls on complex table-making.

Is there any way to optimize the DXL codes?
Excuse me, but 9 seconds?  To generate a single document with a table?

I responded with this, being as polite as I could be:
If you really want performance and control over rich text at the same time, DXL isn't going to work well for you, and neither will the native LS rich text classes.  Both are just way too slow.  If you need performance, you either need an API solution, which will be pretty complex to write, or a third party product such as our Midas Rich Text LSX, which combines high levels of flexibility with extremely high performance.

As an example, I tried creating a table such as you describe, with different cell colors and merged cells and 52 roiws and 16 columns.  I tried once creating the whole table at one call (without the merged cells), and another where every row was created separately to allow merging and changing various cell attributes.  In both cases, creating a single table was too fast to measure, so I created 100 separate documents with a table such as this in each. 

Midas Rich Text LSX times

Table created in one callTable created a row at a time
100 documents4 seconds15 seconds


As you can see, well under a second is better than either the 9 seconds DXL takes or the 2 seconds the LS RT classes take.  Of course, you may not need that level of performance, but if you are creating 25,000 documents and doing other processing (as a recent customer described), you might want it to complete in less than the 62.5 hours that the DXL processing would require, or even the almost 14 hours the rich text classes would take, even if they could handle this.  The customer's job is slightly different, but does involve appending large tables a row at a time, and they report that the task runs in a bit less than 1 hour, even with all the additional processing.


So, while DXL is great, don't start using it unless you have lots of patience and like going on coffee breaks.  Nine seconds!?!?

Copyright © 2005 Genii Software Ltd.

Wed 28 Sep 2005, 05:47 PM
A potential customer read my post earlier today How "lossy" is your data conversion?, and asked, "Can you really paste from Word into your browser?"  While I thought I was pretty clear, here goes for the record:

1) Using FCKEditor (free, open-source) or EditLive for Java (costs something, but very robust), and probably from Xinha and TinyMCE although I don't know as much about the fidelity, you can absolutely paste Word content into the browser and it will work quite well.

2) If you are using CoexEdit on your Domino server, that pasted content will look pretty close to exactly the same in your Notes client after saving it from the web, sometimes even better than a straight paste into your Notes client from Word.

3) Request an evaluation license for CoexEdit and give it a try (using our free integration libraries).  What do you have to lose?






Copyright © 2005 Genii Software Ltd.

Wed 28 Sep 2005, 02:49 PM
The term lossy is often used in image compression to describe a format that retains most of the original, but will lose something over the original.  For example, JPEG is a lossy image compression format, which saves space but risks some dimunition of fidelity.  The term lossy is also used for various other data compression format, including ZIP and RAR.

But what about lossy data conversion?  In particular, "rich text" formats such as MS RTF, HTML, XHTML, MIME, Word and Notes rich text all may represent formatted data in ways that look alike but are different under the covers.  What is worse is that these formats almost all have capabilities, both visual and action oriented, that do not match up.  Specifically, I spend a lot of time on Notes rich text to HTML/XHTML and HTML/XHTML to Notes rich text, especially with CoexEdit.The obvious goal is to minimize the loss in any conversion, how can you measure the loss?

The following three graphics might help explain what I mean.  The first is a Word document, which I then copied and pasted into the browser window for FCKEditor using CoexEdit.  I used a Firefox browser, but the result is similar with Internet Explorer.  After pasting into FCKEditor, I saved, which let CoexEdit do its bit of magic, then switched to my Notes client, where the final graphic is shown.

So, is this "good enough"?  I'm not sure.  There are a few slight differences, such as round bullets in MS Word becoming triangular bullets in FCKEditor and then back to round bullets in Notes, but that is probably just the presentation of the default bullet type.  There also seems to be a spacing issue after the Version 2.0, where an extra space has been added.  Are those good enough?  Only time (and our customers, who are always right) will tell.

MS Word (This is the original Word document, which I then copied)



FCKEditor using CoexEdit called from Firefox (I pasted the Word content in here)



Notes view of same document (CoexEdit handled auto-conversion from FCKEditor)

Copyright © 2005 Genii Software Ltd.

Tue 27 Sep 2005, 04:20 PM
I noticed that the Midas documentation shows the FileCreated property and FileModified property, it does not explain how to use them with all the different time type variables available in LotusScript.  These are the created and modified time for an attachment or embedded object, and can be very useful to know, but only if you can figure outhow to use them.  So, here is a short snippet I will add to the Help database soon:

Option Public
Option Declare
Uselsx "*lsxrtc"    
Sub Initialize
   DimAs New NotesSession
   Dim doc As NotesDocument
   Dim ret As Variant
   Dim ntime As NotesDateTime
   Set doc = s.DocumentContext
   Dim rtitem As New GeniiRTItem
   Dim rtchunk As GeniiRTChunk
   Call rtitem.ConnectBackend(doc.Handle, "Body", True)
   Set rtchunk = rtitem.DefineChunk("File 1")
   Print "File Size is& Cstr(rtchunk.FileSize) & " bytes"
   Print "File Created: " & Cstr(rtchunk.FileCreated)
   Print "File Modified: " & Cstr(rtchunk.FileModified)
   Set ntime = New NotesDateTime("")
   ntime.LSLocalTime = rtchunk.FileModified
   doc.FileWasModified = rtchunk.FileModified
   Call doc.Save(True, False)
End Sub

I hope that helps.

Copyright © 2005 Genii Software Ltd.

Tue 27 Sep 2005, 10:36 AM
It appears that, as in so many areas, we do not exactly follow the standard path with our maintenance agreement for CoexLinks and CoexEdit.  (There is no maintenance agreement currently available for our Midas Rich Text products) I thought it would be worth noting a few important points about how our agreement works:

What you get if you do purchase the maintenance agreement

1) The agreement covers support.  That means that if you have a support issue, we will assist you, whether by phone, e-mail or support forum, depending on what is appropriate and works for you.  It does not mean we will manage your servers for you, but it does mean we will provide reasonable help to get you working and keep you working.

2) The agreement also covers updates/upgrades.  This means that if we release a new version, you are free to upgrade to that version.  If this is a minor version (for example, 2.0a to 2.1 or to 2.5), your current license will work and you may simply download the software from our website.  If this is a major version (for example 2.x to 3.0 or 1.x to 2.0), you will need a new license file, which you may get upon request from Genii Software.  Your license will arrive more promptly if you include your original serial number along with your request.  There is a chance that we will change this procedure in the future so that minor versions will also require a license change.  If so, we will be sure to make that clear on our website.

What you DO NOT get if you DO NOT purchase the maintenance agreement

1) Without an agreement, there is no guarantee of support.  While we do not have a hard and fast cut off date, this generally means that if you have a problem after the first month or so, we will not be able to help you.  You are still free to read our support forum and provide your own self-help, but should not expect us to provide support otherwise if you have problems.

2) Without an agreement, you do not have a right to any updates/upgrades.  This means that if we release a new version, you do not have the right to use it.  The only exception is a quickfix version, which is denoted by a letter after the version.  Thus, if you purchase 2.0a and we release 2.0b, you may download and use that.  You may not use 2.1 or 3.0 without buying a completely new license.  There is no discount for upgrading if you do not have a maintenance agreement.

What if you "change your mind" and decide to get an agreement later

Genii Software has a generous maintenance agreement, but it requires that you start from the beginning.  We will usually allow you to decide to get a maintenance agreement within thirty (30) days of the original purchase, but reserve the right to refuse any request unless if is part of the original order.  After that point, you would need to buy a completely new license to get support or upgrades.  Therefore, we strongly recommend that you purchase an agreement and keep it up to date.

I am sure there is more I should cover, and I will try to get this formalized into a maintenance FAQ, but I thought that I should at least explain these points a bit now.  Please feel free to contact me either through responses or via normal support channels to ask additional questions.

Copyright © 2005 Genii Software Ltd.