Almost all of us are probably dealing with databases each and every day. What I am seeing all the time is that people are using keywords for their field-names, for instance “date”.

Depending on the database brand you are using there are different kind of reserved (or not reserved) keywords the database is using itself. Reserved once can technically not be used as a field-name, the non-reserved once can be used (but are likely to cause challenges in more complex queries).

Here for instance the list in postgres:

Non-reserved keywords might become tricky if you might change your database one day. What is a non-reserved keyword on database “A” might very well be a reserved keyword on a different database “B”. …

German translation below.

It was foreseeable that this would happen and it is morally and ethically the right way to go. The study participants who were in the placebo group can decide until March, 1st 2021 whether they want to stay in this group or whether they want the vaccine.

However, it can be assumed that the majority will choose the latter option of getting the vaccine. However, this has the consequence that the phase III control group will no longer be available. …

This will be a quick one. Let’s create a simple WebProject in Xojo Web 2 and add a WebButton:

Image for post
Image for post
Look of the button in the Xojo IDE

This will give you the following result in your browser:

It sounds trivial (and it is), but in the old days, you need to use some commands (depending on the used macOS version) in your terminal to either switch on or off the typical Apple Chime sound at reboot, as described here.

I don’t like the sound, especially not when your mac crashes at night time and I welcomed when Apple switched it off by default. Now with Big Sur it is again enabled by default.

On older macs, it was sufficient to change the sound level (to the extend of muting it) if you were fast enough to change the settings via the keyboard while the sound was playing. …

As mentioned, I converted two Xojo libraries from API1 to API2:

  1. Xojo StringUtils Harness
  2. Xojo ArrayUtils

This article is about changes made after the initial conversion and reported by other Xojo users.

Where I can, I’ll comment those changes. The involved repositories are always updated on my github repositories before updating this article.

Thank you, to all contributors!


Robert Livingstone reported this change request. Robert is right that since Xojo Release 2019r2 we can make use of this command, and it is definitely more elegant than :

array.LastIndex + 1

It’s important to note that if you analyze your project in the Xojo IDE it will point you to convert the former Ubound( array ) command to array.LastIndex but doesn’t give you of course the hint that array.Count exists. For better readability you should memorize this new command. …

First of all there is no need to be in a rush! API 1.0 will continue to stay for long, as Xojo has officially communicated: “Moving to API 2.0”.

This turns to the fact that many might conclude to just ignore API 2.0 for a very long time, but I don’t believe that it’s wise not to move. I’ll start all new projects with API2. Why?

  • There are a lot(!) of benefits in API2 (more on this later).
  • Many libraries and modules will be converted to API2. So we will see a transition time where some code examples will be written in API1 and other routines are already published in API2. This might confuse not only beginners. …

After my conversion of Joe Strout’s “StringUtils Harness” to API2 it probably doesn’t come as a surprise that I converted as well his library for manipulating Arrays to Xojo’s API version 2. You can find the repository here:

The available methods are:

  • Add
  • Average
  • Concat
  • Clone
  • MaxAndMin
  • RemoveSlice
  • Reverse
  • Slice
  • Splice
  • Sum

I renamed “append” to “add” to ensure compatibility with the new naming conventions of API2. So please take care of this if you have used this library in older projects you want to convert.

Slice Indexing

Several of the methods in this module take two indexes to specify a subset
off an array. Such a subset is called a “slice” and is involved in methods
such as RemoveSlice, Slice, and Splice. …

Joe Strout wrote ages ago a toolset for string manipulations beyond Xojo’s out-of-the-box functionality:

I converted this plugin to Xojo API2, available below:

Update: I meanwhile converted a second library: Xojo ArrayUtils API2

I included the original version for two reasons:

  • Ensuring it won’t get lost
  • And for users who want, for education purposes to convert the original project themselves to API2.

As Joe’s original project contains unit tests, it is a fanastic way to learn (and check) the pitfalls of any conversion to API2. Most of it is a diligent but routine piece of work. However, as a few string manipulator (like string.Middle(x,y) in comparison to Mid(string, x, y) are now finally(!) …

Of course everyone should use an https connection with publicly available Xojo WebApps to ensure an encrypted connection.

Theoretically, an https connection is slower: If a page is delivered via HTTPS (i.e. the secure variant of HTTP), the connection between the web server and the browser takes a little longer due to the so-called SSL handshake. But we’re only talking about a few milliseconds here.

Measuring the performance cost of an encrypted connection is a bit tricky, as it depends on mulitple parameters, mainly:

  • Caching behavior of clients
  • Client distance to server
  • Hardware
  • Ratio of dynamic vs static content
  • Server…


Jeannot Muller

Managing director at, physician, founder, developer and blogger.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store