Ben Langhinrichs

Photograph of Ben Langhinrichs

E-mail address - Ben Langhinrichs






July, 2019
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 31

Search the weblog





























Genii Weblog


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


Mon 22 Jul 2019, 10:41 AM
Cloud with the word Concepts in it
 
At the recent HCL Factory Tour in Chelmsford, Massachusetts, USA, there were a number of large roadmap presentations followed by smaller, more focused presentations covering specific topics and products. Slides from all these should be forthcoming soon. But woven through these presentations were some key concepts that both reveal how HCL perceives the software landscape and suggest how the various products will develop under HCL's ownership. Some are explicit, while others are a little more subtle. Obviously, these are my interpretations, some backed up by fairly explicit statements by HCL, others more of an intuitive leap.
 
One key concept which is more aspirational and long term is the concept of Unification. While the near term goals are to get each product updated, polished, and competitive, the goal of unified interfaces or interoperability is not fully mapped out yet, but it is a goal. The importance for this is to foresee where overlap between products is likely to be either standardized or eliminated. Having multiple ways to do the same thing may be necessary in the near term, but once HCL gets over the hurdles of the next year or so, there is going to be a sharp focus on how to get the most out of the products with the least conflict and overlap. so, watch for that. There was a commitment to the idea that it should be more seamless and coherent working between the different products. One way that unification is impacting current decisions is an effort to unify the code base for cloud/on prem offerings, and similarly to unify as much as possible the client/mobile/web code while customizing the specific experiences. As an early prediction, there were definite rumbles about a rebranding of all the products, not the piecemeal HCL blue-washing seen so far. HCL was openly asking whether it would bother customers to lose the Notes/Domino names entirely.
 
A more solid near term concept to watch is Containerization, mostly obviously with the use of Docker containers to run Notes/Domino and other software products. When seen this way, containerization is mostly a way of virtualizing installs and spinning up instances, but the deeper concept is that products and components of products will be contained and handled as separate services. HCL is fairly explicit about moving toward a concept of micro-services (more about that a bit further down), but their direction also seems to imply a direction where different products could almost be defined as macro-services. While micro-services are an increasingly popular way to break down tasks efficiently. macro-services could also be thought of as various products playing nicely with each other. 
 
Another concept that is somewhat aspirational but also important in the near term is Standards-based. There is a recognition that IBM often talked the talk, but didn't always walk the walk. Standards allow for micro-services and macro-services to play well with others, a key concept itself. This allows third party micro-services that aren't HCL-owned to work within that environment, but also to allow HCL micro and macro-services to work within other systems by other major vendors. Focusing on standards is risky and means giving up some control and some product lock-in. But it also allows HCL and its customers to pivot as conditions change. A clear case of where you will see this is in the cloud. IBM had a huge stake in owning the cloud, but HCL is winding down its current cloud offerings, and focusing on cloud offerings that can be hosted by a number of different private and public clouds. This offers customers an opportunity to meet specific regional needs or shop around for better prices. HCL is left with less control, but they are confident enough to accept that, and know the opportunities presented are worth that loss of control.
 
The focus on standards also means further embracing development by those who may not know Domino, but will be empowered to use a NERD/DERN stack as easily as a MEAN stack, and generally to use development methodologies and technologies that have emerged as standards. This perforce means a move away from reliance on XPages, but it doesn't mean a move away from traditional LotusScript and formula language for mid-code developers.
 
Which brings us to another key development concept HCL has talked about a lot, which is the embrace of low-code development. One purpose is to reintroduce citizen developers scared away by the complexity of Domino designer or steered away by the licensing that only installed Designer on some desktops. A critical, secondary purpose is to give companies a way to bring unregulated Excel applications into a more regulated and empowered development environment. This is particularly key in Europe, because GDPR and other regulations require far tighter control over personal data than can be exerted over Excel spreadsheets. There was a very overt appeal to this with a LEAP demonstration showing how easily an Excel spreadsheet could be converted to a Notes application by a business user. A great business opportunity for business partners might be figuring out the next steps possible after that import. While the first wave will be simple one-to-one imports, there are some obvious benefits to being in a Notes environment that those business users aren't likely to recognize for themselves.
 
One final concept that is less concrete but worth noting is that HCL seems to be recognizing the power of Experiences. In the consumer world, the idea of experiences is often told in terms of why Starbucks can sell coffee at far higher prices than the local mini-mart, and the idea of selling the experience rather than just the product has flourished. But in the corporate business software world, that idea is growing more slowly. Salesforce seems to moving in the same direction, which is why you get things like the Lightning Experience. HCL talks a lot about experiences, both in terms of the Digital Experience product but also in terms of how the micro-services work together and how LEAP brings people into the development experience. For ISVs and partners, I'd start thinking about how your products and services can be crafted, or at least framed, as part of the experience. My prediction is that this concept will become extremely important in timeframe right after V11 releases, and will encompass Sametime in a strong way. Look for unification and experiences to drive a far more user-friendly UI powered by Domino underneath, even if none of those names are still used.
 
