Showing posts with label IBM i. Show all posts
Showing posts with label IBM i. Show all posts

Thursday, January 14, 2016

Watson on Jeopardy!: The end of the Microsoft/Intel computer era

On this day five years ago, IBM's Watson competed against Brad Rutter and Ken Jennings on the game show Jeopardy!, winning the competition. (The actual competition happened January 14, 2011 with the first broadcast of the two episodes on February 14 and 15, 2011.)

To me, this event marked the Microsoft/Intel computer era that we have been living in for so long and the start of the Watson era, which continues today. To my knowledge, Watson's software and hardware does not contain much, if any, Microsoft code or Intel processors.

The Microsoft/Intel computer era was an age where cheap software running on cheap hardware was king. It was an era where Version 1.0 was garbage and everyone waited until at least Version 1.1 came out. It was an era where Intel microprocessors would take arbitrary text and execute it as a program (allowing over 30 million viruses and other malware to date).

Sadly, other companies fell into this trap of bad software with bad security. Adobe Systems is a leading example of this. In the Watson era, Adobe's Flash is near the end of its life.

I graduated from the University of Illinois with a degree in Computer Science (College of Engineering) in 1976. Some of the best practices of that time were simply ignored by Microsoft and Intel and have only been rediscovered in this decade, some 40 years later. What if the cars of today were designed and built with the technology of the 1970s? Air bags and antilock brakes would not be included. People would be furious! But many business people didn't want to pay for good-quality hardware and software over the last 40 years, so they bought technology that was poorly designed even for the 1970s.

What is different about the Watson era of computing? IBM's Power Systems servers, like the ones running Watson, running the IBM i Operating System have multiple parity bits (including error-correcting memory) and other checks to prevent memory errors and even adder errors from corrupting the operating system, user programs or data. These processors and operating system require that programs be compiled by a compiler and will not run arbitrary text as a program. I know of no viruses or worms that run on IBM Power Systems (with the caveat that there may be malware that affects the two other operating systems that run on IBM Power, AIX and Linux). Ironically, many of IBM Power Systems do run antivirus software, but not as much for themselves: They do it to detect viruses affecting Microsoft/Intel systems which have been uploaded into their file systems by infected computers (how ironic)!

The IBM i Operating System, including its predecessors going back to 1979 (longer than any Windows Server has existed), have always more robust than Windows Server. Today they can manage multiple workloads in multiple virtual machines without conflict or crashing and dependable resource allocation. It's not unusual to have a 10-year-old Power Systems server that has never crashed. There have been cases where one IBM Power Systems server has replaced over 100 Windows and Linux servers. There are companies that have 15,000 active users working on one Power Systems server with sub-second response time.

What did the end of the Microsoft/Intel computer era and the start of the Watson era five years ago mean for the typical computer person? For many, nothing. Companies will still buy cheap: They can buy Windows 2012 R2 running on a server with an Intel processor for less than $1,000. They will still pay lots of money to load this system up with antivirus software, which is unlikely to block zero-day vulnerabilities, and pay technicians to keep this system running and to restart it when it crashes. They will continue taking the server down to install monthly patches from Microsoft. If they need another function, they will buy another server, and another, and another... I know a company that buys a skid of servers with Intel processors (at least 20 servers) whenever they have a planned power outage to replace the servers that will not boot up when the power comes back.

But there's another group of companies out there which understand the false economy of the Microsoft/Intel world. These companies will spend the money for better servers and operating systems, without the need for antivirus software for their operating system, and end up with better results with a lower cost of ownership. And many good computer people will work for these companies, because they don't want to deal with things keeping them from writing dependable programs which can run 24/7 without having to deal with crashes and glitches.


Notes: I have donated $10 in both 2015 and 2014 to Wikipedia for its operations. Have you donated?
This is cross-posted on my company blog at Netburg Services.


Saturday, November 17, 2012

Project tracking packages

This request came from a colleague:

"Bruce, do you have a suggestion on a tracking software for projects and/or tasks that would cover things like:
  • Entering tasks, requests, and projects for tracking and scheduling
  • Attaching notes, documents, any other information that would be related to that category
  • Report on what’s open as well as what’s closed (to determine common areas of requests)

"I used something called dotprojects in the past..."

My response to her:

Project tracking for my IBM i clients is something that I need. Many years ago, I started custom programming a system that would not only track projects but generate scopes and interface with billing. Many times, I will quote a specific number of hours for a project, say 52. When I do, then I bill by the hour up to the quoted amount  plus 20% (62.40 hours for this example). Above the maximum, I eat the rest.

Two of my clients use JTrac for tracking projects. It's open source and only requires a Java Runtime Environment to operate. However, I'm not aware that anyone has ported it to IBM i.

One of my clients uses ServiceNOW (NOW not tomorrow!) but it's set up for incident tracking rather than project tracking. If you don't code the incident correctly, it will automatically close it on you. Also, it is a bit expensive; it cost the client over $100 per month to provide me with access.

I will look into dotProject. Something that runs on your laptop would be a good first step but I'm looking for something my clients can access as well.

I agree that spreadsheets have the flexibility to do the job but are a pain to handle. As far as tracking documentation, I set up a folder on my laptop for each client with the documents for that client. My goal is to burn a CD each quarter and give it to them for their use.

