Rx – A Contextual Find & Replacement tool based on Regular Expressions

Raja Renga Bashyam

Playlists: 'gpw2022' videos starting here / audio

Decades ago we were in the implementation of industry-first data-logging solution that capable of read machinery data’s through different industry protocols. It’s planned as a sensor to cloud solution had development for nearly 2 year and in its final stages of release. We handled the web-technology part of that.

It’s just crossed the challenge of MySQL to PostgreSQL migration due to license changes of earlier one. Due to industrial IT environment of that time, the deployment changed to on-premises implementation. It’s raised questions on protecting IP, Piracy, Software tampering & more.
Finally a strategy taken to obfuscate the code, so we have chances to prevent some extend.

Options were checked with standard grep tool and leading commercial solutions of the time, but none were near to solve it. The key challenge is make the replacement with logical flow that communicated in different languages. From a simple HTML element id replacement, to be continued with JS validation & PHP/Perl server handling. Sometimes it may have a CSS declaration. One thing came to clear is a simple find and replacement will not work. It seems end of road for obfuscation strategy. The management is hesitate to go on-premises without obfuscation.

When we take-up the challenge, we had a glimmer of hope with one of our simple file traversal tool. But it seems tougher than our estimate and we are unable to find a flexible & extendable way to decode the multi-language part. Most of the time we resolved such challenges with real world alignment. We had many inspirations from railways as a key algorithm provider. That time also, we hit the bull's eye by implementing the century old food-delivery system of Mumbai Dabbawalas.

It’s a tiffin box delivery system through public sub-urban train infrastructure in Indian city of Mumbai from your home to office and office to home every day. The entire system runs on their custom coding system, it’s a testimony of a swarm intelligence. Perl given us ways to adopt it without the need of technical jargons like class, object, interface, roles, inheritance & unknown many more.

I will share the story of how the real world inspirations helped us in implementation and how the Perl supports in creative thought adoption in overcoming non-linear challenges. It will gives an experience to participants to realize the power of scripting language.

Now the system improved as a tool for code quality check & application cloning and few more. Earlier we planned to make it open, but it delayed for years. Now i am planning to do it by this April