The pieces of Java 8 on IBM i

Ah, pieces of 8, wish it WERE gold.

So this is a short story about installing Java 8 on IBM i. A quick Google search on “Install Java 8 on IBM i” takes you here: http://www.ibm.com/developerworks/java/jdk/ Which is exciting because the big blue button says: “Download Version 8” AWESOME (well, um, not…). First you have to find the download link for IBM i which is at the bottom of the page and takes you to ESS. There, the challenge is to find the licensed program 5770JV1 (for me…). The product isn’t listed.  More Googling…which finds a reference on how to find the licensed product for JAVA….

As it turns out, 5770JV1 is found as part of 5770-SS1. Select it in ESS and click “Continue” (NOT at the top of the list…click the “Continue” at the bottom of the list…). Then click “Continue” on the next page…..

to continue….

Here is where you need to understand how the “hide/show” works (“hide/show” WHAT? would be my first question but IBM assumes you know what “hide/show” does: It hides/shows details…..)

So click on “hide/show” and you should see a long list of packages which again, you need to click on “hide/show” on “5827: i7.2 B_GROUP1 v07.02.00,ENU,DVD” There you will see the two entries for Java 8 (32 and 64 bit). Select these two small files (416MB) and you’ll get a 1.8 GB download (yeah, you get the whole DVD anyway)

Once you have downloaded and mounted the DVD, go to install licensed programs and take the option to install 5770JV1 option 16 and then install 5770JV1 option 17 (you will probably need to use the “Add” option rather than finding the product/option in the list)

Make sure you install the latest PTF’s after you finish installing the licensed programs.

Now your Java is no longer in pieces…..

Posted in System Administration | Tagged , | Comments Off on The pieces of Java 8 on IBM i

Loving the IBM i-life!

Been WAY too quiet on the blogging front which I hope to change in the next few weeks. I need to blow the dust off of my Ruby/Rails skills so expect to see a bit more on that front. My good friend Aaron Bartell  has been rocking and rolling in the node.js space and I am a bit jealous.  We’ll be doing some side by side presenting at the Common “IBM i Forum: New Open Source Languages” to be held in Chicago on December 9th and 10th so maybe we’ll do a little competitive hacking.

Nothing like a little competition to get those creative juices flowing!  Loving the IBM i-life!

Posted in Uncategorized | Comments Off on Loving the IBM i-life!

Mobile web or mobile native?

This has been a long running discussion and I recently tripped across yet another blog post that picked up the debate.  This is from Quirksmode.org .  I’ll admit that in that “web vs. native” discussion I assume Peter-Paul is talking mobile web vs native.  If not, well then, never mind…..

However, my 2 cents is that the mobile web vs mobile native debate is at the same stage as back in 1995 when the nascent Internet was beginning to get some notice from software developers. “Fat client”, multi-tiered apps were all the rage in 1995 and now 20 years later there are very few companies that are pushing “native” Windows or Mac apps out into the consumer world.  Email “native” client apps, even developer tools these days are becoming more “webby”.  I don’t hear of Google conceding defeat on the Gmail web client and instead that they will be developing a new “native” app for Windows and Mac.  Ain’t gonna happen!  And, IMHO, that is the way native mobile apps will eventually go.  Eventually the “browser” will basically BE the desktop.

The only reasons that mobile web apps haven’t gained more traction (that I can think of) are 1) performance and 2) being able to run in a “disconnected” state, both of which are solvable problems.  I can think of very few reason why I want to develop a native app so it can join the millions of “zombie” apps taking up space in iTunes and Google Play stores.

So that is my rationale and I will continue to write mobile *web* apps and deploy an occasional hybrid mobile app but that is about it.  Mobile native apps’ time has come and quickly gone.  We need to be writing better mobile web applications, not taking them native.

Posted in Uncategorized | Tagged , | Comments Off on Mobile web or mobile native?

Go west young man (or woman)! To Anaheim!

I am heading to Anaheim for the Common Spring Conference!  You know what that means: Updates to the Common Schedule Organizer, my mobile app for managing the Common Conference Schedule.  I had some small UI tweaks and added a hotel map.  You can find the mobile WEB app here. You can find the Android APK here.  For the Android app, remember that most mobile devices are cranky about installing stuff directly from the Internet without going through the Google play store so you might have to tweak your device security settings in order to install.

