What You Are Seeing

This site is deployed via Amazon Web Services on an EC2 instance. It uses a LAMP model with Ubuntu 17.04 Linux, Apache 2.4.25, MySQL 5.7, and PHP 7. LEMP stack (with graphic to be updated), currently in a single server configuration for this tiny website. The source code is maintained and managed in a private Git repository at Bitbucket.org.

My first app was not "Hello World"

I am continually looking for ways to solve problems. Years ago, when I first started learning C++, I had a simple need to log photographs by roll number and frame such as 122.17, and it was a pain to type the dot-separated numbers in. I did some quick searches to verify syntax, and instead of "Hello World", I used a nested for-loop to output the numbers I needed.

This is not meant to be an impressive coding story, or even the best way that problem could have been solved. It is just one example of how I continually use what works to quickly and effectively solve problems.

"A person with 10 years experience is quite different than someone who has experienced the same year 10 times. -- Matt Briggs"

That was around the time when I turned a love of technology and my detail oriented analytical nature into a career of robustly solving problems at every step. From replacing an error-prone physical network, to designing and building an internationally deployed collaborative content development environment that helped double acceptance rates for test items, I've lived the experiences that matter in software development.

Samples and Examples

CPU Loader

Often, the performance of an application is impacted as much by the surrounding environment as by the code of the application itself. If you are writing an application that needs to maintain a level of performance while other software runs on the same hardware, testing can be difficult. Enter CPU Loader. CPU Loader simply uses CPU Cycles in adjustable or randomized amounts, mimicing the load other software may put on the CPU.

Learn more...

Bamboo Advisor

This is a PHP and MySQL web application that accepts user input about needs and climate, and returns a list of bamboo varieties compatible with their selections. It includes a data-driven (auto-generated) report available for the varieties returned. This was a prototype, and so does not have a fully developed user experience. But it received enough positive feedback that I left it running when I had to prioritize other development.

Find some bamboo...


In a rural area, more than a decade ago, bandwidth was especially hard to come by. One of the strategies for maximizing bandwidth is to compress data during transmission. But if data is already being compressed, this can be counter-productive. So, I wrote FileSpeedTest to do three things other tools didn't always do: 1) Make it easy to compare transmission speed of both compressed and non-compressed files. 2) Use the exact transmission methods typical users did. 3) Operate with enough precision to allow testing with smaller files over extremely fast (i.e. server backplane) connections.

It still runs... Try it!

RPG Dice

This MFC/C++ project was a vehicle for the study of multi-threading and randomization. It uses multi-threading to produce sets of random numbers as used in role-playing games, at a ridiculous speed. Seeking someone else's lesson is inherently easier as the creative thinking is already handled and the answers are available. We've all (hopefully) done many other people's lessons, but in this case I felt I would learn better if I both created and solved the challenge.

Have a deeper look...