My Blog


administration menu is simple

Installing ADMIN MENU gives us the most excellent admin menu black menu bar at the top of our website when performing administration functions in Drupal (currently playing with Drupal 7). However, I also want to display a User menu, in a similar style, for website surfers and anonymous users out there. Obviously we dont want to grant anonymous users ADMIN rights to use ADMIN MENU. Hmmm... happily this is a dilemma that can be solved by hacking around in the settings and permissions within Drupal7. Or you can just install a similar module that offers the required functionailty.

The Drupal QUICKBAR Module is like a ADMIN TOOLBAR for regular website visitors. It's a funky black menu at the top of the screen.

Lets have a look at setting it up in more detail:

1-Create a Menu to hold our links.

Add a menu (I called mine TOPMENU) and then we will add all our required menu options to it. Once these options are added it might look something like this:

add a simple drupal menu at top of screen

drupal simple menu is cool

It's April 2012 and Spring has sprung out here in the Nevada Desert (it was 99 degrees Fahrenheit yesterday - can you believe that?).

This warm weather always gets me a bit frisky. So after taking Muttley for his Sunday Morning walk and I decided to settle in with a cuppa Char for a bit of website spring cleaning, a new theme and some jolly good tidyup work. As usual, this evolved into a whole day spent tinkering with the menu system. My aim was to get a 'admin menu' style menu to appear at the top of the page without any theme modifications. I considered editting the PHP of the theme and insert something up there but as I seem to be changing themes every few months I decided a slicker soft-coded approach was the way to go.

I had to jump through some hoops to get my desired result (which is hopefully showing a menu at the top of this very page) so heres the Shady Tale of a Sunday Morning deep in the depths of Drupal Menus:

I played with a few different options before coming up with my final solution:

Annoying Drupal Error - Notice: unserialize() [function.unserialize]: Error at offset 1066 of 1068 bytes in variable_initialize()

So, for the last several months I've been getting this very annoying drupal error message on virtually every page on the website:

Notice: unserialize() [function.unserialize]: Error at offset 1066 of 1068 bytes in variable_initialize() (line 943 of /home/projex/www/www/includes/

I had researched it... tried hacking some little PHP snippets... tried cleaning up the SQL database... all to no avail. But today is a cause for celebration and dancing in the streets. Because its gone! Huzzah! All thanks to a couple of smart drupal chappies and chappettes on various websites who have probably forgotten more about the Drupal Database than I will ever know.

Location of iSeries Access Installation Software

where to install iseries access from

Where can I get the AS/400 Client Access Express for Windows software?

In the olden days before the IBM System i... in fact wind back a few years earlier until you get to the old IBM iSeries hardware... dont stop... keep going back into history until you get to the venerable IBM AS400 system... The software that was initially launched to allow PC's to connect to the AS400 was called CLIENT ACCESS. An installable image of Client Access (now called IBM i Access for Windows) can usually be found on the system in the IFS path "/QIBM/ProdData/Access/Windows/Install/Image" or "/QIBM/ProdData/CA400/Express/Install/Image".

So - just for my reference:

For operating system versions prior to version 6:

  • /qibm/proddata/CA400/Express/Install/Image

For operating system version 6 and later (i6.1, i6.2. i7.1)

  • 32-bit: /QIBM/ProdData/Access/Windows/Image32
  • 64-bit AMD: /QIBM/ProdData/Access/Windows/Image64a
  • 64-bit Itanium: /QIBM/ProdData/Access/Windows/Image64i

Turnover V100 - Documentation for IBMi iSeries

turnover v100 documentation

Turnover manages both new development and modifications very smoothly. Once you have your brain around the core concepts of how software change management works, and also have a grasp of checking out code, promoting changes to higher levels and distributing to remote system then Turnover is intuitive and straight forward. However, if you are still on the learning curve, without the proper grounding you can run in circles.

Turnover can be configured to be as tight or as loose, as simple or as complex as needs dictate. It comes with a 5250 menu system and also a Windows based V100 client with many time saving enhancements. Sometimes the Windows Client is much easier to use... but sometimes its quicker to use some of the functions onyl available in green screen.

Up to date documentation for Turnover for iSeries V100 canbe downloaded from the Softlandings support website, or you can just look at the attached documents.

These are for version V100 for iSeries but also apply to V5.4 - which is very similar.

#IBMi Software Release Management



RFC (Request for Change)

A high-level change request that captures the detail of a change that is to be made to a new or existing application. RFCs are usually decomposed down to lower level work requests or tasks for software development.

CAB (Change Advisory Board)

The collection of stakeholders who review all RFCs at specific intervals to assess whether they should be implemented, assign priorities and allocated them to a Release.


A stable, executable version of a product  intended for deployment to testing and production.

Release Package

A logical container that defines the set of RFCs and Deployment Units (sometimes called Release Units) that are to be included in a Release. It also includes metadata such as the type of release (see Release Type) and its planned dates (see Release Calendar).

Release Type

sql is much faster than cpyf

For the longest time I've heard about the performance difference between a true SQL INDEX and a DDS generated index in IBMi... or 'on the AS400' as the old timers like to say. But is it true? I know that SQL creates its own special access path... and have heard vague rumblings about how it just does things different... and really all of us programmers should be creating files using DDL rather than the old DDS.

So, as part of the project I'm working on we have to copy data from a bunch of rather large files... so I did some real time comparisons and got some fascinating results.

Timings for the big Fight:

Using a physical file with 141,988,325 records in it I issed a batch copy into a DDS version of the file using both CPYF and SQL INSERT and then created a SQL/DDL version of the file and repeated the exercise. Both times running in a single thread job queue when the machine was quiet.

Copy file with 142 million records on an IBMi DDS compiled physical file:

  • DDS –> DDS using CPYF took 19 minutes  (it used 99 seconds processing unit time)
  • DDS –> DDS using SQL INSERT took 18 minutes  (it used 93 seconds processing unit time)


Then deleted and recreated the file using DDL (SQL) source code:

IBMI not AS400

So, as usual... today I was scratching my head with a problem that was kind of outside my realms of expertise. These realms are many, I hasten to add the ones outside are the many ones and the ones inside are rapidly diminishing with my braincells exploding in a puff of logic and old age.

Searching the esteemed searchword engine of High Lord Bing and the mighty Goddess Google I found some interesting stuff about stored procedures.... and as I sit here... late at night... deep into my second bottle of red wine... spool *hich* spellchecking this for the fifteenth time... I realise that this is not the time to type this stuff.

Besides trying t otype technical stuff while playing Facebook Poker is losing me loads of chips.

so... *cough*... its time to sideline this for tomorrow...

and... errm... I will...

What are the best places to eat in Charleston South Carolina

love charleston

Loads of choices and a terrific range of great places to eat in Charleston so here's my personal favorites - trying to cover a broad spectrum.


My favorite *steak* restaurant is called Peninsular Grill and its smack in the middle of downtown. Just park at the old market on, surprisingly enough, market street and walk to it. is a little up market but with a great intimate feel. The staff are very helpful and it has a superb wine list. After dinner stroll around the area.

I would recommend getting a carriage tour for two (assuming it is just two of you) its a fun way of spending an hour and listening to your carriage driver tell you all the history of Charleston.

Another of my favorites is BASIL. A simply excellent Thai restaurant... if you go... try their famous Basil Duck. That's all I'm going to say.

Make sure you visit the Pavilion Rooftop bar downtown (at the bottom end of the market) for cocktails or a lunch drink. Good views and cool all around.

Camp Bow Wow - a brilliant day care for dogs

camp bow is great

A big *THANKS* to all the crew at Camp Bow Wow... yesterday was interview day with Bailey (my 6month old English Springer) and based on the fact that he returned wagging like a loon, grinning, happy and promptly fell asleep right through to this morning... it must have been fun! One new regular customer is sold on your services. Thanks from me and from Bailey Litten ;)

