Skip to main content

a bit of fun

Breaks are good.

I've been waiting on a few fixes for Jawaya from the intrepid Ryan, who has real paying work to do as well, so in the meantime I've taken a step back from Jawaya until after this post.

Note: I'm at best an intermediate programmer; and this post is targeted toward beginners and intermediates. If you're a code jockey, you may find yourself guffawing out loud as I say things like "tests? we don't need no stinkin tests!".

In the meantime, I've been playing with some cool technology, and having some fun with it. Node.js is a lot of fun to work with; it's an http server written in Javascript, which has become fast enough.

My goal is this: to build a useful app entirely in Javascript, from the database to web server to framework to browser stuff. Why? Well, I know JS, so I don't have to learn the language, just the tools.

The nicest thing is that you don't have to ask your brain to think differently each time you switch from browser to server to database. That said, I'm using a templating system that isn't JS, but it eases working with HTML, with which I'm already, of course, comfortable, but the syntax is really clean.

So here's the toolbox:

  • web server: Node.js
  • real-time goodness: sockets.io (for chat, streaming, etc)
  • model, view, control framework: Express.js
  • HTML templating: Jade. Clean, simple, outputs HTML. Can incorporate JS.
  • CSS Templating: Stylus. Really clean, much cleaner than CSS and outputs to it. 
  • database: MongoDB. NoSQL document database, stores in BSON/JSON, which of course is Javascript-based object format.
  • database ORM: Mongoose. Basically makes it simple to work with Mongo, which is already simple, but cuts down on the amount of overhead. If you like dot notation, like user.name='charlie'; user.save(); then you're going to love Mongo and Mongoose. Note: mongoose documentation ain't great, so make sure you study the Mongo docs. 

So on top of Node, I installed NPM, which is something like node package manager for installing and managing node add-ons called modules.

For instance, installing express is simple: npm install express.

So I installed the Express.js framework, which is a lightweight MVC framework. The tutorials were easy enough to get up and running quickly. It's much like Rails, but less terse, and given I know Javascript but not Ruby, it's easy for me to pick up.

Then I installed Jade & Stylus, and then mongo and mongoose. I was able to test each of those pretty quickly, and had minor problems I was able to get around.

The real fun came in when I installed sockets.io, which instantly gives you real-time functionality. Imagine killer-fast multi-player gaming, where you have to send, receive, and render real-time data from multiple sources. Fun stuff.

Note I'm not offering any code samples--I don't have the time today and this blog isn't really designed for that.

So what's the point of blogging it? Well, I think I've seen the future, and the future is Javascript. Which sounds crazy--a lot of people hate Javascript. Yes, but everybody knows it, and when all the components of your apps are in JS or jQuery, from server to mobile, suddenly you've enabled everyone to build robust killer realtime apps.

And somebody ported node to the iPhone, which enables so, so much. I can't even begin to get into the possibilities here, but I guarantee you there will be a huge amount of investment in the mobile node.js space. Huge.

Breaks are nice. But break's over--back at it.

Comments

Popular posts from this blog

Beta Signup

I've been working for quite a while on a new search concept, though the further in I get, the closer the rest of the world gets to what we're doing. So today I'm inviting you to sign up for the rather modest beta, which will be ready soon if we can nail down a few difficult  details. Jawaya is a way of navigating the web and getting better results. And that's as much as I can say right now, because we're not a funded startup, and things are moving really fast in this space--it's going to be very competitive. I predict there will be about 10 funded startups in the next 6 months doing something similar. One of them will be mine, and we aim to make it the best. We're raising a round of capital to fund the team, and are shooting for early sustainability. This is my fifth company; my fourth in the tech space, and my third software company. I think it will be the biggest and can possibly have a positive impact on the world by reducing the amount of time it takes

Where Innovation Happens

As I get closer to a go/no-go decision on a project, I've been thinking about the difference about my vision for the project and the supportive innovations to enable the core innovations The vision combines (in unequal parts) product, core innovation as I imagine it, the application of that core innovation, design, marketing,  developer ecosystem, and business development. The core innovation enables everything else, but it's the application of the innovation that makes it meaningful, useful, and in this case, fun. This week we're testing initial approaches to the implementation for our specific application, and that's where we'll develop the enabling innovations, which is basically where the rubber meets the road. The difference is that the enabling innovation happens at the source of real problems only encountered in the making of something, and in a project like this just getting the essence of it right isn't enough; it also has to be safe, the compone

Disqus Digests

This morning my phone dinged with a fresh notification--a new email! What oh what could it be?  I rush over to check while thinking "I need to unsubscribe to a lot of stuff so I get fewer non-urgent dinging notifications." Well shoot, that's disappointing. It's Disqus Digests, one of the biggest wastes of dopamine anticipation ever.  It simply sucks.  Disqus itself is great as a commenting system. I've been there since the beginning and have mostly enjoyed its evolution.  And then they did this interruptive, irrelevant email. Well why does it suck, you say.  Every one of these "Digests" sends a few comments from a blog conversation in which I've already participated. That means it's very, very likely that I've seen the comments before.  So I open the mail, see something I've already read, and curse Daniel and Company for enticing me into wasting my time, and cursing myself for falling for it.  So I unsub