00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:05  <tjfontaine>trevnorris: there's a flag for that, you can enable strict engines
00:00:08  * ircretaryjoined
00:00:29  <trevnorris>tjfontaine: all that does is not allow the package to be installed. so the user still has to define package@version
00:01:02  <trevnorris>if they want a working package w/ their version of node
00:01:48  <tjfontaine>I'm not sure what you mean, you want people to encode a version matrix in their package.json?
00:02:26  <tjfontaine>{ engines: { "node": {"v0.10": "~1.0", "v0.12": "~2.0" } } }
00:02:47  <trevnorris>that shouldn't be necessary. say for example:
00:04:08  <trevnorris>in package version 0.2.3 i say "node": "<=10.5", then in package version 0.2.4 I put "node": "<=10.8". if I install the package w/ version 10.5 it will automatically give me version 0.2.3 of the package
00:04:18  <indutny>tjfontaine: just curious
00:04:26  <indutny>tjfontaine: could I scale down server in JPC?
00:04:36  <tjfontaine>indutny: you can resize down yes, but it requires a restart
00:04:56  <indutny>oh, so I need to stop it first?
00:04:56  <trevnorris>the server would read the incoming package.json files and create/maintain the manifest of package version/node version compatibility
00:05:41  <tjfontaine>trevnorris: that's a significant change to the arch -- that's doable, but changes how it's basically done now, which is canonical information stored in the latest "version" you've published, and then the client works off that data
00:05:54  * kazuponquit (Ping timeout: 240 seconds)
00:06:04  <tjfontaine>trevnorris: but it's certainly a valid way to do it, most other package managers keep more information about the graph than npm does by default
00:06:12  <tjfontaine>indutny: no i think it still requires a support@ email
00:06:18  <indutny>tjfontaine: oh, good to know
00:06:19  <trevnorris>tjfontaine: yeah. I realize to generate that manifest you'd need to read every package.json for every version of every package. not a simple task.
00:06:25  <tjfontaine>indutny: support wants to verify that you have enough storage etc
00:06:30  <indutny>going to resize my blog to make sure that it'll survive the night
00:06:42  <indutny>hopefully will be able to shrink it down tomorrow
00:06:42  <indutny>:)
00:06:56  <tjfontaine>trevnorris: some of it is easy, other is hard
00:07:02  <trevnorris>yeah.
00:07:03  <tjfontaine>indutny: :)
00:08:05  <trevnorris>well, that's the one feature of npm I really want. i'm fine maintaining the v8 source of my code instead of using something like nan, but then I have to document the user must install package@version if they're using a specific node version.
00:08:09  <trevnorris>just gets annoying
00:08:24  <tjfontaine>trevnorris: for instance if you curl http://us-east.manta.joyent.com/npm/public/registry/bunyan/doc.json you will see *every* package.json for each version is in there
00:08:34  <tjfontaine>(warning big json blob helpful if you | json
00:08:34  <tjfontaine>)
00:08:34  * mcavagequit (Remote host closed the connection)
00:08:57  <trevnorris>wow. that's some awesome manta
00:09:01  * mcavagejoined
00:09:23  <tjfontaine>that's just how npm is using manta, they're treating it as a generic couch backend
00:10:19  <tjfontaine>json -e 'if (Object.keys(this._attachments).length) this.latest = this.versions[(this[\"dist-tags\"]).latest].dist.tarball' latest | xargs basename || echo ''
00:11:05  <tjfontaine>by iterating on every doc.json in npm, and then I run that command on all 69k packages
00:12:02  <trevnorris>ah. awesome
00:12:28  <trevnorris>i like how you make these things seem so easy :)
00:12:43  <tjfontaine>with manta it is easy :)
00:13:17  * mcavagequit (Ping timeout: 250 seconds)
00:15:54  * wolfeidauquit
00:16:34  * seldo_quit (Remote host closed the connection)
00:17:05  * paulfryzeljoined
00:19:18  * paulfryz_joined
00:24:09  * paulfryz_quit (Ping timeout: 258 seconds)
00:28:05  * Qardjoined
00:29:15  * seldo_joined
00:30:22  * stagasjoined
00:34:25  <trevnorris>pizza waiting for me
00:34:26  * trevnorris&
00:34:27  <LOUDBOT>EVEN SIX HUNDRED BILLION DOLLARS IS NOT ENOUGH
00:38:19  * lainexquit (Remote host closed the connection)
00:39:15  * mcavagejoined
00:43:42  * mcavagequit (Ping timeout: 258 seconds)
00:53:06  * m76quit (Read error: Connection reset by peer)
00:54:36  * seldo_quit (Remote host closed the connection)
00:55:03  * seldo_joined
01:02:15  * kazuponjoined
01:04:23  * mikolalysenkojoined
01:06:46  * kazuponquit (Ping timeout: 252 seconds)
01:12:53  * seldo_quit (Remote host closed the connection)
01:12:56  * stagasquit (Remote host closed the connection)
01:14:20  * brunklequit (Quit: brunkle)
01:15:34  * brsonquit (Ping timeout: 252 seconds)
01:15:49  * brsonjoined
01:20:11  * paulfryz_joined
01:21:31  <tjfontaine>indutny: popular day :P
01:21:35  <indutny>heh
01:21:36  <indutny>yeah
01:21:55  <indutny>and also a load test for bud :)
01:22:04  <indutny>uptime about 0.11 for now
01:22:16  <tjfontaine>indutny: ya, this should give mcavage more faith in it :)
01:22:59  <indutny>hehe
01:24:43  * paulfryz_quit (Ping timeout: 258 seconds)
01:26:32  * thlorenzjoined
01:28:49  <indutny>looks like it was mostly a luck
01:28:53  <indutny>they have rebooted the server
01:28:59  <indutny>anyway, it is possible
01:29:03  <tjfontaine>indutny: did you do it in node? or just c?
01:29:07  <indutny>node
01:29:08  * TooTallNatequit (Quit: Computer has gone to sleep.)
01:29:14  <groundwater>indutny: well done on the CF attack
01:29:19  <indutny>groundwater: thanks man
01:29:21  <tjfontaine>indutny: next tweet :)
01:29:25  <indutny>oh
01:29:26  <indutny>actually
01:29:42  <groundwater>i'm loving this tweet https://twitter.com/eastdakota/status/454792635279220737
01:30:31  <julianduque>indutny: epic :)
01:35:42  * mcavagejoined
01:36:26  * mmunjoined
01:41:36  * mcavagequit (Remote host closed the connection)
01:45:19  * TooTallNatejoined
01:45:34  * Qardquit (Quit: Leaving.)
01:52:12  * TooTallNatequit (Quit: Computer has gone to sleep.)
01:53:59  * seldo_joined
01:54:31  <tjfontaine>oooh EFF tweeting about you :)
01:58:50  * seldo_quit (Ping timeout: 258 seconds)
02:02:50  * rosskquit
02:03:01  * kazuponjoined
02:04:07  <indutny>hahahaha
02:04:08  <indutny>yeah
02:04:25  <indutny>I wonder if they could retweet that I did with nodejs
02:05:02  <tjfontaine>I thought about it -- I worry about people misunderstanding that there is a vulnerability in node
02:05:06  <indutny>what really bothers me is a guy who wants to send me reward
02:05:13  <indutny>I wonder how this thing usually works in USA
02:05:26  <indutny>do you just receive wire and declare it in income tax?
02:05:51  <indutny>tjfontaine: hopefully, they'll read my previous tweets about our early fix for it
02:07:01  <tjfontaine>indutny: I may retweet with context, can you give me something nice to say :)
02:07:26  <tjfontaine>indutny: or when cloudflare acknowledges you on twitter
02:08:51  * kazuponquit (Ping timeout: 276 seconds)
02:10:21  <tjfontaine>indutny: I am thinking about retweeting @cloudflare in context with -- "see what a little @nodejs can do? RT ..."
02:10:24  <indutny>https://twitter.com/indutny/status/454803336085397504
02:10:29  <tjfontaine>ya I see it
02:10:40  <tjfontaine>your numnbering is a bit off v0.10.2
02:10:43  <tjfontaine>:)
02:11:13  <indutny>oops
02:16:08  <indutny>ok, I think it is finally a good time to get some sleeping
02:16:19  <tjfontaine>indutny: sleep well champ
02:16:20  <indutny>haven't expected so many replies on twitter
02:16:23  <indutny>thanks
02:16:24  <indutny>ttyl!
02:16:25  <tjfontaine>:0
02:16:27  <indutny>have a nice day
02:16:28  <tjfontaine>er :)
02:16:31  <tjfontaine>thanks
02:22:13  * mikolalysenkoquit (Ping timeout: 258 seconds)
02:31:27  * thlorenzquit (Remote host closed the connection)
02:55:19  * seldo_joined
03:00:35  * seldo_quit (Ping timeout: 252 seconds)
03:04:02  * kazuponjoined
03:08:26  * kazuponquit (Ping timeout: 245 seconds)
03:42:00  * benviejoined
03:42:24  * rmgjoined
03:47:39  * rmgquit (Ping timeout: 276 seconds)
03:52:41  * brsonquit (Ping timeout: 258 seconds)
04:04:46  * kazuponjoined
04:09:33  * kazuponquit (Ping timeout: 258 seconds)
04:14:54  * benviequit (Ping timeout: 240 seconds)
04:22:43  * paulfryz_joined
04:26:17  * bradleymeckjoined
04:27:11  * paulfryz_quit (Ping timeout: 258 seconds)
04:28:40  <bradleymeck>congrats indutny
04:33:08  * bradleymeckquit (Quit: bradleymeck)
04:39:48  * bradleymeckjoined
04:55:51  <indutny>bradleymeck: thank you
04:59:29  * seldo_joined
05:00:27  * briancjoined
05:00:55  <brianc>hey anyone here really familiar with node domains? Sorry to ask here since this is more libuv focused but it's sometimes hard to get good answers on #node.js
05:01:58  <brianc>I recently patched node-postgres to try to support domains for the connection pool and I discovered today it's leaking memory like crazy
05:02:49  <brianc>I narrowed down the change to this pull request: https://github.com/brianc/node-postgres/pull/531/files
05:03:23  <brianc>I don't understand if I'm just using domains incorrectly or what
05:03:41  * inolenquit (Quit: Leaving.)
05:03:55  * inolenjoined
05:04:22  * seldo_quit (Ping timeout: 258 seconds)
05:05:35  * kazuponjoined
05:08:34  * mikolalysenkojoined
05:10:59  * kazuponquit (Ping timeout: 250 seconds)
05:17:42  <bradleymeck>brianc: is the remove being called?
05:17:51  <brianc>yah
05:18:10  <brianc>i put a log in there & it's being hit
05:18:17  <mmalecki>indutny: nice one on that exploit :D
05:18:24  <indutny>mmalecki: thanks
05:19:04  <brianc>yeah just reading about that now indutny - pretty awesome
05:19:22  <bradleymeck>brianc: mmm try also setting domain = null, I wonder if you are keeping a ref to the disconnect function and that is keeping the domain (and all objects in it) alive
05:19:53  <bradleymeck>indutny: I am just curious how you forced the key into that 64k range, stapling + improper time?
05:20:08  <brianc>yeah i changed the reference from that domain closure to just `process.domain`
05:20:10  <indutny>it is just a luck
05:20:15  <bradleymeck>ah
05:20:18  <indutny>yeah
05:20:29  <indutny>though, there may be something behind my script
05:20:34  <indutny>that I don't fully understand
05:20:40  <indutny>who knows
05:20:52  <indutny>it seems that the key was found right after the server reboot
05:20:55  <indutny>within minutes
05:37:21  <indutny>what bothers me now, is a bud's async sni
05:37:42  <indutny>it receives keys and thus puts them into some chunk of heap memory
05:38:03  <indutny>but on other hand it seems to do not matter that much, since it turned out to be possible to get low chunk of memory too
05:41:54  <mmalecki>indutny: you could do process isolation if you're worried about keys
05:41:59  <mmalecki>*key security
05:42:26  <mmalecki>have a separate process per key just to do encryption for you
05:42:31  <indutny>mmalecki: I'm actually thinking about guarded mmap'ed chunk of memory
05:42:31  <mmalecki>but that's a security penetly
05:42:44  <indutny>so it won't be possible to allocate in it
05:42:48  <indutny>and read on it's boundaries
05:42:48  <mmalecki>*penalty
05:43:11  <mmalecki>that could work too
05:43:35  <indutny>yeah
05:43:49  <indutny>I'll consider it eventually
05:45:46  * mmaleckiwants bud-as-hardware
05:46:22  <mmalecki>a chip, preferably
05:46:33  * TooTallNatejoined
05:46:33  * TooTallNatequit (Client Quit)
05:47:00  <indutny>chip is hard to update :)
05:47:09  * briancquit
05:48:09  * bradleymeckquit (Quit: bradleymeck)
05:53:21  <indutny>mmalecki: I wonder how CAs will survive this
05:53:57  <mmalecki>indutny: with lots of profit, unfortunately :/
05:54:07  <mmalecki>like, some of them still charge for reissuing a cert
05:54:14  <indutny>mmalecki: haha
05:54:45  <indutny>have you scurl http://crl.comodoca.com/PositiveSSLCA2.crl | openssl crl -inform DER -text | grep Serial | wc -l
05:54:50  <indutny>erm
05:54:50  <indutny>curl http://crl.comodoca.com/PositiveSSLCA2.crl | openssl crl -inform DER -text | grep Serial | wc -l
05:54:55  <indutny>try this
05:55:03  <indutny>it already contains 10000 certs
05:55:08  <indutny>and it is only the beginning
05:55:21  <indutny>browsers would start downloading it
05:55:39  <mmalecki>oh, hahaha
05:55:39  <indutny>their only hope right now is the OCSP
05:55:44  * mikolalysenkoquit (Ping timeout: 258 seconds)
05:55:52  <indutny>with which the particular cert could be checked
05:55:52  <mmalecki>yeah, do all browsers implement OCSP these days?
05:55:59  <mmalecki>I know thatFirefox does
05:56:01  <indutny>yeah, I think so
05:56:04  <indutny>but anyway
05:56:07  <indutny>CRLs are there too
05:56:16  <indutny>and should be maintained and served
06:02:35  <indutny>though, I may be overestimating number of certs in the internet
06:04:50  <mmalecki>well, I'm actually curious how many certs are there, overall
06:05:04  <mmalecki>but estimating that would be a huge undertaking
06:08:03  * kazuponjoined
06:10:16  * rendarjoined
06:12:42  * kazuponquit (Ping timeout: 240 seconds)
06:13:58  <indutny>yeah
06:14:11  <indutny>we could use monte-carlo method for it
06:14:26  <indutny>just ping random IPs and see if they have any cert
06:14:36  <indutny>any *valid* cert
06:18:05  * paulfryzelquit (Remote host closed the connection)
06:19:26  <mmalecki>heh, that could work, yeah
06:19:32  <mmalecki>there aren't that many IPs out there
06:19:44  <mmalecki>and we'd probably need to do like 1/8?
06:20:34  <indutny>that doesn't matter
06:20:38  <indutny>we could approximate it
06:20:43  <indutny>right now it is 1%
06:22:33  * felixgejoined
06:22:50  <indutny>0.3%
06:24:28  * paulfryzeljoined
06:24:38  <indutny>using this atm: https://gist.github.com/indutny/e65982edcb2daa3acb1a
06:24:39  <indutny>mmalecki: ^
06:25:10  <mmalecki>oh, heh
06:26:43  <indutny>the problem with this script
06:26:52  <indutny>is that it doesn't count distinct certificates
06:26:57  <indutny>only a servers
06:27:15  <indutny>but at least we could figure out maximum value
06:28:42  * paulfryzelquit (Ping timeout: 258 seconds)
06:41:22  * m76joined
06:51:16  * mogillquit (Quit: mogill)
07:00:42  * seldo_joined
07:00:42  * sblomquit (Ping timeout: 276 seconds)
07:05:53  * seldo_quit (Ping timeout: 258 seconds)
07:09:03  * kazuponjoined
07:13:11  <indutny>mmalecki: ok, added bloom filter to it
07:13:20  <indutny>mmalecki: https://gist.github.com/indutny/e65982edcb2daa3acb1a
07:13:25  <indutny>going to leave it running for an hour or so
07:13:37  * kazuponquit (Ping timeout: 250 seconds)
07:23:50  * inolenquit (Quit: Leaving.)
07:25:05  * paulfryzeljoined
07:25:42  * inolenjoined
07:26:31  * m76quit (Read error: Connection reset by peer)
07:29:30  * wolfeidaujoined
07:29:39  * paulfryzelquit (Ping timeout: 258 seconds)
07:36:37  <kaeso>indutny: just saw the news, kudos :)
07:36:45  <indutny>kaeso: thank you
07:45:34  * rmgjoined
07:48:59  * paddybyersjoined
07:50:27  * rmgquit (Ping timeout: 252 seconds)
08:09:49  * kazuponjoined
08:09:54  * paddybyersquit (Quit: paddybyers)
08:11:31  <MI6>joyent/libuv: Saúl Ibarra Corretgé v0.10 * b9d5396 : windows: fix console signal handler refcount - http://git.io/BrYg6Q
08:14:40  * kazuponquit (Ping timeout: 252 seconds)
08:19:01  * paddybyersjoined
08:26:07  * paulfryzeljoined
08:29:54  * paddybyersquit (Ping timeout: 240 seconds)
08:30:36  * paulfryzelquit (Ping timeout: 258 seconds)
08:40:31  * stagasjoined
08:45:18  * petka_joined
09:01:36  * saghulquit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/)
09:10:34  * kazuponjoined
09:15:06  * kazuponquit (Ping timeout: 245 seconds)
09:20:17  <MI6>joyent/node: Geir Hauge master * c61b0e9 : main: Handle SIGINT properly. - http://git.io/OxvTgg
09:31:48  * roxlujoined
09:32:31  <roxlu>hi guys does libuv have string manipulation functions? (or e.g. stricmp stuff?)
09:32:50  <indutny>roxlu: hi
09:32:52  <indutny>I don't think so
09:32:53  <roxlu>hey indutny
09:32:58  <indutny>I think we have uv_strlcpy internally
09:33:04  <indutny>but it isn't exposed
09:33:16  <indutny>uv has a different purpose, after all
09:33:23  <roxlu>yeah
09:33:49  <roxlu>but I know how highly optimized it is .. so I though it would be a good starting point to look for a case insensitive string compare function
09:34:27  <roxlu>I guess this one will do: http://stackoverflow.com/questions/5820810/case-insensitive-string-comp-in-c
09:34:35  <mmalecki>indutny: you made The Verge btw, ^5!
09:34:41  <indutny>haha
09:34:42  <indutny>yeah
09:34:42  <indutny>thanks
09:35:20  <indutny>roxlu: strncasecmp ?
09:35:38  <indutny>not sure, how fast it is, but it is in stdlib
09:36:00  <roxlu>I think that's not standard c (at least that's what the SO says)
09:36:44  * hzjoined
09:37:32  <indutny>ah
09:37:34  <indutny>oh
09:37:35  <indutny>gosh
09:37:44  <roxlu>hehe there are some here: https://github.com/jart/sofia-sip/blob/master/libsofia-sip-ua/su/su_string.c
09:37:49  <indutny>ok
09:37:52  <indutny>it present on linux
09:37:54  <indutny>and osx
09:37:55  <indutny>and bsds
09:38:04  <indutny>guess this counts as *almost everywhere*
09:38:14  <roxlu>yeah
10:09:07  * janjongboomjoined
10:09:42  * janjongboomquit (Client Quit)
10:11:33  * kazuponjoined
10:15:38  * Kakerajoined
10:17:00  * kazuponquit (Ping timeout: 276 seconds)
10:18:23  * stephankquit (Ping timeout: 252 seconds)
10:19:57  * stephankjoined
10:27:52  * paulfryzeljoined
10:31:49  * stagasquit (Read error: Connection reset by peer)
10:32:07  * paulfryzelquit (Ping timeout: 258 seconds)
10:41:57  * kazuponjoined
10:42:24  * kazuponquit (Read error: Connection reset by peer)
10:42:44  * kazuponjoined
10:43:56  * kazupon_joined
10:47:33  * kazuponquit (Ping timeout: 252 seconds)
10:56:12  * petka_quit (Quit: Connection closed for inactivity)
10:59:18  * Orbordequit (Ping timeout: 240 seconds)
11:16:39  * kevinsimperjoined
11:46:47  * m76joined
12:04:30  * seldo_joined
12:09:16  * seldo_quit (Ping timeout: 245 seconds)
12:51:13  * mikolalysenkojoined
13:15:57  * SquirrelCZECHquit (Read error: Connection reset by peer)
13:16:03  * SquirrelCZECHjoined
13:30:22  * paulfryzeljoined
13:34:35  * paulfryzelquit (Ping timeout: 258 seconds)
13:54:49  * paulfryzeljoined
13:59:25  * thlorenzjoined
14:14:06  * seldo_joined
14:19:27  * seldo_quit (Ping timeout: 276 seconds)
14:25:18  * mikolalysenkoquit (Ping timeout: 276 seconds)
14:31:08  * paulfryz_joined
14:32:32  * bradleymeckjoined
14:35:32  * paulfryz_quit (Ping timeout: 258 seconds)
14:56:40  * dsantiagoquit (Quit: Computer has gone to sleep.)
14:57:26  * dsantiagojoined
15:01:59  * dsantiagoquit (Ping timeout: 258 seconds)
15:10:24  * mikolalysenkojoined
15:24:01  * bradleymeckquit (Quit: bradleymeck)
15:44:11  * SquirrelCZECHquit (Remote host closed the connection)
15:45:16  * SquirrelCZECHjoined
15:50:42  * m76quit (Read error: Connection reset by peer)
15:50:43  <trevnorris>indutny: congrats dude. you were the first person to finish that challenge.
15:51:25  * SquirrelCZECHquit (Remote host closed the connection)
15:51:41  * SquirrelCZECHjoined
15:52:02  * rmgjoined
15:56:39  * rmgquit (Ping timeout: 250 seconds)
16:05:53  * mogilljoined
16:13:17  * kevinsimperquit (Remote host closed the connection)
16:15:59  * seldo_joined
16:16:15  <roxlu>does uv_udp_send copy the buffer data ? or do I need to free it in the callback?
16:20:29  * seldo_quit (Ping timeout: 252 seconds)
16:24:38  * mikealjoined
16:29:33  * kazupon_quit (Remote host closed the connection)
16:40:52  * mcavagejoined
16:46:02  * mcavagequit (Remote host closed the connection)
16:49:19  <tjfontaine>roxlu: the design point is to be a zero copy interface
17:02:10  * mcavagejoined
17:05:21  <indutny>trevnorris: thanks man
17:05:32  <tjfontaine>mr popular fedor :)
17:07:46  * thlorenzquit (Remote host closed the connection)
17:14:05  <indutny>haha
17:16:20  * dshaw_joined
17:17:14  * m76joined
17:18:58  * mcavagequit (Remote host closed the connection)
17:33:22  * paulfryz_joined
17:37:11  * dshaw_quit (Ping timeout: 245 seconds)
17:38:00  * paulfryz_quit (Ping timeout: 258 seconds)
17:40:42  * stagasjoined
17:43:54  * mikolalysenkoquit (Ping timeout: 240 seconds)
17:44:12  <rendar>which challenge?
17:44:12  <rendar>:)
17:46:05  <indutny>rendar: https://www.cloudflarechallenge.com/heartbleed
17:47:16  <rendar>indutny: great man! congrats :)
17:47:21  <indutny>thank you
17:47:54  <rendar>indutny: you were speaking about random IPs yesterday, i guess...was about that?
17:48:04  <indutny>no, that's not it
17:48:05  <groundwater>the more i learn about revocation lists, the more i feel like we're still kinda fucked
17:48:11  <indutny>not really
17:48:21  <indutny>I have approximated amount of SSL certs in the wild
17:48:28  <indutny>it is not that big
17:48:49  <rendar>indutny: i see
17:50:14  <groundwater>yah i saw that
17:51:55  <indutny>considering that not that many of them are actually active
17:52:04  <indutny>and have responsible owners
17:52:09  <indutny>it is even less
17:52:23  <indutny>but the process of getting cert revoked is really broken right now
17:52:31  <indutny>I heard many people are having problems with it
17:52:31  * kevinsimperjoined
17:58:49  <roxlu>tjfontaine: thanks
18:10:35  * janjongboomjoined
18:12:04  <groundwater>indutny: yah, it's usually not the technology that fails, it's the people
18:16:09  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:16:41  * janjongboomjoined
18:29:34  * mcavagejoined
18:30:53  * thlorenzjoined
18:34:16  * mcavagequit (Ping timeout: 245 seconds)
18:34:21  * paulfryz_joined
18:34:22  * dshaw_joined
18:38:57  * dshaw_quit (Ping timeout: 258 seconds)
18:38:57  * paulfryz_quit (Ping timeout: 258 seconds)
18:40:30  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:18:06  * seldo_joined
19:22:42  * seldo_quit (Ping timeout: 240 seconds)
19:35:35  * mikolalysenkojoined
19:37:17  * tumdedumquit (Ping timeout: 240 seconds)
19:39:38  * tumdedumjoined
19:47:57  * paulfryzelquit
20:16:00  * AvianFluquit (Remote host closed the connection)
20:16:30  * AvianFlujoined
20:27:59  * benviejoined
20:29:03  * mikealquit (Quit: Leaving.)
20:35:53  * paulfryzeljoined
20:40:21  * paulfryzelquit (Ping timeout: 252 seconds)
20:51:15  * mikealjoined
20:58:33  * thlorenzquit (Remote host closed the connection)
20:59:09  * thlorenzjoined
21:02:55  * thlorenz_joined
21:03:16  * thlorenzquit (Read error: Connection reset by peer)
21:27:25  * c4milojoined
21:33:40  * mcavagejoined
21:36:54  * paulfryzeljoined
21:41:13  * paulfryzelquit (Ping timeout: 252 seconds)
21:43:16  * janjongboomjoined
21:52:05  * m76quit (Read error: Connection reset by peer)
21:54:11  * mcavagequit (Remote host closed the connection)
22:01:50  * brsonjoined
22:03:15  * mikolalysenkoquit (Ping timeout: 250 seconds)
22:27:19  * indexzerojoined
22:31:42  * c4miloquit (Remote host closed the connection)
22:32:36  * brsonquit (Ping timeout: 245 seconds)
22:33:44  * thlorenz_quit (Remote host closed the connection)
22:34:11  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:34:20  * thlorenzjoined
22:36:15  * thlorenz_joined
22:36:38  * thlorenzquit (Read error: Connection reset by peer)
22:37:04  * skebcioquit (Quit: No Ping reply in 180 seconds.)
22:37:10  * skebciojoined
22:37:40  * dshaw_joined
22:37:40  * paulfryzeljoined
22:39:21  * thlorenz_quit (Remote host closed the connection)
22:41:20  * thlorenz_joined
22:41:59  * dshaw_quit (Ping timeout: 258 seconds)
22:42:05  * paulfryzelquit (Ping timeout: 252 seconds)
22:46:31  * rendarquit
22:50:47  * mcavagejoined
22:54:41  * thlorenz_quit (Ping timeout: 245 seconds)
23:03:31  * mcavagequit (Remote host closed the connection)
23:14:17  * seldo_joined
23:17:35  * kevinsimperquit (Remote host closed the connection)
23:21:14  * sinclair|workjoined
23:22:09  * mcavagejoined
23:22:30  * Kakeraquit (Ping timeout: 240 seconds)
23:24:54  * stagasquit (Remote host closed the connection)
23:38:03  * dshaw_joined
23:38:41  * paulfryzeljoined
23:40:57  * mikolalysenkojoined
23:42:33  * dshaw_quit (Ping timeout: 258 seconds)
23:42:57  * paulfryzelquit (Ping timeout: 252 seconds)
23:53:15  <Dirkson>Converting from a stream to a message is much, much nastier in real life than it was in my head.
23:57:30  <Dirkson>I'm currently designing to the idea that the only atomic operation I'm likely to get is the sending of a byte - I.e. If I send an int as the first four bytes of my packet, I cannot assume that all four bytes will be present when I try to read it.
23:58:36  <Dirkson>(Which I think could happen if nagle's algorithm ran on several packets to turn them into one send, and this send was subsequently fragmented while transferring it across the internet)