Tumblelog by Soup.io
Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

September 12 2011

Running node.exe windows

Finally node.js is available as a windows binary without requiring Cygwin to be installed.

As of writing this post you can download the node.js binary 0.5.6. Currently npm does not work with node.js on windows. You need to download and use ryppi.py instead of npm. It works similar to npm but requires python. To setup node.js first set the PATH and NODE_PATH to the where you have copied node.exe.

             set PATH=%PATH%;c:\node
             set NODE_PATH=c:\node

It is better to set these environment variables in the System Properties so that you don't have to set these variables every time. Follow the following steps to do that.
  1. Right-click Computer, and then click Properties.
  2. Click the Advanced system settings in the left side bar.
  3. Click the Advanced tab.
  4. Click Environment variables.
  5. Append the node path to the PATH variable
  6. Create a new variable NODE_PATH and set it to the path where node is installed
Once you are done with it need to install Python as ryppi.py is a python script which works like npm. Once you are done with it you can install any of the libraries by using the following command.

             python ryppi.py install socket.io express

Am assuming here that python is setup using the installer which also will also setup the path of python in the environment variables. 

May 06 2011

TIL: In JavaScript function.length returns the number of arguments it supports

function test(a, b, c)



In this piece of code if you use .length on a function it returns the number of named arguments that this function accepts.

Tags: javascript

April 07 2011

Conditional compilation in IE

I normally know about conditional compilation of JS in IE using <!--[if gt IE 6] --> but here is something new I figured out today.

var IE;
//@cc_on IE = parseFloat(navigator.appVersion);

The best part here is that the JS code stays in your JS files and does not uglify the HTML if you ever have to use conditional compilation. Here is some more information about it from MSDN article Conditional Compilation (Windows Scripting - JScript).

Speed up your JavaScript

This post is just for my own reference. Here are the slides and the video of the presentation by Nicholas Zakas. Goes into great detail in ways to improve the speed of your javascript code.

The article summarizes most of the points in the slides and video http://james.padolsey.com/javascript/zakas-javascript-performance-tips/

April 29 2010

COMET for Chirp User Streams - II

After almost giving up I finally figured out a way to use the Chirp User Streams. Not the best way to use it but I guess it just might work. Create a XHR request and abort it ever other minute. It will complete the request and make a new request. Try and keep the connection alive. This is something that facebook does in its chat. Thought there the connection is aborted by the server.

In this case make sure that you abort and make the connection the very next second. It should be possible to use the same connection to reconnect to the server. But I have not tested it extensively to see how it will work in a real world situation.

For now it works and hopefully when I again get to work on it I will write something more about how I use the ChirpUserStreams.

COMET for Chirp User Streams

First there was AJAX and to give it company there was COMET. Incidentally both names of popular disinfectants in North America. In JavaScript AJAX allows the client to PULL information from the server and COMET is the technology where the server PUSHES down information to the client.

I got interested in COMET after going through Chirp User Streams. Thinking it would be a trivial task to call a XHR and keep listening to it. In my mind I kept thinking that it would be stuck on readyState 3 and it will never get to 4. Since it would be stuck at 3 I could use a timer and after every few seconds keep checking for the change in length of xhr.responseText.length. Technically it should work like that.. BUT.. the way IE has implemented XHR it is not possible to check the responseText till it reaches 4. Which means that the request has timed out or ended. That somehow makes no sense at all.

I figured out it was time to investigate and see how Facebook and GTalk were able to work on IE if it does not allow you to read text till it reaches readyState 4. Facebook makes a XHR and keeps waiting, after a minute if there is no data it sends some data and the connection is closed and a new connection is made. Incase there was some event in between that minute the XHR reaches readyState 4 and a new connection is made. In a way facebook makes a new connection for every new event. Here a bunch of events can also be merged together to make it more efficient.

While looking into it I also figured out the other way to use COMET. But in that case you need to make changes on the server side. You basically use an IFRAME and send out information in chunks. Every time the server wants to PUSH some data or call an event it makes a new SCRIPT element with the data. Since the script is executed instantly the client can listen to events that way.

In all this confusion I realized that there is no easy way to use Chirp User Streams using XHR in IE. Might have to look into WININET to get the work done.

April 21 2010

Adobe Stratus - P2P networking using your webbrowser

With the launch of Flash 10 there is a P2P technology Stratus built right into flash. When it was launched I was not really interested in it as it takes time to deploy the latest flash runtime. But in less than an year Flash 10 has been deployed on more than 90% of the systems worldwide (According to these stats on adobe.com).

I personally don't like flash but flash is not just about animations and videos. Its a lot more than that. And these things are what will keep flash alive even after the onslaught of "HTML5". The problem is HTML5 is made out to be this magical solution that will rid the world of Flash. Unfortunately with people like Steve Jobs promoting HTML5 as the solution to all Flash problems most people blindly start to believe it.

The reason Flash really works is that the deployment is so large and most people have it installed even if they don't know about it. iPhone got away without using flash as they had partnered with Google when they first launched the iPhone. They got an application built for it that would stream YouTube content so most people really did not miss flash on one of the biggest sites which uses flash. With the strong momentum that iPhone had flash got sidelined and the only place where we now think of flash is for Videos or Animations.

With Stratus you can do things that till now were not possible without setting up a huge server farm. List of webapps using Flash based P2P KKloud Cloud , PipeBytes, Files Over Miles and JetBytes. Even Chatroulette uses Stratus to connect users together. Since there is no server in between the cost of hosting video and voice chat is almost minimal.

There might be more applications which are using it and I will try and keep this post updated with new services which use it when they are launched.

Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.

Don't be the product, buy the product!