In 2014, I read an article in Scientific American by Markus Covert from Stanford about the successful computer cellular simulation of mycoplasma.
In 2015, I realised that Pipi had been a very early form of cloud computing, and I had been right about many things.
When building Pipi 4, I had been regularly told by developers from NZ Crown Research Institutes.
"It's over-engineered"
I think they were just jealous. Pipi 4 was a better system than what they had.
In 2016, I decided to rebuild Pipi from memory and convert it to a Software as a Service (SAAS) platform that could host a broader range of applications that would be more helpful to more people and be able to financially support itself. But first, I needed to catch up with how software development had changed.
Changes in Software Development
The strong support for ColdFusion had disappeared and was being replaced by AJAX. XML was being replaced by JSON. Cloud Computing was the new thing. Computers were getting cheaper and faster. Physical software books were getting harder to find. JavaScript everywhere. The internet was much faster.
2017 Start
I was in Invercargill, and there was no one to work with. The NZERN archive was long gone, but I did find some copies of the NZERN website on the Internet Archive. Pipi 4 was never documented because of funding expense constraints, so I carried the design around in my head. However, I found a copy of the PIPI 4 Development Plan and still had the original software reference books.
So, working from 1st principles, I reconstructed the database core of Pipi without the ecological restoration parts.
I added multi-tenancy and 20+ metadata columns added to all tables.
The previous monolithic architecture was replaced by loosely connected modules.
I figured out how to turn all non-core modules into plugins.
I chose domain-driven design (DDD) as the methodology for organising future applications to run on this platform.
I quickly made up populated apps from space, health, particle physics, agriculture, film, construction, laboratory experiments, and wetlands to prototype and test the system's design for hosting various domains.
I decided to continue using ColdFusion (CFML) for the coding.
I then reverse-engineered the Covert Lab Mycoplasma cellular simulator to understand how it worked.
Pipi 6 was built by fusing the rebuilt core platform with Covert Lab's open-source cellular simulation software. It was challenging to do and was the cause of an unusual architecture.
Every process was given a random probability. And a lot of positive and negative feedback loops.
It was like composing music (In hindsight, synesthesia helped a lot).
Influences
The internet has changed everything. I could access the ideas and experiences of Martin Fowler, Gregor Hohpe, David C. Hay, Len Silverston, and many more. There were talks on YouTube as well. TDAN still existed, and a small group of well-organised CFML developers wrote a lot.
And there now was a thing called DevOps.
Thank you
Special thanks to two people in Invercargill. Lesley Catterall for encouragement right when I needed it, and Martin Catterall for being a great sounding board about integration.
2019 Finish
It was all going to work. It was rough and took 3 years to finish. By the end of 2019, it was time to refactor.
No comments:
Post a Comment