Node.js Achilles Heel

The good thing about Node.js is all that JavaScript running on my server !!!

The bad thing about Node.js is all that JavaScript running on my server !!!

Hey, if you love JavaScript then by all means use the heck out of Node.js; you may come to realize why Node.js is so weak as a server-side technology.  Heck, almost nobody even cares why Ruby on Rails is so weak and it’s got millions of followers.

Node.js lacks a threading model !!!

So who cares, Ruby lacks a useful threading model too and nobody cares about it at-all.

Ok, to be fair, Ruby 1.9.x does use multiple-threads but Ruby 1.8.x does not. (See also: this)

Node.js has no threading support at-all because JavaScript has no threading support.

As a casual user, or typical Manager, you will never even know or care about the lack of a threading model… none of your developers will either, for that matter.

On the other hand, if you ever try to develop some swift Node.js gizmo that could benefit from a threading model, well let’s just say you will be stuck with a slow service.

The good news is, even without a threading model Node,js could be used effectively but sadly few of your under 30 coders will probably know anything about how to engineer around the lack of a threading model.

Enjoy the lack of threads… Ruby lovers have for a number of years and you don’t hear anything from them about this either way.

Addendum – threading model

So there kind-of is a threading model for Node.js but only in the grossest manner – so you can fork or spawn a process – big deal !!!   This is not the same thing as spinning-up a thread by any stretch of the imagination.

Node.js is too immature for prime time

You should be able to see the break-out Node.js Web Framework on-par with Django for Python but there only seem to be a ton of choices with no clear winner.

The bottom line is, Node.js is all the rage, this year.  But will Node.js be there next year and the year after with the same strong following once people figure-out just how Node.js works ?!?

Here’s what you can look forward to with Node.js

You will look at Node.js and fall madly in love, no doubt.

Node.js can be very fast but only when you use it sparingly and then only for lightweight processes.

Node.js cannot do any heavy lifting because it lacks a threading model which means you will be spinning-up Processes not Threads and as we all should know a Process object is very heavy, much heavier than a Thread object.

Node.js will be a bit more of a pain to scale unless you want to buy/rent/lease a single server for each Node.js process and then you can go ahead and throw all your money into Node.js servers with my blessing; I will be spending much less on my Python servers and not only because I can pile more services on each Python server…

Node.js is this year’s Ruby on Rails.  *yawn*  So what else is new ?!?

Node.js appeals to non-techies and so does Ruby.

Node.js can be useful but only for those who know how to leverage it properly.

Use Node.js for simple one-off web services and keep Python around for the heavy lifting.

The bottom line

JavaScript is JavaScript no matter how much lipstick you pile on.  JavaScript was designed for the browser.  Get over it already !!!  Yes, you can run JavaScript on your servers – big deal !!!  I can run the Chrome browser on my servers too, does this automatically mean I should be using Google Chrome for my web services ?  I mean really !!!

What’s next ?  Let’s run Adobe AIR servers ?!?   Oh, no, I forgot everybody is supposed to hate Adobe, right ?!?

Let’s keep JavaScript running in our browsers…  Servers are for serious system-level work and this is why god made Python and Stackless Python anyway.

Advertisements

Automatic SEO Optimization –> Test Drive it today !!!!

When Any and All URLs based on the CargoChief.Com domain leads the end-user to the CargoChief site you are free to explore SEO (Search Engine Optimization) simply by using whatever URLs you wish to use such as the following:

http://www.cargochief.com/book/your/next/shipment/through/us/

or

http://www.cargochief.com/helps/you/connect/with/shippers/

or

http://www.cargochief.com/gets/your/pallets/shipped/today/

or

Whatever your marketing people might wish to use… you can feel free to be as creative about your message and how your URLs are positioned in whatever search engines you may wish to use…

Yet another useful innovation you may wish to begin using today.

Go ahead and give it a try…  the URL you bookmark will be the SEO-friendly URL rather than the actual end-point even when the actual end-point takes you to the CargoChief Cloud.

Only works with http://www.CargoChief.Com or CargoChief.Com domains.

Never see another 404 page again !!!

Brought to you by Vyper Logix Corp, innovation for the 21st Century ad beyond.

TCP/IP Latency Decoupler

The ability to decouple TCP/IP Latency from that which makes a request to that which serves the request results in a huge (2x) improvement in performance.

The first trick…

First you have to be aware of the effects the latency of the requester has on the overall conversation for TCP/IP and how the requester’s latency tends to cause the response to acquire this latency.

Consider the following…

Let’s say I have a bag full of quarters and you have a handful of pennies; I will give you a quarter for every penny you give to me.  This is kind of like what the Web is like, you make a request for some data using a smaller amount of data and the server gives you a larger amount of data than you sent to the server.

