JR Mobile Mechanic in Charleston SC - highly recommended!

  • Posted on: 5 September 2015
  • By: NickLitten
cheap mechanic in mount pleasant daniel island sc

Jerry is a friendly chap, accomplished mechanic with great prices and swift work!


It's not often I endorse a local business but JR Mobile Mechanic in Charleston is awesome! Jerry is a thoroughly decent chap, punctual, professional, did the job with minimal fuss and cleaned everything up afterwards. Great job Jerry -- you have a new repeat customer.

If you are in Charleston SC and need a solid reliable mechanic then call Jerry on (843) 345-5258



After recently relocating to Charleston, South Carolina, my stepsons Jeep Wrangler having the front brakes catch on fire -- well, maybe not a fire but a serious smokescreen for sure! He was driving along in front of me and suddenly the front drivers side started smoking heavily and I could see the Jeep juddering from side to side as he tried to slow it down. So, we swapped cars and I limp it home and get on Craigslist to find a cheap, local mobile mechanic who can come to our house and have a look at the thing...

First Experience

Encoding images in base64 for email signatures

  • Posted on: 2 September 2015
  • By: NickLitten
quills qweeels qwils erm pens

A couple ofyears ago, when I first moved to GMAIL, I wrote a blog (how to display images in Google mail). Things have changed massively since then, not least being the introduction of email .sigs in GMAIL itself. But, nowadays I get so much email fluff I have just decided to split my email into two accounts: GoogleMail for personal stuff and Office365 for business.

So I now have two seperate email sigs...

Personal email -- FACEBOOK Image in gmail signature

Now, with a basic knowledge of HTML you can edit the source code to include any extra bits you wish.

Nick Litten's Facebook Profile


Business email

I have a much more boring business email signature. So, when sending mails from my *work* account I simply use images pulled from the business server @

Speeding up SQLRPGLE using indexes instead of logicals

  • Posted on: 31 August 2015
  • By: NickLitten
never enough time to program in RPG

SQL is a wonderful beast for quickly getting data from huge tables (aka Files). The trouble with SQL is that it's so very simple to use; programmers get lazy and sometimes forget to do the analysis to make it as simple and #FAST as possible!

It's easy to overlook performance tuning because SQL goes out there and uses any existing access paths for the data it wants, and if it cant find one then it creates a temporary path to get that data. It's like magic. This is great but that split second of temporary path creation can add up when it's done over and over again.

How do we fine tune our SQLRPGLE programs?

We can use Index Advisor in System i Navigator to look for naughty indexes and take it's recommendations for action. But this needs IBM I Access to be installed. So, what if we don't have access to any tools to help us out?

I was at a client site this morning and they had a SQLRPGLE webservice running and complained about the run time. This is a fairly complex SQLRPGLE program that is getting a selection of data from a long list of tables and they were experiencing average response times between 5-9 seconds. But somtimes much much longer... anything over a couple of seconds is way to long in the webservice world.

Turnover 3 - Promoting code using Turnover Forms

  • Posted on: 13 August 2015
  • By: NickLitten

So, you have completed your programming! You have tested the code in your library and it's ready to pass on to the QA testing team or the User Acceptance Test team. How are we going to do that in Turnover?

The process is called promotion and you do it using a thing called a Turnover Form.

Turnover 2 - Checking out code, editing and compiling using the Programmers Work list

  • Posted on: 13 August 2015
  • By: NickLitten
how to use iseries turn over for rpg programs

Checking code out - this is booking the code or reserving it for *you* to work on.