I'll admit it, I'm starting to get excited.
 

Copyright © 2019 Genii Software Ltd.

Tags:

Thu 18 Jul 2019, 10:51 PM
For the past three days, HCL has been hosting a number of business partners and customers at the third HCL Factory Tour. It was an excellent event, and I'm extremely glad I found the time and went. As I drive home (9.5 hours of driving, so I have plenty of time), I've been trying to put together in my head the most important messages and moments for me.  One exercise I know executives like is the one word summary, but since I write stories and stories tend to favor threes, I decided to think of the a summary word for each stage of this factory tour: before the event, during the event, and after the event,
 
The obvious word from before the event was Hope. The partner community, while obviously wary, is more hopeful than they have been in a decade. The customers are catching on to that hope, and some are renewing maintenance who have been off it for a long time. HCL is brimming with hope that they can be a different company, enhance and build products that people will want to use, and recoup the investment in time, energy, and money. A number of people at the Factory Tour commented on how HCL feels like a startup in terms of its optimism and energy, and maybe also in its necessary naiveté. It is telling that on the walls inside the HCL offices it says "Those who say it can not be done should not interrupt those doing it". You need that attitude, and HCL has it. (IBM hasn't recently.)
 
There are a lot of words one could land on for the tour itself, but I think the one that struck me most was Transparency. HCL was very open about its challenges, its ambitions, its need for feedback. Many things were said openly that IBM would have had to run past its legal team for months before waffling about the answer. HCL just says it. They are insistent that they are a very different company than IBM, and that is one of the ways it shows. The engineers, product managers, everybody was out and talking with all of us and answering the questions they could and documenting the ones they couldn't. It felt much more like Lotus or early Iris days.
 
I loved a lot of what I heard, didn't like a few things I heard, but mostly was very impressed. But as I walked into a restaurant tonight, I saw a sign on the wall I had to take a picture of, as it perfectly captures the third summary word I'd use: Execution. The developers and sales people and marketing people are all working hard, but working hard isn't enough, and they all know it. They must execute on the promises and visions and plans, and it all needs to exceed our expectations, lofty as they may be. So, with all of us partners and customers out of the way, I'll leave this for HCL. This is your mission. The other words matter, but this matters most of all.
 
Execution: Stop talking and put in the work
 
   

Copyright © 2019 Genii Software Ltd.

Tags:

Wed 3 Jul 2019, 11:01 AM
Overall, HCL has been doing a terrific job. They have revitalized Notes/Domino and fixed some longstanding bugs. They have worked with business partners better than IBM has in a long time. They have injected hope and enthusiasm, and have mostly met all the deadlines they've set for themselves. They have shown vision and commitment to future versions, and I see customers responding.
 
But still I worry. If there is one lesson that large companies who create "platform" products should have learned by now, it is that an ecosystem of third party products, addons, and integrations is key to survival. No one company, no matter how big or dedicated or enthusiastic, can do it alone. There need to be ISVs to meet the niche needs, to innovate in areas HCL can't afford to focus on, to take risks that HCL can't.
 
 
Inline JPEG image
 
 
Lotus understood this, and for the most part IBM did as well. One of the great reasons why Lotus Notes became a huge success early on was a surprisingly robust API that was maintained and enhanced with each version. At times, there were even multiple APIs including the venerable C API and the easier-to-learn but less complete C++ API.
 
The most recent Notes C API was released in 2013, coinciding with the Notes 9.0.1 release. Five and a half years ago.
 
Notes/Domino 10 was released in November 2018, seven months ago. There is still no updated Notes C API, nor any promise of when one will appear.
 
This was all less of an issue for the years following 9.0.1 because frankly, the old toolkit worked fine and nothing was changing. But things are changing now, including new features such as DQL as an example. ISVs watching from the sidelines see features they could build on... but can't. Integrators who might be newly enthusiastic about integrating with Salesforce, Microsoft Flow, whatever are going to hesitate when the most recent deep integration is so far out of date. Along with the C API itself, the related toolkits were built for compilers now considered ancient. To make matters worse, not only is there not a new API or new toolkits, but the commitment to the always-up-to-date API has come into question. If there is no comprehensive API available for Notes/Domino 10, which is at least mostly like Notes/Domino 9.0.1 under the covers, will there be one for Notes/Domino 11, which is likely to have some more substantive changes?
 
Of course, there are many products which require only LotusScript or features available in the product itself. HCL has made some promising noises about app stores and product delivery for those sorts of products, and that is great. But those tend to be products which live entirely within the Notes/Domino platform, and the world is far too integrated and complex to be limited to those. Tight integrations at various levels with non-HCL products tend to require lower level APIs.
 
So, while I know resources are stretched and everybody at HCL is working incredibly hard to deliver on the promises made, I also know that HCL risks a lot by not following through on the longstanding promise of the Notes C API. While I know that very, very few developers use the Notes C API directly, it is a key to the ecosystem of extensions and products which business customers need to actually embrace Notes/Domino again.

Copyright © 2019 Genii Software Ltd.

Tags:

Thu 27 Jun 2019, 10:50 AM
Watching as HCL has taken over development of the ICS products, it has been encouraging to see signs of a focus not just on new features, but on follow-through with features that are already there. Sometimes, that is a commitment to fixing bugs, but sometimes it goes deeper. If HCL really wants to make these products a success again, that commitment and focus must continue. Because the fact is, IBM did just fine adding features. They listened to customers and added features for years. Where they lost their focus was on the follow-through to make sure each feature was complete and fully integrated.
 
Let me show an example. IBM has strongly espoused a commitment to standards, accessibility, and internationalization. Hardly surprising given its strong international customer base as well as the burgeoning regional and international requirements for accommodation of those with different disabilities. But in recent years, IBM has often added the appropriate feature but not followed through.
 
 
I) Here's the feature (language tagging for accessibility and search)
 
