Using Yum to Install or Update the IBM i ODBC Driver

ODBC with Db2 for IBM iThe IBM i ODBC driver for Db2 has become easier to install.

Formerly available only as a download requiring several steps, the driver can now be installed and updated on IBM i with Yum or Access Client Solutions (ACS), as easily as with other IBM i open source packages.

Here are instructions for installing the ODBC driver using Yum.

Read more

Liam Allan’s Next Adventure

Liam Allan Alan Seiden

Liam and Alan at POWERUp 2019

To say that Liam Allan is a powerhouse in the IBM i community would be an understatement.

Liam burst onto the IBM i scene in 2016 as a Club Seiden member and the recipient of COMMON’s Student Innovation Award. Skilled in multiple programming languages, he chose to advance the art of bridging the worlds of RPG and open source. Later, he joined Seiden Group’s team of open source and IBM i experts.

Liam contributed a staggering amount to the IBM i community. As a conference speaker, his enthusiam inspired even the jaded to try new approaches. He has created how-to videos and tutorials, contributed to open source projects, and answered questions on forums. He built Code for IBM i, a free extension for Visual Studio Code that supports IBM i development in RPGLE, CL, COBOL, and Db2 for i.

Read more

Continuous Integration for PHP Extensions

(Co-written with Alan Seiden)

CI/CDContinuous Integration (CI) ensures that every time a developer commits changes to a version control system such as Git, the code is automatically built and subjected to automated tests.

CI has been invaluable to us. As maintainers of PHP’s PDO_IBM and ibm_db2 extensions, we use CI to ensure high quality across platforms.

Platforms supported by PHP’s extensions for Db2 include IBM i, Unix/Linux, and Windows. While our focus is IBM i, we must ensure compatibility with the others. Reliance on manual testing would introduce the risk of broken builds or subtle bugs. Automation is a must.

In this post, we explain how we use CI principles when building and testing PHP’s Db2 extensions.

Read more

How to Choose a PHP API Framework

APIAlan and I provide API strategy for a software company who asked us whether they should use a PHP framework and, if so, which one would be best. They also wondered whether to invest in a commercial API gateway.

My thoughts on APIs and frameworks struck Alan as useful for any language and platform. Alan encouraged me to document my “philosophy of frameworks” here for anyone planning to develop web apps or APIs.

Read more

Porting a Cross-Platform C++ Application to Mac

An article about building C++ software for macOS might seem out of the ordinary for Seiden Group, a company that focuses on IBM i, but we have a good reason: we’ve been enhancing open source tools for PHP and Python. One of these is KCachegrind, an open source visualization tool that integrates with PHP’s Xdebug’s powerful application profiler and Python’s cprofile.

While KCachegrind and its cousin QCachegrind are easily available for Linux, only very outdated builds were available for Windows, and none at all for macOS. To rectify the situation, we’ve been making enhancements; providing QCachegrind builds for the community; and documenting how to use QCachegrind with Xdebug.

We’ve learned how to build cross-platform applications that work well on a Mac. This article documents many of the challenges we faced and solutions we found.

Read more

PHP 7.3 Enters End of Life Today—Free Upgrade Assessment

PHP on IBM iPHP 7.3 entered end of life today and will no longer receive fixes—including security fixes.

If you’re still running applications on PHP 5.4, 5.6 or 7.3 (run php -v to check), it’s time to schedule a free upgrade assessment.

PHP upgrades are easier now, thanks to IBM’s adoption of RPM-based open source packages. Over the past year, our clients have reported smooth and even enjoyable migrations to CommunityPlus+ PHP 7.4 and 8.0.

Read more

How Update-Alternatives Manages Multiple Versions of Python, Node.js, and other Open Source Packages

parallel versionsAfter a friend installed Python 3.9 side-by-side with Python 3.6, he asked, “I noticed that the newer version, Python 3.9, became the default on my IBM i system. How did the default version get set?” We explained how IBM used the update-alternatives program to set the default version of Python and other open source software packages.

Read more

Troubleshooting “already been bootstrapped” Message on IBM i

Setting up the open source environment on IBM i from Access Client Solutions (ACS) is usually easy, but sometimes you can run into problems. The most common error is when ACS claims that the environment is already set up (“bootstrapped”), when in fact it isn’t.

Read more

VS Code for IBM i — Tips and Extras

Visual Studio Code 1.35 iconVisual Studio Code is a widely used IDE in the non-IBM i world. Recently we released Code for IBM i, a freely available extension for VS Code that supports RPGLE and COBOL development for IBM i. You can read about the basics of Code for IBM i and about code coverage functionality in my previous posts.

Today I’m going to cover three additional tips for using Code for IBM i. Of course, for any of this to work, you need to install Code for IBM i.

Read more

Solving “curl#6 – getaddrinfo() thread failed to start”

Curl-logoIf you download files onto your system using PHP, Yum, RPM, or other tools, there’s a good chance curl is involved.

The version of curl provided in IBM i PASE uses multiple threads to speed up common tasks such as DNS lookups. When threading support is not available, however, curl fails.

Read more