00:23:17  * mikealjoined
00:26:16  * mikealquit (Client Quit)
00:36:46  <SubStack>heading down to H&F in the city
00:58:31  <rowbit>Hourly usage stats: [developer: 1, free: 20]
01:08:11  * st_lukejoined
01:18:16  * isaacsquit (Remote host closed the connection)
01:18:37  * isaacsjoined
01:55:31  * wiwilliaquit (Ping timeout: 244 seconds)
01:58:31  <rowbit>Hourly usage stats: [developer: 1, free: 21]
02:00:45  * ryan_stevensquit (Quit: Leaving.)
02:13:13  * wiwilliajoined
02:20:02  * isaacsquit (Remote host closed the connection)
02:28:40  <jesusabdullah>SubStack: Halp the fat arrow man is being mean https://gist.github.com/2364818#comments :(
02:50:02  * isaacs_mobilejoined
02:55:36  <chapel>how goes it jesusabdullah?
02:58:26  <jesusabdullah>terrible! Brendan Eich's trying to add fat arrow syntax to javascript!
02:58:31  <rowbit>Hourly usage stats: [free: 19]
02:58:49  <jesusabdullah>I'm worried it will discourage dynamic scoping in the future
02:58:57  <jesusabdullah>which imo is one of javascript's coolest features
03:00:11  <chapel>-> was supposed to be shorthand for normal anon functions
03:00:26  <chapel>right?
03:00:28  <maxogden>yeah but "two arrow syntaxes will confuse people"
03:00:37  <chapel>it doesn't in coffeescript
03:02:12  <jesusabdullah>chapel: No, they DROPPED -> because they could "only reach concensus" on =>
03:03:02  <jesusabdullah>I'd be okay with -> as a shorter function syntax, and given that this exists I'm also cool with => existing
03:03:05  <jesusabdullah>I guess
03:03:21  <jesusabdullah>but I see this terrible attitude towards this-ing
03:03:38  * isaacs_mobilequit (Remote host closed the connection)
03:03:40  <jesusabdullah>like they're trying to make dynamic scoping EVEN SHITTIER
03:03:59  <jesusabdullah>in order to discourage people from using it
03:05:46  <chapel>its like they look at this as their ugly red headed step child and are trying to get rid of it
03:05:50  <chapel>or make it unfavorable to use
03:07:01  <jesusabdullah>yeah
03:07:12  <jesusabdullah>I almost expect it to immediately be linted out of codebases
03:07:19  <jesusabdullah>going the way of `with`
03:07:22  <jesusabdullah>it's that bad
03:07:48  <chapel>it is sad that they are pushing for change for changes sake
03:08:11  <chapel>and introducing change that will ruin a viable usage
03:10:05  <chapel>I am weary of the es6 changes, just feels like they are going to change things and not for the better
03:29:21  <Raynos>SubStack: I have to jump through a shit ton of hoops to make `require("dnode")` magically work on client & server
03:29:44  <Raynos>I'm sharing a single file server/client using browserify for the client and I just expected `require("dnode")` to magically grab the browser build, it doesn't
03:29:58  <Raynos>If I make a pull request to make that happen in dnode, is that worth the effort?
03:30:32  <chapel>http://www.mikealrogers.com/posts/a-vocal-minority.html
03:58:31  <rowbit>Hourly usage stats: [free: 11]
04:02:17  * wiwilliaquit (Ping timeout: 265 seconds)
04:14:40  <Raynos>dnode doesn't proxy methods defined in prototypes
04:14:43  <Raynos>which becomes an issue
04:18:38  * anoemijoined
04:19:22  * anoemiquit (Client Quit)
04:25:09  * st_lukequit (Remote host closed the connection)
04:27:10  * st_lukejoined
04:31:32  <chapel>why is that a problem, whats the usecase there?
04:32:18  <jesusabdullah>you can proxy to your prototype methods by hand maybe :)
04:53:06  * wiwilliajoined
04:58:31  <rowbit>Hourly usage stats: [free: 22]
05:08:12  <Raynos>Thats a nightmare
05:08:15  <Raynos>I tried that
05:08:20  <Raynos>dnode has two issues
05:08:26  <Raynos>it doesn't set `this` properly
05:08:44  <Raynos>invoking `obj.method()` remotely doesn't go back and set `this === obj` on the server
05:08:54  <Raynos>and it doesn't allow me to invoke methods from the prototype remotely
05:09:12  <Raynos>which basically means I need to intercept dnode somewhere
05:33:16  <Raynos>Ok I cant fix dnode :(
05:33:20  <Raynos>limitations suck
05:33:55  <chapel>it isn't really a limitation
05:34:05  <chapel>its by design
05:34:13  <Raynos>fail by design you mean :P
05:34:56  <Raynos>are there any RPC libraries I can throw complex objects at and it just works
05:34:57  <chapel>I assume you are trying to do something like this.foo = bar
05:35:11  <chapel>where as bar is an object prototype you created?
05:36:04  <Raynos>im passing objects through callbacks
05:36:12  <Raynos>im actually passing an instance of mongodb collection through dnode
05:36:16  <Raynos>and expecting it to just work
05:36:24  <chapel>lol
05:36:56  <Raynos>if it did RPC right it would just work :P
05:37:01  <Raynos>because all mongodb methods use callbacks
05:37:16  <chapel>well you should look into how dnode passes functions
05:37:21  <chapel>it doesn't pass the actual code
05:37:26  <Raynos>i know
05:37:33  <Raynos>i identified the issues
05:37:47  <Raynos>it manually sets thte `this` value to `self.instance` rather then the object passed through
05:37:55  <Raynos>and the traverse it uses to scrub ignores prototypes
05:38:28  <Raynos>my attempts at fixing the issue failed at the circular references passed over RPC point
05:38:55  <Raynos>im just going to use a RPC layer that already fixed this
05:42:19  * devaholicquit (Ping timeout: 260 seconds)
05:44:25  <chapel>well Im not going to try and convince you use dnode, its obvious you would rather do it your way even if it isn't the right way :)
05:54:18  <Raynos>my way is the right way :P
05:55:06  <Raynos>I'm trying expose the mongoDB API to the client by transparently throwing the objects through RPC. The alternative is to rebuild and proxy the entire API on the client
05:55:12  <Raynos>the latter is time consuming as heck
05:58:31  <rowbit>Hourly usage stats: [free: 12]
05:59:06  <chapel>naively exposing the whole api is dumb, and lazy
05:59:14  <chapel>there are so many reasons you don't want to do that
06:04:59  * ryan_stevensjoined
06:10:21  * wiwilliaquit (Ping timeout: 260 seconds)
06:21:41  <jesusabdullah>so, apparently I get a free ebook from http://www.packtpub.com/ for reviewing this node book for them
06:21:56  <jesusabdullah>but none of these books sound appealing to me!
06:22:07  <jesusabdullah>So I need help picking the least unappealing book
06:44:26  <SubStack>Raynos: the problem with sending prototypes over the wire is that there is a LOT of stuff to send and they're usually synchronous apis
06:45:02  <Raynos>chapel: I agree, but it's quick and dirty
06:45:27  <Raynos>Optimumly I wrap the entire api intelligently and use a custom methods over dnode for invocation
06:46:12  <Raynos>I just wanted to throw a complex database object through the RPC and have all methods with callback "just work" out of the box ignoring performance penalties
06:46:42  <SubStack>the koding.com folks built a wrapper on top of dnode that exposes prototypes somehow
06:46:54  <SubStack>not open source though :/
06:46:58  <Raynos>:/
06:47:01  <Raynos>I wrote a wrapper myself
06:47:07  <Raynos>but it breaks due to circular references
06:47:22  <Raynos>I think I just have to do this the hard way
06:47:32  <Raynos>which is annoying because mongodb has hundreds of methods for me to mock -.-
06:49:34  <SubStack>you could write a transform in traverse
06:49:43  <SubStack>it has circular reference detection
06:51:23  <Raynos>I tried that, I didnt have time to figure out how to solve everything
06:51:33  <Raynos>jesusabdullah: none of those are any good
06:58:31  <rowbit>Hourly usage stats: [free: 23]
07:01:14  <jesusabdullah>Raynos: That's what I'm saying
07:03:00  * wiwilliajoined
07:24:02  * wiwilliaquit
07:38:07  * tilgoviquit (Ping timeout: 265 seconds)
07:51:51  * stlsaintquit (Ping timeout: 260 seconds)
07:58:31  <rowbit>Hourly usage stats: [free: 22]
08:00:05  * stlsaintjoined
08:04:29  <SubStack>https://twitter.com/#!/tbiz/status/190630859936768000
08:04:36  * devaholicjoined
08:17:21  <Altreus>:)
08:17:51  <SubStack>=^_^=
08:58:31  <rowbit>Hourly usage stats: [free: 13]
09:08:24  * ryan_stevensquit (Quit: Leaving.)
09:28:37  * isaacsjoined
09:56:24  * devaholicquit (Ping timeout: 245 seconds)
09:58:31  <rowbit>Hourly usage stats: [developer: 4, free: 25]
10:18:58  * isaacsquit (Remote host closed the connection)
10:58:31  <rowbit>Hourly usage stats: [free: 14]
11:04:44  * devaholicjoined
11:11:36  * Blizzzjoined
11:12:10  <Blizzz>hey
11:12:23  <Blizzz>what do i do when i lost/forgot my SSH password for browslering?
11:58:31  <rowbit>Hourly usage stats: [free: 25]
12:58:31  <rowbit>Hourly usage stats: [developer: 4, free: 35]
13:02:54  * st_lukequit (Remote host closed the connection)
13:18:05  * TheJHjoined
13:44:23  <pkrumins>Blizzz: you can upload your public key!
13:45:54  <pkrumins>Blizzz: http://testling.com/docs/#tunnels
13:58:31  <rowbit>Hourly usage stats: [free: 21]
14:26:27  <Blizzz>pkrumins: ah, perfect. only a little late now, unfortunately, since i need the password to copy it over.
14:27:41  * wiwilliajoined
14:27:55  <pkrumins>oh hmm
14:28:52  <pkrumins>let me reset your password then
14:29:00  <pkrumins>message me the password please
14:41:57  * devaholicquit (Read error: Operation timed out)
14:42:15  * TheJHquit (Ping timeout: 244 seconds)
14:52:45  * antixjoined
14:58:31  <rowbit>Hourly usage stats: [free: 44]
14:59:39  * wiwilliaquit (Ping timeout: 240 seconds)
15:14:42  * devaholicjoined
15:18:22  * anoemi__joined
15:19:06  * daeheejoined
15:19:16  * anoemi__quit (Client Quit)
15:28:24  * daeheequit (Quit: daehee)
15:31:06  * wiwilliajoined
15:36:26  * ryan_stevensjoined
15:36:37  * ryan_stevensquit (Client Quit)
15:48:06  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
15:48:06  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
15:58:14  <pkrumins>cash money.
15:58:21  <pkrumins>at 91 customer now.
15:58:31  <rowbit>Hourly usage stats: [developer: 2, free: 36]
16:09:09  * ryan_stevensjoined
16:24:05  * st_lukejoined
16:33:17  * TheJHjoined
16:34:19  * pkruminschanged nick to hjkl
16:34:32  * hjklchanged nick to pkrumins
16:37:50  * devaholicquit (Ping timeout: 264 seconds)
16:41:44  * devaholicjoined
16:54:07  * wiwilliaquit (Ping timeout: 244 seconds)
16:57:37  * wiwilliajoined
16:58:31  <rowbit>Hourly usage stats: [developer: 1, free: 33]
17:16:39  <rook2pawn>http://www.youtube.com/watch?v=Gk9NokdKBSI
17:29:22  * isaacsjoined
17:29:55  * Blizzzquit (Remote host closed the connection)
17:36:53  * wiwilliaquit (Ping timeout: 250 seconds)
17:56:03  * wiwilliajoined
17:58:31  <rowbit>Hourly usage stats: [free: 38]
18:16:28  * mikealjoined
18:58:31  <rowbit>Hourly usage stats: [developer: 1, free: 52]
19:24:03  * TheJHquit (Ping timeout: 272 seconds)
19:40:10  * mikealquit (Quit: Leaving.)
19:55:50  * st_lukequit (Remote host closed the connection)
19:58:31  <rowbit>Hourly usage stats: [developer: 4, free: 54]
19:58:31  <rowbit>Daily usage stats: [developer: 20, free: 665]
20:09:33  * tm604quit (Quit: Leaving.)
20:10:07  * TheJHjoined
20:16:42  * tm604joined
20:18:09  * isaacsquit (Remote host closed the connection)
20:24:39  * wiwilliaquit (Ping timeout: 240 seconds)
20:36:49  * st_lukejoined
20:51:20  <maxogden>st_luke: efffff yeaaaa tacoconf
20:53:42  <st_luke>yeeeeeeeeahhhh dude
20:53:52  <st_luke>fist time on the west cost too
20:54:32  <maxogden>st_luke: i bet stackhaus has an extra bike you can use
20:54:36  <maxogden>st_luke: or actually i do to
20:55:26  * mikealjoined
20:56:02  <st_luke>oh that would be awesome
20:58:31  <rowbit>Hourly usage stats: [developer: 1, free: 18]
21:01:31  <st_luke>I have this nagging feeling it might make me want to move to the area
21:04:27  <jesusabdullah>st_luke: you can borrow my bike I never use it
21:04:40  <jesusabdullah>!! I HEAR COFFEE
21:04:41  <st_luke>jesusabdullah: not going to taco conf?
21:04:54  <jesusabdullah>st_luke: I haven't thought that far ahead!
21:07:32  <st_luke>you cray dude. I heard a preview of the speakers when max was in BK and I wouldn't miss it
21:07:38  <st_luke>esp if you're already in the area
21:07:56  <jesusabdullah>I guess I just hate bicycles THAT much
21:08:39  <st_luke>will your enjoyment of tacos & js balance out the bike hate?
21:34:46  * sorensen__joined
21:39:03  * tilgovijoined
21:41:19  * st_lukequit (Remote host closed the connection)
21:46:45  * isaacsjoined
21:58:31  <rowbit>Hourly usage stats: [developer: 4, free: 32]
22:13:40  * st_lukejoined
22:19:39  * sorensen__quit (Quit: Linkinus - http://linkinus.com)
22:29:07  <pkrumins>st_luke: you can also stay at stackhouse!
22:29:16  <pkrumins>just saw your tweet that you're going to oakland
22:29:37  <pkrumins>you should talk with SubStack about staying at stackhouse
22:36:42  <SubStack>yep!
22:36:47  <st_luke>really? that would be really amazing guys
22:37:34  * zz_shykeschanged nick to shykes
22:38:39  <pkrumins>yeah
22:38:52  <st_luke>I will come bearing cool gifts from upstate NY
22:38:53  <st_luke>heh
22:39:15  <st_luke>whatever it is we have up here
22:46:53  <Raynos>SubStack: you can't call `require("dnode")` and throw browserify over it and then have it be the dnode client in the browser currenlty.
22:47:29  <Raynos>you have to include it as a script through /dnode.js. What's the best way to patch this and get you to accept a pull request on this?
22:52:54  <SubStack>you can't?
22:53:03  <SubStack>pretty sure I've been doing this in production for a while now
22:55:18  * TheJHquit (Ping timeout: 246 seconds)
22:58:33  <rowbit>Hourly usage stats: [developer: 1, free: 18]
22:59:54  <Raynos>SubStack: I'm looking at it, it just works
23:00:00  <Raynos>I'm mad
23:02:13  <SubStack>browserify <(echo "var dnode = require('dnode')") -o bundle.js
23:02:15  <SubStack>seems to work
23:02:46  <Raynos>what black magic do you use for this
23:03:17  <Raynos>does browserify emulate net / tls / http
23:03:18  <SubStack>in the package.json you can have a "browserify" field
23:03:28  <SubStack>of any project
23:03:30  <Raynos>oh
23:03:32  <Raynos>wait what
23:03:35  <Raynos>that's cheating -.-
23:03:44  <Raynos>how am I supposed to know that works
23:03:50  <Raynos>it also doesn't work without browserify :P
23:03:58  <SubStack>it's just like "main"
23:04:11  <SubStack>except browserify uses that instead of the main
23:04:14  <SubStack>if present
23:04:43  <SubStack>so in dnode there's "main" : "index.js"
23:04:50  <SubStack>and "browserify" : "browser/index.js"
23:04:52  <Raynos>browserify uses ES5 shim by default right?
23:04:54  <SubStack>just different entry points
23:04:56  <SubStack>nope
23:05:03  <SubStack>you'll need to include an es5 shim yourself
23:05:10  <Raynos>Ah ok
23:06:18  <SubStack>you can use the shimify module though
23:09:19  * mikeal1joined
23:09:25  <Raynos>That's cool
23:09:35  <Raynos>can i patch dnode so it also works with other commonJS wrappers?
23:10:14  <Raynos>because browserify specific logic is browserify specific
23:10:38  <SubStack>you could probably add a wrapper around the output
23:11:04  <SubStack>but I will not accept a patch for that in dnode itself
23:11:13  <SubStack>because I hate those other wrappers
23:11:28  <Raynos>why do you hate those other wrappers?
23:11:28  * mikeal1quit (Client Quit)
23:11:50  <SubStack>especially the ones that make you indent your whole file with a define() or that make you pass a callback to require()
23:11:51  <Raynos>For example ( https://github.com/medikoo/modules-webmake )
23:12:06  <Raynos>I'm talking about other libraries that do the exact same thing browserify does
23:12:17  <Raynos>except don't look at the browserify field for the package.json
23:12:56  * stlsaint_joined
23:13:49  <SubStack>the problem with those modules is that they don't usually work with stuff in node_modules
23:13:58  <SubStack>or things pulled down from npm
23:14:12  <SubStack>and the dnode browser source is built from modules on npm
23:14:31  <SubStack>and I'm not going to work around how other browser loaders can't do that
23:14:58  <SubStack>the reason I wrote browserify in the first place was that I wouldn't need to have separate versions of all the subcomponents specifically for the browser
23:15:04  <SubStack>for dnode specifically
23:15:38  <Raynos>ah i see
23:15:44  <Raynos>I'm not thinking this through :P
23:16:34  * chapel_joined
23:16:36  <SubStack>I built browserify specifically for dnode :p
23:17:14  <SubStack>but what you could do
23:17:21  <SubStack>is just throw a wrapper around all of dnode
23:17:23  * mikealquit (*.net *.split)
23:17:23  * stlsaintquit (*.net *.split)
23:17:23  * chapelquit (*.net *.split)
23:17:54  <Raynos>yeah
23:18:03  <Raynos>But that's a pain
23:18:08  <Raynos>because it will have to be build with browserify
23:18:28  <Raynos>I'd rather undo everything you solved with browserify :D
23:18:30  <SubStack>only the dnode blog
23:18:35  <SubStack>s/.$/b/
23:18:50  * daeheejoined
23:19:01  * chapel_quit (Client Quit)
23:19:11  <SubStack>just do this:
23:19:16  <SubStack>cat <(browserify <(echo "require('dnode')")) <(echo "module.exports = require('dnode')") > dnode.js
23:19:34  <Raynos>I know but then im using browserify :(
23:19:34  <SubStack>then you can just require('./dnode')
23:19:38  <SubStack>yes
23:19:47  <SubStack>because only browserify is node-compatible enough to build dnode
23:19:58  <SubStack>that I know of
23:20:42  <SubStack>what is wrong with using browserify?
23:21:04  * chapeljoined
23:21:25  <SubStack>also:
23:21:25  <SubStack>23:11:32 < Raynos> I'm talking about other libraries that do the exact same thing browserify does
23:21:31  <Raynos>https://github.com/Raynos/tiny-require#motivation
23:21:32  <SubStack>^ no such libraries exist
23:21:47  <Raynos>I agree, browserify is unique in it's emulating of node core modules
23:22:05  <Raynos>the main issue I have with browserify is the lack of async support and the byte size
23:22:18  <SubStack>lacking async support is a feature, not a bug
23:22:20  <Raynos>I havn't rewritten something that solves the byte size problem yet
23:22:22  <SubStack>fuck async loaders
23:22:25  <Raynos>No
23:22:28  <Raynos>not like that
23:22:30  <SubStack>I'm never going to support those ever
23:22:44  <Raynos>I mean having a single blocking entry point
23:23:07  <Raynos>then traversing all the require calls out, loading the file asynchronously, traversing require calls out of those, load asynchronously, repeat
23:23:39  <Raynos>async require syntax is silly
23:23:40  <SubStack>that sounds really slow
23:23:50  <Raynos>it's not that slow because of individual caching
23:23:52  <SubStack>I also wrote a module to do that http://github.com/substack/wreq
23:24:03  <Raynos>what ._.
23:24:12  <Raynos>why no-one tell me substack solves all the problems
23:24:12  <SubStack>but I don't use it for anything, it's just a proof of concept
23:24:35  <Raynos>ok browserify still suffers from the bytesize overhead :P
23:24:48  <SubStack>"bytesize overhead"
23:25:12  <SubStack>$ browserify <(echo) |wc -c
23:25:12  <SubStack>9690
23:25:22  <Raynos>10kb !
23:25:24  <SubStack>9 kilobytes is amazingly tiny
23:25:32  <SubStack>images are hundereds of kilobytes
23:25:43  <SubStack>and you can run it through a minifier
23:25:43  <Raynos>its huge if your writing a small library that supports commonJS only
23:25:53  <Raynos>and you want to write a tiny wrapper for it
23:26:23  <SubStack>I'm not sure what you mean
23:26:45  <devaholic>hmm, i cant get anything to return with `seaport ip:port show` from my local, but using curl i can see some json, and on the ip using seaport ip:port show works
23:27:12  <SubStack>devaholic: the ip:port thing was broken, I just published a patch a few hours ago
23:27:20  <SubStack>only a problem in the bin script
23:27:28  <SubStack>upgrade to 0.6.7 and it should work!
23:27:48  <Raynos>SubStack: https://github.com/Raynos/NodeComposite uses commonJS. It's 1.1kb gzip/minified, 350bytes of that are the commonJS wrapper
23:27:53  <devaholic>hmm, i already did
23:27:57  <SubStack>!
23:27:58  <Raynos>That's using webmake rather then browserify
23:28:09  <Raynos>I'm basically hand optimizing bytes :(
23:28:17  <Raynos>anyway this is irrelevant, you already solved the problem
23:28:28  <SubStack>who cares
23:28:32  <SubStack>computers are fast now
23:28:57  <SubStack>I don't get the obsession people have with minimizing file sizes >_<
23:28:59  <Raynos>the good news is that dnode magically works with browserify
23:29:03  <SubStack>yes
23:29:25  <Raynos>the other good news is I'm using browserify \o/
23:29:49  <SubStack>well if we're talking minified/gzipped files then that's not a fair comparison!
23:30:14  <SubStack>$ browserify <(echo) | uglifyjs | gzip | wc -c
23:30:14  <SubStack>1669
23:30:20  <SubStack>:p
23:30:24  <Raynos>yeah that's still 1300 more bytes
23:30:32  <Raynos>I'm sure I can get tiny-require down to 50 bytes
23:30:50  <SubStack>seems unimportant
23:31:05  <Raynos>it also remaps those long require strings like "dnode" and "browserify" to sensible strings like "a" and "b" \o/
23:31:10  <jesusabdullah>browserify.jit.su does uglify minimization
23:31:14  <Raynos>it's really unimportant
23:31:37  <SubStack>haha
23:31:50  <Raynos>the annoying thing is deciding how to support the same code client/server without faking all the node APIs like browserify does
23:32:10  <SubStack>some of the apis aren't even fake
23:32:16  <maxogden>SubStack: https://github.com/dominictarr/JSONStream/blob/master/index.js#L69-71
23:32:24  <SubStack>like http.request and process.nextTick
23:32:26  <maxogden>SubStack: you should make browserify bufffer do that
23:32:46  <SubStack>maxogden: good thinking
23:33:08  <Raynos>I was looking at how mikeal's request just works using browserify which is hella impressive
23:33:42  <SubStack>process.nextTick also uses the window event api to actually do a next tick
23:34:04  <SubStack>and falls back to using setTimeout(fn, 0) in browsers that don't have that api
23:34:19  <SubStack>and vm.runInNewContext() uses iframes to make new javascript contexts
23:34:39  * daeheequit (Quit: daehee)
23:34:55  <SubStack>it's all because I like using modules from npm
23:35:00  <SubStack>because there are a lot of those
23:35:32  <SubStack>and they have familiar apis
23:35:58  <devaholic>SubStack: thanks that work, had PATH issues
23:40:06  <SubStack>awesome
23:46:59  <devaholic>works even
23:47:12  <devaholic>.. and now im watching star wars in ascii form
23:47:15  <devaholic>https://gist.github.com/2299368
23:58:33  <rowbit>Hourly usage stats: [free: 9]
23:59:17  <Raynos>is that the testling user stats?