Re: [nodejs] Re: I cannot export jQuery correctly; testing Node.js with mocha and chai

2018-04-30 Thread Evan Biederstedt
Hi Mikkel

This is a good work around. I think you might be right---I may not have
been thinking clearly about jquery.

Thanks, Evan

On Mon, Apr 30, 2018 at 3:54 PM, Mikkel Wilson <codeb...@gmail.com> wrote:

> So, this is a server-side javascript environment. jQuery is more suited to
> a client-side environment (in a browser, not on a server). I think you're
> trying to use jQuery to make a request to a /metadata endpoint on a server
> to get some JSON. I'd suggest you use the 'request' package instead.
>
> First, install the package:
>
> npm install request --save
>
>
> Then, you can use it in your misc.js file:
>
> const request = require('request');
>
>
> Finally, you can replace your $.ajax call with request like this:
>
> request(Misc.server+'/metadata', function(err, response, body){
>   if(err) {
> console.log(err);
> return;
>   }
>   console.log(body);
> }
>
> HTH,
> Mikkel
> https://www.oblivious.io/ <https://www.oblivious.io/?r=googlenodejs>
>
> On Sunday, April 29, 2018 at 2:16:34 PM UTC-7, EB wrote:
>>
>> I'm confused how to export jQuery correctly in order to test several
>> functions with mocha and the assertion library chai. Hopefully this is a
>> beginner's error...
>>
>> Here is the code I am testing, with the branch `add_tests`:
>>
>> https://github.com/mskilab/gGnome.js/tree/add_tests
>>
>> I'm having trouble with the functions in
>> https://github.com/mskilab/gGnome.js/blob/master/js/misc.js
>>
>> with the tests here:
>> https://github.com/mskilab/gGnome.js/blob/add_tests/test/miscTest.js
>>
>>
>> So, in order to export jQuery, I include the following line:
>>
>> https://github.com/mskilab/gGnome.js/blob/add_tests/js/misc.js#L2
>>
>> const $ = require('jquery');
>>
>> However, I'm still getting errors when I try to use the functions in
>> `miscTest.js`, whereby I'm running `mocha` or `npm test`, I get a TypeError:
>>
>> TypeError: $.ajax is not a function
>>
>> This is from trying to run
>>
>> console.log(Misc.metadata);
>>
>> within `misc.js`
>>
>> How do I correctly export jQuery so it's recognized?
>>
>> --
> Job board: http://jobs.nodejs.org/
> New group rules: https://gist.github.com/othiym23/9886289#file-
> moderation-policy-md
> Old group rules: https://github.com/joyent/node/wiki/Mailing-List-
> Posting-Guidelines
> ---
> You received this message because you are subscribed to the Google Groups
> "nodejs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to nodejs+unsubscr...@googlegroups.com.
> To post to this group, send email to nodejs@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/nodejs/76053819-61e2-4878-9f7b-2c44af693e31%40googlegroups.com
> <https://groups.google.com/d/msgid/nodejs/76053819-61e2-4878-9f7b-2c44af693e31%40googlegroups.com?utm_medium=email_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
To post to this group, send email to nodejs@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/CABFhwYNFwiOEOvm1-WpYNSrQ2JfmxYmNQZGF2G%3DhDvUSJTqSAQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[nodejs] Re: TCP and HTTP server together?

2015-05-12 Thread Evan
The code is all available on 
Github: https://github.com/evantahler/actionhero

To start your own project using actionhero:

- Install node and npm
- in a new directory, run `npm install actionhero` which will download the 
library locally
- generate a new project with `./node_modules/.bin/actionhero generate`
- and then from there you can start your new project with `npm start`

Documentation is here: http://www.actionherojs.com/docs/


On Tuesday, May 12, 2015 at 1:53:24 PM UTC+1, Ket wrote:

 Can you point out how built it from scratch. Using third party software 
 cause a lot of headache.


 On Thursday, May 3, 2012 at 10:53:56 AM UTC+7, Evan wrote:

 Applications like this are why I built http://actionherojs.com/
 Let me know what you think! 

 On Tuesday, May 1, 2012 9:05:58 PM UTC-7, ss9 wrote:

 I have a unique app I need to build: 

 1.  Gets a request from a browser 
 2.  Passes a call to a TCP server which sends a UUID to a 3rd party 
 3.  TCP server listens for streams from the 3rd party. 
 4.  TCP server filters the stream to send the UUID messages back to 
 the HTTP server 
 5.  HTTP server does something with the message. 

 I've had a few thoughts so far which include two different node 
 servers, one tcp and one http... or one server that does both, maybe 
 spawns child processes for the tcp part? 

 Any thoughts on the best way to go about this?



-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
To post to this group, send email to nodejs@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/93bb2eb4-4c74-4331-847b-5195bc6dfec0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[nodejs] Re: Queue management with Express framework

2015-01-23 Thread Evan
Express is a web server framework.  Queue systems like node-resque 
https://github.com/taskrabbit/node-resque exist for this

On Thursday, January 22, 2015 at 12:56:30 AM UTC-8, dhaval shah wrote:

 Hello Guys,

 Wanted to know if Express framework support persistent queue management or 
 not.

 If not then what are options ?

 Thanks,
 Dhaval


-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
To post to this group, send email to nodejs@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/0ebe5a4a-b825-4b3a-92b7-6dbbb59697af%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[nodejs] Re: Node.js + DMX

2014-04-19 Thread Evan
Solved here for the curious: https://gist.github.com/evantahler/9755268

On Tuesday, March 25, 2014 8:33:32 PM UTC-7, Evan wrote:

 Anyone here have experience creating DMX (the lighting proticol) buffers 
 with node?  
 I'm having some trouble crafting my message packet and would love some 
 help.

 Here's a gist of what I've got so far 
 https://gist.github.com/evantahler/9755268'

 ---

 I need help talking to the Enttec Open DMX 
 USBhttp://www.enttec.com/index.php?main_menu=Productspn=70303 DMX 
 controller. I feel that I'm very close, and only have trouble with forming 
 the DMX buffer itself (starting on line 
 101)https://gist.github.com/evantahler/9755268#file-dmx-js-L101-L123

- The excellent fdti https://github.com/KABA-CCEAC/node-ftdi package 
for node easly fins the device and can connect to it.
   - if you are on Maverics, you need to unload the built-in OSX FTDI 
   driver with sudo kextunload -b com.apple.driver.AppleUSBFTDI
- The DMX device relies on the computer to continuously send data 
(there is no onboard clock)
   - DMX operates at about 40 fames/sec, so we send the universe every 
   ~20 ms (the exact frequency shouldn't matter, as DMX devices will keep 
   their last state until the next signal)
- The DMX start/stop codes, baudrate, etc have been confirmed and 
validated by both this 
 rubyhttps://github.com/crux/enttec-dmx-usb-pro-tools/blob/master/lib/enttec-dmx-usb-pro-tools/rdmx.rb
 and 
 nodehttps://github.com/wiedi/node-dmx/blob/master/drivers/enttec-usb-dmx-pro.js
 package
- I can confirm that I can talk to the dmx device and the hardware 
works by using this OSX product http://lightning-dmxcontrol.com/
   - I can reach the dimmer pack, as when I send a signal, it does 
   register a DMX signal... hence my supposition that the message is 
 malformed.



-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[nodejs] Node.js + DMX

2014-03-25 Thread Evan
Anyone here have experience creating DMX (the lighting proticol) buffers 
with node?  
I'm having some trouble crafting my message packet and would love some help.

Here's a gist of what I've got so 
far https://gist.github.com/evantahler/9755268'

---

I need help talking to the Enttec Open DMX 
USBhttp://www.enttec.com/index.php?main_menu=Productspn=70303 DMX 
controller. I feel that I'm very close, and only have trouble with forming 
the DMX buffer itself (starting on line 
101)https://gist.github.com/evantahler/9755268#file-dmx-js-L101-L123

   - The excellent fdti https://github.com/KABA-CCEAC/node-ftdi package 
   for node easly fins the device and can connect to it.
  - if you are on Maverics, you need to unload the built-in OSX FTDI 
  driver with sudo kextunload -b com.apple.driver.AppleUSBFTDI
   - The DMX device relies on the computer to continuously send data (there 
   is no onboard clock)
  - DMX operates at about 40 fames/sec, so we send the universe every 
  ~20 ms (the exact frequency shouldn't matter, as DMX devices will keep 
  their last state until the next signal)
   - The DMX start/stop codes, baudrate, etc have been confirmed and 
   validated by both this 
rubyhttps://github.com/crux/enttec-dmx-usb-pro-tools/blob/master/lib/enttec-dmx-usb-pro-tools/rdmx.rb
and 
nodehttps://github.com/wiedi/node-dmx/blob/master/drivers/enttec-usb-dmx-pro.js
package
   - I can confirm that I can talk to the dmx device and the hardware works 
   by using this OSX product http://lightning-dmxcontrol.com/
  - I can reach the dimmer pack, as when I send a signal, it does 
  register a DMX signal... hence my supposition that the message is 
malformed.
   

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[nodejs] sails.js : req.session is not defined?

2013-11-26 Thread Evan Lee
sails.js : req.session is defined? (sails.js is a node.js framework)

I am trying to learn node.js recently. And sails.js looks promising.

I just setup sails project, everything works ok. except that req.session is 
undefined.

Here is my config:

module.exports.session = {
  secret: '0f18410746715474fa79f357f6dedd75',
  adapter: 'redis'};

when I try to use,

req.session.user = 'admin'

I find that req.session is not defined.

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [nodejs] Re: What's the unicorn for Node? How should I think of deployment?

2013-11-17 Thread Evan Tahler
Ahh! Thanks for clearing that up.

On Sun, Nov 17, 2013 at 12:25 PM, Matt hel...@gmail.com wrote:


 On Sat, Nov 16, 2013 at 9:22 PM, Evan evantah...@gmail.com wrote:

 @matt I guess it really depends on your application logic.  My
 understanding of 
 cluster.disconnecthttp://nodejs.org/api/cluster.html#cluster_cluster_disconnect_callback
  is
 that the worker/child will instantly close all open sockets/pipes/etc.
  That means that if you have a client mid-request, that request will
 timeout.  I don't think the client will see a true connection failure, as
 they are technically connecting `via` the cluster master, and the socket
 (as far as they can see) will remain open.  This kind of thing gets
 dangerous if you are mid-database operation or similar.


 Nope, that's not how worker.disconnect() works.

 It just tells the master to not send any more connections to that child,
 allowing it to gracefully exit. Now of course if the child has some other
 reason to stick around (a setInterval or an outbound connection somewhere)
 then it will do so, but you need to take care of that in any system which
 supports graceful restarts.

 Matt.

 --
 --
 Job Board: http://jobs.nodejs.org/
 Posting guidelines:
 https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
 You received this message because you are subscribed to the Google
 Groups nodejs group.
 To post to this group, send email to nodejs@googlegroups.com
 To unsubscribe from this group, send email to
 nodejs+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/nodejs?hl=en?hl=en

 ---
 You received this message because you are subscribed to a topic in the
 Google Groups nodejs group.
 To unsubscribe from this topic, visit
 https://groups.google.com/d/topic/nodejs/PiG9kQ9u-CU/unsubscribe.
 To unsubscribe from this group and all its topics, send an email to
 nodejs+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.


-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


[nodejs] Re: What's the unicorn for Node? How should I think of deployment?

2013-11-16 Thread Evan
To me, when I read unicorn model, I look at it as a combination of 2 
things: 
- a master-slave relationship which allows for multiple servers to share a 
port/socket in order to load balance
- a signaling pattern to manage the whole thing.  

As others have pointed out, node's built-in cluster module already handles 
part 1 for you really nicely.  What might not be so obvious up front is 
that children in a cluster can share *any* socket, not just HTTP 
connections.  One of the trickier things unicorn does which you can do 
simply in node is monitor the health of the child processes.  You get 
events for children booting and dying so you can tell if you should spawn a 
new worker, etc. 

I was heavily influenced by Unicorn's design and signal patterns when I 
implemented actionHero's cluster 
modulehttps://github.com/evantahler/actionHero/blob/master/bin/methods/startCluster.js.
 
 At it's heart is is just a wrapper around `cluster` with some signal 
handling.  The trickier part was actually building my application to be 
comfortable in transitional states.  For example, if the TCP/TLS server was 
signaled to shut down, it needs to ignore all incoming new connections and 
send a 'goodbye' message to all existing ones.  It's nothing overly 
complicated, but it's a little more to keep in mind when developing, 
assuming your goal is 0-downtime deployments.  

All in all, I really like Unicorn's patterns.  It makes it possible to 
'roll' code without taking your server down, signal that you need more or 
less workers, and have a single parent application to monitor and control 
everything.  That said, I tend to always keep nginx in front of *every* 
application I create (regardless of language) to handle static assets, 
rate-limit, etc.  

On Thursday, November 14, 2013 8:22:16 AM UTC-8, Eric Mill wrote:

 I'm totally fine being told that the Unicorn model is the wrong way to 
 think of things in Node. But what are the best practices for deploying a 
 Node app where I'd like to be able to scale the number of processes up and 
 down easily on a box? The model I'm used to is putting nginx in front, 
 having it proxy to a Unix socket, and then having Unicorn watch the same 
 Unix socket.

 I'm aware of node-http-proxyhttps://github.com/nodejitsu/node-http-proxy - 
 should I run one of these with foreverhttps://github.com/nodejitsu/forever 
 -- 
 and then also manage my express processes with forever? How should I be 
 conceiving of the problem?

 -- Eric

 -- 
 konklone.com | @konklone https://twitter.com/konklone
  

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [nodejs] Re: What's the unicorn for Node? How should I think of deployment?

2013-11-16 Thread Evan
@matt I guess it really depends on your application logic.  My 
understanding of 
cluster.disconnecthttp://nodejs.org/api/cluster.html#cluster_cluster_disconnect_callback
 is 
that the worker/child will instantly close all open sockets/pipes/etc. 
 That means that if you have a client mid-request, that request will 
timeout.  I don't think the client will see a true connection failure, as 
they are technically connecting `via` the cluster master, and the socket 
(as far as they can see) will remain open.  This kind of thing gets 
dangerous if you are mid-database operation or similar.  

On Saturday, November 16, 2013 5:53:49 PM UTC-8, Matt Sergeant wrote:


 On Sat, Nov 16, 2013 at 3:38 PM, Evan evant...@gmail.com javascript:wrote:

 I was heavily influenced by Unicorn's design and signal patterns when I 
 implemented actionHero's cluster 
 modulehttps://github.com/evantahler/actionHero/blob/master/bin/methods/startCluster.js.
  
  At it's heart is is just a wrapper around `cluster` with some signal 
 handling.  The trickier part was actually building my application to be 
 comfortable in transitional states.  For example, if the TCP/TLS server was 
 signaled to shut down, it needs to ignore all incoming new connections and 
 send a 'goodbye' message to all existing ones.  It's nothing overly 
 complicated, but it's a little more to keep in mind when developing, 
 assuming your goal is 0-downtime deployments.  


 But the cluster module handles this via worker.disconnect(). Zero downtime 
 updates are just a matter of spawning a new set of children and telling 
 your current ones to .disconnect().
  

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


[nodejs] Re: Is it a right thing to do, to use Node.JS as a TCP Server?

2013-10-15 Thread Evan
http://actionherojs.com/ can run a TCP/TLS server.  The project can share 
your code between http, websocket, and 'raw' TCP clients (assuming everyone 
speaks JSON). 

On Friday, June 21, 2013 10:20:25 AM UTC-7, Kaveh Shahbazian wrote:

 Is it a right thing to do, to use Node.JS as a TCP Server? Does that 
 considered as abusing Node.JS? And if anybody had did that what were the 
 pros and cons in the long run?


-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


[nodejs] Blogs and Further Reading?

2013-07-03 Thread Evan
I'm a moderate-to-advanced node.js user.  I want to read up on cool new 
packages coming out, environment/deployment best 
practices, conference talks, and things like that.  

What are the best node.js blogs and newsletters I can check out?

Thanks! 

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [nodejs] Cluster - soft restart support needed

2013-06-07 Thread Evan
 

@Isaacs Thanks for the module! It has a nice clean syntax. I may replace 
actionHero's cluster server with it :D

I too agree that having a 'graceful reload' feature in clustered 
deployments is a great feature.  This is especially useful when you host 
the app yourself and don't rely on providers like appfog and heroku where 
deployments are literally new servers switched at the load balancer. 
 However, I am in agreement with Isaacs that building a graceful reload 
into node's core cluster module is a bad idea.  I think that doing so would 
create a very complex API which is also very likely not to cover everyone's 
use cases.

Some examples:

If your app is just an http(s) server, all you need to do is call 
`server.close()`.  Node is awesome and the server will stop handling new 
connections, and will still finish existing requests.  However, how do you 
know to wait until all requests are complete before terminating this 
child?  How long do you wait?  What if there are websockets bound to this 
server?  Will your clients know how to reconnect?  What if you have a 
socket/tls server?  You probably need to signal each client with a 
'goodbye' message and be sure that whatever they are working on is 
complete.  Perhaps most importantly, what if your server is processing 
some background tasks?  You need to be sure that they are allowed to 
finish, less you loose the job they are working on.

Here are links to my examples above.  These are all teardown functions 
which every worker in the custer does when it is signaled to shut down (and 
they are all from one application!).

Web (http/https) 
server: 
https://github.com/evantahler/actionHero/blob/master/servers/web.js#L66-L69

Telnet/TLS socket 
server: 
https://github.com/evantahler/actionHero/blob/master/servers/socket.js#L214-L239

Background Task Worker: 
https://github.com/evantahler/actionHero/blob/master/initializers/taskProcessor.js#L27-L43
  



On Friday, June 7, 2013 6:26:57 PM UTC-7, ryandesign wrote:


 On Jun 7, 2013, at 19:10, Isaac Schlueter wrote: 

  I do this with the npmjs.org site using the cluster-master module. 
  
  https://npmjs.org/package/cluster-master 

 Thanks, I'm sure I've heard of that before, and will remember to look into 
 it once I get to the point of deploying. 


  I only have to restart the main process if there's a change to the 
  main server.js file.  Otherwise, I log into the repl, and I can 
  restart workers one by one, resize the cluster, etc. 

 I guess I don't understand how this is accomplished. What repl are you 
 talking about? Is this something custom you've written for the npmjs web 
 site or is this easily available to anyone's nodejs site using the standard 
 repl that appears when you run node? Could you point me to an example? 


  Getting all the edge cases handled properly is very app-specific, and 
  in multi-machine setups, it will be completely extraneous. 
  
  So, unlike Ben, I would reject a pull request flat-out for this 
  feature, unless someone could present a *very* compelling case for why 
  everyone ought to have the same logic in all their apps.  I don't 
  believe that this belongs in core. 

 Regardless of whether you run a single node process on a single server or 
 several processes on several servers, most everyone will eventually want to 
 deploy an updated version of the code and restart the server, and I don't 
 think it's controversial to claim that doing so gracefully, without losing 
 any connections, is best. Why, then, should each developer need to figure 
 out anew how to do that, especially when as you say it's difficult to get 
 right? 




-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [nodejs] Cluster - soft restart support needed

2013-06-06 Thread Evan
I approached this problem a little differently, and have a semi-decent 
solution in actionHero 
today: 
https://github.com/evantahler/actionHero/blob/master/bin/include/startCluster.js

If the master process is simple enough, you can probably get away with 
rarely reloading it.  Mine only handles the spawning of children and basic 
unix signaling.  Parent and Child don't need to be running the same code, 
so your *real* application code is executed by the children.  When it's 
time to upgrade the code for your application, you roll off (kill one, 
start a new one, repeat) the children until you have a newly spawned 
collection.

Regarding websockets, one of the main reasons I moved from socket.io to 
Faye is that it supports clients reconnected to another server (with a 
redis backend).  This way, clients will reconnect to a new cluster member 
as they roll over (albiet with some period of disconnect).  

On Thursday, June 6, 2013 3:49:59 PM UTC-7, ryandesign wrote:


 On Jun 6, 2013, at 05:22, Ben Noordhuis wrote: 

  Secondly, I'm not sure how many people will actually use it.  I assume 
  most people have multi-machine setups where they simply take machines 
  out of the load balancer one at a time and upgrade at their leisure. 

 Having not put node into production yet, the procedure you describe sounds 
 far from simple; it sounds like an involved multi-step process with many 
 opportunities for human error. Wouldn't automating it in some 
 officially-sanctioned way be good for everyone? 



-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [nodejs] Testing with self-signed certs

2013-05-20 Thread Evan
Whoa! Thanks for the helpful lvh.me idea Forrest!
I'm now going to setup 'localhost.*.com' on every domain I own 
to facilitate HTTPS testing :D

On Monday, May 20, 2013 8:22:48 AM UTC-7, Forrest L Norvell wrote:

 Hey James,

 I've never gotten cert stuff to work properly with localhost as the host 
 name. Try generating your certificate for lvh.me (*.lvh.me resolve to 
 127.0.0.1 -- super handy) and requesting from same, and that should fix it.

 F

 On Monday, May 20, 2013, James Coglan wrote:

 Hi there,

 I have various test suites that use self-signed certs to test HTTPS/TLS 
 stuff. I'm trying to use the 'ca' option of the tls and https clients to 
 make them trust my certs, rather than forgoing validation at all, since I 
 would rather give my projects APIs for adding CAs than for disabling 
 validation.

 However when I pass my server certificate in the 'ca' option of an HTTPS 
 request I get this error:

 Error: Hostname/IP doesn't match certificate's altnames

 I followed these steps to generate the certificate: 
 http://www.akadia.com/services/ssh_test_certificate.html

 What does this error mean and how do I fix it?

 Here are some example scripts that demo the problem:


 // server.js

 var https = require('https'),
 fs= require('fs');

 var server = https.createServer({
   cert: fs.readFileSync('./server.crt'),
   key:  fs.readFileSync('./server.key')
 });

 server.on('request', function(request, response) {
   response.writeHead(200, {'Content-Type': 'text/plain'});
   response.end('Hello\n');
 });

 server.listen(8000);


 // client.js

 var https = require('https'),
 fs= require('fs');

 var request = https.request({
   method: 'GET',
   host:   'localhost',
   port:   8000,
   path:   '/',
   ca: [fs.readFileSync('./server.crt')]
 });

 request.on('error', function(error) {
   console.log('ERROR', error);
 });

 request.on('response', function(response) {
   console.log(response.statusCode);
 });


 -- 
 James Coglan
 http://jcoglan.com
 +44 (0) 7771512510 

 -- 
 -- 
 Job Board: http://jobs.nodejs.org/
 Posting guidelines: 
 https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
 You received this message because you are subscribed to the Google
 Groups nodejs group.
 To post to this group, send email to nodejs@googlegroups.com
 To unsubscribe from this group, send email to
 nodejs+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/nodejs?hl=en?hl=en
  
 --- 
 You received this message because you are subscribed to the Google Groups 
 nodejs group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to nodejs+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.
  
  



-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [nodejs] Keep Calm and Node On

2013-03-06 Thread Evan
Awesome! Thanks for this.

On Wednesday, March 6, 2013 1:38:42 PM UTC-8, Arunoda Susiripala wrote:

 Awesome, we've completed the goal. Now T-Shirt is real. Good Job guys :)

 On Thu, Mar 7, 2013 at 1:01 AM, Herman Junge h...@neosource.cljavascript:
  wrote:

 :-) Cool, only 17 left ATM

 http://teespring.com/keep-**calm-and-node-onhttp://teespring.com/keep-calm-and-node-on


 On 3/6/13 4:20 PM, jerome wrote:

 Done.

 Nice to be able to support the cause.

  
 -- 
 -- 
 Job Board: http://jobs.nodejs.org/
 Posting guidelines: https://github.com/joyent/**node/wiki/Mailing-List-**
 Posting-Guidelineshttps://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
 You received this message because you are subscribed to the Google
 Groups nodejs group.
 To post to this group, send email to nod...@googlegroups.comjavascript:
 To unsubscribe from this group, send email to
 nodejs+un...@**googlegroups.com javascript:
 For more options, visit this group at
 http://groups.google.com/**group/nodejs?hl=en?hl=enhttp://groups.google.com/group/nodejs?hl=en?hl=en

 --- You received this message because you are subscribed to the Google 
 Groups nodejs group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to nodejs+un...@**googlegroups.com javascript:.
 For more options, visit 
 https://groups.google.com/**groups/opt_outhttps://groups.google.com/groups/opt_out
 .





 -- 
 Arunoda Susiripala

 @arunoda http://twitter.com/arunoda
 http://gplus.to/arunodahttps://github.com/arunoda
 http://www.linkedin.com/in/arunoda


