
Try node.js in the browser - MeProtozoan
http://jsapp.us/#!
======
anatoly
I hope someone does "Try Javascript in the browser".

------
tomjen3
anybody using node for their startup? I am not sure if it works for larger
projects, but that opinion may well be tainted by my dislike of javascript.

~~~
simonw
We have some Node.js code (not yet in production) for <http://lanyrd.com/> for
interacting with the Twitter streaming API.

My personal philosophy with Node.js is to use it for small, standalone network
servers that complement the rest of my stack - basically anything that needs
to handle large amounts of I/O. Everything I've written with Node.js so far
has been just a few hundred lines of code.

So for templating, database interaction and so on I'll keep using Django. I'll
use Node for stuff like comet/WebSocket pubsub services, handling file
uploads, rate limiting API proxies, webhook dispatching, interacting with slow
or streaming external web APIs, etc.

GitHub are using Node in this way at the moment:
[https://github.com/blog/678-meet-nodeload-the-new-
download-s...](https://github.com/blog/678-meet-nodeload-the-new-download-
server)

~~~
andrewcamel
Why is it good to use for large amounts of I/O? I'm in the process of making a
twitter-based app and I'm debating whether or not I should be using Python /
Django.

------
tamberg
Nice! Have been waiting for that since the tragic loss of AppJet. Do you plan
to provide some sort of paid hosting in order to prevent going broke due to
hosting cost?

~~~
mehi
AppJet is being hosted at <http://apps.jgate.de/>.

We also launched Erbix a few days ago: <http://www.erbix.com>

<http://apps.ycombinator.com/item?id=1938066>

------
antimatter15
Sadly, it doesn't look like it comes with socket.io, but I just hacked
together <http://testing.jsapp.us/> which is a sort of real-time visitor
counter.

------
andrewcamel
Thanks to matthewfl (<http://twitter.com/#!/matthewfl>) for putting the time
in to make this. It's really useful for someone who wants to experiment with
node.js.

------
cmelbye
Very cool idea, but is it so hard to add _body { font-family: sans-serif; }_
(replace "sans-serif" with your favorite font if necessary) to your CSS?

------
sh1mmer
It's not really "in" the browser. It's more try Node.js using the browser.

That said, they've done a sterling job of it.

------
obsessive1
This looks great, gives me a good excuse to start experimenting with node.js

------
gorm
Very cool! Would love to learn some more on how this was done?

~~~
ammmir
i'm not sure how these guys did it, but one could do a similar setup. one of
the issues to overcome is availability of ports. since most apps will listen
on port 80, you can use the HTTP Host header to virtual host instances. a
reverse proxy can be set up at nnn.jsapp.us, look up the nnn and get an
IP:port of which (internal) node instance to pass the request to. you could
internally use UNIX domain sockets so there wouldn't be a need to worry about
TCP sockets, but your frontend proxy needs to be smart about this.

thus nnn.jsapp.us can be mapped to a single IP address. things get more tricky
if you allow people to host arbitrary TCP servers that aren't reverse-proxy
friendly. the jsapp.us implementation seems to ignore a port argument to
listen(), which seems reasonable.

the jsapp.us implementation seems to be able to keep multiple node instances
running. obviously, if more and more people start hitting the server with
their apps, this could lead to resource starvation. they probably have a
clever way of not keeping the node instances sitting idle. if a particular
nnn.jsapp.us host exists and the node instance isn't up, start it on the first
"cold" request to that host. this allows the service to keep only those
instances up and running that have had recent requests. or maybe they shut
down a user's instances only when they log out or close the editor page?

that's my take on it. someone (maybe the jsapp.us guys?) should put together
an all-in-one node.js hosting service that has a nice web-based editor based
on Bespin or Cloud9 IDE and integrates node-inspector for an awesome remote
debugging experience.

------
asymmetric
nice to see bespin used in the wild, and for such a cool project too!

~~~
unwiredben
At HP Palm, we're using Bespin as the editor for our Ares code environment for
building webOS apps. See <http://ares.palm.com/Ares/>

------
giantsquid
ctrl-b pulls up my bookmarks, not run the code. Does it work for anybody else?

~~~
NathanKP
It works in Safari, but that's because the Safari command for bookmarks is
Option+Command+B

