I use an API that you pass a callback into and get an fd in response. You then monitor the fd and invoke a process function when there's something to read which results in your callback being fired with results. I haven't checked js-ctypes for some time so I could be wrong about this type of thing not being possible with it.
I figure if I'm going to do a rewrite I might as well go down the NPAPI path (via http://www.firebreath.org/) as then I can pick up Chrome.
Some years ago I asked one of the IT guys at a company I worked at about this. They had a laborious checklist to go through to make sure that no internal or external web apps broke.
This sounds like a small job, but the number of things to check when dealing with apps built internally and externally over the course of a decade or more is not insignificant. Factor in the failure case being potentially hundreds of staff answering phone calls with "Sorry, our system is broken" and you can understand the conservatism towards upgrades.
In the time he'd been at the company (18 months) two upgrades had been held back, one due to a bad stylesheet in an internal app and a second due to an incompatibility with a third-party site that used client SSL certificates.
But routing traffic via DNS change to different data center isn't the best approach as some ISPs cache DNS and would still send traffic to old data center.
All resolvers cache records for the TTL (or SOA minimum for negative lookups) specified by your authoritative servers.
A solution to this would be to have a round robin DNS to different data centers but that is still plagued if one data center develops a network issue.
If the clients are web browsers they will try the alternative addresses in a record set if the one they pick doesn't respond.
There is nothing wrong with a Linux distributions being focused on fulfilling server or development roles. That is not the role a Linux distribution like Ubuntu Desktop is attempting to fulfill however. Critiquing Gentoo or Arch or what not against the traditional desktop incumbents is unfair, Ubuntu Desktop, not so much.
I think the majority of PHP developers could handle Erlang. The core language is small, the syntax maybe at times quirky but it is quite clear, the documentation is good and the community is welcoming. There is perhaps some extra effort in starting a project but with rebar I don't think it's any more onerous than the hoop-jumping involved in using a PHP framework.
If there are any PHP developers reading this who have tried and failed to pickup Erlang I'd be interested to know what got in your way.
I've paid for features to be implemented and been paid to implement features. It's not common per se but it's not frowned upon in my experience. It's often a lot more efficient to pay someone else (or them you) with expertise and a commit bit to get something done; just don't expect money to allow you to go against the projects grain and tack on cumbersome or obscure functionality.
I figure if I'm going to do a rewrite I might as well go down the NPAPI path (via http://www.firebreath.org/) as then I can pick up Chrome.