“SQL Queen” Birgitta Hauser pays iChime a visit

The queen of SQL for Db2 for i, Birgitta Hauser, joined us on iChime last week for an amazing information download! When she’s not joining us on iChime, this impressive IBM Champion is providing training and education all around the globe. Her time with us was spent deep diving into the world of SQL and sharing her extensive wealth of knowledge.

And when I say a wealth of knowledge, I mean a treasure trove of knowledge. After our planning meeting prior to iChime, I walked away with three pages worth of potential questions and we both cleared our calendars for the meeting.

Birgitta started out by giving us a peak into how she uses SQL in her day-to-day work.

“I use SQL whenever I can,” Birgitta said. Sometimes RPG is easier, but I try to move business logic out of my programs. There are so many things you can do with SQL other than accessing a table, such as accessing the IFS and web services. All these things are important to get, merge, and analyze the data.”

We moved on to discuss what RPG could be replaced and what these replacements empower developers to do. In SQL, there are many functions and services that are often overlooked by programmers, even those using modern programming languages. In going beyond the basics, these functions and services can be powerful tools utilized to replace and write around RPG. Things like string-handling, mathematical functions, and other functions that are not available options within RPG can be easily accomplished utilizing SQL.

The conversation flowed to discuss modernization, how SQL can support those efforts, and why moving business logic out of our programs and into our databases makes for good programming practices.

“The more we can get business logic out of our programs into the database, the better,” Birgitta said. “Normally you cannot see the database without your programs and the inverse. The more we can get into the database, the less we have to do in our program.”

Birgitta shared her insights on one of her favorite SQL tool – SQL Views. With this powerful tool, you can build very complex SQL Statements while hiding the complexity. This makes it so that everyone in your team can use the same procedure, independent of the programming language. It is a tool that can prove invaluable in modernization efforts.

The conversation continued and this overview just brushes the surface of a one or two diamonds in Birgitta’s treasure trove of SQL knowledge. She is a pro in every sense of the word, and I am so grateful she joined as a guest on iChime.

On Some Level, System Administration is Every Developer’s Responsibility

There is a common perception among developers that system health is strictly an admin role that does not overlap with development. Truth be told though, I have a hard time creating such a strict delineation between these roles. They compliment and rely on each other so much that they cannot be totally separated into strictly black and white jobs. As developers then, we need to have a least an entry level knowledge of system administration so that we can help protect the health of our systems.

Joining us last week on iChime to share both her knowledge and adventures on the IBM i was my dear friend, Dawn May. Agreeing that system health is everyone’s prerogative, she shared some invaluable information that was backed up with some great stories. She started with this one, one that was extremely pertinent to the developer crowd on the call.

“A developer decided that creating objects in QTEMP was a great idea – and not bad, maybe. But if you do this a lot, and it needs to scale, it becomes debilitating,” Dawn shared. The company she was telling us about a bank that eventually grew to a big shop and the object creation was never revisited. Eventually, the performance went down over lunch when bank clientele would go to the ATM and perform a transaction on their break.

“It was just because they were creating message cues in QTEMP in the application. One profile owned every message cue,” Dawn said. When creating or deleting a message the object ownership had to be updated in the user profile object. If the creates and deletes are happening on a single profile, it creates a point of contention and then the system stops working.

“In this case, it was an application decision and the application had to be modified to resolve the problem,” said Dawn. “So, system health and development are intimately related.”

And that story kicked off a fascinating conversation in which Dawn shared a wealth of knowledge, rattling off an amazing number of system message IDs without breaking a sweat, and shared stories of success as well as challenges she’s encountered.

Dawn weighed in on other tools such as Navigator, Performance Data Investigator (PDI), Graph History, Performance Adjuster, and ARE. From the standpoint of a developer, she discussed how they can be utilized to help improve or maintain good system performance. To find information and education about each of these tools, Dawn points us to her i Can blog, webinar replays on her website, and to COMMON events and replays.

From tool talk, we turned to hardware upgrades and increasing memory to solve system performance issues.