-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[nodejs] Re: core dump analysis debugging

2013-01-31 Thread Evan
Slightly off topic, but I've been debugging some memory leaks in a node 
app, and after trying out quite a few heap and GC inspector packages, I've 
fallen in love with https://github.com/c4milo/node-webkit-agent.  It's a 
one-liner require that lets you use chrome's built-in JS debugger for 
memory and CPU consumption... and it it works for node 0.8.x!

On Thursday, January 31, 2013 3:39:58 PM UTC-8, Dan Milon wrote:


 I was wondering if it is possible to use a core dump from a node 
 process running on linux as a post mortem debugging mechanism. 

 Would smartos' MDB understand a core dump coming from a linux machine? 

 Thanks, 
 danmilon. 


-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
nodejs group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[nodejs] Re: multiplayer game: scaling lots of gamerooms

2013-01-08 Thread Evan
I've been working on a little node server framework that was started for a 
similar problem: http://actionherojs.com  actionHero uses socket.io 
for websocket clients, but also extends the chatroom metaphor for TCP/TLS 
and even HTTP/S clients as well.  It supports cluster and multiple servers 
(via redis pub/sub) so you can grow to more hosts if needed.

On Tuesday, January 8, 2013 7:40:55 AM UTC-8, DerDree wrote:

 I'm programming a multiplayer game using node.js and socket.Io and during 
 that work I got some questions and thoughts concerning performance.

 At the moment only one gameroom can be opened and the socketio server does 
 forward basic messages like direction changes of players to the other 
 connected clients and computes some basic game logic.
 Altough this works great at the moment I have some concerns how to realise 
 this with a lot of gamerooms or servers like in other multiplayer games 
 where you have a server browser with a list of different servers. As a 
 simple aproach I would implement this with different rooms in 
 socket.iosending messages only to sockets in the same game. But then still 
 all 
 messages are processed by only one socket.io server. I think latency 
 would suffer at some point between clients. For example if you have 
 something like this:

 GameRoom1
 Client1
 Client2
 GameRoom2
 Client3
 Client4
 ...

 .. then latency between Client1 and Client2 would be important, but 
 latency between Client1 and Client3 wouldnt be that important because they 
 dont need to message each other.

 My thought would be to open multiple socketio instances for each fixed 
 number of open gamerooms. But I dont know if this is effective and how to 
 direct the clients to the right instance. Also I dont know if latency would 
 really be better because it would be still the same machine only with 
 multiple instances.

 Another thought of mine would be to let one client be a server as a host 
 like in other games and only register the server at a master server for the 
 serverlist. But I havent found any realisation for this and dont think this 
 is possible with socket.io.

 Surely you could make something like dedicated servers so that everyone 
 opens his own socket.io server for the game, but I want that everyone on 
 the website can open a new game with just a click. Also i wouldnt know how 
 to secure others dont alter the socket.io server with some unsecure stuff.

 So I would like to know if there is any effective solution or some ideas 
 or sources for this problem.

 Thanks in advance.


