Notes and Domino v12 is here!

HCL Software is launching the new version of the collaboration platform HCL Domino on June 7, together with the latest version of the meeting platform Sametime. If you already are a customer with entitlement to the products, you can already download them from FlexNet today.

Some of the new features in Domino v12:

  • Support for storing DAOS files in Amazon S3, to offload your own servers
  • Active directory password sync
  • Two-factor authentication and additional enhancements to internet security
  • New mobile capabilities
  • New icons and view list styling options
  • Hide fields or view columns on devices with lower resolution
  • Bootstrap 4 for XPages
  • Support for formula language in DQL queries
  • Aggregate document collections (e.g. from a search) across Domino databases
  • Button in Administrator client to find all groups a user belongs to
  • Enhancements to mail-in databases

And much more. Find out at the launch!

It is not only the Domino server and the Notes client that is being launched. The latest version of HCL’s no-code/low-code development tool Domino Volt is also available, as is a new version of the AppDev Pack that allows node.js developers to work directly with data stored in the Domino NoSQL-database. But wait, there is more!

A very exciting product HCL will present at the launch is Nomad Web, a client for Domino built for the browser with no downloads or plugins required. The client is written in Web Assembly, so it runs native in modern browsers. It can execute formulas and Lotusscript code, everything you can do in the regular client can be done (with a few exceptions like XPages). There has even been new classes added to Lotusscript to access hardware common in mobile devices and laptops, e.g. the camera and GPS. Nomad for iOS and Android has already been released, but with this zero footprint web client it is incredibly easy to deploy existing Domino application without having to convert them to true web applications. They will simply work as-is. This is truly an impressive engineering feat by HCL.

If you haven’t done it yet, sign up for the launch of the new Domino and Sametime on June 7.

0 Comments

NTF Needs Your Help

Anyone who has been in the Notes/Domino community for some time knows Nathan T Freeman, also known as NTF. He was one of the founders of OpenNTF back in 2001, and has been blogging and presenting on Notes and Domino related subjects for many years. I have learned a lot from him over the years.

Nathan T Freeman (center) at ConnectED 2015.

Nathan has always been a very colorful person in the community. I just found out that Nathan is having some serious health issues. His wife Lisa created a GoFundMe to get some help with the medical cost. If you have ever benefitted from something Nathan wrote on his blog or talked about at one of his many presentations over the years, or if you used OpenNTF as a source for code, consider donating to help Nathan and Lisa.

Update on 04/11/2021 by Bob Kadrie: “Nathan was readmitted to the hospital today with unstable vitals, including low blood pressure and oxygen. His heartbeat is also unstable, so they cannot transport him to a larger hospital that may be better equipped to treat him at this point. His doctors are now saying he most likely has a week or less to live.”

Update 2 on 04/12/2021 by Bob Kadrie: “Nathan has was moved to a larger hospital earlier Sunday evening in order to receive more specialized care. Once he was examined, it was determined he was experiencing complete organ failure.
He was then given Fentanyl and placed in a medically induced coma to make him comfortable,
Nathan just passed with his family by his side. He was an incredibly dedicated husband and father. He was also generous, funny. and the best intellectual sparring partner I’ve ever had.
He touched a lot of people in his short time here. He will be missed by many.
Please continue your generous donations in order to assist his family with the massive medical expenses they’ve incurred and in their transition during the days ahead.
Thank you all for bringing a little security to Lisa, Lillian, Meta, Axiom, and Ira Belle. Sandy and I are so sorry for everyone’s loss.”

The GoFundMe goal has been increased, to help Lisa and the children. They will need all the support they can get.

1 Comment

Helpful Tools – Ytria EZ Suite (part 2)

Two weeks ago I wrote about Ytria EZ Suite, a set of tools for HCL Domino that I have been using for years. Unfortunately there were so much to write about the tools that I had to split it up into multiple blog posts. This is the second article about the tools that comprise EZ Suite. In that first post I covered scanEZ, consoleEZ, actionBarEZ and viewEZ, and if you haven’t read it yet, you can find it here.

Most of the tools I previously covered were aimed more towards developers, especially actionBarEZ and viewEZ. The consoleEZ tools can also be very useful for a developer who needs to keep an eye on the server console for potential error messages from agents being executed on the server. But Ytria offer tools directly geared towards administrators as well, so today we will take a look at them.

The first of these tools is aclEZ, and as the name indicates it is used to manager the ACL (Access Control List) of Domino databases. You get an overview of who has access to the databases, and you can modify, create and of course delete entries. You are of course not limited to displaying one database, you can select multiple databases and compare the ACL settings between the different databases. You can also copy ACL settings between databases, so you can setup one database with the proper security settings and then copy them to as many databases as you like on your server.

Ytria is using a configurable grid to display columns in all their tools. This is making it easy to view just the info you are looking for. Columns can be hidden or displayed, sorting can be set, and much more. I find this flexibility very helpful, there are often columns I am not even remotely interested in and now I can just prevent them from being displayed.

In addition you can sort the columns in the grid, and also apply filters so only values matching a specific criteria are displayed.

This is just a couple of examples of the many details I enjoy with the Ytria tools. They have over 20 years of experience creating tools for Notes and Domino professionals, and that shows. Everything is well thought through, and the tools offers great flexibility.