Take a look at the following seemingly identical lines:
 
L'eau monte au fur et à mesure de la fonte des nieges.  <-- Untagged, so defaults to English as the post is in English
 
L'eau monte au fur et à mesure de la fonte des nieges.  <-- Language tagged as 'French' using the text properties
 
Inline JPEG image
 
IBM added language tagging several versions ago, and it solved a customer problem with Notes content and accessibility. Watch the video below to see the difference in how a screen reader would read this line depending on whether it is tagged as English (or defaults to it because the page is English) or tagged as French:
 
 
 
II) But where's the follow-through?
 
So, IBM has added the feature and it works well in the Notes client. But what if that same content is displayed on the web or a mobile device or sent through email? Domino completely ignores the language tagging.
 
Rendered by Domino HTTP. Note that there is no lang attribute on the <font> tag:
 
Inline JPEG image
 
Rendered by the Midas LSX. Note the lang attribute on the second <span> tag where it belows.
 
Inline JPEG image
 
 
But that is not the only way that IBM failed to follow through. This language tagging is only available on text inside a rich text field. You can't set it on text in a simple text field such as the subject. You can't set in anywhere in the form design. You can't even set it in the field properties so that an entire field is tagged. A very useful feature, but without the follow-through, it just leads to aggravation and workarounds and people abandoning the product.
 
 
III) Will HCL do better?
 
That is the multi-billion dollar question. I see positive signs, and the HCL people I talk to very much want to do better, but there are a lot of holes left and a lot of follow-through unfollowed. It is encouraging to see efforts such as the Redesigning Templates project, because that is another area where follow-through has been lacking, It is also encouraging to see HCL work with business partners and ISVs, as IBM sometimes resisted that, and this is too much to do alone.
 
For now, I'd encourage other business partners and developers and admins to submit ideas to HCL that are not simply new features or bug fixes, but also follow-through enhancements on accessibility, privacy, spit-and-polish, etc.
 
 
IV) Can Genii products help?
 
Yes and no. Language tagging support has been added to all our products, so if language is tagged it will be rendered in email by CoexLinks Fidelity, in applications by AppsFidelity, and in exports by the Midas LSX and CoexLinks Migrate. But while we can provide workarounds for some form issues, we can't add tagging to design. We can't change interface issues or make it easier to set the language for an entire document or rich text field or text field. Those things are up to HCL and up to customers and partners to request.
 
By the way, there are many, many other issues with accessibility. This is just an example to give an idea of where a feature is there, but with a little extra effort could be far more useful.
 
 

Copyright © 2019 Genii Software Ltd.

Tags:

Thu 13 Jun 2019, 11:03 PM
This is my second post in the series introduced in Delving deeper into your data - Intro in which I show how the Midas LSX can be used to query deep into Notes data and return results in JSON or XML for manual or programmatic purposes.  In Part 1, I showed how to search across all graphics in the Body fields of a database, returning only those that met some criteria in a JSON result set. In this, I show how the Midas LSX can expand to handle multiple databases, and how the results could also be XML if that were desired. I expand on the flexibility of formulas using chunk properties. So, let's look at the second question I posed in the intro: 
 