-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


[nodejs] Re: PaaS that allows node.js to use non-http ports?

2012-11-07 Thread Evan
I've been looking for a PaaS provider with the same requirements as well, 
and haven't had much luck.  I've tried appFog, Heroku, no.de (when 
it existed), and Nodejitsu and they all limit you to 1 (randomly assigned) 
http/s port.

However, it's very easy to get node running on a vanilla Joyent or AWS 
instance these days, and you can have all the ports you want.  I'm 
currently doing this, and it's really not that hard to manage.  

@Tomasz - can you talk more about your experiences using Azure?  

On Tuesday, November 6, 2012 9:34:06 PM UTC-8, Tomasz Janczuk wrote:

 You can listen on a TCP port to process arbitrary (non-HTTP) traffic using 
 WIndows Azure Cloud Services. There are two varieties: Web Role and Worker 
 Role. You need Worker Role. You can set up several instances and have 
 Windows Azure load balance traffic between them. Check out the tutorial at 
 https://www.windowsazure.com/en-us/develop/nodejs/tutorials/getting-started/
 .

 On Tuesday, November 6, 2012 12:50:32 AM UTC-8, paul_tanner wrote:

 Hi, 

 We have developed a webserivce built in node that susbcribes to TCP 
 sockets to get realtime input. 

 Having got excited about switching from dedicated severs to PaaS I 
 seem to have hit a brick wall in that non-http ports are not yet 
 supported on those I've looked at. 

 This is a shame because quite a large class of apps are ruled out 
 while this restriction remains. 

 I hear that websockets will be supported real soon now.  This is 
 goodness but not enough for the above requirement. 

 Have I missed anything or will I need to be super-patient on this? 

 Regards, Paul 



