[00:00] unomi has joined the channel [00:00] unomi: Hi [00:11] sechrist has joined the channel [00:13] creationix has joined the channel [00:18] pjb3 has joined the channel [00:18] maushu: ezmobius, I checked their page. [00:18] maushu: Is this somekind of error? 48GB DDR3 ECC RAM on Jumbo. [00:18] ezmobius: whos page? [00:19] ezmobius: nope [00:19] maushu: ...how did it jump from 4gb to 48gb? [00:19] ezmobius: 48gigs of ram for $0.60/hour [00:19] ezmobius: it used to be 8 gigs for 38 cents [00:19] ezmobius: i convinced him to go to 48 gigs for 60 cents hour [00:19] ezmobius: i got a whole dell chassis with 16 blades in it for my sekret project [00:20] ezmobius: no one can touch their prices [00:20] ezmobius: and their api works great [00:20] ezmobius: plus they will have an data center in LA within 4 months [00:20] ezmobius: and then one in france [00:20] ezmobius: plus each server includes 2TB of bandwidth each month for free [00:20] ezmobius: so they end up being way way cheaper then aws [00:21] maushu: No offense but I wouldn't trust an hosting much if they don't know how to use repeat-x on their background. [00:21] maushu: :3 [00:21] ezmobius: their website sucks [00:21] ezmobius: but ive met them in person and seen their data center [00:21] ezmobius: they are in nap of the americas, same dc as terremark in miami [00:21] maushu: Ah, shame. [00:21] maushu: I'm on linode. [00:21] ezmobius: they have killer automation system is why they are going to win [00:21] mikeal has joined the channel [00:21] maushu: They aren't dedicated but they have servers on london. [00:22] maushu: automation? [00:22] maushu: Like this http://www.linode.com/api/ ? [00:22] ezmobius: yeah they have api but you get raw hardware servers instead of virtual servers [00:22] ezmobius: so there i no compaprison [00:22] maushu: Or this http://articles.slicehost.com/api ? [00:23] ezmobius: then you can put xen or openvz or vmware or whatever you want on the raw hardware [00:23] maushu: Well, depends on what you want. [00:23] ezmobius: more like amazon WS api [00:23] ezmobius: but for raw hardware that is not virtualized [00:23] ezmobius: thats the key [00:23] ezmobius: you get dedicated non virtualized servers in 2 minutes after yoyu call the api [00:24] ezmobius: you coudl build linode or slicehost on top of newservers and still make money [00:25] maushu: Hmm. [00:26] ezmobius: plus each server includes 2TB of bandwidth per month. AWS includes none and 2TB costs $350 [00:26] ezmobius: linode and sliceshost give you a little bit of bandwidth but not much [00:27] maushu: Linode also gives 2tb on their 5k servers. [00:27] softdrink has joined the channel [00:27] ezmobius: but can you rent them by the hour? or do you have to commit to a mont? [00:27] maushu: They prorate it by day. [00:27] ezmobius: do they also have hardware load balancers and hardware firewalls on an API? [00:27] maushu: Thats all internal. [00:27] ezmobius: or ISCSI attached storage of up to 50TB [00:28] ezmobius: thin provisioned [00:28] ezmobius: just saying. newservers.com is one to watch [00:28] maushu: All that work. [00:28] ezmobius: they are doing it right [00:28] maushu: Doing it right doesn't mean getting success. [00:28] maushu: Unfortunately. [00:29] maushu: If that were true, the likes of Microsoft and Apple wouldn't exist. [00:29] mscdex: app pull [00:29] ezmobius: i'm pretty familiar with the hosting game. and newservers.com has done somethigns very right and i think they will be a big success [00:31] joshthecoder has joined the channel [00:35] mikeal: ok ryah, new patch sent [00:36] ryah: mikeal: ok [00:50] JimBastard has joined the channel [00:51] kodisha has joined the channel [00:53] JimBastard: hey mikeal , which package do you recommend for connecting node to couch? [00:54] ryah: mikeal: i found some problems and corrected them [00:54] ryah: mikeal: can yuo checkout http://gist.github.com/417930 [00:55] ryah: okay. heading home. bbl [00:58] JimBastard: im considering using cloudhead's http://github.com/cloudhead/cradle [01:00] JimBastard: anyone else doing couch stuff right now with node? [01:01] mjr_: I just talk to the HTTP interface. [01:01] JimBastard: yeah totally [01:02] JimBastard: im assuming someone has made a simple wrapper for that and nodes http client? [01:03] mjr_: yeah, I think felixge has one that a lot of people use [01:04] __ry_phone has joined the channel [01:04] mikeal: ryah: the test doesn't have a timeout anymore [01:04] mikeal: that's the only issue i see [01:04] mjr_: Here you can see an ugly visualization of pcap in node: http://db.ranney.com/ [01:04] mjr_: Probably only works in Chrome or Webkit nightly. [01:05] halorgium: mjr_: is that exposing libpcap into node? [01:05] [[zz]] has joined the channel [01:05] mjr_: And the timestamps are getting rounded on Linux for some reason. [01:05] mjr_: On OSX the timestamps are very accurent. [01:05] mjr_: accurate [01:05] halorgium: hrmm, don't see timestamps [01:06] mjr_: The "RTT" number is your round trip time as the file is downloaded [01:06] halorgium: oh, times :) [01:06] mjr_: So when you click the button, it fires off an XHR that downloads a 1MB file. Then pcap tracks the packets flowing around and computes the performance. [01:07] mscdex: RTT = Rampant Terrestrial Turret [01:08] mscdex: :P [01:08] mjr_: Then you can also see how much of your bandwidth is consumed by TCP headers. [01:08] _ry_phone has joined the channel [01:08] mscdex: I spy an android. [01:09] mscdex: oops lol [01:09] mjr_: I guess I need to get rid of the ES5-isms so I can run it on the iphone. [01:09] mjr_: and then do an iPhone / Android download contest. [01:10] mscdex: we need node.js for rooted android devices! [01:10] mscdex: :D [01:11] Tim_Smart has joined the channel [01:11] deanlandolt: mscdex: you can use rhino all you want :D [01:11] tlrobinson has joined the channel [01:11] mscdex: me no want a rhino [01:11] mjr_: man, iphone sucks as moving data over the network. [01:11] mscdex: sounds too dangerous [01:11] mjr_: Slow, slow, slow. [01:12] deanlandolt: what? rhino? it can be, and it can also be pretty damn fast [01:12] deanlandolt: it's a freakin' cell phone...what are you worried about?! [01:12] mscdex: i think he meant the iphoney :P [01:12] deanlandolt: ah, yes [01:12] _ry_phone: I wish I could connec@t to my existing connection [01:12] mscdex: rdp ;-) [01:13] mscdex: or vnc [01:13] deanlandolt: _ry_phone: you're really loving this /smartphone/ thing :D [01:13] mape: _ry_phone: you can if you are using irssi [01:14] __ry_phone has joined the channel [01:21] __ry_phone: Dean, yeah its great [01:23] isaacs_mobile has joined the channel [01:30] halorgium: __ry_phone: write a irc bouncer in node ;) [01:31] sechrist has joined the channel [01:33] __ry_phone: YeaH that's what I was thinking about [01:33] deanlandolt: __ry_phone: any luck getting op privs from freenode? [01:35] pjb3 has joined the channel [01:35] __ry_phone: No [01:36] halorgium: __ry_phone: we've been trying to get ops on a channel for months ;) [01:36] halorgium: did you start a group registration? [01:36] deanlandolt: luckily things are nice and civil 'round these parts...but at some point we'll have to get loud and lobby [01:37] JimBastard: loud and lobby sup? [01:37] deanlandolt: heh...you were the first person i thought of...if anyone can get freenodes attention [01:38] indexzero has joined the channel [01:38] JimBastard: if anyone starts causing ruckus in here ill give them the iron fist [01:38] JimBastard: like indexzero [01:38] indexzero: anyone really familar with the ChildProcess.spawn apis [01:38] JimBastard: heh...you were the first person i thought of...if anyone can get freenodes attention #bastardfacts [01:39] deanlandolt: is there a hook.io feed on bastardfacts? [01:39] deanlandolt: is there a newsletter i could subscribe to, perchance? [01:39] JimBastard: AHAHA [01:40] JimBastard: im intrigued by your ideas and would like to subscribe to your newsletter [01:40] JimBastard: when you spawn a child process does it not actually execute until you add a listener to it? [01:40] halorgium: JimBastard: /api is 502'ing [01:40] JimBastard: cool [01:41] JimBastard: lol [01:41] JimBastard: i dont want people making hooks [01:41] JimBastard: at least not today [01:41] halorgium: JimBastard: are you forcing me to setup my own!!? [01:41] JimBastard: id be very down to collaborate [01:41] JimBastard: im working right now with indexzero on broodmother [01:41] JimBastard: we need to be able to host hook.io you know [01:42] JimBastard: how you gonna pub / sub with one instance of the app >.< [01:42] JimBastard: i wanna spawn 100 hook.io's [01:42] deanlandolt: JimBastard: well that would be easy if node ran on windows [01:42] JimBastard: lulzcopter [01:46] JimBastard: but yeah, im dedicated to getting hook.io working. id be totally down to collab with anyone on it [01:50] ryah: halorgium: yeah i started a group registartion [01:51] JimBastard: ohh ohh do i get to be an oper? ill be gentle with the banhammer [01:51] JimBastard: ACTION grins devilishly  [01:51] mape: punish the guilty [02:04] charlesjolley has joined the channel [02:05] mscdex: ahh i love html tidy [02:05] mscdex: now i can scrape any page using it and libxmljs :D [02:06] JimBastard: word? [02:07] JimBastard: are you doing single scrapes or are you trying to do a bunch? [02:07] JimBastard: mscdex [02:07] isaacs has joined the channel [02:08] mscdex: well i'm not using it for scraping at the moment, it's just a little utility thing i started working on when mape was scraping some site [02:09] mscdex: xpath ftw [02:10] kodisha_ has joined the channel [02:10] JimBastard: xppppaaaaaathhhhhhh [02:10] JimBastard: >.< [02:11] mscdex: heh [02:11] JimBastard: xpath and xquery can sucks my balls. #bastardfacts [02:11] mscdex: i only use xpath, not xquery [02:12] sudoer has joined the channel [02:12] mscdex: i think it works pretty well for some quick and easy scraping [02:12] mscdex: if you don't want to depend on a dom and html parser [02:13] halorgium: JimBastard: you are sending those facts someplace right? [02:13] JimBastard: to the ether [02:13] Kiba has joined the channel [02:13] Kiba: anybody using node-couchdb? [02:13] JimBastard: everything comes back around ;-) [02:13] halorgium: ACTION spews on JimBastard  [02:14] Kiba: http://gist.github.com/417963 [02:14] Kiba: I am trying to save a doc [02:14] Kiba: but I got a document update conflict [02:15] halorgium: Kiba: are you sending the version of the doc when you update? [02:15] fictorial: ryah: ezmobius: yes, the redis client uses Buffers not Strings. binary safety dance. [02:15] halorgium: if you don't couch will think you are trying to create a new doc [02:16] fictorial: ezmobius: (reading scrollback). I was in love with NewServers a while back. I brought it up on HackerNews too. [02:16] fictorial: ACTION finds link [02:16] fictorial: http://news.ycombinator.com/item?id=1032539 [02:17] Kiba: halorgium: no, I am not sending rev [02:17] fictorial: when I tried to use them they didn't have any servers left! and being in Miami is a little scary. I know they have hi tech slanted roofs and concrete walls to fend off hurricanes. [02:17] Kiba: but I don't understand how to send a document rev [02:17] halorgium: Kiba: _rev ? [02:17] Kiba: yes [02:17] halorgium: add that to the json [02:17] Kiba: but saveDoc method has only room for ID [02:18] Kiba: err ID and doc [02:18] halorgium: Kiba: it lives inside the document [02:18] SubtleGradient has joined the channel [02:18] deanlandolt: JimBastard: xquery is actually insanely awesome even with all the suck [02:18] halorgium: {_rev: "foobar", key: "value"} [02:18] JimBastard: i know deanlandolt, i dove really deep into the XSD / XSLT / XPATH / XQUERY hole [02:18] JimBastard: like months [02:19] deanlandolt: i hate it with a bloody passion but i use an xmldb every day and wrote a compiler to give me back my sanity [02:19] JimBastard: http://github.com/marak/leet [02:19] JimBastard: from way back when [02:19] fictorial: ezmobius: since someone (you) from engineyard thinks they're good, I'll see what they've done lately. [02:19] Kiba: halorgium: now it said "invalid rev format" [02:19] deanlandolt: JimBastard: that's a deep whole :) [02:19] JimBastard: check out that project [02:19] deanlandolt: (pun intended) [02:19] deanlandolt: i'm looking [02:19] halorgium: Kiba: progress ;) [02:19] mscdex: hrm [02:19] Kiba: http://gist.github.com/417968 [02:20] JimBastard: i pretty much started to build ANTLR [02:20] halorgium: Kiba: rev is what you fetched from the server [02:20] JimBastard: such a noob mistake [02:20] deanlandolt: there's so much more /wrong/ with xml then there is right...but if you can restrict xml to a subset that is sane (e.g. an object graph, json-style) xquery is fucking money [02:20] mscdex: is there some way to catch an EPIPE error? [02:21] mscdex: when spawning a child process? [02:21] Kiba: JimBastard: so if I were to save a new document, what do I use? [02:21] JimBastard: lol noise versus signal [02:21] alexiskander has joined the channel [02:21] JimBastard: ./joins #node-ot [02:22] deanlandolt: heh [02:22] Kiba: ACTION is going around around in circle [02:22] halorgium: Kiba: i'd jump in #couchdb or check some docs [02:22] halorgium: Kiba: couchdb uses MVCC so understanding that might assist you [02:24] Kiba: ACTION sigh at himself [02:27] SteveDekorte has joined the channel [02:31] Kiba: damn it [02:32] mscdex: ryah: is there some way to trap SIGPIPE for a child process? [02:32] Kiba: http://gist.github.com/417974 [02:33] Kiba: in line 49, it output a rev [02:33] Kiba: but in line 51, it doesn't remember the new rev [02:33] _announcer: Twitter: "If node.js is just a tick slower than nginx, I don't see why we can't use something like Python for our Cocoa apps. #seedofdiscontentment"-- Steven. http://twitter.com/sdegutis/status/14948568774 [02:34] pgriess has joined the channel [02:34] Kiba: ACTION did a wild goose chase because he didn't check that the new rev actually appear outside of the getDoc blocks [02:34] fictorial: I love these random twitter interjections. By that logic, "Since I blink when viewing a web page, I should use the tag on my new site" [02:35] halorgium has joined the channel [02:35] JimBastard: i think the new meme is gonna be "nodejs is slow, x is better" [02:35] JimBastard: win [02:35] fictorial: out of curiosity, is _announcer a node irc bot? [02:35] JimBastard: unsure [02:35] fictorial: s/node/&-based/ [02:36] JimBastard: would be nice to have a command line http requester [02:36] JimBastard: maybe hook.io style [02:36] JimBastard: errr IRC command line [02:36] JimBastard: !gogo [02:36] JimBastard: fserv style [02:36] Validatorian: fictorial: wasn't aware that the & could be used like that. thanks :) [02:36] fictorial: vim ftw [02:37] fictorial: oh geez I just realized I've been using vim for 13 years. [02:37] fictorial: ACTION is old basically [02:38] kodisha: define old [02:38] kodisha: :D [02:38] kodisha: if vim usage > 10 years i'm old too [02:38] kodisha: :D :P [02:39] Kiba: ACTION is a newbie emac user [02:39] Kiba: everyday, I improve my emacs customization or my knowledge of emacs [02:39] fictorial: very newbie; it's "emacs" :p [02:39] mape: hehe [02:40] kodisha: just curious, WHY would someone use emacs in twenty ten? [02:40] Kiba: ACTION hopes he will become a emacs wizards years later [02:40] kodisha: :D [02:40] fictorial: my fingers use emacs key bindings in the shell but I use vim for everything else, even firefox (vimperator). just happened. [02:40] Kiba: I can just see myself doing a dizzy amount of commands and typing really crazy [02:41] Kiba: but now I am stuck :/ [02:41] Validatorian: what am I doing wrong? I have /libxmljs/ cloned into .node_libraries -- but I cannot just use "var libxml = require("libxmljs");" -- I have to use "var libxml = require("libxmljs/libxmljs");" [02:42] Aredridel has joined the channel [02:42] gabe_hollombe has joined the channel [02:42] gabe_hollombe: join #coffeescript [02:42] kodisha: you copied a dir? without mail file? [02:42] kodisha: *main file [02:42] gabe_hollombe: grin [02:43] Validatorian: copied? No, I just cloned the git repo [02:43] Kiba: http://gist.github.com/417982 [02:43] kodisha: well, are all files in place on new path [02:43] Validatorian: node-solr is requiring libxmljs that way, so I have to assume it works for gsf [02:43] Kiba: I got a problem that I couldn't get over [02:44] Kiba: on line 48, I assigned doc to document [02:44] Kiba: and on line 49, it output a revision [02:44] Kiba: but when I do the same thing as line 51 [02:44] Kiba: it gave me undefined [02:44] fictorial: Validatorian: hint: it's node_LIBRARIES not node_REPOS [02:44] Kiba: it was as if the _rev is not saved [02:44] Kiba: I don't understand [02:45] Validatorian: fictorial: oh. hrm. that makes it a bit annoying for updating and stuff, doesn't it? [02:45] fictorial: man ln [02:46] Kiba: ACTION doesn't understand what's happening [02:46] kodisha: man ln :D [02:46] Kiba: man ln? for what? [02:46] Validatorian: I know how to create symbolic links, but I'm not sure how it's relevant -- the node file is in the root of the folder being included -- do I have to link libxmljs.node to index.node? [02:47] Kiba: oh [02:47] Kiba: is anybody looking at my pastie? [02:47] Validatorian: Kiba: I still am not sure if they are talking to me or you ;) [02:47] Kiba: err gist [02:47] Validatorian: maybe you need to man ln, and I don't [02:48] Kiba: I have a gist that I posted a while ago, and I am pretty sure it have nothing to do with symbolic link [02:49] Kiba: but it look like nobody is willing to help me [02:49] Validatorian: Kiba: that's because in 49, it's a callback (means it waits for 46 to complete [02:49] Validatorian: on 51, it runs before 46 has completed [02:49] Kiba: so how do I get around this? [02:50] Validatorian: put it in the callback [02:50] Validatorian: what's the goal? [02:50] Kiba: to get the revision number for saving stuff [02:50] Validatorian: and what's wrong with just using 49? [02:50] SamuraiJack has joined the channel [02:51] Kiba: I need to get the document revision before I can save it [02:51] Validatorian: but you have the document revision on 49, so I don't understand why you have to be outside of the callback to save? [02:51] Kiba: but I lack understanding of a key concept, which you just explain to me [02:51] Kiba: it's just getting the document, doesn't actually save [02:51] ryan[WIN] has joined the channel [02:52] Kiba: line 26 is where I save [02:52] Kiba: but I didn't understood what callbacks are [02:52] Validatorian: may not be best practice, but it should work if you put lines 51 and 52 inside the callback (right after 49) [02:53] Kiba: hmm..I wanted to save after getting the document [02:54] Validatorian: yea, callbacks are pretty much what makes node awesome -- while your script is inside the getDoc, it can keep moving on to other stuff while that is working [02:54] mjr_ has joined the channel [02:54] Kiba: I didn't know what callbacks where. I just dived in. [02:54] Kiba: s/where/were [02:54] Validatorian: Kiba: you can. just do what I said [02:54] Validatorian: hold on a sec [02:55] Aria has joined the channel [02:55] Kiba: so if I want to save. I better getDoc and then do save [02:55] Kiba: ACTION just rename getList to getDoc [02:58] isaacs has joined the channel [02:59] Validatorian: I just commented on your gist [02:59] Validatorian: haven't tested the code, but hopefully it will give you an idea [02:59] Validatorian: I'm just learning this stuff myself [03:00] Kiba: paste g ist? [03:00] Kiba: s/g ist/gist [03:00] Kiba: nvm [03:01] isaacs: Validatorian: you know,you could also do this: npm install http://github.com/polotek/libxmljs/tarball/0.3.0 [03:02] isaacs: Validatorian: and then you'd be able to require("libxmljs") [03:02] isaacs: (obligatory, sorry) [03:02] Validatorian: isaacs, I would, but I had a lot of trouble installing npm last time I tried (about a week and a half ago) -- i'll give it another go, though [03:03] Validatorian: my knowledge has been increasing exponentially these past few weeks, so who knows [03:03] isaacs: Validatorian: did i help you out with it? if so, whatever bug you were seeing might be fixed. [03:03] isaacs: Validatorian: if not, please post an issue, and i'll fix it straightaway [03:04] Validatorian: I don't know it if was an npm issues as much as pebcak, but I'll let you know in a bit [03:04] mjr_: isaacs: you should probably write an npm-suggest-bot that auto-suggests people use npm whenever this comes up. [03:04] isaacs: hehe [03:04] isaacs: i know, i'm gonna be disconnected for a week, so i'm gonna have to delegate it [03:04] isaacs: but polotek is regularly sending me issues with npm, so i know he's using it [03:05] mjr_: I'll probably use it as soon as I finish my thing. [03:05] isaacs: and it turns out that it installs his fork of libxmljs flawlessly [03:05] isaacs: dunno why he hasn't published it [03:06] Validatorian: isaacs: any issues with adding the npm folder (where I curl the tarball) in .node_libraries? [03:06] isaacs: Validatorian: yes. don't do that. [03:06] isaacs: Validatorian: the correct way to install npm is to run "make", which uses npm to install itslef. [03:06] ditesh|cassini has joined the channel [03:07] isaacs: Validatorian: you could also do this (in the folder): ./cli.js --auto-activate always install npm [03:08] isaacs: Validatorian: but if you like that approach in general, you can do "make link", and then use "npm link ./path/to/folder" to install stuff linked to the dev copies of the code. [03:13] _announcer: New Question: "What is the point/purpose of Ruby EventMachine, Python Twisted, or JavaScript Node.js?" by CCw. http://stackoverflow.com/questions/2933608 [03:13] Validatorian: seems to have installed [03:13] PyroPete1 has joined the channel [03:15] mjr_: New Question: "What is the point/purpose of computer programming languages, and why does anybody waste their time with this sort of thing?" by IP Freely. [03:16] Kiba: I thought the point of node.js is to make networking easier [03:16] Kiba: so I don't have to worry about all the low-level details [03:16] isaacs: Validatorian: sweet! [03:17] micheil: mjr_: better call the other day at an electronics retail store I work at; from a staff member: "Oh, I thought the computer programs wrote themselves..." [03:17] Aria: Hehe. I actually answered that one. "One stack per process, rather than per connection. Why switch every few ms, rather than when the work is done? [03:17] mjr_: Kiba: Node is very low-level, but it makes doing some low level things WAY easier. [03:17] isaacs: Kiba: the point of node is to make it so that computer programs are fast by accident [03:18] isaacs: Kiba: instead of having to do a lot of work to make them fast. [03:18] mjr_: Also the point is that most network programs should be written in something like JavaScript, rather than something like C++. [03:18] Aria: Heh, yeah. It's not like networks are THAT fast. It's not like we're using a memcpy written in JS -- but we can darn well call one from JS [03:19] Validatorian: node.js, like ALL javascript, is made to allow fancy cursor-trails and page transitions [03:19] Kiba: well [03:19] Kiba: I am trying to write video games with it [03:19] isaacs: Validatorian: +1!! [03:19] isaacs: Kiba: what kind of video games? [03:20] Validatorian: isaacs: yep, installed the package and it works :) [03:20] mjr_: Oh man, I LOVE cursor trails. Can you also make various image rollovers? [03:20] isaacs: Validatorian: nice! that's what i like to hear. [03:20] Kiba: isaacs: tetris [03:20] isaacs: Validatorian: npm ls to see what you can install [03:20] Kiba: though I am only working on a high score server at the moment [03:20] Validatorian: the benefit of node.js, is that (until it gets ported to windows) there are no browser compatibility issues! ;) [03:20] isaacs: Kiba: neat. [03:21] Kiba: then I planned to port the tetris code to server side..then make multiplayer [03:21] isaacs: Kiba: is the tetris happening in a browser, or on the client? [03:21] Kiba: a browse4r [03:21] isaacs: ie, command-line client [03:21] isaacs: o, ok [03:21] Kiba: HTML5 and Canvas :D [03:21] isaacs: Kiba: sweet [03:21] Kiba: http://kibabase.com/jstet.html [03:22] Kiba: then, I planned to revamp a space shooter game with my newfounded knowledge [03:22] Validatorian: isaacs: request! npm ls -l, will provide a description of each of the packages listed [03:22] isaacs: Validatorian: please submit a patch. or, if you're lazy, an issue. [03:23] Kiba: right now, I am lacking lot of knowledge...such as mathematics [03:23] isaacs: :) [03:23] Kiba: public schooling failed to educate me properly in math :/ [03:23] Validatorian: my laziness only allows me to post it on IRC, I'm afraid ;) [03:23] Validatorian: ACTION is posting issue now. geez, I have to do EVERYTHING [03:24] JimBastard: hey Kiba , do you need some nodejs hosting? [03:24] JimBastard: thats a sweet little game [03:25] Kiba: my client probably already have a server from which I will host my game on [03:26] Kiba: the codebase is BSD..so you can do whatever you want with it. But I didn't put any BSD license in yet. [03:26] JimBastard: cool cool, let me know [03:33] Tim_Smart has joined the channel [03:34] ezmobius: fictorial. newservers has been good for me. the founder/software automstion guy is really helpful and i like their system [03:35] Kiba: newserver? [03:38] Kiba: Validatorian: where does this callback method come from? [03:38] fictorial: cool - I was a little sketched out by their notion of well, if you need to scale out, get servers now since we don't guarantee to have em when you need em. Makes sense economically for them of course. [03:39] Validatorian: Kiba: ? [03:39] Kiba: in your comment, you have this callback in getList function [03:39] fictorial: best stupid cat comic ever: http://bit.ly/bkn4f7 [03:39] Validatorian: Kiba: the callback is the function that is being passed in the calling function [03:40] Kiba: well [03:40] Kiba: it's complaining about callback not being defined [03:41] Validatorian: oh, I probably did something wrong then [03:41] Validatorian: I'd ask one of the more seasoned vets for help :) [03:42] Kiba: http://gist.github.com/418010 [03:43] binary42 has joined the channel [03:44] Kiba: ok [03:44] Kiba: in function save [03:44] Kiba: I am trying to get doc first [03:44] Kiba: then save [03:45] Kiba: but [03:45] Kiba: line 55 [03:45] JimBastard has joined the channel [03:45] Kiba: have callback [03:45] Kiba: but they say it is "undefined" [03:45] jbrantly: Kiba: exports.getDoc = function(callback) [03:46] Kiba: oh [03:46] JimBastard: ohh shit javascript party [03:46] Kiba: thanks [03:46] Kiba: it work [03:46] Kiba: wow [03:46] Kiba: just like thata [03:48] Kiba: oh dear [03:49] Kiba: I wrote two save method :/ [03:49] Kiba: oh well, that's easily fixed [03:51] JimBastard: anyone using http://github.com/frank06/riak-js [03:52] Kiba: what's a riak? [03:53] Kiba: ACTION googled it [03:53] Aria: Another k/v store [03:53] Kiba: so it's like couchdb [03:54] _announcer: Twitter: "Attention programmers: Messing around with #nodejs makes you cool. That is all."-- Ⓘⓢⓐⓐⓒ. http://twitter.com/izs/status/14952879146 [03:54] Kiba: lol [03:54] JimBastard: i told you the wave was coming [03:54] Kiba: who? [04:02] polotek has joined the channel [04:12] saikat` has joined the channel [04:13] nsm has joined the channel [04:18] ineation has joined the channel [04:21] creationix has joined the channel [04:32] polotek has joined the channel [04:33] technoweenie has joined the channel [04:33] JimBastard: updating http://github.com/Marak/broodmother [04:33] JimBastard: :-D [04:36] TheEnd2012 has joined the channel [04:45] Neil_ has joined the channel [04:46] mscdex: http://i46.tinypic.com/8yuayp.jpg [04:47] JimBastard: LOL [04:47] JimBastard: WUT [04:47] mscdex: YOU'RE ON NOTICE [04:48] mscdex: huhu [04:49] Aria: ACTION grins [04:49] aho: :> [05:06] nsm has joined the channel [05:08] _announcer: Twitter: "Many thanks to @learnboost and @rauchg for making Socket.IO available for my #websocket and #nodejs needs."-- Gabe Hollombe. http://twitter.com/gabehollombe/status/14956467688 [05:14] softdrink has joined the channel [05:19] isaacs: JimBastard: can i get in on broodmother? [05:20] JimBastard: isaacs: i was about two seconds away from messaging your phone saying we should add deploy to npm [05:20] isaacs: hahah [05:20] isaacs: JimBastard: yeah, i've been thinking about that use case a lot, actually [05:20] isaacs: like, "take this package and install it on this other place" [05:20] polotek: JimBastard: what's the deal with broodmother? you gonna be hosting apps for other folks? [05:21] JimBastard: im down, but we cant open it up 100% to everyone [05:21] JimBastard: it has to be nodeninjas first [05:21] JimBastard: too many security risks [05:21] JimBastard: and resource balancing [05:21] isaacs: also, i'm interesting in exploring an architecture path for npm that would make it easier to plug into [05:21] JimBastard: indexzero [05:21] JimBastard: polotek: you got an app, ill hook you up with free account [05:21] indexzero: isaacs: wrt to what you just said; it's kind of pain when packages don't have a 'stable' tag [05:22] polotek: not yet. soon [05:22] JimBastard: we already host apps [05:22] indexzero: could you just pull from master as fail safe? [05:22] isaacs: indexzero: npm config add tag latest [05:22] isaacs: JimBastard: so you'd be able to write a node module, and as lon gas it exposed a specific API, it could be added as a new command. [05:22] indexzero: word [05:22] isaacs: indexzero: note, that'll install the latest tag by default then, *instead of* defaulting to stable [05:23] isaacs: indexzero: you can always do npm install foo@latest or npm install --tag latest foo [05:23] isaacs: indexzero: sorry, it's "set", not "add" [05:24] polotek: indexzero: or if you want to work with a trunk build you can just git clone it yourself and then do `npm link somepackagedir` [05:24] isaacs: hooray! other people are giving npm tips! my plan is working! [05:24] indexzero: yeah, how many other package managers are there out there? kiwi ... and? [05:25] isaacs: indexzero: http://github.com/rsms/mode and http://github.com/kriszyp/nodules are also relevant. [05:25] polotek: nodules. not a package manager proper but a way to reference and include packages in node [05:25] polotek: haven't tried mode [05:25] isaacs: indexzero: different approaches to the problem. [05:26] cloudhead has joined the channel [05:26] aaronblohowiak has joined the channel [05:26] JimBastard: sup cloudhead [05:26] JimBastard: sup aaronblohowiak [05:26] indexzero: cloudhead: thanks for fixing that npm + vows issue [05:26] mscdex: does npm share the same basic commands as apt-get? [05:26] aaronblohowiak: sup [05:26] isaacs: mscdex: not really. [05:26] mscdex: because that would be nice [05:26] isaacs: mscdex: i mean, in that git shares the same basic commands with hg, sure. [05:27] mscdex: well i mean, "npm update" would update a local cache, "npm upgrade" could upgrade packages, "npm install" to install a package, "npm remove" to remove a package, etc [05:28] Aria: Heh. Way to throw off the yum users. [05:28] mscdex: ;-) [05:28] isaacs: mscdex: one of those works the way you said it :) [05:28] mscdex: heh [05:28] JimBastard: npm --host me.nodejitsu.com install foo@stable [05:28] JimBastard: ^^ how does that look [05:28] mscdex: wordy [05:28] mscdex: :P [05:29] JimBastard: npm deploy myapp nodejitsu [05:29] JimBastard: make it like github [05:29] isaacs: mscdex: it'd be neat if it let you do shortcuts like git [05:29] isaacs: JimBastard: i'd want "deploy" to be an add-on-able command or something [05:29] isaacs: JimBastard: or a shortcut syntax powerful enough to buidl that [05:29] mscdex: isaacs: yes, custom shortcuts or aliases would be very nice [05:30] JimBastard: the question is how would people get accounts, are they free? [05:30] aaronblohowiak: wont you run out of file descriptors? [05:30] isaacs: mscdex: and it's "npm cache add ..." for the first, "npm install foo" for the second, and "npm uninstall foo" or "npm rm foo" for the last one [05:31] JimBastard: i could prob spawn a drone with a 30 minute life span [05:31] JimBastard: give people a little taste for free [05:31] JimBastard: let them try out apps [05:31] isaacs: JimBastard: that'd also be handy for little test-script things [05:31] JimBastard: yeah [05:31] JimBastard: id prob have a separate farm for the free accounts too [05:31] isaacs: pastes in irc and such [05:32] cloudhead: indexzero: np [05:33] polotek: JimBastard: I think a 30 min playground with be a cool feature [05:34] JimBastard: i could do a browser side inject and do a countdown [05:34] JimBastard: and maybe a nodejitsu widget [05:34] JimBastard: thats a fun idea [05:35] _announcer: Twitter: "Just had a proud moment. Someone asked an #npm question in the #nodejs irc room, and a different person than me answered it. I have users!"-- Ⓘⓢⓐⓐⓒ. http://twitter.com/izs/status/14957618517 [05:36] isaacs: jesus, but that's alarming and a little obnoxious. [05:36] isaacs: i <3 it when it's other people's tweets, but whenever i tweet something and then it shows up in here, i'm like WTF!? [05:36] Aria: ACTION laughs [05:36] Aria: Isn't it just? And so damn fast, you wonder what the hell happened [05:36] isaacs: i kno! [05:37] polotek: isaacs: nice tweet sig [05:37] isaacs: polotek: thanks [05:40] JimBastard: has anyone gotten http://github.com/laktek/realie working? we tested it locally and it assploded chrome on 4 machines [05:40] polotek: when I read code from other noders, I feel like the only loser who still prefers 4 space indent [05:40] isaacs: i don't like real time collaborative code editing [05:40] isaacs: polotek: that feeling... it's trying to tell you something. [05:41] isaacs: JimBastard: i feel like it's a shared-state-threading problem to collaboratively edit code in real time [05:41] polotek: nah, I won't bow to peer pressure. I like my code with room to breath [05:41] isaacs: polotek: i actually really like single-char indents [05:41] JimBastard: isaacs: i just wanted to get the app runing, ive been talking to the author over email [05:41] isaacs: JimBastard: suresure [05:41] mscdex: i like no indents [05:42] JimBastard: would be a cool app to spawn multiple instances of [05:42] JimBastard: like a etherpad [05:42] JimBastard: im all about putting high load on the broodmother, shes a beast [05:42] polotek: isn't bespin supposed to do that too? [05:42] JimBastard: is it ported to node yet? [05:42] unomi: whats wrong with bespin? [05:42] JimBastard: is it ported to node yet? [05:42] polotek: nope [05:42] JimBastard: give it time [05:44] JimBastard: but yeah, realie is vaporware atm [05:44] unomi: did you test in chromium or chrome? [05:44] unomi: chromium is updating its websockets spec [05:45] unomi: http://code.google.com/p/chromium/issues/detail?id=37376 [05:45] JimBastard: chrome... [05:45] unomi: :p [05:46] JimBastard: 1) Chrome Browser (version 5+) - This is because web sockets are still only supported in Chrome. But Firefox and other latest browsers would soon catch up! [05:46] JimBastard: ? [05:46] JimBastard: from TFM [05:46] JimBastard: you got it working? [05:46] unomi: dunno, check what its sending thru [05:46] unomi: nah, just saw it now [05:46] JimBastard: meeeeeeeeeeh [05:46] JimBastard: let me know how that works out [05:46] JimBastard: ill try again just locally [05:46] JimBastard: one machine [05:47] JimBastard: yeah hrmm [05:48] JimBastard: ooops [05:48] unomi: https://bugs.webkit.org/show_bug.cgi?id=35572 [05:48] JimBastard: node socket.js [05:48] JimBastard: i think thats it [05:48] unomi: WTF::randomNumber() [05:48] unomi: I am liking this code [05:50] JimBastard: yeah no its not working [05:50] JimBastard: yo unomi [05:50] JimBastard: its [05:50] __ry_phone has joined the channel [05:50] unomi: ? [05:50] JimBastard: nm [05:50] sechrist: oh jeeze the yc cycle starts next weeek [05:51] JimBastard: yeah vaporware [05:52] JimBastard: alright javascript-fu time [05:52] Kiba: Ycombinator? [05:52] sechrist: yes [05:52] sechrist: june-august [05:52] Kiba: don't have any startup to speak of [05:52] Kiba: so gottach skip the yc cycle [05:53] sechrist: ? [05:53] Kiba: I don't have any startups [05:53] sechrist: ah [05:53] Kiba: so no apply for YC for me [05:53] creationix has joined the channel [05:53] Kiba: I prefer for my startups to roll in its own money [05:54] Kiba: like earning a dollar and then just reinvest that [05:54] unomi: Doesn't everyone? [05:54] sechrist: yc isn't for the money [05:54] sechrist: it's for everything else. [05:54] unomi: its for the GLORY [05:54] Kiba: startups that create money to roll itself own [05:54] Kiba: bootstrapping [05:54] sechrist: that end up failing because they didn't get advice [05:54] unomi: whats yc for then? [05:54] Kiba: like a compiler can compile itself [05:54] sechrist: or weren't networked [05:55] Kiba: not all startup end up failing [05:55] unomi: well, when they have yc in Thailand, I'll go [05:55] Kiba: just the startup that don't produce its own dollar [05:55] unomi: Some things take investment to get rolling [05:55] unomi: takes money to make money they say [05:55] isaacs: sechrist: you know, the best advice is usually not all that valuable. [05:55] sechrist: hehe [05:56] sechrist: ya ya, size doesn't matter, and the best things in life are free [05:56] sechrist: gotcha [05:56] isaacs: sechrist: i mean, either you grok it, and you probably didn't need it, or you don't, and no matter how many times it's said, you still won't. [05:56] Kiba: unomi: my second website rolls itself on dollars earned from my amateur bloggign attempt [05:56] Kiba: and then rolls on it own forever [05:56] sechrist: kiba: perpetual roller [05:56] Kiba: now its earn 20 bucks now and then [05:56] unomi: Not everyone feels comfortable selling get rich schemes [05:57] Kiba: which I then used it to roll new projects [05:57] sechrist: so everybody here hates ycombinator? [05:57] sechrist: excellent [05:57] isaacs: sechrist: not at all [05:57] Kiba: mine is a slow get rich scheme [05:57] Kiba: not a fast get rich scheme [05:57] Kiba: since everything rolls on dollars earned from my previous business activities or rolls on money it generated itself [05:57] unomi: still the same hookum, Pay 10$ to get the full recipe for making money from home! [05:58] isaacs: sechrist: it makes a lot of sense for some cases [05:58] Kiba: a prepreturally self-maintaining business that happens to earn some leftover [05:58] unomi: then you get the book, and it says: get someone to buy this get rich scheme for 10$ [05:58] Kiba: which is used to spin new businesses [05:59] isaacs: sechrist: but if you already have $20k or so in the bank and in investments, and are far enough along in your own career to do your own networking, and are the kind of practical person that yc looks for anyway, you probably are better off just spending your own money [05:59] isaacs: sechrist: of course, there's a risk factor there. [06:00] sechrist: isaacs: not particularly networked and all under 23 -- leaving day jobs [06:00] sechrist: more experience than anything [06:00] sechrist: but yeah I agree with you [06:00] sechrist: your second startup shouldn't be yc'd [06:00] sh1m has joined the channel [06:00] isaacs: sechrist: sure. the young/poor entrepreneurs are good matches for yc [06:01] isaacs: sechrist: the 30+ crowd is either rich enough by that point to do it themselves, or they probably shouldn't [06:01] isaacs: [06:01] sechrist: ^ [06:01] sechrist: or they can't [06:01] sechrist: mortgage, married, kids [06:01] sechrist: etc [06:01] Kiba: not all 30s years old have some nice saving [06:01] isaacs: exactly. so perhaps running a startup would be irresponsible. [06:01] Kiba: some 30s years old live paycheck to paycheck [06:02] isaacs: time-wise [06:02] isaacs: Kiba: sure. and i'm sure that graham & co are smart enough not to invest in them. [06:03] Kiba: ACTION been in the internet since age 15-16 [06:03] Kiba: I still don't earn much [06:03] Kiba: poor record as entrepeneur :/ [06:03] Kiba: internet business [06:03] isaacs: Kiba: writing javascript in silicon valley pays pretty good if you're good at it. [06:03] aaronblohowiak: Kiba: a cat is not good at being a dog [06:04] Kiba: now I am 19, getting paid to write video games. Practially a dream job [06:04] technoweenie: what kind of video games [06:04] isaacs: oh, Kiba, you're still young, then, what are you worried about? [06:04] sechrist: the video game industry is a sham [06:04] unomi: isaacs how much ? :p [06:04] sechrist: SHAM [06:04] isaacs: unomi: depends. [06:04] aaronblohowiak: sechrist: the (.*) industry is a sham [06:04] Kiba: isaacs: I didn't achevie much while in high school [06:04] Kiba: other than making to digg. [06:05] unomi: isaacs: middle of the market [06:05] Kiba: which was really really really nice [06:05] sechrist: yes regex groupings are shams too [06:05] Kiba: so nice that the server crash [06:05] isaacs: unomi: 70k-100k is the beefy middle of the bell curve [06:05] sechrist: you made to digg? [06:05] Kiba: sechrist: my website got on digg in its early beginning [06:05] isaacs: unomi: interns can expect to be on the left-hand side of that, more experienced/experts with a proven track record can demand a bit more. [06:05] _announcer: Twitter: "I said how I nodejs proxy holder going up useless, would filter the original gfw 8888 port, I can change the ... ... 53" [zh-CN]-- Hsiu. http://twitter.com/normanzb/status/14958806983 [06:05] Kiba: now it's just a prepreturally outdated encyclopedia. [06:06] unomi: isaacs: if you know anyone who will take a telecommuter on trial, let me know ;) [06:06] Kiba: I should have written a wiki bot long ago [06:06] Kiba: ACTION have the programming chop but didn't use it to automates tasks [06:07] _announcer: Twitter: "nodejs is not does not support ssl ah, regardless of the first meal" [zh-CN]-- Hsiu. http://twitter.com/normanzb/status/14958852141 [06:07] _announcer: Twitter: "Debugging Node.js "ndb (Node.js debugger) | Rural Blog" http://is.gd/ctZQY" [ja]-- azu. http://twitter.com/azu_re/status/14958863200 [06:07] isaacs: first meal? [06:07] Kiba: ACTION is now learning to automate [06:07] sechrist: this guy [06:07] sechrist: is lol [06:07] isaacs: oh, it's translated [06:07] mscdex: i'm hungry [06:07] mscdex: i want my first meal [06:07] inimino: no SSL for you [06:07] mscdex: ;( [06:08] sechrist: somebody asked me [06:08] sechrist: if I had java chops [06:08] sechrist: I looked at them funny [06:08] isaacs: wow, this announcer bot is pretty fancy. [06:08] sechrist: it connects to streaming api and posts in irc [06:08] sechrist: is there magic there? [06:09] mscdex: maushu is magical [06:10] sechrist: oh wtf -- I google nodejs announcer and i'm the first result [06:10] sechrist: talk about SEO [06:11] Kiba: ACTION is trying to unit test [06:11] Kiba: but then I have to destroy first before creating [06:12] Kiba: if there is a new database with nothing in it, I'll have to create first [06:15] Kiba: http://gist.github.com/418079 [06:15] Kiba: I am trying to destroy it first before creating [06:15] Kiba: but it didn't goes as planned [06:16] Kiba: ACTION needs to understand callback much better [06:16] Kiba: but I need to go to sleep [06:17] Kiba: good night people [06:19] aaronblohowiak: =) g'night! [06:25] jedschmidt has joined the channel [06:33] qFox has joined the channel [06:37] polotek has left the channel [06:46] mikeal has joined the channel [06:49] _announcer: Twitter: "Compile node.js for food. No, what a pancake, I have a 3 car its going. Mack, VDS, now netbook." [ru]-- myfreeweb. http://twitter.com/myfreeweb/status/14960377632 [06:55] mikeal has joined the channel [06:55] softdrink has joined the channel [06:57] _announcer: Twitter: "Who would say, there are already node.js package of the Debian repos. # Poresoamodebian" [es]-- Hector Menendez. http://twitter.com/et0r/status/14960658162 [07:01] _announcer: Twitter: "And so, in less than a minute, I have nodejs ready for testing." [es]-- Hector Menendez. http://twitter.com/et0r/status/14960798883 [07:04] popsalsero has joined the channel [07:10] tekky has joined the channel [07:22] felixge has joined the channel [07:24] DracoBlue has joined the channel [07:29] linuxsable has joined the channel [07:29] zomgbie has joined the channel [07:33] dridge has joined the channel [07:38] _announcer: Twitter: "Playing around w/ node.js ... vrooom?"-- Benson Wong. http://twitter.com/mostlygeek/status/14962052426 [07:42] ako has joined the channel [07:51] dridge has joined the channel [07:54] Tim_Smart has joined the channel [07:55] _announcer: Twitter: "Wow. Nginx (static file) = 7529.83req/sec, node.js = 4850.97req/sec that is fast. VMWare Fusion, Ubuntu 10.4 on MBP"-- Benson Wong. http://twitter.com/mostlygeek/status/14962590122 [07:58] soko has joined the channel [08:07] pdelgallego has joined the channel [08:24] nsm has joined the channel [08:27] ewdafa has joined the channel [09:08] Nohryb has joined the channel [09:11] stagas has joined the channel [09:12] SteveDekorte has joined the channel [09:13] rnewson has joined the channel [09:14] dridge has joined the channel [09:20] unomi has joined the channel [09:24] themgt has joined the channel [09:31] markwubben has joined the channel [09:36] mape: hmm ryah already broke the phone? :S [10:00] SubtleGradient has joined the channel [10:03] _announcer: Twitter: "Demo: Hummingbird — a real-time Web traffic visualizer using mongoDB, WebSockets, node.js, and SVG. #sweb2010"-- Sabin Buraga. http://twitter.com/busaco/status/14966646398 [10:07] mfeiri has joined the channel [10:08] hellp has joined the channel [10:10] hellp has joined the channel [10:12] soko has left the channel [10:12] soko has joined the channel [10:23] phiggins_ has joined the channel [10:25] zomgbie has joined the channel [10:26] mAritz has joined the channel [10:26] Tim_Smart has joined the channel [10:29] MattJ has joined the channel [10:34] Nohryb has joined the channel [10:36] mape: Hmm mongoose module management seems to be quite a bit of work [10:39] tobeytailor has joined the channel [10:46] mAritz has joined the channel [10:51] rnewson has joined the channel [10:54] zomgbie has joined the channel [10:54] maushu has joined the channel [10:56] mscdex: !so-last [10:56] _announcer: Last Question: "What is the point/purpose of Ruby EventMachine, Python Twisted, or JavaScript Node.js?" by CCw. http://stackoverflow.com/questions/2933608 [10:56] stagas: to serve data? :P [11:00] mscdex: to serve humanity! [11:00] mscdex: oh man, what if skynet runs on node.js? [11:00] mscdex: WHAT HAVE WE DONE? [11:04] Nohryb has joined the channel [11:05] tobeytailor has left the channel [11:05] zomgbie has joined the channel [11:06] tav has joined the channel [11:15] _announcer: Twitter: "..updated mongodb 1.4.2, v8-trunk and nodejs to 0.1.96"-- Crazy Google. http://twitter.com/crazy_google/status/14968969708 [11:16] _announcer: Twitter: "Writing a file watching script for NodeJS to speed up my work. :D"-- Dylan Wreggelsworth. http://twitter.com/dylanrw/status/14968995245 [11:16] maushu has joined the channel [11:18] mscdex: !so-next [11:18] _announcer: Time left for the next fetch: 00:24:49 [11:18] mscdex: !so-last [11:18] _announcer: Last Question: "What is the point/purpose of Ruby EventMachine, Python Twisted, or JavaScript Node.js?" by CCw. http://stackoverflow.com/questions/2933608 [11:18] _announcer: Twitter: "zztmmo - classic zzt game engine + node.js + jQuery - http://su.pr/2X0Sa3"-- eBot. http://twitter.com/kicauan/status/14969069767 [11:23] _announcer: Twitter: "@ Medar23 Python slower node.js, and PHP - just sad (:" [ru]-- myfreeweb. http://twitter.com/myfreeweb/status/14969216125 [11:23] stepheneb has joined the channel [11:29] Nohryb has joined the channel [11:32] keyvan has joined the channel [11:35] _announcer: Twitter: "@rentzsch I am all for more event driven programming For people who Node.JS doesn't fit, checkout libevent, GCD, EventMachine, and twisted."-- lgerbarg. http://twitter.com/lgerbarg/status/14969638470 [11:37] Tim_Smart has joined the channel [11:47] nsm has joined the channel [11:51] tjgillies has joined the channel [11:55] rnewson has joined the channel [11:55] rnewson has joined the channel [12:03] pdelgallego has joined the channel [12:10] sztanpet has joined the channel [12:15] _announcer: Twitter: "http://bit.ly/9ef8r9 ◊ Express - #Nodejs Web Development Framework"-- François-G. Ribreau. http://twitter.com/FGRibreau/status/14971166625 [12:26] markwubben has joined the channel [12:26] stepheneb has joined the channel [12:30] tjgillies: node doesn't want to install [12:31] tjgillies: i do make install and can't get node binary in path' [12:31] tjgillies: the node in the working dir works though [12:31] stagas: try sudo make install [12:31] tjgillies: im already root [12:31] mscdex: what version? [12:33] tjgillies: git [12:37] kriszyp has joined the channel [12:38] Tim_Smart has joined the channel [12:39] tjgillies: making from tarball and seeing if that fixes it [12:39] tjgillies: btw, BP has put new meaning to tarball heh [12:39] zomgbie has joined the channel [12:41] mscdex: well, nothing path-related has changed from v0.1.96 to master [12:41] mscdex: so i'm not sure what would cause that [12:41] unomi has joined the channel [12:42] maushu has joined the channel [12:43] tjgillies: yeah not working with tarball either [12:43] mscdex: what platform are you on? [12:43] tjgillies: might be something with distro [12:43] tjgillies: arch [12:43] mscdex: hmm [12:43] mscdex: never used arch, so can't really help much there [12:44] mscdex: i've installed node on redhat, debian, and ubuntu though [12:44] mscdex: and free/openbsd [12:45] tjgillies: building from arch user contrib [12:45] tjgillies: lets see if that works [12:49] tjgillies: yeah that worked [12:49] tjgillies: *shrug* [12:51] mscdex: huh.. odd [12:56] mscdex: it does use a --prefix when configuring... maybe that has something to do with it [12:56] mscdex: it also uses a custom destination dir when installing by calling "tools/waf-light install --desdir=$pkgdir" [12:57] mscdex: *--destdir [13:02] zomgbie has joined the channel [13:10] halorgium has joined the channel [13:32] marktlang has joined the channel [13:32] _announcer: Twitter: "Really need to start experimenting with canvas, Node.js and other new JavaScript goodies. So many cool things, so little time"-- Gilles Ruppert. http://twitter.com/elduderino78/status/14974567175 [13:33] mau has joined the channel [13:41] derbumi has joined the channel [13:47] phiggins has joined the channel [13:49] Nohryb has joined the channel [13:52] xla has joined the channel [13:53] rnewson has joined the channel [13:53] rnewson has joined the channel [13:55] _announcer: Twitter: "giving nodejs another look. the nativeness of the event model is inspiring http://bit.ly/ddtCSK"-- tylergillies. http://twitter.com/tylergillies/status/14975750997 [13:56] zomgbie: how cool is this integration of the twitter search api into this irc bot! awesome idea for bringing some action into a channel esp. in silent times! [13:57] kriszyp_ has joined the channel [14:05] _announcer: Twitter: "Released simple_pusher.js to push events to @pusherapp on Node.js. http://github.com/redsquirrel/simple_pusher.js"-- Dave Hoover. http://twitter.com/redsquirrel/status/14976325154 [14:12] mjijackson has joined the channel [14:12] nsm has joined the channel [14:13] __sebs has joined the channel [14:15] xla has joined the channel [14:24] polotek has joined the channel [14:25] polotek: why do you have to recompile node to get tests to update? [14:28] Guest95222 has joined the channel [14:29] mscdex: because recompiling node makes it fresh again :P [14:30] _announcer: Twitter: "http://is.gd/ciHyK - Nice - YUI Theater — Ryan Dahl: “Introduction to NodeJS” (58 min.)"-- Lee Johnson. http://twitter.com/ljohndotnet/status/14977707979 [14:35] joshthecoder has left the channel [14:40] bradleymeck has joined the channel [14:40] __sebs: any1 alive ? [14:41] bradleymeck: mrow [14:41] __sebs: ah ;) [14:41] __sebs: is there any recommendation what nodejs frameworks and modules i should try ? [14:42] __sebs: i am presenting node at a conference and i want to check the usual suspects before [14:42] bradleymeck: express is really big right now [14:43] bradleymeck: the rest is more just grab what you need, most modules are fairly small, what kind of conference? compsci, web dev, or...? [14:43] rnewson has joined the channel [14:43] __sebs: dutch php conference [14:43] joshbuddy has joined the channel [14:44] __sebs: my topic is async decoupling of REST Webservices [14:44] __sebs: so most of the stuff i present is selfmade [14:44] bradleymeck: http://wiki.github.com/ry/node/ , list of apps/projects (aka stuff that doesnt look just like source code) [14:44] __sebs: ah ok [14:44] __sebs: another question, that may have a RTFM answer: how do i get a own module into kiwi? [14:45] __sebs: do i need more than just git for that ? [14:45] bradleymeck: i dont use kiwi so idk, one sec ill check it [14:45] __sebs: kk [14:45] __sebs: i have a table based finite state machine, a caching/queue and a fuzzy logic module so far [14:45] bradleymeck: seems its just an install command with kiwi in the path [14:45] bradleymeck: http://github.com/visionmedia/kiwi [14:46] bradleymeck: oh your own, [14:46] bradleymeck: http://wiki.github.com/visionmedia/kiwi/publishing-seeds [14:47] __sebs: ah nice [14:47] __sebs: does it make sense to publish stuff there ? [14:47] __sebs: or is there a alternative i need to look into? [14:48] __sebs: i just have libraries till now, so no complete framework or so [14:48] bradleymeck: personally i think keeping it on a git repo somewhere is the more standard for non-framework, i know npm is based off of git somewhat, and i personally only use git [14:49] __sebs: ok [14:50] __sebs: http://github.com/sebs/nodegamr [14:50] __sebs: i am not sure if i wanna have ONE package with all or split it into different repos [14:50] __sebs: on the one hand i need fsm and fuzzy for a gming engine [14:50] __sebs: but on the other hand, each module can be very handy as is [14:51] bradleymeck: use git submodules if need be [14:51] bradleymeck: having everything separated i find makes you have a more generic reusable api [14:52] __sebs: sounds much like svn externals [14:52] __sebs: probably a very good idea [14:54] bradleymeck: they are kinda like them, but can be a bit tricky if you peg them at the wrong place [14:58] sudoer has joined the channel [14:59] inimino: "Compile node.js for food. No, what a pancake, I have a 3 car its going." [15:00] derbumi has joined the channel [15:01] __sebs: express == very good [15:03] __sebs: hehe hummingbird is express [15:04] __sebs: like 3 different people showed me hummingbird in 60 Minutes right after someone posted a newsitem on it [15:05] Aria has joined the channel [15:15] softdrink has joined the channel [15:19] alexiskander has joined the channel [15:20] Aria has joined the channel [15:23] _announcer: Twitter: "began work on a new framework for node.js: http://github.com/myfreeweb/summerfile phpshnikam will go to the correct language (:" [ru]-- myfreeweb. http://twitter.com/myfreeweb/status/14980875842 [15:23] DracoBlue has left the channel [15:23] polotek_ has joined the channel [15:25] mscdex: is there something like HAProxy that allows keepalive (for comet stuff)? [15:26] mscdex: and ssl support for that matter? [15:26] mscdex: or is nginx my only real choice? [15:28] polotek_ has left the channel [15:29] joshthecoder has joined the channel [15:33] creationix has joined the channel [15:34] creationix has left the channel [15:37] mrjjwright has joined the channel [15:38] riq has joined the channel [15:55] dridge_ has joined the channel [16:04] _announcer: Twitter: "@ Outsider__ Cappuccino, CouchDB, Node.JS, NativeClient 10,000 longevity is in the bottom of this :-) Because of the uniqueness I mentioned earlier .." [ko]-- A.J. http://twitter.com/andrwj/status/14983297179 [16:04] Nohryb has joined the channel [16:04] binary42 has joined the channel [16:09] Aria has joined the channel [16:10] Guest95222: Woot! [16:10] maushu: They finally found the regex for e-mail holy grail! [16:11] bradleymeck: email holy grail? [16:11] maushu: /^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i [16:11] maushu: Thats the regex that validates all e-mails correctly. [16:11] bradleymeck: all groups are capturing? [16:13] mscdex: not really, it doesn't check valid TLDs ;-) [16:13] bradleymeck: mmm do we have an email module for node anywho? [16:13] Aria: Nor exclude example.{com,net,org} [16:13] maushu: mscdex, valid tlds? [16:14] mscdex: maushu: yeah, it doesn't check to see if the TLD exists or not [16:14] mscdex: just checks the length [16:14] maushu: ...you mean like .museum ? [16:14] mscdex: yeah [16:15] maushu: http://en.wikipedia.org/wiki/.museum [16:15] _announcer: Twitter: "http://bit.ly/aiwAoC ◊ #Redis client for #Nodejs"-- François-G. Ribreau. http://twitter.com/FGRibreau/status/14983960495 [16:15] mscdex: ? [16:15] maushu: That tld exists. [16:15] mscdex: yeah, and? :P [16:15] creationix has joined the channel [16:15] maushu: Tlds can be added and removed at any time. [16:16] mscdex: i'm saying the regex doesn't check to make sure someone doesn't enter something like this: root@domain.lolcats [16:16] mscdex: TLDs aren't added and removed that often though [16:16] maushu: mscdex, so? Someone in the future could get that email. [16:16] Aria: What's a "valid" email address to you? [16:16] mape: One that is valid according to the spec? [16:17] maushu: Yes. [16:17] mjijackson: Aria: A valid email address is one that you get from Hotmail, or Yahoo! [16:17] maushu: About size, structure, order, etc. [16:17] mape: http://code.iamcal.com/php/rfc822/rfc3696.phps [16:17] maushu: 4f7yh38<- is not a valid email. [16:17] mjijackson: you know, like mylolcatz3452@hotmail.com [16:18] maushu: 4f7yh38@fdsf.asd <- is a valid email. [16:18] Aria: foo@bar.baz.longdomain, however, is valid, and doesn't match that regex, ne? [16:18] maushu: It matches. [16:18] mitkok has joined the channel [16:18] Aria: Ah, okay then. [16:19] mscdex: fwiw here's a maintained list of currently valid TLDs: http://data.iana.org/TLD/tlds-alpha-by-domain.txt [16:19] stagas has joined the channel [16:19] Aria: ... It doesn't for me. [16:20] Aria: node> r = /^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i [16:20] Aria: node> r.test("foo@really.long.domaiiiiiiiiiiin") [16:20] Aria: false [16:20] rnewson has joined the channel [16:20] rnewson has joined the channel [16:20] ashb: the false escapign there makes things unreadable [16:20] Aria: Heh, yeah. [16:21] mjijackson: trying to invent a regex to parse all potentially valid email addresses is a mad man's game [16:21] mjijackson: you'll never get there [16:21] Aria: Sure you will. [16:21] Aria: The spec is clear and easy. [16:21] Aria: It just won't be a discriminating regex. A lot of stuff will match that you may not want. [16:21] mjijackson: Aria: then why was this regex just invented in 2010? [16:21] Aria: (But are valid, but not usable email addresses) [16:22] mjijackson: email and regexes have been around for decades [16:22] Aria: Oh, this regex fails in various ways. [16:22] Aria: And there's bunches that catch all valid emails. [16:22] mjijackson: Aria: right. [16:22] mjijackson: i see what you're saying [16:22] aconbere has joined the channel [16:22] Aria: "syntactically valid" and "useful" are entirely separate here ;-) [16:23] mjijackson: i just think it's entertaining every time some programmer sets his mind to creating the ultimate email regex. like it's never been attempted before! ;) [16:23] Aria: One could take all syntactically valid emails, then filter out ones with tlds that don't look up. That'd be reasonably reliable. [16:23] Aria: And filter out example.com,net,org [16:23] ashb: so long as you allow foo+bar@gmail.com i don't mind [16:24] mjijackson: Aria: right. you'd just have to keep updating the list of valid TLD's. granted, it probably doesn't change very often [16:24] Aria: There is an always up to date list of TLDs, actually. [16:24] Aria: DNS. [16:24] mjijackson: Aria: you can query DNS to find out all possibly valid TLD's? that's cool. [16:25] mjijackson: didn't realize that. [16:25] mjijackson: it's obvious now that you mention it. [16:25] Aria: Sure. Or more efficient to just check as you go, perhaps. [16:25] mjijackson: but that requires network access. you're cheating. ;) [16:25] Aria: "is THIS tld valid" [16:25] mscdex: almost the .test TLD is reserved [16:26] mscdex: by ICANN anyway [16:26] Aria: And .test is NXDOMAIN, so that works out ;-) [16:26] Aria: And I'm quite willing to cheat in this way: email is a network service. It seems sane to use that network to verify it [16:27] mscdex: and .example and .invalid and .localhost :P [16:28] Aria: All of which are NXDOMAIN! [16:28] mjijackson: there's a point when the price of accuracy exceeds the value of it [16:28] Aria: Yeah. [16:29] Aria: I'd just stick to accepting syntactically valid and then checking more thoroughly with network tests [16:30] mjijackson: my policy is to just check for syntactical validity and then try and send the bugger an email. [16:30] mjijackson: if it fails, shame on them [16:30] Aria: Hehe. [16:30] Aria: That ++ [16:30] mjijackson: they gave me a bad email address. [16:31] mAritz: hm... i have a function that checks whether something has been changed. if there are changes, it returns an array of those. if there are no changes, should it return true (as in all ok, no changes) or false (as in nope, no changes)? :D [16:31] inimino: mAritz: [] [16:32] mAritz: ok, that's how it is right now. [16:32] ryah: good morning people [16:32] mAritz: good morning :) [16:32] inimino: morning [16:33] ryah: http://www.geek.com/articles/gadgets/phd-student-gets-quadrotor-helicopter-moving-aggressively-20100528/ [16:34] markwubben has joined the channel [16:34] ryah: this is the most awsome thing i've ever seen [16:34] ryah: *awesome [16:34] Aria: ISN't IT! [16:34] Aria: I saw that last night. [16:35] ryah: my phd thesis would be to attach lasers to it [16:35] micheil: morning chaps' [16:35] ryah: micheil: howdie [16:38] maushu: ryah, I think lasers should stay on the sharks. Thank you very much. [16:38] inimino: lasers + quadrotor + node.js = skynet ? [16:39] micheil: ryah: MegaHex looks more awesome as far as power; but that demo does give some pretty impressive movement [16:39] mAritz: not though that apparently all sensors are relative to its starting parameters right now. [16:39] mjr_: ryah: I got my node pcap library to the point where it is better than tcpdump in some ways. http://github.com/mranney/node_pcap/tree/master/examples/ [16:40] mjr_: simple_capture.js is better at capturing packets on OSX than the tcpdump that ships with OSX, oddly. [16:42] brainproxy has joined the channel [16:43] ryah: mjr_: heh [16:43] ryah: define better? [16:43] ryah: more responsive? [16:47] mjr_: sometimes the OSX tool will buffer packets and not tell you [16:47] mjr_: so new packets show up, which causes some packets to be printed, but they aren't the ones that just showed up [16:48] mjr_: It can be very confusing. [16:48] micheil: mjr_: think I could hook pcap to a websocket server and stream the packets directly back to a browser? [16:49] jimbastard has joined the channel [16:52] jbrantly: quadrotor kinda reminds me of the missile defense stuff (http://www.youtube.com/watch?v=KBMU6l6GsdM) quadrotor is cooler though :) [16:53] JimBastard: quadroto? [16:54] maushu: JimBastard, ezmobius is your enemy. [16:55] Yuffster has joined the channel [17:00] _announcer: Twitter: "Installing node.js on FreeBSD and use under Nginx | Workshop Internet Developer http://dlvr.it/1Hvp2" [ru]-- Tech & Friki Stuff. http://twitter.com/FrikiFeeds/status/14986544375 [17:00] mAritz: does anyone of you know whether "caolan" (github name) is in irc from time to time? if so, under which nick? [17:02] micheil: mAritz: nup, no idea here [17:02] mAritz: hm, ok :/ [17:02] mAritz: what unit testing frameworks/tools do you use for node.js? [17:03] mAritz: i want to have to learn as little as possible, since i'm relatively new to unit testing and don't want to be scared away :D [17:03] ewdafa has joined the channel [17:03] inimino: mAritz: you can start with assert() and build it yourself as you go... [17:03] mAritz: currently i'm using his "nodeunit" module. but that has several problems, including obstruse documentation :( [17:05] JimBastard: sup maushu [17:05] maushu: Trouble ahead. [17:06] JimBastard: ? [17:08] ajpiano has joined the channel [17:08] softdrink has joined the channel [17:10] mscdex: maushu: don't worry, JimBastard is still on notice huhuhu [17:10] JimBastard: 23:44] ezmobius: basically a heroku type system but for full linux containers rather then just processes [17:10] JimBastard: thats not what we are doing [17:11] JimBastard: ezmobius looks pretty hardcore, he's probably years ahead of where we are [17:11] JimBastard: we are going niche node hosting [17:11] JimBastard: nodejs hosting for nodejs ninjas [17:11] JimBastard: automatic deployment = win [17:11] JimBastard: ive been saying this for years [17:12] mscdex: wow, that url in that last russian tweet contains a tutorial that points to an olllllld version of node [17:12] Aria: Yeahm 0.1.26 is like what, two months old now? [17:13] maushu: JimBastard, hes just making something that already exists, well, besides the heroku system. [17:13] JimBastard: how is your stuff going maushu ? [17:13] maushu: FINE, THANKS FOR ASKING. [17:13] JimBastard: lol [17:13] mscdex: lulz [17:13] maushu: ACTION dances naked. [17:13] ryah: Aria: 2010.01.20 [17:14] JimBastard: i got a consultation from tmm1 for our hosting platform. he sat on our couch and supervised [17:14] JimBastard: ahahahaha [17:16] maushu: Wut? [17:16] maushu: tmm1? [17:17] JimBastard: just some awesome developer [17:17] JimBastard: he might be lurking in the room [17:17] JimBastard: i was mostly making a joke [17:17] maushu: I don't get it. [17:17] JimBastard: i know [17:17] maushu: Your joke-fu is weak and out of context. [17:17] JimBastard: your context is weak and out of context [17:18] mscdex: javascript-fu! [17:18] JimBastard: hiyyya [17:18] maushu: context out of context? Hmmm. [17:18] JimBastard: still working on js-fu [17:18] JimBastard: got a bunch done last night [17:18] JimBastard: working on linqFu / queryFu [17:18] JimBastard: havent decided on a name [17:18] maushu: Isn't that the void? [17:19] JimBastard: we've pretty much taken like 80% of the underscore.js and added a shit ton of more awesome stuff and given it a better DSL [17:19] JimBastard: well, API [17:19] JimBastard: http://github.com/marak/javascript-fu [17:19] JimBastard: still working on it [17:20] maushu: I mean, if in the experimental universe of the statement we have a single entity in this case "context" and "out" is a point of reference of said entity outside of it's logical borders, then "out" of "context" would mean the void in the said experimental universe. [17:20] ashb: JimBastard: your Readme.md is wrong btw [17:20] JimBastard: ashb: for js-fu? [17:21] ashb: yeah [17:21] JimBastard: its not released [17:21] ashb: correction, your Readme.md is an abbomination [17:21] _announcer: Twitter: "Behind Cheméo, the technology http://laz.ly/ak #chemeo #python #mongodb #php #nodejs #nginx"-- Tomaž Muraus. http://twitter.com/KamiSLO/status/14987695813 [17:21] ashb: its html, not markdown [17:21] JimBastard: correction, its being autogenerated.....and is not complete [17:21] JimBastard: so? [17:21] JimBastard: whats wrong with html? [17:21] ashb: just saying the dateTimeFu example is not
 or similar
