[00:00] RayMorgan has joined the channel
[00:19] jed has joined the channel
[00:26] dancrew32 has joined the channel
[00:34] BBB has joined the channel
[00:34] r11t has joined the channel
[00:36] JimBastard has joined the channel
[00:40] sudoer has joined the channel
[00:40] nodejs_v8 has joined the channel
[00:40] jspiros has joined the channel
[00:42] nodejs_v8 has joined the channel
[00:46] kriszyp has joined the channel
[00:47] devinus has joined the channel
[00:47] Tim_Smart: Hmm I have got two blog post lining up for micheil. One I'm working on now, which is labeled "deploying node" and another "load balancing node"
[00:47] Tim_Smart: I'll write the load balancing one after I have played with nginx a bit more
[00:52] _Ray_ has joined the channel
[00:55] brapse has joined the channel
[01:04] joshbuddy has joined the channel
[01:06] tmpvar has joined the channel
[01:07] technoweenie has joined the channel
[01:08] tmpvar_ has joined the channel
[01:10] joshbuddy_ has joined the channel
[01:10] joshbuddy_ has joined the channel
[01:13] Tim_Smart: nodejs_v8: [,name,value] = "name123".match(/(name)(.*)/);
[01:13] nodejs_v8: Tim_Smart:
[01:13] Tim_Smart: nodejs_v8: [,name,value] = "name123".match(/(name)(.*)/); [name, value]
[01:13] nodejs_v8: Tim_Smart:
[01:13] Tim_Smart: nodejs_v8: "test"
[01:13] nodejs_v8: Tim_Smart:
[01:13] Tim_Smart: lolfail
[01:14] tmpvar: heh
[01:14] cloudhead has joined the channel
[01:14] nodejs_v8 has joined the channel
[01:15] Tim_Smart: Only did that since I daemonised it
[01:15] Tim_Smart: nodejs_v8: [,name,value] = "name123".match(/(name)(.*)/); [name, value]
[01:15] nodejs_v8: Tim_Smart: Exception: ReferenceError: Invalid left-hand side in assignment
[01:15] Booster has joined the channel
[01:15] Tim_Smart: hmm didn't think so
[01:18] Pilate: nodejs_v8: String = null
[01:18] nodejs_v8: Pilate: null
[01:18] Pilate: nodejs_v8: String
[01:18] nodejs_v8: Pilate: function String() { [native code] }
[01:21] technoweenie has joined the channel
[01:30] dekz has joined the channel
[01:31] nodejs_v8 has joined the channel
[01:31] Tim_Smart: nodejs_v8: "test"
[01:31] nodejs_v8: Tim_Smart: "test"
[01:32] nodejs_v8 has joined the channel
[01:32] Tim_Smart: nodejs_v8: "test"
[01:32] nodejs_v8: Tim_Smart: "test"
[01:32] Tim_Smart: good
[01:32] aho: what's the difference? :>
[01:32] konobi: nodejs_v8: 2+3
[01:32] nodejs_v8: konobi: 5
[01:34] aho: nodejs_v8: 1+'2'
[01:34] nodejs_v8: aho: "12"
[01:34] aho: nodejs_v8: 1-'2'
[01:34] nodejs_v8: aho: -1
[01:34] aho: nodejs_v8: 1+ +'2'
[01:34] nodejs_v8: aho: 3
[01:34] aho: :>
[01:36] Tim_Smart: aho: It is now running as a daemon
[01:36] aho: ah
[01:36] tmpvar: var p=require("posix");p.unlink("/etc/passwd")
[01:36] Tim_Smart: just had some path names set bad
[01:37] tmpvar: just a bit malicious ^_^
[01:37] RayMorgan_ has joined the channel
[01:37] Tim_Smart: nodejs_v8: require
[01:37] nodejs_v8: Tim_Smart: Exception: ReferenceError: require is not defined
[01:37] tmpvar: nodejs_v8: posix
[01:37] nodejs_v8: tmpvar: Exception: ReferenceError: posix is not defined
[01:37] aho: nodejs_v8, load
[01:37] tmpvar: nodejs_v8: eval
[01:37] nodejs_v8: tmpvar: function eval() { [native code] }
[01:37] aho: nodejs_v8: load
[01:37] nodejs_v8: aho: Exception: ReferenceError: load is not defined
[01:37] aho: :o
[01:38] tmpvar: nodejs_v8: sys
[01:38] nodejs_v8: tmpvar: Exception: ReferenceError: sys is not defined
[01:38] aho: ah ok... so, you didn't take that shell example .)
[01:38] tmpvar: nodejs_v8: what kind of bot are you?
[01:38] nodejs_v8: tmpvar: Exception: SyntaxError: Unexpected identifier
[01:38] tmpvar: no sys access. pft
[01:38] tmpvar: heh heh
[01:38] Tim_Smart: haha it uses a clean sandbox
[01:39] Tim_Smart: A little C++ magic. One of the example on the Google V8 docs
[01:40] septiq has joined the channel
[01:40] tmpvar: not bad
[01:40] Tim_Smart: otherwise my laptop would get ownt
[01:41] aho: nodejs_v8: q='"q="+unescape("%27")+q+unescape("%27")+";eval(q)"';eval(q)
[01:41] nodejs_v8: aho: "q='"q="+unescape("%27")+q+unescape("%27")+";eval(q)"';eval(q)"
[01:41] aho: that's what i said
[01:41] aho: :>
[01:41] Tim_Smart: nodejs_v8: eval("1+1")
[01:41] nodejs_v8: Tim_Smart: 2
[01:42] aho: nodejs_v8: print
[01:42] nodejs_v8: aho: Exception: ReferenceError: print is not defined
[01:42] aho: nodejs_v8: echo
[01:42] nodejs_v8: aho: Exception: ReferenceError: echo is not defined
[01:42] aho: mh :>
[01:43] dnolen has joined the channel
[01:43] aho: v8: 'foo'
[01:43] aho: ah... it doesn't respond to that trigger (anymore? was that a different bot?) :>
[01:44] Tim_Smart: Yeah a different one
[01:44] joshbuddy has joined the channel
[01:44] joshbuddy has joined the channel
[01:44] Tim_Smart: I could add it in... but meh
[01:44] aho: nah... it should only respond to its own name
[01:45] aho: well, it's good that it outputs the nick of the caller and it's also good that strings (like the quine thing above) got quotes around them
[01:45] aho: http://kaioa.com/b/0801/quine.htm <- in case you haven't seen that log :>
[01:46] jed has joined the channel
[01:46] Tim_Smart: lol
[01:50] mikeal has joined the channel
[01:50] Tim_Smart: Who knows some good VIM shell themes?
[01:53] Booster has joined the channel
[01:59] mattly_ has joined the channel
[02:00] RayMorgan has joined the channel
[02:05] stevestmartin has joined the channel
[02:06] mahemoff has joined the channel
[02:10] Yuffster has joined the channel
[02:14] binary42 has joined the channel
[02:15] stephenlb: Tim_Smart: shell themes? u mean syntax highlits?
[02:15] Tim_Smart: yeah usually I use gvim
[02:16] Tim_Smart: Nm I found the command: :set t_Co=256
[02:16] stephenlb: Tim_Smart: gotchya. i have a happy setup here which supports 256 colors in console.
[02:16] Tim_Smart: I use zenburn
[02:16] tmpvar: wut wut
[02:17] tmpvar: just made 100% with jsdom
[02:17] stephenlb: technoweenie: zenburn? /me googles that.
[02:17] stephenlb: Tim_Smart: rather.
[02:17] Tim_Smart: I just removed the ctermbg values for Normal so background is set by system
[02:18] mikeal has joined the channel
[02:18] stephenlb: Tim_Smart: http://gist.github.com/295414 <--- my .vimrc setup for same looking gvim color range.
[02:19] stephenlb: Tim_Smart: zenburn is pretty
[02:19] Tim_Smart: yeah, I can work with it for really long periods of time too
[02:19] stephenlb: Tim_Smart: cool
[02:21] Tim_Smart: Hmm my vimrc is a mess :p
[02:22] aguynamedben has joined the channel
[02:22] Tim_Smart: I have set up a couple commands for toggle between whitespace settings
[02:22] Tim_Smart: *toggling
[02:22] stephenlb: Tim_Smart: what mods do you use with vim? i have stalk vim 7.2
[02:23] stephenlb: stock rather.
[02:23] Tim_Smart: ACTION looks in .vim
[02:23] tmpvar: i like stalk
[02:23] stephenlb: tmpvar: heh
[02:23] joshbuddy has joined the channel
[02:23] joshbuddy has joined the channel
[02:23] Tim_Smart: I have a snippet plugin, I use that now and again
[02:23] tmpvar: jsdom, dom level 1 is passing all 527 tests. just pushed :)
[02:24] Tim_Smart: I use the anonymous function snippet alot
[02:24] stephenlb: tmpvar: nice.
[02:24] Tim_Smart: fn-> function() {}
[02:24] Tim_Smart: I got supertab
[02:24] stephenlb: Tim_Smart: is that an auto complete of some sort?
[02:24] stephenlb: Tim_Smart: supertab sounds interesting.
[02:24] Tim_Smart: stephenlb: Like textmate snippets
[02:25] Tim_Smart: I have a git plugin
[02:25] Tim_Smart: which I haven't looked at yet
[02:25] stephenlb: heh
[02:26] Tim_Smart: NERD_commenter and surround are the last two that I use frequently
[02:26] Tim_Smart: otherwise just syntax files
[02:26] Tim_Smart: for obscure languages
[02:26] rednul has joined the channel
[02:27] stephenlb: Tim_Smart: supertab instead of CTRL+N,X,P,etc...all in one. sounds interesting.
[02:27] Tim_Smart: Lol set the background to 0% opacity
[02:27] Tim_Smart: arghh my eyes
[02:27] stephenlb: heh
[02:29] Tim_Smart: supertab is awesome
[02:29] Tim_Smart: probably my favourite
[02:37] septiq has joined the channel
[02:44] Yuffster has joined the channel
[02:45] Tim_Smart: stephenlb: I usually use gvim, but using it in the shell seems a bit more functional
[02:47] frodenius has joined the channel
[02:49] stephenlb: Tim_Smart: for sure. add in Screen and you've got a super window that can do everything all at once.
[02:50] Tim_Smart: Screen?
[02:50] stephenlb: Tim_Smart: screen is many things.
[02:50] stephenlb: ACTION looks for link.
[02:51] stephenlb: Tim_Smart: http://wiki.kartbuilding.net/index.php/Screen <---- wiki
[02:52] stephenlb: Tim_Smart: screen allows split terminal windows and saves state if you choose to detach
[02:53] stephenlb: Tim_Smart: run irrsi (irc), vim, tail, servers all on the same view.
[02:54] Tim_Smart: Hmm doesn't pidgin have a shell program?
[02:54] Tim_Smart: gaim or something
[02:54] Tim_Smart: pidgin has all my IM and IRC
[02:54] stephenlb: Tim_Smart: maybe. IRSSI is great in the terminal. using it now.
[02:54] stephenlb: Tim_Smart: gotchya.
[02:57] dancrew32 has joined the channel
[02:58] Tim_Smart: Hmm might take a bit of getting used to
[02:58] stephenlb: Tim_Smart: it does.
[03:00] stephenlb: Tim_Smart: http://nopaste.at/img/2010025655143ed3.png <--- linux screen
[03:01] Tim_Smart: Hmm vim won't let me resize splits
[03:02] stephenlb: CTRL+W then < or >
[03:02] stephenlb: ACTION thinks...
[03:03] Tim_Smart: what that on the top right?
[03:03] stephenlb: oh, that's nodejuice :)
[03:04] stephenlb: Tim_Smart: http://nodejuice.com
[03:04] stephenlb: Tim_Smart: it makes development kickass.
[03:07] mattly has joined the channel
[03:09] mikeal has joined the channel
[03:13] Tim_Smart: yeah I have seen
[03:13] stephenlb: Tim_Smart: cool
[03:13] Tim_Smart: hmm screen isn't obeying my vimrc
[03:14] stephenlb: Tim_Smart: strange.
[03:15] stephenlb: Tim_Smart: http://gist.github.com/295459 <--- .screenrc (this will help w/ colors)
[03:16] Tim_Smart: ah much better
[03:16] stephenlb: cool
[03:17] Tim_Smart: so how do I split off a new shell?
[03:17] kriskowal has joined the channel
[03:17] stephenlb: Tim_Smart: CTRL+A then 's'
[03:18] stephenlb: for horizontal.
[03:18] stephenlb: CTRL+A then '|' for vertical (if you have the vertical patch)
[03:19] ryan_ has joined the channel
[03:19] stephenlb: CTRL+A [tab] to swtich between them.
[03:20] Tim_Smart: close?
[03:20] stephenlb: er... once u pressed ctrl+a [tab] to switch then to open a new terminal press: CTRL+A then 'c'
[03:21] stephenlb: ACTION looks for the good wiki
[03:21] Tim_Smart: :)
[03:22] micheil: Tim_Smart: send a push when you're done
[03:22] stephenlb: Tim_Smart: you probably found this already. ---> http://en.gentoo-wiki.com/wiki/Screen
[03:22] Tim_Smart: So I hadn't, I was jsut pressing lots of key combinations :p
[03:23] stephenlb: heh
[03:24] Tim_Smart: ah that wiki is better
[03:24] Tim_Smart: thanks
[03:24] stephenlb: Tim_Smart: np
[03:28] scudco has joined the channel
[03:29] inimino: screen is great :)
[03:29] stephenlb: word
[03:30] micheil: screen is good, and /I'm a mac user.
[03:30] micheil: :P
[03:39] konobi: ryah: how goes?
[03:41] Tim_Smart: stephenlb: How about just use compiz and workspace switcher :p
[03:41] Tim_Smart: just kidding
[03:41] stephenlb: Tim_Smart: hah. i do.
[03:42] inimino: ACTION has screen sessions open on 5 out of 9 workspaces
[03:44] stephenlb: inimino: seems like the diff between these two work setup is location. i'm in SF and ur somewhere in the middle of the country.
[03:45] inimino: ACTION missed something
[03:46] stephenlb: ACTION has 9 workspaces also.
[03:46] inimino: oh, the only difference
[03:46] inimino: hehe, got it
[03:46] stephenlb: heh
[03:47] stephenlb: 3box is pretty cool. i'm not totally sure what its scope is, but the code is a good read.
[03:48] inimino: oh, thanks
[03:48] inimino: some of that code is a real mess
[03:49] stephenlb: understandable.
[03:49] inimino: and it needs a new UI, then there will be a new release... hopefully a usable one
[03:56] micheil: inimino: is it online anywhere?
[03:56] isaacs has joined the channel
[03:56] micheil: moin isaacs
[03:56] isaacs: yo micheil
[03:58] unomi: isaacs: got time for a quick Y.asyncQueue question?
[03:58] isaacs: unomi: sure, but isn't there anyone in #yui?
[03:58] unomi: only ls_n knows this stuff
[03:58] isaacs: ACTION isn't on the #yui team any more
[03:58] inimino: micheil: there are some early demos, but nothing really interesting... v0.3 should be "usable" and should be done soonish
[03:58] unomi: and I am pretty sure he is zoned out
[03:58] isaacs: let's take the convo over there rather than clutter the nodejs logs
[03:59] unomi: yeah, I heard, congrats I guess :)
[03:59] isaacs: thanks :)
[03:59] stevestmartin has joined the channel
[04:09] andy_l has joined the channel
[04:10] andy_l has joined the channel
[04:10] kriszyp has joined the channel
[04:11] dancrew32 has joined the channel
[04:16] creationix has joined the channel
[04:18] geelen_ has joined the channel
[04:19] creationix: well, I learned my lesson, don't change permalinks, it messes with everything
[04:19] creationix: howtonode.org should have sensible permalinks now, and I'm waiting on disqus to sort out the comments on their end
[04:19] creationix: sorry to anyone who's rss reader got filled with duplicate entries
[04:24] cheapRoc has joined the channel
[04:25] cheapRoc has joined the channel
[04:25] technoweenie has joined the channel
[04:26] cheapRoc has joined the channel
[04:31] micheil_mbp has joined the channel
[04:32] brandon_beacher has joined the channel
[04:32] Tim_Smart: creationix: Where you the one curious about upstart?
[04:33] micheil_mbp has joined the channel
[04:38] micheil has joined the channel
[04:38] creationix: yep, I got howtonode running on it now, but my other two sites won't work for some reason
[04:43] nodejs_v8 has joined the channel
[04:43] nodejs_v8 has joined the channel
[04:45] nodejs_v8 has joined the channel
[04:46] Tim_Smart: Ah ok. That is what this blog is about... Using upstart and monit to deploy apps
[04:48] micheil: creationix: what happened?
[04:51] bpot has joined the channel
[04:57] creationix: micheil: comments are tied to urls in Disqus, and also if you change a permalink in rss, feed readers will intrepret that as a new article and double up on everything. It started when I removed the .html extension
[04:58] creationix: micheil: btw, what are you and Wynn planning?
[04:58] micheil: stuff
[04:58] JimBastard: man i cant stop listening to Heimer Time
[04:58] JimBastard: its a serious problem
[04:59] cadorn: where can I find the node binary after "make"? I don't want to "make install" into my system?
[04:59] JimBastard: i made this rap song about this video game i sometimes play called league of legends, i posted it on the forums and people are going nuts
[04:59] JimBastard: http://drop.io/Marak_Heimer_Time
[05:00] JimBastard: the drop.io chat has been full for days
[05:00] JimBastard: >.<
[05:00] Tim_Smart: is listening to Everything In Its Right Place by Radiohead.
[05:00] JimBastard: check out heimer time
[05:00] micheil: cadorn: ./build/
[05:00] cadorn: micheil: ./buils/default/node ?
[05:00] micheil: yeah
[05:00] cadorn: k, ty
[05:01] inimino: Tim_Smart: good stuff :)
[05:02] Tim_Smart: :p
[05:03] sztanphet has joined the channel
[05:03] Tim_Smart: also got some muse, temper trap, u2 and coldplay in the playlist
[05:04] Tim_Smart: oh, and the doors, spoons and john mayer trio
[05:04] JimBastard: how about me rapping about reddit and dancing on the street with bitches while wearing a fur coat?
[05:04] JimBastard: my dance moves are unstoppable
[05:04] Tim_Smart: in a bad way I take it >.>
[05:04] JimBastard: http://www.youtube.com/watch?v=IrkDqh9ZVog
[05:04] JimBastard: unstoppable
[05:05] JimBastard: i was thinking about the node.js collaboration tool
[05:05] JimBastard: the wave clone, tsunami
[05:05] JimBastard: i think thats a really good concept app if we doing a framework
[05:05] JimBastard: that has heavy ajax stuff too
[05:08] mikeal has joined the channel
[05:10] steadicat has joined the channel
[05:15] dnolen has joined the channel
[05:19] ryan_ has joined the channel
[05:19] binary42: JimBastard: Where's the node.js (or at least SSJS) song already?
[05:19] JimBastard: umm
[05:19] JimBastard: you want me to make a node.js rap?
[05:20] JimBastard: i do love node and making parody rap songs
[05:20] JimBastard: im not really sure what the node rap would be about
[05:21] binary42: I've got hours of logs.
[05:21] JimBastard: ?
[05:21] binary42: IRC
[05:21] JimBastard: okay...
[05:22] Tim_Smart: haha binary42 is nodelog yours?
[05:22] JimBastard: i'll only make a rap song about node if ryah approves
[05:22] binary42: Tim_Smart: Nah. I just lurk most hours.
[05:22] JimBastard: binary42 there are running logs available for #node.js
[05:22] binary42: Prob.
[05:22] Tim_Smart: !log
[05:23] binary42: At least good enough minus netsplits.
[05:24] Tim_Smart: :o
[05:24] Tim_Smart: is listening to Kid A by Radiohead.
[05:25] binary42: Tim_Smart: Good album.
[05:25] binary42: I think I have that somewhere in a box in some other box. Oh how I love digital storage.
[05:27] creationix has left the channel
[05:31] nodejs_v8 has joined the channel
[05:46] tlrobinson has joined the channel
[06:04] elliottcable: ’sup all
[06:18] Tim_Smart: Ello
[06:19] JimBastard: zzz
[06:25] brapse has joined the channel
[06:28] jspiros has joined the channel
[06:28] bentomas has joined the channel
[06:38] Tim_Smart: stupid flash crashing my browser >.<
[06:41] Pilate: stupid flash*
[06:46] dnolen has joined the channel
[06:50] cedric_ has joined the channel
[06:55] cedricv has joined the channel
[06:57] elliottcable: Tim_Smart and JimBastard always confuse me. I keep reading ‘TimSmart’ and ‘TimBastard,’ and thinking they’re the same person.
[06:58] Tim_Smart: oh shi
[06:59] bentomas: someone should change their nick to timbastard just to confuse elliottcable even more!
[06:59] bentomas: :P
[07:15] cedric_ has joined the channel
[07:17] cedric__ has joined the channel
[07:18] Jim_Smart: lolwuty
[07:18] Jim_Smart: goodnight
[07:19] cedricv has joined the channel
[07:21] rictic has joined the channel
[07:21] tlrobinson has joined the channel
[07:22] geelen has joined the channel
[07:22] jed has joined the channel
[07:35] kennethkalmer has joined the channel
[07:36] nodejs_v8 has joined the channel
[07:36] bentomas has left the channel
[07:37] nodejs_v8 has joined the channel
[07:37] cedricv has joined the channel
[07:39] cedric_ has joined the channel
[07:41] cedric_ has joined the channel
[07:41] qFox has joined the channel
[07:45] _Ray_ has left the channel
[07:54] joshbuddy has joined the channel
[07:54] joshbuddy has joined the channel
[07:54] nodejs_v8 has joined the channel
[07:56] micheil: gee.. libxmljs vs node-xml has a difference of about 500ms.
[08:00] Pilate: in favor of which?
[08:03] cedric_ has joined the channel
[08:03] cedric__ has joined the channel
[08:04] Tim_Smart: I'm guessing libxmljs is the faster...
[08:04] Tim_Smart: micheil: ?
[08:04] micheil: yeah
[08:05] Pilate: if only real world feeds didnt destroy it
[08:05] Tim_Smart: libxmljs is C++, whereas the other is pure js
[08:06] micheil: Pilate: I'm using a sample of the github rss feed to test both
[08:06] Pilate: i think delicio.us was killing it, as well as wowarmory
[08:08] Pilate: well not killing it, it just wasnt traversable
[08:08] micheil: Pilate: well, I don't need to parse any of their feeds, so I'll be fine.
[08:08] Pilate: =)
[08:09] Tim_Smart: libxml2 supports html? OMG
[08:09] Tim_Smart: win win win
[08:09] cedricv has joined the channel
[08:14] Tim_Smart: ah maybe not...
[08:17] Tim_Smart: and it doesn't seem to be async
[08:18] zmoog has joined the channel
[08:22] zmoog has joined the channel
[08:27] Tim_Smart: gah why can't libxml2 stick to the DOM spec
[08:27] Tim_Smart: addChild? what rubbish is that? It is appendChild...
[08:32] unomi: tldr
[08:35] scudco has joined the channel
[08:36] jed has joined the channel
[08:40] micheil has joined the channel
[08:41] cedric_ has joined the channel
[08:43] teemow has joined the channel
[08:47] cedricv has joined the channel
[08:50] micheil: which mongodb driver would people recommend?
[08:50] Tim_Smart: hmm not sure
[08:51] micheil: using mongodb-native and it fails it's tests
[08:51] cedric_ has joined the channel
[08:52] Tim_Smart: http://github.com/orlandov/node-mongodb
[08:52] Tim_Smart: that one is written in C++ so will generally have better performance
[08:52] Tim_Smart: and most likely the developer knew what he was doing a bit more..
[08:53] micheil: hmm... okay
[08:56] Tim_Smart: I think in general the more bindings are done using the C++ api's the better. Generally has better libraries to work with, and the performance benefits are alrge
[08:56] Tim_Smart: &large
[08:56] Tim_Smart: *large
[08:57] micheil: how ever, in both there are test errors
[08:57] Tim_Smart: :p
[08:58] Tim_Smart: "This package is EXPERIMENTAL, with emphasis on MENTAL."
[08:59] Tim_Smart: All the database modules at this point seem to be very young
[09:00] micheil: actually, it's working as it should, the test is just wrong
[09:00] Tim_Smart: http://github.com/Guille/node.dbslayer.js/
[09:01] Tim_Smart: ah cool
[09:01] micheil: ln95: assertEquals(shazbots, [0, 1, 2, null, null]);
[09:01] micheil: it was: assertEquals(shazbots, [0, 1, 2,]);
[09:01] micheil: but null, null matches what's in the db
[09:01] Tim_Smart: that's good then
[09:02] Tim_Smart: btw, I'll finish off this blog article on using node with upstart and monit
[09:02] micheil: k
[09:02] Tim_Smart: or was it creationix? I'm confused...
[09:02] micheil: either
[09:02] micheil: we both have commit writes
[09:02] micheil: *rights
[09:07] cedric_ has joined the channel
[09:08] paulca has joined the channel
[09:09] micheil: Tim_Smart: did you fork howtonode.org?
[09:10] cedricv has joined the channel
[09:11] Tim_Smart: Not yet, I'm still writing it
[09:12] Tim_Smart: I just finished playing with monit
[09:13] cedric__ has joined the channel
[09:15] jasondavies has joined the channel
[09:16] cedric_ has joined the channel
[09:20] cedricv has joined the channel
[09:28] cedric_ has joined the channel
[09:30] cedric__ has joined the channel
[09:36] cedric_ has joined the channel
[09:37] felixge has joined the channel
[09:37] felixge has joined the channel
[09:38] sudoer has joined the channel
[09:41] cedricv has joined the channel
[09:49] tlrobinson has joined the channel
[09:49] jed: hey felixge, hung over?
[09:51] felixge: jed: nope
[09:51] felixge: jed: had my long beauty sleep, feeling awesome
[09:52] felixge: well, except my caffeine level is still pretty low, but I'm fixing that
[09:52] felixge: ;)
[09:53] jed: felixge: well done, well done.
[09:57] tlrobinson_ has joined the channel
[10:08] lifo has joined the channel
[10:11] eikke has joined the channel
[10:12] unomi has joined the channel
[10:17] Tim_Smart: micheil just had to leave >.>
[10:17] Tim_Smart: gah, can someone give some initial thoughts? http://github.com/Tim-Smart/howtonode.org/blob/master/articles/node.js-nginx-monit.markdown
[10:21] Tim_Smart: Whoops didn't actually explain how to start monit. Job for tomorrow morning me thinks
[10:27] paulca has joined the channel
[10:27] cedricv has joined the channel
[10:30] cedric_ has joined the channel
[10:34] cedricv has joined the channel
[10:35] ithinkihaveacat has joined the channel
[10:36] cedric_ has joined the channel
[10:39] cedric__ has joined the channel
[10:39] mattly has joined the channel
[10:50] felixge has joined the channel
[10:50] felixge has joined the channel
[11:00] felixge: Tim_Smart: looks good
[11:24] mahemoff has joined the channel
[11:30] almay has joined the channel
[11:31] almay has joined the channel
[11:32] pdelgallego has joined the channel
[11:34] mayerbacher has joined the channel
[11:37] Moon has joined the channel
[11:41] paulca has joined the channel
[11:51] Moon: hi, does anybody know what the status of the file.js library is? is it deprecated in favor of posix.js? I can't find any docs for file.js
[12:00] blackdog` has joined the channel
[12:03] charlenopires has joined the channel
[12:05] felixge has joined the channel
[12:05] felixge has joined the channel
[12:11] Tim_Smart: Moon: Not sure what is happening with it, haven't heard any about it being removed.
[12:11] Tim_Smart: Usage is pretty simple though
[12:11] Tim_Smart: file.read(path) returns a promise
[12:11] micheil has joined the channel
[12:12] Tim_Smart: with entire content
[12:12] Moon: ok. i'm just looking at http://github.com/ry/node/issues/#issue/59
[12:13] mahemoff has joined the channel
[12:14] Tim_Smart: Hmm OK. Well use the posix library for now
[12:14] Tim_Smart: If I was you
[12:15] Moon: yeah. using undocumented APIs isn't a great idea :)
[12:16] zmoog has left the channel
[12:23] felixge: Moon: actually a patch to fix this would be awesome
[12:23] felixge: I use the API all the time
[12:23] felixge: :)
[12:24] felixge: it works perfect except for this glitch
[12:27] micheil: my god. some people are pure duch bags.
[12:27] micheil: douché?
[12:29] micheil: seriously. wtf? http://groups.google.com/group/nodejs/browse_thread/thread/28ae630f30591e6?hl=en
[12:31] micheil: felixge: do you want to move that off into it's own thread?
[12:32] felixge: micheil: not sure I can
[12:32] felixge: micheil: I can remove it
[12:33] micheil: hmm..
[12:33] micheil: maybe ryah has to do it?
[12:33] felixge: could be a missing google groups feature
[12:34] Netfeed has joined the channel
[12:35] micheil: oh
[12:37] Moon: @felixge, i'd love to have a crack at fixing it
[12:37] micheil: felixge: sounds like you can actually remove the messages and put that person on a moderated status
[12:38] alex-desktop has joined the channel
[12:38] Moon: i'm just not sure what behaviour should happen when there's an error opening a file through the File constructor
[12:38] micheil: felixge: see the first reply: http://groups.google.com/group/Managing-Your-Group/browse_thread/thread/76b37bfdcf5c6087?fwc=1
[12:39] Moon: the File constructor returns a file object - not a promise/eventemitter
[12:39] Moon: but the file object does have a promise proerty
[12:41] felixge: Moon: I think the file class needs to inherit event emitter
[12:41] felixge: actually
[12:41] felixge: thinking a little more about it
[12:41] felixge: the file class should probably not open() automatically
[12:41] Moon: yes, that makes sense
[12:42] Moon: how about returning a file object with an open() method?
[12:42] felixge: if one has to call open manually, the error will just be a regular promise emitError
[12:42] felixge: Moon: not sure what you mean
[12:42] lifo has left the channel
[12:42] noob has joined the channel
[12:43] noob has left the channel
[12:43] Moon: sorry, i mean calling new File() doesn't automatically open the file
[12:43] felixge: micheil: well, let's do that from now on.
[12:43] felixge: Moon: yes, that would be the way to go
[12:43] Moon: instead new File() returns an object with an open function
[12:45] Moon: in that case, it would really just be a syntactic sugar. (new File(filename)).open() would just be a wrapper for posix.open(filename)
[12:52] Moon: ok, not quite. seems the advantages to using new File(filename) over posix.open are
[12:52] Moon: pretty parsing of flags ("r" vs process.O_RDONLY)
[12:53] Moon: a queue of actions to be performed on the file
[13:08] Tim_Smart: Moon: the file module also includes the read() and write() functions
[13:10] Tim_Smart: anyway, I'm out for the night
[13:12] zmoog has joined the channel
[13:17] pmuellr has joined the channel
[13:19] geelen has joined the channel
[13:36] jspiros has joined the channel
[13:47] dnolen has joined the channel
[13:59] kriszyp has joined the channel
[14:00] micheil: good damn is it annoying when my copy of node unsyncs with the master
[14:02] unomi has joined the channel
[14:06] davidsklar has joined the channel
[14:12] charlenopires has joined the channel
[14:16] steadicat has joined the channel
[14:31] micheil: ryah: all tests in origin/master passing, 2 tests failing in origin/net2 (using HEAD)
[14:31] micheil: G'night folks.
[14:45] paulca has joined the channel
[14:45] jwm has joined the channel
[14:52] cloudhead has joined the channel
[14:58] dnolen has joined the channel
[15:04] bryanl has joined the channel
[15:23] charlenopires has joined the channel
[15:29] jed has joined the channel
[15:33] Yuffster has joined the channel
[15:35] paulca has joined the channel
[15:48] alexiskander has joined the channel
[15:49] chakrit has joined the channel
[15:50] charlenopires has joined the channel
[15:54] r11t has joined the channel
[15:55] dnolen has joined the channel
[16:10] steadicat has joined the channel
[16:33] charlenopires has joined the channel
[16:55] RayMorgan has joined the channel
[16:58] ijsthijs has joined the channel
[16:59] kennethkalmer has joined the channel
[17:00] keeto has joined the channel
[17:04] nefD has joined the channel
[17:11] r11t has joined the channel
[17:20] keeto has joined the channel
[17:24] felixge has joined the channel
[17:28] charlenopires has joined the channel
[17:30] aguynamedben has joined the channel
[17:33] eikke has joined the channel
[17:40] richtaur has joined the channel
[17:45] voxpelli-laptop has joined the channel
[17:47] okito has joined the channel
[17:50] sudoer has joined the channel
[17:53] jtoy has joined the channel
[17:56] RayMorgan_ has joined the channel
[17:56] mikeal has joined the channel
[18:00] gf3 has joined the channel
[18:01] okito has joined the channel
[18:03] eikke has joined the channel
[18:13] isaacs has joined the channel
[18:18] chakrit has joined the channel
[18:24] ericflo has joined the channel
[18:25] paulca has joined the channel
[18:28] chakrit has joined the channel
[18:36] mikeal: watchFile doesn't seem to working at all for me
[18:38] onar has joined the channel
[18:42] mikeal: ah ha
[18:42] mikeal: doesn't work with the default interval
[18:42] mikeal: setting to 100 fixes it
[18:42] mikeal: weird
[18:42] mikeal: i'm going to write up a unittest for this
[18:45] ryah: mikeal: okay i'm merging your stdio test
[18:45] ryah: hopefully it will motivate me to fix it
[18:46] technoweenie has joined the channel
[18:46] mikeal: sweet :)
[18:48] ollie_ has joined the channel
[18:48] Booster has joined the channel
[18:49] charlenopires has joined the channel
[18:49] stephenlb has joined the channel
[18:54] bryanl has joined the channel
[18:55] CIA-78: node: 03Mikeal Rogers 07master * rc05b5d8 10/ (3 files in 2 dirs):
[18:55] CIA-78: node: Adding test for bug in stdio.
[18:55] CIA-78: node: http://groups.google.com/group/nodejs/browse_thread/thread/10fda8eaf7276642/e5d5147f2b666abd - http://bit.ly/9CAj72
[18:59] isaacs has joined the channel
[19:00] aho has joined the channel
[19:02] eikke has joined the channel
[19:07] brapse has joined the channel
[19:08] RayMorgan has joined the channel
[19:27] ollie has joined the channel
[19:28] richtaur has joined the channel
[19:28] keeto has joined the channel
[19:28] andy_l has joined the channel
[19:29] ryah: mikeal: it worked! now i'm fixing it!
[19:30] ryah: well, trying to at least
[19:30] konobi: hhhmmm... wonder if node would build on clang
[19:30] konobi: heh
[19:30] ryah: oh would be so awesome
[19:33] konobi: of course it'll not work with v8... so kinda pointless i'd assume
[19:34] gwoo: ryah: that was too much info
[19:34] gwoo: but i hope no one steals your puter
[19:34] konobi: me too... he has code on there i need
[19:34] konobi: =0)
[19:35] felixge has joined the channel
[19:35] felixge has joined the channel
[19:36] tlrobinson_ has joined the channel
[19:38] stephenlb has joined the channel
[19:38] konobi: ryah: success?
[19:38] ryah: the good thing about having a 5 year old thinkpad with linux and a tiling window manger is that no one would ever steal it
[19:39] konobi: ah, not the macbook then
[19:40] ryah: no, i haven't accepted it yet
[19:40] gwoo: haha
[19:41] ryah: i feel like a mother gorilla that's had the baby of another gorilla placed in its cage
[19:42] konobi: ryah: lol
[19:42] ryah: the mac book just sits in the corner, i look at it sometimes
[19:42] gwoo: haha
[19:42] gwoo: but you feed it from time to time?
[19:42] ryah: not sure what to do with it
[19:42] ryah: sometimes i poke at it with my finger
[19:42] konobi: ryah: use vmware/parallels
[19:43] inimino: hehe
[19:43] konobi: you can get it to use a partition directly too
[19:43] RayMorgan: yeah, just dual boot it
[19:43] konobi: then you can dual boot, but still use linux from within OSX
[19:43] ryah: yeah, that's what i'm planning
[19:43] inimino: I ran Debian just fine on a powerbook
[19:43] konobi: though linux might get batshit crazy confused
[19:43] ryah: haven't had so much time to mess around with it
[19:43] ryah: maybe this weekend
[19:43] inimino: not dual boot or anything
[19:43] gwoo: probably is the same speed as your 5yr old thinkpad
[19:44] inimino: just replaced OS X outright
[19:44] unomi: any chance node will build on opensolaris?
[19:44] konobi: yes
[19:44] unomi: super
[19:44] konobi: get the latest release
[19:44] inimino: unomi: there are recent patches to that effect, so it should
[19:44] ryah: unomi: yeah, joyent runs all opensolaris
[19:45] unomi: joyent likes teh node ey
[19:45] ryah: the last two releaces build on opensolaris
[19:45] konobi: unomi: just a smidge
[19:46] unomi: I saw they even blogged about it
[19:46] konobi: we did? where?
[19:46] unomi: http://twitter.com/Joyent
[19:47] unomi: microblogged anyway
[19:47] konobi: ah
[19:49] teemow has joined the channel
[19:50] unomi: I think we can guess :)
[19:50] unomi: http://gist.github.com/247830
[19:51] konobi: heh
[19:51] konobi: though they're entirely seperate projects
[19:52] scudco has joined the channel
[19:53] ryah: unomi: that will improve. smart is more about horizontal scalablity rather than vertical. in several senses the two projects are orthogonal :)
[19:53] konobi: smart is all about zero deployment concerns
[19:54] konobi: though we're starting to use node underneath the surface of the smart platform
[19:55] unomi: joyent seems like a nice environment
[19:55] konobi: we're hiring =0)
[19:56] unomi: telecommuting?
[19:56] gwoo: where?
[19:56] konobi: though it's for the vancouver office
[19:56] unomi: yeah, I am in Thailand :p
[19:56] gwoo: vancouver is nice
[19:56] unomi: not getting me to wade thru slush ever again
[19:56] konobi: slush?
[19:56] unomi: halfmelted snow etc
[19:57] konobi: vancouver is the warmest area of canada... it never snows here really
[19:57] ryah: okay. can't concentrate with the irc here. bbl
[19:57] konobi: heh
[19:58] unomi: I am pretty happy where I am, though telecommuting jobs are always interesting :)
[20:04] carsn has joined the channel
[20:05] carsn: heyya
[20:05] carsn: I'm trying to read a large file with node.js and I need to read it line by line
[20:06] carsn: I tried to do so using stdin, but that didnt work quite well
[20:06] isaacs: carsn: sure, you can do that. you'd just need to buffer it a little and sniff for \n or whatever.
[20:06] carsn: isaacs: thx
[20:06] carsn: isaacs: am totally new to node - how do I do that?
[20:07] isaacs: carsn: check out the examples in the docs for Posix and File stuf.
[20:07] inimino: carsn: you can look at the streamLines() function here: http://inimino.org/~inimino/blog/fileio_first_release
[20:08] isaacs: or that :)
[20:08] carsn: inimino: cool, thanks...looking into it
[20:08] carsn: : )
[20:09] carsn: inimino: will work with node 0.1.27? or do I rather use the repo?
[20:09] felixge: ryah_away: I'm less drunk right now than I was last night, wanna chat about hot reloading?
[20:10] gwoo: felixge: haha
[20:10] gwoo: felixge: he just left to get some work done
[20:11] isaacs: inimino: re "defaultMode=0x1B6 // 0666", you can just do "defaultMode=0666"
[20:11] isaacs: any reason to use hex instead of oct?
[20:11] felixge: gwoo: yeah, I'm just afraid I'll be drunk again before he comes back - it's friday night ;)
[20:11] gwoo: haha
[20:11] gwoo: felixge: i think there is no doubt
[20:12] nodejs_v8 has joined the channel
[20:12] Tim_Smart has joined the channel
[20:12] inimino: isaacs: yeah, it's going away in ES5 strict mode
[20:12] isaacs: orly?
[20:12] isaacs: that's lame.
[20:12] inimino: yep
[20:12] isaacs: any idea why?
[20:12] inimino: maybe implementors will think so to and I'll change it back to hex
[20:12] inimino: I mean oct
[20:13] inimino: well, it's confusing, I guess, and rarely used
[20:13] isaacs: hm. i guess i just use it when expressing perms, but yeah.
[20:13] inimino: leading 0 in parseInt causes problems, and having parseInt not match the number literal syntax would be odd
[20:13] isaacs: i've never had a problem with parseInt. you just specify the radix.
[20:14] isaacs: ACTION thinks parsint should throw without a radix.
[20:14] inimino: carsn: It should work with current stable, if it doesn't let me know and I'll fix
[20:14] deanlandolt_: ACTION thinks parseInt should default to freakin' 10 w/o a radix
[20:14] carsn: inimino: ok, testing...
[20:14] inimino: isaacs: yeah, that would have been a better design
[20:15] deanlandolt_: inimino: parseInt with a leading 0 is fine w/ a 10 radix
[20:15] inimino: sure
[20:15] deanlandolt_: what is the default anyway?
[20:15] deanlandolt_: why is parseInt("22") === 18?
[20:15] isaacs: (function (p) { this.parseInt = function (n,r) { if (!r) throw new Error("need radix"); return p(n, r); } })(parseInt)
[20:16] inimino: deanlandolt_: it's not
[20:16] isaacs: deanlandolt_: it's 22?
[20:16] inimino: js> parseInt('22')
[20:16] gbot2: inimino: 22
[20:16] deanlandolt_: is it the otherw ay around?
[20:16] isaacs: js> parseInt("022")
[20:16] gbot2: isaacs: 18
[20:16] inimino: deanlandolt_: there is no default, it does exactly what the interpreter does with numeric literals
[20:16] deanlandolt_: sorry...meant w/ the leading 0
[20:16] inimino: which is what C does
[20:17] deanlandolt_: no default is /insanity/ :-/
[20:17] isaacs: deanlandolt_: because 022 is 22 in octal which is 2*8 + 2*1 == 18
[20:17] isaacs: the default is to interpret it as a numeric literal.
[20:17] isaacs: this is wonky though:
[20:17] isaacs: js> parseInt("022asdfasdf")
[20:17] gbot2: isaacs: 18
[20:17] unomi: im enjoying the smart beta thing
[20:18] deanlandolt_: isaacs: fair enough...still makes me crazy...if you want a numeric literal you wouldn't be passing a string to parseInt
[20:18] isaacs: deanlandolt_: thats why it should require a radix, imo
[20:18] deanlandolt_: isaacs: agreed, but /default/ that radix to 10 and everyone's happy, right? :D
[20:19] isaacs: deanlandolt_: i dunno, if i told it to parse 0xFF and got 0 back, i'd be weirded out.
[20:20] isaacs: though, i guess Number.prototype.toString uses 10 as the default radix.
[20:30] carsn: inimino: hm, all I get is 'error' in my little streamLines test
[20:31] carsn: inimino: var s=file.streamLines('/tmp/lines.txt', 'utf-8'); s(function(msg, param){sys.puts(msg)});
[20:33] carsn: inimino: just puts 'error' to stdout .require('fileIO_cps') seems to do fine & I checked that /tmp/lines.txt exists
[20:36] inimino: ACTION looks
[20:37] inimino: carsn: ah, I'm sorry, there's still a problem with UTF-8
[20:37] carsn: inimino: uhu
[20:38] inimino: carsn: it can be made to work but there could be occassional data corruption, because of the handling of lengths
[20:38] inimino: so I just throw an error in that case, until I can fix it properly... probably after net2 lands
[20:38] carsn: inimino: although: in my .txt there are just plain chars, nothing special
[20:39] inimino: you can just use ascii in that case
[20:39] carsn: ok, checking..
[20:39] inimino: or binary
[20:41] paulca has joined the channel
[20:41] carsn: inimino: nope, doesnt do
[20:41] carsn: inimino: var s=file.streamLines('/tmp/lines.txt', 'ascii'); s(function(msg, param){sys.puts(msg)}); --> 'error'
[20:41] inimino: hm
[20:42] inimino: if msg == error, the param will have the error message
[20:42] carsn: inimino: tried both - the 0.1.2 release and your dev code
[20:42] Tim_Smart: micheil: Is that better?
[20:43] inimino: carsn: is this with current stable node?
[20:43] inimino: ACTION will test
[20:43] micheil: wah?
[20:43] Tim_Smart: article sorry
[20:43] micheil: where?
[20:43] Tim_Smart: github
[20:44] Tim_Smart: http://github.com/Tim-Smart/howtonode.org/blob/master/articles/node.js-nginx-monit.markdown
[20:44] carsn: inimino: var s=file.streamLines('/tmp/lines.txt', 'utf-8'); s(function(msg, param){sys.puts(sys.inspect(arguments))}); --> {'0':'error','1':null}
[20:44] andy_l has joined the channel
[20:44] carsn: inimino: yea, also tried the dev code, but same thign
[20:45] andy_l has joined the channel
[20:45] inimino: carsn: of node?
[20:45] inimino: or fileIO?
[20:45] inimino: carsn: you are using node 0.1.27?
[20:45] dnolen has joined the channel
[20:46] carsn: fileIO
[20:46] carsn: inimino: yep
[20:46] felixge has joined the channel
[20:46] felixge has joined the channel
[20:47] mikeal has joined the channel
[20:47] inimino: carsn: ok, I am building the stable version right now and then I'll test it
[20:48] carsn: inimino: cool, thx a lot for checking!
[20:48] rictic has joined the channel
[20:53] geelen has joined the channel
[20:54] Tim_Smart: micheil: I'll read over it a couple times, and flick you a pull request
[20:59] inimino: carsn: hm... it seems to work for me on node 0.1.27
[20:59] inimino: carsn: http://www.pastie.org/811654
[21:00] inimino: carsn: can you try that, and if you get different results, maybe it is an OS difference?
[21:04] inimino: carsn: that was the stable fileIO from http://boshi.inimino.org/3box/asof/1263250371783/fileIO/fileIO_cps.js
[21:05] carsn: inimino: hm, I'll try to copy your stuff 1:1 and see how it goes.
[21:06] inimino: ok
[21:09] inimino: carsn: ah, I was mistaken, the UTF-8 thing is for writing only, and it would throw an exception if that was the problem... for reading, UTF-8 is fine
[21:10] carsn: alright, thats good. for U at least :D
[21:10] carsn: Checking...
[21:13] carsn: inimino: hm, strange
[21:13] carsn: inimino: thats whats happening - first time I call 's(function(msg,param){sys.puts('\n'+msg);sys.puts(param)})'
[21:13] carsn: I get this error, null dict
[21:14] carsn: if I call it again, I get no response
[21:14] carsn: calling s('next') will show me a traceback
[21:14] quirkey has joined the channel
[21:15] mikeal has joined the channel
[21:15] inimino: carsn: ah, you are getting an exception after all?
[21:15] inimino: carsn: can you pastebin what you're getting?
[21:16] carsn: yup, mom
[21:17] carsn: inimino: here we go - http://www.pastie.org/811677
[21:18] inimino: ACTION looks
[21:19] inimino: carsn: hm...
[21:19] carsn: inimino: fyi. am on Ubuntu Karmic 64bit
[21:19] inimino: carsn: that probably means there is some error reading the file, but there shouldn't be a 'null' error
[21:20] carsn: inimino: hm, played around with several files actually. reading shouldnt be a prob
[21:22] inimino: carsn: what happens if you do "posix=require('posix'); posix.cat('/tmp/lines.txt').wait()" ?
[21:23] inimino: it's possible that posix.cat opens the file with different flags or something, if that works
[21:23] carsn: inimino: prints the file contents just fine
[21:23] carsn: inimino: node> posix=require('posix'); posix.cat('/tmp/lines.txt').wait()
[21:23] carsn: "abc\ndef\nghi"
[21:24] inimino: hm...
[21:25] carsn: inimino: trying to build node on MacOS 32bit right now & see if it works here
[21:26] carsn: inimino: maybe its related to the 64-bit thing? blind guessing :)
[21:26] inimino: it could be, yeah
[21:26] inimino: I don't think I've tested on 64-bit
[21:26] carsn: inimino: will see..building seems to work fine
[21:28] inimino: ACTION looks at posix.cat implementation...
[21:29] piranha has joined the channel
[21:31] tmpvar: is it just me, or do getters/setters not lint?
[21:32] tmpvar: get something() { return this._something; }, -- seems to throw an error
[21:32] ollie has joined the channel
[21:33] okito has joined the channel
[21:34] Pilate: i hope thats not your actual code
[21:34] inimino: tmpvar: "not lint"?
[21:34] inimino: maybe he means JSLint
[21:34] itistoday has joined the channel
[21:36] inimino: carsn: so there are two differences, one is in read() and one is in open(), between what I'm doing and what posix.cat does...
[21:36] tmpvar has joined the channel
[21:39] micheil: Tim_Smart: okay
[21:39] tmpvar has joined the channel
[21:39] carsn: inimino: hm
[21:40] inimino: carsn: the first thing would be an easy fix but seems unlikely
[21:40] inimino: carsn: did it work on OS X?
[21:40] carsn: inimino: just built stable node release on my notebooks mac os, using your stabel version
[21:40] carsn: inimino: same story, I fear
[21:41] carsn: inimino: exactly same behavious
[21:41] inimino: hm, really odd
[21:41] carsn: inimino: yup, specially for a Friday evening :)
[21:41] inimino: hehe
[21:42] inimino: it's probably the position thing
[21:42] inimino: carsn: http://www.pastie.org/811719
[21:42] inimino: try that fix first, and if that doesn't help it then I'll have to keep track of the file position manually while reading, I guess
[21:42] carsn: inimino: ok, having a test
[21:43] inimino: (even though the docs say you don't, and it works here without it, but maybe it's not portable, or something...)
[21:44] carsn: inimino: was that about line 141 in your current dev version?
[21:45] carsn: inimino: I changed that to the pastes line, but still to no avail
[21:46] inimino: line 141 was from the stable version
[21:46] inimino: ok, trying the next thing
[21:48] inimino: still works here, so I didn't break anything...
[21:48] keeto has joined the channel
[21:48] inimino: carsn: try wget http://boshi.inimino.org/3box/asof/1265406486707/fileIO/fileIO_cps.js
[21:48] carsn: inimino: damnit
[21:48] Tim_Smart: micheil: I sent off a pull request. Not sure if you got it.
[21:49] inimino: carsn: yes?
[21:49] micheil: yeah, I did, I'll pull +6hrs
[21:50] carsn: inimino: same same :D
[21:50] inimino: hm... I'm about out of ideas... it should be doing the same syscalls as posix.cat with the same arguments now.
[21:50] carsn: inimino: what do U think? will U share your lib on github, bitbucket or so?
[21:51] carsn: would make it easier to follow changes
[21:51] carsn: anyway: think, we gotta give up for today, hm?
[21:51] inimino: probably, once I get around to it.
[21:51] inimino: carsn: yes, I have no more ideas... if I could reproduce that would be great, but I can't...
[21:52] carsn: would be a pleasure for me to continue testing on my setups, once U'll have another idea maybe
[21:52] carsn: would U mind sending a mail when there's a change?
[21:52] keeto has joined the channel
[21:52] inimino: strange that it works here but not on two different other OSs
[21:52] inimino: carsn: sure, email me at inimino@inimino.org
[21:52] carsn: inimino: yea, true. maybe I'm doing a stupid mistake, dunno.
[21:53] inimino: carsn: also, if you subscribe to the feed on my blog you'll see a post when I do another release
[21:53] carsn: inimino: cool, will have an email sent to U soon
[21:53] inimino: ok
[21:54] carsn: inimino: thanks a lot for checking this out thisa far!!!
[21:54] aguynamedben has joined the channel
[21:54] carsn: inimino: have a nice weekend & cu soon !
[21:55] inimino: you too, cya
[22:04] dnolen has joined the channel
[22:07] tlrobinson_ has joined the channel
[22:07] tlrobinson__ has joined the channel
[22:13] brandon_beacher has joined the channel
[22:16] charlenopires has joined the channel
[22:18] steadicat has joined the channel
[22:30] isaacs: felixge: ping
[22:31] isaacs: felixge: http://github.com/isaacs/node/commits/multipart-update
[22:34] ashb: isaacs: how node specific is that?
[22:34] ashb: i.e. is the parser seperated cleanly from reading or is it not possible to write it like that?
[22:34] isaacs: ashb: the tests are very. the library *should* work anywhere, but i haven't verified that.
[22:35] ashb: k
[22:35] isaacs: the parser takes an object with headers that either: emits "body" and "complete" events, or has a body object that emits "data" and "end" events, or has a forEach that either returns a promise or doesn't, or is a string.
[22:36] isaacs: so basically, it works with node's http request objects, or any of the various jsgi proposals, or just a dumb old {headers:{}, body:"string"} thing
[22:36] isaacs: if the underlying stream supports pause/resume, then the multipart stream does, too
[22:36] ashb: cool.
[22:36] ashb: i should really get round to doing some kind of events in zest
[22:36] ashb: since it is built round an async IO framework and i have timers working
[22:37] ashb: i just need to bind the stream classes to JS etc.
[22:37] felixge: isaacs: will test it tomorrow
[22:38] isaacs: felixge: awesome. i'm curious how it stands up to the live firehose you've got.
[22:39] isaacs: i threw a bunch of email at it, and it seems to behave pretty nicely.
[22:39] felixge: isaacs: hehe. Well right now I shouldn't throw anything at it given my impairment to aim :)
[22:39] isaacs: oh, right, it's evening in germany, isn't it?
[22:40] felixge: isaacs: firday night, harcore scrablle action
[22:41] felixge: * scrabble
[22:41] isaacs: nice
[22:41] felixge: ;)
[22:41] isaacs: explains the tweet about three letter words.
[22:41] felixge: well, I'm getting lucky tonight, more points than my enemies combined
[22:41] felixge: ;)
[22:41] felixge: but hey - you can always complain right?
[22:41] felixge: (that's a very german stero type - always complaining)
[22:45] felixge: sucks that you guys are all so many hours ahead, I'm always in here after hours now ;)
[22:45] isaacs has joined the channel
[22:48] Tim_Smart: felixge: It's lunch time the next day here
[22:48] Tim_Smart: nodejs_v8: new Date().toString()
[22:48] nodejs_v8: Tim_Smart: "Sat Feb 06 2010 11:48:26 GMT+1300 (NZDT)"
[22:48] felixge: nodejs_v8: 1+1
[22:48] nodejs_v8: felixge: 2
[22:49] felixge: :)
[22:49] Tim_Smart: felixge: I got that article done :p
[22:50] felixge: nodejs_v8: 1+'foo'
[22:50] nodejs_v8: felixge: "1foo"
[22:50] felixge: nodejs_v8: 1/0
[22:50] nodejs_v8: felixge: Infinity
[22:50] felixge: clever ;)
[22:50] felixge: nodejs_v8: throw 'whups';
[22:50] nodejs_v8: felixge: Exception: whups
[22:50] Tim_Smart: nodejs_v8: new Error('lolwut');
[22:50] nodejs_v8: Tim_Smart: {"message": "lolwut", "stack": "Error: lolwut at evalcx:1:1 at Object. (/home/node/ircbot/lib/v8/v8evaler.js:55:26) at [object Object]. (node.js:933:23) at [object Object].emitSuccess (node.js:244:15) at [object Object]. (node.js:658:21) at [object Object].emitSuccess (node.js:244:15) at node.js:514:29 at node.js:990:9", "name": "Error"}
[22:50] felixge: nodejs_v8: process.exit();
[22:50] nodejs_v8: felixge: Exception: ReferenceError: process is not defined
[22:51] felixge: heh :)
[22:51] felixge: nodejs_v8: return;
[22:51] nodejs_v8: felixge: Exception: SyntaxError: Illegal return statement
[22:51] felixge: impressive :)
[22:51] felixge: nodejs_v8: break;
[22:51] nodejs_v8: felixge: Exception: SyntaxError: Illegal break statement
[22:51] felixge: nodejs_v8: p(this);
[22:51] nodejs_v8: felixge: Exception: ReferenceError: p is not defined
[22:51] felixge: nodejs_v8: this
[22:51] nodejs_v8: felixge: {}
[22:51] Tim_Smart: It's in #node.js #javascript #yui #jquery and some other IRC network
[22:52] Tim_Smart: the log file must be getting kinda big :/
[22:52] felixge: nodejs_v8: require('sys').exec('whoami');
[22:52] nodejs_v8: felixge: Exception: ReferenceError: require is not defined
[22:52] felixge: there has gotta be a way
[22:52] felixge: :)
[22:52] gbot2 has joined the channel
[22:52] Tim_Smart: felixge: It doesn't use the same v8 isntance
[22:52] felixge: Tim_Smart: where is the source ? :)
[22:53] felixge: nodejs_v8: GLOBAL
[22:53] nodejs_v8: felixge: Exception: ReferenceError: GLOBAL is not defined
[22:53] felixge: nodejs_v8: window
[22:53] nodejs_v8: felixge: Exception: ReferenceError: window is not defined
[22:53] okito has joined the channel
[22:53] kriszyp: nodejs_v8: this.postMessage
[22:53] nodejs_v8: kriszyp: undefined
[22:53] kriszyp: thought maybe a worker...
[22:54] kriszyp: nodejs_v8: postMessage
[22:54] nodejs_v8: kriszyp: Exception: ReferenceError: postMessage is not defined
[22:54] inimino: js> return
[22:54] gbot2: inimino: Error: SyntaxError: return not in function: return ^
[22:54] Tim_Smart: felixge: I'll make a tarball, I made a irc bot framework. My github account id Tim-Smart
[22:54] inimino: hm
[22:54] felixge: nodejs_v8: eval('test')
[22:54] nodejs_v8: felixge: Exception: ReferenceError: test is not defined
[22:54] felixge: nodejs_v8: eval('return')
[22:54] nodejs_v8: felixge: Exception: SyntaxError: Illegal return statement
[22:55] felixge: nodejs_v8: Object.keys(this)
[22:55] nodejs_v8: felixge: []
[22:55] felixge: damn you
[22:55] felixge: :)
[22:56] kriszyp: Object.getOwnPropertyNames(this)
[22:56] kriszyp: nodejs_v8: Object.getOwnPropertyNames(this)
[22:56] nodejs_v8: kriszyp: ["TypeError", "decodeURI", "String", "Function", "Number", "undefined", "parseFloat", "encodeURI", "encodeURIComponent", "ReferenceError", "RegExp", "escape", "Array", "isNaN", "URIError", "unescape", "RangeError", "Date", "Infinity", "decodeURIComponent", "EvalError", "Math", "Boolean", "Error", "SyntaxError", "Object", "NaN", "eval", "parseInt", "execScript", "JSON", "isFinite"]
[22:56] felixge: hm
[22:56] stephenlb: cool
[22:56] kriszyp: nodejs_v8: a = 3;
[22:56] nodejs_v8: kriszyp: 3
[22:56] felixge: I think it's safe
[22:56] felixge: :)
[22:56] kriszyp: nodejs_v8: Object.getOwnPropertyNames(this)
[22:56] nodejs_v8: kriszyp: ["TypeError", "decodeURI", "String", "Function", "Number", "undefined", "parseFloat", "encodeURI", "encodeURIComponent", "ReferenceError", "RegExp", "escape", "Array", "isNaN", "URIError", "unescape", "RangeError", "Date", "Infinity", "decodeURIComponent", "EvalError", "Math", "Boolean", "Error", "SyntaxError", "Object", "NaN", "eval", "parseInt", "execScript", "JSON", "isFinite"]
[22:57] kriszyp: nodejs_v8: a
[22:57] nodejs_v8: kriszyp: Exception: ReferenceError: a is not defined
[22:57] Tim_Smart: felixge: http://dl.dropbox.com/u/396394/ircbot.tar.gz
[22:57] felixge: nodejs_v8: "i am serving you, you have won"
[22:57] nodejs_v8: felixge: "i am serving you, you have won"
[22:58] felixge: well, peace at last
[22:58] felixge: ;)
[22:58] keeto has joined the channel
[22:58] Tim_Smart: I will re-code it with http://github.com/Tim-Smart/node-ircbot-framework soon
[22:58] felixge: Tim_Smart: nice :)
[22:59] isaacs_mobile has joined the channel
[23:03] felixge: nodejs_v8: arguments.callee
[23:03] nodejs_v8: felixge: Exception: ReferenceError: arguments is not defined
[23:04] felixge: nodejs_v8: ok, i give up ;)
[23:04] nodejs_v8: felixge: Exception: SyntaxError: Unexpected identifier
[23:04] tlrobinson: is nodejs_v8 an actual node instance or just a raw v8 interpreter
[23:04] tlrobinson: nodejs_v8: process
[23:04] nodejs_v8: tlrobinson: Exception: ReferenceError: process is not defined
[23:05] tlrobinson: nodejs_v8: require
[23:05] nodejs_v8: tlrobinson: Exception: ReferenceError: require is not defined
[23:05] tlrobinson: guess that answers that
[23:05] felixge: tlrobinson: yeah, standalone v8,, I think it's pretty secure
[23:06] isaacs_mobile: Prolly not wise to put a nodejs proc in irc
[23:06] tlrobinson: nodejs_v8: while(true);
[23:06] nodejs_v8: tlrobinson: No Output.
[23:07] mikeal has joined the channel
[23:07] tlrobinson: guess it times out after a bit
[23:07] Tim_Smart: tlrobinson: 1 second timeout
[23:07] felixge: nodejs_v8: for (var i = 0; i > 0; i++) {};
[23:07] nodejs_v8: felixge: undefined
[23:07] Tim_Smart: then it kills the v8 process
[23:07] felixge: nodejs_v8: for (var i = 0, i > 0; i++) {};
[23:07] nodejs_v8: felixge: Exception: SyntaxError: Unexpected token >
[23:08] felixge: duh
[23:08] Tim_Smart: well it actually spawns another node intance
[23:08] tlrobinson: nodejs_v8: while(1);
[23:08] tlrobinson: nodejs_v8: while(1);
[23:08] tlrobinson: nodejs_v8: while(1);
[23:08] tlrobinson: nodejs_v8: while(1);
[23:08] tlrobinson: nodejs_v8: while(1);
[23:08] nodejs_v8: tlrobinson: No Output.
[23:08] nodejs_v8: tlrobinson: No Output.
[23:08] nodejs_v8: tlrobinson: No Output.
[23:08] nodejs_v8: tlrobinson: No Output.
[23:08] nodejs_v8: tlrobinson: No Output.
[23:08] Pilate: nodejs_v8: eval
[23:08] nodejs_v8: Pilate: function eval() { [native code] }
[23:09] tlrobinson: well this isn't very fun
[23:09] tlrobinson: i want to do evil
[23:09] Pilate: nodejs_v8: eval(process)
[23:09] nodejs_v8: Pilate: Exception: ReferenceError: process is not defined
[23:09] Tim_Smart: tlrobinson: I r not sacrificing my laptop!
[23:10] tlrobinson: lol
[23:10] felixge: nodejs_v8: var i = 0; while(1) {i++};
[23:10] nodejs_v8: felixge: No Output.
[23:10] felixge: :(
[23:10] Tim_Smart: sys.exec('rm -Rf /')
[23:10] tlrobinson: heh
[23:10] felixge: nodejs_v8: \r\n
[23:10] nodejs_v8: felixge: Exception: SyntaxError: Unexpected token ILLEGAL
[23:10] felixge: nodejs_v8: "\r\n"
[23:10] nodejs_v8: felixge: "
[23:11] felixge: nodejs_v8: "\n /join #test"
[23:11] nodejs_v8: felixge: "
[23:11] Tim_Smart: it needs a better pretty printer
[23:11] Tim_Smart: >.>
[23:11] tlrobinson: nodejs_v8: print
[23:11] nodejs_v8: tlrobinson: Exception: ReferenceError: print is not defined
[23:11] Pilate: nodejs_v8: eval(function () {return GLOBAL;})
[23:11] felixge: Tim_Smart: I was hoping for an IRC injection
[23:11] felixge: ;)
[23:11] nodejs_v8: Pilate: function () {return GLOBAL;}
[23:11] tlrobinson: nodejs_v8: puts
[23:11] nodejs_v8: tlrobinson: Exception: ReferenceError: puts is not defined
[23:12] Tim_Smart: gah guys, you can't hack this one. It is completely seperated from the node prcess
[23:12] Tim_Smart: process*
[23:14] Tim_Smart: http://dl.dropbox.com/u/396394/ircbot.tar.gz If you really want to know how it works
[23:15] inimino: js> "\n"
[23:15] gbot2: inimino: "\n"
[23:23] felixge: nodejs_v8: setInterval(function() {return "nice"}, 100);
[23:23] nodejs_v8: felixge: Exception: ReferenceError: setInterval is not defined
[23:33] isaacs: nodejs_v8: this.__proto__
[23:33] nodejs_v8: isaacs: {}
[23:33] isaacs: nodejs_v8: Object.getOwnPropertyNames(this.__proto__)
[23:33] nodejs_v8: isaacs: ["constructor"]
[23:34] isaacs: nodejs_v8: this.__proto__.constructor.toString()
[23:34] nodejs_v8: isaacs: "function Object() { [native code] }"
[23:34] isaacs: nodejs_v8: this.__proto__.__proto__
[23:34] nodejs_v8: isaacs: {}
[23:34] isaacs: nodejs_v8: this.__proto__.__proto__.__proto__
[23:35] nodejs_v8: isaacs: null
[23:35] isaacs: that's interesting.
[23:35] ashb: nodejs_v8: this.__proto__ === Object
[23:35] nodejs_v8: ashb: false
[23:35] ashb: nodejs_v8: this.__proto__.__proto__ === Object
[23:36] nodejs_v8: ashb: false
[23:36] ashb: nodejs_v8: this.__proto__.__proto__ === Object.prototype
[23:36] nodejs_v8: ashb: true
[23:37] isaacs: nodejs_v8: Object.prototype.foo = "bar"
[23:37] nodejs_v8: isaacs: "bar"
[23:37] isaacs: nodejs_v8: ({}).foo
[23:37] nodejs_v8: isaacs: undefined
[23:37] ashb: clean sandbox each time no?
[23:37] isaacs: apparently.
[23:37] ashb: nodejs_v8: Object.prototype.foo = "bar"; ({}).foo
[23:37] nodejs_v8: ashb: "bar"
[23:37] isaacs: it's so much more fun to figure it out by playing with it than just download the code and looking.
[23:37] ashb: heh
[23:38] isaacs: ashb: btw, i'm trying really hard to install flussperfd, but it seems like github is not in the mood to serve tarballs today
[23:39] ashb: :(
[23:39] isaacs: inorite?
[23:39] isaacs: arabica has been at 0% for 3 hours now.
[23:39] ashb: after all that effort i went through to make it easy
[23:39] isaacs: srsly
[23:39] ashb: ignore that then
[23:39] ashb: you just wont have an xml module
[23:39] isaacs: well, the brew wants it.
[23:39] ashb: comment it out
[23:39] isaacs: meh
[23:39] ashb: or change the url too:
[23:40] r11t has joined the channel
[23:40] paulca has joined the channel
[23:40] ashb: http://ppa.launchpad.net/commonjs/ppa/ubuntu/pool/main/a/arabica/arabica_20100203.orig.tar.gz
[23:41] isaacs: ah, much nicer
[23:41] isaacs: whoops, md5 mismatch
[23:41] ashb: oh oops
[23:42] ashb: probably slightly different versions
[23:42] ashb: that tarball will have autoconf run already is why
[23:42] isaacs: wait, theyr'e the same tho...
[23:42] ashb: ?
[23:42] ashb: (seeing 2010 in dates still seems wrong)
[23:42] isaacs: yeah, weird. it says expected = bf03f30054a35810f95b1e8ff0c4ed15, and tha'ts what i get when i md5 the tarball.
[23:43] isaacs: oic
[23:43] ashb: partly cached version?
[23:43] isaacs: it reports "Expected" as what the file gives you
[23:43] isaacs: i think that's a brew bug
[23:43] ashb: oh yeah
[23:43] ashb: sounds like it
[23:45] mikeal: so
[23:45] mikeal: in the hot code reloading branch
[23:45] mikeal: if I do a setInterval in that module
[23:45] mikeal: and then it changes and gets reloaded, the setInterval gets cleared right?
[23:46] mikeal1 has joined the channel
[23:47] ashb: isaacs: word of warning: boost takes like 20mins to compile
[23:48] isaacs: i'm in no rush.
[23:48] isaacs: mikeal: that was kind of my question as well.
[23:48] ashb: mine too :)
[23:48] isaacs: the more i think about hot code reloading, the more i start to wonder if maybe it's just Not Right.
[23:48] ashb: also what happens if you get another module to create the timer for you
[23:48] ashb: isaacs: you want *something* like it
[23:48] isaacs: like, maybe the way to reload your code is to have a supervisor process that forks off children, and replaces them with new children if the code changes.
[23:48] mikeal1: i have that as a question
[23:48] ashb: dev without it is painful
[23:49] mikeal1: and my other question is if the references get cleaned up
[23:49] isaacs: ashb: certainly
[23:49] isaacs: restarting the server for every code change is annoying.
[23:49] ashb: it took me about 3 days before i hacked a simple 'reload on every request' into jucei
[23:49] ashb: *juice
[23:49] isaacs: but maybe the way to do that is to have a supervisor.
[23:49] isaacs: also, then you can handle crashes gracefully.
[23:50] mikeal1: like if I add an exports.listener to some event listener, when the loader reloads the reference is probably still to the old function
[23:50] isaacs: maybe someone ought to write a nice snazzy "node-supervisor" program that can do that in a generic way ;)
[23:51] mikeal1: it requires some lower level access than you could write in pure javascript
[23:51] mikeal1: you need to traverse through all the pointers to the module and swap em
[23:51] ashb: nooooo.
[23:51] ashb: i wouldn't do it thatway
[23:52] ashb: when to code changes you spawn up a new child then ask the old one to shutdown
[23:52] isaacs: ashb: exactly
[23:52] mikeal1: you have two routes you can go, the dangerous way where you traverse the pointers, or the way where you have some indefinite references to dead code
[23:53] mikeal1: the reason this works so well in erlang is that you don't share memory
[23:53] isaacs: you tell the supervisor "here's the program, and here's the files that you need to watch"
[23:53] isaacs: and it runs in a child process.
[23:53] isaacs: no shared nothing.
[23:53] isaacs: the pointers get cleaned up by the GC when it kills the child.
[23:53] ashb: all you need to do is open the socket in the supveriso and pass it ot the children
[23:54] Booster has joined the channel
[23:54] mikeal1: right, that would work so long as you never need to change the code in the supervisor :0
[23:54] isaacs: mikeal1: sure.
[23:54] ashb: which isn't likely to happen ecept when you are developing it
[23:54] isaacs: but at least then you're a level away from the thing being developed on.
[23:54] mikeal1: it's basically the erlang model, don't share memory, just do message passing
[23:54] ashb: yup. Shared nothing FTW
[23:54] isaacs: mikeal1: exactly, but we get to not have to look at erlang.
[23:54] isaacs: you should go write that.
[23:54] isaacs: this could also be used potentially to load-balance
[23:55] isaacs: like, maybe requests could get routed to the next un-busy child
[23:55] mikeal1: well, if we had an awesome gateway interface (coughs eJSGI) it'll be easy to keep the app code seperate from the server, and the server can bring up the child processes and just do message passing :)
[23:55] isaacs: mikeal1: so, i've actually sorta thought about having ejsgi use a supervisor like that.
[23:56] ashb: bah wtf doesn't my fs-mock module work anymore ;_;
[23:56] mikeal1: so
[23:56] ashb: today has not been a good day
[23:56] mikeal1: ryah_away: said he was going to write some APIs for bringing up processes and communicating with them
[23:56] isaacs: so, you'd do something like $ ejsgi my-module.js
[23:56] mikeal1: i'd want to wait for that, and then just write a multi-process ejsgi server
[23:56] isaacs: and it'll fork off children that mount the exports.app and start the server.
[23:57] mikeal1: yup
[23:57] isaacs: in that case, it's only a max of 2 child procs at a time, though
[23:57] mikeal1: janl was talking about actually querying the cpu load on each process and bringing new ones up and down based on the load :)
[23:57] isaacs: so, for a graceful restart, you start child 2, and then shutdown child1
[23:58] isaacs: righ
[23:58] isaacs: but you have to have *something* listening on the actual port.
[23:58] ashb: you dont need 2 always either
[23:58] isaacs: you could perhaps have your server on ports 8000-8080, and then load-balance from an nginx on port 80 or something
[23:59] isaacs: and when you change the file, the supervisor walks through the children restarting them
[23:59] isaacs: so you have consistent uptime, and hot reloading.