stackoverflow

Stack Overflow is an interesting place. I have never really used my SO account, other than to ask a couple of meteor.js questions. That was 4 years ago!

SO is something I visit almost everyday. I know you do that too, so keep that condescending smirk to yourself will ya? I think time has come to start contributing constructively to this vibrant community.

I am taking a pledge today. Actually two:

  1. Visit SO homepage everyday
  2. Answer a question a day

You learn so much just by scanning the “interesting” questions section on the homepage. For example, today I came across something called Web Speech API. I’m going to learn more about it soon.

Book Review: Instant Meteor JavaScript Framework Starter

Instant MeteorLast month I got a review request from Packt Publishing for a recent book of theirs on meteor.js. About six months back, I was heavily involved in developing my first real-time web application at work (Accenture). The idea of using the meteor.js framework for building that app came from my mentor who had then recently given a presentation on it at an event. Awed by the concept of reactivity, a rich API and the power of MongoDB, I fell in love with Meteor pretty quickly. As it went, it didn’t prove difficult convincing my boss to using Meteor as the basis of a “social” TODO app we were planning to create at the time as the various virtues of this splendid framework clicked immediately.

Officially, meteor.js supports only Linux and Mac OS X as development and deployment environments, whereas Accenture is a Microsoft technologies driven company. So I had to do my research and come up with a way of deploying our meteor app on a Windows server. I blogged about the complete process of hosting meteor.js apps in IIS, and perhaps that’s how Packt Publishing found me.

Instant Meteor JavaScript Framework Starter by Gabriel Manricks is a light read that promises to get you started with a whole new paradigm of web application development instantly. The book is a whole of 76 pages long, including the usual table of contents, introduction and credits. I found that the book is written in a simple language and somewhat focuses on web development beginners, while at the same time dealing with complex and intricate topics through its mind-graphing app project. Even during my busiest days at office, I was able to read the book to completion in 6-7 days, although it may take a bit more time if readers explore Meteor simultaneously by practising themselves using the code snippets provided in the book.

Gabriel has done a good job with the introduction, and I liked the way he doesn’t ignore programmers who haven’t ever seen the black of a command-line. He keeps the overall tone simple and easy to understand. But assumes the reader has had at least some experience developing websites, which is fine as this book is not targeted at web development itself. Almost all important Meteor API functions and concepts are covered, and these make up for a natural flow in the book. Gabriel’s explanation of how Meteor implements the MVVM model makes this scarily perceived topic seem simple. The best part of the book has to be “Grapher” project, through which Gabriel has illustrated the process of creating a mind-graphing web app from planning to coding to securing the app. I personally loved the coding style used and agree with the emphasis laid out on the planning phase. Having been involved in web dev since the last 6-7 years, I even learned a few new tricks. I think anybody would be amazed on how developing such a complex app becomes so easy when using Meteor.

Topics like publish-subscribe framework and app deployment are touched toward the end of book, but I felt a couple more pages should have been dedicated to these two important topics, although what’s covered applies well to starters. In my experience, using publish-subscribe in a more complex data setting can become overwhelming and cumbersome if done wrong.

I conclude my review by congratulating the author and Packt for a crash course on Meteor, especially when there aren’t many (any?) books on Meteor available out there. Highly recommended for people wanting to get started on real-time web app development!

Hosting meteor.js app in IIS

meteorjsMaking reactive and real-time web applications is in fashion these days. Among popular real-time programming frameworks are meteor.js, knockout.js and signalr. Both Knockout and SignalR are developed by Microsoft employees, and integrate seamlessly with Microsoft products. Meteor, on the other hand, is though based on the cross-platform node.js, it is more Linux / Mac-centric than it is Windows. In fact, Meteor’s official documentation is also designed with instructions that pertain to Linux. They don’t even have an official Windows installer for their framework, but depend on a certain Tom Wijsman for that.

It’s true that Linux/Apache is still the dominant server stack, but we still have thousands of corporations that rely on Microsoft’s Windows servers and IIS. And deploying a meteor app on a Windows server is a real pain in the butt because the ever so elegant command meteor bundle doesn’t work in Windows. Last I heard from Tom, implementation of meteor bundle in Windows was in the works. But meteor-win won’t support it until at least v0.5.1.

Although there are workarounds like using a Vagrant VM or msysgit for deploying meteor apps on Windows servers, as I found out through my forum thread, all these workarounds are either too cumbersome or don’t work in all cases. During my constant searching on ways to deploy my meteor app on Windows, I stumbled upon an excellent utility called iisnode, which does that in the best and most elegant way possible.

iisnode is basically meant to host node.js applications is IIS, but again as meteor apps themselves are node.js apps only, using iisnode to host them just works. But some setup and configuration is required before your app is fully hosted.

Continue reading Hosting meteor.js app in IIS

MongoDB is super fun

If, like me, you were born under the zodiac sign of The Web, and are a seasoned JSON-weilding web developer, MongoDB will amuse you like nothing. As weird as the name sounds, the actual usage experience is awesome because of its JSON-like commands.

And clubbed with meteor.js, it is nothing short of legendary.

It’s sweet!