“Hardware upgrades can be very nice,” Dawn agreed, “but in the case of the story I told earlier about all the object creates and deletes, you could throw all the hardware you want at that and it wouldn’t help.”

Now, a very common response of many developers to problems with system performance is to increase system memory, expecting that this will fix all system performance issues.

“IBM i loves memory and the more you give it the happier it is!” said Dawn. But this is not always going to solve performance issues. “What’s really nice is that we don’t have to guess anymore when it comes to memory. 10-15 years ago, you had to just guess and it was all smoke and mirrors. But within the Performance Data Investigator, there are actually memory usage charts that will show you your memory pools and how much memory you have allocated and how much is available. You now have data to help make your tuning decisions.”

We could have talked all day with Dawn and this is only a high-level overview of her time with us. To really enjoy this system administration for developers conversation, you’ll really want to listen to the podcast when it is released. It was a truly great conversation that you do not want to miss.

Don’t Wait to Advocate!

Advocacy for your IT team and the work you do is not optional in today’s environment. Management often does not see IT as a valued business partner, but rather as a support system for other departments. Advocacy for your department can be a game changer not just for you and your team, but for the organization as a whole.

When you advocate for the work your IT team does, you improve the visibility of what you bring to the enterprise and gain a seat at the strategic table. You can facilitate collaboration which will support company growth and allow people to do the same amount of work in less time by utilizing stronger, more versatile applications. The benefits are huge.

In spite of the benefits of advocacy, the idea of advocating can be a little intimidating. Many people look at it as something that only happens when something goes wrong. An advocate is someone sent into talk to management when an application blows up or a serious bug is discovered.

However, there is a better way to approach advocacy. Fumbles on the field grab the attention of management and bring focus to IT, but you want to begin advocating for your department long before that. You don’t want the conversation to be started when tensions are high and management is not only upset, but second guessing the applications and technology that they perceive to be the root an issue.

Bugs happen to the best of us. As a true IT professional, you have built applications that are sturdy, reliable, and of industrial strength. They operate as they should, keeping the business moving until that stray bug appears. These issues are the exception not the rule and it’s the periods of time between events that you will find the best opportunities to begin positive and effective dialogue.

So instead of being intimidated by advocacy, here is a simple, positive approach that you can take.

Start by assessing your organization. How are your applications working for the users across your enterprise? Are there any pain points that management or very visible departments are experiencing? If there are, these are your golden ticket, the low hanging fruit waiting for you to pick.

Choose one pain point that is easy to tackle but has high visibility and take the initiative to build a solution. Once that is done, go to management and tell them about the fix. Avoid lofty tech terms and just let them know a solution is now in place. This opens the door to positive dialogue while also shining a spotlight on the IT department in a good way.

Once that critical channel of communication is open, there is a real opportunity for you to shift the perspective of management. You will be able to highlight what you and your team are working on, the value you provide to the company, and the ROI tied to your applications. Show them what is happening when they aren’t looking, the robust software that is driving their business, and pull up a chair to a collaborative conversation. When you have a seat at the table, you will learn all kinds of ways that you can support the company through IT solutions. In turn, management will begin to see software as a way to make their business goals reality. The door is open and the perspective begins to shift towards seeing IT as a valued business partner.

So I encourage you – don’t wait for that bug to wreak havoc to begin advocating for your company. Fortune favors the bold and the go-getter, so find that pain point, create the solution, and step into the role of IT advocate.

Marina Schwenk on Understanding Unit Testing and Modular Coding Using IBMiUnit

I wondered during March’s iChime how many of us were surprised to hear that our special guest had originally wanted to become an FBI investigator.  Fortunately for us, she’d found her real passion within the IBM i community while attending Gateway College and the Wisconsin Midrange User Group WMCPA. And apparently she was hard to restrain in her pursuit of software development.

About five years ago Marina felt at a loss for a good IBM i testing tool.

Granted, testing code is hardly a new concept. Formal testing tools have been around forever. But “unit testing is brand-new to the IBM i community. It’s hardly done and rarely talked about,” Marina explained.

She had originally started unit testing using Java-based tools JUnit and the open-source xUnit. And while RPGUnit is available, it has not been updated in some time. Even better would be a more recent, free open-source alternative to RPGUnit. Naturally she investigated; she dug for evidence that a solution existed. But the case went cold. So Marina developed her own: IBMiUnit.

What is IBMiUnit and how does it help in development?

Within the context of a use case pertaining to as you continue to modify code, test cases will identify if you’ve broken something, Marina stressed the importance of test-driven development (TDD), by which we develop test cases before we write any code, and demonstrated IBMiUnit’s capabilities for unit testing, to test and validate assertions, ensuring early on that code is working properly and existing functions aren’t being disrupted.

That’s how you build confidence in your existing code.

Since unit testing is bench testing, not in its environment, Marina advised that after unit testing should come integration testing in a test environment. Most larger companies will also have a quality-assurance department. But the whole idea is to test the code and get it clean and solid, she explained.

She noted two good additional points to consider: If you are changing the logic of your procedures, you should always re-test; and you will have a much better unit-testing experience when your code is modularized.

From the perspective of an industry veteran, the “big deals” about IBMiUnit might include:
  • It’s free and open-source.
  • Open source is still relatively new to the IBM i community; it’s a whole paradigm shift in how software is being distributed and consumed.
  • Now IBM i can support external environments and a variety of languages.

The takeaway for March iChime’s attendees: They’re going to commit more time to using a tool for unit testing, and they’re looking forward to trying IBMiUnit.

Find it on GitHub here: https://github.com/MarinaSchwenk/IBMiUnit

What did I take away? Marina’s technical development and presentation were great, as was the story of her journey from agent of investigation to agent of integration. But what impressed me at least as much was how much she’s accomplished in five years. Marina discussed another project she developed for error logging, specifically to identify when errors occur. Error messages are captured in a log table and can be interrogated which is helpful in debugging and error trapping. To download the source for this logging project, visit https://github.com/MarinaSchwenk/Logging

Hear more from Marina Schwenk in our Tech Talk at TechChannel: https://techchannel.com/SMB/01/2021/marina-schwenk-techtalk

Thank you, Marina, and to all who joined us in March.

Join us at iChime!

iChime reconvenes Thursday, April 8th, 2021 at 2:00 PM EST.

Special guest: “Swiss Army Knife” Richard Schoen on “See What i Can Do.”

Wondering how not to miss timely and relevant information in a friendly and casual setting in 2021? Sign up here to join us: https://www.centralparkdata.com/ichime-signup.html   

Is there a particular topic or special guest you would like to see? By all means, send us your thoughts at https://www.centralparkdata.com/contact.html

Dr. Frank Soltis inspires on iChime

During our February iChime meeting, the legendary Dr. Frank Soltis, who holds multiple hardware patents, took us through the high points and milestones of his fascinating 40-year career as an IBM chief scientist. This included, most notably to many, as chief architect for the AS/400. To record-breaking virtual attendance, he shared stories of evolution and emergence in terms of technological trends, culture, thought processes and cutting-edge machine design as well as insights to his own pioneer mindset and trail-blazing architectural activity.

Dr. Frank shared details of his journey, when, as a newly hired IBM systems architect working on the System/3(X) midrange business platform line, he was tasked with designing its next iteration as chief architect of the System/38. In line with innovation he had entertained while pursuing his Ph.D., Dr. Frank envisioned a single-level store methodology as, in summary, the least complex and most capable, and efficient way to proceed toward the future, especially with speed, adaptability and multiple-user functionality in mind.

When asked what the key to the AS/400’s success early on was, Dr. Frank attributed it largely to user groups, industry conferences, and also credited business-partners and customer advocacy.

Dr. Frank was a most engaging and inspiring guest.  As we approached the end of our meeting, many attendees “chimed-in” to personally thank Dr. Frank for the system which launched so many careers.  He was certain to remind us all, it was indeed a concerted effort with many, many people to thank; that a project of this scale could never be attributed to any one person. What a wonderful testament to IBM’s management and team collaboration. To read more about Dr. Frank, visit his Wikipedia page at https://en.wikipedia.org/wiki/Frank_Soltis.

