Ben Langhinrichs

Photograph of Ben Langhinrichs

E-mail address - Ben Langhinrichs

April, 2009
   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.

Thu 30 Apr 2009, 10:17 AM
<poem deleted for later publication>

Copyright 2009 Genii Software Ltd.


Wed 22 Apr 2009, 08:34 AM
I pulled up the latest FoxTrot a few minutes, and got a laugh.  It is actually much simpler than it looks, but don't cheat and use a calculator or read the comments.

Copyright 2009 Genii Software Ltd.

Sun 19 Apr 2009, 07:51 PM
It may come as a bit of a surprise to some of you Twitter fans, but people have been writing short lines filled with meaning for centuries, and many of them even rhymed!  Yes, I am speaking of poetry.  Now, I suggested to a fellow blogger that perhaps the Lotus blogosphere is not quite ready for this sort of poetry, but he said that I should give it a try.  He might have even insinuated that the blogger community could use a bit of "high brow".

So, in the interest of balance, I want to offer a wonderful poem I read by an Irish mathematician and poet, and then my response poem (back then, response poems were all the rage).  If poetry doesn't suit you, think of them as Twitter storms that happen to rhyme.  These are the "tweets" I read and write when NOT on Twitter.

It is not Beauty I demandby George Darley  (Dublin, 1828)

It is not Beauty I demand,
  A crystal brow, the moon's despair,
Nor the snow's daughter, a white hand,
  Nor mermaid's yellow pride of hair.

Tell me not of your starry eyes,
  Your lips that seem on roses fed,
Your breasts where Cupid trembling lies,
  Nor sleeps for kissing of his bed.

A bloomy pair of vermeil cheeks,
  Like Hebe's in her ruddiest hours,
A breath that softer music speaks
  Than summer winds a-wooing flowers.

These are but gauds; nay, what are lips?
  Coral beneath the ocean-stream,
Whose brink when your adventurer sips
  Full oft he perisheth on them.

And what are cheeks but ensigns oft
  That wave hot youth to fields of blood?
Did Helen's breast though ne'er so soft,
  Do Greece or Ilium any good?

Eyes can with baleful ardor burn,
  Poison can breath that erst perfumed,
There's many a white hand holds an urn
  With lovers' hearts to dust consumed.

For crystal brows--there's naught within,
  They are but empty cells for pride;
He who the Syren's hair would win
  Is mostly strangled in the tide.

Give me, instead of beauty's bust,
  A tender heart, a loyal mind,
Which with temptation I could trust,
  Yet never linked with error find.

One in whose gentle bosom I
  Could pour my secret heart of woes.
Like the care-burdened honey-fly
  That hides his murmurs in the rose.

My earthly comforter! whose love
  So indefeasible might be,
That when my spirit won above
  Hers could not stay for sympathy. 

There, now that didn't hurt TOO much, did it.  Did anybody get this far?

Copyright 2009 Genii Software Ltd.


Fri 17 Apr 2009, 01:28 PM
The wonderful beta testers are testing, the lingering bugs are getting ironed out, the Windows and Linux versions are humming away, and the AIX version is due out on Monday.  Spring is certainly in the air, when I have any time to stick my head out the window and notice.  Life is good.

Copyright 2009 Genii Software Ltd.


Mon 13 Apr 2009, 03:32 PM
My younger son is 13, and he is a big fan of Age of Mythology (and all the other related games).  Last night, he was telling us about an experience he had while playing with the on-line portion of the game.  It was at an odd time of day, too early for many American teenagers, and he started interacting with a whole group of people playing, all of them speaking French to each other.  He doesn't know any French, so a couple of them tried to interact with him in English, but their English was not really good enough either.  Since he really wanted to keep interacting, he tried writing in Latin instead (as regular readers may know, he loves Latin just as he loves mythology), and a few of the French players also knew Latin, so he was able to keep interacting and collaborating with them, all in Latin.  It's good to know that English doesn't have to be a prerequisite for international cooperation.

Copyright 2009 Genii Software Ltd.


Wed 8 Apr 2009, 11:58 AM
I was talking with another ISV, Mark Ramos of Granite Software, about the fascinating process of updating software created many years ago to work with later compilers, operating systems, versions of Notes, etc.  He originally created his well regarded and widely used Zmerge way back in 1994, and has thus had to update it through a whole series of massive changes to Notes, to various operating systems including Windows, and so forth.  He is now working on yet another update, this time to support 64bit Windows, I think.  Mark and I have talked before about the advantages of having been in the Notes API business before many others, because much of the internal workings were more visible then, so we learned before the distractions were so numerous, although we also had to learn by hacking and trial and error as we were often there before the APIs and documentation.

Recently, I have been grappling with one of the downsides of being early to the game.  When R5 was released, internal storage of MIME was new on the scene, and it was not documented in the API.  No structures, no rules, no guidance.  Unfortunately, I had a strong desire to handle the MIME anyway, since I wanted my Midas Rich Text LSX to be able to create MIME, so I hacked at it until I understand, figuring out the data structures and rules as I went.  Later, in 5.0.2, when the data structures were at last documented, I switched to them but used most of the same code as before, just slightly modified.  At the time, this was great to have, since I sold Midas to lots of companies who wanted to send MIME emails, and I had this long before that was possible with the base classes.

But this code also planted the seeds of my later troubles.  While there is nothing wrong with the code I wrote when running on Windows or AIX, it was not restructured to run on other operating systems the way the rest of Midas is.  There was no ODSLength(_MIME_PART), and you couldn't use ODSWriteMemory and ODSReadMemory the way you always should with composite data, so I had just hardcoded the procedures.  That worked fine until I started my port of iFidelity for Linux, and ran into problem after problem after problem.  It took me far longer to figure out what was going on then it should, partly due to distractions such as a trip to Europe and the flu, but once I realized that I was tripping over my own earlier cleverness, it only took a little bit to undo the damage.  Now I am testing completely on all three operating systems (Windows, AIX and Linux) to be sure I have not broken somethign else while fixing this.

So, there are pitfalls to being early, even as there are rewards.

Copyright 2009 Genii Software Ltd.