Another word about the install:  Normally, you can just update the existing app but I couldn’t install without first uninstalling the older version of CSO (if you have it).  So install and re-install if you get an error in updating.

Yet another word about installation: When you start the app you will briefly see the prompt for your email address appear and then ZAM!  Its gone!  So, start the app.  Click on the “Load Schedules” button and WAIT patiently while it pulls the data.  Then go to “My Schedule” and click on the “Change Grid Email Address” and enter the email address you used to register at the Common Scheduling (NOT the sched.org site)  site and it will pull your personal grid info (if you have any).  Other wise, just add stuff to your schedule as needed.

Enjoy!  I am heading to Anaheim!

Posted in Uncategorized | Comments Off on Go west young man (or woman)! To Anaheim!

The great open source mashup on IBM i

To the outside world and perhaps 80% of the established IBM i community running open source applications on the IBM i operating system is irrelevant.  This is a crime of monumental proportions in that folks are standing up *NIX and Windows servers while they let their IBM i’s languish with “legacy” applications.  How sad for them. They are missing out on the benefits of leveraging those legacy apps with open source frameworks that could make their shops more productive, scalable and secure.

Node is getting the latest buzz on the web and in the small but active open source community on IBM i.  I gotta admit that getting that first node app up was my goal (be first!) when it was first announced but my younger alter-ego, Aaron Bartell beat me to it (as usual).  But getting node.js stood up as a server is only the first step.  Getting a “hello world” app working is perhaps the second but the real fun is taking a few existing technologies and putting together a mashup that leverages old with new.  You IBM i folks have a boatload of RPG apps, how the heck would you hook them up with node.js?

socket.io and express.js being TCP/HTTP friendly make that a good place to start!  The IBM i is a rock solid HTTP server platform.  There are plenty of open source technologies that leverage HTTP on IBM i so using HTTP is a logical place to start.  How could we link things up so that node.js serves up apps that can communicate with and use other HTTP technologies?  Well, I threw together an RPG app that uses an HTTP POST to post data to the chat application example.  Check out a quick and dirty example I put together on my Github repo here. It isn’t as robust as I want it to be but I am just getting started here (and wanted to do more than just ‘Hello World’!)

Just think of the possibilities!  HTTP is the perfect way to mash up all things IBM i.  More to come!

Posted in Uncategorized | Tagged , , , , , | Comments Off on The great open source mashup on IBM i

Stumbling startup with node.js on IBM i

My 7.2 upgrade was done specifically to get going with an “officially” supported version of node.js.  Installing 5733OPS is a no brainer (either RSTLICPGM or just using the option to install a licensed program in the LICPGM menu will work).  Node worked great.  Already creating much mayhem with socket.io, express.js, and a bunch of other stuff I will eventually break.  The problem I had is that I could only do this stuff when I was in the Node/bin folder.  Otherwise I would see:

node -v
exec(): 0509-036 Cannot load program node because of the following errors:
0509-150   Dependent module libstdc++.a(libstdc++.so.6) could not be loaded.
0509-022 Cannot load module libstdc++.a(libstdc++.so.6).
0509-026 System error: A file or directory in the path name does not exist.

What?   I am only a noob when it comes to *NIX environments and I know there are a bunch of moving parts that need to be correctly aligned.  I thought my PATH was the only thing I needed to look at but I was missing something essential: The LIBPATH environment variable.  Many executables share functionality so the “helper” objects need to be in the PATH as well so they can be found (like service programs or DLL’s) so the LIBPATH needs to be set as well.  My “Brogrammer” in the Open Source space, Aaron Bartell, turned me on to that fact and he proposes a couple of solutions.  You could just manually set the PATH and LIBPATH:

[Depending on the shell you use you can either do it in one step like this]

export PATH=/QOpenSys/QIBM/ProdData/Node/bin:$PATH
export LIBPATH=/QOpenSys/QIBM/ProdData/Node/bin:$LIBPATH

[or your shell may require that you do it in two steps like this]

PATH=/QOpenSys/QIBM/ProdData/Node/bin:$PATH
export PATH
LIBPATH=/QOpenSys/QIBM/ProdData/Node/bin:$LIBPATH
export LIBPATH