-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


[nodejs] Re: HA / failover support

2012-10-05 Thread Evan
HARedis looks awesome!   

On Friday, October 5, 2012 12:12:15 PM UTC-7, carlos8f wrote:

 A downed server can't communicate, so it's impossible to transfer its 
 state at that point. Thus it's better to have the servers check in with the 
 global state frequently (i.e., redis) to prevent data/state loss.

 Then what happens when redis master goes down? My solution is to implement 
 high-availability on the redis client level, which enables redis slaves to 
 take over for a downed redis master: https://github.com/carlos8f/haredis

 I also developed a suite of modules called Amino (using haredis) which 
 make it easy to create a failover-enabled cluster of node processes: 
 https://github.com/amino/amino With this you don't need the core cluster 
 module. You can have node processes across any number of physical servers, 
 when node processes start up they are automatically added to the service 
 pool, and removed when processes exit / become unavailable. The only 
 configuration each process needs is a list of redis servers to use for 
 global state (master is detected automatically by haredis).

 good luck :)

 On Thursday, September 20, 2012 6:15:39 AM UTC-7, Dave Horton wrote:

 Are there any features in node relating to high availability or failover 
 of a server?  I would like to be able to run a cluster of node servers 
 (either physical or virtual) such that if any one dies the others will take 
 over processing, including maintaining the state of running applications on 
 the downed server.  In the simplest case, two servers share a virtual IP 
 and if one fails the other takes over the IP and my node applications keep 
 running on the other server.  Anything like this exist, or in the works? 
  Or is there alternative best practice on achieving this type of 
 reliability?  Does v8 have any features to migrate a running execution 
 context between servers?



