Showing posts with label ibm. Show all posts
Showing posts with label ibm. 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.


Wednesday, December 31, 2014

Teenagers: Don't blindly follow your parents' career choices

Parents: Don't blindly expect your teenager to follow your career choices


Back in the last century, I worked with a consultant fluent with SAP Enterprise Resource Planning (ERP) Software, Ravi Joshi. Ravi was born and raised in India, where his father worked for the railroad. But Ravi didn't go work for the railroad; he ended up being a highly-paid SAP consultant working in the United States. This is unusual for people in India as many families have a built-in career path: If your father worked for the railroad, it's likely that you will, too. The same thing applies if your father works at a steel mill.

That's not usually the case in the United States, although there are cases of multiple generations of police officers, firefighters and Kentucky coal miners. In the United States, teenagers do have a lot more flexibility in their career choices. This is especially good since many of their parents' careers, like mining coal in Kentucky, are quickly disappearing as well as being dangerous and causing long-term health problems.

A coworker of mine from many years ago wanted to go into the U.S. Army at 17. He lived in Kentucky with his family whom didn't put much emphasis in education. The Army requires a parent's consent to join at 17. This coworker's parents were against it. "Why don't you just work at your uncle's body shop?" his father asked. The body shop had been struggling for years and the future wasn't bright. "There's no need to go anywhere." His parents refused to sign the consent. The coworker ran away from home and never looked back. When he told me this story, he was in his early 30s, working full time and finishing up his bachelor's degree.

So, if you are a teenager, what does this mean to you? You need to look out for your long-term interests, not your parents'. Your parents shouldn't encourage or request that you join the family business, or even the same business that they are working for, right out of high school. Do you have the desire and financial means to get a bachelor's degree or at least an associate's degree? Are there other fields of work that you are interested in? If possible, you should go to college or at least get away from home for a few years. After at least five years of work experience, post college, you (now definitely an adult) can come back to the family business with a wealth of new knowledge to share and a clearer idea of what your goals are in life.

If you are a parent with a teenager, what does this mean to you? You need to look out for the teenager's long-term interests, not yours. Don't encourage or request that the teenager join the family business, or even the same business that you are working for, right out of high school. Does the teenager have the desire and financial means to get a bachelor's degree or at least an associate's degree? Are there other fields of work that the teenager is interested in? If possible, the teenager should go to college or at least get away from home for a few years. After at least five years of work experience, post college, the teenager (now definitely an adult) can come back to the family business with a wealth of new knowledge to share and a clearer idea of what his or her goals are in life.

My personal situation fits this post, although I didn't follow the advice I just gave. After high school, I graduated from the University of Illinois at Urbana-Champaign. Then, instead of talking to recruiters at the university, I went back home and started working full time for my father, Richard Hobbs, for $100 per month plus room and board. I still think that was a good decision for me as I was not ready to go out in the big world. I did contribute to my father's company and I took over ownership five years later. But I do wonder how my life would have gone if I had interviewed with IBM for a position in Rochester, Minnesota (I still have the telegram they sent me). In retrospect, I would have thrived in Minnesota.

If you know me, you are suspicious of the timing of this. I know a situation that this addresses. I am gently hoping that someone reads this post and that it gives them something to discuss with their parents, spouse and teenager, who is rapidly becoming an adult.

--------------------

Footnote: I normally don't mention people by name in my blog posts, but I would like to get reconnected to Ravi Joshi. The last I heard, he was working in the Detroit, Michigan area. I tried to contact him after Sept. 11, 2001 but found that there were too many people with that name in India.

Saturday, November 3, 2012

Extended file names in IBM DB2 for i database

If I told you that I could use an exclamation point (!) in a database file name in an IBM DB2 for i database, would you call me crazy? But I just did it on an IBM i server running V4R5.

First, let's review the standard rules for file names:

  • They are from one to 10 characters long.
  • They must start with a letter or one of these special characters: $, @ or #. ($, @ and # have been considered letters by IBM at least as far back as the announcement of the IBM System/360 in 1964.)
  • The remaining characters after the first may also be numbers, underscore (_) and period.
  • Spaces (blanks) are not allowed as part of the name.
  • Names are not case sensitive and lower case letters will be converted to upper case letters.
So far, no exclamation point. What's the trick? If you include a double quote ("; one character, not two single quotes in a row) as the beginning and ending characters of your file name, you can put any characters in between, except a double quote, and still have a valid file name. You must have at least one character between the double quotes and the total number of characters, including the double quotes, is limited to 10 characters. I like to think of the whole string, including the double quotes, as the file name.

Here are the rules for extended file names:
  • They are from three to 10 characters long.
  • They start and end with double quotes (").
  • They must include one to eight characters using any characters except for a double quote.
  • Spaces (blanks) are not allowed as part of the name.
  • They are case sensitive. Lower case letters will remain in lower case.
I just created two database files with names of "a!+&=^]z" and "A!+&=^]Z" (including the double quotes). Despite the letters being the same except for case, these are two separate files.

I tested this on V4R5, but it should be available on any later version.

Will you ever need to use this trick? Who knows! But it's available in case you do.

Updated Nov. 12: Corrected the extended file name minimum length from one character to three characters.

(IBM i is also known as iSeries, System i and AS/400. The database is also known as DB2/400.)

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!