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

--- Log opened Sun May 29 00:00:51 2011
00:12 -!- brandini [~orbit@adsl-69-221-167-43.dsl.akrnoh.ameritech.net] has quit
[Changing host]
00:12 -!- brandini [~orbit@metabug/brandon] has joined #go-nuts
00:22 -!- hungrygruffalo
[~hungrygru@host86-161-13-173.range86-161.btcentralplus.com] has quit [Quit:
hungrygruffalo]
00:23 -!- ccc [~ron@c-76-26-54-186.hsd1.fl.comcast.net] has left #go-nuts
["Konversation terminated!"]
00:31 -!- brtk_ [~brtk@c83-248-35-158.bredband.comhem.se] has quit [Ping timeout:
250 seconds]
00:34 -!- bugQ [~bug@c-67-186-255-54.hsd1.ut.comcast.net] has quit [Ping timeout:
252 seconds]
00:41 -!- bugQ [~bug@c-67-186-255-54.hsd1.ut.comcast.net] has joined #go-nuts
00:49 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit
[Ping timeout: 276 seconds]
01:04 -!- foocraft [~ewanas@78.101.66.140] has joined #go-nuts
01:20 -!- aho [~nya@fuld-590c7272.pool.mediaWays.net] has quit [Quit:
EXEC_over.METHOD_SUBLIMATION]
01:36 -!- mgray [~mgray@li226-224.members.linode.com] has joined #go-nuts
01:40 -!- bickfordb [~bran@70-36-197-162.dsl.dynamic.sonic.net] has joined
#go-nuts
01:48 < nictuku> were type specs in the form of "typeA|typeB" ever
discussed?
01:49 < nictuku> and is there a name for this in language design?
01:50 < kevlar> nictuku: I don't understand the question
01:50 < nictuku> kevlar, https://gist.github.com/997386
01:50 < kevlar> are you asking if you can make a function argument that
allows one of a given list of types?
01:50 < nictuku> no
01:51 < nictuku> I'm asking if this was ever proposed by another naive
person.
01:51 < nsf> looks ugly I must say
01:51 < nsf> but there was a fuzz about something like that I'm sure
01:51 < kevlar> I agree, and it can (and should) be done with interfaces
01:51 < nsf> type safe unions or something
01:51 < nsf> variant types
01:52 < nictuku> kevlar, interfaces don't help with the second example.
01:53 < kevlar> I'm purposefully ignoring the second example because it
falls into the context of generics.
01:53 < nictuku> no, that is clearly not generics.
01:54 < kevlar> how is it not generics?
01:54 < kevlar> it's asking the compiler to generate code for
identically-named functions for different types
01:54 -!- rputikar [~240182H@203-59-121-184.dyn.iinet.net.au] has joined #go-nuts
01:56 < exch> that scenario would be better served by generics
01:56 < nictuku> exch, sure.
01:56 < kevlar> nictuku: I'm going to give you the same advice I always give
when anyone brings up questions relating to the current Go system:
01:57 < nictuku> thanks to nsf I found a few discussions on the list now, by
searching for [union types]
01:57 -!- sunfmin [~sunfmin@115.197.40.182] has joined #go-nuts
01:57 < exch> mm unions would be nice
01:57 < kevlar> Go write code with it, and when you find something that you
can't do, bring it to us.
01:57 < nictuku> kevlar, what an annoying attitude.
01:57 < nsf> or I have a better advice
01:57 < nsf> figure out how would you implement your feature
01:58 < kevlar> nictuku: the problem is, when you're new to Go, you still
think like whatever your favorite language is
01:58 < nsf> because knowing that unveils some stuff sometimes
01:58 < nictuku> kevlar, why are you assuming I'm new to go?
01:58 < kevlar> so you might think that generics are the best way to solve
it, when in actuality you wouldn't go about it like that at all in Go.
01:58 < nictuku> nsf, that's a good advise.
01:59 < nictuku> kevlar, you're adopting the usual tone of this channel,
which is to try to patronize everyone by saying "you're not thinking the go way,
which is the right way".  Stop doing that.
01:59 < kevlar> nictuku: since you're not one of the inventors of the
language, I can pretty safely call you "new" to go for some suitable definition of
"new."
02:00 < nictuku> kevlar, you're probably newer to the language than me.  :-P
02:00 < kevlar> nictuku: Doubtful.
02:00 < nsf> haha
02:00 < nsf> who cares who's new, who's not
02:00 < str1ngs> nictuku:
02:00 < nsf> what does it change?
02:00 < nictuku> str1ngs, hi
02:01 < str1ngs> nictuku: apply the language then if you have problems
addres them
02:02 < niemeyer> nictuku: FWIW, it's not just "patronizing" (whatever that
means)..  every language has custom idioms
02:02 < niemeyer> nictuku: So in some cases in may be worth paying attention
when folks say there's a slightly different way to achieve some result
02:03 -!- hallas [~hallas@x1-6-30-46-9a-b2-c5-1f.k891.webspeed.dk] has quit [Ping
timeout: 260 seconds]
02:03 < str1ngs> niemeyer: and often that way is alot easier then you
originally envisioned.
02:03 < nictuku> niemeyer, sure.  I'm all ears.  How would you write the
sort package to be able to sort on all builtin types?
02:03 < kevlar> with generics.
02:03 < nictuku> kevlar, is that available?
02:03 < kevlar> because then it can work on non-basic types too.
02:03 < nictuku> no.
02:03 < kevlar> !gofaq generics
02:03 < GoBIR> kevlar: Q. generics -
http://golang.org/doc/go_faq.html#generics
02:04 < niemeyer> nictuku: I would use the sort package.
02:05 < niemeyer> nictuku: Rather than writing it.
02:05 < nictuku> niemeyer, can you use it as is to sort []byte without
having to write boiler plate?
02:07 < nictuku> kevlar, generics is a different scope of what I'm
discussing (note, I'm not even proposing).
02:07 < niemeyer> nictuku: I would write the three functions which take to
sort whatever type I want, in less time it's taking to debate that with you.
02:08 < nictuku> I'm sorry for using your time.
02:09 < niemeyer> nictuku: I wasn't blaming you for using my time, I was
using the time of our conversation as a time reference.
02:10 < niemeyer> nictuku: Explaining something to someone on IRC and then
blame *them* for that would be pretty strange.
02:11 < kevlar> I think what you are proposing is essentially iterated
generics.
02:11 < nictuku> It sounded strange.
02:11 < niemeyer> nictuku: That's because you misunderstood what I meant.
02:12 < niemeyer> nictuku: But in essence I was answering your precise
question.
02:14 < nictuku> it turns out this is being worked on by the team already.
02:14 < nictuku> s/worked on/considered/
02:15 < nictuku> maybe I could help.  yay.
02:22 < niemeyer> nictuku: That would be awesome
02:33 -!- alexc [~alexc@unaffiliated/alexc] has joined #go-nuts
02:38 -!- bickfordb [~bran@70-36-197-162.dsl.dynamic.sonic.net] has quit [Ping
timeout: 260 seconds]
02:47 -!- wwkeyboard [~wwkeyboar@75-1-145-222.lightspeed.snantx.sbcglobal.net] has
joined #go-nuts
02:55 -!- foocraft [~ewanas@78.101.66.140] has quit [Quit: Leaving]
02:58 -!- Omnivore [~Omnivore@adsl-75-18-198-192.dsl.pltn13.sbcglobal.net] has
joined #go-nuts
02:58 -!- foocraft [~ewanas@78.101.66.140] has joined #go-nuts
03:15 < Omnivore> anyone here familiar with installing packages on windows 7
via goinstall?
03:18 -!- rputikar [~240182H@203-59-121-184.dyn.iinet.net.au] has quit [Quit:
rputikar]
03:24 < Ekspluati> Omnivore, I've used it once
03:24 < Omnivore> did you have trouble with the paths (having both \ and /)?
03:25 < Ekspluati> No if I remember correctly
03:25 -!- wwkeyboard [~wwkeyboar@75-1-145-222.lightspeed.snantx.sbcglobal.net] has
quit [Quit: wwkeyboard]
03:26 < Omnivore> it seems like gopack worked ok, but the very next command,
looks like a file copy, bombed out
03:27 < Omnivore> I manually copied the .a file over to the pkg/xxx dir but
unsure if its usable or if I'm doing something really wrong
03:28 < nictuku> sorry to resurrect the union types subject, but from what I
see the team is unsure if union types would help that much, saying only things the
ast package would benefit.  But I disagree, and documented a few more cases here
https://gist.github.com/997386.
03:28 -!- wwkeyboard [~wwkeyboar@75-1-145-222.lightspeed.snantx.sbcglobal.net] has
joined #go-nuts
03:29 < nictuku> strconv, maybe json, and several other packages could get
their implementation and maybe interfaces simplified.
03:34 < nictuku> hmm actually all my points were already raised before.  all
of them.
03:34 < nictuku> rsc even says "I'm skeptical thatit would include an error
for a missing case in a type switch."
03:37 -!- tobym [~tobym@cpe-72-229-2-6.nyc.res.rr.com] has quit [Ping timeout: 258
seconds]
03:39 -!- nictuku [~nict@unaffiliated/nictuku] has quit [Quit: .]
03:46 -!- hargettp [~hargettp@pool-71-184-185-93.bstnma.east.verizon.net] has quit
[Quit: Leaving...]
03:47 -!- alexc [~alexc@unaffiliated/alexc] has quit [Quit: WeeChat 0.3.4]
03:49 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
03:56 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined
#go-nuts
03:58 -!- bickfordb [~bran@70-36-197-162.dsl.dynamic.sonic.net] has joined
#go-nuts
04:02 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Read error:
Connection reset by peer]
04:03 -!- bickfordb [~bran@70-36-197-162.dsl.dynamic.sonic.net] has quit [Ping
timeout: 260 seconds]
04:04 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
04:12 -!- rejb [~rejb@unaffiliated/rejb] has quit [Disconnected by services]
04:12 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
04:16 -!- Ekspluati [5b9a0fda@gateway/web/freenode/ip.91.154.15.218] has quit
[Ping timeout: 252 seconds]
04:16 -!- grncdr [~stephen@sdo.csc.UVic.CA] has quit [Read error: Operation timed
out]
04:24 -!- wwkeyboard [~wwkeyboar@75-1-145-222.lightspeed.snantx.sbcglobal.net] has
quit [Quit: wwkeyboard]
04:33 -!- adlan [~adlan@175.138.37.74] has joined #go-nuts
04:41 -!- angasule [~angasule@190.2.33.49] has quit [Remote host closed the
connection]
04:50 -!- alexc [~alexc@unaffiliated/alexc] has joined #go-nuts
05:15 -!- telexicon [~telexicon@unaffiliated/chowmeined] has quit [Read error:
Connection reset by peer]
05:16 -!- telexicon [~telexicon@unaffiliated/chowmeined] has joined #go-nuts
05:17 -!- telexicon_ [~telexicon@c-67-160-127-145.hsd1.wa.comcast.net] has joined
#go-nuts
05:20 -!- telexicon__ [~telexicon@c-67-160-127-145.hsd1.wa.comcast.net] has joined
#go-nuts
05:20 -!- telexicon [~telexicon@unaffiliated/chowmeined] has quit [Ping timeout:
252 seconds]
05:23 -!- telexicon_ [~telexicon@c-67-160-127-145.hsd1.wa.comcast.net] has quit
[Ping timeout: 252 seconds]
05:24 -!- bugQ [~bug@c-67-186-255-54.hsd1.ut.comcast.net] has quit [Remote host
closed the connection]
05:51 -!- niemeyer [~niemeyer@200-102-196-125.pltce701.dsl.brasiltelecom.net.br]
has quit [Ping timeout: 240 seconds]
06:02 -!- pamera [~Pam@c-76-102-255-99.hsd1.ca.comcast.net] has left #go-nuts []
06:16 -!- ios_ [~ios@180.191.134.141] has joined #go-nuts
06:20 -!- photron [~photron@port-92-201-136-197.dynamic.qsc.de] has joined
#go-nuts
06:22 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit
[Ping timeout: 276 seconds]
06:33 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts
06:34 -!- noam [noam@87.69.42.61.cable.012.net.il] has quit [Ping timeout: 250
seconds]
06:36 -!- ronnyy [~quassel@p4FF1C512.dip0.t-ipconnect.de] has joined #go-nuts
06:40 -!- noam [noam@87.69.42.61.cable.012.net.il] has joined #go-nuts
06:42 -!- adlan [~adlan@175.138.37.74] has quit [Read error: Connection timed out]
06:43 -!- adlan [~adlan@175.138.37.74] has joined #go-nuts
06:44 -!- ronnyy [~quassel@p4FF1C512.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
06:44 -!- ronnyy [~quassel@p4FF1C512.dip0.t-ipconnect.de] has joined #go-nuts
06:57 -!- coderendezvous [~coderende@adsl-98-66-2-41.mem.bellsouth.net] has joined
#go-nuts
06:59 -!- adlan [~adlan@175.138.37.74] has quit [Ping timeout: 260 seconds]
07:01 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal]
07:03 -!- adlan [~adlan@175.138.37.74] has joined #go-nuts
07:07 -!- sebastianskejoe [~sebastian@89.249.0.154] has joined #go-nuts
07:12 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has joined #go-nuts
07:15 -!- coderendezvous [~coderende@adsl-98-66-2-41.mem.bellsouth.net] has quit
[Quit: Leaving]
07:29 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
07:40 -!- mgray [~mgray@li226-224.members.linode.com] has quit [Quit: Lost
terminal]
07:40 -!- adlan [~adlan@175.138.37.74] has quit [Ping timeout: 240 seconds]
07:41 -!- adlan [~adlan@175.138.37.74] has joined #go-nuts
07:44 -!- ShadowIce
[~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has joined
#go-nuts
07:44 -!- ShadowIce
[~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has quit
[Changing host]
07:44 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
07:48 -!- georgezhou [480ee599@gateway/web/freenode/ip.72.14.229.153] has joined
#go-nuts
07:51 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has quit [Remote host closed the connection]
07:51 -!- ronnyy [~quassel@p4FF1C512.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
08:00 -!- Tv [~Tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 248
seconds]
08:02 -!- adlan [~adlan@175.138.37.74] has quit [Read error: Connection timed out]
08:03 -!- adlan [~adlan@175.138.37.74] has joined #go-nuts
08:07 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 246 seconds]
08:10 -!- Ekspluati [5b9a0fda@gateway/web/freenode/ip.91.154.15.218] has joined
#go-nuts
08:21 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
08:23 -!- Adys [~Adys@unaffiliated/adys] has quit [Read error: Connection reset by
peer]
08:24 -!- mikespook [~mikespook@219.137.234.156] has quit [Ping timeout: 240
seconds]
08:24 -!- mikespook [~mikespook@183.47.230.7] has joined #go-nuts
08:28 < Omnivore> Where can I find a good VMware-player image to use as base
for go experimentation/development?
08:31 < taruti> why do you need vmware?
08:32 < Omnivore> I run windows and the windows build tools for go are a bit
on the iffy side
08:35 -!- alexc [~alexc@unaffiliated/alexc] has quit [Quit: WeeChat 0.3.4]
08:40 -!- Ekspluati_ [5b9a0fda@gateway/web/freenode/ip.91.154.15.218] has joined
#go-nuts
08:43 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.5]
08:43 -!- Ekspluati [5b9a0fda@gateway/web/freenode/ip.91.154.15.218] has quit
[Ping timeout: 252 seconds]
09:00 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has joined #go-nuts
09:04 -!- adlan [~adlan@175.138.37.74] has quit [Ping timeout: 276 seconds]
09:08 -!- adlan [~adlan@175.138.37.74] has joined #go-nuts
09:13 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout:
608 seconds]
09:17 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has joined
#go-nuts
09:21 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
09:28 -!- adlan [~adlan@175.138.37.74] has quit [Remote host closed the
connection]
09:41 -!- huin [~huin@91.85.171.238] has joined #go-nuts
09:43 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
09:44 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
09:46 -!- adlan [~adlan@175.138.37.74] has joined #go-nuts
09:47 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
09:48 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
09:52 -!- TheMue [~TheMue@p5DDF753A.dip.t-dialin.net] has joined #go-nuts
09:55 -!- ithkuil [~marko@host27-203-dynamic.27-79-r.retail.telecomitalia.it] has
joined #go-nuts
09:57 -!- Omnivore [~Omnivore@adsl-75-18-198-192.dsl.pltn13.sbcglobal.net] has
quit [Read error: Connection reset by peer]
09:58 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
09:59 < napsy> Hello.  Can I cast a map to a structure?
10:01 < Ekspluati_> napsy, I don't think so.
10:03 -!- Omnivore [~Omnivore@adsl-75-18-198-192.dsl.pltn13.sbcglobal.net] has
joined #go-nuts
10:04 < TheMue> napsy: How should this work?  Any key representing an
element of the struct?
10:05 < napsy> TheMue: yes, I'm decoding a JSON data and need to map data to
structures
10:05 < napsy> where the JSCON data has an array of different "structure"
representations
10:06 < TheMue> napsy: Why the map?  Doesn't the json package work for you?
10:06 < napsy> oh, there's Unmarshall
10:06 < napsy> maybe this is it
10:07 < napsy> hm but I already decoded the data and get a map[string]
string object
10:07 -!- ExsysTech [~ExsysTech@50-46-213-60.evrt.wa.frontiernet.net] has quit
[Read error: Connection reset by peer]
10:07 < TheMue> OK, you could create the struct variable first, then range
over the map and use the reflect package.
10:08 < TheMue> In both cases the elements of the struct have to be exported
(uppercased first char).
10:08 < napsy> yes I understand that ...  well I'll try with reflect then
10:08 -!- edsrzf [~edsrzf@122-61-221-144.jetstream.xtra.co.nz] has quit [Remote
host closed the connection]
10:09 -!- ExsysTech [~ExsysTech@50-46-213-60.evrt.wa.frontiernet.net] has joined
#go-nuts
10:10 < napsy> http://pastie.org/private/k9jliylq5b0a7y3nhrkyg
10:10 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has quit [Remote
host closed the connection]
10:10 < napsy> I have this data, the problem is with "Steps" because the
json parser returns a type of map[string] map[string]string
10:10 < napsy> but I want to map the steps in the table to structures.
10:11 < napsy> There probably isn't an automated way of doing this, isn't
it?
10:12 -!- vdrab [~vdrab@pd36944.kyotnt01.ap.so-net.ne.jp] has joined #go-nuts
10:16 -!- vdrab [~vdrab@pd36944.kyotnt01.ap.so-net.ne.jp] has quit [Client Quit]
10:18 -!- th0re [~thre@80.187.147.77] has joined #go-nuts
10:20 < TheMue> napsy: AFAIK no, but the range and reflect way.
10:23 < napsy> ok thanks
10:28 -!- th0re [~thre@80.187.147.77] has quit [Ping timeout: 240 seconds]
10:29 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
10:29 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has joined #go-nuts
10:32 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
10:34 -!- boscop [~boscop@unaffiliated/boscop] has quit [Read error: Connection
reset by peer]
10:35 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
10:36 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
10:41 -!- boscop [~boscop@unaffiliated/boscop] has joined #go-nuts
10:42 -!- rputikar [~240182H@203-59-121-184.dyn.iinet.net.au] has joined #go-nuts
10:44 -!- alexc [~alexc@unaffiliated/alexc] has joined #go-nuts
10:50 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
10:50 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has quit [Read
error: Connection reset by peer]
10:51 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
10:52 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has joined #go-nuts
10:54 -!- rputikar [~240182H@203-59-121-184.dyn.iinet.net.au] has quit [Quit:
rputikar]
11:09 -!- Project_2501 [~Marvin@82.84.85.7] has joined #go-nuts
11:10 -!- noam [noam@87.69.42.61.cable.012.net.il] has quit [Ping timeout: 240
seconds]
11:14 -!- sebastianskejoe [~sebastian@89.249.0.154] has quit [Quit: Lost terminal]
11:14 -!- gummibr [~gummibr@dslb-088-067-161-012.pools.arcor-ip.net] has joined
#go-nuts
11:19 -!- foocraft [~ewanas@78.101.66.140] has quit [Ping timeout: 240 seconds]
11:28 -!- noam [noam@87.69.42.61.cable.012.net.il] has joined #go-nuts
11:31 -!- gummibr [~gummibr@dslb-088-067-161-012.pools.arcor-ip.net] has quit
[Ping timeout: 260 seconds]
11:32 -!- gummibr [~gummibr@dslb-088-067-161-012.pools.arcor-ip.net] has joined
#go-nuts
11:40 -!- Kissaki [~Kissaki@tango076.server4you.de] has quit [Read error:
Connection reset by peer]
11:43 -!- alexc [~alexc@unaffiliated/alexc] has quit [Quit: WeeChat 0.3.4]
11:44 -!- alexc [~alexc@unaffiliated/alexc] has joined #go-nuts
11:45 -!- hargettp [~hargettp@pool-71-184-185-93.bstnma.east.verizon.net] has
joined #go-nuts
11:45 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
11:45 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
11:53 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
11:53 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
11:56 -!- coudX [~coud@81.25.16.87] has joined #go-nuts
12:00 -!- rputikar [~240182H@203-59-121-184.dyn.iinet.net.au] has joined #go-nuts
12:01 -!- Ekspluati_ [5b9a0fda@gateway/web/freenode/ip.91.154.15.218] has quit
[Quit: Page closed]
12:03 -!- noam [noam@87.69.42.61.cable.012.net.il] has quit [Ping timeout: 260
seconds]
12:04 -!- ios_ [~ios@180.191.134.141] has quit [Quit: Leaving]
12:09 -!- noam [noam@87.69.42.61.cable.012.net.il] has joined #go-nuts
12:10 -!- wwkeyboard [~wwkeyboar@75-1-145-222.lightspeed.snantx.sbcglobal.net] has
joined #go-nuts
12:10 -!- alexc [~alexc@unaffiliated/alexc] has quit [Quit: WeeChat 0.3.4]
12:14 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
12:15 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
12:19 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
12:19 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
12:22 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
12:22 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined
#go-nuts
12:24 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
12:26 -!- Paradox924X [~Paradox92@c-68-35-229-34.hsd1.fl.comcast.net] has quit
[Ping timeout: 246 seconds]
12:29 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
12:29 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
12:30 -!- hallas [~hallas@x1-6-30-46-9a-b2-c5-1f.k891.webspeed.dk] has joined
#go-nuts
12:41 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
12:41 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
12:45 -!- noam [noam@87.69.42.61.cable.012.net.il] has quit [Read error:
Connection reset by peer]
12:45 -!- noam [noam@87.69.42.61.cable.012.net.il] has joined #go-nuts
12:46 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
12:46 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
12:49 -!- cenuij [~cenuij@105.116.26.93.rev.sfr.net] has joined #go-nuts
12:49 -!- cenuij [~cenuij@105.116.26.93.rev.sfr.net] has quit [Changing host]
12:49 -!- cenuij [~cenuij@base/student/cenuij] has joined #go-nuts
12:54 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
12:55 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
12:56 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
12:59 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
13:03 -!- noam [noam@87.69.42.61.cable.012.net.il] has quit [Read error:
Connection reset by peer]
13:03 -!- noam [noam@87.69.42.61.cable.012.net.il] has joined #go-nuts
13:05 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host
closed the connection]
13:39 -!- sebastianskejoe [~sebastian@89.249.0.154] has joined #go-nuts
13:50 -!- gummibr [~gummibr@dslb-088-067-161-012.pools.arcor-ip.net] has quit
[Ping timeout: 255 seconds]
13:51 -!- gummibr [~gummibr@dslb-088-067-161-012.pools.arcor-ip.net] has joined
#go-nuts
13:54 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts
14:04 -!- tobym [~tobym@cpe-72-229-2-6.nyc.res.rr.com] has joined #go-nuts
14:05 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit
[Ping timeout: 264 seconds]
14:06 -!- sebastianskejoe [~sebastian@89.249.0.154] has quit [Quit: Lost terminal]
14:12 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
14:16 < KBme> hi
14:16 < KBme> i'm having troubles compiling the release
14:16 < KBme> go/src/cmd/gc/go.h:1148:6: note: expected 'char *' but
argument is of type 'const char *'
14:16 < KBme> also, cc1: warnings being treated as errors
14:17 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has joined
#go-nuts
14:18 < KBme> http://paste.pocoo.org/show/397127/
14:24 < KBme> ok, well, the tip is compiling fine
14:25 -!- brtk_ [~brtk@c83-248-35-158.bredband.comhem.se] has joined #go-nuts
14:26 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal]
14:28 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has quit [Quit:
twolfe18]
14:35 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
14:35 < KBme> but it's buggy
14:36 < KBme> damn it
14:44 -!- moraes [~moraes@189.103.188.201] has quit [Ping timeout: 255 seconds]
14:45 -!- bugQ [~bug@c-67-186-255-54.hsd1.ut.comcast.net] has joined #go-nuts
14:49 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts
14:51 < str1ngs> KBme: what version of gcc?
14:52 -!- ronnyy [~quassel@p4FF1C512.dip0.t-ipconnect.de] has joined #go-nuts
14:52 < KBme> 4.5.2
14:52 < str1ngs> KBme: and bison?
14:53 < KBme> 2.5
14:53 < str1ngs> iirc that a bug in bison 2.5
14:53 < KBme> i removed -Werr from quietgcc.bash and the installation
completed fine
14:53 < str1ngs> tip has a fix for it.  so you will have to sue that for now
14:53 < str1ngs> or that
14:53 < KBme> ☺
14:53 < str1ngs> or remove -Werror
14:53 < KBme> sorry, that
14:54 < KBme> i don't remember all the stupid gcc flags
14:54 < str1ngs> I'm not sure if this is a bug with bison yet so do not
qoute me on it
14:54 < str1ngs> -Werror is very strict but intended I think
14:54 < KBme> well, tip does have a fix for it so that's fine, but tip had
an other bug so i couldn't use it
14:54 < str1ngs> what bugs?
14:58 < KBme> not really bugs
14:58 < KBme> more like the package I'm trying to install wouldn't compile
with it
14:59 < str1ngs> KBme: ok turns out the bison issues was a go bug that shows
up with bison 2.5.  so that is a proper fix
15:00 < str1ngs> http://code.google.com/p/go/issues/detail?id=1843
15:00 < str1ngs> so maybe that fix should be back ported to release.
15:00 < str1ngs> I'll mention it in the issue
15:02 -!- wwkeyboard [~wwkeyboar@75-1-145-222.lightspeed.snantx.sbcglobal.net] has
quit [Quit: wwkeyboard]
15:04 -!- bickfordb [~bran@70-36-197-162.dsl.dynamic.sonic.net] has joined
#go-nuts
15:04 < str1ngs> KBme: I updated the issue, but my guess is removing -WError
for now until a new release is the best option
15:05 < str1ngs> as for the other packages I try to push fixes upstream for
those if I can.  generally gofix solves most of it
15:07 < str1ngs> KBme: if its just one package I can look at it quickly if
you like?
15:08 -!- tobym [~tobym@cpe-72-229-2-6.nyc.res.rr.com] has quit [Ping timeout: 260
seconds]
15:09 < KBme> yeah, i'm fixing the packages right now
15:09 < str1ngs> ok
15:09 < KBme> and submitting bugreports as I go
15:09 < str1ngs> nice, thank you
15:10 < KBme> i'm trying to install bitbucket.com/mpl/xplor
15:11 -!- gummibr [~gummibr@dslb-088-067-161-012.pools.arcor-ip.net] has quit
[Ping timeout: 240 seconds]
15:12 -!- gummibr [~gummibr@dslb-088-067-161-012.pools.arcor-ip.net] has joined
#go-nuts
15:12 < str1ngs> is that right say unknown repositroy
15:13 < KBme> uhh
15:13 < KBme> https://bitbucket.org/mpl/xplor/wiki/Home
15:13 -!- aho [~nya@fuld-590c7632.pool.mediaWays.net] has joined #go-nuts
15:13 < KBme> should be, yeah
15:14 < str1ngs> hmm strange could have been a white space
15:18 -!- wwkeyboard [~wwkeyboar@75-1-145-222.lightspeed.snantx.sbcglobal.net] has
joined #go-nuts
15:18 < str1ngs> goplan9.googlecode.com/hg/plan9/client seems to be the
problem
15:18 < str1ngs> KBme: gofix dial.go
15:18 < str1ngs> should resolve that
15:19 < KBme> yes
15:19 < KBme> ah
15:19 < KBme> well i did it manually
15:19 < KBme> but it might not be working
15:21 < KBme> yeah, i did the same thing
15:23 < str1ngs> ya might be easier to clone those locally for now and
install them
15:23 < str1ngs> but the name spaces might break
15:23 < str1ngs> I pushed the plan9 fix to github
15:24 -!- nictuku [~nict@unaffiliated/nictuku] has joined #go-nuts
15:24 < str1ngs> man I such with hg hehe
15:24 < str1ngs> suck*
15:24 -!- sunfmin [~sunfmin@115.197.40.182] has quit [Quit: sunfmin]
15:25 < KBme> me too ☺
15:25 < KBme> huh to github?
15:25 < KBme> i submitted the fix as a bugreport
15:25 < str1ngs> there was no fork option for plan9 package
15:25 < KBme> also have forked xplor and will make a pull request now that i
know it works
15:26 < str1ngs> ok thanks saves me making a bitbucket account
15:27 < KBme> sucks that he doesn't have the issue tracker enabled though,
seems like a big overkill to have to fork to submit a patch
15:27 < str1ngs> KBme: who is acme btw been meaning to try it out
15:27 < KBme> who?
15:27 < str1ngs> how*
15:27 < KBme> where?  what?
15:27 < KBme> oh
15:27 < KBme> acme is the most awesome ide ☺
15:27 -!- gummibr [~gummibr@dslb-088-067-161-012.pools.arcor-ip.net] has quit
[Ping timeout: 252 seconds]
15:28 < str1ngs> I just woke up, cut me some slack.  pumping dark roast into
me still :P
15:28 < KBme> i've been using it for something like 10 years now
15:28 < KBme> i always try the new fad ide
15:28 -!- gummibr [~gummibr@dslb-088-067-161-012.pools.arcor-ip.net] has joined
#go-nuts
15:28 < KBme> and always go back to acme
15:28 < KBme> it's fast and usefull
15:28 < taruti> acme <3
15:28 < KBme> with no useless stupid features
15:28 < str1ngs> what OS are you using I found it hard to find linux package
for my distro
15:28 < KBme> there is no package, just use p9p
15:28 < taruti> str1ngs: just use p9p
15:28 < KBme> it installs just like go
15:29 < KBme> swtch.com
15:29 < str1ngs> oh nice
15:29 < str1ngs> will check it out
15:29 < KBme> though xplor is very much needed in these modern days where a
project has so many directories
15:30 < str1ngs> what is p9p?
15:30 < taruti> I actually prefer a win with a few strategical ls
15:30 -!- tobym [~tobym@cpe-72-229-2-6.nyc.res.rr.com] has joined #go-nuts
15:31 -!- bugQ [~bug@c-67-186-255-54.hsd1.ut.comcast.net] has quit [Ping timeout:
260 seconds]
15:31 < KBme> str1ngs, plan9ports, the plan9 userspace for lunix systems
15:31 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal]
15:31 < str1ngs> ah ok thought it was plan9 userspace but was not sure
15:31 < KBme> yep
15:32 < KBme> it takes a bit of getting used to for someone comming from the
modern unix desktop world
15:32 < KBme> there is no real gui
15:32 < KBme> just windows and text
15:32 < KBme> and chording
15:33 < str1ngs> ok I have p9p but how do I install acme now?
15:33 < KBme> install p9p
15:33 < KBme> then you'll have acme
15:34 < KBme> it's part of p9p
15:34 < str1ngs> doh
15:34 < KBme> ☺
15:34 < str1ngs> its installed then :P
15:34 < KBme> so type acme ;)
15:34 < str1ngs> actuall I'm use to used to using just consoles
15:34 < str1ngs> yay it works!
15:34 -!- Tv [~Tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts
15:35 -!- Tv [~Tv@cpe-76-168-227-45.socal.res.rr.com] has left #go-nuts []
15:35 -!- Tv [~Tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts
15:35 < str1ngs> thanks I was looking at acme-sac this was much easier
15:35 < KBme> 'well, acme-sac is portable which is nice about it
15:36 < KBme> but it doesn't tie into the underlying os as well since it
runs in the inferno virtual machine
15:37 < str1ngs> this is going to sound silly.  is there a vi mode plugin?
15:37 < str1ngs> or vim as you wil
15:37 < str1ngs> will*
15:37 < taruti> :D
15:37 < taruti> no :D
15:37 < str1ngs> no!
15:37 < str1ngs> I'm lost without vi like bindings :(
15:38 < str1ngs> I even use set -o vi in bash
15:38 < KBme> lol
15:38 < str1ngs> I will still try it though :P
15:38 < KBme> yeah, well, this is a graphical editor
15:41 < aiju> set -o vi drives me crazy
15:43 < str1ngs> ya I dont expect most people to use set -o vi
15:46 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
15:46 < str1ngs> I actually use set editing-mode vi . for .inputrc so I get
vi bindings in most things readline
15:46 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
15:47 < aiju> you could try adding vi key bindings to 9term
15:47 < aiju> but rob is going to kill you
15:48 < str1ngs> haha
15:48 < str1ngs> hai I have a vi patch.  please accept!
15:48 < aiju> *getoutshotgun* BAM HEADSHOT
15:49 < str1ngs> you crazy plan9 guys!
15:52 < aiju> we have ported doom
15:52 < aiju> now we're all violent assholes
15:53 < str1ngs> whats the right way to throttle a for loop that uses
channels?  or is select enough?
15:57 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 246 seconds]
15:59 -!- gummibr [~gummibr@dslb-088-067-161-012.pools.arcor-ip.net] has quit
[Ping timeout: 276 seconds]
16:00 -!- hpvincent [~zig@nap13-11-83-156-121-34.fbx.proxad.net] has joined
#go-nuts
16:00 < KBme> throttle?
16:01 -!- gummibr [~gummibr@dslb-088-067-161-012.pools.arcor-ip.net] has joined
#go-nuts
16:02 < str1ngs> I'll put a test together will be easier to explain
16:03 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 248 seconds]
16:03 -!- tobym [~tobym@cpe-72-229-2-6.nyc.res.rr.com] has quit [Ping timeout: 258
seconds]
16:04 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
16:06 -!- DerHorst [~Horst@e177131018.adsl.alicedsl.de] has joined #go-nuts
16:08 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 248 seconds]
16:08 < str1ngs> actually throttle is the wrong term for this issue I'm
having
16:08 < str1ngs> https://gist.github.com/997898
16:08 < str1ngs> this is a simple netchan client server
16:09 < str1ngs> if I do not sleep at the end of the client.  the channel
seems to truncate
16:10 < str1ngs> netchan export: value decode:EOF; type chan string
16:10 < str1ngs> is the error I get
16:10 < str1ngs> if I sleep for one second its fine.
16:11 -!- telexicon [~telexicon@c-67-160-127-145.hsd1.wa.comcast.net] has quit
[Ping timeout: 252 seconds]
16:12 < Tv> str1ngs: sounds like you want Drain or its friends
16:13 < str1ngs> tried that does not see to help
16:13 < str1ngs> as fair as I can tell the client exits before the channel
properly sends
16:14 < str1ngs> so I need to figure out how to verify message <- m was
complete
16:14 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
16:14 < str1ngs> but I would think that would block?
16:15 -!- sacho [~sacho@90.154.221.153] has joined #go-nuts
16:15 < Tv> message <- m will block long enough for the netchan machinery
to read it; not long enough for it to make it out to tcp
16:15 < Tv> Drain
16:16 < str1ngs> import has no drain option though
16:16 < str1ngs> and even when I use drain in the server for loop I get the
same result
16:16 < Tv> then you need the client to wait for a response
16:16 < Tv> what's "messages"?
16:16 < str1ngs> just a string
16:17 < Tv> you seem to be using it as both something .Push and a <-chan
16:17 < str1ngs> I save the string into a string vector on the server
16:19 < str1ngs> I guess I need a ok channel?
16:19 < Tv> how about you explain what you're trying to do?
16:20 < str1ngs> I have a server that listens on a unix socket.  and a
client that sends it messages
16:20 < str1ngs> the messages are plain strings.  which the sever then
stores in a string vector
16:20 < str1ngs> the messages are sent via netchan.
16:21 < Tv> you're describing how not what
16:21 < Tv> perhaps there's an easier way than manually building
acknowledgement mechanisms on top of netchan
16:21 < Tv> such as rpc
16:22 < str1ngs> I'd rathe not use rpc.  because netchan provides more
transport mechanisms
16:22 < str1ngs> ie the server can run on tcp etc
16:23 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
16:23 < str1ngs> right now I just happen to use unix sockets.  but if I
change to tcp i get the same problem.
16:23 < Tv> you can run rpc on any ReadWriteCloser
16:23 -!- jtoy [~jtoy@li167-197.members.linode.com] has joined #go-nuts
16:23 < str1ngs> using channels though?
16:23 -!- niemeyer [~niemeyer@200-102-196-125.pltce701.dsl.brasiltelecom.net.br]
has joined #go-nuts
16:23 < Tv> i don't understand what you mean by that sentence
16:24 < jtoy> im learning go now, why does a new language like go require to
explicitly type return val at the end of functions?
16:24 < str1ngs> Tv: can I use channels with rpc?
16:24 < Tv> str1ngs: not for the actual data passed as args or return
16:24 < Tv> str1ngs: for between your rpc handler and the rest of your app,
yes
16:25 < Tv> str1ngs: you can't put chans inside netchan messages either
16:25 < str1ngs> anyways.  lets say this is a exercise in go and netchan
16:26 < Tv> str1ngs: then you need to build an ack mechanism, if that's what
you need
16:26 < str1ngs> ok that makes more sense then
16:26 < str1ngs> but not what I would expect.
16:27 < Tv> str1ngs: you'll find netchan is very limited, and you'll hit the
limits fairly quickly if you try to go against the basics at all
16:27 < str1ngs> well I would think the basics are much like normally
channels no?
16:27 < Tv> normal channels never have their transport disappear
16:29 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
16:29 -!- wallerdev [~wallerdev@72.44.102.30] has joined #go-nuts
16:30 < str1ngs> ack channel is not that bad now that I think about it
16:30 < str1ngs> I'll play with that then think more on if rpc would be
better for this.
16:31 < str1ngs> this is not a serious project was just an excuse to play
with netchan
16:31 < Tv> i was there some months ago, got frustrated with netchan..  ;)
16:31 < str1ngs> well I kinda like the idea of IPC with netchan
16:32 < str1ngs> atleast when I use a socket
16:34 -!- brandini [~orbit@metabug/brandon] has quit [Ping timeout: 240 seconds]
16:34 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
16:37 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
16:37 -!- bickfordb [~bran@70-36-197-162.dsl.dynamic.sonic.net] has quit [Ping
timeout: 264 seconds]
16:38 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
16:40 -!- niemeyer [~niemeyer@200-102-196-125.pltce701.dsl.brasiltelecom.net.br]
has quit [Ping timeout: 240 seconds]
16:43 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host
closed the connection]
16:43 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts
16:43 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by
peer]
16:47 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has quit [Remote
host closed the connection]
16:48 -!- rputikar [~240182H@203-59-121-184.dyn.iinet.net.au] has quit [Quit:
rputikar]
16:48 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has joined #go-nuts
16:52 < kevlar> str1ngs: I find gob over unix domain sockets work great for
ipc.
16:52 < kevlar> and it's pretty easy to have a goroutine or two monitoring
the socket and passing stuff in and out on a channel.
16:53 -!- brandini [~orbit@adsl-69-221-174-224.dsl.akrnoh.ameritech.net] has
joined #go-nuts
16:53 < Tv> that + call a function on incoming message = rpc
16:53 < Tv> now if you only need one type of message per direction, raw gob
might be neater
16:54 < Tv> but rpc is just darn easy
16:55 -!- tobier_ [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
16:56 -!- tobier [~tobier@c-1c9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
16:57 < str1ngs> kevlar: Tv hmm maybe gob would be better
16:57 < str1ngs> I just took a look at doozer and it uses gob's also
16:58 -!- ako [~nya@fuld-590c67ae.pool.mediaWays.net] has joined #go-nuts
16:59 < str1ngs> I'm still going to play with this netchan for now.  I think
the importer helper connect might be subject to problem with my client.  I'll try
a manual dial see if that also helps
16:59 < Tv> has someone written a locking client on top of doozer yet?
17:00 -!- aho [~nya@fuld-590c7632.pool.mediaWays.net] has quit [Ping timeout: 240
seconds]
17:03 < kevlar> Tv: what do you mean by a locking client?
17:03 < Tv> mutual exclusion with heartbeat etc
17:03 < kevlar> don't you just open/write a file and if you succeed you have
the lock?
17:03 < Tv> and then when you crash?
17:04 < kevlar> oh, duh, that would be a problem.
17:04 < Tv> zookeepers ephemeral idea is nice..  close tcp connection, lose
lock
17:05 < kevlar> you could write a gob with your server ID and a timestamp,
and if your write fails, you retry every X seconds and if the timestamp hasn't
been updated you take over
17:05 < Tv> s/gob/json/ but yeah ;)
17:05 < kevlar> well, can't TCP take like up to 18 minutes to close a TCP
connection that closed uncleanly?
17:06 < Tv> kevlar: you can do pings inside the connection to detect it
faster
17:06 < Tv> kevlar: the real difference is, others wanting the lock don't
need to fiddle with freshness checks, the server does it for them
17:06 < Tv> but i do like doozerd's simplicity
17:07 < kevlar> if anything, you'd want to write a client-side library that
can do various common doozer tasks, like locking.
17:07 < kevlar> s/you/I/
17:07 < Tv> yeah that's what i asked for, does it exist yet ;)
17:07 < Tv> the heroku guys said they kinda have something like that, just
not ready for release
17:07 < kevlar> oh, I thought you were looking for something that ran on the
server that did it.
17:07 < Tv> just saying that's the zk way
17:07 < kevlar> ah.
17:08 < kevlar> doozerd seems really neat.
17:08 < Tv> yea
17:08 < kevlar> I'd be curious to see how it compares to Google's chubby.
17:09 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has joined
#go-nuts
17:17 -!- bickfordb [~bran@70-36-197-162.dsl.dynamic.sonic.net] has joined
#go-nuts
17:21 -!- adlan [~adlan@175.138.37.74] has quit [Ping timeout: 248 seconds]
17:21 -!- adlan [~adlan@175.138.37.74] has joined #go-nuts
17:25 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has quit [Quit:
Computer has gone to sleep.]
17:26 -!- bugQ [~bug@c-67-186-255-54.hsd1.ut.comcast.net] has joined #go-nuts
17:30 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 240 seconds]
17:36 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has quit [Read
error: Operation timed out]
17:36 -!- ronnyy [~quassel@p4FF1C512.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
17:37 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has joined #go-nuts
17:40 -!- gummibr [~gummibr@dslb-088-067-161-012.pools.arcor-ip.net] has quit
[Remote host closed the connection]
17:46 < jtoy> can channels work across go processes?
17:47 < Tv> jtoy: channels only exist inside a go process
17:47 < Tv> jtoy: netchan provides something similar over any bi-directional
stream, but it has more limitations
17:47 < jtoy> does go have some kind of cross language communication?
17:47 < jtoy> ah ok
17:47 < Tv> there's plenty of ways to talk between processes
17:48 < Tv> for cross-language, you probably want HTTP, these days..
17:48 < jtoy> i was wondering if its built into go like erlang
17:48 < nsf> jtoy: for cross language communication there is a go protobuf
library somewhere, afaik
17:48 < jlaffaye> netchan on unix domain socket
17:48 < jtoy> was wondering if i could use it for distributed programming
ala erlang
17:48 < Tv> of course
17:49 < jtoy> ala erlang as its built into the language foundations, which
it sounds like its not in go
17:49 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts
17:49 < bugQ> inter-thread comm is built in, which can be used to very
simply abstract inter-anything else
17:50 < Tv> jtoy: more like, go doesn't tell you there's exactly one way of
doing it
17:51 < Tv> personally, i dislike erlang ipc security model
17:51 < str1ngs> Tv: hmm ya rpc is way better for this . thanks for pushing
me in that direction.
17:51 < Tv> it's a shared secret key, any node can do anything :(
17:51 < jtoy> seems fine, just do the security at the ip level
17:52 < Tv> eww
17:56 < str1ngs> so netchan seems better for persistent connections?
17:56 < Tv> str1ngs: honestly, i have not found a single use case where
netchan made sense all the way through the exercise :(
17:57 < str1ngs> Tv: I'm starting to think that, even though my use case was
probably a poor example
17:57 < str1ngs> but, maybe better to say netchan is still work in progress
17:57 < str1ngs> I see potential there anyways
17:58 -!- tobym [~tobym@cpe-72-229-2-6.nyc.res.rr.com] has joined #go-nuts
17:58 < Tv> str1ngs: yeah i like the streaming idea
17:58 < Tv> it's just very hard to control end of stream etc situation
17:58 < str1ngs> yep
17:58 < Tv> and once you need replies, because you can't pass channels,
you're building rpc on top of netchan
17:58 < jtoy> so what exactly is it that makes go comparable to python?  im
coming from ruby and i want a lang that is fasand great to program in like
python/ruby
17:58 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
17:58 < str1ngs> but when I used permanent connection it was very robust
17:58 < jtoy> one of the fun things about python/ruby is that i dont have to
type out so much extra code
17:58 < Tv> jtoy: go is more comfortable with dynamic datatypes than most
statically typed languages
17:59 < Tv> but nowhere near the convenience of really dynamically typed
languages; it's a tradeoff
17:59 -!- eclark [~eclark@2001:470:1f11:b82:4c5a:d7a5:219:61cc] has joined
#go-nuts
17:59 < str1ngs> jtoy: you get some of the power of dynamic types with
compile time checking . ie a := "foo"
18:00 < Tv> go is pretty darn good at not making you repeat anything the
compiler knows anyway
18:00 < jtoy> yeah ,that is cool, why are there explicit returns in go?
18:00 < bugQ> ya the interface-like binding and type inference makes it feel
more like duck typing, even though it's mostly sugar
18:00 -!- cbeck1 [cbeck@gateway/shell/pdx.edu/x-aemvyygptfuunvnd] has joined
#go-nuts
18:00 -!- Soultake1 [~Soultaker@hell.student.utwente.nl] has joined #go-nuts
18:01 < str1ngs> jtoy: you mean as apposed to inferred return types?
18:01 -!- chressie1 [~chressie@dreggn.in-ulm.de] has joined #go-nuts
18:01 < jtoy> in ruby the last line in a function is the return value, the
compiler cant figure that out?
18:01 -!- bickford1 [~bran@70-36-197-162.dsl.dynamic.sonic.net] has joined
#go-nuts
18:01 -!- Netsplit *.net <-> *.split quits: Soultaker, Natch|, zerohp,
tobier_, bickfordb, SecretAgent, nsf, cbeck, arun, TheSeeker, (+7 more, use
/NETSPLIT to show all of them)
18:01 -!- nsf1 [~nsf@jiss.convex.ru] has joined #go-nuts
18:01 -!- enferex_ [~enferex@users.757.org] has joined #go-nuts
18:02 -!- nsf1 [~nsf@jiss.convex.ru] has quit [Client Quit]
18:02 < str1ngs> it can but you have to remember, that go is designed to
have minimal compile time overhead.
18:02 -!- Netsplit over, joins: SecretAgent
18:02 < Tv> explicit return is more about making sure you didn't screw up
and leave a line out
18:02 -!- Netsplit over, joins: nsf
18:02 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has quit [Quit:
Leaving]
18:02 < str1ngs> its also more readable.  and easier to know what gets
returned just by looking at the signature
18:02 -!- Netsplit over, joins: sacho
18:02 < Tv> even when you return by assigning to named return variable, you
still need to say "return" in go
18:03 -!- awidegreen_ [~quassel@178.63.120.5] has joined #go-nuts
18:03 < str1ngs> even though godoc does not show that in the table of
contents which would be nice.
18:03 < bugQ> jtoy: I have had headaches over that "convenient" feature of
ruby myself, returning something I did not intend
18:03 < jtoy> does go have all the enumerable methods like map/select/reject
familiy of functions?
18:03 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has quit [Ping
timeout: 248 seconds]
18:04 -!- Xenith [~xenith@xenith.org] has joined #go-nuts
18:04 < Tv> jtoy: what do you mean by enumerable methods?
18:04 < jtoy> bugQ: i find that hard to believe though, isnt the last line
where the return goes anyway, can you return somehting then continue to hve code
after the return?
18:04 -!- justinlilly [~justinlil@173-203-200-41.static.cloud-ips.com] has joined
#go-nuts
18:04 < jlaffaye> jtoy: no
18:05 < bugQ> jtoy: no, but you can return something that was calculated
three blocks in, and has to be returned three times.  it gets hard to keep track
of
18:05 < |Craig|> if the last line was the return value, that would conflict
with named return values.  What if you have both?  What if the last line is inside
flow control?
18:05 < jlaffaye> wait?  we dont have something like yield in go, right?
18:06 < jtoy> Tv: for any object or type that implements a comparable method
like (<=>) , then they can run methods like each/ select/reject ,ie stuff
from functional programming
18:06 < jtoy> bugQ: in ruby you can use return alos to force the return
18:06 < |Craig|> jlaffaye: you can use a channel, or just pass a closure
that produces values when asked (and a second return value to signal when its
done)
18:06 < jtoy> |Craig|: yeah, having the return cna still be called, its just
not required
18:07 < jlaffaye> |Craig|: sure :)
18:07 < bugQ> jlaffaye: functions are first-class, so kinda.  yield is just
sugar for calling a func that was passed as an arg
18:07 < Tv> jtoy: only ruby and js cram all those things into every single
object..
18:07 -!- TheSeeker [~n@99-153-250-110.lightspeed.irvnca.sbcglobal.net] has joined
#go-nuts
18:07 < Tv> jtoy: sounds like you are talking just about map/filter
18:07 < jtoy> Tv: true, but on an array/list/hash you need to run those
methods all the time
18:07 < bugQ> jtoy: yes, I often found myself using return explicitly to
avoid confusion.
18:07 < jtoy> Tv: yes, map and filter, same thing
18:08 -!- arun [~arun@unaffiliated/sindian] has joined #go-nuts
18:08 < jtoy> bugQ: I use both ways, for simple functions i dont type
return, for complex stuff with deep if logic i use return
18:08 < str1ngs> jtoy: I'm not sure if comparing go to ruby is a good idea.
when in rome do as the romans do.  seems to be what works best with go
18:08 < jlaffaye> some people dont like return in the middle of a function,
nor continue in a loop.  but I do :)
18:08 < Tv> bugQ: though the yield syntactic sugar is huge, easier control
flow than a callback
18:09 < |Craig|> if you want syntactic sugar, return a channel, then you can
range over it like an iterator.  Its almost like yield
18:09 * bugQ has an engineer's mind, so just prefers explicitude wherever possible
18:09 < jtoy> str1ngs: the reason I am asking is because on the website they
mention python often, and i only know ruby
18:10 < str1ngs> jtoy: the problem is ruby is OO, and go has OO like
features.  ie ruby does not have interfaces as I recall?
18:10 < str1ngs> which are very powerful I think.
18:10 < bugQ> correct, they opt for duck typing
18:10 < Tv> ruby is a weird variant of OO
18:10 < jtoy> str1ngs: no interfaces, isnt that similiar to duck typign
though?
18:11 < jtoy> i sawduck typing and ruby mentioned a few times in go
literature
18:11 < Tv> jtoy: first paragraph of this applies to you & ruby:
http://www.purifymind.com/EmptyCup.htm
18:11 < Tv> jtoy: try to start more from scratch, don't write "ruby in go"
18:11 < jtoy> way too long
18:12 < Tv> o_O "first paragraph"
18:12 < jtoy> ok, its empty now !
18:12 < str1ngs> jtoy: that is the most common pitfall though.  with go you
need to put other languages aside.  and seek the go way.
18:12 < Tv> str1ngs: not just go, *any* paradigm change
18:12 < str1ngs> sure
18:13 < jtoy> str1ngs: yeah, it looks like a cool language , im just trying
to get my head around it, i was playing with clojure the past week which i think
is quite a departure from ruby also
18:13 < Tv> python by c programmers is hideous too
18:13 < Tv> ruby is the odd one out ;)
18:13 < aiju> 20:17 < Tv> python by c programmers is hideous too
18:13 < aiju> do you mean me?
18:13 < bugQ> jtoy: heh, skip clojure and go to a real lisp
18:13 < aiju> i emulate pointers in python by using one-element lists
18:13 < Tv> aiju: the example in my mind currently is autotest
18:13 < Tv> aiju: i do that too, and i'm a hardcore pythonista ;)
18:13 < jtoy> i would like the succinctness of python/ruby but speed of c
languages, that is my allure to go right now
18:14 < Tv> jtoy: oh yes
18:14 < aiju> i prefer c over python and ruby
18:14 < |Craig|> aiju: you don't have to be a c programmer to do that one..
18:14 < Tv> jtoy: not quite there, but close
18:14 < bugQ> jtoy: just realise that you will have to sacrifice at least
some of the meta-power of a scripting language
18:15 < jtoy> clojure seems pretty good in terms of speed with the metapower
18:15 < aiju> Go can do metaprogramming just fine
18:15 < aiju> fmt.Printf and pipe into the compiler
18:15 < bugQ> hee
18:15 < jlaffaye> where is the new garbage collector they promised?  :p
18:15 * jlaffaye hides
18:15 < aiju> i write LISP when i want metaprogramming
18:15 < str1ngs> jlaffaye: let us know when you are done writing it..
thanks :P
18:15 < aiju> and with no serious task i ever really wanted metaprogramming
18:16 < bugQ> jtoy: that's because it is close enough to lisp to handle it
efficiently
18:16 < bugQ> seriously you should at least look at scheme
18:16 < bugQ> if not CL
18:16 < |Craig|> when moving from python to go, I realized I needed a lot
more lines of code, but not really much more text (the lines were short).  It was
kinda like I was forced to write with decent style and produce maintainable
legible code.
18:16 < jlaffaye> oh noes!  :)
18:16 < aiju> python and ruby programmers tend to use map etc all the time
18:17 < jtoy> |Craig|: as the hurdle big?  going from dynamic language to
compiled language?
18:17 < Tv> |Craig|: my big thing in py->go is i miss having same
functions work on multiple data types
18:17 < jtoy> yes, I love map!
18:17 < aiju> Tv: interfaces?
18:17 < aiju> i dislike map
18:17 -!- kevinwatt [~kevin@59-125-147-75.HINET-IP.hinet.net] has joined #go-nuts
18:17 < aiju> i don't use it in python
18:17 < Tv> aiju: more like, try writing your own map() implementation
18:17 < Tv> aiju: interface{} is a huge kludge
18:17 < aiju> using map is like talking chinese to me
18:18 < bugQ> I can understand that analogy
18:18 < Tv> aiju: i don't mean actual map, i mean things that process
arbitrary data
18:18 < jtoy> aiju: not sure how it is in python, but its so useful in ruby,
you never need silly things like for i; i < length; i++
18:18 < aiju> it takes lots of work to write and read and it's most likely
wrong
18:18 < aiju> jtoy: that's not silly
18:18 < jlaffaye> aiju: its funny how the language you are writting in
changes how you code.  for instance in C I worry to minimize the number of
function call even if I know the function is _very_ cheap.  In python most people
just dont care and use map for everything.
18:18 -!- adlan [~adlan@175.138.37.74] has quit [Ping timeout: 260 seconds]
18:19 < aiju> jlaffaye: function calls being expensive is a myth
18:19 < aiju> get that shit out of ya head
18:19 < jtoy> in what situation can map not replace for i ......
18:19 < Tv> it's very rare to see python use map
18:19 < aiju> jtoy: real algorithms
18:19 < Tv> list comprehensions rule
18:19 < aiju> i've programmed K which goes really hardcore with all this
stuff
18:19 < aiju> map, reduce, list comprehensions etc
18:19 < jlaffaye> aiju: I mean what the function does
18:19 < nsf> function calls overhead may cause problems only in very tight
loops
18:19 < nsf> like raytracing or something
18:19 < Tv> anyway, i really wish someone would come up with a way of doing
some kind of generics in go, without making the language suck
18:19 < aiju> and my programs end up being really unreadable
18:19 < aiju> and either wrong or inefficient
18:19 < |Craig|> I use nested and chained list comprehensions all over
python, but I think I only used map once
18:20 < aiju> most likely both
18:20 < nsf> check if ray hits triangle should be inlined
18:20 < aiju> try avoiding computing something twice with map et al.
18:20 < bugQ> jlaffaye: what you are concerned about is what profiling tools
are for
18:20 < aiju> i found it to be very hard.
18:20 < jlaffaye> bugQ: I know I shouldnt be concerned about that but, eh, I
cant help it when writing C :p
18:21 < aiju> you shouldn't think of C as a hurr durr performance language
18:21 < aiju> 20:22 < Tv> aiju: i don't mean actual map, i mean things
that process arbitrary data
18:22 < aiju> i don't need that kind of stuff.  really.
18:22 < aiju> but i'm the kind of persons who happily reimplements hashmaps
in C programs
18:22 < aiju> because the 15 mins i'm working on that hashmap are nothing
compared to the hours working on the serious business
18:23 -!- adlan [~adlan@175.138.37.74] has joined #go-nuts
18:23 < Tv> aiju: i fiddled with writing e.g.  a tiny mapreduce
implementation, and trying to get map & reduce to do anything but strings or
interface{} was just pretty much impossible
18:24 < aiju> yeah, but why?
18:24 < Tv> where as in python they'd get to take & return arbitrary types,
for free
18:24 < Tv> what do you mean why?
18:24 < aiju> type errors in python annoy the fuck out of me
18:24 < aiju> why do you implement mapreduce
18:24 < Tv> aiju: good practise
18:25 < aiju> good ruby practice maybe
18:25 < aiju> not good go practice
18:25 < Tv> ehh
18:25 < Tv> perfect go practise; inherently distributed problem, gets you to
think about error handling, etc
18:25 < aiju> uh
18:25 < aiju> i disagree
18:25 < Tv> feel free to be wrong ;)
18:26 < aiju> reimplementing LISP is not perfect go practice.  period.
18:26 < Tv> aiju: i think you're confusing mapreduce with functional
programming as lisp used the words
18:27 -!- yaniv_ [~alon@xdsl-188-154-4-146.adslplus.ch] has joined #go-nuts
18:27 < jtoy> seems map & reduce is wonderful for everything :) look at
google
18:27 < Tv> jtoy: actually, not, mr is just a simple idiom to understand..
it has frustrating limitations, and reorganizing things a bit gets you nicer
tradeoffs (imo)
18:27 < Tv> and this is what i wanted to play with
18:28 < KBme> hey, Tv, don't expect a statically typed language to be python
18:28 < yaniv_> Hi, I just compiled "Hello, World" on osx 10.5 and the
binary size is 1mb.  Is this normal?  The same thing written in c is only 16kb?
18:28 < jtoy> what are some of the limitations?
18:28 < KBme> you'll cry a lot otherwise
18:28 < Tv> except then i started wanting generics, because writing
foo.(uint64) in all my mr functions was annoying
18:28 < Tv> yaniv_: go is statically linked
18:28 < aiju> yaniv_: yes, it's normal
18:28 -!- alehorst [~alehorst@186.212.214.44] has quit [Ping timeout: 246 seconds]
18:28 < Tv> jtoy: read up on e.g.  caffeine and pregel
18:28 < aiju> yaniv_: it got smaller on Lunix already
18:28 < aiju> jtoy: try to express real life algorithms with it
18:29 < yaniv_> ok, thx guys!
18:29 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:7db6:c2a6:58a6:4b01] has joined
#go-nuts
18:29 < aiju> jtoy: i find it to be very hard, much harder than just using
loops
18:29 < Tv> aiju: i think you're still confusing mapreduce with functional
programming
18:29 < aiju> no i'm not
18:29 < Tv> aiju: you can't replace a mapreduce cluster with a for loop
18:29 < aiju> oh this is about parallelism?
18:31 < aiju> http://en.wikipedia.org/wiki/Mapreduce
18:31 < aiju> ah you mean this thing
18:31 < aiju> i was thinking of map/reduce
18:31 < Tv> which is why i tried to keep saying i don't mean functional
programming
18:31 < aiju> map/reduce isn't strictly functional programming
18:32 -!- mnoel [~mnoel@c-75-65-250-60.hsd1.la.comcast.net] has joined #go-nuts
18:33 < aiju> i'd say you can just use goroutines, channels and netchan for
that kind of stuff
18:34 < Tv> aiju: the bother is having user-pluggable functions to call..
currently go forces you to either pick a datatype (like string) and make all
callers convert back and forth, or do interface{} and suffer that
18:34 < Tv> aiju: i fiddled with reflect a lot, but it's just too painful to
be productive
18:37 < KBme> what you loose on "productivity" side you win on application
stability
18:38 < Tv> KBme: static typing is not a replacement for automated tests..
18:38 < KBme> did i say that?
18:38 < Tv> not you, but many others who say things like you said
18:38 < Tv> i don't find static typing to be a stability bonus
18:39 < Tv> i find it to be an execution speed bonus
18:39 < KBme> also
18:39 < Tv> my python stuff works even when facing half a decade of neglect
;)
18:39 < kevlar> Tv: it's not the neglect that kills it, it's when you or
someone else tries to extend it or update it.
18:39 -!- wwkeyboard [~wwkeyboar@75-1-145-222.lightspeed.snantx.sbcglobal.net] has
quit [Quit: wwkeyboard]
18:39 < jlaffaye> wait?  you lose productivity with static typing?
18:39 < Tv> kevlar: that's what you have tests for
18:40 < aiju> jlaffaye: yeah, entire 15 mins of reimplementing trivial shit
18:40 < kevlar> Tv: also, it's entirely possible to use reflection to call
an arbitrary function without having to pass interface{}s everywhere
18:40 < Tv> kevlar: i know it's possible, i'm just saying it was fairly
painful
18:40 < Tv> kevlar: i do believe reflect can improve, and make it less so
18:41 < kevlar> Tv: just out of curiosity, how recent was your foray into
using reflect for that?
18:41 < Tv> kevlar: for real, about 3 months ago
18:41 < kevlar> do you know if it was before or after the latest refactor?
18:41 < Tv> kevlar: i'm due for a retry soon
18:41 < kevlar> I didn't use it before, so I can't attest to this, but
apparently it got a lot nicer
18:41 -!- vinisterx [~ryan@74-129-201-27.dhcp.insightbb.com] has joined #go-nuts
18:42 < kevlar> it was a lot of type switches, but beyond that it didn't
seem to be too bad when I was writing my XML marshaler.
18:43 < Tv> i think what i want is something like this: func
call_if_you_can(fn interface{}, args interface{}) (retval interface{}, can_call
bool, err os.Error)
18:43 < kevlar> though that has nothing to do with parsing through a
functions arguments and its return value and creating arbitrary values of various
types, so.
18:43 < Tv> not quite that signature
18:43 < Tv> but "call this function if you can make this arg match what it
can take, otherwise give me an error"
18:44 < Tv> totally doable using reflect, i'm sure
18:44 < Tv> but painful to write when you don't know the system 100%
18:44 < kevlar> http://golang.org/pkg/reflect/#Value.Call
18:45 < Tv> kevlar: panics but i could catch that
18:45 < Tv> kevlar: i think that's new..  ok i'm gonna go try it again ;)
18:45 < kevlar> yeah, it definitely panics in just about every error
condition
18:45 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Ping timeout: 276
seconds]
18:46 < kevlar> but (especially for reflection) doing the checks both before
you call and while reflect.Call is doing it might be more expensive than its
worth.
18:46 < Tv> i do want to differentiate between the function panicing and
Call panicing
18:46 < Tv> but that's finetuning
18:46 < kevlar> hack: check if the message starts with "reflect: " lol
18:46 < Tv> i can do proof of concept work with what's there, it seems
18:47 -!- alehorst [~alehorst@201.47.25.63.dynamic.adsl.gvt.net.br] has joined
#go-nuts
18:47 < kevlar> you could probably also look at rpc.Call, as it does
reflection relating to function arguments
18:48 < kevlar> though I think it only does two-argument functions or
something like that
18:48 < Tv> ooh i have some code using .Call already, let's see why i wasn't
100% happy about it..
18:48 -!- pvarga [~pvarga@pool-71-172-108-117.nwrknj.east.verizon.net] has joined
#go-nuts
18:49 < Tv> oh wait this is still from before the last refactor, since gofix
had things to fix..
18:49 < Tv> let's see..
18:49 < chowmeined> is there a cleaner way of turning the keys of a map into
an array/slice than looping through them and building it manually?
18:52 < Tv> chowmeined: i don't think any utility function is provided; as
long as you write it smartly, it'll be just as efficient the way you write it
18:52 < Tv> chowmeined: trick: set right cap from the start
18:53 < pvarga> can you build the array/slice as you re populating the map?
18:53 -!- tncardoso [~thiago@189.59.128.41.dynamic.adsl.gvt.net.br] has joined
#go-nuts
18:54 < Tv> or avoid the need for one; perhaps you should describe the
ultimate goal
18:55 < chowmeined> well, i have a map of names -> *structs, but
sometimes i need to output say, a comma separated list of all the names
18:55 < Tv> chowmeined: what's wrong with just iterating the map at that
time?
18:55 < chowmeined> so ive been building an array to use strings.Join
18:56 < Tv> chowmeined: you're probably better off writing each chunk
independently, and not building a big string
18:57 < bugQ> yup
18:57 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
18:57 < pvarga> if you use a set of names in paralell with populaitng the
map, then implement a reader for that set and ....  channell it.
18:58 < Tv> the comma handling is a bit annoying but it's just an if first {
first = false} else { output comma }
18:59 -!- yaniv_ [~alon@xdsl-188-154-4-146.adslplus.ch] has left #go-nuts []
18:59 < chowmeined> hm, idk how id avoid building a string, im using
net.textproto and all these names go in one line
19:00 -!- tncardoso [~thiago@189.59.128.41.dynamic.adsl.gvt.net.br] has quit [Ping
timeout: 255 seconds]
19:02 < Tv> chowmeined: there was a Writer to in-memory buffer somewhere..
19:03 < chowmeined> oh, that seems handy
19:03 < Tv> bytes.NewBuffer
19:03 -!- coudX [~coud@81.25.16.87] has quit [Read error: Connection reset by
peer]
19:05 < Tv> or just append to a []byte yourself
19:05 < Tv> it seems the bytes package predates append()
19:07 < chowmeined> thank you
19:08 < Tv> i'm still not 100% clear on the difference of string and []byte
in go
19:08 < huin> the latter is mutable
19:08 < huin> apart from anything else
19:08 < chowmeined> i guess im just used to how it would be in python,
','.join(x) where x = {'foo': 1, 'bar': 2, 'baz': 3}
19:08 < Tv> huin: that implies conversion in between is a copy?
19:08 < huin> also, iterating over one vs the other gives different results
19:08 < huin> Tv: i imagine it does, yes
19:09 -!- kosta [~Adium@krlh-4d0358c6.pool.mediaWays.net] has joined #go-nuts
19:10 < Tv> chowmeined: yeah, sadly go has no generic iterator concept
19:10 < nsf> Tv: but I guess it is possible to remove some copies by
performing extensive code analysis
19:10 < Tv> nsf: yeah but that sounds bad to rely on
19:10 < Tv> so constructing a string by first creating a []byte actual
sounds a bit silly now
19:11 < nsf> in my humble opinion Go isn't as low level as people want it to
be
19:11 < Tv> i mean, this is not gonna matter in real world benchmarks unless
it's in a tight loop
19:11 < str1ngs> chowmeined: are they all strings?
19:11 < Tv> perhaps the right thing after all is to collect a list of
strings and then do strings.join()
19:12 < Tv> that means allocating memory for the list etc, but not an extra
copy of all the strings
19:12 < Tv> but that's performance wankery, just do what works
19:12 < chowmeined> str1ngs, the keys in the map are all strings, yes
19:12 < nsf> Tv: if it's a really big list
19:12 < nsf> and wasting memory matters
19:12 < nsf> you should definitely measure it
19:12 < str1ngs> chowmeined: what are the values?
19:12 -!- tncardoso [~thiago@187.58.7.178] has joined #go-nuts
19:12 < chowmeined> str1ngs, pointers to structs
19:12 < nsf> before trying to optimize by making assumptions
19:12 < Tv> nsf: i think he should definitely ignore the performance aspect
;)
19:13 < nsf> in most cases ignoring is a good idea, yes
19:13 < Tv> i'm in this for the education
19:13 < str1ngs> chowmeined: maybe a container would work better then a map?
19:14 < kosta> if I have a func(f *Foo) bar(), how do I define a
corresponding interface?
19:14 < nsf> kosta: type X interface { bar() }
19:14 -!- m4dh4tt3r [~Adium@c-98-210-145-213.hsd1.ca.comcast.net] has joined
#go-nuts
19:15 < chowmeined> str1ngs, hm, i thought a map would be a good fit because
i get the name from network input, and then look up the struct to manipulate the
session data
19:15 < chowmeined> is there a collection that would work better for that?
19:15 < kosta> nsf: I tried that and got a "Foo does not implement Spammer
(SetHidden method requires pointer receiver)"
19:15 < Tv> chowmeined: sounds good enough
19:15 < kosta> nsf: Ah, but I'm returning a Foo where the error occurs
19:15 < kosta> nsf: and so the literal cannot satisfy that interface.  haha
19:15 < kosta> nsf: ok, thanks :)
19:16 < nsf> kosta: :D
19:16 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
19:18 < str1ngs> chowmeined: list might work then use something like type
foo struct { key string; point pointer } for the Value
19:18 < str1ngs> chowmeined: not sure what pointer is so I made that up.
fill it in of course
19:19 < str1ngs> chowmeined: but not as powerful as vector
19:19 -!- pvarga [~pvarga@pool-71-172-108-117.nwrknj.east.verizon.net] has quit
[Quit: pvarga]
19:19 < chowmeined> idk if going from O(1) lookups to O(N) lookups is worth
it
19:20 < str1ngs> ya I dont think so either
19:20 < chowmeined> especially since thats the primary way im using this
19:20 < chowmeined> lookups by name
19:20 < Tv> chowmeined: the first reason for you to go beyond maps would be
if you needed LRU expiry or something like that
19:20 < Tv> chowmeined: and even then, you'd be looking at maps + something
19:21 < chowmeined> this sounds like overkill, i dont expect more than a
couple hundred elements
19:21 < Tv> so just use the map and stop doubting ;)
19:21 -!- bickford1 [~bran@70-36-197-162.dsl.dynamic.sonic.net] has quit [Ping
timeout: 240 seconds]
19:22 < chowmeined> well, in my original question i wasnt really doubting
the map, i was just wondering if there was a convenience function somewhere to get
the keys as a slice
19:22 < Tv> yeah, doesn't exist, is easy to write
19:22 < Tv> ooh and i know why it probably doesn't exist, too -- it requires
generics, or it's tied to your map key datatype
19:23 < chowmeined> okay, that makes sense
19:26 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined
#go-nuts
19:30 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has quit [Quit:
twolfe18]
19:30 -!- DerHorst [~Horst@e177131018.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
19:31 < kosta> could someone explain this to me?
http://pastebin.com/1bv6EeLk
19:32 < kosta> basically, I have a type with an unexported field and want to
call a non-pointer method of it
19:33 < kosta> it only works when I use foo.SpammerInterface(&a).Spam().
Any other way does not work.  Not even if it looks similar to me… :)
19:33 < Tv> kosta: passing it by copy means needing to copy the unexported
field -> not posible
19:33 < kosta> Tv: yeah, but why does it work on line 39 then?
19:33 < Tv> kosta: &a is not a copy
19:34 < Tv> hold on still reading
19:34 < kosta> ok
19:34 < Tv> kosta: make your receiver take a pointer
19:34 < Tv> upi
19:35 < Tv> kosta: you'll need to follow the go style of having a NewFoo
function, that returns a pointer to Foo
19:35 < Tv> kosta: and at that point, you may choose to just have it return
Spammer instead
19:35 < Tv> and make Foo unexported as a whole
19:36 < kosta> Tv: I'm just trying to wrap my head around the type system,
not implementing anything in particular
19:37 < Tv> kosta: copying a struct is basically a field-by-field copy;
can't do unexported fields
19:37 < Tv> kosta: so anything with unexported fields needs to handled via
pointers, outside the package
19:37 -!- Project-2501 [~Marvin@82.84.80.171] has joined #go-nuts
19:37 < kosta> Tv: I read somewhere on the go homepage that you should use
func(T) instead of (*T) if the function doesn't change T
19:37 < kosta> Tv: yeah that makes sense
19:37 < kosta> I'm just confused why line 39 works and the other ones dont
19:38 < kosta> especially, where is the difference to lines 35/36?
19:38 < Tv> kosta: hard to say as your pastebin isn't even valid code..  you
have no SpammerInterface ;)
19:39 < kosta> Tv: damn, I pasted an old file.  wait a second :)
19:39 < kosta> try again: http://pastebin.com/index/1bv6EeLk
19:40 -!- Project_2501 [~Marvin@82.84.85.7] has quit [Ping timeout: 246 seconds]
19:40 < kosta> sorry, still not there :(
19:41 < kosta> here we go: http://pastebin.com/LZm7fwUB
19:41 < kosta> still, my big question mark is around: why does line 39 work
when 35/36 don't?
19:43 -!- mnoel [~mnoel@c-75-65-250-60.hsd1.la.comcast.net] has quit [Read error:
Connection reset by peer]
19:44 -!- mnoel [~mnoel@c-75-65-250-60.hsd1.la.comcast.net] has joined #go-nuts
19:45 < Omnivore> interface methods are pure virtual (in C++ speak) - no
implementation
19:46 -!- ithkuil [~marko@host27-203-dynamic.27-79-r.retail.telecomitalia.it] has
quit [Ping timeout: 246 seconds]
19:47 < Omnivore> 39 'works' that is might compile - because its a typecast
- you're telling the compiler it's ok
19:48 < kosta> Omnivore: but it's just a typecast whats in line 35, right?
19:49 < kosta> ah, i'm stupid
19:49 < Omnivore> foo.SpammerStruct doesn't implement the interface
19:49 < kosta> I meant to put a type in there
19:49 < kosta> gotta run, telephone
19:49 < kosta> be back in 10 minutes
19:50 < Omnivore> oh nvm I'm blind
19:52 -!- wwkeyboard [~wwkeyboar@75-1-145-222.lightspeed.snantx.sbcglobal.net] has
joined #go-nuts
19:56 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has joined #go-nuts
19:57 -!- awidegreen_ [~quassel@178.63.120.5] has quit [Ping timeout: 276 seconds]
19:59 -!- ithkuil [~marko@host143-52-dynamic.11-79-r.retail.telecomitalia.it] has
joined #go-nuts
20:03 -!- rlab_ [~Miranda@91.200.158.34] has joined #go-nuts
20:04 < kosta> Omnivore: no I think you're right
20:06 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 276 seconds]
20:06 < Omnivore> the compiler couldn't figure out the type in line 35 I
believe
20:07 < Omnivore> I'm still trying to wrap my head around this language too
20:08 -!- hargettp [~hargettp@pool-71-184-185-93.bstnma.east.verizon.net] has quit
[Quit: Leaving...]
20:08 < kosta> here is what I actually meant to write:
http://pastebin.com/TjVb7nqy
20:08 < kosta> so now lines 36/36 work
20:09 < Omnivore> yep makes sense
20:09 < kosta> what I still find weird, tough: "var interfacePtrA
foo.SpammerInterface = &a" works
20:10 < kosta> but "var interfacePtrA *foo.SpammerInterface = &a" does *NOT*
20:10 < Omnivore> well you're telling the compiler here's a var named
interfacePtrA of type foo.SpammerInterface that I'm assigning the address of a to
(I think)
20:11 -!- ExsysTech [~ExsysTech@50-46-213-60.evrt.wa.frontiernet.net] has quit
[Read error: Connection reset by peer]
20:11 < kosta> yeah and that implies it's reference type but they try to
hide that away from us :)
20:12 -!- ExsysTech [~ExsysTech@50-46-213-60.evrt.wa.frontiernet.net] has joined
#go-nuts
20:12 < kosta> still weird that line 10 doesn't work in that light
20:13 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
20:14 < Omnivore> looks more like an ambiguous assignment than an implicit
one in that one case
20:15 < kosta> I gotta run, but I think I'm gonna ask about this on the go
mailing list tomorrow
20:15 < Omnivore> yeah it'd be worth a read
20:20 -!- djbrown [~djbrown@unaffiliated/djbrown] has joined #go-nuts
20:26 -!- robteix [~robteix@host40.201-253-152.telecom.net.ar] has joined #go-nuts
20:27 -!- rlab_ [~Miranda@91.200.158.34] has quit [Ping timeout: 260 seconds]
20:28 -!- matthias_ [~chatzilla@p4FF133B8.dip.t-dialin.net] has joined #go-nuts
20:29 -!- TheMue [~TheMue@p5DDF753A.dip.t-dialin.net] has quit [Quit: TheMue]
20:30 -!- bugQ [~bug@c-67-186-255-54.hsd1.ut.comcast.net] has quit [Ping timeout:
250 seconds]
20:31 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
20:32 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 276 seconds]
20:33 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:7db6:c2a6:58a6:4b01] has quit
[Quit: Leaving.]
20:37 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
20:42 -!- hargettp [~hargettp@pool-71-184-185-93.bstnma.east.verizon.net] has
joined #go-nuts
20:43 -!- hargettp [~hargettp@pool-71-184-185-93.bstnma.east.verizon.net] has quit
[Client Quit]
20:48 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts
20:48 -!- sacho [~sacho@90.154.221.153] has quit [Ping timeout: 255 seconds]
20:56 -!- adlan [~adlan@175.138.37.74] has quit [Ping timeout: 240 seconds]
21:02 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has quit [Quit: "Wait...  what?!"]
21:06 -!- dazfuller [~dazfuller@cpc1-stap1-0-0-cust738.12-2.cable.virginmedia.com]
has joined #go-nuts
21:06 -!- dazfuller [~dazfuller@cpc1-stap1-0-0-cust738.12-2.cable.virginmedia.com]
has left #go-nuts []
21:07 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.5]
21:08 -!- matthias_ [~chatzilla@p4FF133B8.dip.t-dialin.net] has quit [Quit:
ChatZilla 0.9.86.1 [Firefox 3.6.17/20110422054454]]
21:10 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has quit [Quit:
Computer has gone to sleep.]
21:11 -!- manveru [~manveru@b08s28ur.corenetworks.net] has quit [Quit: ZNC -
http://znc.sourceforge.net]
21:11 -!- manveru [~manveru@b08s28ur.corenetworks.net] has joined #go-nuts
21:13 -!- kosta [~Adium@krlh-4d0358c6.pool.mediaWays.net] has quit [Quit:
Leaving.]
21:14 -!- rlab_ [~Miranda@91.200.158.34] has joined #go-nuts
21:15 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 260 seconds]
21:16 -!- photron [~photron@port-92-201-136-197.dynamic.qsc.de] has quit [Ping
timeout: 255 seconds]
21:20 -!- robteix [~robteix@host40.201-253-152.telecom.net.ar] has quit [Quit:
Computer has gone to sleep.]
21:23 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
21:27 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
21:29 -!- kosta [~Adium@krlh-4d0358c6.pool.mediaWays.net] has joined #go-nuts
21:29 -!- kosta [~Adium@krlh-4d0358c6.pool.mediaWays.net] has quit [Client Quit]
21:30 -!- rlab_ [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
21:39 -!- abiosoft [~Abiosoft@41.220.69.45] has joined #go-nuts
21:41 -!- aiju [~aiju@unaffiliated/aiju] has quit [Quit: ZNC -
http://znc.sourceforge.net]
21:44 -!- abiosoft [~Abiosoft@41.220.69.45] has quit [Read error: Connection reset
by peer]
21:48 -!- noam [noam@87.69.42.61.cable.012.net.il] has quit [Read error:
Connection reset by peer]
21:49 -!- aiju [~aiju@unaffiliated/aiju] has joined #go-nuts
21:49 -!- noam [noam@87.69.42.61.cable.012.net.il] has joined #go-nuts
21:52 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
21:55 -!- wallerdev [~wallerdev@72.44.102.30] has quit [Quit: wallerdev]
22:04 -!- dRbiG [drbig@unhallowed.pl] has quit [Ping timeout: 276 seconds]
22:08 -!- wwkeyboard [~wwkeyboar@75-1-145-222.lightspeed.snantx.sbcglobal.net] has
left #go-nuts []
22:09 -!- mnoel [~mnoel@c-75-65-250-60.hsd1.la.comcast.net] has quit [Quit: mnoel]
22:16 -!- dRbiG [drbig@unhallowed.pl] has joined #go-nuts
22:18 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has joined #go-nuts
22:18 -!- brandini [~orbit@adsl-69-221-174-224.dsl.akrnoh.ameritech.net] has quit
[Ping timeout: 240 seconds]
22:18 -!- tncardoso [~thiago@187.58.7.178] has quit [Read error: Connection reset
by peer]
22:20 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has quit [Remote
host closed the connection]
22:20 -!- xeno42 [~xeno42@s.omnipotent.net] has joined #go-nuts
22:20 -!- brandini [~orbit@adsl-69-221-167-216.dsl.akrnoh.ameritech.net] has
joined #go-nuts
22:21 -!- vpit3833 [~user@203.111.33.203] has joined #go-nuts
22:23 < xeno42> I'm trying to run some go code on an old x86 Debian box..
machine can't currently be upgraded to a recent version of Debian, but Go compiles
ok on it and generates executables..
22:23 < xeno42> running the simple hello world program generates teh output
and then crashes on exit with a split stack overflow error
22:25 < xeno42> anyone come across this before?
22:26 < xeno42> runs ok on a slightly newer build of Debian, but I can't
utilize that
22:30 < nictuku> xeno42, is it a real hardware or maybe a Xen instance?
22:30 < xeno42> it's a real machine
22:30 < nictuku> ok, so I don't know, sorry.
22:30 < xeno42> np
22:31 < nictuku> xeno42, you could maybe paste the stack trace in pastie.org
22:31 < ww> kernel version?
22:31 < ww> if it's 2.4 you're probably s.o.l.
22:31 < Tv> xeno42: "lsb_release -a", "uname -a", "cat /proc/cpuinfo", and
the crash message in a bug report might help you
22:32 < xeno42> yeah it's 2.4
22:33 < xeno42> didn't realize it was dependent on a 2.6 kernel
22:33 < ww> ah.  there was some discussion on that recently on the list i
think
22:33 < ww> it should be stated more clearly i guess...
22:34 < ww> i think the upshot was it isn't a priority for the main go
developers to figure out how to support very old linux kernels
22:34 < xeno42> ah yeah there it is..  depends on TLS variables which
requires a 2.6 kernel..
22:34 < xeno42> crap
22:34 < xeno42> yeah i can understand that..  just wish it was documented as
a requirement..  would of saved a lot of time today :-(
22:37 -!- AmourDeZombi [~jphillips@c-76-112-223-150.hsd1.mi.comcast.net] has
joined #go-nuts
23:01 -!- Project-2501 [~Marvin@82.84.80.171] has quit [Quit: E se abbasso questa
leva che succ...]
23:04 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has joined
#go-nuts
23:04 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has quit [Client
Quit]
23:06 -!- huin [~huin@91.85.171.238] has quit [Quit: bedtime]
23:23 -!- nictuku [~nict@unaffiliated/nictuku] has quit [Quit: Leaving]
23:50 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
23:58 -!- vinisterx [~ryan@74-129-201-27.dhcp.insightbb.com] has quit [Read error:
Operation timed out]
23:59 -!- vinisterx [~ryan@74-129-201-27.dhcp.insightbb.com] has joined #go-nuts
--- Log closed Mon May 30 00:00:18 2011