I have created an experimental project: running a node.js server + simple MVC CMS on the top of the Raspberry Pi board. Turns out that a $25 computer can actually pull off a decent performance. In fact I have not found a load level where the server would start slowing down, did a 50 concurrent user test on it.
There has been a discussion recently if the ARM based servers could replace conventional Intel based CPUs in the future. As ridiculous as it sounds to build servers off phone chips, I imagine that it is the same like if somebody in the 80's said that we would be running our server farms of PCs.
As a JavaScript/node.js ninja this starts making even more sense, since ARM is the one who is really really paying attention to the V8 open source project, and the ARM chips are really trying to optimize for JavaScript performance.
Here is another thing: joyent.com which is the main node.js hosting provider actually runs their servers on a minimal 250k memory VM instances and just scales by turning on more of these as needed. Why could not we do the same thing on per-board basis, and this way eliminate hardware failure as well as power consumption.
node.js is single threaded which is a common criticism, so it cannot take advantage of multi-core CPUs, but maybe this is exactly why creating single core ARM (optimized for V8 JavaScript performance) board clusters is the most suitable hardware solution.
I got a text message today: "Your subscription for MySpace Mobile has auto-renew is on 11/11/12 Need help? Visit att.com/mobilepurchases"
I have been getting a lot of span recently as a text message, but this one had a att.com domain name so it caught my interest. I called up the support, and the lady told me that I signed up for some kind of Java MySpace mobile app. This sounded really strange, since I have been using iPhone since it came out, and iPhone never supported Java and never charged subscription feels for it's apps. I did not really cared about the $3.20 monthly charge which does add up over the years, if fome some reason it was me to install this app sometimes in 2005, although I doubt because I am really cheap when it comes to software, especially subscriptions.
After 5 minutes, of trying to get some sensible information how I can be charged for a java app when I am an iphone user, I got to the manager, but still no solid explanation. The only thing I was told that as a consumer I have the right to review my bill and dispute anything that goes 3 months back. The Att manager was not able to tell me when and how I made the purchase, making excuse that this is third party app, but that there is no contact information to the app provider. The funny part is that if I do a search in the app center I cannot even find anything that would resemble in name the app I have been generously paying for all those years. I did an internet search, and all the mentions about the "Cingular MySpace Mobile" date back to 2006, no mention of this app afterwards, so I suspect, it's been years since this app has been even available...
I did a quick search and it looks like I am not the only one who felt trap, applied to things like ringtones.
So let me sum it up: AT&T has been charging me for product that never works on my phone and that is not even available, the fee is small enough, and the only answer I get is that as a consumer I have the right to review my bill and dispute any charges.
UPDATE: two managers up, after all kinds of threats, and proving that this app is not even in the mobile app store, I am finally getting my money back, added up to $115 for all those years, and took me almost an hour on the phone... Apparently, anybody who has your phone number can sign you up for a recurring service that get's added to your phone bill, and if as a consumer you are not careful enough and review every dollar charge on your bill you only have 3 months to dispute this. There is a way to block this by pin, by ATT decided to turn this off by default, because obviously the revenue would suffer from not making all these mistakes, or kinds not able to make purchases without their parent's PIN.
The Raspberry Pi $25 computer finally showed up in my mail. Unlike other use cases, my main purpose is to test this device as a node.js web server.
Hardware setup: when you get all the right cables and connectors (make sure you don't pay more for the cables than for you paid for the computer, which might be a challenge to accomplish) connecting all the cables is pretty straight forward.
Disk installation: I have wasted hours trying to get the Macbook pro card reader create a bootable SD card using the "dd" command according these instructions. Somewhere half way through, the process crashed, and I had to start over again with no luck... what has finally worked was when I connected the SD card via a USB card reader and used windows based image maker.
UI: Finally was able to boot, and see the "beautiful" UI of the Raspberry Pi Linux. Oh well, this is obviously not a workstation, or even an office computer, so let's move on...
...moving to my basement, I connected The Raspberry Pi to the router (yes I did get the $35 version with the ethearnet connector), checked my router for "attached devices" to find out the IP address of The Raspberry, and connected via SSH. (forgot in the previous point, I did enable SSH in the first wizard when The Raspberry Pi was booting for the first time.
Static IP: I plan to use this device as a node.js server, so first thing is to set up static IP. This is my template:
type:
nano /etc/network/interfaces
paste this instead of the last line
# OLD # iface eth0 inet dhcp # NEW iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1
node.js: I have used the "Debian" tutorial from the node.js website on github. Goes like this:
apt-get install python g++ mkdir ~/nodejs && cd $_ wget -N http://nodejs.org/dist/node-latest.tar.gz tar xzvf node-latest.tar.gz && cd `ls -rd node-v*` ./configure make install
... taking a while, I was able to write all the above while I am waiting... ERROR
After numerous attempts I gave up... but few weeks later I found this article, and followed the directions, and YES I am running Node.js 0.8.9 on Raspberry Pi now!