Let’s further say, you must first pull a penny from your hand before you can give it to me and I cannot give you a quarter until I get one from you.  My ability to give you a quarter is coupled with you ability to give me a penny, for as long as it takes you to give me a penny that delay or latency is acquired by me and I cannot respond with a quarter until the latency has been acquired.

Traditional Wisdom…

The Traditional Approach, or one of them, is to reduce the time required for the server to respond and this is part of the solution; the other part of the solution involves something far stranger than you might wish to believe however the latency of the requester can also be decoupled from the server’s response.

Your goal…

You can either continue to use traditional wisdom and reduce the time required for your server to respond or wait for Cisco Systems or Google to discover how to Decouple Latency and then you can pay them to do this for you.

My goal…

My goal is to build an online service you can use to Decouple Latency and then hope you figure-out doing so is useful so I can make this service available to you at a lower cost than either Cisco or Google.

Don’t worry…

There is no need for you, the casual reader, to become concerned with How-To decouple latency, the problem has already been solved and rather nicely using a very simple Ancient Egyptian solution for a related problem we consider in the modern age to be too antiquated to fool around with; the problem with using Ancient Solutions for modern problems is that most people think it stupid to do so because those who lived in ancient times were so backward based on our modern-day understanding – the fact is, however, that ancient peoples were far smarter in some respects than we are today and the Egyptians were second-to-none in numerous respects that we cannot begin to understand even in the 21st Century.

The fact that Latency can be Decoupled successfully is more than enough for those of us who have a deep intimate understanding in the inner-workings of TCP/IP.  I will say I have talked about this with many would-be networking experts who should have known what I was talking about but they did not… but that’s okay because most humans who are alive today are completely oblivious to Quantum Mechanics and still their lives are largely governed by this not-so-well-understood mysterious thing.

I don’t have any problems with those who choose to disbelieve what I talk about… this is what makes life interesting to me, being able to discover solutions others cannot seem to understand … I get to watch how events unfold as I wonder just how long the rest of humanity might take to also discover these solutions.  Cloud computing is one of those solutions I discovered but… the rest of humanity seems perfectly content in using the smallest aspect of what cloud computing could be… Google seems to understand some of what cloud computing could be but even Google has not revealed a very deep understanding into what cloud computing could do to reduce the operating cost at Google.  Agile Development is another of those solutions I discovered but nobody I know of talks about how the Agile Method might be used to greatly reduce the cost of software development; I get to be entertained by the fact that I have been using the Agile Method since I began writing software in 1974 and I had no idea back then that I was doing anything other than what was perfectly obvious to me that was also not at-all obvious to everyone else.  Ah, such is life… some of us have to create the Agile Method while others of us simply use it because it is perfectly obvious to us.  You can put me in a room with a pile of computer parts and then watch me build the computer followed by writing the code for that computer or you can watch almost anyone else walk out of that room without even making the attempt to produce software – it is for those of the latter group the Agile Method was crafted because those people, and you know who you are, lack the motivation to produce software unless they are told How-To produce software.

Now get out there an figure-out how-to decouple latency…  I did and my method works… what about the rest of you… ?!?

This proves I have been working on the Public CargoChief Site !!!

Yes, you heard it from me first.

Whenever we get to the day when CargoChief goes public and I am worth millions (*cough* * cough*) we can all point to the day when I was working on the Public Site for CargoChief and I was working for peanuts and a big IOU, I hope.

Munin for CargoChief, seems like I have some systems level Linux skills after-all… as-if there was ever any doubt out there.

Munin for preview.cargochief.com

BTW – I rolled the back-end for this site myself using Python/Django/Tornado/nginx/wsgi running in Ubuntu 12.04 hosted at Amazon EC2.

Now you might not know by looking at me or talking to me that I know how to do all this fancy Linux magic… well, I do, and I have been doing all this fancy Linux Magic for the past going on 10+ years but then I also got started with Unix back in the day (circa. 1983) when Linux did not even exist just yet.

The nice thing about Amazon EC2 is… it’s pretty easy to whip-up an on-demand highly-scalable back-end using nothing but a bit of duct tape and some imagination when everyone else is using Puppet and going totally nuts with complexity when all along all it takes is maybe one script and some imagination along with a more than average understanding of TCP/IP. *pats himself on the back*.

 

Total Domination Nuclear Strategy Survival Guide Redux

Here’s an update on a popular Flash game I have been hanging-out in for several months…

By now I have almost played through the whole Tech Tree, just missing the last 2-3 items a player can get from this game.

So far my base has been attacked less times than I can count, it’s that infrequent.

I owe all my success to the following Guide.

Total Domination Nuclear Strategy Survival Guide #1

All I can say is my strategy is working perfectly.

Enjoy !!!

%d bloggers like this: