Reddit Reddit reviews Fortress Rochester: The Inside Story of the IBM iSeries

We found 2 Reddit comments about Fortress Rochester: The Inside Story of the IBM iSeries. Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Mainframes & Minicomputers
Computer Hardware & DIY
Fortress Rochester: The Inside Story of the IBM iSeries
Check price on Amazon

2 Reddit comments about Fortress Rochester: The Inside Story of the IBM iSeries:

u/kev009 · 8 pointsr/programming

I think there is a lot of hidden awesome in systems like NonStop, VMS, and IBM's 'i' (aka AS/400, System i). Very fertile grounds for current systems programmers to review.

For instance, OS/400 (or whatever you want to call it) has a notion of machine independence that allowed them to move from CISC to RISC with minimal impact. It also has an object filesystem (think: WinFS) that is in the system address space. Therefore, RAM is almost indistinguishable from disk. Migration to tiered storage with SSDs is as simple as adding it to the storage pool (www.ibm.com/systems/resources/ssd_ibmi.pdf). Fortress Rochester, written by the architect of the AS/400, was one of the better systems books I've ever read and that's a large accolade coming from me as a UNIX systems zealot.

Unfortunately, there isn't a lot of lesson-learning done beforehand because these classic systems aren't HTTP based and therefore assumed to not be webscale by the masses.

u/NorseZymurgist · 4 pointsr/IBMi

IBM i developer and consultant here - who also went through a similar program as yours (I was in Mankato).

I would suggest you try to get an internship with IBM, or places (like Help Systems) where they do a lot of IBM i programming. There is very little good alternative to real world usage, and once you get your foot in the door you should be able to explore many other facets/factors of the platform and where you'd like to end up. Like any BS degree, you're learning how to use the basic tools and what makes you an expert (and sets your career path) will be the education you receive once you're out of school. For example, you can learn OOD/OOP (c++/java) principles in school, but it's not until you're in the workplace wrangling with other people's code, making your own mistakes, and deciding where the time vs perfection vs functionality balance is.

In terms of 'real world uses', the IBM i OS was designed to be a 'database support system', i.e. primarily transaction-based, so you'll find relational database technologies to be most helpful - commitment control, journaling, normalization etc. Also learn how that database integrates and communicates with the outside world (jdbc/odbc etc). Usually I see linux-based front-end's accessing the database on the '400. Pay attention to IASP's and work management, RDB entries etc.

You'll definitely want to have a good understanding of CL programming, and the IFS file system (which include QSYS!). Understand how to access both streamfiles and record-based files (i.e. C++ _Ropen vs fopen). SQL too, and how to incorporate it into your code (like SQLExecDirect).

Complexity analysis is important - there's a lot of 'big data' applications on the IBM i where you're dealing with millions of records. My customers are the titans of the commerce and banking industries, and you'll find complex ecosystems where a database can spans hundreds of LPAR, or even the big iron (z/OS). Although the IBM i is a 'midrange' computer, the past ten years has it running on some very nice hardware and has captured customers who would otherwise be on a small main-frame, so data set can be huge. You don't need to know bubble-sort vs. red-black trees if you're just presenting a list of html options, but when you're analyzing 50 terabyte databases that's a different story.

RPG is the traditional IBM i database programming language and it is still used in many places, so some knowledge of that will be helpful. I don't see COBOL very often. But what is unique about the programming languages on the IBM i is how they work together through the binding and service programs. Definitely learn how to use that effectively, so that you can write your code in whatever language is best for the task. Think modules, service programs, programs and commands. Regardless if you're coding in RPG or Python you'll want to know how to compile and bind etc.

Get really good at the "green screen". Sure, RDi is nice, but there's no excuse for not being proficient at PDM in 5250. For user interactions we don't use screen files (SDA) much, UIM panels (and the API's to make them work) are the way to go. Menus are easy to create, and I see them used a lot by admin's to make the life of operators easier.

Don't skimp on the security side of things, that will ALWAYS be important.

If you're really motivated to learn the history of the system, read this book:

https://www.amazon.com/Fortress-Rochester-Inside-Story-iSeries/dp/1583040838

Hopefully you can find a library that has it.

OK - back to work - hopefully there is some useful information in here. I guess the tl;dr is if you want to play in the IBM i industry, focus on database technologies and how to create/compile/bind and call program procedures.