Here is the live video feed from Camp Bow Wow - Can you find Bailey?

Refresh page

Bailey 2.0 flies to Vegas

bailey the springer spaniel

Me and my wing man (Bailey Version 2.0 - the Springer Spaniel) arrived in Las Vegas on Sunday night after a smooth flight courtesy of Delta Airlines. Shipping pets around domestic USA is remarkably easy and pain free:

  1. Make sure dog is all up to date with vaccinations and get a certificate from Vet saying just that
  2. Get a nice crate that Muttley can comfortably sit and lay down in
  3. Put a nice fluffy comfy bed in there
  4. Take Muttley to airport and pay your $fee (it was $200 from Charleston SC to Vegas NV)
  5. He gets checked for drugs, guns and copies of the Quran by the TSA folks and loaded into a special pressurised and heated section of the cargo hold
  6. Fly your flight, disembark and he is brought to the luggage belt
  7. Extract puppy and get covered in canine kisses.

Bailey handled it incredibly well… I think he was more comfortable in his travel cage than I was crammed into the economy cabin (yes I am cheap) watching crappy TV on the headset unit and trying not to torture myself by continually looking at my watch.

All in all a decent experience. The folks at Delta were very helpful and accommodating.

Gets a thumbs up from me and paw up from Bailey.

iseries turnover file promotion

moving a file from one iseries environment to another

Using a Change Management tool to promote files makes the creation and replacement of target files so much easier. Turnover for iSeries, is a change management tool that really smooth this process out for us developers. Consider this scenario - we want to make a change to an IBM i *PF (physical file) like adding a field or changing a field size. This is a hefty file change, changing the level ID of the file and will require recompilation of all related logical files and all programs that use the physical and/or any of the related logical views.

Turnover makes this because after we have 'checked out' the physical file it will ask us if we want to also grab all related logical files and programs for recompilation. Just say YES and let Turnover do the work.

We make our file changes in DEV and compile them... add to the promotion form and the Turnover will select the group of objects we want to compile. Then, the compile wizard does the rest. It organizes the compile and puts everything in the right order automatically. It checks for dependent objects as well as custom compile commands. As this change involves a physical file, when it puts the new file in the target environment it will repopulate the file with your data, recompile associated logicals, and even reapply triggers and constraints.

JBA Commands

the good old jba toolbox

Randomly surfing around this morning - I stumbled across this comment tucked away in some obscure pre-1990's forum in glorious Times New Roman font. Written back in the days when terminals clunked, mainframes were the size of a room, men were men and women were pleased.

Disclaimer - I'm not responsible for any damage caused by anything you do to your computer - use these commands at your own risk... That being said, let's continue...

If you have them installed on your system you should see a list like this one:


TOOLS/UTILITIES - Run command TOOLS from any command line in System 21
XAT000 Administration Functions System: HQ140002
Type option(s), press Enter. Position to.....
1=Execute Command
Opt Command Description


New Power Option for IBM System i


Now you can get a single-board nuclear reactor that supplies stand-by power for the IBM System i for 12 years! The QBX-1 nuclear reactor card provides back-up power for up to 12 years. When the card senses a power failure, explosive charges (bolts) eject moderator and control rods from the reactor interior, within 20 mmsec, bringing the reactor to its fully-rated output of 20 KW, in less than one millisecond! Over its 12-year active life, the reactor’s power decreases by 25%, to 15 KW.

Integral heat fans provide convection cooling of the reactor’s 500W power dissipation while the reactor is in “stand-by” position. If your computer cannot furnish the 400 cubic feet per second of forced air for cooling, consider buying IBM’s heavy-water cooling jacket and stainless steel pump module, which fits conveniently next to your System i. Latches on each side of the reactor module let you quickly swap the radioactive core, should you need to replace it. An optional circular viewing port of lead glass lets you view the reactor’s internal assemblies, and also functions as a 10-million candlepower nightlight.