How would I find all doclinks in our three sales dbs that point to our product db? Or the ones that don't?
 
As before, I am using databases that are available in place of an actual sales dbs and product db. For the purpose of this demo, I use the Business Partner forums for 2006, 2007, and 2008. In place of the product db, I'll use the Fix List database, as people occasionally put links to specific SPRs and such.  Results for all three dbs will be returned together. We will cycle through rich text chunks with a target of 'Doclink', and since the replica id for the fix list db is 8525692D0056EDAF, we will make the chunk filter formula (see Part 1 for more details on that) we would use would be @ChunkStr(LinkReplicaID) = "8525692D0056EDAF". (If we wanted all the doclinks that pointed anywhere else, we'd use != instead of =.)
 
Now, what do we want in our result set? I decided to add the Subject of the document, but then rather than giving you individual pieces, I used a formula to generate the Notes URL. It has to be clever enough to only use the replica id if it is a db link, only the replica id and view id if it is a view link, but use all three if it is a regular doclink. The formula I used was:
 
"notes:///" + @ChunkStr(LinkReplicaID) + @If(@ChunkStr(LinkViewUniversalID)="00000000000000000000000000000000"; ""; "/" + @ChunkStr(LinkViewUniversalID) + @If(@ChunkStr(LinkNoteUniversalID) = "00000000000000000000000000000000"; ""; "/" + @ChunkStr(LinkNoteUniversalID)))=NotesURL
 
Now, let's see what this looks like as a simple result set in XML.
 
Inline JPEG image
 
or we could return the same result set as JSON:
 
Inline JPEG image
 
We could have sorted the results for either. but by default a result set generated from a selection formula is order independent, as both XML and JSON are in this kind of task.
 
Now, what if we needed each of the results to have more complete document information? For JSON, we'd use the Domino format which included doc information. For XML, we'd set a parameter called DominoMetadata='Yes'. If we generated the same two results with these changes, we'd get:
 
Inline JPEG image
 
or the same result set in JSON using the Domino format:
 
Inline JPEG image
 
 
 

Copyright © 2019 Genii Software Ltd.

Tags:

Mon 10 Jun 2019, 04:58 PM
On Friday, I posted Delving deeper into your data - Intro, in which I introduced the series and its goals. I started by suggesting a series of questions or queries we might want to answer that all go deeper than you can with DQL or selection formulas or views. My purpose is to explain more about how the Midas LSX can answer these sorts of questions, and how it can provide the answers in convenient JSON or XML form. The first question: 
 
How would I find all the product images in our offerings database that do not have corporate's dictated 1.91:1 aspect ratio or that are under 450 pixels wide?
 
To answer this, we have to iterate through the documents. While we could narrow down that set using a view or selection formula or DQL, I'm going to assume we are checking all the documents. The Midas part comes in when we go inside the document and inside one or more rich text fields to iterate through the images. Take a look at the Export Directive from our Export to JSON sample db, a data driven way of harnessing the Midas engine without having to write any code. The numbers below match the numbers of the image below:
 
1) Select all the documents (this is where we could use various criteria including DQL.
2) Specify what values we want to show up in the JSON. Both methods for getting a chunk property are used.
3) We have chosen to split the result by chunk, so we have to specify the rich text field and the target type. We will use 'Graphic' which refers to any image. See the Midas 101 - Chunk Definitionspost for more details - the fact that it was written 16 years ago should give you an idea of how durable the chunk concept has proven to be.
4) The chunk filter formula is like a selection formula for chunks. If it evaluates to True, the image is included and a record is written to JSON for this result. If not, it is skipped.
5) The JSON format to use is specified. There is a Midas-defined default format, but you can change to MongoDB or Salesforce or any of the others.
 
Inline JPEG image
 
Now, you may have noticed that in my chunk selection formula, I did basically the opposite of the question. That is because I don't have a product database with images, so instead I used one of the old Business Partner forum databases from 2007, and I will look for any images in the 13000+ documents in that db to see if there are images that are in the correct range and over the specified size. It turns out, there are six of them. See the JSON result set below. This took about 10 seconds, though there are lots of optimization details I ignored for the sake of this demo.
 
I'm going to leave this here without a lot more discussion, but please don't hesitate to ask in the comments or by email if you want clarification or are curious about the features. By the way, the actual chunk filter formula to answer the original question would be @ChunkNum(GraphicRatio) != 1.91 | @ChunkNum(GraphicWidthPX) < 450, but I'm guessing you figured that out for yourself.
 
Inline JPEG image
 

Copyright © 2019 Genii Software Ltd.

Tags: