Upgrading to Drupal8 - Episode 1

  • Posted on: 17 December 2015
  • By: NickLitten
up grade from drupla 7 to drupal 8

Episode 1 - Drupal 7 the Ghost of Christmas Past


Christmas is coming,

The geese are getting fat,

Please put a penny

In the old man's hat.

If you haven't got a penny,

A ha'penny will do, 

If you haven't got a ha'penny,

Then it's time for a big scarey Drupal update!


Drupal8 has been released and even though I like Drupal7, it's time to jump into the next version and see what it's all about.

I'm typing this in droop7 (pre-upgrade) and I'm going to record the upgrade experience here. Hopefully the look and feel of the website will remain the same. I really like this theme but will make an upgrade decision once I've worked my way to the bottom of the list of modules that I use. Once I've checked them all, I will decide wether to pull the trigger. It looks like some things have been ported to Drupal8, some have just been killed off and others have been migrated into core Drupal8:


I'm guilty of calling old fashioned RPG program code "legacy"

  • Posted on: 15 December 2015
  • By: NickLitten

I've always thought LEGACY it was the correct terminology and I've been focused on refactoring old "legacy" code into new "modern" code. But it seems that I've been guilty of using the wrong words all this time.

I just read an interesting article over at which is basically saying - Stop using LEGACY to describe programs, because really its simply an earlier version of the current program code. As soon as you promote your program code into production, it's immediately the legacy version of that code. Programs should be living things and should be gently evolving at all times. Calling it legacy promotes a negative image of the program code itself.

/me purses lips and gently nods his head in agreement  

There is another great comment after the article that says:

Web Services for Dummies

  • Posted on: 3 December 2015
  • By: NickLitten

What are webservices?

Broadly speaking "Web Services" are programs that let one computer system talk to another computer system over the internet. For example, you might want to enter customer details into a office computer system and have those customer details be checked on an online 'address checking' website or something similar.

Today, Web Services are self-contained, self-described, component applications that can be published, located, and invoked across the Web. Web Services provide a standard means of interoperating between different software applications running on a variety of platforms. eXtensible Markup Language (XML) provides the extensibility and language neutrality that is the key for standards-based interoperability of Web Services. They perform functions that can include anything from simple query responses to complex business processes. Once a Web Service is deployed, other applications can discover and invoke it. At present, Web Services require human interaction for identification and implementation.

A web service has list of methods and procedures that can be used by any of the applications irrespective of the programming languages, OS, hardware used to develop them. Any type of applications can access the functionality provided by the web service and such functionality is called web methods or web APIs.

RPG example - How to retrieve System21 Background Job status

  • Posted on: 18 November 2015
  • By: NickLitten
L1017 Infor start stop application background jobs.png

"How do I check the status of the System 21 (JBA/GEAC/INFOR) background jobs from an RPG program?"

I was asked to hack together a quick little routine to check the status of the System21 background jobs, for some specific web-service calls that were talking to an IBM i system running INFOR's System21 ERP. Hmmm... That is an awful lot of words in that sentence! Let's try it again. I am trying to say this "a web-service call to JBA SYSTEM21 needs to know if a background job is running before it does something". In this case the background job its checking for is called "WH_CONFDSP" the warehousing confirm dispatch job (or post shipment as Americans call it).

So, we know that System21 ERP does some things interactively and some things in background (aka "batch") mode.

We can easily view the background job status' using the System21 Menus: we can either goto menu /L1S (or L1SUS if American) in both the green screen and Infor Client or simply call the program from the command line:

s21 background

Chain(NE) hang low....

  • Posted on: 17 November 2015
  • By: NickLitten

The wonderful IBM RPGLE programming language:

What is Chain(N) and Chain(NE)


For file I/O requests in RPG (ie: Chain, Read, Reade, Setll, etc) we can add some options using

(N) - No Lock

(E) - Error Logging

(NE) - No Lock and Error Logging


Writing code in RPG the CHAIN operation code is used to go and get a specific ROW (or record) of data from a file. It returns the first entry that matches the KEY that is being used. In this blog let's look at what happens when the file(CustomerMasterFile) is defined in our program as an UPDATE file. So, if we wanted to retrieve the Customer information from a Customer Master file (assuming it is keyed by the company name and the  customer id number) we might code it simply like this:


CHAIN (Company : CustomerNumber) CustomerMasterFile;


which is basically the same as:


SETLL (Company : CustomerNumber) CustomerMasterFile;

READE (Company : CustomerNumber) CustomerMasterFile;


Does the B in BBC stand for Bigot?

  • Posted on: 15 November 2015
  • By: NickLitten
Iain Lee called homophobic views bigoted and he is correct. religious bigots are bigots.

I've been a fan of talk radio for many years. I enjoy listening to all kinds of talk radio ranging from Political to Theatrical, from Religious to Sports. I regularly drive long road trips and listening to an engaging conversation on the radio keeps my gray matter buzzing. Even when I disagree with someones point of view, it's always interesting to hear other peoples opinions.

Mister Iain Lee is an English radio presenter who excels at this art form  ;)   Sometimes he makes me laugh out loud, sometimes I disagree with him and find myself yelling at the radio and at other times I've got home and just sat in the car for 20 minutes to listen to the end of the show. For the last few months I've been listening to Iain Lee's podcasts from BBC Three Counties Radio...

So, I was surprised to see his name plastered all over Twitter yesterday and found out that the BBC has sacked him or maybe he quit lets just say they have parted ways after he was forced to apologize for an interview he hosted.

What was his grand mistake?

He asked someone with bigoted views on homosexuality if they realised their views were bigoted!

Program Source Code - Clever or Clear?

  • Posted on: 1 November 2015
  • By: NickLitten

I've been working on an interesting project focused on taking some old RPG code and re-factoring it to make it more efficient. Fascinating work for a client that is focused on doubling its IBM i throughput and reducing the CPU load of all its old programs. This has frequently made me choose between writing a single line of %BIF'd up code that looks slick and minimalist - or - writing 3 lines of code that are more readable and arguably (marginally) less efficient.

/me remembers the AS400 "SETON vs MOVEL *ON" arguments of yesteryear with a fond smile...

I think I've finally found my official position on this: I prefer code readability over specialized (aka clever!) techniques. I would rather write code that is a little more verbose, and well commented rather than do the same thing in a cryptic or obfuscated manner.

Yes, I'm guilty of waffling in my comments and sometimes using variable names that make me smile:

If WineBottleIsEmpty;



Remember, Software undergoes beta testing just before it's released.

Beta is Latin for "the program still doesn't work". 



Autodesk Inventor problem with Win10 - Student edition needs Win7

  • Posted on: 13 September 2015
  • By: NickLitten
hotle room, win10 x1 carbon, win7 lenovo Yoga and a mental dog

Eldest son has started a new high school class - Engineering. I'm excited for him because Engineering Science was one of the classes that I really enjoyed. Back in the day, we used slide rules, sketched on huge sheets of paper with hard pencils, used sin/cos/tan to calculate angles and load bearing values. Things were different back then but the basic principles were the same! Computers were something that I only ever saw on my weekly dose of Star Trek, Space 1999 or Blakes7.

Nowadays, the students will be learning how to use Autocad 2014 on their laptops. Tapping away and creating perfect technical drawings in the space of a few minutes.

*sigh*   Kids nowadays - /insert rant about how hard it was working down the mines when I was a kid  :)

But I digress...

So, Nate inherited my two year old IBM Lenovo Thinkpad Yoga 13s. It's a solid laptop, touchscreen and perfect for him to carry to from school and to play with Autocad on. Or so we thought.