This takes a copy of the high level (UAT, QA, TST or PROD) into your developer library and lets you work on it. You work and compile it in there using the Programmers Worklist (which is Turnover's version of PDM)


Turnover 1 - Using iSeries Projects and Tasks

  • Posted on: 13 August 2015
  • By: NickLitten
turnover for iseries consultant

Every progam that you plan to work on much be on a Programmers worklist which will be assigned to a Project/Task (or a Project/Task/Subtask) - so just think of the project as a way of grouping similar programs, or working tasks together:

Projects have Tasks.

Tasks have subtasks.


I hope this video helps - after watching you can goto:

Turnover - Software Change Management Tutorial for IBM i, iSeries and AS400

  • Posted on: 13 August 2015
  • By: NickLitten
Turnover for iSeries V100 Main Menu creating projects and tasks

So, I've been working on a freelance gig for some time now and the client uses Turnover (by Unicom) to manage their software development on their development system - an IBM Power System running the IBM i operating system. The Project involved writing some web-services to provide a web based interface between an old #ERP system and a new PHP enhanced warehousing system. There is a small team of 4 programmers on the project but software change management is just as important with a small team as it is with a huge global one...

I was asked to create instructions for team members to easily use the basic process for:

Part 1 - Using Turnover Projects and Tasks

Part 2 - Checking out code, editing and compiling using the Programmers Work list

Part 3 - Promoting code using Turnover Forms

System21 - Phone numbers for any customers on sales orders

  • Posted on: 11 August 2015
  • By: NickLitten
SQL Inner Join on AS400

During a meeting this morning, I was asked to provide a list of all Customer phone numbers for any System21 Customers that have ever been used on a Sales Order.

Perhaps this sounds like a complicated request but... have no fear SQL is here!!! In reality, its a very simple thing to find and takes just a few seconds using a SQL INNER JOIN.

How can we use SQL to find this data?

In this example, I'm working on a data cleanse to make sure that the phone numbers are properly formatted before sending them to FEDEX as part of the shipment information. We know that some of our data is badly formatted so lets quickly see how many are good, bad or ugly. Using SQL we can see all CUSTOMER entries from the Customer Master file (SLP05) which have been referenced on the Sales Order Header file (OEP40).

The SQL command goes like this:


How to get T-Mobile 4GLTE working with ATT Samsung Note Edge

  • Posted on: 4 July 2015
  • By: NickLitten
samsung note edge sm-n915a

So, I've been using my trusty Samsung S5 for the last 18 months and have generally been delighted with it. But, I've recently found it a little slow when playing #Ingress and decided it's time to upgrade to something just marginally quicker ahnd (most importantly) with a bigger screen for my sausage like fingers. </drumroll>Enter the mighty Samsung Note Edge</drumroll>

I snapped up a half price ATT Note Edge (model sm-n915a) on Craigslist, and I can confirm that it works very nicely on T-MOBILE. The only irritation I have, is the stock AT&T Android ROM and I would prefer to install a clean basic Android. But cant find a way yet!!! Apart from that minor thing, the phone works great and 4GLTE connectoin is steady and reliable.

To make the changes from ATT to the TMOBILE servers you just need to make a simple change to the APN connection info.

You just goto SETTINGS ! MOBILE NETWORKS ! ACCESS POINTS and delete any old ATT ones and create one called T-Mobile like this:

Webservices and RPGLE - Converting Character to Numeric

  • Posted on: 17 June 2015
  • By: NickLitten
Srdhar Maheswar likes to type

I'm in the final stages of a fun project writing web-services to interface INFOR System21 (on an IBM i aka AS400) with ACSIS Visitrack (on Windows Server), we are consuming (receiving) and serving (sending) all data in a standard alphameric layout But... as any RPG programmer will know... the conversion between alpha to numeric is easy to overlook and can quickly bite you in the arse.

This morning, I had a long discussion with one of the technical analysts talking about the differences in data layout between the "web" world and the "IBM i" world. Out there in website land data flows around in nice alphabetical chunks. I mean, my name is simply "Nick" and the number sixty seven is simply "67" and two and a half is simply "2.5". But in the database world character can be fixed length "Nick      " or varying length "Nick%" and numerics are commonly stored as packed decimal data so 67 could be stored in a field that is 15,5p so would look like "000000000000067000".  It sounds complicated but if we keep our code clean its a simple process to switch between these formats. Lord Sridhar Maheswar - I promised to write a blog about this to make it clear... here it is  :)