These are some of the projects I have worked on in my free time...
TrendWeight is a web site that pulls data from Withings or FitBit WiFi-enabled scales and runs it through a series of analyses and then plots a moving average (try the demo) so that the user can see how their weight over time is trending instead of worrying about the day to day ups and downs that are the natural result of water retention fluctuation.
It started as a tool that I made just for me to use myself, but when I mentioned it to a couple other people on a weight loss forum, they asked if they could use it and eventually I polished it into a free tool that anyone can use. TrendWeight as also an excuse for me to play with Windows Azure (it runs on Windows Azure and uses SQL Azure for data storage).
Check out TrendWeight.
I have a respectable board game collection (i.e. I am out of control), and my wife and I play games several nights each week after our daughter goes to bed. As I am also a web developer, I created a page to catalog my obsession. It uses ASP.NET Core, React, TypeScript, and MobX and pulls its data from the database at BoardGameGeek fronted by a caching layer I built on top of Azure Storage.
Check out my Games page.
Bitcoin Command Center
In 2012, I got sucked into the world of Bitcoin. In particular, I got into bitcoin mining. I no longer do any mining, but when I did, I created Bitcoin Command Center to help me keep track of my hardware. This web-based application acted as centralized dashboard and pulls information about all of my mining devices into an easy-to-consume display. It also acted as a web-based frontend to my Bitcoin wallet allowing me to see my incoming transactions, to manage my bitcoin addresses, and to send bitcoins to others.
Technology wise, it is a relatively simple (in the grand scheme of things) single page application and was my first adventure into the worlds of AngularJS, NodeJS, and MongoDB. I wrote more about Bitcoin Command Center in two blog posts. The first is an overview. The second is on the underlying technology.
When I was mining bitcoins, I became involved with a pool (called P2Pool) with a relatively unique approach, in that the pool was entirely distributed. Other pools generally have some centralized server with a back end database that everyone in the community talks to.
As a general rule, these centralized pools, usually have nice looking websites that provide some amount of transparency for the community members so that they can see what the current status is and how much is being earned by each community member. P2Pool, on the other hand, didn’t have this. It is a completely decentralized pool where all of the community members connect using a peer to peer protocol (hence the name). Lots of information about what is going with the pool was available, but only in the log files generated on each node of the peer to peer network.
I wanted a website that people could go to to more easily see what was going on, and so I created p2pool.info. I no longer do anything with Bitcoin, but the P2Pool community still exists. I handed p2pool.info over to the community at the time I stepped back form Bitcoin, but since then they have moved to other tools and p2pool.info is no longer in use.