Or you could create a script and just run it when needed.  Here are some screen shots that show the problem and solutions:

node_error

So the problem occurs in #1 above even though I have the node/bin folder on my path (#2).  If I check the LIBPATH environment variable, it is empty so I append the path to the shared library to the LIBPATH (which just happens to be the same as the node/bin folder).  Adding the path and exporting it makes it available to my environment so now when I run node – v I get the version listed rather than an error.  Nice!  Aaron pointed me here to find this info and recommended that I post questions here so that others might benefit.  Agreed!  But I’ll probably also post here since I tend to forget where I posted solutions to my issues.

The script to do this is simple as well.  You should have a folder in your IBM i “home” folder under your IBM i user name.  Mine would be /home/PETE/  You could either use this command on IBM i:

EDTF ‘node_env.sh’   (you can call the script whatever you want) :

edtf_node_env

If you want to up your *NIX geek cred, you could use vi in SSH (or call qp2term):

vi /home/PETE/node_env.sh

vi_node_env

However you get there!  Then when you are in the console you can just execute the script:

node_script_fix

So, all is well.  Just remember to execute the node_env.sh script, OR, if you are going to launch a node server instance using CL, I usually create a script and then just execute the script in the CL program so you don’t have to have multiple entries to set the environment.  Just do your heavy lifting in the script, let your CL do the easy part.

So, that’s it!  There is probably more detail here than most folks need but for folks who are new to open source on IBM i, a little extra instruction can fill in a lot of blanks.

 

Posted in Programming | Tagged , , | Comments Off on Stumbling startup with node.js on IBM i

Moving to IBM i 7.2

Been meaning to do this for at least 6 months and finally bit the bullet and MOVED!  Naturally, the website has been down for days as I worked through several wrinkles.  On the IBM i OS side, I failed to pull my keys ahead of time.  Actually I DID download and install the keys. I also downloaded the updated OS and licensed programs and the latest CUME BUT the one thing I failed to do was to choose to “upgrade” on the IBM ESS site so although I had everything, the only keys it originally pulled was for base OS.  After I choose to “upgrade” on the ESS site, I suddenly had a boatload of keys which installed just fine.

When you upgrade once every few years there are always things you forget about, so it took a few IPL’s to get the everything running again.  So now I have a 7.2 and a 7.1 partition on my JS12 blade.  All is right with the world.

Well, ALMOST!  The web sites I had were mostly on their feet with a couple of exceptions.  My PHP sites were falling over and examining the logs revealed an interesting error:

exec(): 0509-036 Cannot load program /usr/local/ZendSvr/bin/php-cgi.bin because of the following errors:
rtld: 0712-001 Symbol EVP_md2 was referenced
from module php-cgi.bin(), but a runtime definition
of the symbol was not found.

Hmmm…not sure what was up with that.  I knew my Zendsvr install was relatively ancient (5.xx) so I decided to contact Mike Pavlak at Zend and see what I should do.   UPGRADE!   Of course that is what he said (duh!) so I downloaded the latest Zend Server version and installed it.  The beautiful new server access pages worked great!  But, my WordPress sites, and any other PHP based pages were still falling over.  So, back to Mike!  With a little bit of looking over the shoulder, Mike noticed that perhaps I was still back in the dark ages, referencing the wrong server (might it be the old Zend Core?) and he pointed me to a very helpful page that triggered enough neurons to get me thinking along the right lines….the problem might have been in the directives so he pointed me here.  Turns out it was the fast cgi directives….kind of.  Here is the deal.  I DID have the two things recommended by the page set up correctly:

LoadModule zend_enabler_module /QSYS.LIB/QHTTPSVR.LIB/QZFAST.SRVPGM

and

AddHandler fastcgi-script .php

So, I was a bit stumped….until I read on and saw the recommendation for the contents of the fastcgi.conf file.  My clue was at the very beginning of the file:

CommandLine=”/usr/local/zendsvr6/bin/php-cgi.bin”

Scroll back up and take a look at the path mentioned in the error I encountered:

Cannot load program /usr/local/ZendSvr/bin/php-cgi.bin

