Talk: Develop & Deploy Node.js App on Windows Azure

Node.js adoption is quite slow in Indonesia, also in Bandung, at least that what I know of (I’m trying to find Node.js developer to help on my company projects, and so far found the same guys :)). So, when I’m asked to deliver a talk on a regularly hosted Tech Thursday by Telkom Bandung Digital Valley (BDV), I quickly jumped into the event to talk about Node.js. Much better, I also talked about how to deploy Node.js app to Windows Azure. Hopefully that 2 hours talk gave the idea how easy to get started developing on Node.js and also deploy to Windows Azure.

Everything I talked is on this slide:

Source Code

I put together the demo source code and published it on GitHub: https://github.com/andriyadi/NodeAzureStorageSocketIO. Make sure to follow the instruction on that repo to try the code on your machine.

The live demo of that project is here: http://intro2node.azurewebsites.net/
I’ll try my best to keep it alive as long as possible :)

That live demo is actually reflecting master branch of the GitHub repo mentioned above. If you’re wondering how I managed to publish to Azure from GitHub repo, make sure to follow this tutorial: http://azure.microsoft.com/en-us/documentation/articles/web-sites-publish-source-control/

The demo source code is based on sample from Windows Azure website published here. If that demo is based on Jade template, I use EJS view engine instead. I find Jade is intimidating :) So for all of my Node.js project with ExpressJS, I always use EJS.

The demo also implements Socket.IO 1.0. All this time I always use Socket.IO 0.9.x and it works without significant problem. But when I use v1.0 in this demo, I can’t make it work right away. Finding examples of v1.0 was quite hard, so I decide to struggle myself. So, here it is, working example of Socket.IO 1.0. You are welcome :)

Continue reading Talk: Develop & Deploy Node.js App on Windows Azure

Thought on MongoDB Document Encryption on Windows Azure

My company was asked to deploy a system managed by an Indonesia government department to Windows Azure infrastructure. Apparently, the biggest concern of enterprise and government to deploy internal information system applications to 3rd party cloud infrastructure is security. There should be a way to avoid unwanted access to the data by any parties (including the cloud infrastructure owner), but the owner of the system.

In my case, the system uses Node.js as development platform and MongoDB as database system. MongoDB document encryption needs to be implemented in addition to any built-in security measure.

Please note that this post is used as my note of my research so far, not as a guideline. As the project is not yet started, there’s no way I know which one of the alternatives I describe here that actually works. Will update later with more practical guide.

Continue reading Thought on MongoDB Document Encryption on Windows Azure

Azure CLI – Uninstall & Install

It’s not really important post and the post title sounds weird :) But it’s important for me as my note.

Today I stumbled upon Azure CLI installation in my Mac machine when trying to repair permissions on /usr/local. I know that’s based on Node.js and it seems the installation has its own Node runtime in it. Hey, I already have latest Node.js runtime installed on my machine. Why need another one.

So I decide to uninstall the “standalone” Azure CLI, and decide to install it using NPM. To uninstall, you can just run this command on Terminal:

To install it again using NPM, type on Terminal:

That’s it!

A bit trick I found. If you uninstall and install using the same Terminal window, make sure to quit that Terminal window first. Open new Terminal window, type: azure –version, and you should see the version of Azure CLI.

Cross Platform CLI for SQL Server

I’m dying to get client software to access my SQL Server from my Mac. All this time I use Navicat for SQL Server Lite, as name, a lite/free version, which has been very outdated. The full version is more up-to-date and more features, but honestly it is a bit expensive for me.

Another option is using SQuirrel SQL which happens to have SQL Server support. Since it’s developed in Java and as long as you have JDBC driver of DBMS to access, I think it can access that DBMS well. It’s a great piece of free software. Just sometime it’s a bit complex for simple query operation that I want, for example.

Continue reading Cross Platform CLI for SQL Server