KeyNode with Node.js and Microsoft Azure

KeyNode is a application to issue and verify software license keys. Technology stack for KeyNode is Node.js, MongoDB and Microsoft Azure. I had built this functionality with (a cloud-based IDE with a built-in source code repository and debugger), mongohq (MongoDB as a service – now part of and appfog (Cloud PAAS built on top of CloudFoundry). It used SMTP/gmail to email license files. That was the version I created a couple of years ago to issue tamper-proof signed xml license files for CodeDemo (a code snippet tool for developers, presenters and instructors). For KeyNode (open source) I switched to a different toolset : Visual Studio Code and Windows Azure, simplified the code to remove signed xml file and open-sourced it on GitHub. Signed […]

The Site44 Workflow

A light weight development workflow with real-time website deployment. I recently built a sample website to illustrate how clean, semantic html markup can be maintained when using Bootstrap’s grid system. The solution is to use a css pre-processor to incorporate Bootstrap’s LESS based mixins into your own .less files and push the Bootstrap instructions down into your stylesheets. There are two ways to “compile” .less stylesheets – use a stand-alone LESS compiler or use less.js. I found it very convenient to use less.js (note that it is not recommended in production deployment). As I started working on developing the sample code I found it a bit cumbersome to work with an entire web application project in Visual Studio, considering I […]

Protecting Your Api Keys

I am working on a Windows 8 app (details to follow in a subsequent post) and the code is published in a public repo on github. My app uses third-party APIs and after I committed the first cut to github, I realized that I had included my api keys in the code. The whole world had access to my keys. I did not want to publish the developer keys for those APIs to the entire world. When the app will be released and distributed, those keys will need to be included in the app somehow. Once the keys are out there they can not be 100% protected from a determined mind. So, why bother? Why would I want to hide […]

Solution to the fetch puzzle

Here is a brute force solution to the fetch problem – Basically, at each step there are three possibilities : 1. You can fill a bucket. 2. You can transfer water from one bucket to the other one. 3. You can dump out the water from a bucket. In this brute force solution, I try each one of these steps and then try all three again after each one of the previous steps. And on and on untill I get the required amount of water in one of the buckets. Check it out. Source code is on my github repo – Here is a brute force solution to the fetch puzzle. Basically, at each step there are three possibilities : […]