Posts

Image
Web Servers and the Zen of Non-blocking I/O This post started as a short introduction to the first one in a mini-series of head-to-head comparisons of three non-blocking I/O web servers. And then things got out of control. Being as it is, I convinced myself that a bit more elaborate introduction is in order. Now comes the hard part, to convince everyone else. Web servers Web servers are complicated machines, both hardware and software-wise. The illustration below shows block diagram of a typical web server based on LAMP ( L inux A pache M ySQL/ M ariaDB) P erl/ P HP/ P ython) bundle (or stack as some prefer to say). LAMP bundle web server Told' ya it was complicated, didn't I? And this is just a block diagram. There are variants of this stack, such as WAMP ( W indows A pache M ySQL/ M ariaDB) P erl/ P HP/ P ython). By the way, these bundles are really easy to install. Companies like TurnKey Linux offer a number of software appliances based on Linux in n...
Why !(!(node.js))   No one in his right mind would kill his main character in the third chapter of his suspense/thriller/drama blog about web apps, so the above title is not a mistake. There certainly is an extra set of parenthesis, but I wanted to add emphasis. In the first post I tried to make my personal case for node.js, and in this one I shall look into some of the most used counterarguments. JavaScript is slow Inherently, node.js which is based on it, is slow   Well, all web scripting languages are slow . That is because they are interpreted languages . Programs written in these languages need a runtime ( runtime interpreter to be precise) to work. And the runtime is just a program that reads your file and tries to interpret the commands. It is usually (read: always) written in some high speed compiled language (think C/C++). Anyone can create his or hers programming language. All you have to do is invent your own syntax, play around with Lex long eno...
Example – EtherCalc I had other plans for the second post on this blog. Fear not, it is just postponed, not canceled. The reason for this is that, few days ago, a friend of mine  +Dusan Jovanovic  sent me a link to EtherCalc web spreadsheet. This project is a nice example of how a legacy application ( VisiCalc ) could be brought to new life on the web platform using node.js . And VisiCalc is epitome of legacy application, but a very important one. It is one of the few that brought computing to the masses and masses to computing. I t would be very nice if you could find the time to read the whole page.
Why node.js It seems that fashion and IT goes round in circles. Not that I care too much about fashion. In the past 20+ years I have been in the IT, many ideas and concepts were “reinvented” and resold to unsuspecting new generations of programmers. In fact, at the time I decided to become one, programmers were called “computer experts”. It still sounds good. In 60's and 70' we had mainframes from the likes of IBM and Sperry Rand Corporation. The function they had back then is practically identical to what we now call Cloud computing. Perhaps it's good that Microsoft did not come up first with that name, and patented it. Otherwise the name would have to be Internet Mainframe or Virtual Machines for Rent Over the Internet. In-between we had good old client-server model. Good old because both client and server were usually written in the same programming language and using the same tool. Visual Studio 6 comes to mind immediately. All you had to do was to drag and...