A tool I find extremely useful is databaseEZ. It allows me to get a high level view of all databases on a server, check things like the ODS version, if they are full-text indexed or not, the database size,, when they were last compacted, and also look at the size of the view index for each view in a database.

All this information helps me for example if I need to find out why a Domino application is slow, or which databases needs maintenance first. Almost this information can be accessed from the Domino Administrator client, but not in this easy to read format. Instead you need to open a number of different views and dialog boxes in each database. This is a huge time saver!

The last tool I want to mention today is replicationEZ. As the name states, this is a tool to locate and compare replicas of databases on different servers. Like in the other tools from Ytria, there are too many functions to list them all. I would like to mention a few that I find very useful.

Here I have loaded two of my servers into the replicationEZ grid, and it is now easy to see that there are a couple of databases I don’t have replicas of on my secondary server. I am also loading and comparing the number of documents and deletion stubs in two replicas of a database, and you can see there is a discrepancy on the number of deletion stubs between them (highlighted in red).

It is of course easy to create new replicas, or rather a replication stub. This is another example of how Ytria added functionality that I miss in the native Domino Administrator. Instead of having to sit and wait for a new replica to be created and all documents replicated to the new server (or start the replication, cancel out after a few documents have been replicated, and then let the Domino server finish the replication in the background), replicationEZ creates a replication stub, and I can continue to work while the full replica is created.

There are a few more tools from EZ Suite that I want to talk about, so check back in a few days for the last blog post.

0 Comments

Busy, busy – But wait: There is help!

For the last year and a half I have been very busy with different projects, and this blog had to be put on the back burner. And no, despite a number of blog posts about Microsoft Flight Simulator, I have actually not had much time to play it, less than 10 hours since it was released last August. But this leads me to today’s topic: tools that can help you save time.

As a Notes/Domino developer, administrator or power user, you often need to go deeper into the Domino database. This could be tasks like finding and resolving replication contacts, look closer at the fields (including hidden fields) in a document, or quickly locate all documents of a particular type, or matching a particular criteria that you don’t already have a view for. As an administrator you maybe would like to keep several Domino consoles visible side by side, so you can watch what is happening on all your servers at the same time. As a developer, what if you could copy the design of a view or an action bar to numerous other views to make all views look consistent, without having to edit and update every single view manually? Things like that makes your life easier and makes you more efficient, but you don’t have that in the native product.

One set of tools that stands in a class by itself is EZ Suite from Ytria. The EZ Suite tools are extremely powerful, and there is no way I will be able to cover all of them in one blog post. I will focus on some of the functions that have been useful to me, and even with that limitation I have to split this up in multiple blog posts.

The first tool from Ytria I ever tried was scanEZ. We had some issues with a database at my old work (I don’t remember the details anymore), so we purchased a time limited version of scanEZ. I think it was valid for a week, enough for us to salvage the documents in the database. My boss thought the tool could be useful in the future, so he immediately purchased a full license of it for himself. Eventually he purchased a license of EZ Suite for me, and I made frequent use of the tools, both while doing development and server administration, as well as when I had to troubleshoot database issues or replication conflicts.

You can purchase the full suite , or one of several bundles of tools geared to different types of users (developers, administrators or developer with some administration needs). Each tool can also be purchased individually.

The latest version is EZ Suite 20. This version contains a number of new functions and enhancements. Since I haven’t used the tool in the last couple of years, after my license expired, I have not been keeping up with all the new features, but as always Ytria is supporting the latest version of Notes and Domino.
Disclaimer: Ytria generously provided me with a license for the latest version, but I was previously a paying customer, and I have recommended their products for many years.

Let’s start with the first tool from Ytria I was ever exposed to, scanEZ. This tool makes it possible to explore a Domino database in depth, not only the documents but design elements, settings and even deletion stubs (the remains of deleted documents used to delete the document in replicas). Fields can be added, deleted and their content can be changed. You can even change the data type of a field, as well as many other attributes.

In scanEZ you can also look at and modify profile documents and replication conflicts, which often comes in very handy. But there is also a dedicated Conflict Solver tool within scanEZ. It will analyze the database, which can take a little bit of time, but then you can compare the conflict document with the parent and see which fields differs. This may even help you figuring out how the conflict was created, and how you can prevent that in the future.

This only scratched the surface of what scanEZ is capable of. I have not even mentioned the different ways to view and analyze data. You can for example dynamically categorize the documents through drag-and-drop, and even present the data in charts, thanks to the extensive capabilities of scanEZ.

The next tool I want to mention is consoleEZ. The easiest way to describe it is the Domino server console on steroids. You can view multiple consoles simultaneously, and also see a list of the tasks running on them. Your console commands are saved, and you can view them later if you like. It has many features you wish were in Domino Administrator out of the box, and even more features you did not even know you wanted.

You don’t have to be a hard-core administrator to appreciate consoleEZ. It was first released about six years ago, so it is one of the latest additions to EZ Suite. It quickly became one of my favorite tools.

I do quite a bit of modernization of Notes and Domino applications. Often this involves web enabling them, including creating a modern UI using HTML, CSS, and often a framework like Bootstrap. But there are still many Notes databases that works well, and instead of rewriting a lot of the existing logic for the web, a refresh of the Notes client UI is sufficient. This often involves adding a nicer background to the action bars, as well as changes to the views. Just a few small changes can make a huge difference, and make an old application look fresh again.

