Thursday, November 30, 2023

Thoughts on how to move from Cloud Functions to Code Engine

Moving code and containers
IBM Cloud Code Engine is a fully managed, serverless platform to (not only) run your containerized workloads. It has evolved a lot since March 2021, the time when I published the blog post Migrating Cloud Functions Code to Code Engine. In 2021, there were only Code Engine apps and jobs. Earlier this year, Code Engine added support for functions(Function-as-a-Service, FaaS). Thus, in this post I am going to take a fresh look at that topic and discuss the options on how to move from Cloud Functions to Code Engine. 

Tuesday, November 28, 2023

Tips and tricks for using IBM Cloud Code Engine functions

Utilize Code Engine runtime information
Over the past weeks, I started to use IBM Cloud Code Engine functions. Code Engine is IBM Cloud's fully managed, serverless platform to run containerized workloads. It offers apps, jobs, and most recently functions (Function-as-a-Service, Faas) as deployment model. The following tips and tricks help you in cutting down deployment cycles and in designing function-based APIs.

Wednesday, November 22, 2023

Unicode string length, code points, and Db2

Byte length of (Unicode) strings
After my recent blog post "πŸŽƒ Unicode characters and Db2 πŸ•Έ️ 🏚️", I had some follow-up discussions. One was around how to determine the Unicode UTF-8 byte length of strings in a non-Unicode Db2 database. There were solutions proposed that required data export to analyze the data externally or to implement some functions or procedures. I insisted that there is an SQL-based solution. Here is my proposal.

Thursday, November 16, 2023

Db2 11.5.9 is available

The latest release of Db2 is available, labeled Db2 11.5.9 (or Db2 11.5 Mod 9 Fix Pack 0). The usual page, download Db2 fix packs by version for DB2 for Linux, UNIX, and Windows, has the binaries. The highlights of Db2 11.5.9 have their own page in the Db2 documentation.

Monday, October 30, 2023

πŸŽƒ Unicode characters and Db2 πŸ•Έ️ 🏚️