[17:21] JimBastard: that whole block is fucked up
[17:21] ashb: nothing wrong with the html. its just not markdown :)
[17:22] JimBastard: if it makes you feel better ill take out the mustache for {{{dateTimeFu}}}
[17:22] JimBastard: and yo
[17:22] JimBastard: html is way better then MD
[17:22] JimBastard: because i can reuse my documentation in the browser without having to implement a MD parser
[17:22] JimBastard: case closed
[17:22] maushu: ACTION sends the url of javascript-fu to legalities@microsoft.com.
[17:22] ashb: don't call it .md if it aint markdown :)
[17:22] JimBastard: lol
[17:22] JimBastard: fuuuuuu
[17:22] ashb: ;)
[17:22] ashb: JimBastard: also i've already written the MD parser for you >_>
[17:22] JimBastard: maushu: send them this one too http://github.com/marak/jslinq
[17:22] maushu: Hai!
[17:22] JimBastard: ashb: is it embedded in every single major browser ?
[17:23] JimBastard: caus i think html is
[17:23] ashb: JimBastard: psh. whatever.
[17:23] JimBastard: Original Project Home : Codeplex Sucks
[17:23] JimBastard: ^^ from github
[17:23] maushu: "getKeys"
[17:23] JimBastard: yep
[17:23] maushu: "not found"
[17:23] polotek: html is markdown
[17:24] polotek: it's just the suckiest kind of markdown
[17:24] JimBastard: damn you polotek and your logic
[17:24] polotek: it's like the with statement of markdown
[17:24] cloudhead has joined the channel
[17:25] richcollins has joined the channel
[17:25] JimBastard: if anyone has any API suggestions for js-fu i'd love to hear it
[17:25] JimBastard: still trying to finialize the API, its not an easy task
[17:25] JimBastard: the readme is a bit borked atm, but the info is mostly all there
[17:25] maushu: http://imgur.com/gallery/wfXPO
[17:25] ashb: JimBastard: combining a type library with date formatting in one library strikes me as wrong
[17:26] JimBastard: ashb: noted
[17:26] ashb: but separately each one seems cool
[17:27] polotek: ashb: I think the two are complimentary
[17:27] JimBastard: one of the main goals here is to unify existing functionality into one solid API. if you want to go download the separate pieces and configure them yourself, they all exist.
[17:27] polotek: Date is a type and when you're working with it, you need to format it more often than not
[17:27] ashb: ah then thats fine
[17:28] JimBastard: im considering making some "special moves"
[17:28] JimBastard: exports.bind = function(){}; exports.trigger = function(){}; exports.chain = function(){}; exports.tap = function(){}; 
[17:28] JimBastard: bind, trigger, chain, tap
[17:28] ashb: JimBastard: some links in the readme would be good in that case
[17:29] JimBastard: ashb: ill make sure to credit all the libs and to the og docs
[17:29] JimBastard: still missing that section
[17:29] JimBastard: all inline comments and credits are maintained
[17:37] JimBastard: mscdex: why did i get put on notice btw lol
[17:38] mscdex: http://i46.tinypic.com/8yuayp.jpg
[17:39] b_erb has joined the channel
[17:39] mscdex: more like JimBastard shenanigans ;-)
[17:41] polotek: my favorite quote from ryah's yui talk
[17:41] polotek: "threads should only be done by experts"
[17:41] polotek: "well I'm an expert"
[17:41] polotek: "umm, no"
[17:41] mscdex: heh
[17:41] JimBastard: ahahahaha
[17:41] JimBastard: people be hating
[17:45] maushu: http://imgur.com/gallery/4Vp9N
[17:45] maushu: If websitesd were peole.
[17:51] felixge has joined the channel
[17:51] felixge has joined the channel
[17:54] slaskis has joined the channel
[17:54] alexiskander has joined the channel
[17:55] Aria has joined the channel
[17:55] slaskis: i'm having a go at using adding some c binding with node js and all i get is "Bus error" any way I can get some more debug information?
[18:01] Aria: Time to hit it with the debugger then!
[18:01] polotek: slaskis: try running it through gdb
[18:02] Aria: Get a backtrace.
[18:02] polotek: gdb --args node yourscript.js
[18:02] slaskis: oh, cool
[18:02] polotek: Bus error is usually bad arguments
[18:03] ceej: wow haml.js is really bad for inline js
[18:03] ceej: if the code has { or } it errors out :/
[18:04] slaskis: i only get "no debug information available for X" messages, is that common? should i compile with some flag to enable them?
[18:06] polotek: oh yeah
[18:06] polotek: make clean
[18:06] polotek: ./configure --debug
[18:06] polotek: then make and install again
[18:06] slaskis: when compiling node.js or the bindings?
[18:06] polotek: that will generate the node_g executable that can be instrumented better by gdb
[18:07] polotek: node
[18:07] joshbuddy has joined the channel
[18:07] slaskis: polotek: allright, thanks
[18:09] mscdex: yay finally got haproxy setup and working properly
[18:10] mscdex: no more cross-domain requests heh
[18:15] rnewson has joined the channel
[18:15] atmos has joined the channel
[18:16] micheil: ryah: It could be worse, the school I attend there's a case of whooping cough going around.
[18:19] slaskis: allright, recompiled with --config but i still seem to get a ton of these: warning: Could not find object file "/private/tmp/homebrew-node-0.1.96-ux0g/node-v0.1.96/build/debug/src/node_7.o" - no debug information available for "../src/node.cc".
[18:19] slaskis: > gdb --args node_g test.js
[18:20] polotek: --config ?
[18:20] polotek: you ./configure --debug right?
[18:20] slaskis: and, debug i mean
[18:20] slaskis: hah, yeah :)
[18:21] sechrist has joined the channel
[18:21] polotek: and the make finished successfull and make install finished successfully?
[18:21] slaskis: actually, if i run node_g now i get a "Segmentation fault" so i guess my problem has shifted :P
[18:22] slaskis: polotek: yep
[18:22] polotek: that's good.  node_g is more strict about things so segfault means there's defintiely a problem in your binding
[18:22] polotek: not sure why gdb isn't giving you anything useful though
[18:23] polotek: I'm still getting used to using a proper debugger myself so I don't know a lot about it.
[18:23] slaskis: i tried to narrow it down, so i removed pretty much everything and placed a return in the start of my function just returning "Hello"
[18:24] slaskis: so now it works with node test.js (just saying "hello") but with node_g i get a segfault
[18:24] polotek: is your code on github or published somewhere?  if not do you want to send a gist or a pastebin I can look at?
[18:24] gwoo has joined the channel
[18:25] slaskis: polotek: sure
[18:26] slaskis: it really isn't much to it yet, and of course the problem might be in the lib i'm binding...but here's what i've got so far: https://gist.github.com/caf27437e1c62fa6eebc
[18:28] mikeal has joined the channel
[18:30] polotek: slaskis: looks okay to me
[18:30] polotek: but I don't know what the spotify api is doing
[18:31] slaskis: polotek: no one does ;)
[18:31] polotek: did you mean to pass a reference to your session ptr instead of the session pointer itself
[18:31] slaskis: polotek: actually, i was only copying their example: https://developer.spotify.com/en/libspotify/docs/session_8c-example.html
[18:34] polotek: that looks okay
[18:34] polotek: what does your js code look like?
[18:34] polotek: what are you doing with the return from init?
[18:34] slaskis: it's just a sys.debug( spotify.init() )
[18:34] sh1mmer has joined the channel
[18:36] charlesjolley has joined the channel
[18:36] creationix: inimino: nice blog post
[18:39] inimino: creationix: thanks
[18:40] creationix: I'm in the "use semicolons to end statements" camp, but I like the fair comparison of both sides
[18:40] inimino: that's what I was going for :-)
[18:40] inimino: it ended up longer than I expected, though
[18:40] creationix: I still think that omitting them at line endings is tricky for newbies just because it looks too much like c
[18:41] creationix: having the semi at the start of dangerous lines is technically great, but looks really wried to me
[18:41] inimino: yes, it does look different
[18:41] creationix: sadly, it's probably too long and technical for the people who really need the article
[18:42] inimino: hm, yeah, could be
[18:42] creationix: we should make a version of jslint for node that has a flag to switch between the two styles
[18:42] creationix: that would be cool I think
[18:42] inimino: yeah, I think isaacs wanted to work on that
[18:43] inimino: there's some code floating around that's a start in that direction
[18:43] creationix: that would be rad, especially if it could hook into require or something and refuse to load a module that didn't follow the settings
[18:43] inimino: yeah
[18:43] creationix: hmm, except maybe for third-party modules
[18:44] inimino: yeah, I don't think require is the hook of choice but something like that
[18:44] inimino: before committing or something
[18:44] inimino: npm lint
[18:44] maushu: npm skynet
[18:46] isaacs has joined the channel
[18:46] inimino: speak of the devil
[18:46] polotek: slaskis: Sorry, I don't have an idea of what's happening just looking at this code
[18:47] polotek: send your gdb output
[18:48] tmpvar has joined the channel
[18:48] slaskis: polotek: thanks for trying though :) i managed to get a proper message from that api (when using an invalid api key because i modified it for the gist) so it seems to be working. but when i fixed the api key i get the bus error again. this is the gdb output: https://gist.github.com/f698652332d8bd8b4bac
[18:49] creationix has left the channel
[18:49] slaskis: polotek: now i see, those warnings from gdb i can ignore?
[18:49] polotek: I wouldn't :)
[18:50] slaskis: now when i used gdb with node_g instead i got a better message: Program received signal EXC_BAD_ACCESS, Could not access memory.
[18:50] slaskis: Reason: 13 at address: 0x0000000000000000
[18:50] slaskis: 0x00000001000ea13d in v8::internal::Proxy::proxy ()
[18:50] polotek: you're using node from /usr/local/bin
[18:50] phiggins has joined the channel
[18:50] polotek: but it's looking for object files in homebrew
[18:50] polotek: is that right?
[18:50] polotek: is the homebrew one the only version you have installed?
[18:50] slaskis: yeah
[18:51] polotek: and those object files it's looking for, do they actually exist?
[18:51] polotek: or are they located somewhere else?
[18:51] polotek: Yeah sometimes it's hard to get real line numbers from gdb because you're using dynamic libraries
[18:51] slaskis: i think those was where homebrew did the build, they're gone now
[18:54] polotek: slaskis: http://getsatisfaction.com/spotify/topics/need_help_with_spotify_installation_on_mac
[18:54] polotek: probably the spotify lib
[18:54] polotek: are you no a mac?
[18:55] polotek: oh
[18:55] polotek: homebrew, obviously yes
[18:55] slaskis: yes :)
[18:55] slaskis: polotek: but i think that's more related to the spotify app than their api
[18:56] tmpvar: good day
[18:56] polotek: I'm sure their app uses the same code
[18:56] slaskis: true
[18:57] slaskis: but wouldn't gdb mention libspotify?
[18:57] polotek: that's what I meant by being flaky with dynamic libs
[18:57] polotek: node loads your binding dynamically
[18:57] slaskis: ah, because now i get no backtrace at all
[18:57] polotek: so it seems gdb has trouble really tracking what's happening
[18:58] slaskis: hmm
[18:58] slaskis: ¨
[18:58] slaskis: is there alternatives to gdb?
[18:58] polotek: nobody has been able to help me figure out how to get better output out of gdb
[18:58] polotek: it's only useful sometimes
[18:58] polotek: I'm sure there are, but I'm not familiar with them
[19:00] creationix has joined the channel
[19:04] slaskis: polotek: stepping through with gdb seems to make it atleast try to enter the dynamic lib, i got this backtrace: https://gist.github.com/164f051d7545c7d0151b
[19:04] mjr_: micheil: per your comment from earlier, you totally could stream back packets from pcap over websockets.  I'm already working on something like that.
[19:04] polotek: slaskis: did you say you could get output when running through just node?
[19:04] polotek: and it's only node_g that craps out?
[19:04] shajith has joined the channel
[19:04] micheil: mjr_: ha, cool
[19:05] micheil: hmm.. node-repl via web interface :D
[19:05] slaskis: polotek: well, only when i had an error in my api key
[19:06] sh1mmer has joined the channel
[19:07] mjr_: I've got a repl via websockets thing also, but it's part of a closed source project.  It's a really useful thing.
[19:07] micheil: oooh?
[19:07] micheil: which WS implementation are you using?
[19:07] mjr_: It isn't that hard to extend the existing replserver to talk websockets as well.
[19:07] mjr_: I just hacked it in manually.
[19:08] mjr_: Not implementing all of the elaborate features, but using the upgrade that's built in to node's http parser.
[19:08] micheil: mjr_: ah, okay; at any rate, it'll start breaking soon then
[19:08] richcollins has joined the channel
[19:08] polotek: slaskis: try setting a breakpoint before running the program in gdb
[19:09] polotek: it'll say it can't find the lib and it wants to set a Pending breakpoint
[19:09] mjr_: micheil: so there were breaking changes to the websocket protocol then?
[19:09] polotek: say yes
[19:09] polotek: then run it
[19:09] micheil: mjr_: yup
[19:09] polotek: it'll be able to break in your binding and then you can step through that
[19:09] micheil: the new sec-* stuff
[19:09] polotek: or at least that's the idea
[19:09] mjr_: well, shit.  What part broke?
[19:09] micheil: mjr_: the handshake
[19:09] micheil: if you don't authenticate properly, then the browser is to terminate the socket
[19:10] micheil: it's known as draft76+
[19:10] micheil: I've currently still gotta implement 76+ in my websocket-server
[19:10] mjr_: I guess that's better.  It'll break me for sure.
[19:10] micheil: but I know there is a fork of sockets.io by mscdex that has a proper handshake in it
[19:11] ryah: repl websockets !
[19:11] micheil: oh well, I've had a fun night playing artist... time for bed — it's 5am.
[19:11] micheil: ryah: it'll be awesome, you know it will be.
[19:11] mscdex: draft 76 sounds like a cool name for an action movie
[19:12] mjr_: On a fast network, it's hard to tell the difference between long poll repl and websocket repl, but with a little bit of latency, it's a huge win.
[19:12] slaskis: polotek: hmm, it just says "No symbol table loaded. Use the 'file' command."
[19:12] ryah: mjr_: hm - really?
[19:12] ryah: mjr_: long-poll with keep-alive is basically the same
[19:12] polotek: slaskis: okay let's try something else
[19:12] ryah: just slightly more verbose
[19:12] polotek: before you set the breakpoint
[19:12] polotek: run this
[19:13] mjr_: yeah, it can and should be.  But there's all sorts of magic that happens in the XHR layer that you don't get to control, like keepalive timeouts, max connections in the pool, to each server, etc.
[19:13] polotek: add-shared-symbol-files /path/to/your/binding/file
[19:13] ryah: mjr_: nod
[19:13] polotek: then set the breakpoint and run
[19:14] mjr_: With ws you for you sure get to keep a TCP socket open, and nobody else will take it. 
[19:14] slaskis: and the bindings file is the source file right?
[19:14] polotek: I'm just reading the docs for gdb
[19:14] slaskis: :D
[19:14] polotek: no the generated executable when you compile your binding
[19:14] mjr_: I need to go build a swing set in my back yard and stop thinking about networking.
[19:14] micheil: mjr_: unless you use long-polling with tokens
[19:14] mjr_: Free beer for anybody that wants to come help.
[19:15] slaskis: the .o or the .node file?
[19:15] mscdex: free node hosting instead? :P
[19:15] ryah: mikeal: http://gist.github.com/418467 updated
[19:15] ryah: mikeal: still not working properly
[19:15] mikeal: really?
[19:16] ryah: about 1/10 times the test doesn't pass
[19:16] ryah: not sure what's wrong
[19:16] ryah: possibly a bug in the utf8 decoder
[19:17] mikeal: does the HTTP response stream emit "close" when the response is finished?
[19:17] micheil: ryah: not sure when I'll have that Os module for you.
[19:18] micheil: ryah: I'm pretty sure I mentioned about making it a separate module, rather then munging sys or fs
[19:18] ryah: micheil: no
[19:18] devinus has joined the channel
[19:18] ryah: er that was for mikeal 
[19:18] micheil: erm
[19:18] mikeal: we should move the callback to "end"
[19:18] micheil: oh right.
[19:18] slaskis: polotek: well the add-symbols thing didn't do anything, but i tried "file" on those and it asked me to load symbol table from them. but then running breakpoint gave the same message again
[19:19] ryah: micheil: yeah, i gues
[19:19] ryah: er
[19:19] ryah: that was also for mikeal 
[19:19] micheil: this is just confusing.
[19:19] micheil: ryah: p chat.
[19:19] mikeal: hehe, tab completion FTW!
[19:19] mscdex: :P
[19:19] ryah: micheil: sorry - os module - yeah - well maybe
[19:19] admc has joined the channel
[19:19] micheil: ryah: does it make sense for it to be it's own module?
[19:20] ryah: micheil: i guess it doesn't symantically belong to "fs"
[19:20] micheil: because currently the sys module contains a lot of stuff that isn't "system" related, it's more.. logging.
[19:20] ryah: *semantically
[19:21] micheil: really: sys -> logger, os -> sys
[19:21] ryah: micheil: yeah the sys module is a mess
[19:21] micheil: that'd make sense
[19:21] ryah: sys -> util 
[19:21] micheil: hmm.. nawh
[19:21] polotek: ryah: did you ever look into how to get gdb to recognize dynamic node addons?
[19:21] micheil: based on what the api docs say sys is.
[19:22] ryah: polotek: you need to compile them with -g
[19:22] micheil: ryah: besides, going from sys -> utils is a full loop: it's already gone utils -> sys
[19:22] polotek: ryah: ah, thanks
[19:22] polotek: slaskis: try adding that flag to your compile step
[19:22] ryah: polotek: i'll put that into the node-waf thing by default
[19:23] slaskis: compile what with -g?
[19:23] ryah: i think everyone wants symbols
[19:23] polotek: ryah: yeah, very helpful
[19:23] mikeal: ryah: what part of the test is failing?
[19:23] pgriess has joined the channel
[19:23] slaskis: polotek,ryah: is it something to add to the wscript?
[19:24] mjijackson has joined the channel
[19:24] b_erb1 has joined the channel
[19:25] CIA-76: node: 03Ryan Dahl 07master * r2fa4de0 10/ tools/wafadmin/Tools/node_addon.py : addons should have debugging symbols - http://bit.ly/aTmAyh
[19:25] ryah: slaskis, polotek ---^
[19:25] ryah: mikeal: test/simple/test-pump.js errors out
[19:26] micheil: ryah: does sys require the inherits.. yeah it does.
[19:26] mikeal: which error tho?
[19:26] slaskis: ryah: cool, thanks
[19:26] micheil: ryah: probably remove sys.inherits from sys and in as a core function.. process.inherits or just inherits() or something
[19:27] ryah: mikeal: http://gist.github.com/418479
[19:27] mikeal: i can't make it fail
[19:27] micheil: then move the other methods to a logger module
[19:27] ryah: mikeal: (that output also exhibits an unrelated problem - stderr isn't being flushed completely)
[19:27] mikeal: finally, got it to fail
[19:28] slaskis: yay, breakpoint works! :)
[19:28] ryah: slaskis: did that work for you?
[19:30] okito has joined the channel
[19:31] shajith has left the channel
[19:31] slaskis: ryah: well i get symbols from the .node file now, which i didn't before. 
[19:31] polotek: mikeal's patches all worked for me
[19:31] polotek: unless there was debug output
[19:31] polotek: then it would cause other stuff to fail randomly
[19:31] polotek: mostly the http-upgrade
[19:31] polotek: test
[19:32] mikeal: ryah: something is wrong with the comparison
[19:32] okito has joined the channel
[19:32] mikeal: oh, nevermind
[19:32] dkastner has joined the channel
[19:33] mikeal: ryah: the length isn't the same when it fails
[19:33] mikeal: expected is +2
[19:35] micheil: polotek: http-update shouldn't fail.
[19:35] joshthecoder has left the channel
[19:35] polotek: micheil: I didn't look into it so I don't know
[19:36] polotek: but it would fail whenever I put sys.debug() in my pump test code
[19:36] polotek: if it helps I had two tcp servers running on two ports in my test
[19:36] polotek: but http-upgrade would fail with an assert error
[19:36] polotek: when I removed it, all was smooth
[19:37] micheil: anyway, I _was_ going to bed, so, g'night
[19:37] micheil: :P
[19:37] mikeal: ryah: this is kind of a bad file to use as a fixture, when the lengths don't match you can't figure out where it's getting chopped because the whole file is the same characters :)
[19:37] brainproxy has joined the channel
[19:37] ryah: mikeal: it's 10000 copies of the same character
[19:38] mikeal: right
[19:38] ryah: oh , yeah
[19:38] ryah: mikeal: maybe take out the setEncoding('utf8') and just look at how many bytes are coming in?
[19:38] ryah: should be 30000 total
[19:39] shajith has joined the channel
[19:39] mikeal: the lengths I have are 10010 and 10008
[19:39] ryah: 30000 bytes
[19:39] ryah: 10000 chars
[19:39] ryah: iirc
[19:41] Kiba has joined the channel
[19:41] Kiba: yo
[19:41] Kiba: I have no idea what I am doing
[19:41] Kiba: http://gist.github.com/418485
[19:41] Kiba: I am called setup
[19:41] Nohryb has joined the channel
[19:41] Kiba: but I need to get the document before I can assert anything
[19:41] _announcer: Twitter: "RT Just realized #apache & #perl have been deprecated & replaced by #lighttpd #nginx #python #ruby & #nodejs over a few years. @ysbaddaden"-- Jeremy Peterson. http://twitter.com/dunderline/status/14994552829
[19:41] Kiba: err..so I am trying to use callback...
[19:41] Kiba: apache is dead?
[19:42] polotek: Kiba: test_for_size never gets called
[19:42] polotek: you pass the function into setup but never actually call it
[19:42] polotek: it's not even listed in your args
[19:42] slaskis: how do you use the remote debugger with node.js?
[19:42] Kiba: polotek: oh.
[19:42] ryah: slaskis: there is some info on the wiki
[19:42] Kiba: ACTION is trying to understand what he learned yesterday
[19:42] mikeal: ryah: wow, i think there is a bigger problem here
[19:42] CIA-76: node: 03isaacs 07master * r3c7873b 10/ lib/sys.js : 
[19:42] CIA-76: node: Use duck-typing as well as instanceof in sys.inspect
[19:42] CIA-76: node: This makes it so that inspecting objects from other contexts works as expected. - http://bit.ly/bbrJES
[19:42] CIA-76: node: 03isaacs 07master * r82813f2 10/ lib/repl.js : Execute repl code in new context - http://bit.ly/dodPv3
[19:42] CIA-76: node: 03isaacs 07master * ra26f7d7 10/ lib/repl.js : Make require() from the repl be relative to cwd - http://bit.ly/drRmFe
[19:42] ryah: slaskis: http://wiki.github.com/ry/node/using-eclipse-as-node-applications-debugger
[19:43] slaskis: ryah: great, thanks
[19:43] ryah: slaskis: also check out http://github.com/smtlaissezfaire/ndb
[19:43] mikeal: there is one extra character for every write
[19:43] polotek: repl fixes
[19:43] polotek: nice
[19:44] polotek: mikeal: >_<
[19:44] mikeal: and sometimes readFileSync also has a couple extra characters, what the hell
[19:44] ryah: mikeal: hmm
[19:44] aconbere: anyone ever used 'inspec' in the browser? (or ever)
[19:44] Kiba: polotek: to sole my problem, I must set a parameter in setup?
[19:45] polotek: you're passing a function into setup
[19:45] Kiba: s/sole/solve
[19:45] polotek: how areyou going to call it if you don't give it a name :)
[19:45] Kiba: so instead of function setup(), I do function setup(callback)
[19:45] Kiba: and then call setup
[19:45] Kiba: ACTION is getting confused
[19:46] Kiba: but I made progress!
[19:47] polotek: you're getting mixed up between functions that will execute your callback and those that you have to do something with yourself
[19:47] polotek: db.getDoc takes a callback.  it's going to do some asynchronous work and then call your function when it's done
[19:47] Dennus has joined the channel
[19:47] polotek: the setup function belongs to your code.  if you pass a function it, you have to call it yourself.
[19:49] mikeal: the missing characters aren't at the beginning or the end
[19:52] mikeal: ok, ryah, this is weird
[19:55] mikeal: when it fails, the byte size of the buffer is the same
[19:55] mikeal: it's always 30K
[19:55] mikeal: it's just the toString() that doesn't match
[19:55] ryah: it must be the utf8 decoder
[19:55] ryah: i guess ?
[19:56] mikeal: yeah
[19:59] ryah: so maybe we should change the pump test to not use setEncoding('utf8') on the recving socket
[19:59] ryah: and just check that it gets the right number of bytes
[19:59] ryah: ?
[19:59] mikeal: is there a way to take an array of buffers and toString them together instead of doing a toString() on each one individually
[20:00] ryah: mikeal: well - not exactly - but checkout lib/utf8decoder.js
[20:01] mikeal: so, what happens when you send a chunk to this and the trailing byte is only one byte of a 3 byte character?
[20:03] ryah: the extra byte is stored in the stream._decoder object
[20:04] ryah: and when the next part comes it puts it together
[20:04] ryah: well, at least that's what is supposed to happen
[20:05] mikeal: ok
[20:06] isaacs has joined the channel
[20:06] mikeal: yeah, that has gotta be the issue
[20:06] ryah: so that should be independent of the pump()
[20:07] ryah: we should be cathing that in test/simple/test-utf8-decoder.js
[20:08] _announcer: Twitter: "finished up first month with #extjs, cool company, cool team, cool projects! whoop #nodejs will dominate when we are done"-- TJ Holowaychuk. http://twitter.com/tjholowaychuk/status/14995852816
[20:08] CIA-76: node: 03Ryan Dahl 07master * r78e49f1 10/ (6 files in 2 dirs): Rename node_net2.cc to node_net.cc - http://bit.ly/d5HL0D
[20:09] mikeal: assert.equal should really tell you what the two values ere
[20:09] mikeal: er are
[20:09] ryah: mikeal: it does
[20:09] ryah: i think
[20:10] mikeal: yup
[20:10] mikeal: ok, I've got this showing the issue
[20:13] isaacs: mikeal, ryah: it does unless you give it a message.
[20:13] mikeal: isaacs: i see
[20:14] isaacs: mikeal: i usually put the values in the message.  assert.equal(a, b, "a : "+a+" b:" + b)
[20:14] creationix has joined the channel
[20:14] CIA-76: node: 03Ryan Dahl 07master * rc82d646 10/ lib/ini.js : Deprecate the 'ini' module - http://bit.ly/dmqMIO
[20:15] mikeal: ryah: you'll love this
[20:15] mikeal: the bad characters, are in the expected string, not the string we get from pump
[20:16] ryah: mikeal: interesting
[20:16] creationix has joined the channel
[20:16] creationix has left the channel
[20:16] ryah: mikeal: especially because readFileSync is pretty simple - it allocates a 30000 byte buffer
[20:16] ryah: reads the whole file in
[20:16] ryah: toStrings it
[20:16] mikeal: here is the new test
[20:16] mikeal: http://gist.github.com/418512
[20:16] mikeal: when it fails it prints each bad character
[20:17] mikeal: it usually fails when, get this, the file is clearly cached and the entire thing is emitted as one event :)
[20:17] ryah: hm
[20:18] mikeal: this is the output
[20:18] mikeal: http://gist.github.com/418516
[20:20] polotek: mikeal: how is it only 10 bytes off, but reporting 15 bad bytes?
[20:21] mikeal: it's 15 characters off
[20:21] polotek: oh okay
[20:21] mikeal: i only iterate over the number of characters in the buffer
[20:21] mikeal: there are more in expected
[20:21] polotek: word
[20:22] ryah: mikeal: http://gist.github.com/418522
[20:22] mikeal: haha, that's probably a much easier way to test this
[20:23] ryah: yeah, now i see that readFileSync isn't using buffers
[20:23] ryah: so the problem is clear 
[20:23] ryah: :)
[20:23] ryah: i guess felix didn't update that one
[20:24] vanstee has joined the channel
[20:25] mikeal: ryah: here's the pump test fixed to check byte length
[20:25] mikeal: http://gist.github.com/418526
[20:26] rnewson has joined the channel
[20:26] rnewson has joined the channel
[20:27] felixge has joined the channel
[20:27] mikeal: fixed
[20:27] mikeal: i created one unnecessary file read stream
[20:28] hellp has joined the channel
[20:28] slaskis: i seem to get better (or at least different) error messages now, before the segfault: https://gist.github.com/74002300c63cfbf8676b anyone knows what they could mean?
[20:30] polotek: slaskis: you've got a bad handle type somewhere
[20:30] polotek: unfortunately it's not being caught until v8 tries to cast it
[20:30] polotek: or a handle pointing to a bad object type more likely
[20:31] slaskis: polotek: oh, and by handle you mean something that gets returned?
[20:31] polotek: Handle is a v8 type for referencing javascript types
[20:31] ryah: mikeal: im fixing readFilesync
[20:32] polotek: did you get a stack trace?
[20:32] mikeal: cool
[20:32] slaskis: nope, i ran it without gdb and got that message
[20:33] polotek: and gdb gave you nothing?
[20:33] slaskis: wow, i got plenty of stuff now :)  https://gist.github.com/8aef3822915dc91b89ee
[20:34] polotek: still bad memory at 0x0
[20:35] polotek: I'm pretty sure that's not node
[20:35] slaskis: yeah, me too
[20:35] slaskis: it seems to come after a short while as well
[20:36] polotek: are there some separate tests for the spotify lib?
[20:36] polotek: you should run those outside of node and see if you get something similar
[20:36] slaskis: like the sp_session_init method (which is the only one i call) starts new threads or something
[20:36] polotek: oh
[20:36] polotek: ryah: what happens if addon code tries to use threads?
[20:37] polotek: slaskis: you should definitely write a quick test of that spotify lib outside of node
[20:38] slaskis: polotek: yeah, i guess i'm starting in the wrong end with this ;)
[20:38] slaskis: oh well, learned how to use gdb today at least
[20:39] CIA-76: node: 03Ryan Dahl 07master * r1a5acd9 10/ (9 files in 3 dirs): 
[20:39] CIA-76: node: API: readFileSync without encoding argument now returns a Buffer
[20:39] CIA-76: node: Correctly load utf8 data; add a test test-fs-read-file-sync.js - http://bit.ly/d84mfR
[20:39] ryah: polotek: you can use threads 
[20:39] ryah: polotek: you just can't touch v8 in your thread
[20:39] mikeal: oh wow, that's gonna break some people's code now :)
[20:39] polotek: mikeal: oh yeah
[20:39] mikeal: ryah: so the default is 'binary' now?
[20:40] ryah: 'binary' is different than buffers
[20:40] ryah: 'binary' is a string encoding where you fill the first 8bits of each 16bit char with data
[20:40] ryah: buffer is a different type
[20:40] ryah: trying to get rid of 'binary' slowly
[20:40] ryah: and get people to only use buffers
[20:41] mikeal: i see
[20:41] mAritz: is there an article to read up on buffers in node somewhere?
[20:42] mikeal: http://nodejs.org/api.html#buffers-3
[20:45] ryah: i'm still getting a problem with pump
[20:46] aconbere has joined the channel
[20:50] polotek: haha, yep libxmljs tests are borked
[20:50] felixge: ryah: I have the new version of transloadit running, do you now of any outstanding HTTP / Net bugs that need fixing before releasing it?
[20:50] Kiba: are all functions in node.js synchrononous?
[20:50] ryah: felixge: not that i know of
[20:50] Kiba: asynchronous*
[20:50] ryah: Kiba: yes
[20:50] maushu: ryah, I thought 'binary' send a buffer, not a string.
[20:50] stagas has joined the channel
[20:50] ryah: Kiba: well both? :)
[20:50] maushu: *sent
[20:51] felixge: ryah: what I'm most afraid of are any segfaults / scenarios where node would die completely : )
[20:51] felixge: ryah: anything else we can live with
[20:51] mikeal: ryah: is it the same problem?
[20:51] felixge: ryah: anyway, need help with anything else otherwise?
[20:51] ryah: felixge: we're trying to get pump working
[20:51] ryah: mikeal: yes
[20:51] felixge: ryah: very cool
[20:51] polotek: Kiba: node is single threaded, functions run synchronously
[20:52] maushu: Well, why not return a Buffer everytime the programmer requests a 'binary'?
[20:52] mikeal: and it's not because readFileSync is returning things improperly?
[20:52] polotek: but if you call a function inside there that is asynchronous it will return before your callback is executed
[20:52] felixge: ryah: exiciting! :)
[20:52] ryah: felixge: http://gist.github.com/418549
[20:52] ryah: felixge: if you're interested in helping
[20:52] polotek: in fact your function will probably end before the callback gets executed
[20:52] polotek: And that's how it's supposed to work
[20:52] felixge: ryah: headed for a movie in 10min, but got some time for hacking tomorrow
[20:52] felixge: ryah: looks pretty simple
[20:53] felixge: ryah: is pause() guaranteed to not emit further events?
[20:53] felixge: * guaranteeing 
[20:55] felixge: mikeal: this certainly needs error handling
[20:56] polotek: felixge: gotta get it working for the nice case first right?
[20:56] felixge: mikeal: not sure about the behavior, but it seems reasonable to at least stop the pumping once either stream emits an error
[20:56] felixge: polotek: it looks like it should be working
[20:56] ceej: so it turns out using ejs is 100000x better than using haml.js
[20:56] polotek: felixge: indeed :) but hence ry and mikeal's frustration
[20:57] polotek: it is actually "working" but the tests fail because the data on either end doesn't match exactly
[20:57] felixge: another problem: The pump callback should fire after the last 'drain' event, otherwise data might still be flushing to the writeStream
[20:57] felixge: polotek: yeah, that should be fixed first :)
[20:58] polotek: felixge: drain thing might be a clue
[20:58] ceej: http://local.cj.nu:3000/ running node.js and ejs
[20:58] ceej: off my local machine
[20:59] ryah: ceej: whats that empty box?
[20:59] felixge: polotek: potentially, need to look at the test case
[20:59] ceej: ryah: it's an empty browser, it's going to show a live example of the script
[20:59] mde: ceej: Which EJS are you using?
[20:59] ceej: the one with express
[20:59] mde: And what makes it better?
[20:59] ceej: than haml.js?
[21:00] mde: Yes.
[21:00] felixge: polotek: actually no, on process.exit everything is flushed
[21:00] ceej: everything haml.js is missing a lot of stuff even if and else doesn't work
[21:00] felixge: ryah: I think the problem is using assert.equal()
[21:00] ceej: with ejs you just use normal js
[21:00] ryah: felixge: why?
[21:00] mde: I mean, I'm not a haml fan, but I know some people really like it.
[21:00] felixge: ryah: try assert.deepEqual
[21:00] felixge: ryah: in JS {} != {}
[21:00] mde: Ah, interesting, okay.
[21:00] Aria has joined the channel
[21:00] mikeal: felixge: the only issue with error handling is that it obscures and hides the error from developers
[21:00] ceej: mde: like this http://pastie.textmate.org/private/3niyquialftlxxrc8rlriq
[21:01] mde: Yeah, I prefer having an actual language to use, even if it can lead to abuse.
[21:01] mikeal: if you don't add an error handler then it'll throw
[21:01] felixge: mikeal: maybe the pump should return an event emitter which emits it's own error event, so the read/write errors wouldn't be silenced 
[21:01] scudco has joined the channel
[21:01] mde: ceej: Yes, I'm using my own EJS impl in Geddy. I wrote it a couple of years ago. :)
[21:01] mikeal: i'm going to write something like that
[21:01] ceej: :)
[21:01] mikeal: but i'm not sure if it should be part of node core
[21:01] felixge: ryah: gotta catch the movie now, let me know if the assert was the catch
[21:02] ryah: felixge: it wasn't
[21:02] ryah: felixge: later
[21:02] ryah: i changed to deepEqual, same
[21:02] felixge: ryah: too bad, will look at it again tomorrow if the bug is still arround
[21:02] mde: ceej: Be sure to kick the tires on Geddy, too. I need some feedback.
[21:02] ryah: i think i'm going to do 0.1.97 now
[21:02] scudco has left the channel
[21:02] ryah: any objections?
[21:02] polotek: mikeal: that's why you didn't like my pumplink idea ;)  you've already got your own schemes
[21:02] mde: If you get a chance. 
[21:02] mikeal: once you think about a few features
[21:02] mikeal: you just keep finding more
[21:03] polotek: ryah: best to get it out there so people can start dealing with readfilesync
[21:03] mikeal: and eventually this is so big it's a whole new big module
[21:03] mikeal: and i'm just not sure if something that big should be in node core
[21:03] polotek: mikeal: no I agree, I like it better as a separate module
[21:03] ceej: mde: looks interesting 
[21:04] polotek: but if the simple pump is in node-core most people will end up using that
[21:04] mde: ceej: It's got Rails-style scaffold working now, and the model/validation code is shared between client and server.
[21:04] mikeal: and letting the original errors throw instead of trying to handle them and emit on another event emitter is part of just keeping it small and letting people use it who don't really understand streams
[21:04] polotek: because there will be a few stream-utils packages competing
[21:04] ceej: mde: just made a fork http://github.com/cj/geddy i'll check it out later
[21:04] mde: ceej: The only supported DB right now is Postgres, but something non-relational will come next.
[21:04] mikeal: for the most part, node core doesn't attempt to handle errors for you, it throws them
[21:05] mde: Excellent, thanks man. I'll look forward to the feedback.
[21:05] mikeal: if the error throws, it'll stop pumping :)
[21:05] polotek: yeah but you also can't catch it
[21:05] ryah: polotek: you can listen on each stream for error
[21:06] mikeal: exactly
[21:06] ryah: i think stream utils should be core - node is all about streaming
[21:06] ryah: i just want to start slowly :)
[21:06] polotek: ryah: okay, but you'll have to keep refs to both streams
[21:07] ryah: polotek: yeah
[21:07] polotek: to be able to do something sensible
[21:07] ryah: polotek: maybe we'll have a couple callbacks for pump()
[21:07] mikeal: you had to pass them to pump so you have a reference :) and pump will keep the ref in memory until the end of the pump anyway
[21:07] polotek: yeah I know that
[21:07] ryah: pump(a,b, { error: function (err, stream) {}, complete: ... }
[21:07] polotek: I'm just saying it's getting away from the simple usage case
[21:08] mikeal: for the most part, during development, i just wanna hook two streams together and if there are errors i want them to throw and be clear
[21:08] polotek: the only thing you can do is end either or both streams
[21:09] mikeal: no, i want it to throw and crash node and show me the exception :)
[21:09] polotek: the way it's set up right now you can't unlink them or do anything about the err
[21:10] polotek: mikeal: I'm all about getting the simple case of pump working for development and going from there
[21:10] mikeal: once you want to handle the error, you just add an error listener on the input stream
[21:10] polotek: I guess I"m just not clear what the vision is for the version that gets committed
[21:10] Kiba: unit testing asynchronous code is hard :/
[21:10] Kiba: especially with a bunch of asynchronous code :/
[21:10] mikeal: i find it easy in node, if you don't try to use some framework
[21:11] polotek: doesn't matter, I'm not trying to muddy the waters
[21:11] Aria: Yeah. . . I didn't have too much trouble either.
[21:11] polotek: even though I seem to be doing a bang up job anyway
[21:11] mikeal: you just need to do it the way the node unittests do
[21:11] mikeal: where each one is executable
[21:11] Aria: Just gotta use tests that'll wait to run until all the callbacks are complete.
[21:11] mikeal: Aria: which node does by default for most cases
[21:11] Aria: Yeah, exactly.
[21:12] Kiba: unit testing node do that?
[21:12] Aria: test.blah, test.done()
[21:12] mikeal: it's a lot harder in languages that exit at the end of the input file 
[21:12] Aria: Yeah.
[21:12] Kiba: Aria: well..what if you need to like create...then save..and then delete in that order?
[21:12] Aria: Since you have to have promises, Thread.joins, or whatever.
[21:13] mikeal: Kiba: write it how you normally would
[21:13] mikeal: if it weren't a test
[21:13] Aria: Kiba: So in the callback to create, start a save. In the callback to save, delete. In the callback to delete, call test.done
[21:13] mikeal: in the create callback save, in the save callback delete
[21:13] mikeal: stop trying to create a framework that has some auto-magic execution of functions in order
[21:13] Aria: Emit events if you want to decouple somewhat.
[21:13] mikeal: just have a regular file that you run that is self executing
[21:14] polotek: Kiba: really recommend you take a look at the node tests
[21:14] mikeal: yeah
[21:14] Kiba: async make my brain hurts
[21:14] mikeal: the only thing i really want is a script that collects the files and runs them in a sub process with a timeout
[21:14] polotek: start in test/simple/
[21:14] Kiba: ACTION goes look at unit test
[21:15] mikeal: Kiba: writing a unittest isn't any harder than writing normal async code if you don't try to use a test framework and just assert thing in a runnable file
[21:15] mikeal: s/thing/things
[21:16] mscdex: pump it up!
[21:17] Kiba: there's lot of unit tests in test/simple
[21:17] ceej: would anyone be able to help me with this? http://pastie.textmate.org/private/bq6tevq9yiopentmrbjg
[21:18] mscdex: ceej: run as root
[21:18] mscdex: the flashsocket listens on port 843 (iirc) and ports that low require root
[21:19] Aria: (or hacking with your OS to allow them to non-root users)
[21:19] richcollins has joined the channel
[21:19] mscdex: or if you don't care about using flashsocket, just remove it from the transport list
[21:19] isaacs has joined the channel
[21:19] ceej: mscdex: thank you that worked but now i get http://pastie.textmate.org/private/jddrpwpmgzi9dhzjk0iefa
[21:20] alexiskander has joined the channel
[21:20] _announcer: Twitter: "This weekend, I'll take a few minutes to play with #firetail. You should too http://github.com/astro/firetail #nodejs #xmpp #comet"-- superfeedr. http://twitter.com/superfeedr/status/14999209500
[21:20] mscdex: hmm
[21:20] Aria: Oooh.
[21:20] ceej: o now it worked...
[21:20] Aria: I was gonna play with stuff like this weekend.
[21:21] ceej: it's like the port stayed open awhile after the node was terminated 
[21:21] mscdex: ceej: yeah
[21:24] ceej: mscdex: do you know client side how to change the port it's looking for?
[21:25] aho has joined the channel
[21:26] admc has joined the channel
[21:30] javarants has joined the channel
[21:31] javarants has left the channel
[21:32] fyorl has left the channel
[21:34] stagas has joined the channel
[21:35] ceej: this example just doesn't work..... http://thechangelog.com/post/456659159/socket-io-multi-transport-socket-server-for-node-js
[21:38] mscdex: ceej: the demo that comes with socket.io-node uses a specific port in the constructor options
[21:38] mscdex: look at test/chat.html
[21:40] stagas: hm can you get an array of keycodes of all keys pressed simultaneously on the keyboard somehow in js in the browser?
[21:40] ceej: mscdex: with io.listen(server); can you still do that if you're using express?
[21:41] mscdex: ceej: i've never used express, so i can't really say
[21:41] stevendavie has joined the channel
[21:49] PyroPeter has joined the channel
[21:50] PyroPeter has joined the channel
[21:50] JimBastard has joined the channel
[21:50] PyroPeter has joined the channel
[21:51] JimBastard: baby you know ima take care of you, caus you say you got my baby and you know it aint true
[21:52] mikeal: you have issues dude
[21:52] mikeal: :)
[21:53] jsilver has joined the channel
[21:54] isaacs: ACTION <3 #node.js
[21:54] isaacs: what would this room be without the occasional vaguely (or not so vaguely) uncomfortable vibe that JimBastard brings.
[21:55] JimBastard: :-)
[21:55] mde: Haha
[21:57] Nohryb has joined the channel
[22:03] aconbere has joined the channel
[22:06] paul_irish has joined the channel
[22:06] JimBastard: ACTION is listening to Wu-tang versus Beatles - Enter the Magical Mystery Chambers
[22:06] JimBastard: hence the ODB quote
[22:08] polotek has joined the channel
[22:09] binary42 has joined the channel
[22:09] paul_irish: inimino: great post on semicolons. really fine work.
[22:10] maushu: A way to send file descriptors would be good.
[22:10] mikeal: how long has nodeblogs been down?
[22:11] ceej: hmmm socket.io seems to be connecting twice
[22:11] ceej: the is the logs from one browser connecting http://pastie.textmate.org/private/jzsp9ahmbtlknac57lo6a it connects twice then disconnects..... is there a reason it would do that?
[22:12] polotek: damn
[22:12] polotek: reading back in the logs
[22:13] polotek: missed JimBastard's ODB reference
[22:15] ceej: man this is annoying.... it's kinda put a halt on things
[22:16] pkrumins: how is it possible that sourceEnd in `buffer.copy(targetBuffer, targetStart, sourceStart, sourceEnd)` is sometimes length and sometimes end address?
[22:18] ceej: http://local.cj.nu:3000 you cans see it's only adding the websocket container once
[22:19] ceej: seems like a bug with websockets swf
[22:21] tmpvar has joined the channel
[22:24] sechrist__ has joined the channel
[22:25] softdrink has joined the channel
[22:25] polotek_ has joined the channel
[22:28] ceej: hmmm so socket.io only seems to work with chrome
[22:28] mscdex: ceej: if you're sure it's using the flashsocket transport, just comment or remove it out or remove it from list of transports
[22:28] mscdex: ceej: what other browsers are you trying it on?
[22:30] mscdex: ceej: i've tested socket.io on chrome, firefox and ie6+
[22:31] _announcer: Twitter: "Hacking on some #node.js and #twitter #chirp stream. I wish I was at #twitter_hackfest"-- julien. http://twitter.com/julien51/status/15002488596
[22:31] mscdex: ceej: also, are you connecting to the socket.io server on a different port than the web server hosting the socket.io client/browser javascript?
[22:32] mscdex: if so, you're probably running into cross-domain issues which the main socket.io repo doesn't handle yet. i've forked it with changes to allow cross-domain requests
[22:34] mikeal: where do you register .io domains?
[22:37] JimBastard: lol
[22:37] JimBastard: io.io
[22:37] JimBastard: nic.io
[22:37] JimBastard: or you could just travel to the indian ocean
[22:37] ceej: mscdex: it's on the same server.....
[22:37] JimBastard: mikeal
[22:37] ceej: http://local.cj.nu:3000/
[22:38] ceej: http://pastie.textmate.org/private/wnbsnqbcqelzka4rakwb3a
[22:44] mcarter has joined the channel
[22:46] fizx has joined the channel
[22:47] ceej: mscdex: it also seems to be crashing chrome when someone joins
[22:56] ceej: member:mscdex: I just tried your socketio and it errors out
[22:56] ceej: http://pastie.textmate.org/private/iwhtgrgffapbil83afcyma
[23:00] ceej: fixed that was missing js-oo
[23:01] smtlaissezfaire has joined the channel
[23:02] ceej: member:mscdex: so your version seems to work just fine.....
[23:04] ceej: it looks like chrome doesn't send data
[23:08] ceej: wow and for some reason the page won't even load in IE :/
[23:12] hellp has joined the channel
[23:13] tilgovi has joined the channel
[23:15] ceej: and safari connects twice then disconnects 
[23:17] phiggins has joined the channel
[23:22] RH2 has joined the channel
[23:22] RH2: tmpvar, haha!
[23:23] RH2: :)
[23:23] ceej: seems like issues with websockts, i'm just forcing it to always use xhr-multipart seems to do the trick for now
[23:27] devinus has joined the channel
[23:28] rnewson has joined the channel
[23:29] ceej: does anyone know why node.js wouldn't show front end for IE?
[23:30] ceej: it was working fine before now it's stopped
[23:30] sechrist: ceej: wat
[23:30] ceej: http://local.cj.nu:3000/
[23:30] sechrist: it's not publicly accessible
[23:30] ceej: yes it is
[23:31] sechrist: eh nope
[23:31] sechrist: conref
[23:31] sechrist: from 3 servers
[23:31] ceej: can you try now
[23:31] sechrist: there
[23:31] ceej: it works if i do run() but not run(3000,'local.cj.nu')
[23:32] ceej: my hosts are setup correctly 
[23:32] sechrist: do it by ip
[23:32] sechrist: if you must do that
[23:32] ceej: ah ok
[23:32] sechrist: you can't bind a port specifically to a domain
[23:32] sechrist: if that's what you were thinking
[23:32] sechrist: anyway yeah it's serving html
[23:32] soko has joined the channel
[23:33] sechrist: if it's broken in IE -- it's your markup
[23:35] mitkok has joined the channel
[23:42] mikeal has joined the channel
[23:42] binary42 has joined the channel
[23:43] felixge: Kiba: re unit testing async code: http://github.com/felixge/node-gently
[23:45] polotek: does the "close" event fire on http.response when you hit the stop button on a streaming response?
[23:46] polotek: or rather is it supposed to?
[23:46] mikeal: ryah said earlier that it doesn't
[23:46] mikeal: close is kind of specific to file handlers and sockets
[23:46] mikeal: and http is higher level, i wouldn't rely on anything other than "end"
[23:47] polotek: ah
[23:47] polotek: well end is different I thought
[23:47] polotek: it's emitted when some other func calls res.end()
[23:47] polotek: to signal that all data has been sent and the response is done
[23:47] polotek: it's not emitted when the browser closes the connection before it's done
[23:48] mikeal: actually, it's before that
[23:48] mikeal: it's scoped to EOF or EOT or FIN
[23:48] mikeal: what ever the end character of a transmission is
[23:49] polotek: right
[23:49] polotek: so res.end() writes EOF
[23:49] polotek: and then emits "end"?
[23:49] mikeal: if res is a file
[23:49] polotek: but http doesn't do any of that?
[23:49] mikeal: if res is HTTP then it's a little more variable
[23:50] polotek: but it definitely doesn't happen with the client ends the connection?
[23:50] polotek: is there any way to determine that in node right now?
[23:50] mikeal: there is an end of entity body character that is sent at the end of a completed entity body
[23:50] mikeal: but if you already sent a content-length and you haven't finished you have to close the socket
[23:50] polotek: it's chunked
[23:51] mikeal: if it's chunked it'll send 0\r\n\r\n
[23:51] polotek: I'm not sure I'm explaining this right
[23:51] polotek: sorry
[23:51] rictic has joined the channel
[23:52] mikeal: actually 0 and then two end of line characters
[23:52] polotek: I'm running a server and sending a chunked response to the browser
[23:52] polotek: I'm controlling the stream
[23:52] mikeal: the end of line character can be set to other crazy stuff via headers
[23:52] polotek: the browser is receiving the stream, but the user hits the stop button
[23:53] polotek: what's sent back to the server?  and can I get an event for that in node?
[23:53] mikeal: the client will close the connection
[23:53] mikeal: it just closes the socket
[23:53] polotek: that's what I thought and why I was looking for response.close
[23:53] mikeal: it doesn't send anything 
[23:53] polotek: but you're saying that doesn't work with http?
[23:53] polotek: or I was looking for the "close" event from response that is
[23:53] mikeal: actually, what you'll probably get is an "error" emitted on the client object
[23:53] polotek: ah, lemme try that
[23:54] polotek: yeah, i'm not listening for err on response
[23:54] Nohryb has joined the channel
[23:54] mikeal: i think unexpected termination is an error event, but it could just be a close event
[23:54] mikeal: but i'll be on the client object, not on the response object
[23:55] mikeal: oh wait, i'm thinking about this as a proxy
[23:55] polotek: no
[23:55] polotek: I'm running the server
[23:55] mikeal: i bet it's on the request
[23:55] polotek: I'm listening for req "error"
[23:56] polotek: nothing
[23:56] mikeal: that's where i would guess itis
[23:56] mikeal: this might just not be hooked up yet
[23:56] mikeal: the http stuff just got all the stream support
[23:56] mikeal: i gotta run
[23:56] mikeal: dinner time