But even after you come up with a nice, more modern looking design, you have to duplicate it across all the action bars and views in your application. This is where actionBarEZ and viewEZ comes in. Those two tools makes it a breeze to apply a design to many action bars or views or copy the design from one view/action bar and apply it to any view or action bar you want.

Using actionBarEZ you select a number of view, pages or form, and change the properties across all the elements just like you would have done in Domino Designer, but there you can only make the changes on one view, form or page at a time. But the function I found the most useful function is that you can design a nice action bar in one view, then select that design and with the click of one button apply it to any views, forms or pages you like. This has saved me countless hours of work. The functionality of viewEZ is pretty much identical.

Stay tuned for the next part to be published in the next few days.

2 Comments

Semantic UI – An alternative to Bootstrap?

Bootstrap is currently undisputedly the most popular CSS library. I have been using Bootstrap since 2012, starting with version 2.3. The current version is 4.5, with version 5 is under development and expected at the end of this year.

So why is Bootstrap so popular? There are several reasons, but perhaps the most important one is that it is very easy to get started and create attractive webpages, most components you need are available out-of-the-box, and there are  number of different themes to change the visual look of the sites. But perhaps the biggest reason for the popularity is its popularity. There are countless code snippets, samples and plugins available, as well as tutorial and a huge community you can tap into for help. There are currently over 98,000 questions on Stack Overflow for all versions of Bootstrap, and over 21,000 for the latest version.

But Bootstrap is of course not unchallenged. There are a number of other CSS frameworks available today, some more complete than others. One interesting framework I recently found is Semantic UI. It uses simple phrases, called behaviors, to trigger functions. Below is an example with a select box where the code is selecting two values from the list.

$('select.dropdown')
    .dropdown('set selected', ['meteor', 'ember'])
;

<select class="ui fluid dropdown" multiple="multiple" name="skills">
   <option value="">Skills</option>
   <option value="angular">Angular</option>
   <option value="css">CSS</option>
   <option value="ember">Ember</option>
   <option value="html">HTML</option>
   <option value="javascript">Javascript</option>
   <option value="meteor">Meteor</option>
   <option value="node">NodeJS</option>
   </select>

The resulting website looks very similar to one created in Bootstrap, if you use the default theme. One difference you might notice quickly is that the grid system is using 16 as the base, not 12 as Bootstrap does.

Semantic UI also contains several component you will not find natively in Bootstrap. On of them is dividers, which are available in horizontal and vertical variants.

The list component can very easily be configured in a multitude of different ways.

To create the horizontal list, the markup looks like this:

<div class="ui horizontal list">
  <div class="item">
    <img class="ui avatar image" src="/images/avatar/small/tom.jpg">
    <div class="content">
      <div class="header">Tom</div>
      Top Contributor
    </div>
  </div>
  <div class="item">
    <img class="ui avatar image" src="/images/avatar/small/christian.jpg">
    <div class="content">
      <div class="header">Christian Rocha</div>
      Admin
    </div>
  </div>
  <div class="item">
    <img class="ui avatar image" src="/images/avatar/small/matt.jpg">
    <div class="content">
      <div class="header">Matt</div>
      Top Rated User
    </div>
  </div>
</div>

Take a look at Semantic UI, maybe it will come in handy for your next web project!

1 Comment

Microsoft Flight Simulator – First Impressions

The highly anticipated new version of Microsoft Flight Simulator was released on August 18,, and I have been playing with it for a few days in my spare time, and I wanted to share my first impression.

This simulator is impressive. You can fly anywhere you like on Earth, thanks to Bing Maps. Microsoft partnered with Austria-based Blackshark.ai to enhance the satellite images using AI software. The result is a great looking world. The AI is taking 2D satellite images and trying to figure out what the buildings would look like in 3D, and it will of course not always get it right. But as long as you fly at a realistic altitude (say above 1000 ft), it looks very real.

There are certain cities where photogrammetry is available, for example New York City, and there the result is astounding. Many famous landmarks and buildings around the world received manual attention, and a number of iconic airports have been handcrafted to look extremely realistic. The Basic Edition contains 30 of those airports, the Deluxe Edition contains 5 additional airports, and finally the Premium Deluxe Edition (which is the one I purchased) contains 10 more airports.

You can change the tail number of the planes, and even change your call-sign used by the Air Traffic Control. You can fly a number of different airplanes and variants of them, everything from Cessna 152 to Boeing 747.  The airliners in the game (Airbus 320Neo, Boeing 747 and Boeing 787 Dreamliner) all come with a company livery, but there are already liveries to download for free, created by the Flight Simulator community. As I write this there are 40 liveries to Airbus A320Neo available for free, including the British Airways one you can see in the screenshot below. Update: a new version was released during the afternoon and evening, while I was still working on this review. There are now 70 liveries, including several for other airplanes in the game. Download it here: https://www.msfsaddons.org/liveries/liveries-megapack-v6

The simulator also includes a store where you can purchase add-ons like additional airplanes, airports and buildings. There were a handful products available already at launch, and I choose to purchase the London Landmark pack, with about 200 buildings for $7.95. If you viewed Buckingham Palace as it appears by default, it looks like an office building, and HMS Belfast, next to Tower Bridge, is flat and appears to be under the water in the original scenery. After installing the add-on, London looks much better.

