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.
My view of the world plus trying to provide useful information to people.
Showing posts with label IBM i. Show all posts
Showing posts with label IBM i. Show all posts
Thursday, January 14, 2016
Saturday, November 17, 2012
Project tracking packages
This request came from a colleague:
"I used something called dotprojects in the past..."
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.
"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:
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.
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!
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!
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!
Subscribe to:
Posts (Atom)