Go Language Resources Go, golang, go... NOTE: This page ceased updating in October, 2012

--- Log opened Wed Feb 16 00:00:22 2011
--- Day changed Wed Feb 16 2011
00:00 -!- iant [~iant@nat/google/x-vetmkfbqehxifjev] has quit [Quit: Leaving.]
00:07 -!- Eko [~eko@c-24-5-127-87.hsd1.ca.comcast.net] has quit [Ping timeout: 240
seconds]
00:12 -!- maattd [~maattd@esc31-1-78-245-92-71.fbx.proxad.net] has quit [Quit:
Computer has gone to sleep.]
00:13 -!- tav [~tav@92.7.102.123] has quit [Ping timeout: 260 seconds]
00:13 -!- iant [~iant@nat/google/x-vdwbhhlxubjcnctc] has joined #go-nuts
00:13 -!- mode/#go-nuts [+v iant] by ChanServ
00:18 -!- Eko [~eko@c-67-188-2-56.hsd1.ca.comcast.net] has joined #go-nuts
00:21 -!- gastal [~gastal@186.214.49.186] has joined #go-nuts
00:21 -!- gits [~gits@77.94.219.158] has quit [Ping timeout: 260 seconds]
00:21 < gastal> Is there a easier to convert a []uint8 to a string than
bytes.NewBufer(arr).String()?
00:22 -!- aconran_ [~aconran-o@adsl-67-119-205-150.dsl.pltn13.pacbell.net] has
joined #go-nuts
00:22 < KirkMcDonald> gastal: string(foo)
00:22 -!- tav [~tav@92.7.121.208] has joined #go-nuts
00:23 < gastal> KirkMcDonald: thank you, I knew I was missing something
obvious, =)
00:25 -!- aconran [~aconran-o@adsl-67-119-205-150.dsl.pltn13.pacbell.net] has quit
[Ping timeout: 250 seconds]
00:25 -!- LittleQNCCU [~littleq@dream.cs.nccu.edu.tw] has joined #go-nuts
00:28 -!- iant [~iant@nat/google/x-vdwbhhlxubjcnctc] has quit [Quit: Leaving.]
00:29 -!- DerHorst [~Horst@e176125163.adsl.alicedsl.de] has joined #go-nuts
00:29 -!- dropdriv1 [~dropdrive@cpe-72-227-159-70.nyc.res.rr.com] has quit [Quit:
leaving]
00:31 -!- LittleQNCCU [~littleq@dream.cs.nccu.edu.tw] has quit [Ping timeout: 272
seconds]
00:33 -!- kixo [~rbebic@93-138-57-85.adsl.net.t-com.hr] has joined #go-nuts
00:35 -!- dropdrive [~dropdrive@cpe-72-227-159-70.nyc.res.rr.com] has joined
#go-nuts
00:35 -!- iant [~iant@67.218.104.194] has joined #go-nuts
00:35 -!- mode/#go-nuts [+v iant] by ChanServ
00:37 -!- _DerHorst_ [~Horst@e176106245.adsl.alicedsl.de] has joined #go-nuts
00:37 -!- DerHorst [~Horst@e176125163.adsl.alicedsl.de] has quit [Ping timeout:
240 seconds]
00:38 -!- LittleQNCCU [~littleq@dream.cs.nccu.edu.tw] has joined #go-nuts
00:43 -!- LittleQNCCU [~littleq@dream.cs.nccu.edu.tw] has quit [Ping timeout: 276
seconds]
00:44 < plexdev> http://is.gd/NkbFWU by [Nigel Tao] in 4 subdirs of
go/src/pkg/compress/ -- compress: move zlib/testdata to testdata so it can be
shared by all
00:50 -!- dRbiG [drbig@unhallowed.pl] has quit [Ping timeout: 240 seconds]
00:50 -!- dRbiG [drbig@unhallowed.pl] has joined #go-nuts
00:51 -!- LittleQNCCU [~littleq@dream.cs.nccu.edu.tw] has joined #go-nuts
00:53 -!- JusticeFries [~JusticeFr@c-24-9-171-36.hsd1.co.comcast.net] has joined
#go-nuts
00:56 < skelterjohn> anyone out there doing any cgo projects?
00:59 -!- boscop [~boscop@f055014180.adsl.alicedsl.de] has quit [Ping timeout: 272
seconds]
01:15 -!- saturnfive [~saturnfiv@210.74.155.131] has joined #go-nuts
01:20 -!- tvw [~tv@e176005254.adsl.alicedsl.de] has quit [Ping timeout: 240
seconds]
01:32 -!- shvntr [~shvntr@123.89.109.231] has quit [Quit: leaving]
01:36 -!- tav [~tav@92.7.121.208] has quit [Ping timeout: 240 seconds]
01:38 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has joined #go-nuts
01:38 -!- tav [~tav@92.7.107.196] has joined #go-nuts
01:51 -!- iant [~iant@67.218.104.194] has quit [Quit: Leaving.]
01:55 < niemeyer> skelterjohn: Hey there
01:55 < niemeyer> skelterjohn: Which note?
01:55 * niemeyer checks
01:55 < skelterjohn> about goinstall
01:56 < skelterjohn> "CGO_CFLAGS and CGO_LDFLAGS" in the thread title
01:58 < niemeyer> skelterjohn: Yeah, I think the overall idea sounds sane..
we just have to figure the details
01:58 < skelterjohn> it's what i've done for gb
01:59 < niemeyer> skelterjohn: What's not so great is that we have to
*exclude* files, but that means knowing in advance all possible architectures
02:00 < skelterjohn> i see what you mean
02:00 < skelterjohn> / #cgo arch=something_no_one_knows
02:00 < skelterjohn> ?
02:00 < skelterjohn> should be two slashes at the beginning
02:02 < niemeyer> skelterjohn: It doesn't really solve that specific
problem..  we know what the arch is, we just don't know all other possible
architectures, including future ones
02:03 < skelterjohn> right, and if you see // #cgo arch:weird
02:03 < niemeyer> We can take a non-conservative approach and simply say
that foo_<arch>.go is taken, even for future cases
02:03 < skelterjohn> and you aren't on arch weird, you know to exclude
02:03 < skelterjohn> i might not be getting what you're saying
02:04 < niemeyer> skelterjohn: Hmm, maybe..  or maybe just do the more
obvious and take over the foo_<arch>.go namespace
02:04 < niemeyer> skelterjohn: Let me do a strawman proposal and see what
happens
02:15 -!- grncdr [~stephen@sdo.csc.UVic.CA] has quit [Ping timeout: 260 seconds]
02:16 -!- grncdr [~stephen@sdo.csc.UVic.CA] has joined #go-nuts
02:23 -!- k3nt [~k3nt@66-169-234-69.dhcp.snlo.ca.charter.com] has quit [Read
error: Connection reset by peer]
02:26 -!- vice_virtue [~vice@220-253-8-40.VIC.netspace.net.au] has joined #go-nuts
02:27 < skelterjohn> niemeyer: did you update the #cgo directives to do "//
#cgo arch LDFLAGS: w/e"?  I wrote that after seeing your last email saying you'd
think about doing it
02:27 < skelterjohn> and I'm not good at searching that group
02:29 -!- gastal [~gastal@186.214.49.186] has quit [Remote host closed the
connection]
02:30 -!- niemeyer [~niemeyer@189-10-154-99.pltce701.dsl.brasiltelecom.net.br] has
quit [Ping timeout: 240 seconds]
02:32 -!- fenicks [~fenicks@log77-3-82-243-254-112.fbx.proxad.net] has quit [Read
error: Connection reset by peer]
02:34 -!- nettok [~quassel@200.119.184.135] has quit [Ping timeout: 246 seconds]
02:34 -!- dchest [~dchest@95.155.52.241] has quit [Quit: dchest]
02:38 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Read error:
Connection reset by peer]
02:57 < skelterjohn> having a kind of weird error, on os x
02:57 < skelterjohn> I run a command line: gcc -m64 -g -fPIC -O2 -o _cgo1_.o
_cgo_main.o gl.cgo2.o gl_darwin.cgo2.o _cgo_export.o -framework OpenGL
02:57 < skelterjohn> and if i run it from a shell, it succeeds
02:57 < skelterjohn> if i run it by invoking exec.Run, I get link errors
02:58 < skelterjohn> maybe an important part of the env isn't getting
through?
03:03 < skelterjohn> no, env is identical
03:16 -!- _DerHorst_ [~Horst@e176106245.adsl.alicedsl.de] has quit [Remote host
closed the connection]
03:20 -!- nsfx [~nsfx@96.225.70.167] has joined #go-nuts
03:36 -!- anticw [~anticw@c-67-169-68-180.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
03:36 -!- anticw [~anticw@c-67-169-68-180.hsd1.ca.comcast.net] has joined #go-nuts
03:59 -!- phalax_ [~phalax@c213-100-72-128.swipnet.se] has joined #go-nuts
04:16 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has quit [Ping
timeout: 276 seconds]
04:20 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds]
04:29 -!- itrekkie_ [~itrekkie@ip72-211-129-122.tc.ph.cox.net] has joined #go-nuts
04:34 -!- itrekkie [~itrekkie@ip72-211-129-122.tc.ph.cox.net] has quit [Ping
timeout: 272 seconds]
04:35 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Ping timeout: 276 seconds]
04:47 -!- phalax_ [~phalax@c213-100-72-128.swipnet.se] has quit [Ping timeout: 264
seconds]
04:49 -!- kanru1 [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has quit
[Quit: WeeChat 0.3.2]
04:50 -!- kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has joined
#go-nuts
04:54 -!- adu [~ajr@softbank220043138128.bbtec.net] has joined #go-nuts
04:59 -!- keithcascio_ [~keithcasc@nat/google/x-dfbogjvvvpxyicjc] has quit [Quit:
Leaving]
05:01 -!- kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has quit
[Quit: WeeChat 0.3.2]
05:01 -!- kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has joined
#go-nuts
05:05 -!- kixo_ [~rbebic@93-138-124-251.adsl.net.t-com.hr] has joined #go-nuts
05:08 -!- kixo [~rbebic@93-138-57-85.adsl.net.t-com.hr] has quit [Ping timeout:
260 seconds]
05:09 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
05:18 < plexdev> http://is.gd/EVHko8 by [Yasuhiro Matsumoto] in
go/src/pkg/syscall/ -- syscall: fix inverse checking of result code on windows.
05:18 < plexdev> http://is.gd/gfCuLd by [Alex Brainman] in go/src/cmd/ld/ --
8l,6l: allow for more os threads to be created on Windows
05:21 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
05:23 -!- Eridius [~kevin@unaffiliated/eridius] has quit [Ping timeout: 276
seconds]
05:28 -!- hcl2 [~akuma@75.41.110.112] has quit [Ping timeout: 240 seconds]
05:34 < plexdev> http://is.gd/QStNEu by [Yasuhiro Matsumoto] in
go/src/pkg/syscall/ -- syscall: implement chmod() for win32.
05:35 -!- nettok_ [~quassel@200.119.185.100] has joined #go-nuts
05:35 -!- nettok_ [~quassel@200.119.185.100] has quit [Read error: Connection
reset by peer]
05:35 -!- nettok_ [~quassel@200.119.185.100] has joined #go-nuts
05:36 -!- itrekkie [~itrekkie@ip72-211-129-122.tc.ph.cox.net] has quit [Quit:
itrekkie]
05:41 -!- adu [~ajr@softbank220043138128.bbtec.net] has quit [Ping timeout: 272
seconds]
05:43 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
05:46 -!- adu [~ajr@softbank220043138128.bbtec.net] has joined #go-nuts
05:46 < vice_virtue> I would file a bug for that EncryptOAEP thing, but the
expected behaviour isn't documented (at least not in the go docs)
05:47 < vice_virtue> Maybe I should read up on OAEP first
05:49 -!- adu_ [~ajr@softbank220043138128.bbtec.net] has joined #go-nuts
05:49 -!- adu [~ajr@softbank220043138128.bbtec.net] has quit [Read error:
Connection reset by peer]
05:49 -!- cenuij [~cenuij@78.112.41.178] has joined #go-nuts
05:49 -!- cenuij [~cenuij@78.112.41.178] has quit [Changing host]
05:49 -!- cenuij [~cenuij@base/student/cenuij] has joined #go-nuts
05:53 -!- adu_ [~ajr@softbank220043138128.bbtec.net] has quit [Ping timeout: 264
seconds]
06:00 -!- Natch| [~natch@c-6dcde155.25-4-64736c10.cust.bredbandsbolaget.se] has
joined #go-nuts
06:06 -!- itrekkie [~itrekkie@ip72-211-129-122.tc.ph.cox.net] has joined #go-nuts
06:10 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
06:13 -!- adu [~ajr@softbank220043138128.bbtec.net] has joined #go-nuts
06:16 -!- fhs [~fhs@pool-74-101-66-112.nycmny.east.verizon.net] has joined
#go-nuts
06:17 -!- adu [~ajr@softbank220043138128.bbtec.net] has quit [Ping timeout: 240
seconds]
06:17 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
06:25 -!- adu [~ajr@softbank220043138128.bbtec.net] has joined #go-nuts
06:40 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts
06:40 -!- mode/#go-nuts [+v iant] by ChanServ
06:50 -!- jumzi [~none@c-89-233-234-125.cust.bredband2.com] has joined #go-nuts
06:53 -!- adu [~ajr@softbank220043138128.bbtec.net] has quit [Quit: adu]
06:54 -!- kixo_ [~rbebic@93-138-124-251.adsl.net.t-com.hr] has quit [Quit:
Leaving]
06:59 -!- kosiini [~janne@pdpc/supporter/student/kosiini] has joined #go-nuts
07:03 * vice_virtue submitted his second issue to the go tracker :)
07:04 < Xenith> How can I take a int value and make a string representation
of that value?
07:05 < vice_virtue> You could use fmt.Sprint
07:06 < vice_virtue> (Xenith)
07:07 < Xenith> Thanks.  Tonight is not my night for the simple stuff.
07:07 < vice_virtue> No worries
07:18 -!- sanjoyd [~sanjoy@unaffiliated/sanjoyd] has quit [Remote host closed the
connection]
07:22 -!- boscop [~boscop@g226248100.adsl.alicedsl.de] has joined #go-nuts
07:27 -!- vice_virtue [~vice@220-253-8-40.VIC.netspace.net.au] has quit [Ping
timeout: 250 seconds]
07:46 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts
07:46 -!- petrux [~petrux@host16-224-static.53-82-b.business.telecomitalia.it] has
joined #go-nuts
07:50 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has quit [Ping
timeout: 250 seconds]
07:52 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has joined
#go-nuts
07:52 -!- ToggafAeruoy [46b3bb15@gateway/web/freenode/ip.70.179.187.21] has joined
#go-nuts
07:53 < ToggafAeruoy> can anyone k-line?
07:53 < ToggafAeruoy> I'm looking to get a k-line but nobody is doing it.
07:53 < ToggafAeruoy> I'm asking you to put me in a coffin with a fleshlight
and other sex toys, and bury me while I still live.
07:54 < ToggafAeruoy> fine, here, i'll force your hand.
07:54 < ToggafAeruoy> @adg +iant Aco- aconran_ Adys aiju ampleyfly AndyP
anticw ap3xo araujo Archwyrm arun_ arun__ ath bartbes Belg Boney_ bortzmeyer
boscop brett Broady bXi_ cbeck cco3-hampster1 cde cdsgf_ cenuij chaos95 chressie
clip9 creack cw d_m dario_ Darxus Davidian1024 davisp davvid dforsyth djcapelis
dRbiG drhodes dropdrive drry eikenberry Eko Electro^ elimisteve enferex exch
fabled felipe fhs Fish fluffle frobnitz fzzbt GilJ gju gmillerami
07:54 < ToggafAeruoy> now where's the fucking k-line?
07:55 < elimisteve> yo
07:55 < boscop> wtf
07:55 -!- ToggafAeruoy [46b3bb15@gateway/web/freenode/ip.70.179.187.21] has left
#go-nuts []
07:55 -!- ToggafAeruoy [46b3bb15@gateway/web/freenode/ip.70.179.187.21] has joined
#go-nuts
07:56 < ToggafAeruoy> whoops, closed by mistake
07:56 < ToggafAeruoy> what'd you tell me?  i didn't see it.
07:57 -!- ToggafAeruoy [46b3bb15@gateway/web/freenode/ip.70.179.187.21] has left
#go-nuts []
07:58 -!- nsfx [~nsfx@96.225.70.167] has quit [Ping timeout: 240 seconds]
08:04 -!- nsfx [~nsfx@pool-96-225-70-167.nwrknj.fios.verizon.net] has joined
#go-nuts
08:16 -!- nettok_ [~quassel@200.119.185.100] has quit [Ping timeout: 246 seconds]
08:17 -!- wrtp [~rog@92.17.93.139] has joined #go-nuts
08:26 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has joined #go-nuts
08:26 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has left #go-nuts []
08:37 -!- petrux_ [~petrux@host16-224-static.53-82-b.business.telecomitalia.it]
has joined #go-nuts
08:39 -!- petrux [~petrux@host16-224-static.53-82-b.business.telecomitalia.it] has
quit [Ping timeout: 276 seconds]
08:41 -!- tvw [~tv@e176005159.adsl.alicedsl.de] has joined #go-nuts
08:42 -!- jdp [~jdp@ool-435238c0.dyn.optonline.net] has joined #go-nuts
08:48 -!- visof [~visof@41.233.122.138] has joined #go-nuts
08:48 -!- visof [~visof@41.233.122.138] has quit [Changing host]
08:48 -!- visof [~visof@unaffiliated/visof] has joined #go-nuts
08:49 -!- stalled [~stalled@unaffiliated/stalled] has joined #go-nuts
08:54 -!- Eko [~eko@c-67-188-2-56.hsd1.ca.comcast.net] has quit [Ping timeout: 240
seconds]
08:58 -!- songyunhui2008 [~songyunhu@d216-232-162-210.bchsia.telus.net] has joined
#go-nuts
09:00 -!- songyunhui2008 [~songyunhu@d216-232-162-210.bchsia.telus.net] has left
#go-nuts []
09:00 -!- Eko [~eko@c-24-5-127-87.hsd1.ca.comcast.net] has joined #go-nuts
09:10 -!- ExtraSpice [XtraSpice@78-62-101-194.static.zebra.lt] has joined #go-nuts
09:10 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
09:30 -!- n___ [~alouca@5ad54238.bb.sky.com] has quit [Quit: n___]
09:37 -!- petrux_ [~petrux@host16-224-static.53-82-b.business.telecomitalia.it]
has quit [Quit: leaving]
10:23 -!- saturnfive [~saturnfiv@210.74.155.131] has quit [Read error: Connection
reset by peer]
10:23 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts
10:25 -!- cenuij [~cenuij@base/student/cenuij] has quit [Remote host closed the
connection]
10:32 < aiju> ToggafAeruoy: hahahahahahahahahahahahahahahahaha
10:35 < aiju> ToggafAeruoy: just go to #freenode and spam it
10:36 -!- tvw [~tv@e176005159.adsl.alicedsl.de] has quit [Remote host closed the
connection]
10:37 < visof> will Go replace C in the future ?
10:37 < Namegduf> It could do so in many applications.
10:39 < visof> So we can't totally replace C with another language like Go
10:39 < visof> are the people lazy to reimplement OS in another languages or
that is impossible ?
10:39 < Namegduf> It's possible.
10:40 < visof> so what is the problem ?
10:40 < visof> can we write kernel by Go ?
10:40 < aiju> writing an OS in Go is currently not really possible
10:40 < aiju> it's possible in theorry
10:40 < Namegduf> Reimplementing an OS takes a lot of time for not much gain
when you already have an OS that works.
10:40 < aiju> but the compilers change too fast and it breaks too often
10:41 < Namegduf> That's more "is difficult" than "is not possible"
10:41 < aiju> well yeah
10:41 < visof> so C won't die for about 20 years ?
10:41 < aiju> you still can't write the whole kernel in Go
10:41 < Namegduf> Likely.
10:42 < Namegduf> Go's massive advantages come at some usually minor costs.
I would expect there to be certain scenarios where those costs mean it's better to
forego the advantages, and use C.
10:43 < Namegduf> Of course, you could remove the concurrency and GC and
make a Go-- which is closer to C performance but with packages and nicer syntax
and more safety
10:43 < Namegduf> And you can disable things like bounds checking when
compiling *now*.
10:44 -!- jumzi [~none@c-89-233-234-125.cust.bredband2.com] has quit [Remote host
closed the connection]
10:44 < Namegduf> But Go as it is now is somewhat slower and will remain
somewhat slower, and is GCed, and there will remain scenarios where that's a bad
thing.
10:45 < wrtp> aiju: you can't write the whole kernel in C...
10:45 < aiju> wrtp: the majority of it
10:45 < wrtp> sure, but that could be true of Go too
10:45 -!- n___ [~alouca@5ad54238.bb.sky.com] has joined #go-nuts
10:45 < aiju> not as it is
10:45 < wrtp> why not?
10:46 < aiju> it inserts "evil" operations like memory allocation in
harmless statements
10:46 < aiju> a := foo[:] // oops
10:46 < wrtp> what's the difficulty with that?
10:46 < wrtp> the kernel can do memory allocation
10:46 < aiju> memory allocation really shouldn't happen in an interrupt
handler
10:46 < aiju> or in several other places
10:46 < aiju> like the memory allocator
10:48 < wrtp> would it be too hard to fall back to a different memory
allocator for some processes?
10:48 < wrtp> the go runtime does it
10:48 < aiju> the go runtime is written in C
10:50 < wrtp> i was just talking about that approach as a matter of
principle
10:51 < wrtp> if the (assembly code) bootstrapping sets up an ultra simple
memory allocator for the inital processes, then you can probably write a real
memory allocator in go for the rest
10:52 < aiju> wrtp: i tried something along that with gofy
10:52 < aiju> it was such utter pain to write and debug, that i just got rid
of it
10:52 < wrtp> doesn't mean that it's impossible though :-)
10:52 < aiju> "beware the turing tarpit, where everything is possible and
nothing is easy"
10:53 < wrtp> sure
10:53 < wrtp> anyway, surely it would be ok if the majority of the code in
the kernel was Go, in the same way that the majority of the code in other kernels
is C?
11:02 -!- dchest [~dchest@95.155.52.241] has joined #go-nuts
11:02 -!- dchest [~dchest@95.155.52.241] has quit [Client Quit]
11:02 -!- petrux [~petrux@host16-224-static.53-82-b.business.telecomitalia.it] has
joined #go-nuts
11:08 -!- dju [dju@at.dmz.me] has joined #go-nuts
11:08 -!- dju [dju@at.dmz.me] has quit [Changing host]
11:08 -!- dju [dju@fsf/member/dju] has joined #go-nuts
11:31 -!- tvw [~tv@212.79.9.150] has joined #go-nuts
11:49 -!- DerHorst [~Horst@e176106245.adsl.alicedsl.de] has joined #go-nuts
11:51 -!- shvntr [~shvntr@123.89.108.51] has joined #go-nuts
11:54 -!- tav_ [~tav@92.7.107.196] has joined #go-nuts
11:55 -!- shvntr [~shvntr@123.89.108.51] has quit [Ping timeout: 240 seconds]
11:56 -!- tav [~tav@92.7.107.196] has quit [Ping timeout: 240 seconds]
11:56 -!- shvntr [~shvntr@113.84.150.100] has joined #go-nuts
12:03 -!- rup [~rupert@deathknight.net] has quit [Ping timeout: 240 seconds]
12:04 -!- rup [~rupert@deathknight.net] has joined #go-nuts
12:20 -!- n___ [~alouca@5ad54238.bb.sky.com] has quit [Quit: n___]
12:20 -!- DerHorst [~Horst@e176106245.adsl.alicedsl.de] has quit [Remote host
closed the connection]
12:20 -!- Fish [~Fish@exo3753.pck.nerim.net] has quit [Quit: So Long, and Thanks
for All the Fish]
12:25 -!- Fish [~Fish@exo3753.pck.nerim.net] has joined #go-nuts
12:36 -!- tensorpudding [~user@99.23.127.179] has quit [Remote host closed the
connection]
12:44 -!- ymasory [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has joined
#go-nuts
12:44 -!- ymasory [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has quit [Remote
host closed the connection]
12:51 -!- hcl2 [~akuma@75.41.110.112] has joined #go-nuts
12:52 < hokapoka> I want to allow different sorts on a given type.  The only
way I can see is to add some flag to indicate the property to base the sort off
and check what it's set to in func Less() and set it to the relevant order before
calling sort.Sort(foo) anyone got some better suggestions?
12:53 < wrtp> hokapoka: just have a different type for each kind of sort
12:54 < wrtp> or a more general type that holds some data indicating the
kind of sort
12:54 < hokapoka> oh type sort1 mytype; func(s1 sort1) Less....;
12:54 < wrtp> yup
12:55 < wrtp> then if you want to sort an instance of mytype, just do
sort.Sort(sort1(x))
12:55 < hokapoka> I forget about those type definitions.
12:55 < hokapoka> sweet
12:55 < wrtp> useful they are :-)
12:55 < hokapoka> yes, need to make a mental note to think about them more.
12:56 < hokapoka> Brillant.
13:08 < hokapoka> I assume it's less expensive to declare the Len & Swap
funcs on it's own type rather than within the func type casting back to the
mytype?
13:09 < hokapoka> for example : func (s sort1) Len() (int) { return
mytype(s).Len() }
13:10 < hokapoka> is it better to use : func (s sort1) Len() (int) { return
len(s); } ?
13:13 -!- adu [~ajr@softbank220043138128.bbtec.net] has joined #go-nuts
13:19 -!- Maxdamantus [~Maxdamant@203-97-238-106.cable.telstraclear.net] has quit
[Ping timeout: 240 seconds]
13:27 < skelterjohn> hokapoka: do you mean s.(mytype).Len()
13:27 < skelterjohn> if sort1 is an interface, len(s) doesn't make sense
13:27 -!- Maxdamantus [~Maxdamant@203-97-238-106.cable.telstraclear.net] has
joined #go-nuts
13:27 -!- vice_virtue [~vice@220-253-8-40.VIC.netspace.net.au] has joined #go-nuts
13:27 < skelterjohn> but if it's, for example, "type sort1 []*MyDataType"
13:27 < skelterjohn> then len(s) is fine
13:28 < vice_virtue> wrtp, regarding that RSA issue from yesterday:
http://code.google.com/p/go/issues/detail?id=1519&colspec=ID%20Status%20Stars%20Priority%20Owner%20Reporter%20Summary
13:28 < vice_virtue> I used your rsa_test.go in the issue as an attachment
13:29 < vice_virtue> Meanwhile, my program pads the encryptoaep output with
zero's if need be
13:30 < wrtp> hokapoka: you don't need to redefine Len
13:30 < wrtp> you can do: type sort1 struct {mytype}; func (s sort1) Less(i,
j int) {...}
13:31 < wrtp> to redefine your comparison only
13:32 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has joined #go-nuts
13:33 < wrtp> vice_virtue: i think the difference can be any number of
bytes, with exponentially decreasing probabilty
13:33 < vice_virtue> Yeah, my code accounts for that
13:33 < wrtp> i think you'll find that about 1 in 65536 cases are two bytes
less
13:34 < wrtp> sure
13:34 < wrtp> i was just referring to your comment
13:34 < vice_virtue> on the issue?
13:34 < wrtp> "In practice, it seems that this difference is up to 1 byte."
13:35 < vice_virtue> ohh, good point, I just haven't encountered anything
else, but strictly speaking I guess you're right, a 2^1/n relationship
13:36 -!- qjcg [~qjcg@208.88.110.46] has joined #go-nuts
13:36 -!- qjcg [~qjcg@208.88.110.46] has left #go-nuts []
13:37 -!- artefon [~thiagon@150.164.2.20] has quit [Quit: Leaving]
13:39 -!- jdp [~jdp@ool-435238c0.dyn.optonline.net] has quit [Remote host closed
the connection]
13:39 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has quit [Quit:
Leaving...]
13:42 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has joined #go-nuts
13:43 < wrtp> i think you mean 2^-n :-)
13:44 < aiju> 2^1/n = 0
13:44 < aiju> oh wait, no
13:44 < aiju> it's 3/n
13:46 < wrtp> surely the probability is 1 in 2^n?  i.e.  1/(2^n) = 2^-n
13:47 < vice_virtue> which is equal to 2^(1/n)
13:47 < vice_virtue> no?
13:47 < vice_virtue> no...
13:47 < aiju> no
13:47 < wrtp> no
13:47 < vice_virtue> again
13:48 < wrtp> 2^(1/n) approaches 1 as n approaches infinity
13:48 < vice_virtue> (1/2)^n
13:48 < wrtp> yeah exactly.
13:48 < wrtp> = 1 / (2^n) = 2^-n
13:48 < vice_virtue> geometric distribution?
13:48 < vice_virtue> it's late :(
13:48 < wrtp> exponential, no?
13:50 < vice_virtue> ah, geometric sequence...  a = 1, r = 0.5
13:53 < adu> I'm so confused
13:54 < vice_virtue> Regardless of how it would look if we graphed it, it's
in the issue tracker now, and my code now accounts for any sort of messed-up
polygamous Chi-squared distribution
13:55 < adu> 6g doesn't seem to handle "x.y" until much later in the parsing
process
13:58 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has quit [Quit:
Leaving...]
13:59 < skelterjohn> the words geometric and exponential mean something very
similar in this case
14:02 < vice_virtue> text file as an issue tracker...  maybe I should invest
in setting up something more substantial...  mmaayyybbeee
14:04 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Quit:
Leaving.]
14:06 < skelterjohn> if you're the only one working on the project, text
file is fine
14:07 -!- Maxdamantus [~Maxdamant@203-97-238-106.cable.telstraclear.net] has quit
[Ping timeout: 246 seconds]
14:09 -!- vice_virtue [~vice@220-253-8-40.VIC.netspace.net.au] has quit [Ping
timeout: 276 seconds]
14:17 -!- plainhao [~plainhao@208.75.85.237] has joined #go-nuts
14:19 -!- arun__ [~arun@2001:610:110:4e2:280:5aff:fe69:e130] has quit [Changing
host]
14:19 -!- arun__ [~arun@unaffiliated/sindian] has joined #go-nuts
14:22 -!- dfr|mac [~dfr|work@nat/google/x-nmmsnrusanlyxvwf] has joined #go-nuts
14:22 -!- saturnfive [~saturnfiv@222.90.1.218] has joined #go-nuts
14:26 -!- Maxdamantus [~Maxdamant@203-97-238-106.cable.telstraclear.net] has
joined #go-nuts
14:28 -!- Viisa [~viisanan@bb220-255-89-248.singnet.com.sg] has joined #go-nuts
14:33 < nsfx> Scalability question: I have a big in-memory data structure
that I'm reading from and it's no longer fitting in RAM.  Attempting a distributed
solution, would spawning sharded servers and calling them by RPC from a 'master'
scale well?
14:35 < nsfx> I'm mainly worried about the scalability of spawning a
goroutine for each shard for every request.
14:35 -!- Viisa [~viisanan@bb220-255-89-248.singnet.com.sg] has quit [Quit:
Leaving]
14:39 -!- ildorn [~ildorn@vpnclient-241-069.extern.uni-ulm.de] has joined #go-nuts
14:41 -!- Boney [~paul@124-148-175-184.dyn.iinet.net.au] has joined #go-nuts
14:43 -!- Boney_ [~paul@203-158-33-53.dyn.iinet.net.au] has quit [Ping timeout:
276 seconds]
14:43 -!- iant [~iant@67.218.104.194] has joined #go-nuts
14:43 -!- mode/#go-nuts [+v iant] by ChanServ
14:44 < skelterjohn> spawning some constant number of goroutines for every
request should be fin
14:44 < skelterjohn> e
14:44 < skelterjohn> in fact, that was one of the first examples of
goroutines i saw (when Rob Pike gave a talk)
14:44 < aiju> when i get too worried about server performance, i remember
that people use ruby on rails
14:46 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
14:51 < wrtp> nsfx: if you measured it and the overhead was too high, you
could easily roll your own rpc which didn't do a spawn
14:52 < wrtp> depends whether you need multiple outstanding rpcs or not
14:52 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
14:53 < wrtp> fun package of the day:
rog-go.googlecode.com/hg/exp/filemarshal (inspired by ron minnich on golang-dev)
14:53 -!- femtoo [~femto@95-89-248-198-dynip.superkabel.de] has joined #go-nuts
14:57 -!- jdp [~jdp@pool-98-116-124-6.nycmny.fios.verizon.net] has joined #go-nuts
14:58 < nsf> nsfx :D
14:58 < nsf> now there are two nsfs
14:58 < nsf> :P
15:00 -!- Maxdamantus [~Maxdamant@203-97-238-106.cable.telstraclear.net] has quit
[Ping timeout: 260 seconds]
15:03 -!- jbooth1 [~jay@209.249.216.2] has joined #go-nuts
15:05 < jnwhiteh> pro tip: if you have a memory leak, check for the use of
maps and ensure you're not doing foo[bar] = nil thinking it actually will make bar
eligible for garbage collection.  In short, don't be an idiot =)
15:07 -!- JusticeFries [~JusticeFr@c-24-9-171-36.hsd1.co.comcast.net] has quit
[Quit: JusticeFries]
15:08 -!- ildorn [~ildorn@vpnclient-241-069.extern.uni-ulm.de] has quit [Ping
timeout: 260 seconds]
15:10 < adu> jnwhiteh: or, add free() to the language
15:10 < jnwhiteh> I wouldn't want free
15:10 < jnwhiteh> the GC works just fine =)
15:10 < jnwhiteh> and adding free can cause nil references at runtime and
that's no good
15:11 < Namegduf> Adding free() won't solve memory leaks.
15:11 < jnwhiteh> not in the least =)
15:11 < Namegduf> It'll just turn existing memory leaks into bad references.
15:12 < Namegduf> Assuming it's actually used perfectly, which seems
dubious.
15:13 < adu> I'm confused
15:13 < adu> if it's used perfectly, then wouldn't it ...  by definition ...
be perfect?
15:13 < jnwhiteh> no, it would create bad references
15:13 < Namegduf> It being used perfectly says nothing about everything else
15:14 < jnwhiteh> Go is a garbage collected language.  If you have a memory
leaks it is because you are holding references to a value; preventing them from
being collected.
15:14 < Namegduf> And if everything else was perfect you would not be
leaking memory in the first place
15:14 -!- pharris [~Adium@rhgw.opentext.com] has joined #go-nuts
15:14 < nsf> jnwhiteh: which is not a memory leak by definition
15:14 < jnwhiteh> As a result, if you were to free() that memory, whoever is
holding a reference to it suddenly has a nil reference instead.  The memory leak
is a symptom of the bug, not the bug itself.
15:14 < jnwhiteh> nsf: that's true =)
15:15 < Namegduf> Depends on how you define memory leak.
15:15 < nsf> I think GC is a bad idea
15:15 < nsf> for a language like Go
15:15 < adu> I like the idea of zones
15:15 < Namegduf> Why?
15:15 < wrtp> i think it's very difficult to manually manage memory in a
concurrent environment
15:15 < adu> why zones?
15:16 < Namegduf> Go is like any other language, plus concurrency, as
regards GC
15:16 < nsf> Namegduf: because it leaves place for writing some C code from
time to time
15:16 -!- exch [~exch@h78233.upc-h.chello.nl] has quit [Read error: Connection
reset by peer]
15:16 < Namegduf> nsf: And why is that a bad thing?
15:16 < adu> I think there should be a GC zone and a manual zone
15:16 < nsf> well..  maybe it isn't
15:16 < wrtp> you have to decide who has responsibility for a given piece of
data, and when it's being passed down channels, that's not always clear
15:16 < nsf> wrtp: you have to decide that no matter what
15:17 < wrtp> no you don't
15:17 < nsf> if you're not doing that your app sucks
15:17 < nsf> :)
15:17 < Namegduf> No, you don't.
15:17 < Namegduf> Even in manual memory management scenarios you often
utilise reference counting instead.
15:17 < nsf> writing apps is about managing data and processing data
15:17 < adu> oh, and a refcount zone
15:17 < nsf> GC is just a way to deal with one of the problems
15:17 < nsf> it doesn't remove the problem
15:18 < Namegduf> GC solves the problem.
15:18 < Namegduf> That's as good as removing it.
15:18 < Namegduf> Where "the problem" refers to memory management, not
bizarre abstract things like "managing data"
15:19 < Namegduf> Which is more like a composite of numerous actual problems
than a task persay
15:19 < wrtp> nsf: you have to know that *someone* has responsibility for
the data, but you don't need to know exactly which piece of code.
15:20 < adu> Namegduf: it's "per se"
15:20 < Namegduf> GC removes the requirement to ensure that data is owned by
a single specific someone, or reference counted manually and circular references
cannot happen.
15:21 < nsf> whatever..
15:22 * adu thinks global shared data should be deprecated
15:22 < nsf> if it's read-only, what's wrong with it?
15:22 -!- shvntr [~shvntr@113.84.150.100] has quit [Ping timeout: 246 seconds]
15:22 < adu> read-only is awesome
15:22 -!- exch [~exch@h78233.upc-h.chello.nl] has joined #go-nuts
15:23 < adu> global shared mutable data
15:23 < Namegduf> Global writeable data is messy in Go
15:23 < nsf> but I agree, I kind of like D's approach
15:23 < nsf> but I've never used it
15:23 < adu> nsf: I like Haskell's approach
15:23 < adu> deprecate variables alltogether
15:24 < jnwhiteh> I'd like to see efficient (i.e) copy-on-write immutable
data structures
15:24 -!- Maxdamantus [~Maxdamant@203-97-238-106.cable.telstraclear.net] has
joined #go-nuts
15:24 < adu> jnwhiteh: COW is slow
15:24 < Namegduf> COW is an implementation detail
15:24 < Namegduf> I think.
15:24 < wrtp> adu: have you made any large programs in haskell?
15:24 < jnwhiteh> adu: its better than always-copy
15:24 -!- shvntr [~shvntr@218.16.177.3] has joined #go-nuts
15:25 < wrtp> jnwhiteh: copy-on-write doesn't work well across multiple
processors
15:25 < jnwhiteh> that is true
15:25 < adu> wrtp: yes, a go parser
15:25 < taruti> actually there is messy shared global mutable state in
Haskell too
15:25 < wrtp> ah, parsers are a special case!
15:26 < wrtp> they map well to laziness
15:26 < jnwhiteh> writing a parser in haskell using parsec isn't really what
I would consider a large program
15:26 < adu> wrtp: also: http://hackage.haskell.org/package/mucipher and
http://hackage.haskell.org/package/only
15:26 < wrtp> taruti: yeah, and getting to grips with monad transformers is
not for the weak of mind
15:26 < taruti> they are fun :)
15:26 < taruti> wrtp: I miss them in Go :(
15:26 < adu> taruti: shh, don't let anyone know ;)
15:27 < Namegduf> The only thing I'd really like Go to provide is an
efficient lockfree read data structure
15:27 < adu> jnwhiteh: it's not always better
15:27 < Namegduf> Which could have a single writer concurrent with reads
without issues
15:27 < wrtp> one severe haskell lack, IMO: member names local to structured
types
15:27 < jnwhiteh> adu: Aye
15:28 < taruti> wrtp: yes
15:28 < Namegduf> You can write one in Go (and I have done so), but you have
to rely on things which are actually implementation details.
15:28 < wrtp> i really felt the pain of that when i was trying to use
haskell to do something slightly more non-trivial
15:29 < adu> wrtp: there's also a very nice FFI that a couple of Haskell
compilers support
15:29 < jnwhiteh> Haskell is a fantastic language
15:29 -!- Maxdamantus [~Maxdamant@203-97-238-106.cable.telstraclear.net] has quit
[Ping timeout: 246 seconds]
15:29 < jnwhiteh> but can't be compared to Go, they're just completely
different
15:29 < adu> of course
15:29 < wrtp> i found part of the problem with haskell is that the type
system was so powerful, it was difficult to avoid trying to express everything
with it
15:29 < jnwhiteh> I sit in an office filled with FP/Haskell PhD students
15:30 < jnwhiteh> luckily I'm just visiting their office, mine is downstairs
where we don't worry about being so 'pure' =)
15:30 < wrtp> and then you find that your compiler goes into infinite loops
and the error messages are utterly incomprehensible
15:30 < adu> wrtp: it is
15:31 < adu> wrtp: I actually think Haskell's typeclasses are overkill, but
then again, I also think Go's interfaces are overkill
15:31 -!- saturnfive [~saturnfiv@222.90.1.218] has left #go-nuts []
15:32 < taruti> like trying to optimize division type level numbers
15:33 < taruti> the lack of parametric types in Go is quite annoying
15:33 < adu> taruti: how would you want them to look?
15:33 * taruti dreams of defining monads in Go
15:33 < jnwhiteh> adu: you think interfaces are overkill O.o
15:33 < jnwhiteh> they're so..  minimal.
15:34 < adu> i do
15:34 < adu> jnwhiteh: define "minimal"
15:34 <+iant> what do you want to do with parametric types that you can't do
today?  (serious question, I'm looking for specific reasons why Go needs them)
15:34 < jnwhiteh> adu: define "overkill" =)
15:35 < taruti> iant: mostly get code to typecheck rather than using
interfaces + casting.
15:35 <+iant> what sort of code?
15:35 < jnwhiteh> The semantics of interfaces are incredibly simple, mainly
complicated by embeded types.
15:35 < taruti> iant: e.g.  a parsing framework like parsec, or data
structures.
15:36 < mdxi> aren't monads basically a giant slight-of-hand trick to get
around the fact that a language with no I/O (read: mathematically pure and
side-effect free) is utterly useless?
15:36 < adu> interfaces are generally used when you want to "specialize"
abstract operations for a predetermined list of types, and in this instance, a
type-switch (or equivalent custom code) would do just as well
15:36 < Namegduf> Huh?
15:36 < wrtp> iant: there are quite a few places where i've used some fairly
complex reflection code where parametric types would have worked better
15:36 < wrtp> adu: naah
15:37 < Namegduf> That sounds backwards
15:37 <+iant> adu: I don't think that is accurate; io.Writer is used by a
bunch of code, and there is no predetermined list of types which implement that
interface
15:37 < taruti> mdxi: they are lots of more things
15:37 < wrtp> adu: see how common Reader is
15:37 < Namegduf> Yeah.
15:37 < taruti> iant: e.g.  parametric types that are just implemented as
interface{} would be totally fine
15:37 < wrtp> particularly operations that layer interface on interface.
e.g.  bufio
15:38 < adu> wrtp: Reader would be an example of interfaces used to define
"hooks" for undetermined types, which is not covered by the above use case
15:38 <+iant> ...with compile-time type checking, I assume
15:38 * Namegduf is writing new functions that take io.Writer and io.Reader, which
are used by new types meeting them.  New code using more new code using an
existing interface.
15:38 < taruti> iant: yes.
15:41 < adu> generics have 3 uses in other languages: (1) strict
parameterization which avoids interface{} problems when a more specific type would
be helpful (2) encoding multiple method definitions in a single method if those
definitions are syntactically identical except for types (3) specialization, but
since this is already provided by Go interfaces, best not to consider
15:42 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
15:44 -!- Boney_ [~paul@124.168.120.213] has joined #go-nuts
15:45 < wrtp> i'd love to see some more specialised container types in Go.
without generics, it's difficult for them to be decently efficient.
15:45 -!- femtoo [~femto@95-89-248-198-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
15:46 < adu> wrtp: like List[int] and Vector[float32]?
15:46 -!- Boney [~paul@124-148-175-184.dyn.iinet.net.au] has quit [Ping timeout:
240 seconds]
15:47 < Namegduf> Vector is kinda redundant with slices and append()
15:47 -!- Maxdamantus [~Maxdamant@203-97-238-106.cable.telstraclear.net] has
joined #go-nuts
15:47 < Namegduf> The other container/* stuff, though, maybe?
15:47 < wrtp> like SkipList[int]
15:47 < wrtp> or Graph[nodeType, argType]
15:48 < wrtp> s/argType/arcType/
15:48 < adu> or Bipartite[U, V]
15:48 < Namegduf> Trie[*Foo]
15:49 * Namegduf has a trie.PointerTrie which uses unsafe.Pointer right now; using
it involves importing unsafe.
15:49 -!- visof [~visof@unaffiliated/visof] has quit [Remote host closed the
connection]
15:50 < jnwhiteh> Indeed, I'd love to be able to ask my students to
implement a generic binary tree structure in Go
15:50 < wrtp> the problem with interface based code is that if you want an
equivalence any deeper than the top level, the code has to be written explicitly
for a particular interface
15:50 < Namegduf> Go can't do so any more than C can
15:50 < jnwhiteh> the comparable interface helps with that tho
15:50 < Namegduf> You either have to instantiate or use interface{} the way
you'd use void*.
15:51 < Namegduf> (You could also use unsafe.Pointer similarly, but that
involves pulling in unsafe)
15:51 < wrtp> it helps that you can easily layer types on types with very
low overhead
15:52 < adu> I was considering what would be involved with compiling Go to
OpenCL-C, if all those built-in generic functions would have to be part of the
language...
15:53 -!- adu [~ajr@softbank220043138128.bbtec.net] has quit [Read error:
Connection reset by peer]
15:54 < wrtp> func InfiniteBuffer[t]() (chan<- t, <-chan t)
15:56 < wrtp> ParallelReduce[t]([]t, func(t, t) t) t
15:56 -!- jumzi [~none@c-89-233-234-125.cust.bredband2.com] has joined #go-nuts
15:57 -!- Venom_X [~pjacobs@66.54.185.131] has joined #go-nuts
16:00 -!- luruke [~luruke@151.53.25.175] has joined #go-nuts
16:02 -!- iant [~iant@67.218.104.194] has quit [Quit: Leaving.]
16:02 -!- jumzi [~none@c-89-233-234-125.cust.bredband2.com] has quit [Ping
timeout: 246 seconds]
16:06 -!- luruke [~luruke@151.53.25.175] has quit [Quit: Leaving]
16:07 -!- petrux [~petrux@host16-224-static.53-82-b.business.telecomitalia.it] has
quit [Quit: leaving]
16:11 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se]
has joined #go-nuts
16:15 -!- jumzi [~none@c-89-233-234-125.cust.bredband2.com] has joined #go-nuts
16:15 -!- iant [~iant@nat/google/x-ldhaszallweneipw] has joined #go-nuts
16:15 -!- mode/#go-nuts [+v iant] by ChanServ
16:18 -!- phalax_ [~phalax@c213-100-72-128.swipnet.se] has joined #go-nuts
16:18 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts
16:22 < skelterjohn> morning
16:23 -!- bortzmeyer1 [~bortzmeye@batilda.nic.fr] has joined #go-nuts
16:23 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Ping timeout: 260
seconds]
16:24 -!- bortzmeyer1 [~bortzmeye@batilda.nic.fr] has quit [Client Quit]
16:24 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has joined #go-nuts
16:25 < plexdev> http://is.gd/QWwpnn by [Roger Peppe] in go/src/pkg/netchan/
-- netchan: allow use of arbitrary connections.
16:35 < KBme> hum arbitrary connections?
16:35 < KBme> oh, nice
16:40 < zozoR> whats that
16:40 < zozoR> ?
16:40 < aiju> you can connect to *any* computer in your network!
16:40 < zozoR> and which computers could you not connect to before?
16:42 < aiju> zozoR: that was a joke
16:42 < zozoR> but im too stupid to get it -_-
16:42 < skelterjohn> maybe he was trying to set you up for a better
punchline :)
16:43 < zozoR> : |
16:43 < KBme> no, lol, it expects an io.ReadWriter instead of a net.Conn
16:45 -!- shvntr [~shvntr@218.16.177.3] has quit [Quit: leaving]
16:45 < jbooth1> netchan = ReaderWriter + serialization so you can push
arbitrary stuff through the chan?
16:47 < KBme> no
16:47 < KBme> netchan now doesn't only work on network connections
16:47 < KBme> it works on any io.ReadWriter
16:47 < jbooth1> yeah i got that part
16:47 < jbooth1> i was just asking about the purpose of the api
16:47 < skelterjohn> that's consistent with what jbooth1 said
16:47 < KBme> ok i didn't get it
16:47 < KBme> jbooth1: it's just channels over the network
16:47 < jbooth1> seems like that's what it does..  is this like go internal
binary state or does it use gob or what
16:47 < KBme> you can import them from external programs
16:48 < jbooth1> yeah i'm just curious about how it represents the objects
you're pushing through on the wire
16:48 < skelterjohn> if netchan can be used over a network, i'm sure it uses
a cross-platform format
16:48 < skelterjohn> otherwise it wouldn't be very useful
16:48 < KBme> yep, that is probable
16:49 -!- JusticeFries_
[~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net] has joined #go-nuts
16:49 < skelterjohn> however: "they always behave as if they are buffered
channels of at least one element"
16:49 < jbooth1> well, now that it's upgraded to ReaderWriter, start the
countdown on someone saving stuff to files with it and then having the format
change on them :)
16:49 < skelterjohn> from golang.org/pkg/netchan
16:49 < skelterjohn> i foresee deadlock issues if you try to write to a file
for storage
16:49 * jbooth1 tried to do that with java serialization once upon a time, bad
idea
16:51 < jbooth1> hm do channels have an EOF equivalent?
16:51 < jbooth1> haven't had a chance to use them yet
16:51 < skelterjohn> you can range over a channel
16:51 < skelterjohn> will read values until the channel is closed
16:51 < skelterjohn> close(theChannel)
16:51 < jbooth1> ok
16:52 < jbooth1> cool
16:52 < skelterjohn> there used to be, and may still be, a function
closed(theChannel)
16:52 < skelterjohn> to tell you if it is closed
16:52 < aiju> didn't they remove it?
16:52 < skelterjohn> i don't know, hence my equivocal language
16:52 < Namegduf> I think they might have, and it isn't very useful for most
approaches anyway
16:53 < skelterjohn> you can attempt to read from a channel with "val, ok
<- theChannel", and ok will be false if the channel was closed (and val will be
zeroed)
16:53 -!- binarypie [~binarypie@adsl-99-37-227-229.dsl.pltn13.sbcglobal.net] has
joined #go-nuts
16:53 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has quit [Ping timeout: 264 seconds]
16:53 < jbooth1> yeah that seems cleaner than calls to closed()
16:53 < skelterjohn> checking closed(ch) and then doing something based on
what you got is asking for race conditions
16:54 < jbooth1> yeah
16:54 < jbooth1> well, they can't reopen right?
16:54 < skelterjohn> right
16:54 < jbooth1> but yeah if you proceed assuming open that's trouble
16:54 < skelterjohn> well, you'll get zero in what you read off the channel
16:54 < jbooth1> yeah
16:54 < skelterjohn> that may or may not be useful
16:59 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-166-5.clienti.tiscali.it] has
joined #go-nuts
17:09 -!- phalax_ [~phalax@c213-100-72-128.swipnet.se] has quit [Ping timeout: 240
seconds]
17:10 -!- Scorchin [~Scorchin@host86-145-16-123.range86-145.btcentralplus.com] has
joined #go-nuts
17:13 < zozoR> i just used closed()
17:24 < zozoR> omg netchans are made of epicness :/
17:25 -!- artefon [~thiago@189.26.237.132.dynamic.adsl.gvt.net.br] has joined
#go-nuts
17:25 -!- phalax_ [~phalax@c213-100-72-128.swipnet.se] has joined #go-nuts
17:29 -!- maattd [~maattd@esc31-1-78-245-92-71.fbx.proxad.net] has joined #go-nuts
17:30 < wrtp> jbooth1: netchan will quickly fail if you try to use it on a
regular file...  it expects to see reply messages and it'd only see EOF...
17:30 -!- niemeyer [~niemeyer@189-10-154-99.pltce701.dsl.brasiltelecom.net.br] has
joined #go-nuts
17:30 < wrtp> and yes, it uses gob
17:31 -!- artefon [~thiago@189.26.237.132.dynamic.adsl.gvt.net.br] has quit [Ping
timeout: 246 seconds]
17:31 < wrtp> KBme: you could now even run netchan over a channel within
netchan itself...
17:32 < zozoR> divide by zero?  :D
17:33 -!- ShadowIce
[~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has joined
#go-nuts
17:33 -!- ShadowIce
[~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has quit
[Changing host]
17:33 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
17:35 -!- derferman [~derferman@c-98-207-60-44.hsd1.ca.comcast.net] has joined
#go-nuts
17:37 -!- piranha [~piranha@5ED4B890.cm-7-5c.dynamic.ziggo.nl] has joined #go-nuts
17:38 < jnwhiteh> Am I correct in saying that the TCPConn returned by the
http.ListenAndServe function does not implement the ReadFrom/WriteTo methods?
17:42 -!- n___ [~alouca@5ad54238.bb.sky.com] has joined #go-nuts
17:44 -!- phalax_ [~phalax@c213-100-72-128.swipnet.se] has left #go-nuts
["Lämnar"]
17:44 -!- artefon [~thiago@189.59.159.252.dynamic.adsl.gvt.net.br] has joined
#go-nuts
17:47 < wrtp> jnwhiteh: looks like it.  you can always use Write or Read
instead.
17:47 < wrtp> why do you care?
17:48 < jnwhiteh> wrtp:
http://images.gammatester.com/pics/c8347f64e1eaedd4bf5cbf45409c9cd6.png
17:49 < aiju> you're running OS X and worry about performance?
17:49 < jnwhiteh> wrtp: top line is apache/lighttpd, blue is go using
http.FileServer and pink/green are my frameworks
17:49 < wrtp> top line being the red one?
17:49 < jnwhiteh> yes
17:50 < jnwhiteh> I'm trying to narrow down the cause of the speed
difference and knowing that no one is able to use ReadFrom helps me narrow it down
17:50 < jnwhiteh> that's all I was looking for =)
17:50 < wrtp> well, you can check definitively with a quick interface check
17:51 < jnwhiteh> *nod* I'll do that in a bit
17:51 < wrtp> it might be encapsulating bufio or something
17:51 < jnwhiteh> yay for gotry =)
17:51 < wrtp> yay!
17:51 < wrtp> nice graph anyway
17:52 < jnwhiteh> not fantastic results, but my research isn't about
performance..  I just have to do some sort of comparison
17:52 < wrtp> is that with GOMAXPROCS=1?
17:52 < jnwhiteh> was hoping to show that a highly concurrent architecture
with a bit more flexibility doesn't come at much cost, but it doesn't seem like
that's in the cards =)
17:52 < jnwhiteh> yes
17:52 < mpl> it's odd how they all drop suddenly and then climb a bit again.
why don't they just keep dropping?
17:52 < aiju> i suppose he doesn't average properly :P
17:52 < jnwhiteh> ...
17:53 < aiju> jnwhiteh: do you?
17:53 < jnwhiteh> given that httperf is the one doing it and not me, yes.
17:53 < aiju> oic
17:53 < mpl> hmm wait, no.  it does make kinda sense that it would stay
constant at max capability.
17:53 < jnwhiteh> I'm not sure why you feel the need to make a snide comment
about the OS I happen to be using, and then say something like that..
17:53 < wrtp> i'd be interested to see the results for GOMAXPROCS>1
17:54 < mpl> jnwhiteh: that's called trolling.  and it's pretty frequent on
irc.  just ignore what you don't like :)
17:54 < jnwhiteh> aye, I have to run those as well
17:54 < jnwhiteh> mpl: I'm quite aware, just didn't expect to see it here
for some reason *shrug*
17:54 < jnwhiteh> mpl: the results are what I'd expect given the plateau
that you experience with this particular metric
17:54 < aiju> well, esp.  the blue line looks undersampled
17:54 < Namegduf> Would be interesting to track down the performance cost.
17:54 < mpl> jnwhiteh: yah, yah, I hadn't thought through enough.
17:55 < jnwhiteh> aiju: there are currently two data points per x value
17:55 < jnwhiteh> that's why you get the weirdness in the blue
17:55 < jnwhiteh> two clients are used to sustain the load on the server and
*those* values are not averaged at all at the moment
17:55 < aiju> wait, you just run it twice for each x value?
17:55 < aiju> yeah
17:55 < aiju> then my comment wasn't "trolling" but an accurate observation
17:56 < Namegduf> Would be interesting to track down the performance issue.
17:56 < jnwhiteh> no, if I need to sustain a load of 3000 requests per
second for 30 seconds, that's split over two clients with 1500 requests per second
17:56 < jnwhiteh> Namegduf: that's what I'm working on, so I can put it in
my conclusions
17:56 < Namegduf> It'd also be good for improving Go
17:56 < aiju> scheduler?  garbage collector?
17:56 < jnwhiteh> aiju: given that that's it doesn't answer mpl's questions,
I don't buy it.
17:56 < aiju> both of those are pretty ..  simplicistic
17:56 < Namegduf> Go is not very optimised right now, so comparing it to
stuff that's been benchmarked and improved as far as reasonably possible isn't
totally fair.
17:57 < jnwhiteh> Namegduf: I'm not doing that =)
17:57 < jnwhiteh> the relevant portion of this graph is my framework in
relation to Go's stock package
17:57 < aiju> jnwhiteh: it does answer it, you can't expect too much
explainable behaviour if you don't sample enough
17:57 < jnwhiteh> Apache is just a matter of perspective
17:57 < aiju> it's called "basic empiric science"
17:57 < jnwhiteh> wow, clearly something I know nothing about
17:58 < Namegduf> I'm just saying, the results would be good for figuring
out how Go can be improved, as well.
17:58 < jnwhiteh> Namegduf: aye =)
18:00 < jnwhiteh> I need to first identify the overhead from my framework,
then I can move on to looking at what could be done to improve Go's performance
18:00 < jnwhiteh> the timeout http server made a huge difference, actually
18:00 < jnwhiteh> without that the second you enter an error state where
client are unable to be served, the server just goes kerplunk
18:01 < aiju> jnwhiteh: did you run a profiler on it?
18:02 < jnwhiteh> that's what I'm in the process of doing, yes.
18:02 < mpl> jnwhiteh: will you post your findinds on go-nuts at some point
plz?  I could use the conclusions to inspect my own code at some point.
18:02 -!- dfr|mac [~dfr|work@nat/google/x-nmmsnrusanlyxvwf] has quit [Remote host
closed the connection]
18:03 < jnwhiteh> mpl: yes, I intend to!
18:03 < mpl> thk
18:03 < mpl> *thx
18:03 < jnwhiteh> right now the biggest takeaway is that the http.Request
really needs to expose the address of the client; I'll probably submit a CL once
my load drops a bit =)
18:05 < fzzbt> does anyone have url for that github project which had a
bunch of helpful go Makefile examples?
18:05 < jnwhiteh> fzzbt: https://github.com/jnwhiteh/golang-examples
18:06 < jnwhiteh> that's how I end up structuring some of my projects
18:07 < fzzbt> noo that probably wasn't it..  i think it had example how to
include multiple packages in one Makefile.  not sure how wise that is tough..
18:08 < fzzbt> maybe ill check my own irclogs
18:08 < jnwhiteh> oh, didn't realize there was a specific one you were
looking for.  Not sure of the one you refer to.
18:08 -!- nettok [~quassel@200.119.180.6] has joined #go-nuts
18:09 -!- vsayer [~vivek@c-76-102-205-58.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
18:10 -!- vsayer [~vivek@c-76-102-205-58.hsd1.ca.comcast.net] has joined #go-nuts
18:10 < wrtp> jnwhiteh: you can get the address from the response writer
18:11 < wrtp> isn't that sufficient?
18:12 < KBme> wrtp: lol.  cheers
18:15 < skelterjohn> jnwhiteh: your golang-examples imports
jnwhiteh.net/buffers, so i can't build it :'(
18:21 -!- dfr|work [~dfr|work@nat/google/x-kulzlxzsmkupjxym] has joined #go-nuts
18:21 < skelterjohn> oh i see, your makefile sets the target
18:22 < jnwhiteh> wrtp: ah, so it does, I missed that at some point =)
18:28 < plexdev> http://is.gd/fZBOqn by [Albert Strasheim] in 2 subdirs of
go/src/pkg/ -- os: add ENODATA and ENOTCONN
18:28 < plexdev> http://is.gd/z6jZfQ by [Russ Cox] in 2 subdirs of
go/src/pkg/runtime/ -- runtime: minor cleanup
18:28 < plexdev> http://is.gd/Y7MBJq by [Russ Cox] in go/src/pkg/runtime/ --
runtime: fix memory allocator for GOMAXPROCS > 1
18:30 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout:
604 seconds]
18:33 -!- nettok [~quassel@200.119.180.6] has quit [Ping timeout: 240 seconds]
18:34 < temoto> Is Alec Thomas here?
18:38 -!- fabled [~fabled@mail.fi.jw.org] has quit [Quit: Ex-Chat]
18:42 -!- gits [~gits@77.94.219.158] has joined #go-nuts
18:46 -!- ildorn [~ildorn@vpnclient-241-096.extern.uni-ulm.de] has joined #go-nuts
18:47 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection]
18:49 -!- kosiini [~janne@pdpc/supporter/student/kosiini] has quit [Ping timeout:
240 seconds]
18:59 < plexdev> http://is.gd/Mwr70m by [Rob Pike] in go/test/bench/ --
test/bench: update timings for new GC
19:05 < str1ngs> anyone have experience using
http://code.google.com/p/x-go-binding ?
19:07 -!- kosiini [~janne@dyn2-85-23-163-201.psoas.suomi.net] has joined #go-nuts
19:07 -!- kosiini [~janne@dyn2-85-23-163-201.psoas.suomi.net] has quit [Changing
host]
19:07 -!- kosiini [~janne@pdpc/supporter/student/kosiini] has joined #go-nuts
19:08 < str1ngs> fzzbt: there are more in the go src tree.  stuff like GOFMT
and format: is very useful to
19:09 -!- gits [~gits@77.94.219.158] has quit [Ping timeout: 246 seconds]
19:13 -!- kkress [~kkress@kkress2.xen.prgmr.com] has quit [Quit: leaving]
19:13 -!- kkress [~kkress@2001:470:1:41::403e:ad36] has joined #go-nuts
19:14 -!- l0ve [~l0ve@208-58-71-117.c3-0.fch-ubr1.lnh-fch.md.cable.rcn.com] has
left #go-nuts []
19:16 < plexdev> http://is.gd/3KYhCu by [Rob Pike] in go/src/pkg/reflect/ --
reflect: add a couple of sentences explaining how Methods operate.
19:16 < plexdev> http://is.gd/YRT5zB by [Yasuhiro Matsumoto] in
go/src/pkg/http/ -- http: add proxy support
19:16 < plexdev> http://is.gd/IkRWSB by [Russ Cox] in go/src/pkg/os/ -- os:
remove ENODATA (fixes freebsd build)
19:16 < plexdev> http://is.gd/DwlApw by [Gustavo Niemeyer] in
go/src/pkg/sync/ -- sync: add Cond
19:19 -!- vsayer [~vivek@c-76-102-205-58.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
19:20 -!- vsayer [~vivek@c-76-102-205-58.hsd1.ca.comcast.net] has joined #go-nuts
19:22 -!- imsplitbit [~imsplitbi@64.39.4.132] has joined #go-nuts
19:22 -!- derferman [~derferman@c-98-207-60-44.hsd1.ca.comcast.net] has quit
[Quit: derferman]
19:25 -!- Fish- [~Fish@88.162.170.133] has joined #go-nuts
19:29 -!- gits [~gits@77.94.219.158] has joined #go-nuts
19:33 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has quit [Quit: JusticeFries]
19:34 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts
19:37 -!- adg [~nf@2001:470:21:20::4444:61d9] has quit [Read error: Operation
timed out]
19:37 -!- adg [~nf@2001:470:21:20::4444:61d9] has joined #go-nuts
19:37 -!- mode/#go-nuts [+o adg] by ChanServ
19:39 -!- jumzi [~none@c-89-233-234-125.cust.bredband2.com] has quit [Remote host
closed the connection]
19:42 -!- gits [~gits@77.94.219.158] has quit [Ping timeout: 255 seconds]
19:43 -!- tvw [~tv@e176005159.adsl.alicedsl.de] has joined #go-nuts
19:50 -!- jdp [~jdp@pool-98-116-124-6.nycmny.fios.verizon.net] has quit [Remote
host closed the connection]
19:52 -!- Venom_X__ [~pjacobs@75.92.43.21] has joined #go-nuts
19:53 -!- Netsplit *.net <-> *.split quits: @adg, +iant
19:53 -!- Venom_X [~pjacobs@66.54.185.131] has quit [Ping timeout: 240 seconds]
19:54 -!- keithcascio [~keithcasc@nat/google/x-upbktnussjnnysax] has joined
#go-nuts
19:55 -!- illya77 [~illya77@86-31-133-95.pool.ukrtel.net] has joined #go-nuts
20:00 -!- eikenberry [~jae@ivanova.zhar.net] has quit [Quit: End of line.]
20:00 -!- eikenberry [~jae@ivanova.zhar.net] has joined #go-nuts
20:00 -!- ssalbiz [~ssalbiz@taurine.csclub.uwaterloo.ca] has quit [Ping timeout:
272 seconds]
20:00 -!- ssalbiz [~ssalbiz@taurine.csclub.uwaterloo.ca] has joined #go-nuts
20:03 < plexdev> http://is.gd/1DexmM by [Russ Cox] in go/ -- A+C: Olivier
Antoine (individual CLA)
20:05 -!- illya77 [~illya77@86-31-133-95.pool.ukrtel.net] has quit [Quit: illya77]
20:05 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Quit: Leaving]
20:06 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
20:06 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Client Quit]
20:07 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
20:07 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
20:09 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
20:10 -!- ildorn [~ildorn@vpnclient-241-096.extern.uni-ulm.de] has quit [Quit:
Leaving.]
20:13 -!- Netsplit over, joins: @adg, +iant
20:15 -!- kosiini [~janne@pdpc/supporter/student/kosiini] has quit [Ping timeout:
240 seconds]
20:16 -!- ildorn [~ildorn@vpnclient-241-080.extern.uni-ulm.de] has joined #go-nuts
20:16 -!- femtoo [~femto@95-89-248-198-dynip.superkabel.de] has joined #go-nuts
20:19 < plexdev> http://is.gd/XgYD0j by [Olivier Antoine] in go/src/pkg/net/
-- net: reject invalid net:proto network names
20:19 < plexdev> http://is.gd/0C6mrC by [Mikio Hara] in go/src/pkg/net/ --
net: more accurate IPv4-in-IPv6 API test
20:19 < plexdev> http://is.gd/y5bVrZ by [Dave Cheney] in go/src/pkg/net/ --
net: add IPv4 multicast to UDPConn
20:23 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
20:23 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Client Quit]
20:24 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has joined
#go-nuts
20:26 < temoto> Is something like this possible?  part1, part2, part3 =
strings.Split(in, " ", 3)
20:27 < skelterjohn> no - a returned slice is different than a multi-return
20:28 < skelterjohn> you can do "s := strings.Split(...); part1, part2,
part3 = s[0], s[1], s[2]"
20:28 < temoto> I can see that exactly this syntax won't work.  Asking about
similar.
20:28 < temoto> uh
20:28 < skelterjohn> but if you think about it, the compiler doesn't know
how long the slice will be at runtime
20:29 < temoto> So?
20:29 < skelterjohn> so it isn't a safe operation
20:29 < temoto> Compiler can generate exactly same code as you pointed.
20:29 < skelterjohn> and it might trigger a panic :)
20:29 < skelterjohn> you have to ask to do things that can cause a panic
20:30 < aiju> yeah, like doing foo[bar]
20:30 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
20:30 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
20:30 < aiju> the thing here is rather that it is too easy to panic
20:31 < skelterjohn> you could write StringSliceTo3Vals(s []string) (v1, v2,
v3 string, err os.Error)
20:31 < skelterjohn> but it's already gotten complicated enough so that it
really doesn't belong as part of the language itself
20:31 < skelterjohn> but rather some code you'd write to handle your special
case
20:32 < temoto> Yes, complicated enough :)
20:32 < skelterjohn> which is not to say it's particularly complicated.  go
has a low bar for complexity of its primitive operations
20:33 < aiju> if you want pre-made operations for every possible thing, try
ruby
20:33 < aiju> foo.NonZero?
20:33 < aiju> this really baffled me
20:34 < skelterjohn> what does that do
20:34 < aiju> it checks whether foo is non-zero
20:34 < skelterjohn> foo != 0?
20:34 -!- maattd [~maattd@esc31-1-78-245-92-71.fbx.proxad.net] has quit [Remote
host closed the connection]
20:35 < GilJ> Yep
20:35 < aiju> skelterjohn: i don't know why they don't do that one either
20:35 < skelterjohn> why make a shortcut that is longer?
20:35 < aiju> skelterjohn: it's Ruby
20:35 < GilJ> Readability++
20:35 < skelterjohn> is there foo.Zero?
20:35 < aiju> there is also a .First second
20:35 < aiju> *method
20:35 < aiju> to get the first element of a list!
20:35 < skelterjohn> that is kind of like lisp though
20:35 < temoto> What do you get if list is empty?
20:35 < skelterjohn> so at least there is some history there
20:36 < GilJ> list.Empty?
20:36 < aiju> temoto: i don't know; my knowledge of ruby is very superficial
20:36 < skelterjohn> he means what happens with list.First if the list is
empty
20:36 < aiju> skelterjohn: in LISP it makes sense
20:36 < skelterjohn> i imagine your server shuts down
20:38 < aiju> Ruby is said to follow the principle of least astonishment
(POLA), meaning that the language should behave in such a way as to minimize
confusion for experienced users.
20:38 < temoto> I tried.  [].first returns nil.  Which is actually useful.
20:38 < aiju> hahahahahahaha
20:38 < temoto> confusion for experienced users is funny, yeah.  :)
20:38 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
20:38 < aiju> experienced users can work with JCL
20:38 < skelterjohn> what's jcl
20:39 < aiju> http://en.wikipedia.org/wiki/Job_Control_Language#Complexity
20:39 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Client Quit]
20:39 < temoto> just common lisp ;)
20:39 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
20:39 < aiju> "nil" is an object
20:39 < aiju> fuck yeah
20:39 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Client Quit]
20:43 -!- femtoo [~femto@95-89-248-198-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
20:45 -!- TheMue [~TheMue@p5DDF6A29.dip.t-dialin.net] has joined #go-nuts
20:45 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
20:50 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
20:52 -!- kixo [~rbebic@93-138-124-251.adsl.net.t-com.hr] has joined #go-nuts
20:54 -!- kixo [~rbebic@93-138-124-251.adsl.net.t-com.hr] has quit [Client Quit]
20:54 -!- kixo [~rbebic@93-138-124-251.adsl.net.t-com.hr] has joined #go-nuts
20:54 -!- kixo [~rbebic@93-138-124-251.adsl.net.t-com.hr] has quit [Client Quit]
20:54 -!- kixo [~rbebic@93-138-124-251.adsl.net.t-com.hr] has joined #go-nuts
20:55 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.4]
20:55 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
20:56 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
20:57 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
20:58 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
20:59 -!- kosiini [~janne@dyn2-85-23-163-201.psoas.suomi.net] has joined #go-nuts
20:59 -!- kosiini [~janne@dyn2-85-23-163-201.psoas.suomi.net] has quit [Changing
host]
20:59 -!- kosiini [~janne@pdpc/supporter/student/kosiini] has joined #go-nuts
21:01 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
21:03 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
21:04 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
21:05 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
21:05 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
21:05 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
21:06 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
21:07 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
21:08 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
21:08 -!- plainhao [~plainhao@208.75.85.237] has quit [Quit: plainhao]
21:09 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Client Quit]
21:09 -!- museun [~what@c-98-252-140-73.hsd1.ga.comcast.net] has quit []
21:09 -!- aconran__ [~aconran-o@38.104.129.126] has joined #go-nuts
21:10 -!- vzx [~ryan@74-129-201-27.dhcp.insightbb.com] has quit [Ping timeout: 250
seconds]
21:11 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
21:13 -!- aconran_ [~aconran-o@adsl-67-119-205-150.dsl.pltn13.pacbell.net] has
quit [Ping timeout: 255 seconds]
21:15 -!- artefon [~thiago@189.59.159.252.dynamic.adsl.gvt.net.br] has quit [Ping
timeout: 246 seconds]
21:24 -!- vzx [~ryan@74-129-201-27.dhcp.insightbb.com] has joined #go-nuts
21:24 -!- nictuku [~nicutku@cetico.org] has quit [Quit: Terminated with extreme
prejudice - dircproxy 1.0.5]
21:25 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
21:26 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has joined #go-nuts
21:35 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
21:36 < zozoR> anyone with gtk experience?
21:37 < zozoR> i wonder which events are send, when gnome-panel dies
21:42 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Quit: Leaving]
21:43 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
21:43 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Client Quit]
21:43 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
21:45 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has joined #go-nuts
21:45 -!- TheMue [~TheMue@p5DDF6A29.dip.t-dialin.net] has quit [Quit: TheMue]
21:47 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
21:47 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
21:47 -!- ildorn [~ildorn@vpnclient-241-080.extern.uni-ulm.de] has quit [Quit:
Leaving.]
21:48 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
21:49 -!- kixo [~rbebic@93-138-124-251.adsl.net.t-com.hr] has quit [Ping timeout:
246 seconds]
21:58 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
21:59 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
22:03 -!- wrtp [~rog@92.17.93.139] has quit [Quit: wrtp]
22:03 < uriel> zeroXten: probably party events to celebrate....
22:04 < uriel> er., s/ zeroXten/ zozoR
22:10 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-168-61.clienti.tiscali.it]
has joined #go-nuts
22:11 -!- maattd [~maattd@esc31-1-78-245-92-71.fbx.proxad.net] has joined #go-nuts
22:13 -!- tensorpudding [~user@99.23.127.179] has joined #go-nuts
22:13 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-166-5.clienti.tiscali.it] has
quit [Ping timeout: 246 seconds]
22:13 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
22:19 -!- kixo [~rbebic@93-141-67-199.adsl.net.t-com.hr] has joined #go-nuts
22:20 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has quit [Remote host closed the connection]
22:20 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has joined #go-nuts
22:24 -!- fenicks [~fenicks@log77-3-82-243-254-112.fbx.proxad.net] has joined
#go-nuts
22:27 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has joined #go-nuts
22:29 -!- jhawk28_ [~jhawk28@user-387c58d.cable.mindspring.com] has joined
#go-nuts
22:29 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has quit [Read
error: Connection reset by peer]
22:29 -!- piranha [~piranha@5ED4B890.cm-7-5c.dynamic.ziggo.nl] has quit [Quit:
Computer has gone to sleep.]
22:32 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se]
has quit [Remote host closed the connection]
22:39 -!- kkress [~kkress@2001:470:1:41::403e:ad36] has quit [Read error:
Operation timed out]
22:40 < zeroXten> uriel: :)
22:48 -!- ExtraSpice [XtraSpice@78-62-101-194.static.zebra.lt] has quit [Read
error: Connection reset by peer]
22:48 -!- imsplitbit [~imsplitbi@64.39.4.132] has quit [Quit: Bye!]
22:50 -!- Fish- [~Fish@88.162.170.133] has quit [Quit: So Long, and Thanks for All
the Fish]
22:57 -!- jhawk28_ [~jhawk28@user-387c58d.cable.mindspring.com] has quit [Quit:
Leaving...]
23:01 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has quit [Quit:
Leaving.]
23:01 -!- tvw [~tv@e176005159.adsl.alicedsl.de] has quit [Remote host closed the
connection]
23:01 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.]
23:03 -!- kosiini [~janne@pdpc/supporter/student/kosiini] has quit [Remote host
closed the connection]
23:07 < plexdev> http://is.gd/h4Kj3a by [Jeff R. Allen] in 2 subdirs of go/
-- gc: make string const comparison unsigned
23:14 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
23:15 -!- nettok [~quassel@200.119.156.21] has joined #go-nuts
23:22 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Quit: skelterjohn]
23:23 -!- jbooth1 [~jay@209.249.216.2] has left #go-nuts []
23:25 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has quit [Quit:
KVIrc Insomnia 4.0.2, revision: 4740, sources date: 20100627, built on: 2010-10-19
12:51:39 UTC http://www.kvirc.net/]
23:29 -!- kkress [~kkress@2001:470:1:41::403e:ad36] has joined #go-nuts
23:29 -!- kkress [~kkress@2001:470:1:41::403e:ad36] has quit [Client Quit]
23:30 -!- kkress [~kkress@2001:470:1:41::403e:ad36] has joined #go-nuts
23:30 -!- tvw [~tv@e176005159.adsl.alicedsl.de] has joined #go-nuts
23:34 -!- [Pete_27] [~noname@110-174-103-31.static.tpgi.com.au] has quit [Quit:
leaving]
23:35 -!- [Pete_27] [~noname@110-174-103-31.static.tpgi.com.au] has joined
#go-nuts
23:37 -!- binarypie [~binarypie@adsl-99-37-227-229.dsl.pltn13.sbcglobal.net] has
quit [Remote host closed the connection]
23:53 < plexdev> http://is.gd/i6iC6l by [Nigel Tao] in go/src/pkg/html/ --
html: tokenize HTML comments.
--- Log closed Thu Feb 17 00:00:29 2011