What about the hardware needed? Surely you need a top-of-the-line computer? Yes, if you want to fly in 4K in Ultra settings (the best quality), you need a top-of-the-line graphics card. But my 4 year old system with an Intel i7-6700K and AMD Radeon RX 580 can play using the high settings, even if certain areas with a lot of buildings gets a low frame rate. Lowering the resolution from 4K would help, as well as setting the quality settings to medium, improves the framerate, but I really like the 4K experience on my 43″ monitor, so I see myself getting a new graphics card in the near future.

 

There are  many details in the game that amazes me. On the airliners you see the heat distortion from the engines, the sun reflects in the aircraft, and when you change the time, the sun, moon and stars move. When the sun moves, you can see the shadows from buildings move. Clouds casts shadows as well.

If you are interested in flying, or if you just want to do virtual sightseeing, Microsoft Flight Simulator is a great piece of software.

 

0 Comments

HCL Volt – A real life use case

The first update to HCL Volt is now available for download. In version 1.0.1 there are a number of improvements, so if you already have Volt installed, get this update from Flexnet. But this post is not about the technical details of Volt. No, it is an example of how I used the product the other day to quickly put together a small application to help with a very specific task.

Last month my wife and I went on a trip to Estes Park in Colorado, where we enjoyed sleeping with open windows, enjoying the fresh cool mountain air. We started talking about getting an RV, to allow us to leave the Texas heat during the summer. My wife started doing some research on different camping trailers, but soon there was too many models, weights, dimensions and features to keep track of easily. I started to create a spreadsheet in Excel to keep track of everything, but a few minutes later I realized I had a much better tool available: HCL Volt.

I started my browser and went to the Volt Application Manager, where I created a new application by importing the Excel spreadsheet I had started on.

Within a few seconds I had the beginning of my application. I added some additional fields, for example to upload images of the floorplans and to store links to the manufacturers webpages with more information.

It took me about 10 minutes to put the whole thing together. I sent my wife the links, and she logged in and started entering data, as she was researching. A little bit later she asked if it would be possible to add some more checkboxes to the list of features I had created. I gave her the access to modify the application, showed her where she needed to go, and she fixed it herself without me having to show her anything. That’s how intuitive Volt is!

We now have a simple but functional tool to record details about any camping trailer we find, and where we can later go back and review the different alternatives.

There is even a built-in summary page where we can see statistics of the different trailers. This is created automatically from the data entered, no code needed. As a matter of fact, I have not written one single line of code in this application.

This is just one example of how you can create a useful application in a few minutes. But don’t take my word for it. Try it yourself for free, no download required!

If you want to get this very affordable add-on product to HCL Domino, contact your HCL Business Partner.

3 Comments

Microsoft Flight Simulator – Arriving August 18

In June 2019 I blogged about the upcoming Microsoft Flight Simulator, often dubbed Flight Simulator 2020. I have been following the development, even if I have not been part of the alpha testing group.

Microsoft worked closely with the Flight Sim community, and posted a series of videos where they talk about different aspects of the game. I think most people (including me) expected the game to be released in late November or early December, to coincide with the holiday season.

But just a two weeks ago, it was announced that the game will be available on August 18.

There will be three different editions: Standard ($60), Deluxe ($90) and Premium Deluxe ($120). The more expensive editions contains more airplanes and additional handcrafted Airports. Pre-orders are already open.

Airplanes available in the different editions
Available hand crafted airports

The graphics is spectacular, Microsoft has recreated the whole Earth using satellite images and aerial photography, together with AI to create 3D buildings and trees from flat images. Weather is simulated in detail, and you can even get real-time weather. The airplanes are simulated in detail, in one of the videos from the developers they said that when you turn on landing lights, you see the Ampere meter move.

You can also fly together with other people, and in the most realistic settings real life air traffic will be available in the simulator.

I started playing Flight Simulator 3.0 back in 1988, and I don’t think I could even imagine backbthen what the game would look like 32 years later…

Flight Simulator 3.0 (1988)
Flight Simulator (2020)

0 Comments

HCL Volt – A new Leap for Domino!

This Monday HCL released HCL Volt for Domino, their entry into the no-code/low-code market. This is a tool that allows the non-developers (a.k.a. Citizen Developers) at a company to build their own applications without having to write any code at all. Later the application can be enhanced with code, perhaps by someone in IT, but a power user, or even a regular user with some knowledge of Excel will quickly feel at home in Volt.

Volt for Domino requires a server with Domino 11 or higher, but the user and developer only needs a web browser, no development tools needs to be installed.

I have created a short video where I am demonstrating how you in a few minutes can take a spreadsheet someone sent you and automagically transform it into a real database application, without one single line of code!

Please let me know what you think about the video, it is my first attempt in this format. I was originally planning comments as voice-over, but I was unable to get my microphone to be loud enough. So I decided to put my comments as sub-titles instead.

 

4 Comments

Domino 11.0.1 is available!

HCL has released Domino 11.0.1, which includes updates to not only the server but also the Notes and Designer client.