Wondering how not to miss timely and relevant information in a friendly and casual setting month after month? Sign up here to join us: https://www.centralparkdata.com/ichime-signup.html  

Is there a particular topic or special guest you would like to see? By all means, send us your thoughts at https://www.centralparkdata.com/contact.html.

Jesse Gorzinski leads the way to Open-Source on IBM i

When I prompted Jesse Gorzinski, IBM’s Business Architect for open source on IBM i and creator of IBM i Access Client Solutions (ACS), “What is open source?” at the start of January’s iChime meeting, I was not surprised by his perfectly succinct reply.

“Open source is any application source code not only where there is a community for you to see the source code, but (that) also has some type of active contribution process by which you can suggest changes and make improvements to suit your needs,” Jesse explained. And “free” means freedom, not necessarily free of cost, he added.

One of the biggest challenges of using open source, he continued, is “the alphabet soup” of different technologies. But, he emphasized, that’s due more to the relative newness of open-source terminology to RPG developers, not to the validity of the methodology. Do not let that intimidate you, he urged as he shared his own journey from RPG developer to now-renowned open-source-on-IBM i expert — a reassuring story met by many nods of testament and a few “Hmmm”s of relief from many of the 60 attendees.

Jesse further explained how some processes which are already developed can easily be integrated into your existing applications and do much of the heavy lifting. Then he delivered to everyone just what they’d needed: a live, confident demonstration of Apache Camel (camel.apache.org), demonstrating with just a few lines of code how we could capture database changes which could be useful for other external applications.

During the session I polled attendees with a multiple-choice survey, asking, “What is your company’s attitude and readiness to adopt open-source solutions?”

Unsurprisingly, more than half (56 percent) replied, “We already have some in production and are always looking for new solutions to integrate.”  Clearly open-source solutions have already made their mark on our community.

What did I take away? The incredible depth of Jesse’s knowledge and passion for the ever-increasing adoption of open-source solutions, and how they clearly and quickly will enhance our existing applications to new heights.

Follow Jesse Gorzinski on Twitter here: https://twitter.com/ibmjesseg?lang=en  

If you want to join the open-source fun on IBM i, be sure to join one of the best collaboritive communities at https://ibmioss.ryver.com/application/signup/members/9tJsXDG7_iSSi1Q.

Already belong to the community? Click here to log back in https://ibmioss.ryver.com/application/login

iChime reconvenes at 2:00 p.m. EST Monday March 8, 2021 at 2:00PM EST.

Special guest: IBM Fresh Face ​Marina Schwenk on “Understanding Unit Testing and Modular Coding Using IBMiUnit, an RPG Unit Testing Framework.”

Wondering how not to miss timely and relevant information in a friendly and casual setting in 2021? Sign up here to join us: https://www.centralparkdata.com/ichime-signup.html   

Is there a particular topic or special guest you would like to see? By all means, send us your thoughts at https://www.centralparkdata.com/contact.html

The New York City familiar renews my optimism

2020 will long be remembered as the year the world stood still.  However, in our eternal quest to make lemonade from even the worst batch of lemons, we journey on.  2020, it is behind us.  Done. Goodbye, Sayonara, Adieu, Adios, Arrivederci, Auf Wiedersehen, Au Revoir, Cheerio…   

I have always enjoyed walking in the footsteps of my ancestors, it fosters a solid connection with my past.  I never imagined however the most recent set of steps I would be retracing would be my own.  In my endless quest to make lemonade from even the world’s worst collection of lemons, and more so in a perhaps desperate attempt to rebound to normalcy, I strolled around Manhattan on an unusually but always welcome warm January 2nd.

Within minutes upon my arrival, inhaling the sweet scents and enveloped by the sounds of that which is New York City, I was transformed to a previous time which moments ago seemed so far off.  Indeed, it was the familiar that brought me back; as your familiar will endow a similar calm on you.

The massive tchotchkes collections.