A smiley query in Db2
Recently, I had a discussion about Unicode characters and Db2. Since Db2 LUW version 9.5, new databases default to the Unicode code page. Instead of having the entire database in the Unicode code page, you can specify a CCSID (coded character set identifier) for either individual columns or the whole table when creating the table (isn't that 😱?). Our discussion was not around emojis (πŸ˜€) and Halloween (πŸŽƒ), but "business" - the Euro sign (€). How can you insert and retrieve Unicode characters when you know their code points? Let's take a look and have some fun...

Monday, October 23, 2023

What a community event: IDUG 2023 EMEA Db2 Tech Conference in Prague

IDUG and Db2 celebration with cake
Last week, we had a great Db2 conference in Prague. It was a real community event. We had more than 530 attendees, about 426 of them were on-site, the others virtual in three (out of seven) streamed tracks. During the opening of the expo on Monday, a special birthday cake was served, celebrating 40 years of Db2 for z/OS, 30 years of Db2 for Linux, UNIX, and Windows, and 35 years of IDUG - the International Db2 User Group.

Wednesday, October 4, 2023

Blog series on cloud security and account cleanup

Cleaning up unused cloud privileges

Regular account cleanup is part of account administration and security best practices, not just for cloud environments. So it is great when your cloud provider offers functionality to analyse the security setup and to detect unused (inactive) identities and privileges in your account. Over the past year, I looked at those features and thereby created a mini series on cloud security and account cleanup. Here is an overview.

Wednesday, August 30, 2023

Last days of early bird rate for IDUG 2023 EMEA Db2 Tech Conference

Well, check out the IDUG 2023 EMEA Db2 Tech Conference website. If you want to use the early bird rate to register with a heavy discount, you have to hurry up. It is only available until September 1st. There is another rebate available, but it only works once: First-timer rate. And remember that the conference is already next month, in Prague.

I am already registered and will present. And I am eager to meet you there. So register, too...

Friday, August 25, 2023

Simple installation: Python driver for IBM Db2 (finally) has wheel support

A quick post about a feature I have been asking for for several years: The Db2 driver for Python, ibm_db, has wheel support now. It means that the Python package distributes a pre-built binary with the Db2 driver (for many Python versions and most users). So far, in order to install the Db2 driver, you needed to have a build environment available. To create small container images, it required a multi-stage approach. Now, I can simply use a slim base image and install the Db2 driver.

If you have feedback, suggestions, or questions about this post, please reach out to me on Twitter (@data_henrik), Mastodon (, or LinkedIn.

Wednesday, July 5, 2023

Trusted Contexts for enhanced security: Both in Db2 and IBM Cloud

Security feature in action: Trusted Profile

I trust you to know my old blog post about trusted contexts. Some years ago, I explained how to secure your Db2 database using trusted contexts. By establishing a trusted relationship based on specified attributes, the Db2 feature of a trusted context allows you to switch to another user ID or role, typically with more associated privileges. It is a great security tool to limit direct user privileges and still allow a user to perform tasks requiring more privileges.

Tuesday, June 13, 2023

IDUG 2023 EMEA Db2 Tech Conference in Prague in October

Screenshot of IDUG website
Summer vacation is coming up, but there are certain things to take care of before. One of such things is to register for the upcoming IDUG 2023 EMEA Db2 Tech Conference. The conference is held at the Prague Congress Centre, Czech Republic, this year and runs from October 15-19. It is the main gathering for European users of IBM Db2.

Tuesday, May 9, 2023

Decode JWTs in bash

Today, it is once again time for one of those "let's document it" blog posts. Lately, I looked into one of the IBM Cloud security features, trusted profiles based on compute resources. I described how to turn your container into a trusted identity. For developing code locally, I needed to copy over files from the Kubernetes pods to my local machine, then decode JWT access tokens, all using the command line. Here is what I did.

Thursday, April 20, 2023

Blast from the past: Procfile for Python cloud apps

One of my first cloud apps

Recently, I tried out a feature of IBM Cloud Code Engine: Deploying my app directly from source code. It was a simple app, but it failed. I was stunned and investigated the problem. To my surprise, I could have known it because it was something from the past: A Procfile was needed.

Thursday, March 30, 2023

IBM Cloud and Terraform: How to use a REST API

I am a regular user of the IBM Cloud provider plugin for Terraform. I use Terraform with the command line on my local machine or with IBM Cloud Schematics as managed service. Often, I am testing and evaluating new features. Sometimes, I face the situation where not all necessary functionality is available in Terraform. But luckily, often there exists already an API function. In this blog post I am going to show how to use a REST API with everything else done in Terraform.

Friday, March 24, 2023

Analyze your IBM Cloud access management setup

ER diagram for cloud security data
Recently, I looked into how to analyze the access management setup of my IBM Cloud account. I wanted to better understand what kind of access policies exist, what service instances are covered by rules and policies, etc. In the past, I have shared with you how to get insights into IBM Cloud account privileges or how to improve security by identifying inactive identities. This time, I looked across the existing APIs to obtain identity and access management (IAM) and resource data. I retrieved, then analyzed that security data. With these insights, it is possible to improve security for your IBM Cloud account and its resources.

Tuesday, March 21, 2023

flatpak: How to deal with unwanted package updates

Not all software is available as package for my Linux distribution. That's why I use flatpak for some applications. Recently, a new app version introduced a bug. It resulted in random crashes. So I looked into a way to get back to an older, more stable app version.

Friday, January 20, 2023

Create your IBM Cloud toolchain with Terraform

Tekton pipeline in action on IBM Cloud
Automation is key to cost-efficient use of (cloud) resources and to security. One of our security-focused IBM Cloud solution tutorials, Apply end to end security to a cloud application, comes with an automation to easily provision all required services and to use a toolchain with CI/CD pipeline to build and deploy the app as container.

Because the tutorial is from some years back, it has been updated, reworked, modernized, and kept in shape to stay current. The improvements include the code for the deployment automation.

Tuesday, January 10, 2023

Generate PowerPoint slides from your Db2 data with Python

Generated PowerPoint slide with Db2 data
How did you spend the holidays? I had some days off and then used the last day of vacation for some fun programming. Last year, I wanted to test the python-pptx package, but couldn't find time. So I used my "fun day" to generate / code up some PowerPoint slides. To make it more interesting, I added some charts from data retrieved from Db2 in my IBM Cloud account. Here is a quick recipe.