Open Source on IBM i

Modernization

I think there is not one topic in the IBM i community which has been talked so much about as modernization. And here I am also talking about it :) . The modernization drum has been beaten for as long as I can think of and every time I hear about...

Demonstrate My Style

There are many web sites which discuss the technical parts of RPG covering the latest bifs and opcodes and they are great for looking up specific things about RPG. But when you are new to RPG and perhaps programming in general you actually might...

Thread Local Storage and ILEastic

Thread Local Storage (TLS) is a widely used programming method that uses static  or global memory local to a thread. — Thread Local Storage on Wikipedia. So TLS is all about having a storage area per thread. This is not much of a...

Working with Validation Lists

Probably not many of you have heard of validation lists on IBM i. So from the IBM Knowledge Center Validation list objects provide a method for applications to securely store user authentication information. Validation lists can store any data...

Web Services Setup with ILEastic

I have written some articles about writing web services with ILEastic and it is really as simple as already shown. And most of the time it is not any easier in other languages. You have to do/check/consider the same things regardless of the...

Dynamic Configuration with ILEastic

My last post was about sharing configuration in an ILEastic web service. This is especially handy when you split your web service application into multiple modules. This is not necessary but may be a good idea if you have many end points / routes...

Sharing Configuration in ILEastic

I stumbled upon a little problem I first had some trouble to wrap my head around. My situation was the following: I had an ILEastic web service with multiple modules I wanted to share the configuration data with all modules So for this kind of...

I can package it all by myself

... and also provide those packages to others. But you probably know this expression much better as "I can read it all by myself". I have read those books from Dr. Seuss very often and with pleasure. Some were real tongue twisters. But what I...

Streaming API for ILE

For those of you who cannot associate anything with streams in programming: A stream consists of an emitter (provider) of data and a sequence of one or more consumers of data whereas the consumer may pass the data further to the next consumer...

iPKG beta 2

Hi folks! The next beta is out with some new features. First a simple but important one: VERSION action. Now you can see which iPKG client version you got. Currently the version is stored in the user defined attribute of the object. But this can...

Creating a Unix Timestamp

As most people know the Unix timestamp is an integer value which represents the seconds from 1970-01-01. There is currently no built-in function for it but you can easily calculate it by yourself. **FREE ctl-opt dftactgrp(*no) actgrp(*caller);...

JDBCR4 and Batch Updates and Inserts

I had to work with a remote Oracle database lately and the choice was made to use Scott's wrapper around the Java JDBC API. The solution worked. Everything is fine. Is it? No it isn't. I had to insert some thousand records into the...

Measuring Time Spent

Sometimes you have a block of code and just want to know how long it took the machine to execute it. The Java developers have some really cool metric libraries like the Dropwizard subproject Metrics. But for the quick and dirty case there is...

Hey Socket, take a break!

Ever wanted a normal (blocking) socket connection to listen for data but also wanted to check for a condition if it should stop listening? Problem is that the default BSD 4.3 version of the socket API (which is the default API to bind to) does not...