AHA! The fastcgi.conf is where the Apache directive finds how to execute the php page!   So, all I had to do was change any reference from /ZendSvr/ to /zendsvr6 in any of the fastcgi.conf files that I have.  Voila!  All is well!  All happily running under Zend Server 8.0 now.  Thanks Mike!

Next I had to update WordPress.  The automatic update has never really worked correctly so I did a manual update and made the mistake of using the readme.html in the WordPress bundle file to guide me.  Don’t use that for upgrading!  Use the instructions found here. Once I took the proper approach, WordPress was up and running in no time.

So, now it is time to play, play, play with all that IBM i has new in 7.2!

Posted in Uncategorized | Comments Off on Moving to IBM i 7.2

Handouts for the Common Spring Conference 2014

They will eventually make it to the Common website but here are the quick links to get them now:
Developing defensible web applications on IBM i

Open Source Tools and Applications for the IBM i

Developing Mobile Applications for i Using Open Source Tools

Open Source Report Writing Tools for IBM i

Ruby on Rails on IBM i

 

Posted in Uncategorized | Comments Off on Handouts for the Common Spring Conference 2014

Common Spring Conference – Whats App?

Can’t believe that the spring conference has rolled around again.  Seems like we just finished fall and I haven’t blogged, Tweeted or been “Social” at all in the interim.  I have been BUSY and I plan to get back to blogging (at least) as soon as I can get through the conference.

First off,  I have been deep in midst of fleshing out my Mobile App Development workshop for THIS Saturday (yikes).   Trying to pull together 7 hours of content that is both useful and fun has been a bigger challenge than I expected but I am putting the finishing touches on all of it now primarily so I can get on with updating the other presentations I am giving at the conference.

One of the fruits of that effort is the update to the Common Schedule Organizer.  You can read about the functionality in earlier posts here.  I hoped to add some new function to this revision but things have just been too busy for me.  So I have the new schedules and maps loaded and they are ready to go!  You will find the new web app here. You’ll find the Android APK (Android 2.1 compatible) here. You will want to access that link from your Android device and you’ll be alerted to the fact that you need to change settings to allow an “unknown” app to install.

Once you have the app installed on your device, you may notice that the prompt dialog that asks you for email address for your Common Personal Grid will only appear briefly and then will disappear.  I am not sure where this bug resides but the workaround is to the “My Schedule” page and click on the “Change Grid Email Address” button.  This time the prompt should stay open for you so you can type in the email address and retrieve your schedule.

Based on what I have seen so far this conference will be very well attended and have some pretty exciting sessions. Enjoy the CSO app!  See you there!

Posted in Uncategorized | Comments Off on Common Spring Conference – Whats App?

Common Schedule Organizer – Fall Edition 2013

Yep, it is that time again!  Common Fall conference and I had to deal with a couple of API changes and I implemented a few of the suggestions from the Spring Conference so, as usual, I am late to the party.

You will find the web application version here:

You can download the Android APK here:

Same drill as before:

If this is the first time you have used the app, or you have updated, you will be prompted for your email address that you use to access the Personal Grid on the Common website.  Your personal grid information will be pulled into the app but remember it is a one way street: As you add items to your schedule in the CSO they will NOT update your personal grid info (still working on the best way to handle it both ways).

Once you have entered that info and are on the main app screen, click on the “Load Schedule” button.  It will turn yellow and after 30 seconds or so you will see a “Loading” message appear and flash on the screen.  It took me about 2 minutes to download the initial schedule.  At that point the message should change to “Ready” and you are ready to go.  If you have personal grid items, go ahead and visit your schedule to make sure they downloaded.  From then on you can update the schedules, both the master schedule and the personal grid info and it will update the app with the latest and greatest.

I have added conference maps and I have added a list of local restaurants.  Perhaps I can add a “Yelp” type feature that will late you folks rate them.

If you have something other than an Android device, you can use the web application version of the app.  It will still save your stuff to the device you use so it is still plenty handy it just won’t be “native”.

If you have a question or a suggestion you can always email me (you know my name) at the company domain (valadd dot com).  I’ll try to get back to you and patch things as necessary.

Enjoy! See you at the conference!

Posted in Uncategorized | Comments Off on Common Schedule Organizer – Fall Edition 2013