Ben Langhinrichs

September, 2007
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.


Wed 26 Sep 2007, 12:37 PM
While a lot of companies use our Midas Rich Text LSX and Midas Rich Text C++ API to render HTML because it does such a good job reproducing the look and feel of the Notes client, that is by no means whatever everybody wants.  I thought it might be worth mentioning that in Midas 3.70 (and in the upcoming 4.0), it is possible to let CSS guide the style much more effectively.  As an example, you can say that you want your tables rendered "sparsely", so that the following table

Original table

which might normally render (using Midas) as

<table border='1'>
  <tr valign='top'>
    <td width='96' bgcolor="#00ff00"><b>City</b></td>
    <td width='192' bgcolor="#00ff00" valign='top'><b>City</b></td>
  </tr>
  <tr valign='top'>
    <td width='96' bgcolor="#00ffff">80,000</td>
    <td width='192' bgcolor="#00ffff">Barcelona</td>
  </tr>
  <tr valign='top'>
    <td width='96' bgcolor="#00ffff">16,050</td>
    <td width='192' bgcolor="#00ffff">Madrid</td>
  </tr>
</table>

instead would render as

<table>
  <tr>
    <td><b>Sightings</b></td>
    <td><b>City</b></td>
  </tr>
  <tr>
    <td>80,000</td>
    <td>Barcelona</td>
  </tr>
  <tr>
    <td>16,050</td>
    <td>Madrid</td>
  </tr>
</table>

