Triggered by an assignment my son had to do for one of his university courses – and given the fairly light weight laptop we have him work with – I decided to make a cloud based RStudio environment to him. I have worked with Gitpod over the past six months, […]
Software Development
How Cheppy thrills and acceleraties us at AMIS–and what it does not yet do
ChatGPT is a bit of a “tongue twister” so I will speak of Cheppy. AMIS has a long history of spotting, exploring, embracing and rolling out new concepts and technologies . It something we like doing – a trait of the organisation- and are good at and successful with. That […]
How to install Bitwarden with added security in AWS
Introduction I used LastPass for several years, and it helped me a lot to access my passwords and secrets on any moment, from multiple devices, in a secure way. But to be honest, I freaked out when I heard about the last hack [1]. I changed my most important passwords, […]
Five part article series introducing Go on OCI
Go – sometimes Golang because internet searching for just “go” is quite impossible – is a popular programming language. It was initially launched in 2012 and as been gaining popularity ever since. It has embraced many of the good things from other languages including Java and improved on a number […]
Stable Diffusion: Image Generation using AI
To quote Wikipedia (here): “Stable Diffusion is a deep learning, text-to-image model released in 2022. It is primarily used to generate detailed images conditioned on text descriptions, though it can also be applied to other tasks such as inpainting, outpainting, and generating image-to-image translations guided by a text prompt.”. This […]
GitHub Copilot reduces writing Java boilerplate to two simple comments
GitHub Copilot helped me write a Java application to process a CSV file. Not a hard task – though one that in Java always feels much harder than in Python or Node. This time round – because of Copilot – all I have to was write two simple instructions (and […]
Running OpenTelemetry Demo in Gitpod Workspace–two click install
Recently the OpenTelemetry project launched a demo application that demonstrates many aspects of instrumentation, metrics and trace gathering, providing insight across multi-service, multi-technology application stacks and in general how to leverage OpenTelemetry. The application architecture for the demo stack looks like this: A front end web application – a web […]
Gitpod workspace for instant Dapr explorations
I have prepared a Gitpod wokspace definition that allows me to start a fresh development environment with the latest release of Dapr (dapr.io) installed as well as supporting containers that provide state store (Redis, MySQL) and Pub/Sub (Redis) capabilities. This environment is a perfect starting point for trying out Dapr, […]
Which tools and technologies are new and exciting, proven, growing stale–report from Devoxx 2022
A conference such as Devoxx is a great opportunity to get inspired into trying out tools and technologies that may not or only be vaguely be known as they are mentioned or even demonstrated by presenters or discussed in the hallways of the movie theater where the conference is taking […]
Reflections from Devoxx 2022–on software engineering today
End of day two. So many topics already were presented, demonstrated, discussed, tried out to and by me. This article is just a very brief overview of what caught my attention. And what I will have to look into in more detail – or not in some cases. Containers and […]
One click free browser based Oracle Database environment with Gitpod
This article describes how you can run your very own Oracle Database from your browser using Gitpod. With a free account (50 hours Gitpod use per month), you can open this URL to launch a workspace that contains Oracle Database 21c XE along with VS Code, Oracle Developer Tools extension […]
First steps with Gitpod – great for try out, quick open source contributions and for workshops
Gitpod.io is a SaaS for software developers (that can also be used in self-hosted mode on Kubernetes). Gitpod makes workspaces available – typically based on a Git repository – with tools to develop and build software. A workspace is an ephemeral (not long lasting) Linux environment that I can access […]
Build JHipster application for and Run on Docker or Podman
For the Open Day we organize shortly for our family, friends, neighbours and other interested parties, my colleagues create a custom web application to support our QR Scavenger Hunt through the offices and surrounding premises. This (progressive) web application is created using JHipster – leveraging Java, Angular, Spring, PostgreSQL and […]
Creating a minimal container image for a Go application
How hard can it be – to create the smallest possible container image to run a Go application? It is not hard to create a container image that contains an binary executable file – and that is what a Go application turns into during the build process. However, that does […]
Marrying Fn Functions to Dapr.io–leverage the power of the proxy
Project Fn provides a framework for creating and running serverless functions. It is the foundation for the Functions service on Oracle Cloud Infrastructure. Dapr.io is an open source project that provides a powerful personal assistant for any application and a distributed application runtime that especially shines with microservices. Some aspects […]
Vagrant and Hyper-V: Don’t do it!
I’ve used Vagrant since 2015 in combination with Virtualbox for creating development machines. Recently however I’m experiencing more issues with Virtualbox. For example CPUs getting stuck when assigning multiple CPUs to a VM and issues with auto adjusting the guest resolution when resizing the VM window. These annoyances drove me […]
Merge AVRO schema and generate random data or Java classes
Previously I wrote about generating random data which conforms to an AVRO schema (here). In a recent use-case, I encountered the situation where there were several separate schema files containing different AVRO types. The message used types from those different files. For the generation of random data, I first needed […]
Java: How to validate JSON against an AVRO schema
AVRO schema are often used to serialize JSON data into a compact binary format in order to for example transport it efficiently over Kafka. When you want to validate your JSON against an AVRO schema in Java, you will encounter some challenges. The JSON which is required to allow validation […]
Generate random JSON data from an AVRO schema using Java
Recently I was designing an AVRO schema and wanted to test how data would look like which conformed to this schema. I developed some Java code to generate sample data. This of course also has uses in more elaborate tests which require generation of random events. Because AVRO is not […]
Update Go on Linux
It turned out to be a fairly small deal. For reference sake a brief write up of updating the Go runtime on my Ubuntu environment. Current version: go version Find latest releases of Go at https://go.dev/dl/ There is a new one. I copy the link and then run: wget https://go.dev/dl/go1.17.6.linux-amd64.tar.gz […]
Connecting Go application to Oracle Database–On Prem and Autonomous , with and without Oracle Client libraries
I have been struggling a bit with this one: how to connect from a Go application to an Oracle Database – both a locally running database as well as an Autonomous Database Instance running on Oracle Cloud. Ideally, my application does not require Oracle Client Libraries to be installed in […]
Did I really just commit and push a file with a password in it?–Remove all traces of pushed Git commit
Surely I would never be so stupid as to commit a file that contains sensitive information – say my Oracle Cloud account’s private key. And even if I did, I would not push that change to a public git repo on GitHub, would I? It turns out that I did […]
Submitting my Custom Dapr State Component as a formal Open Source Contribution–work in progress
I have used many open source products in my professional life. I have not studied the sources of many of these products and projects. My main contributions to the open source community consisted of presentations (many dozens) and articles (many 100s) in which I have spread the word. I have […]
A quick and easy Apache NiFi development environment
Vagrant can be used to quickly create development environments in for example VirtualBox, VMWare or Hyper-V. I decided to use Vagrant to create a quick Apache NiFi development environment. For Apache NiFi development, you also often require input/output for which Kafka can be used, the NiFi Registry to manage shared […]
Extending Local Dapr Development Environment for Custom Components
In a previous article I described how I prepared my local development environment from working with the source code of the Dapr project – locally editing, building and running customization on Dapr. This is a prerequisite for creating custom Dapr components – as is my true intention. In this article […]
Customizing Dapr–preparing my environment
In other articles I will write about the value of Dapr – as a personal assistant to any application that helps out with state, configuration and secrets, receiving inbound messages, publishing messages and invoking services and that supports microservice architectures through a network of closely collaborating personal assistants to all […]
Run and Access GUI inside VS Code DevContainers
VS Code DevContainers allow us to easily configure and run a container with our development tech stack for the specific project or product we are working on – and have that fully integrated with our VS Code development environment. It does so leveraging Docker Desktop and WSL2. With just a […]
VS Code Extension–GistPad–for quick gist creation, editing and consumption
Gists are the code snippets that you want to retain and share – with yourself and with others. Gists can be embedded in websites, blog articles and articles on Medium. Although used for snippets, all Gists are Git repositories, so they are automatically versioned, forkable and usable from Git. A […]
Visual Studio Code–the Code Tours extension for in context and interactive readme
The most popular IDE – VS Code – comes with a ton of extensions, and each can make life easier, more productive and more fun for developers. Recently I came across the Code Tours extension. An extension that supports the creation of guided tours through the files in your VS […]
OCI DevOps Build Pipeline for Functions
Oracle Cloud Infrastructure offers the Functions service, a FaaS offering with serverless functions, based on container images built with the Project Fn FDK. In a previous article, I introduced the OCI DevOps Deployment Pipeline for Functions – a free service on OCI that automated the deployment of a Function from […]
Cleaning Out a Compartment on Oracle Cloud using Terraform provider
The situation: a Compartment on OCI should be removed. Or at least all its resources should be purged. Or at least most of the resources should be removed. The challenge: there is no “purge compartment” available that will delete the resources in the compartment. Removing each resource one by one […]
OCI DevOps–Build Pipelines and Code Repositories for CI
This article introduces Build Pipelines and Code Repositories in OCI DevOps (released on October 26th 2021) – complementing the Artifact Registry and Deployment Pipelines that were first launched in July of 2021 and that I discussed in this article. Build [ing software] is an apparently clear indication of a specific […]
Architecture in an agile world
This year I had to work with a colleague for multiple internal poc’s that we could use to show customers. Together we started thinking about the approach and where to start. We planned to approach it in a Scrum way, but soon landed upon the question where architecture would fit […]
Continuous Generation and Publication of Docstring Documentation on Azure – using Sphinx, Pydoc, Storage Account and App Service
In this blog I will explain how to generate static HTML pages from your projects Pydoc (docstring) comments with Sphinx. Then we are going to host it in an Azure Web App so that everyone in your team is able to access it. Because we use a Storage Mount, when […]
How to run Jenkins with Chrome from a Docker container
In this blog I will show you how to run a Jenkins agent that can use chrome from a docker container. The Dockerfile and docker-compose.yml file are explained in this article.
Measure the Quality of your Source Code!
Quality is something which is hard to define. Different areas of expertise use their own definitions of what quality is. Without an objective standard which carries weight, anyone can claim to provide a quality product or service according to some standard. This makes it difficult to compare products and to […]
Review: Greenshot, Easy tool for screenshots
Is it possible to make something simple as making a screenshot easier? Yes, I have been using the free and open-source tool Greenshot for the past year. And I noticed missing the features when I got a new Windows image on my laptop. I would recommend installing this for anyone […]
Blog milestone: 200 blog posts, 1M page views!
This is my 200th blog post. Also I reached 1M page-views recently. In those 200 blog posts, I used approximately 325K words. An average non-fiction book is somewhere between 70K to 80K words. So that would amount to somewhere around 4 books. Why did I write so many blog posts, […]
SonarCloud: OWASP Dependency-Check reports
SonarCloud is a hosted SonarQube SaaS solution which helps you with code quality management. It is free to use for open source projects. You cannot install 3rd party plugins in SonarCloud however. This puts some limitations on the kind of data you can put in SonarCloud. For Java this is […]
GitHub Actions and SonarCloud
GitHub Actions allow you to do most CI/CD tasks for free, directly from your GitHub repository. One of the challenges however is that there is no build-in facility like for example SonarQube to manage code quality. Luckily, SonarSource provides SonarCloud; a SonarQube SaaS offering which is free for public projects! […]