Any solution I come up with will likely be accessible through a secure (SSL) web site. I will try to make it available to you, although pricing is unknown at this point.

Friday, November 2, 2012

Spam on LinkedIn has dropped dramatically

In September, spam on the LinkedIn groups that I subscribe to showed up at least once a day. I dropped some groups and sent a message to LinkedIn that they needed to help the group owners deal with spam. For whatever reason, spam in October on LinkedIn has dropped dramatically. I kept a log in October and I only saw five spam messages.

In November, I'm going to subscribe again to all the IBM i (also known as System i, iSeries and AS/400) groups that I can find and review them for this blog, including how much spam they have.

Tuesday, October 23, 2012

IBM i Programming Manuals V7R1

International Business Machines Corporation has a lot of information to index and so it's not surprising that folks get lost trying to get basic documentation. Here's my guide to a starting set of manuals for ILE RPG programming. This page is tailored to IBM i 7.1 (also known as V7R1M0); I will develop pages for other versions of the operating system as time permits.

Note that these links will display or download the manuals in PDF format. (Depending on your browser, you may have to right click and select "Save As..." to save the manual.) I suggest that you do so and use them from your computer hard drive. In some cases, IBM includes the manuals in HTML format and I leave it as an exercise to the reader to find those.

All of these manuals are written in American English. Supposedly, there are versions written in other languages but I couldn't find them quickly. Let me know if this is a problem for you and I will see what I can do.

ILE RPG Reference 7.1 [PDF] This is a reference manual; it describes the language but really doesn't tell you how to use it.

ILE RPG Programmer's Guide 7.1 [PDF] This manual explains how to do things with ILE RPG.

Of course, you will need to work with files. For database files, there are four manuals:

Database SQL Reference 7.1 [PDF]

Database SQL Programming 7.1 [PDF]

Database Programming 7.1 [PDF]

DDS for Physical and Logical Files 6.1 [PDF]

You can use either SQL or DDS to define your files and their characteristics. They are somewhat interchangeable.

For display files, use DDS for Display Files 6.1 [PDF].

For printer files, use DDS for Printer Files 6.1 [PDF].

Next, you're going to need to code Command Language (CL) programs for your ILE RPG programs. The manual for that is CL Overview and Concepts 7.1 [PDF].

Finally, there's the Integrated Language Environment part of ILE RPG. (ILE reminded me of the linkage editors we had in the 1970s so I jokingly refer to it as "Integrated Linkage Editor.") You can write useful programs without knowing a thing about ILE. But, when you're ready, you'll want to look at ILE Concepts 7.1 [PDF].

While researching this blog entry, I did find a master list of version 7.1 manuals. Go to the IBM Infocenter at this link and click on "PDF files and manuals".

Enjoy!




Sunday, October 21, 2012

Getting a better knowledge of ILE RPG

I'm willing to answer questions occasionally. The question today is "How can I develop my programming skills and get a better knowledge of RPG IV?"


First, get and read "The Modern RPG IV Language" by Robert Cozzi, Jr. (the link takes you Barnes & Noble; the Nook version is less expensive). A confession: I haven't read this book but I like what I've heard about it.

Second, download the "WDS RPG Language Reference" (SC09-2508) and "WDS RPG Programmer's Guide" (SC09-2507) from IBM (select the appropriate version based on the version of IBM i you're using). I'm going to post a guide to IBM manuals soon but, until then, start with the IBM i and System i Information Center and you should be able to find them. (Note that the current country is at the top and you can change it if you wish.) The Language Reference is the authoritative manual for everything you want to know about RPG IV (also know as ILE RPG) but it doesn't try to tell you how to do something. The Programmer's Guide is more of guide of how to do things. Update Oct. 23, 2012: I have written a blog entry on the programming manuals you need for version 7.1.

Third, you should use an interactive (non-green-screen) editor for your programming. The choices are too complicated to go into here. In addition, I recommend that all new programs be written in free format.

Fourth, understand that writing code is not all there is to programming. You must understand file operations against the database and how locking works (both of records and objects). And you will need to be able to figure out how best to write the code for each specific project.

Finally, there are some things you should not learn about. The RPG Cycle is one of these. Originally, back in 1965, you needed to know the cycle. Today, not at all. If you have to maintain a program using the cycle, track down a old timer like me with a good memory and I will help you (at the standard billing rate, of course).

Another thing is rather important to me. In college, I was taught structured programming (also known as GOTO-less programming), as advocated by Edsger Dijkstra, and have not written an RPG program with a single GOTO in it since 1976. But IBM, not caring what one of the greatest computer scientists advocated, added additional non-structured operation codes to RPG. The basic concept of structured programming is that every section of code should have one but only one entry point and one but only one exit point. If you write an RPG program for me, you will not use these operation codes:

CABxx   (Compare and branch)
GOTO    (Go to)
ITER    (Iterate)
LEAVE   (Leave a do/for group)
LEAVESR (Leave a subroutine — Allowed only if just before an End Subroutine)
RETURN  (Return — Allowed but only once per program or procedure and used carefully with *INLR or *INRT)
TAG     (Tag)

After reading the book, manuals and this information, you should be able to develop your programming skills. After writing 100 programs, you might get fairly good at this!