So what is new? The version number makes it sound like this is just a version with bug fixes, but nothing could be further from the truth. There are a number of improvements and new capabilities, including new functions as well as enhancements in Domino Designer. Let’s take a quick look at some of the most interesting new functionality.

Part of your entitlement is a Docker-compatible image of Domino 11.0.1. It is available for download through the HCL Licensing Portal (FlexNet). HCL Domino 11.0.1 is pre-installed on this image, which allows you to deploy Domino server containers very quick and easy.

You can now register multiple Active Directory users using the Directory Sync feature, the Domino web server supports Server Name Indication (SNI) and there is support for Subject Alternative Name (SAN) in X.509 certificates. There are also enhancements to DAOS tier 2 storage, where you can move attachments to AWS for longer term storage.

SwiftFile, a tool that automatically sorts incoming mail into different folders based on the content is now finally integrated into the client, not a separate add-on as previously. The administrator can disable SwiftFile through a setting in notes.ini.

A new Java Runtime Environment is also included, as well as an updated version of MarvelClient Essentials from panagenda.

There are some changes to the underlying software used to import and view attachments.

On the security side, the Notes client can now use 128-bit AES for local database encryption, and new Notes IDs must have 1024-bit keys (or stronger).

For my fellow developers out there I want to mention the new method CreateDocumentCollection in the NotesDatabase class. Finally a native method, no more need for a hack to get an empty document collection. There are also improvements to DQL (Domino Query Language), for exaple numeric and date-only terms in queries. A new version of AppDev Pack is also released, version 1.0.4, where domino-db now supports rich text items and running agents in Domino databases.

Your can real more on the HCL Domino Blog.

0 Comments

Keep up with COVID-19 though Domino!

Are you are suddenly sitting at home with nothing to do, due to the corona virus COVID-19? You can’t go to the gym. You can’t go to your favorite computer store to browse all the latest hardware and plan for your next water-cooled build. You can’t go out to eat.

But what you can do is to try out some of the new functionality in HCL Notes and Domino. Today I started a little project where I try to incorporate a number of the latest and coolest functions in a simple but useful application. I hope to be able to create several blog posts about this project over the next few days.

I came up with the idea for this app when someone sent me a link to a web page where information about COVID-19 is aggregated from all US states. I thought it was a neat page, but then I noticed that they have a public API where the numbers are served up. Now things started to become much more interesting! This is what the JSON data looks like:

[
  {
    "state": "AK",
    "positive": 6,
    "negative": 400,
    "pending": null,
    "death": null,
    "total": 406,
    "lastUpdateEt": "3/18 16:30",
    "checkTimeEt": "3/19 15:12"
  },{
    "state": "AL",
    "positive": 68,
    "negative": 28,
    "pending": null,
    "death": 0,
    "total": 96,
    "lastUpdateEt": "3/19 10:45",
    "checkTimeEt": "3/19 15:15"
  },{
    "state": "AR",
    "positive": 46,
    "negative": 310,
    "pending": 113,
    "death": null,
    "total": 469,
    "lastUpdateEt": "3/19 11:23",
    "checkTimeEt": "3/19 15:16"
  },{
    "state": "AS",
    "positive": 0,
    "negative": null,
    "pending": null,
    "death": 0,
    "total": 0,
    "lastUpdateEt": "3/14 00:00",
    "checkTimeEt": "3/19 16:18"
  },{
    "state": "AZ",
    "positive": 44,
    "negative": 175,
    "pending": 130,
    "death": 0,
    "total": 349,
    "lastUpdateEt": "3/19 00:00",
    "checkTimeEt": "3/19 15:18"
  },{
    "state": "CA",
    "positive": 924,
    "negative": 8787,
    "pending": null,
    "death": 18,
    "total": 9711,
    "lastUpdateEt": "3/19 14:25",
    "checkTimeEt": "3/19 15:20"
  }
...

So what could I do with this data? Why not bring it into a Domino database to start with, and then retrieve the data on a schedule, say every hour?

We should then be able to chart the data for each state over time. In order to not store the same data over and over again, I want to check if the data has been modified since the last time the agent ran. I will just use the lastUpdateEt date and time stamp in combination with the state abbreviation to perform a lookup. If I get any result(s) back, the data was already stored.

So how do you read the JSON from the API? In the past I would have used my own HTTP Request class, but this is not needed anymore. This is thanks to the NotesHTTPRequest class, first introduced in Domino 10 and then improved in Domino 11. In Domino 11 the wizards at HCL in Chelmsford added classes to parse JSON. The NotesJSONNavigator is the base of the parser, then you use NotesJSONArray, NotesJSONObject and NotesJSONElement to traverse through a JSON payload. When you get the hang of it, this is much easier than it maybe sounds at first.

So let’s take a look at my code. This is a scheduled agent, running once an hour:

%REM
  Agent Retrieve Data
  Created Mar 19, 2020 by Karl-Henry Martinsson/DBS
%END REM

Option Public
Option Declare

Sub Initialize
  Dim session As New NotesSession
  Dim db As NotesDatabase
  Dim view As NotesView
  Dim http As NotesHTTPRequest
  Dim json As NotesJSONNavigator
  Dim element As NotesJSONElement
  Dim stateArray As NotesJSONArray
  Dim state As NotesJSONObject
  Dim response As Variant
  Dim url As String

  Set db = session.CurrentDatabase
  Set view = db.GetView("LookupExisting")
  Call view.Refresh()

  Set http = session.CreateHTTPRequest()
  url = "https://covidtracking.com/api/states"
  response = http.get(url)
  Set json = session.CreateJSONNavigator(response)
  Set element = json.GetFirstElement()
  Do Until element Is Nothing
    Set state = element.Value
    Call processState(state, db, view)
    Set element = json.GetNextElement()
  Loop
End Sub

Function processState(state As NotesJSONObject, db As NotesDatabase, view As NotesView)
  Dim doc As NotesDocument
  Dim col As NotesViewEntryCollection
  Dim values List As String 
  Dim element As NotesJSONElement
  Dim key As String
  Dim value As String
  Dim stateName As String
  Dim lastUpdate As String 

  Set doc = New NotesDocument(db)
  doc.Form = "StateData"
  Set element = state.GetFirstElement()
  Do Until element Is Nothing 
    key = element.Name
    value = element.Value
    If key="state" Then
      stateName = value
    End If
    If Right$(key,2)="Et" Then
      lastUpdate = Format$(CDat(value),"mm/dd/yyyy hh:nn AM/PM")
      Call doc.ReplaceItemValue("lastUpdated", lastUpdate)
    Else 
      Call doc.ReplaceItemValue(key, value)	
    End If
    Set element = state.GetNextElement()
  Loop
  Set col = view.GetAllEntriesByKey(stateName+"^"+lastUpdate)
  If col.count=0 Then
    Call doc.Save(True,False)
  End If
End Function

This is all the code you need. Yes, I am serious. You can now consume any data on the web, served up by any system with a REST API, straight into Domino, with just a few lines for code.

The NotesHTTPRequest is very straight forward, so there is not much to say about it. But the classes used to parse JSON may need some explanation.
You start with the NotesJSONNavigator. You then use the value property of the NotesJSONElement class to get a value, an array or an object. The array or object is put into a NotesJSONArray or NotesJSONObject object, and you can then traverse down into the JSON structure. This is very powerful and useful, we have all been asking IBM for this functionality for many years. Now HCL delivers!

I created a hidden view for the lookup to avoid the same data stored multiple times. It only contains one (sorted) column, which is used by the lookup:

That is pretty much it.

I also created a view to display the data:

Soon we will do something more fun with the data. I will just let the scheduled agent run for a while and build up my database first. Keep your eyes open for the next post about this project!

4 Comments

100 years ago today

Exactly 100 years ago today, on December 20, 1919 my uncle Karl-Heinz Groeling was born in Subowitz, in what was then Germany. Today the town, located just south of Gdansk (Danzig in German), belongs to Poland and is called Sobowidz. His parents were Robert Groeling (1890-1984) and Elsa Groeling (nee Hecke, 1893-1978). Karl-Heinz had three younger sisters: my mom Marie-Luise (1926-1987), Anneliese (1928-1946) and finally Katja (born 1932).

Karl-Heinz, Marie-Luise, Anneliese and Katja in 1934

Karl-Heinz and Robert Groeling

Following Germany’s defeat in World War I, the Versailles Treat forbid Germany from having an Air Force. After Adolf Hitler came to power in 1933, Germany started training pilots in secret. In addition, a program started to prepare young men for future pilot training, by using gliders and sail planes.
My uncle started flying in 1936 or 1937, probably through the German Air Sports Association (Deutscher Luftsportverband, or DLV e. V.), an organization set up by the Nazi Party in March 1933 to establish training of military pilots. I was told he once flew over the market in the center of Lauenburg, where the family now was living, with a sail plane, which caused some complaints from the city and an earful from his mother. He was probably lucky that his father was already in the Wehrmacht (Army) at this time, and not at home.

Elsa Groeling surrounded by (left to right) Marie-Luise, Katja and Anneliese

In addition to enjoying flying, Karl-Heinz was also a gifted musician. He played violin, piano, organ and trombone. He was, however, not allowed to practice the trombone at home, due to complaints from the neighbors. When I was a child my mother spoke about the time when he played as a member of a band on a cruise ship. The Nazi dignitaries on this cruise were served the best food, and the band was allowed to eat the same food. According to my mother, her brother hollowed out the breakfast rolls (“Brötchen” in German) and feed the innards to the seagulls. Then he filled the cavity in the bread with butter and enjoyed his self-made delicacy. To him the butter was the luxury and he took full advantage.

In September 1939 Karl-Heinz had just passed his entrance exams for the university (“abitur”) when WW2 broke out. He volunteered for the Luftwaffe (Air Force), however, he was rejected at first for being “too tall”. A month later the decision was reversed and he received order to join the Luftwaffe.

In front of a Ju-52

Karl-Heinz flew Fieseler Fi-156 “Storch”, a light forward observation and medical evacuation aircraft, as well as Junkers Ju-52 transporters. Using the Ju-52, he took part in the Battle of Stalingrad, attempting to supply the German 6th Army with food and other supplies after it was cut off and surrounded, as well as evacuation of wounded soldiers out of the city.

He served as Unteroffizier, an NCO (Non-commissioned Officer) rank that is most similar to Sergeant (OR-5). He was acting as a squadron leader (“Staffelkapitän“), a position which normally is held by a major. Incidentally his father, who was a lieutenant by the end of WW1, ended up with the rank of major during WW2.

Towards the end of the war, Germany was lacking both aircrafts and fuel for them. Karl-Heinz was assigned to an anti-aircraft artillery regiment, in German called Flak (from Flugabwehrkanone).  In Germany during WW2 both anti-aircraft artillery and airborne troops belonged to the Air Force, not the Army as in most other countries.

My uncle served in the 6th battery, Flak Regiment Hermann Göring (a.k.a Fallschirm-Flakregiment Hermann Göring) , which was part of Fallschirm-Panzerkorps Hermann Göring. I have been able to find a chart showing the organization of the unit at the beginning of 1945, and according to it my uncle would have been in the 1st battalion (the triangular flag with a 1 next to it).

Fallschirm-Panzerkorps Hermann Göring in January 1945

I am not an expert on German WW2 organizational charts. Normally the numbering is from right to left. I was once told that the 6th battery is most probably the symbol all the way to the right, which indicates a towed battery equipped with the German 8.8cm anti-aircraft gun. It was probably towed by a half-track, e.g. Sd.Kfz. 7, or possibly a truck. (video)

However, if you count the batteries from right to left, he would been in the left-most battery under 1st battalion, which is a Flakvierling, four 2cm auto-cannons combined into one unit. (video)

In the beginning of 1945 Karl-Heinz was in East Prussia fighting the advancing Red Army. The 88mm anti-aircraft gun was not only used against aircrafts, it had been found to be efficient against armored vehicles and tanks as well, so he was serving in an anti-tank role.

German units were encircled in the Heiligenbeil Pocket or Heiligenbeil Cauldron (German: Heiligenbeiler Kessel), after they were denied their requests to retreat. Zinten (now known as Kornewo, Kaliningrad Oblast) was the scene of bloody battles. Both sides paid a heavy price in terms of casualties. Karl-Heinz Groeling was one of those casualties. He was wounded on February 23, 1945, shot through the left lung. He was moved to a field hospital, then a hospital ship and finally to a hospital in German-occupied Denmark, where he arrived on March 10.

Medical Records from hospital

In the early hours of March 16, 1945, at 3.10am, Karl-Heinz Groeling passed away, just 25 years old. He is buried at the beautiful Vestre Kirkegård in Copenhagen.

Final resting place.

My parents named me after my uncle, something I consider an honor.

 

 

1 Comment

HCL Master Class of 2020

Yesterday I received a mail from HCL, informing me that I had been selected as one of the HCL Masters for 2020.

As IBM Champion I automatically transferred to the HCL Master program earlier this year, but it means more to me this time, as HCL actually did the selection. I am very honored and proud to be in the company of all these brilliant women and men, many of which I count as close friends. Thank you HCL!

0 Comments

CollabSphere 2019 – Less than five weeks left!

If you haven’t registered yet for CollabSphere in Boston, time is starting to run out. The conference starts in less than five (5)  weeks, and the special price for the rooms at the conference hotel is only guaranteed until October 4.

If you haven’t been to CollabSphere, or its predecessor MWLUG, you have been missing out. It is a very inexpensive confernece (only $100 this year, thanks to generous sponsors), with high quality speakers for the sessions and workshops. The opportunity to network with other customers, business partners and representatives from IBM/HCL is incredibly valuable, in my opinion. There are both organized and impromptu social events during the conference, as well as before and after for the ones arriving early or leaving late.

If you are in the New England area, there is no reason you should not attend CollabSphere, now when it is taking place on HCL’s home turf, where many of the developers live and work.

With Domino 11 coming out at the end of the year, I am sure we can expect some very interesting and exciting announcements at this year’s conference. And don’t miss HCL Day on Monday, with a large number of sessions covering everything from their Cloud Program, the changes to licensing, the HCL Customer Advocacy Program, and much more.

I hope to see you at CollabSphere, especially at my session on Tuesday at 2.00pm, where I will talk about Node-RED and show some cool things you can do with it.

 

 

 

0 Comments

Switch between Edit and Read-Only mode on web form

A question on Stack Overflow made me remember some code I wrote a few years ago. It allows you switch a form between regular edit mode and read mode, without having to reload the page. It works just like you are used to in the Notes client. So I thought I would post it here on my blog as well.

It is not very complicated. I am using jQuery, but you can of course use plain Javascript if you like. What the code does is to locate all INPUT fields you want to make read-only. It then creates a regular DIV element and set the content of it to the value of the INPUT field. The id and a couple of other attributes are also copied over, then the new DIV is inserted in front of the INPUT field. Finally the INPUT field is deleted.

To make the DIV editable again, the same process is done in reverse.

Below is the jQuery code to make all elements with the data-attribute dominofield read-only. I am using this data-attribute to map input fields to fields in a Domino database. It makes it very easy to create HTML forms and submit them to a Domino database, with one generic agent that will process the Ajax call. The field names and values will be provided in the JSON payload, and the Domino document can then be created or updated and the fields populated with the proper values.

  // Get all input fields used for Domino
  var inputs = $('[data-dominofield]');
  // Process each field
  inputs.each(function() {
    // Build new DIV element
    var input = $(this);
    var div = '<div class="fieldReadOnly" ';
    div += 'data-dominofield="' + input.data('dominofield') + '" ';
    div += 'id="' + input.attr('id') + '">';
    div += input.val() + '</div>';
    // Insert ther new div element in front of input field
    input.before(div);
    // Remove input field
    input.remove();
  });

I also created a fiddle where you can test it yourself.

If you are using Bootstrap, you can also use the readonly attribute and the class .form-control-plaintext to get the same result. This is documented here.

 

0 Comments

CollabSphere 2019 – Submission deadline is closing soon!

CollabSphere_2019

The deadline to submit an abstract for sessions at CollabSphere 2019 is tomorrow, Sunday August 18. If you want to speak at the conference, you don’t have much time to act.

So why would you like to speak at CollabSphere? Perhaps your reason is the same as mine was when I started speaking at conferences: I wanted to give back to the community from which I had learned so much over the years. I wanted to share my knowledge with other developers, and perhaps inspire them by showing what could be done with Notes and Domino.

What if you are afraid of public speaking? That is absolutely normal. With practice you get more used to it, and one place where you can practice it in a safe and encouraging environment is at Toastmasters, an international organization focused on public speaking and leadership. There are local Toastmasters clubs all over the world, and you can join at any time.

Even if you are not speaking, you can still register to attend the conference. This year it is held in Boston, close to the HCL office in Chelmsford, and we can expect a lot of exciting news about Notes and Domino 11 (which is due in the end of the year), and perhaps even about Domino 12. This is a can’t-miss conference!

0 Comments

HCL Software Creates Portal for Customers and Partners

HCL_Software_PortalHCL Software today launched a brand new portal for customers and partners. HCL Software is a part of HCL Technologies, and this new division was announced as late as yesterday (June 1, 2019) at the same time as HCL announced that the purchase of IBM’s collaboration products had been completed.

The new portal is built using Domino and Portal, and provides customers and partners a place where they can receive product information, learn about purchasing software, get support, connect with partners, and much more.

If you are a customer of IBM Notes, Domino, Sametime, Verse or Connections, or if you are a Business Partner, go to http://bit.ly/mlnHCLw3 and sign up. At the moment the sign-up is disabled, due to the acquisition. But I would suggest to check back in a few days.

0 Comments

The deal is done: HCL takes over Notes, Domino, Connections and more

Today the announcement we have been waiting for arrived. HCL and IBM closed the acquisition that was announced back in December. HCL now owns (among other products) the collaboration products Notes, Domino, Sametime, Verse and Connections.

As part of the deal’s close, HCL takes full ownership of the research and development, sales, marketing, delivery, and support for AppScan, BigFix, Commerce, Connections, Digital Experience (Portal and Content Manager), Notes Domino, and Unica.

HCL is also formally introducing HCL Software, a new division that will operate this enterprise software product business and meet customer demand. A Business Unit of “Products and Platforms” (Mode 3), HCL Software has successfully delivered more than 340 partner releases and more than 90 HCL releases, including such popular products as Informix 14.10, Domino 10, Workload Automation 9.5. The division aspires to reshape the enterprise software business, focused on innovation and cutting-edge delivery for customer success.

Read the full announcement at http://bit.ly/HCLSoftware

Over the last few months we have seen a number of IBM:ers who has been working with the collaboration products move over to HCL. In the last few days we have seen even more people at IBM announce their moves to HCL, including Mat Newman who will become Director of HCL Digital Solutions, Asia Pacific and Stephan Wissel, the new Solution Director at HCL PnP.

As a developer, it is very exciting and encouraging to see that Maureen Leland, who was in charge of Domino Designer for over a decade and have been with Lotus, Iris and now IBM since 1992, is now at HCL. Security expert Dave Kern is also moving to HCL, as is Wes Morgan, Adam Gartenberg and many others. The fact that HCL is bringing over all the brilliant minds from IBM is also encouraging. The investments in Notes and Domino that HCL already has made should show everyone that they see the products for what they are, amazing technologies and products that were decades ahead of the competitors. Just the other day (June 18, 2019), Mongo DB announced field level encryption. This is a feature Notes and Domino has had since day one, 30 years ago…

I believe the future for Notes, Domino, Sametime and Connections is very bright. The developers are ecstatic that they finally get to implement new features, make improvements and even bring the Notes client to mobile devices (iPad, iPhone and Android). We have already seen some great things come from HCL, like the new Domino Query Language created by John Curtis, as well as the node.js integration.

I cannot wait to see what HCL will deliver in the future. Notes and Domino 11 is planned already for the end of this year.

 

0 Comments

Call 32-bit COM Objects from 64-bit Domino

We all know that when you upgrade your Domino environment from 32-bit to 64-bit, any COM objects you use will not work anymore. You thn need to get and install a 64-bit version of the COM object.

But what if there is no 64-bit version? Do you have to stay on 32-bit Domino forever? Or rather, stay on Domino 9.x, since Domino 10 (and probably also the upcoming version 11) are 64-bit only.

Perhaps not. I found this article that describes how to use a 32-bit COM object in a 64-bit environment, like Domino 10. I have not had time to test it myself, but I will probably try it this weekend.

Read all the details at https://techtalk.gfi.com/32bit-object-64bit-environment/.

2 Comments

End of content

No more pages to load