Pigeons feasting on a benefactor’s generosity.

The 42nd Street subway and Times Square in its unwavering neon beauty, replete with New Year’s Eve confetti resting after its graceful midnight descent.

The welcoming and grateful signs broadcasting hope and optimism.

Central Park with its infinite views and stunning architecture.

And lastly, magnificent mosaic art in the subways.

While progress and spirit uplifting will present itself in fits and starts this year, my hope and optimism for 2021 is limitless.

iChime Year End Recap

It has been my absolute pleasure this year to present iChime members with a class of IBM i experts and other business professionals, and the depths of specialized knowledge and insights they have shared. Those who’ve attended have told me joining the meetings has well exceeded their expectations. To have access to these industry leaders is nothing short of amazing, and our appreciation for them is immeasurable.  As we are planning for 2021, we already have some esteemed guests scheduled. With that in mind, here is a look at some of our recent meetings.  I again thank our guests for the time they spent with us for the following:   

August 18

Mike Pavlak discussed technology in the Covid-19 era, including how remote team-management has changed from a company’s perspective, the fact that some jobs require us to work with others onsite, and how to effectively manage bedlam to sustain business as (not-so-) usual. Mike’s take on how the pandemic has impacted user groups ushered positive perspective with food for thought: User groups that have adapted their models to all-virtual have leveled the playing field, whether organically or intentionally, developing an international presence within a changing landscape whereby the newest and smallest of user groups can now compete with the largest and most well-established on a global scale.  Speakers may need to up their games regarding fresh content development though, as it won’t be so easy to recycle and reuse presentations they’ve already delivered elsewhere.

September 10

In his presentation “Exploring the New Power of Db2 for IBM i,” Scott Forstie discussed the latest features of IBM i Access Client Solutions (ACS) and demonstrated some of the newest IBM i Services. These included the robust IFS services, such as identifying large and/or unused files, and consuming a JSON web service. As a senior software engineer at IBM and the Db2 for i Business Architect, SQL development leader, and IBM i developerWorks content manager, Scott possesses a wealth of expertise pertaining to database, SQL and more, and he generously delivered to attendees. As a special bonus, he shared his entire SQL script with the group.

October 7

Dawn May’s presentation, “Understanding IBM i System Health and Performance,” clued us in on new features, including IBM i services specifically for performance, and how she reviews IBM i performance and system health using the many free IBM i tools already provided with the system. Dawn shared valuable tips on how to use system watches, managing system pools, Performance Data Investigator (PDI), data collection and analysis and more. She even made a superb recommendation to one of our members in real time, which reduced an SQL query run time from longer than four minutes to less than 5 seconds. Amazing! Big takeaway: There’s a vast array of free tools and performance and system-health information out there! You just need to know where to find it. (And now we do.)

November 5

Robin Tatam discussed best practices of securing IBM i and the database, among other things, in his iChime delivery of “IBM i Security Considerations, Common Threats and How to Address Them.” His professional insights ran the gamut, addressing the various methods of data encryption, Single Sign-On (SSO), and the importance of password maintenance and proper management and distribution of the QSECOFR user ID, and all object level of authority, as well as known vulnerabilities and how to quash them. IBM i is in fact the most securable platform on the planet. The key is to know how to secure it. Those who attended Robin’s essential presentation now have the key.

Always looking forward

Wondering how not to miss timely and relevant information in a friendly and casual setting in 2021? Sign up here to join us in the New Year: https://www.centralparkdata.com/ichime-signup.html  

Is there a particular topic or special guest you would like to see?  By all means send us your thoughts at https://www.centralparkdata.com/contact.html.

iChime reconvenes at 2:00 p.m. EST January 12, 2021. Special guest: 2019 IBM Fresh Face Marina Schwenk, presenting “Understanding Unit Testing and Modular Coding Using IBMiUnit, an RPG Unit Testing Framework.”

Susan Gantner and RDi shine at December’s iChime meeting

Some 60 IBM i professionals joined for this month’s iChime virtual meeting, availing themselves of a free opportunity to hear Susan Gantner, one of the most recognized speakers in the IBM i community, present “Best Practices of Modern Application Development Using Rational Developer for i (RDi).”

