git push heroku master

heroku-codeI still get a little chill down my spine every time I type “git push heroku master.” Why? I really do believe that someday all software deployments will be this easy, even in a private corporate environment.

For those of you not familiar with the magic of Heroku, now is a good time to check it out. Heroku is a mature Platform-as-a-Service (PaaS) offering that has been operating for almost seven years – the last four under the ownership of

The basic unit of abstraction in the Heroku platform is a “dyno.” Unlike a virtual machine, which often contains multiple apps, a dyno IS a single instance of an app. As such, it represents a much finer grained level of abstraction than a virtual machine. This is much more in line with how apps really get scaled and managed. For example, you might only need one database instance, two web servers, but three or more instances of your business logic.… Read the rest

Solace’s Support for Node.js

Solace’s API supports Node.js so Node.js applications can stream data to web and mobile devices over LANs, WANs, and the internet by tapping into the power of Solace’s high-performance messaging appliances. And since the developer community has built modules that integrate Node.js with other leading languages and protocols, Node.js is an easy onramp for connecting web apps to Solace’s high-speed publish/subscribe messaging backbone whether they’re written in Ruby, PHP, Perl, or Python, or use protocols like HTML5 WebSocket, AMQP or MQTT.

Read the rest

Increasing Initialization Speed with Solace Web Streaming

The Solace Web Streaming API supports the WebSocket Protocol as a preferred transport. I have been playing around with using the Solace streaming API in Node.js as well as on my laptop, iPad, and Android phone.

In each case, the initialization time for apps is visibly faster when using a browser that supports WebSocket. I wrote a simple javascript app to display the init time, the protocols used, as well as continuously monitor the round trip time for the connection. The plotting of the  round trip time (RTT) uses SmoothieCharts which I think has a nice look and feel.


Why is the init time faster?

The Solace javascript client library always tries the WS_BINARY WebSocket transport first before falling back to one of several other methods for providing streaming data (such as polling with XMLHttpRequest). WebSocket supports bi-directional sending and receiving of streaming binary data without having to encode it as text first.… Read the rest

Solace Excel Streaming Demo

excel-streaming-demoSolace appliances enable topic-based pub/sub and request/reply messaging using the unified messaging APIs. Solace provides APIs including C, C#, Java, JavaScript, SilverLight, Flash, iOS and supports Node.js. We have used C# APIs to build Automation DLL for Excel to be able to connect to the Solace appliance and able to publish/subscribe using “User Defined Functions”.

This demo uses the C# API to subscribe to messages published to the Solace appliance running in the cloud at Solace’s headquarters in Ottawa, Canada and stream data realtime on the excel spreadsheet.

Publishers can send messages to “topics” and subscribers can “listen” to topics to get matching data. A random data generator is publishing dummy market data messages for various currencies on different topics.

The topic structure is as follows:





The spreadsheet subscribes to all such data, with a valid subscription using UDF and paints the received data into the spreadsheet.… Read the rest

Solace Web Streaming Demo

hans-web-streaming-demo-drawingIt seems that the classic pub/sub demo always includes some streaming financial market data. With that in mind I set out to create a 3 minute video that shows how easy it is to build pub/sub apps using the Solace Web Streaming API.

The server-side of the demo uses an early access version of the Solace Node.js module. The client side is written with the generally available JavaScript Solace Web Streaming client libraries running on an Android  mobile phone. Communications between the client and server is all via HTTP Streaming through a  Solace Messaging Appliance.

If you want to see the text, the video is best viewed full screen in 720p HD quality.  I hope you enjoy these quick videos. Email us at if you have ideas for future video demos or technical tutorials that you would like to see.… Read the rest

Why I’m Hooked on Node.js

node.jsFull disclosure up front, I am NOT a rock star developer. The biggest programs I have ever written were video games, and only because I was highly motivated to use the resulting binary. Yes, binary, this was the old {vi foo.c, make, execute, debug} days and I still find myself most comfortable as a programmer in similar environments. I still use the HJKL keys in vim and I change my console terminal preferences to be fixed font green on black for VT100 nostalgia’s sake. I also program alone so I have no need for distributed source code control system until I am done and I want to share my work. I get lost in IDEs like Eclipse and Visual Studio and they make me feel inadequate very quickly. Why on earth do I need to create a project and run a wizard in order to write HelloWorld.js, or in my case AsyncPubSub.js?… Read the rest