-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


Re: [nodejs] Re: How to properly coordinate a sole task between multiple processes on many servers

2012-10-05 Thread Evan
You are basically proposing the schema for DelayedJobs (Ruby) [ 
https://github.com/collectiveidea/delayed_job ].  This kind of thing gets 
really weird in eventually consistant databases, but Mongo (like mySQL) is 
always consistant so you should be OK.  However, a lot of folks have been 
finding some locking problems with this approach (multiple job execution or 
really aggressive table locking is needed), so most folks tend to use a 
store which can support atomic push and pop operations  so you can 
ensure that one and only one worker gets the job.  Redis is the most 
popular of these types of stores these day.  I make use of that property 
in http://actionherojs.com/ for exactly this purpose, as does the very 
popular https://github.com/defunkt/resque and some other projects.  

On Friday, October 5, 2012 12:32:39 PM UTC-7, Mark Hahn wrote:

 I may be crazy but I'm implementing a scheme where processes get the tasks 
 from a db record and then stores their process number in that record.  Then 
 while they are running they periodically check to make sure that their 
 server number is still the one in the record.  If another process has 
 'stolen' the task then the process aborts and looks for another one to do.

 This is the only way I could figure out how to do task assignment when 
 faced with a db that only has eventual consistency.  The CouchDB i'm 
 using offers no atomic operations so this was the only reliable way to do 
 it.

 It works quite well.  In the usual case it just grabs the task, does it, 
 and moves on.  Collisions are rare, but they may be more frequent as the 
 cluster grows in size.


 On Fri, Oct 5, 2012 at 9:21 AM, Dan Milon danm...@gmail.com javascript:
  wrote:

 greelkorke ment using a job queue where jobs are put, and handed to 
 workers.

 If you want to do it only with mongo, you'll need to use some lock 
 document, that is set and unset by the first process which tries to 
 initiate a task. All other processes which try to grab the lock while its 
 held by another process should assume that the job is being worked by 
 another process. But thats really ugly  has problems because jobs cant be 
 acknowledged, so if a process crashes while its performing some task, 
 you're fucked.
  
 On Fri, Oct 5, 2012 at 5:07 PM, Tom tomm...@gmail.com javascript:wrote:

 Unfortunately I'm afraid that I don't see how a scheduler can avoid the 
 concurrency problems. Note that the advantages (e.g. in availability) of 
 having a cluster should be maintained here, and so you cannot run a 
 scheduler in a separate process on a single server. If every server would 
 be running the scheduler, the same concurrency problems would arise. What 
 were you proposing?

 About the initialization, I guess that would work. It is not the way I 
 would prefer to do it, as I would like the application to be 
 self-controlled and usable without running special tools, but I reckon it 
 is an acceptable approach.

 Tom

 Op vrijdag 5 oktober 2012 19:59:33 UTC+7 schreef greelgorke het volgende:

 i wouldn't do it that way. when deploying your app just do a pre-start 
 script, that ensures the existence of your desired data. 
 If you have periodical tasks, it's best to use a lib for it, that 
 triggers jobs appart of your main application. i.E 
 http://stackoverflow.com/**questions/3785736/is-there-a-**
 job-scheduler-library-for-**node-jshttp://stackoverflow.com/questions/3785736/is-there-a-job-scheduler-library-for-node-js,
  so you just avoid the concurrency problems. 

 Am Freitag, 5. Oktober 2012 14:04:58 UTC+2 schrieb Tom:

 I've setup a cluster of physical servers. Each server runs exactly the 
 same code. Moreover, each server runs multiple node processes using 
 the build in cluster functionality.

 I use MongoDB (native) to share information between processes and 
 servers. However, I am having some difficulty with running a special task 
 that needs to be executed only once during initialization:
  if a special `admin` account does not yet exist in the database, it 
 should be created

 Originally I figured that I could read from the MongoDB master server 
 on each node and check if the admin account already exists. If it does 
 not 
 then another node has not yet created it, so this node should do so. 
 However this is problematic because creating an admin password hash is 
 asynchronous and takes time. Therefore there is a delay between when a 
 node 
 decides to create the account and when the account is being found by 
 other 
 nodes when querying the database.

 The code snippet that reads from the Mongo master only and creates the 
 account is available here: 
 https://gist.github.com/**3839429https://gist.github.com/3839429

 In the future I would also like a special task to be executed every 5 
 minutes. This task must then only be executed by a running server, and 
 not 
 by all servers.

 In short: when running a cluster of servers, how do you coordinate 
 between these servers which of 

Re: [nodejs] Domains and GC

2012-09-27 Thread Evan
Awesome!

It's nice to have a consistent interface.

Thanks! 

On Thursday, September 27, 2012 6:04:43 AM UTC-7, Ben Noordhuis wrote:

 On Thu, Sep 27, 2012 at 7:58 AM, Evan evant...@gmail.com javascript: 
 wrote: 
  A rather esoteric question: 
  
  Say I was following the example under explicit binding described in 
 the 
  domain api page [[ http://nodejs.org/api/domain.html ]].  This is a 
 great 
  real-world-ish example which shows how you might use domains in an HTTP 
  server to catch connection-specific errors  and not take down your 
 server in 
  the process. 
  
  If you weren't to call localDomain.dispose() ( reqd.dispose() in the 
 example 
  ) directly at the end of the connection closure, would Node's GC 
 eventually 
  come around and remove of the domain? 

 Yes, provided there are no more outside references to the request or 
 domain object. That requirement is not specific to domains, of course. 

  Would the act of garbage collection also call .dispose on the domain 
 object, 
  or would it (and anyobjectscontained within) just be removed? 

 The latter, the objects simply get collected. 


-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


[nodejs] Domains and GC

2012-09-26 Thread Evan
A rather esoteric question:

Say I was following the example under explicit binding described in the 
domain api page [[ http://nodejs.org/api/domain.html ]].  This is a great 
real-world-ish example which shows how you might use domains in an HTTP 
server to catch connection-specific errors  and not take down your server 
in the process.

If you weren't to call localDomain.dispose() ( reqd.dispose() in the 
example ) directly at the end of the connection closure, would Node's GC 
eventually come around and remove of the domain?  Would the act of garbage 
collection also call .dispose on the domain object, or would it (and 
anyobjectscontained within) just be removed?

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


Re: [nodejs] HA / failover support

2012-09-20 Thread Evan
I wrote a blog post related to this a few weeks ago exploring what can be 
done from a deployment  uptime POV regarding node [[ 
http://blog.evantahler.com/production-deployment-with-node-js-clusters ]] 

In a nutshell, you can use the native cluster module to manage a number of 
workers which handle the processing of requests, can be started/stopped as 
needed, and can be re-spawned when they die.  You can also do 0 down-time 
deployments by rolling over your workers as there is new code to load in. 
 Cluster workers can share ports and open sockets, and requests will be 
shared between them.

The problem of storing state between failures/deployments is not really a 
node issue, but if you write to a persistant store (DB, disk, ect), you 
should be able to recover in the normal way.  Another fun addition node 
adds is that there is a message passing interface within the cluster module 
between master and slaves, so you might also investigate keeping a replica 
of any important data in the master's memory space to seed new children 
with.  You might want to look more into this if the state data moves too 
fast for redis or a database.  

On Thursday, September 20, 2012 7:59:31 AM UTC-7, theCole wrote:

 I have not seen anything like this currently. Would you also want all of 
 the information from the failed server to fail over as well?

 On Thu, Sep 20, 2012 at 9:15 AM, Dave Horton da...@dchorton.comjavascript:
  wrote:

 Are there any features in node relating to high availability or failover 
 of a server?  I would like to be able to run a cluster of node servers 
 (either physical or virtual) such that if any one dies the others will take 
 over processing, including maintaining the state of running applications on 
 the downed server.  In the simplest case, two servers share a virtual IP 
 and if one fails the other takes over the IP and my node applications keep 
 running on the other server.  Anything like this exist, or in the works? 
  Or is there alternative best practice on achieving this type of 
 reliability?  Does v8 have any features to migrate a running execution 
 context between servers?

 -- 
 Job Board: http://jobs.nodejs.org/
 Posting guidelines: 
 https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
 You received this message because you are subscribed to the Google
 Groups nodejs group.
 To post to this group, send email to nod...@googlegroups.comjavascript:
 To unsubscribe from this group, send email to
 nodejs+un...@googlegroups.com javascript:
 For more options, visit this group at
 http://groups.google.com/group/nodejs?hl=en?hl=en




-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


Re: [nodejs] Node.js on embedded platform

2012-09-17 Thread Evan
I once got node v4 compiled and running on an ARMv4 chipset [ docs 
here: https://gist.github.com/1574158 ] and I learned that:

- I couldn't compile node on the device itself (not enough ram, and it 
would have taken days with the onboard CPU).  Cross compiling was necessary 
- Node itself took about ~10mb to start, depending on how complex your 
application is
- I needed to mount a USB drive as swap space because to handle spikes
- The networking hardware on my board was kind of flaky, and I 
would receive some 'socket has gone away' messages (not exactly the error), 
so I needed some retry statements on my server

However, once I had all this sorted out, node ran great for a number of 
months

On Monday, September 17, 2012 8:28:28 PM UTC-7, Tim Caswell wrote:

 Yes, you can most likely get node on there but there won't be much left at 
 all.  I created a lua version of node for exactly cases like this at 
 luvit.io.  It's an order of magnitude more efficient on both ram and disk 
 space with comparable performance and semantics, but at the cost of a much 
 less mature platform. 
 On Sep 17, 2012 2:48 AM, Ben Noordhuis in...@bnoordhuis.nljavascript: 
 wrote:

 On Mon, Sep 17, 2012 at 7:56 AM, Shiplu shipl...@gmail.com javascript: 
 wrote:
  I am creating a chat application which will run on embedded device. It
  has only 8MB flash memory and 16Mb RAM. Processor is ARM6.
  Is it possible to run nodejs application there? The application will
  be Ajax based heavy RIA application. It'll be heavy on client side.
  But not on server side.
  I googled many times but didn't find any clue about it. I am aware V8
  can be compiled in to ARM. Not sure if its support all the ARM
  processors. To run node I must have V8 compiled and then node js
  should be compiled too.
 
  If anyone has experience on this please share how its done and what
  are the common issues.

 You can compile node.js and V8 for ARMv6 (the binary will actually be
 ARMv5 compatible) but 16 MB is probably not enough to do anything
 useful.

 --
 Job Board: http://jobs.nodejs.org/
 Posting guidelines: 
 https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
 You received this message because you are subscribed to the Google
 Groups nodejs group.
 To post to this group, send email to nod...@googlegroups.comjavascript:
 To unsubscribe from this group, send email to
 nodejs+un...@googlegroups.com javascript:
 For more options, visit this group at
 http://groups.google.com/group/nodejs?hl=en?hl=en



-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


[nodejs] Re: Node and Nginx

2012-09-09 Thread Evan
When you set up your server, you tell it what to listen to.  You can choose 
a socket or a port:

server.listen('/tmp/echo.sock', function() {})


http://nodejs.org/api/net.html#net_net_createserver_options_connectionlistener

On Sunday, September 9, 2012 5:33:23 PM UTC-7, Gerald Klein wrote:

 Hi, I have recently started working node and I set up an example of nginx 
 running in front and passing off to node via a proxy as such:

 I found it to be slower then just node, I set up node using the cluster 
 module and I have 4 cores. The only thing I think would improve right away 
 is changing the url reference to a socket.

 How would I code node do use a socket for it's part? 


 thanks for any help

 location / { 
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host $http_host;
   proxy_set_header X-NginX-Proxy true;

   proxy_pass http://127.0.0.1:3000/;
   proxy_redirect off;
 }   

 --jerry
  

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


Re: [nodejs] Re: actionHero Version 3: Websockets and more!

2012-08-06 Thread Evan Tahler
Thanks Jeff- 

The main goal of the project can be said to create an api (not website) 
framework which is appropriate for many types of clients (tcp, http, etc).  
While able to server up static sites/assets, the main focus is on the API 
layer.  To help make this easier, the framework has cluster features and 
delayed-processing features added in. 

I think that you are correct, and my use of the word 'polygon' might be 
confusing.  I meant it to mean 'able to work with many languages/syntaxes' not 
that it can run other languages.  This is a node.js/javascript API.   

Thanks again!  


On Friday, August 3, 2012 at 11:29 AM, Jeff Barczewski wrote:

 Evan, 
 
 Could you explain more simply what the goals of your project is?
 
 I read the description:
 
  actionHero is a node.js API framework for both tcp sockets, web sockets, 
  and http clients. The goals of actionHero are to create an easy-to-use 
  toolkit for making reusable, scalable, and polygot APIs. actionHero 
  provides cluster support, shared cache, integrated delayed processing, and 
  more.
 
 So for someone unfamiliar with your project, does this project try to make it 
 easier to deal with tcp sockets, web sockets, and http clients in a 
 consistent way? Is that the main emphasis for the project (create actions 
 that can be executed from any of these delivery mechanisms)? 
 
 I do understand you are bundling in delayed processing, shared cache (from 
 Redis), so since those are bundled in, one doesn't have to figure out how to 
 integrate manually especially for dealing with a cluster.
 
 Traditionally I have seen 'polyglot' referring to different languages for 
 example a project using JS, C, java, for different parts of the application, 
 however for your project, it appears to only support JS currently. Does the 
 polyglot API's reference simply refer to the ability to listen via tcp 
 sockets, web sockets, and HTTP?
 
 
 Thanks in advance for any clarification. I just wanted to make sure I 
 understood what the project is focussed on.
 
 All the best,
 
 Jeff 
 
 -- 
 Job Board: http://jobs.nodejs.org/
 Posting guidelines: 
 https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
 You received this message because you are subscribed to the Google
 Groups nodejs group.
 To post to this group, send email to nodejs@googlegroups.com 
 (mailto:nodejs@googlegroups.com)
 To unsubscribe from this group, send email to
 nodejs+unsubscr...@googlegroups.com 
 (mailto:nodejs+unsubscr...@googlegroups.com)
 For more options, visit this group at
 http://groups.google.com/group/nodejs?hl=en?hl=en

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


[nodejs] actionHero Version 3: Websockets and more!

2012-08-02 Thread Evan
 

Hello Node.js Community - 

I want to announce the release of actionHero version 3.  This release adds 
web socket support as a first-class protocol (via socket.io) as well as 
improvements to the task system.  actionHero is an API framework which 
makes is possible to serve up http(s), webcocket, and direct TCP clients. 
 It features clustering and message passing (based on redis), 'chat room' 
logic, and a built-in delayed-job processing engine.

Check it out here [[ http://actionherojs.com/ ]]. I always welcome 
feedback! 

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


[nodejs] Re: Is anyone sending Apple push notifications (APNS) with node to iOS devices (iPhone/iPad)?

2012-06-25 Thread Evan
Yep, node-apn is working for me as well.  It's a bit of a bother to get the 
keys setup right, but I found this guide on the push 
ecosystem enlightening 
http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

On Monday, June 25, 2012 6:02:02 PM UTC-7, Ric wrote:

 Hello mates!

 Just trying to make a game similar in architecture to Draw Something using 
 node for the backend.
 Does anyone have experience sending push notifications using node?
 It seems there is an open source library:
 https://github.com/argon/node-apn
 And the hard way:

 http://bravenewmethod.wordpress.com/2010/12/09/apple-push-notifications-with-node-js/

 Did anyone use that library? What do you think about it?
 How do you send push notifications to Apple servers using node?
 Any suggestion, feedback, idea is welcome.

 Thanks in advance.


-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


Re: [nodejs] - Github Followers Thread

2012-06-14 Thread Evan
Sure, why not!
https://github.com/evantahler
https://github.com/evantahler/actionHero

On Friday, May 27, 2011 7:02:03 PM UTC-7, Marak Squires wrote:

 Hello Internet Friends -

 It's been a while since we did one of these so I thought I'd try it out. 

 Rules are simple: Post your Github Handle and I will follow it. Feel free 
 to follow other people's Github handles as you please. 

 Mine is: http://github.com/marak

 Let's go!


-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


[nodejs] Re: TCP and HTTP server together?

2012-05-02 Thread Evan
Applications like this are why I built http://actionherojs.com/
Let me know what you think! 

On Tuesday, May 1, 2012 9:05:58 PM UTC-7, ss9 wrote:

 I have a unique app I need to build: 

 1.  Gets a request from a browser 
 2.  Passes a call to a TCP server which sends a UUID to a 3rd party 
 3.  TCP server listens for streams from the 3rd party. 
 4.  TCP server filters the stream to send the UUID messages back to 
 the HTTP server 
 5.  HTTP server does something with the message. 

 I've had a few thoughts so far which include two different node 
 servers, one tcp and one http... or one server that does both, maybe 
 spawns child processes for the tcp part? 

 Any thoughts on the best way to go about this?

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


[nodejs] Re: Your thoughts wanted on a node AI project

2012-04-23 Thread Evan
That's great!

I am reminded of this blog [[ http://www.briangrinstead.com ]] which also 
has some neat AI algorithms written in JS.  He wrote them for the browser, 
but I can tell you his A* implementation 
[[ http://www.briangrinstead.com/blog/astar-search-algorithm-in-javascript 
]] works great in node :D

On Monday, April 23, 2012 10:50:25 AM UTC-7, denniskane wrote:

 The site is powered by an express server, which exec's a separate node AI 
 process for each new IP address.  Each process will automatically end after 
 10 minutes of inactivity.  You can interface with the process either 
 through a browser at ai.webcyte.net or by sending a URL encoded GET 
 request to http://ai.webcyte.net/send.  So, the comand line for the 
 phrase, there is a boy named joe using curl will look like:

 $ curl http://ai.webcyte.net/send/there%20is%20a%20boy%20named%20joe

 Detailed instructions can be found at ai.webcyte.net.

 This project is currently meant to be a prototype in order to build 
 interest in developing a robust AI system that just works (read: NOT 
 another chatterbot!).  It can possibly be used as the intelligent backend 
 to a Siri-like voice interface in the not too distant future.

 I am interested in getting in touch with academic/research types as well 
 as business types.

 Will probably want to develop an open source version for non-business 
 purposes that can be used on the client side (eventually) and keep the 
 supported commercial version well hidden from prying eyes on the server 
 side.

 Thoughts?


-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


[nodejs] Re: Node.js Clustering and interprocess communication

2012-03-12 Thread Evan
This is a very similar problem to what I've been fighting as well (also for 
a game).  
Personally, I didn't feel any of the packages I had found met my needs, so 
I created this: http://actionherojs.com/. 

I'm working on support for both pure-node distributed data and for a common 
task queue.  It's still pre V1, but I am always happy to have feedback.

On Friday, March 9, 2012 8:54:44 AM UTC-6, Murat T. wrote:

 Hi,

 I have been developing a game since last month and there are a couple of 
 things which bothers me.

 I am using socket.io, and storing all the data into redis. However, most 
 of my data is temporary and doesn't need to go into redis. If in case I 
 restart the node, those temporary information in redis must be deleted 
 anyway. The reason I am storing in redis is that I want to make sure it can 
 scale in the future. Current design allows that.

 However, I have been doing some small benchmarks and noticed that I won't 
 need to scale node to multiple machines. If I can have 8/16 cores in one 
 server, and fork workers using clustering mechanism, everything should be 
 more than enough. So, I want to eliminate redis and store everything in 
 javascript objects, which is fine for me, since I don't need to save any 
 state. (I have somethings to save and will still use redis for those cases, 
 but for most cases I don't need it)

 The main reason is that I read and write a lot of small data and I need to 
 write lots of code to do that, which I don't need if only I can use simple 
 javascript objects.

 If I eliminate redis, I will have some objects which may have more than 
 100.000 elements. I have been testing the performance of interprocess 
 communication, and it takes almost a second to send large objects between 
 children. (If I am not doing something wrong)

 So, is there any way to simplify the app or improve this performance? Do I 
 have to use a key value store for sharing large objects across other nodes. 
 I just want to have a couple of objects, read and write a lot of data and 
 share between processes.

 Thanks in advance,






-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


[nodejs] Re: node.js + socket.IO sending tcp/ip messages

2012-03-08 Thread Evan
 

Ahh! I would suggest you think about the flow of your application this way 
which might clear things up:


- User on website loads a page, something like 
/changeImage.html?newImage=picture1.jpg

- nodejs server receives request for /changeImage.html and parses the GET 
string to find the var newImage = picture1.jpg

- Before returning to the user (rendering the HTML response for 
changeImage.html), your server (not your html) runs a method to pass the 
TCP command to your sign ( sendSignMessage({image = picture1.jpg}, 
callback) ).  sendSignMessage would connect to the digital sign (or make 
use of a previously initialized connection) per [[ 
http://nodejs.org/api/net.html#net_net_connect_arguments ]]

- sendSignMessage() waits until it receives a response from the sign and 
passes that message on to the callback passed to it, which in turn should 
finally render out (with that response included) to the user on the website.


There are a few reasons for this type of architecture:

- While I haven't done much work with digital signs, I have interfaced with 
a lot of lighting control hardware, and those devices have trouble dealing 
with lots of connections.  Having your server maintain one connection which 
is a proxy for all of your web users is useful

- It's really hard (and often times impossible) to get javascript in the 
browser to connect to arbitrary ports

- It's also really hard (even with websocckets) to have javascript in the 
browser act as a raw TCP connection to send arbitrary messages to a server 
that isn't the same as the webserver (cross domain problems)

On Thursday, March 8, 2012 1:16:07 AM UTC-8, tomfish wrote:

 Yes I thought that Socket.IO would be a little overkill. I now know I 
 need to use regular sockets. But I can't seem to get this working. 
 I believe I need to make an html file that sends commands to my tcp 
 server? There is now way I can make my index.html interact with my 
 server. 

 Kind regards, 
 Tom 


 On 8 mrt, 08:11, Evan evantah...@gmail.com wrote: 
  Socket.io while awesome, might be a little overkill here.  It sounds 
 like 
  you just need to connect to a port on a remote machine and sent some 
  commands.  You can start up your connection like this 
  [[http://nodejs.org/api/net.html#net_net_connect_arguments]] and then 
 use 
  the client.write() method to send your string to the remote server. 
  
  
  
  
  
  
  
  On Wednesday, March 7, 2012 5:54:43 AM UTC-8, tomfish wrote: 
  
   Hello, 
  
   I would like to send a command from a (local) website to a computer in 
 the 
   same network on a specific port. This port is in use by digital 
 signage 
   software. When the software receives this command, it changes the 
 image. 
   Can anyone help me with this? node.js and socket.IO are already 
 installed, 
   but I can't seem to find the right coding. 
  
   Thanks in advance, 
  
   Tom

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


[nodejs] Re: node.js + socket.IO sending tcp/ip messages

2012-03-07 Thread Evan
Socket.io while awesome, might be a little overkill here.  It sounds like 
you just need to connect to a port on a remote machine and sent some 
commands.  You can start up your connection like this 
[[ http://nodejs.org/api/net.html#net_net_connect_arguments ]] and then use 
the client.write() method to send your string to the remote server.

On Wednesday, March 7, 2012 5:54:43 AM UTC-8, tomfish wrote:

 Hello,

 I would like to send a command from a (local) website to a computer in the 
 same network on a specific port. This port is in use by digital signage 
 software. When the software receives this command, it changes the image. 
 Can anyone help me with this? node.js and socket.IO are already installed, 
 but I can't seem to find the right coding.

 Thanks in advance,

 Tom


-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


[nodejs] actionHero: API Framework for HTTP and direct TCP clients

2012-02-28 Thread Evan
Hi node.js community:

I have been working on the actionHero API [[ http://actionherojs.com/
]] and [[ npm install actionhero ]] , which is an API framework which
allows clients to connect either via HTTP or direct TCP.  It features
reusable actions which will handle client requests from both types of
connections.  The framework also has:
- chat-room style messaging
- internal tasks (single or multi node scope)
- internal cache (query-able between nodes)
- cluster-aware message passing
- flat-file server

I created the API to use in the development of game servers (where
clients of both HTTP and TCP will be playing), but I'll bet there are
a number of other use cases out there.  I would love to hear your
feedback.


Thanks!

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups nodejs group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en