thus allowing you to use CSS to set the look and feel.  And if you need a bit more control, you could also AutoTag the table and rows (and cells, but that isn't needed here), and get

<table id='tbl1'>
  <tr id='tbl1_r1'>
    <td><b>Sightings</b></td>
    <td><b>City</b></td>
  </tr>
  <tr id='tbl1_r2'>
    <td>80,000</td>
    <td>Barcelona</td>
  </tr>
  <tr id='tbl1_r3'>
    <td>16,050</td>
    <td>Madrid</td>
  </tr>
</table>

which would then allow you to set the color of the first row differently.  In Midas 4.0 you can go one step further and instead AutoClass the rows (and columns and cells, but not here) so that you would get

<table id='tbl1'>
  <tr class='tblr1'>
    <td><b>Sightings</b></td>
    <td><b>City</b></td>
  </tr>
  <tr class='tblr2'>
    <td>80,000</td>
    <td>Barcelona</td>
  </tr>
  <tr class='tblr3'>
    <td>16,050</td>
    <td>Madrid</td>
  </tr>
</table>

so that you could set all first rows one style and all second rows another and so on.

It is all up to you, as it should be.

Copyright © 2007 Genii Software Ltd.

Tue 25 Sep 2007, 12:17 PM
In the recent aggressive push by Microsoft to get Open XML certified as an ISO standard, many countries were convinced to switch to P-countries in terms of voting.  The inevitable, but sad, after effect of this effort is shown with the failure of JTC 1/SC 34 N 870.  Did this standard fail due to negative votes or numerous comments?  No, of the eight countries voting, seven voted for the ballot, and even The Netherlands, which voted against it, had only two comments.  The reason why the ballot failed was explicitly stated:
Based on an insufficient response from the SC 34 participating membership, this ballot has automatically failed according to Directives 9.1.10 that states "if more than 50% of the P-members have not voted, the vote will have failed." Late votes are not counted and there are no extensions to the vote.
So, what would the results have been before this run up of P-countries?  As best as I can figure,  with 32 P-members now and 16 P-members joining fairly quickly to vote on Open XML, the vote would have been passed without those new members, since 50% of the P-members would have voted, and the vast majority voted for Approval.

Is it bad to have more voters?  Intuition tells us that it is not, but intuition is not always correct.  When there are more voters, but they don't vote, and when a quorum is required, those new voters can kill off a perfectly acceptable standard.  I know little to nothing about JTC 1/SC 34 N 870, but I do know that many other qualified and reasonable ballots may fail because of the surfeit of under participating P-members, and that is a real shame.

Update: I saw an argument on another blog that
that particular ballot failed because only 8 member voted which would never have sufficed in any scenario.
In case you say, "My, that sounds reasonable!", check out this ballot from one year earlier, JTC 1/SC 34 N 745.  It is interesting comparing these two.  Both had seven P-members voting for approval and one voting against, but the earlier ballot passed and this failed.  In case you need graphic evidence of what has happened in the meantime, look at the list of P-members from one year ago (country that did not vote in italics):
Canada
China
Italy
Japan
Korea, Republic of
Norway
Thailand
United Kingdom
USA

and then the list of P-members voting for this past ballot (countries that did not vote in italics):
Bulgaria
Brazil
Canada
Switzerland
Côte-d'Ivoire
China
Colombia
Cyprus
Czech Republic
Germany
Denmark
Finland
France
India
Italy
Japan
Kenya
Korea, Republic of
Kazakhstan
Lebanon
Malta
Netherlands
Norway
Pakistan
Poland
Romania
Sweden
Thailand
Trinidad and Tobago
United Kingdom
USA
Venezuela

Does this make it clear how much harder it is going to be to pass ballots now?

Copyright © 2007 Genii Software Ltd.

Technorati tags:

Mon 24 Sep 2007, 11:01 PM
Since one of the features of both CoexEdit 2.0 and Midas Rich Text 4.0 releases is better support for "right to left" languages such as Arabic and Hebrew, I have been doing some investigation of the bidirectional capabilities inside Notes.  I have to say, I am somewhat dismayed.  The Notes client has excellent right  to left and bidirectional (aka BIDI) support, as you would expect from a product with active sales in Israel and various Arab countries, and a long history of multilingual support.  But, as so often seems to be the case, the Notes to Domino rendering does not live up to the standards of the Notes client itself.

Here is a specific example to show you what I mean.  It is taken from the news website http://www.alkhaleej.co.ae/   (I did a quick and dirty Google translation to make sure it was not about anything complete unacceptable or controversial) and I have shown it in four ways.  The first is from the website itself.  The second is after I copied and pasted into a notes 8.0.0 rich text field from Internet Explorer (unfortunately, Firefox does not handle Arabic well either, so don't copy and paste from Firefox if you are using right to left languages!).  The third is when that Notes rich text is rendered by the Domino HTTP process.  The fourth is when the Notes rich text is rendered by the Midas Rich Text LSX 4.0.

Right to left text (Arabic):
Various renderings of Arabic text

In case you have trouble seeing the differences, I have highlighted a couple below.  These may seem minor, but the problem is that the text is not going from right to left at all, but is justified left (instead of right) and is simply Arabic going the wrong direction.  Things actually get worse if you have a mixture of English and Arabic (that is the BIDI part), because the words get misordered.  See the last image for a demonstration of that, and particularly look at the words before and after the "Arabic Interrupted".

Right to left text (Arabic) with highlighted issues:
Some rendering issues highlighted

Bidirectional text (English in the midst of Arabic):
Bidirectional text rendered badly by Domino

So, for those few who make it this far, what leads to this lousy rendering?  Is this a devlishly difficult issue requiring weeks of work to handle?  Well, no, not really.  Actually, it simply requires a couple of very small checks.  To help out those in IBM who have not managed to handle this in the TWELVE YEARS that BIDI support has been in Notes, I'll give you a couple of hints.

1) If a paragraph has the PABFLAG2_BIDI_RTLREADING  flag set in the Flags2 field, generate your DIV or P tag with a dir="rtl" inside the DIV or P tag.  

2) If a text field has a signature of instead of SIG_CD_BIDI_TEXT instead of SIG_CD_TEXT, add a dir="rtl" inside the FONT or SPAN tag.

Midas does more because it handles right to left tables and CSS tags as well as standard font tags, and also handles importing from HTML to rich text with directionalitybut you don't have to get that fancy.  These are really, really minor changes that could and should be added, but there doesn't seem to be anybody paying that much attention to HTML rendering.  A shame, really.

Copyright © 2007 Genii Software Ltd.

Technorati tags:

Thu 20 Sep 2007, 05:30 PM
In the spirit of those wonderful juxtaposition facts newspapers like to publish, I noticed today that while there are 9228 help documents in the Notes 8 Designer Help db, there are only 2438 total Open XML published on the web in Google's search caches (1220 docx, 908 pptx, 306 xlsx and, let us not forget, 4 xslb), which is about a quarter as many.  Really puts things into perspective, doesn't it? (I used this technique to provide counts).

Copyright © 2007 Genii Software Ltd.

Tue 11 Sep 2007, 02:42 PM
As I mentioned before, John Head gave the first live demo of OpenSesame in his talk on Notes 8 Productivity Editors - User and Programability (click on the link to get the slides and demo db, but not the OpenSesame stuff, as I asked him not to post that).  Now that he is done (and, yes, he said it went well and was well received), I thought I'd describe the full scenario with some screen prints.  For the second scenario, which is slightly more development oriented and less business oriented, you will have to wait until Rob Novak gives his version of the same talk in London, September 19-21.  I bet they could still squeeze you in there if you wanted to go.  Anyway, here goes.  I'll start by repeating the scenario I described (actually, modified just a bit), then show screenshots with some comments.  Let me know what you think.

Scenario: Approval Cycle
As team leader at Pinnacle Products, Melissa is responsible for ensuring that the sales data in her regional sales database is accurate, but her team is spread out in various locations.  To give each team member a chance to review and edit the sales data, Melissa uses OpenSesame to take the data from her Lotus Notes database and send it out as a spreadsheet attachment to Tim.  Tim has Notes 8, so he simply edits the spreadsheet in the Lotus Spreadsheets productivity editor, makes a few changes, then sends the spreadsheet to Gerald, who does not have Notes on his laptop, but does have OpenOffice.  Gerald edits the spreadsheet with OpenOffice Calc, makes a few more changes, and sends the spreadsheet on to Mary.  Mary doesn't have either OpenOffice or Notes 8, but she does have access to Google Spreadsheets, so she makes her changes in that and sends the final edited spreadsheet back to Melissa.  Melissa opens the spreadsheet with Lotus Spreadsheets, and is able to review each change using the built in revision tracking, rejecting one or two edits, accepting others, and making an edit or two of her own.  Finally, she incorporates the changes back into Notes using OpenSesame again.

Figure 1 - The regional sales database, before any changes. (Click on any image to see full size version)

Notes view before revisions


Figure 2 - After clicking on the view action, the view is rendered as a spreadsheet and attached to a memo

Notes view rendered and attached to memo


Figure 3 - Opening the spreadsheet shows the rendered view, including links back to original documents

Notes view rendered and shown in spreadsheet


Figure 4 - Each team members makes revisions and forwards on the modified spreadsheet.  The final memo is mailed back to the database, where it appears in the Pending Edits view

Edits Pending view


Figure 5 - Opening the memo, Melissa can see that it has been forwarded around to the team

Edits Pending view


Figure 6 - Melissa opens the document and launches the spreadsheet again.  Revised items are shown with a colored box, and when a revision is moused over will show the person who made the change, when they made it and what it was changed from and to.

Spreadsheet with highlighted revisions


Figure 7 - Melissa can unprotect the document and view all revisions, choosing to accept some and reject others.

Accept or Reject dialog for revisions


Figure 8 - Finally, saving the changes, Melissa can return to the view and press the View Action, recording all changes.  Note changes such as Mobile as a new city in Alabama, or "Joe's Delivery Service" changed to "DHL Goldstar"

Notes view after revisions


Of course, John ran the whole demo live, so this is not just smoke and mirrors.  Let me know what you think.

Copyright © 2007 Genii Software Ltd.

Mon 10 Sep 2007, 11:56 AM
As others have noted already, IBM and OpenOffice.org have announced that IBM is contributing both code and resources to OpenOffice.org.  Andy Updegrove has a good writup of the facts and possible implications.

One item jumped out at me.  IBM is dedicating approximately 35 developers to this effort.  Holy cow!  I am highly tempted to point out that IBM sometimes seems resistant to dedicating one developer to Notes rich text, but that might be snarky of me.  Still, it might explain to some naysayers why I am focusing on OpenSesame these days.

Copyright © 2007 Genii Software Ltd.