The following is a very partial list of some solo projects I’ve developed over the years in my spare time for fun (and sometimes a bit of profit). Listed in reverse chronological order:
Find My Pet
A project to find lost pets I happily volunteered for.
Technology: Python for preprocessing (deep learning inference code for breed detection, text information retrieval, spam and inappropriate image detection, database updates, information gathering/processing etc.), PHP/JavaScript/HTML/CSS for the front end.
FixPix
Well, this wasn’t really a side project but an all-out full time project dedicated to creating a platform that takes amazing open source deep learning image processing projects and makes them available to a large audience who doesn’t know or care about the technicalities but just wants to enjoy what the technology has to offer. Runs on Windows and Mac.
Technology: Python for the heavy lifting and server, JavaScript/HTML/CSS for the application UI.
Clean Android Apps
No annoying advertisements, no in-app purchases, apps that just do their job. You can’t filter by this criteria using Google Play. Here you can.
Technology: Node.js for preprocessing, JavaScript/PHP
MyMon – Server Diagnostics Framework
An plugin-based extensible Python (supports 2+3) framework based on Tornado, leveraged for creating a process to easily view server diagnostics over time.
Overview here
Source code here
Technology: JavaScript/Python.
Music Surfer
A site to browse the music scene, find and listen to artists which are close in their style to the genre of artists or groups that you like and see the interesting connections of the genre relations – included is the simultaneous ability to read information about the artists and listen to their work.
Technology: JavaScript + PHP + some preprocessing in Python. The part that surprised me is that I actually had to brush up on some math to help optimize speed of retrieving the results.
Automated technical stock analysis
A system to detect and alert when various technical trading patterns are about to occur in a set of stock prices that are being monitored. Large project and had external contributions so need to check before open sourcing. Different methods used to detect the patterns but one building block that was used is the algorithm I describe here
Technology: Front end: Vanilla JS, Back end: OpenResty (Lua)
JScrab – A Scrabble Clone
A Scrabble-type game against the browser written in pure JavaScript which runs very fast by leveraging JavaScript regular expressions:
https://amnond.github.io/jscrab/
Technology: JavaScript
JNEXT – Native extensions for Web browser JavaScript
This was a project I really liked. The idea was to have a cross-browser, cross-platform library which would be very intuitive and simple to use and would enable browser JavaScript applications to access native resources of the operating system in a controlled manner (due to obvious security implications). It used ActiveX as the bridge to native resources on IE and NPAPI on other browsers. Getting NPAPI to work on Mac was starting to be irritating so I found a Mac wizard named Nir Sofer, who helped make it work (and later proved to be a wizard hacker at just about anything). The project must have been impressive as I received a call from Google headquarters about it not long after it was launched. Eventually, nothing interesting came out of it – I lost the cool jnext.org domain after forgetting to renew and NPAPI eventually went the way of the dinosaurs. Still, it was a fine project – to get a taste of what it enables, look here:
Technology: C++, JavaScript
Adapt music to your workout pace
After being frustrated with running to music that makes me want to change pace each time a new song is played, I wrote the Repacer, later to be renamed as Workout Music Studio. I no longer maintain or sell it, but it is a neat piece of software and helped many people get more enjoyment out of their workouts:
https://nocurve.com/bestworkoutmusic.com/
In addition a freeware called BeatScanner was also released that scanned people’s music library and detected the beats per minute of every track so that the appropriate songs could be put on the workout playlist.
Technology: Visual C++, MFC
Are you over 18,000?
Here’s a different way to look at historical dates. What event happened exactly 500,000 days ago? When will you be exactly 19,000 days old? I know you’re just dying to find out the answer to these fascinating questions…
https://nocurve.com/countindays
Technology: PHP/JavaScipt, Python preprocessing
The Bible Codes
While studying for a physics degree (way back), I attended a lecture given by one of the physicists concerning the Bible Codes. Intrigued, I decided to test it myself by developing software to find these codes. The software became quite popular at some point as it surfed the popularity of the codes in the press and media. The software is still available but runs only on Windows (wine might work though)
P.S. After corresponding with mathematicians from both sides of the argument and playing with the codes quite a bit myself, I still have no idea yet how real they are, i.e if the statistical significance is totally beyond chance. I feel the problem is that setting up an objective experiment is not as easy as it seems, partly due to the nature of the search and partly due to (conscious and subconscious) agendas of those conducting the tests.
Technology: Visual C++, MFC