Among other things, Susan, discussed the importance of keeping current with skills and continuing education. She was very engaging and insightful, but that didn’t surprise me. What did surprise me: In all 90 minutes of the discussion, not once did Susan share her screen.

From our survey presented during the meeting, forty percent of the iChime members said they “always” use RDi for programming tasks. Twenty-four percent said “mostly.”

As those who use it know, RDi supports plugins. And many members may already be using the free, open source iSphere RDi plugin (http://isphere.sourceforge.net/), co-owned by Thomas Raddatz of Tools/400. To my further surprise during this meeting, Thomas “chimed-in” as well! I identified him to the group, he spoke briefly about recent enhancements to iSphere, and it was a thrill to have him among us.

Thank you to all who attended, and many thanks to our special guest and informative presenter, Susan Gantner.

iChime convenes again at 2:00 p.m. EST January 12th, 2021.

Special guest: 2019 IBM Fresh Face Marina Schwenk, presenting “Understanding Unit Testing and Modular Coding Using IBMi Unit, an RPG Unit Testing Framework.”

Sign up at: https://www.centralparkdata.com/ichime-signup.html   

We’d love to see you there! Until then, I wish you all a peaceful and joyful holiday season, and a prosperous 2021!

The time is NOW to retire the creaky old bones of fixed-format RPG

I was surprised to recently encounter a fellow veteran RPG developer who insists on using fixed-format despite all the advantages of the completely revamped, modern-language fully free-form version.  For starters, he defended fixed-format for its 1) “easier to read columnar format” and 2) “keeping the senior developers in their comfort zone is important.” All efforts and reasons to switch to free-format were soundly rejected.  Some of my reasons included:

  1. It’s flexible as businesses and technologies continue to evolve.
  2. The new efficient functions are only available in free-format.
  3. Newer coding techniques improve readability.
  4. Improved readability speeds up maintenance understanding.
  5. Maintenance can be done by a wider swath of developers.
  6. A wider swath of developers can deliver critical solutions faster.
  7. Delivering critical solutions faster……

Want more proof of continuous improvements to the language? Visit IBM’s RPG Cafe at www.ibm.biz/rpg_cafe. Despite the many redeeming qualities of free-format, we continue to propagate the old language simply because we can. All that legacy code “ain’t (necessarily) broke,” and computers are backward-compatible. But that’s no excuse for perpetuating the need for backward-compatibility. That should be considered a bonus, something buying us extra time to get up to speed and future-compatible.

We need to up our game.

In a recent post on LinkedIn (https://www.linkedin.com/feed/update/urn:li:activity:6722136424189186048) I asked how many shops and developers are committed to fixed-format RPG, and why. Most, regardless of age and experience, were advocates of free-format, and rightly so. As several commenters noted, the difference between the older and newer forms is not about the ability to write quality code; you can write good or bad code in either fixed or free, or any other language for that matter. They’re correct. It’s really about being comfortable, confident and accountable for the futures of our employers, our customers, our co-workers and our industry. For that, we must be willing to grow. And growth requires change; it demands leaving one’s comfort zone to learn and practice new things.

While my fellow RPG veteran argued perhaps the most “redeeming” quality of fixed format is that it does not require developers to change, I reject that notion. It is incumbent upon leadership to demand high quality code. Moreover, talented newer-generation developers who know free format and understand its virtues may not (or more likely probably not) stick around a shop that forces them into fixed only.

To the “old-timers” resistant to change, I urge: Do not be afraid to venture out. Remember who you are. You started out as the ultimate adventurers, lured by the dare-we-imagine possibilities of what was once the stuff of science fiction. You turned cool concepts into possibilities and imagination into real-world experiences. And you’ve watched — even led — with awe the trends that land us here on the tech-forged cusp of the year 2021. Consider what your employer, peers and customers need from you now. Are you delivering something that sets them up for business growth — or for limitation, frustration, and stagnation?  Choose your legacy.