TUR3333 - No local Turnover system Defined

TUR3333 - No local Turnover system Defined

This week I mainly been playing with Turnover V100....

Preparing TURNOVER V100 (Software Change Management tool for IBMi Systems) for a major application upgrade, adding the ability to use Turnover Forms for specifically deleting and/or moving objects from one environment (library) to another. In this case its because we are un-merging a custom program library and breaking it out into application base objects, custom vendor objects and custom internal objects. Yes, its a nice bit of tidy up that puts a smile on my soul.

Configuring Turnover to make it do this however... does not... put a smile on my soul. It sometimes makes it quite grumpy in fact.

Especially when you get an annoying error on the TARGET system saying that it isn't defined to itself.

A TURNOVER distribution was received but no local system is defined. Unexpected results may occur.

No Shit Sherlock! 

Microsoft Uses the IBM as400 iSeries to Run its Business


For Years, Rumors have circulated that the false religion of Microsoft, who touts that large parishes can be run using Windows servers, actually runs their organization using more than a few IBM iSeries systems. The heathens have always officially denied it, but the rumors don’t go away. The story also goes that some time in the 1990’s they tried to replace their iSeries systems with 1,200 Windows servers in a year-long project that was eventually scrapped because A) they couldn’t process the data as fast as the iSeries and B) they had problems keeping so many servers operational.

IBM Plans to Acquire Nintendo Corporation


ARMONK, NY - An industry insider (wearing a blue suit, white shirt and odd colored socks) let the cat out of the bag at the recent Annual IBM Stockholders Meeting held in Knoxville, Tennessee. He announced that Big Blue is in the process of acquiring Nintendo Corporation. In an attempt to shake the reputation that IBM sells old technology and to lure the younger generation to IBM products, IBM plans to merge the System i, the System p, and the Wii gaming console into a single product. The new product will be named the IBMii.

Since each system already uses the PowerPC processor Mr. X said it was a no-brainer. 


Power = i + p + wii

IBM Power Systems unifies IBM’s highly successful integrated platform, IBM System i™, with its fast growing UNIX operating system platform, IBM System p™ and with the wildly popular Nintendo Wii platform. Now you can take advantage of this single platform for all of your Wii, UNIX, Linux and i applications, with mission-critical virtualization provided by PowerVM™.

If Programming Languages Were Religions

If Programming Languages Were Religions


RPG would be Jehovah’s Witnesses - RPG programmers are of the elite 144,000 left in the world (because there are only 144,000 left in the world) and believe they are in the last days of the present world and lots of people make fun of them for their beliefs and rigid standards. They like to wear blue suits, even on their days off, and go to a lot of car boot sales.

COBOL would be Paganism - There was once a time when it ruled over a vast region and was important, but nowadays it’s almost dead, for the good of us all. Although many were scarred by the rituals demanded by its deities, there are some who insist on keeping it alive even today.

would be Judaism - it’s old and restrictive, but most of the world is familiar with its laws and respects them. The catch is, you can’t convert into it - you’re either into it from the start, or you will think that it’s insanity. Also, when things go wrong, many people are willing to blame the problems of the world on it.

Java would be Fundamentalist Christianity - it’s theoretically based on C, but it voids so many of the old laws that it doesn’t feel like the original at all. Instead, it adds its own set of rigid rules, which its followers believe to be far superior to the original. Not only are they certain that it’s the best language in the world, but they’re willing to burn those who disagree at the stake.

PHP would be Cafeteria Christianity - Fights with Java for the web market. It draws a few concepts from C and Java, but only those that it really likes. Maybe it’s not as coherent as other languages, but at least it leaves you with much more freedom and ostensibly keeps the core idea of the whole thing. Also, the whole concept of “goto hell” was abandoned.