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

--- Log opened Thu Jul 21 00:00:01 2011
00:08 -!- franciscosouza [~francisco@] has joined #go-nuts
00:12 -!- skelterjohn_ [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
00:14 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has quit
[Ping timeout: 246 seconds]
00:14 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Ping
timeout: 260 seconds]
00:15 -!- vpit3833 [~user@] has joined #go-nuts
00:15 -!- squeese [~squeese@h51580273.semamkb.dyn.perspektivbredband.net] has
joined #go-nuts
00:16 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has quit
[Quit: Computer has gone to sleep.]
00:21 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has joined
00:24 -!- hargettp [~hargettp@pool-71-174-140-162.bstnma.east.verizon.net] has
quit [Quit: Linkinus - http://linkinus.com]
00:30 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has quit [Quit:
Linkinus - http://linkinus.com]
00:37 -!- Chat0170 [mhepcl@app5.chatmosphere.org] has joined #go-nuts
00:37 < Chat0170> f
00:38 -!- Chat0170 [mhepcl@app5.chatmosphere.org] has quit [Client Quit]
00:38 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has joined
00:48 -!- iant [~iant@] has quit [Quit: Leaving.]
00:48 -!- tvw [~tv@e176006223.adsl.alicedsl.de] has quit [Ping timeout: 255
00:49 -!- tvw [~tv@e176000246.adsl.alicedsl.de] has joined #go-nuts
00:52 -!- eikenberry [~jae@173-164-68-213-Oregon.hfc.comcastbusiness.net] has quit
[Quit: End of line.]
01:06 -!- meling [~meling@cse-dhcp-10-91.ucsd.edu] has quit [Remote host closed
the connection]
01:10 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
01:12 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has quit []
01:15 -!- dreadlorde [dreadlorde@c-68-42-82-10.hsd1.mi.comcast.net] has joined
01:17 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
01:19 -!- franciscosouza [~francisco@] has quit [Read error:
Connection reset by peer]
01:19 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Remote
host closed the connection]
01:20 -!- Chat0080 [ftjara@app5.chatmosphere.org] has joined #go-nuts
01:20 < Chat0080> مساء الخير
01:20 -!- Chat0080 [ftjara@app5.chatmosphere.org] has quit [Client Quit]
01:20 -!- franciscosouza [~francisco@] has joined #go-nuts
01:25 -!- meling [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has
joined #go-nuts
01:27 -!- magn3ts [~magn3ts@ip68-103-225-65.ks.ok.cox.net] has quit [Quit:
01:31 -!- sniper50_ [~sniper506@cpe-098-122-099-052.sc.res.rr.com] has joined
01:37 -!- moraes [~moraes@] has quit [Quit: Leaving]
01:39 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
01:40 -!- clip9 [clip9@er.en.svarteper.com] has quit [Ping timeout: 246 seconds]
01:40 -!- clip9 [clip9@er.en.svarteper.com] has joined #go-nuts
01:46 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has quit
[Ping timeout: 252 seconds]
01:46 -!- crazy2be [~crazy2be@d75-152-167-124.abhsia.telus.net] has joined
01:48 < crazy2be> is there some way to do packet.RawData[readlen:] = buf
01:49 < crazy2be> oh, io.ReadFull
01:50 < fzzbt> why doesnt go have enum :[
01:51 < jessta_> because const achieves the same thing
01:51 < fzzbt> but then you have to prefix all the consts with something and
it is ugly?
01:52 < fzzbt> you have to repeat yourself
01:53 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has joined
01:55 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has quit
[Client Quit]
01:56 < jessta_> fzzbt: you can give the consts types
01:57 -!- gtaylor [~gtaylor@108-196-160-120.lightspeed.tukrga.sbcglobal.net] has
joined #go-nuts
01:58 < jessta_> where do you have to repeat yourself/
02:04 -!- sniper50_ [~sniper506@cpe-098-122-101-192.sc.res.rr.com] has joined
02:05 -!- tvw [~tv@e176000246.adsl.alicedsl.de] has quit [Remote host closed the
02:05 -!- sniper506th [~sniper506@cpe-098-122-099-052.sc.res.rr.com] has quit
[Ping timeout: 255 seconds]
02:06 < fzzbt> without using separate package, you cant group consts in one
place like MyTypes.A, MyTypes.B, MyTypes.C instead of writing consts MyTypeA,
MyTypeB, MyTypeC
02:06 -!- Kami_ [~kami@unaffiliated/kami-/x-9078513] has quit [Excess Flood]
02:07 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has quit [Quit:
02:08 -!- Kami_ [~kami@unaffiliated/kami-/x-9078513] has joined #go-nuts
02:17 < jessta_> fzzbt: you could make a struct if that's your need
02:18 < jessta_> but you can declare a const with a type that tells the user
where to use it
02:20 -!- franciscosouza [~francisco@] has quit [Quit:
02:21 -!- franciscosouza [~francisco@] has joined #go-nuts
02:30 -!- sniper506th [~sniper506@cpe-098-122-101-192.sc.res.rr.com] has quit
[Read error: Connection reset by peer]
02:35 -!- Natch| [~natch@] has quit [Ping timeout: 260 seconds]
02:41 -!- sniper506th [~sniper506@cpe-098-122-101-192.sc.res.rr.com] has joined
02:45 -!- Natch| [~natch@] has joined #go-nuts
03:10 -!- icy [~icy@lighttpd/icy] has quit [Ping timeout: 276 seconds]
03:18 -!- icy [~icy@singularity.cryosphere.de] has joined #go-nuts
03:18 -!- icy [~icy@singularity.cryosphere.de] has quit [Changing host]
03:18 -!- icy [~icy@lighttpd/icy] has joined #go-nuts
03:20 -!- mnemoc [~amery@shell.opensde.net] has quit [Read error: Operation timed
03:23 -!- gtaylor [~gtaylor@108-196-160-120.lightspeed.tukrga.sbcglobal.net] has
quit [Quit: gtaylor]
03:26 -!- mnemoc [~amery@shell.opensde.net] has joined #go-nuts
03:34 -!- crazy2be [~crazy2be@d75-152-167-124.abhsia.telus.net] has quit [Remote
host closed the connection]
03:43 -!- pjacobs [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit
[Ping timeout: 258 seconds]
03:45 -!- Kami_ [~kami@unaffiliated/kami-/x-9078513] has quit [Quit: Off]
03:45 -!- Kami_ [~kami@unaffiliated/kami-/x-9078513] has joined #go-nuts
03:51 -!- qeed [~qeed@adsl-98-85-61-254.mco.bellsouth.net] has quit [Quit:
03:53 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts
03:56 -!- robteix [~robteix@host27.190-30-213.telecom.net.ar] has quit [Quit:
04:03 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Remote host
closed the connection]
04:06 -!- angasule [~angasule@] has quit [Ping timeout: 260 seconds]
04:23 -!- sniper506th [~sniper506@cpe-098-122-101-192.sc.res.rr.com] has quit
[Quit: Leaving...]
04:25 -!- kergoth_ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Quit:
Computer has gone to sleep.]
04:25 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined
04:28 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts
04:30 -!- jimbaker` [~jbaker@c-67-176-84-43.hsd1.co.comcast.net] has quit [Quit:
Coyote finally caught me]
04:33 -!- Count_Niedar [~bleh@ip68-99-166-222.hr.hr.cox.net] has quit [Read error:
Connection reset by peer]
04:33 -!- Niedar [~bleh@ip68-99-166-222.hr.hr.cox.net] has joined #go-nuts
04:34 -!- squeese [~squeese@h51580273.semamkb.dyn.perspektivbredband.net] has quit
[Remote host closed the connection]
04:36 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts
04:36 -!- mode/#go-nuts [+v iant] by ChanServ
04:45 -!- Bigbear1 [~Cody@d75-158-136-171.abhsia.telus.net] has joined #go-nuts
04:46 -!- magn3ts [~magn3ts@ip68-103-225-65.ks.ok.cox.net] has joined #go-nuts
04:51 -!- smw [~stephen@unaffiliated/smw] has quit [Ping timeout: 258 seconds]
04:56 -!- krolaw [~krolaw@port165-235.ubs.maxnet.co.nz] has quit [Quit: krolaw]
04:57 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host
closed the connection]
04:58 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving]
05:00 -!- fabled [~fabled@] has joined #go-nuts
05:01 -!- segv [~segv@sig.segv.net] has joined #go-nuts
05:02 < segv> Hey, what's the easiest way to do a multi-line string in
go-lang, been looking for a peticular method/standard for the unavoidable
multi-line string.
05:06 <+iant> a raw string literal
05:12 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping
timeout: 255 seconds]
05:13 -!- franciscosouza [~francisco@] has quit [Read error:
Connection reset by peer]
05:13 -!- iant [~iant@] has joined #go-nuts
05:13 -!- mode/#go-nuts [+v iant] by ChanServ
05:15 -!- kergoth_ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has joined #go-nuts
05:16 -!- fotang [~fotang@] has joined #go-nuts
05:19 -!- napsy [~luka@] has joined #go-nuts
05:20 -!- franciscosouza [~francisco@] has joined #go-nuts
05:21 -!- telexicon_ [~telexicon@c-67-160-124-195.hsd1.wa.comcast.net] has joined
05:21 -!- keithcascio [~keithcasc@nat/google/x-cmfcmzemsnaqjzqx] has quit [Quit:
05:22 -!- telexicon [~telexicon@unaffiliated/chowmeined] has quit [Ping timeout:
252 seconds]
05:24 -!- edsrzf [~edsrzf@122-61-221-144.jetstream.xtra.co.nz] has joined #go-nuts
05:32 < AndrewBC> What the heck is up with the special namespaces in go's c
05:33 < AndrewBC> What's parsing those before the CC does?
05:33 < edsrzf> Nothing
05:33 < edsrzf> It allows that character (the middle dot)
05:33 < AndrewBC> oh really, wow
05:34 < AndrewBC> so it's just considered one identifier?
05:34 < edsrzf> Yeah
05:34 < AndrewBC> I see.  Thanks
05:37 -!- Bigbear1 [~Cody@d75-158-136-171.abhsia.telus.net] has quit [Ping
timeout: 264 seconds]
05:38 < niemeyer_> Kind of..  that's not the entire truth..  but close
05:39 < niemeyer_> Anyway with a 386 freebsd available for a test?
05:39 < niemeyer_> Anyone
05:50 -!- Urtie [~kim@90-227-159-22-no57.tbcn.telia.com] has quit [Ping timeout:
264 seconds]
05:54 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Remote host closed
the connection]
05:59 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit
[Remote host closed the connection]
06:04 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined
06:11 -!- mukyuu [~mukyuu@S0106889ffaff3ed7.ca.shawcable.net] has joined #go-nuts
06:12 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has quit [Ping
timeout: 258 seconds]
06:14 -!- NiteRain [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has quit [Quit:
KVIrc 4.1.1 Equilibrium http://www.kvirc.net/]
06:18 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has joined
06:20 -!- stalled [~stalled@unaffiliated/stalled] has joined #go-nuts
06:25 -!- noodles775 [~michael@canonical/launchpad/noodles775] has joined #go-nuts
06:31 -!- ronnyy [~quassel@p4FF1C427.dip0.t-ipconnect.de] has joined #go-nuts
06:31 -!- yogib [~yogib@] has joined #go-nuts
06:33 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit
[Remote host closed the connection]
06:38 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined
06:39 -!- stalled [~stalled@unaffiliated/stalled] has quit [Quit: ...]
06:40 -!- dreadlorde [dreadlorde@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping
timeout: 255 seconds]
06:41 -!- fotang [~fotang@] has quit [Ping timeout: 255 seconds]
06:44 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts
06:46 -!- telexicon_ [~telexicon@c-67-160-124-195.hsd1.wa.comcast.net] has quit
[Quit: Leaving]
06:51 -!- Phelps [~benphelps@2001:470:1f0f:2fa:a536:ff84:9fd5:ede1] has joined
06:51 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit
[Remote host closed the connection]
06:52 -!- stalled [~stalled@unaffiliated/stalled] has joined #go-nuts
06:57 -!- ronnyy [~quassel@p4FF1C427.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
06:59 -!- alehorst1 [~alehorst@] has quit
[Ping timeout: 250 seconds]
06:59 -!- Project_2501 [~Marvin@] has joined #go-nuts
07:05 -!- vmil86 [~vmil86@] has joined #go-nuts
07:08 -!- Fish- [~Fish@coss6.exosec.net] has quit [Quit: WeeChat 0.3.5]
07:11 -!- Fish [~Fish@exo3753.pck.nerim.net] has joined #go-nuts
07:12 -!- alehorst [~alehorst@] has joined
07:13 -!- moraes [~moraes@] has joined #go-nuts
07:24 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
07:25 -!- wrtp [~rog@host-92-30-166-101.as13285.net] has joined #go-nuts
07:28 -!- magn3ts [~magn3ts@ip68-103-225-65.ks.ok.cox.net] has quit [Quit:
07:31 -!- garym__ [~garym@203-219-89-242.static.tpgi.com.au] has quit [Quit:
07:32 -!- niemeyer_ [~niemeyer@201-40-138-108.pltce701.dsl.brasiltelecom.net.br]
has quit [Ping timeout: 240 seconds]
07:35 -!- napsy [~luka@] has quit [Ping timeout: 252 seconds]
07:36 -!- garym__ [~garym@203-219-89-242.static.tpgi.com.au] has joined #go-nuts
07:36 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
07:37 -!- Phelps [~benphelps@2001:470:1f0f:2fa:a536:ff84:9fd5:ede1] has quit
[Quit: Linkinus - http://linkinus.com]
07:42 -!- fotang [~fotang@] has joined #go-nuts
07:43 -!- magn3ts [~magn3ts@ip68-103-225-65.ks.ok.cox.net] has joined #go-nuts
07:46 -!- napsy [~luka@] has joined #go-nuts
07:49 -!- muke [~doobies@75-59-237-124.lightspeed.sntcca.sbcglobal.net] has quit
[Read error: Operation timed out]
07:53 -!- muke [~doobies@75-59-237-124.lightspeed.sntcca.sbcglobal.net] has joined
08:02 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
08:06 -!- rlab [~Miranda@] has joined #go-nuts
08:17 -!- zcram [~zcram@78-28-106-140.cdma.dyn.kou.ee] has joined #go-nuts
08:17 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
08:19 -!- photron [~photron@port-92-201-42-78.dynamic.qsc.de] has joined #go-nuts
08:38 -!- virtualsue [~chatzilla@nat/cisco/x-sknvkikejddjrfxq] has joined #go-nuts
08:40 -!- nicka1 [~lerp@] has joined #go-nuts
08:43 -!- Kahvi [5b9b57fc@gateway/web/freenode/ip.] has joined
08:44 -!- virtualsue [~chatzilla@nat/cisco/x-sknvkikejddjrfxq] has quit [Ping
timeout: 276 seconds]
08:47 -!- black_rez [~black_rez@sd-26396.dedibox.fr] has joined #go-nuts
08:49 -!- kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has quit [Read
error: Operation timed out]
08:49 -!- zcram [~zcram@78-28-106-140.cdma.dyn.kou.ee] has quit [Quit: Leaving]
08:50 -!- GeertJohan [~geertjoha@s51478c91.adsl.wanadoo.nl] has joined #go-nuts
08:50 -!- GeertJohan [~geertjoha@s51478c91.adsl.wanadoo.nl] has quit [Client Quit]
08:51 -!- GeertJohan [~geertjoha@s51478c91.adsl.wanadoo.nl] has joined #go-nuts
08:53 -!- xcombelle [~xcombelle@AToulouse-551-1-19-127.w86-201.abo.wanadoo.fr] has
joined #go-nuts
08:55 -!- virtualsue [~chatzilla@nat/cisco/x-agavlqkglaxiwzqz] has joined #go-nuts
08:56 -!- kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has joined
08:57 -!- mjard [~k@misadventuregames.com] has quit [Ping timeout: 250 seconds]
08:57 -!- mjard [~k@misadventuregames.com] has joined #go-nuts
08:57 -!- jessta_ [~jessta@li7-205.members.linode.com] has quit [Ping timeout: 250
08:57 -!- jessta [~jessta@li7-205.members.linode.com] has joined #go-nuts
08:58 -!- benjack [~benjack@bb121-6-51-10.singnet.com.sg] has joined #go-nuts
09:09 -!- Boney [~paul@124-148-153-94.dyn.iinet.net.au] has quit [Read error:
Connection reset by peer]
09:11 -!- erus` [~chatzilla@mailgate.ips-international.com] has joined #go-nuts
09:11 -!- Boney [~paul@124-170-49-94.dyn.iinet.net.au] has joined #go-nuts
09:15 * mpl hugs gofix
09:19 < mpl> hmm, that didn't use to be a problem: c++.go:130: goto
happyEnding jumps over declaration of f at c++.go:165
09:20 < edsrzf> Yep, recent language change
09:20 < mpl> weird.  I mean, if I'm using goto they ought to let me do what
I want with it, no?
09:21 < aiju> i don't like that change either
09:21 < mpl> feels like a ****block
09:25 < mpl> hmm, a pita to quickfix too
09:26 < mpl> now I have to pre declare a handful of vars before the possible
09:26 < mpl> iant, adg: what's the rationale for that change?  (the goto not
jumping over declarations)
09:28 < wrtp> mpl: it means that a variable can't suddenly come into scope
with an uninitialised value
09:29 -!- jnwhiteh [~jnwhiteh@WoWUIDev/WoWI/Featured/Dongle/cladhaire] has quit
[Ping timeout: 250 seconds]
09:30 < edsrzf> mpl: you might be able to fix the error by putting the
variables in their own block, depending on what the code looks like
09:30 -!- jnwhiteh [~jnwhiteh@WoWUIDev/WoWI/Featured/Dongle/cladhaire] has joined
09:35 < mpl> not really in that case, the vars are in the uppermost scope in
the func.
09:36 < mpl> bah, I'll find a workaround, but I don't like this.
09:36 < aiju> var foo Foo
09:36 < aiju> put this at the top of your function ;P
09:36 < mpl> aiju: yeah, except I have to do it for more than one var.
09:36 < mpl> and that sucks.
09:37 < mpl> having to predeclare some vars feel like doing old C, not
offense to old C intended ;)
09:37 -!- edsrzf [~edsrzf@122-61-221-144.jetstream.xtra.co.nz] has quit [Remote
host closed the connection]
09:41 -!- cbeck [cbeck@gateway/shell/pdx.edu/x-ijxhptzpmnhrentq] has quit [Read
error: Connection reset by peer]
09:41 -!- cbeck [cbeck@gateway/shell/pdx.edu/x-bkufydsoqkqgjiua] has joined
09:41 -!- benjack [~benjack@bb121-6-51-10.singnet.com.sg] has quit [Quit:
09:42 -!- virtualsue [~chatzilla@nat/cisco/x-agavlqkglaxiwzqz] has quit [Ping
timeout: 240 seconds]
09:43 < wrtp> mpl: you could happyEnding at the beginning :-)
09:44 < wrtp> (and jump over it)
09:49 -!- kuroneko [~chris@felli.sysadninjas.net] has joined #go-nuts
09:54 -!- virtualsue [~chatzilla@nat/cisco/x-ufcffmgbpfwleiqc] has joined #go-nuts
09:55 -!- rm445 [rm445@pip.srcf.societies.cam.ac.uk] has quit [Ping timeout: 260
09:56 < Kahvi> What would be the go equivalent to timeGetTime() found on
windows?  http://msdn.microsoft.com/en-us/library/dd757629(v=vs.85).aspx
09:57 -!- rm445 [rm445@pip.srcf.societies.cam.ac.uk] has joined #go-nuts
10:00 -!- garym_ [~garym@203-219-89-242.static.tpgi.com.au] has joined #go-nuts
10:00 < aiju> Kahvi: see the time package
10:01 < aiju> ah, you want system uptime
10:01 < aiju> this is highly os dependent, no clue whether Go offers a
function for that
10:02 -!- noodles775 [~michael@canonical/launchpad/noodles775] has quit [Read
error: Operation timed out]
10:02 < aiju> what do you need it for?
10:02 -!- garym__ [~garym@203-219-89-242.static.tpgi.com.au] has quit [Ping
timeout: 255 seconds]
10:04 < Kahvi> Just porting some code to Go.
10:06 -!- noodles775 [~michael@e178254049.adsl.alicedsl.de] has joined #go-nuts
10:06 -!- noodles775 [~michael@e178254049.adsl.alicedsl.de] has quit [Changing
10:06 -!- noodles775 [~michael@canonical/launchpad/noodles775] has joined #go-nuts
10:07 < Kahvi> I have a feeling I'll probably find out it's not used in the
code at all except for setting that single variable.
10:09 -!- xcombelle [~xcombelle@AToulouse-551-1-19-127.w86-201.abo.wanadoo.fr] has
quit [Quit: I am a manual virus, please copy me to your quit message.]
10:22 -!- noam [~noam@] has quit [Ping timeout: 276
10:25 -!- fotang [~fotang@] has quit [Remote host closed the
10:26 -!- fotang [~fotang@] has joined #go-nuts
10:31 -!- hargettp [~hargettp@pool-71-174-140-162.bstnma.east.verizon.net] has
joined #go-nuts
10:33 -!- noam [~noam@] has joined #go-nuts
10:34 -!- genbattle [~nick@203-173-211-164.dialup.ihug.co.nz] has joined #go-nuts
10:43 -!- angasule [~angasule@] has joined #go-nuts
10:56 -!- fotang [~fotang@] has quit [Ping timeout: 240 seconds]
10:56 -!- fotang [~fotang@] has joined #go-nuts
11:05 -!- CatFish [~CatFish@2001:5c0:1400:a::4cf] has joined #go-nuts
11:11 -!- genbattle [~nick@203-173-211-164.dialup.ihug.co.nz] has quit [Quit:
11:15 -!- gnuvince|work [8e538a09@gateway/web/freenode/ip.] has joined
11:22 -!- sacho [~sacho@95-42-118-162.btc-net.bg] has left #go-nuts ["Ex-Chat"]
11:24 -!- niekie [~niek@CAcert/Assurer/niekie] has joined #go-nuts
11:25 -!- niekie_ [~niek@CAcert/Assurer/niekie] has quit [Read error: Connection
reset by peer]
11:34 < mpl> wrtp: I don't get it
11:37 -!- tvw [~tv@] has joined #go-nuts
11:39 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has joined #go-nuts
11:42 -!- rejb [~rejb@unaffiliated/rejb] has quit [Read error: Connection reset by
11:43 -!- rejb [~rejb@gs1.orrifice-gaming.com] has joined #go-nuts
11:43 -!- rejb [~rejb@gs1.orrifice-gaming.com] has quit [Changing host]
11:43 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
11:47 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
11:51 -!- kamaji [~kamaji@handtomouse.demon.co.uk] has quit [Read error:
Connection reset by peer]
11:53 -!- chronoslynx [~Adium@cisne-cn12.upc.es] has joined #go-nuts
11:53 -!- miker2 [~miker2@] has joined #go-nuts
11:56 -!- xcombelle [~xcombelle@AToulouse-551-1-19-127.w86-201.abo.wanadoo.fr] has
joined #go-nuts
12:04 -!- xcombelle [~xcombelle@AToulouse-551-1-19-127.w86-201.abo.wanadoo.fr] has
quit [Ping timeout: 240 seconds]
12:16 -!- angasule [~angasule@] has quit [Read error: Connection reset
by peer]
12:18 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts
12:19 -!- Kahvi [5b9b57fc@gateway/web/freenode/ip.] has quit [Ping
timeout: 252 seconds]
12:19 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host
closed the connection]
12:20 -!- chronoslynx [~Adium@cisne-cn12.upc.es] has quit [Quit: Leaving.]
12:23 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
12:26 < wrtp> mpl: e.g.  {goto foo; x := 5; foo: println(x)} i guess they
didn't want to need the compiler to initialise x=0 when doing the goto
12:29 < mpl> wrtp: yes.  I meant I don't get your suggestion with
12:29 < wrtp> mpl: well, you can always jump backwards, right?
12:29 < mpl> wrtp: and I still don't like it, I don't think it's reason
enough for that change.
12:30 < mpl> wrtp: yes.  and how does that help me?
12:31 -!- hargettp [~hargettp@pool-71-174-140-162.bstnma.east.verizon.net] has
quit [Quit: Linkinus - http://linkinus.com]
12:31 < wrtp> mpl: so you could do: func myfunc(){goto start; happyEnding:
blahblah(); return; start: f := 99; if something() {goto happyEnding}; return}
12:32 -!- ynv [~ynv@xdsl-188-154-4-146.adslplus.ch] has joined #go-nuts
12:32 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has left #go-nuts []
12:34 -!- ronnyy [~quassel@p4FF1C427.dip0.t-ipconnect.de] has joined #go-nuts
12:34 < mpl> wrtp: ah that might work yes, gonna try.  thx
12:35 < wrtp> that other possibility (which is probably better) is to put
all the first part of the function inside a block
12:35 < wrtp> s/that/the
12:36 < wrtp> e.g.  func myfunc() { {f := 99; if something() {goto
happyEnding}; x := 99; return}; happyEnding: blahblah()}
12:39 -!- xcombelle [~xcombelle@AToulouse-551-1-19-127.w86-201.abo.wanadoo.fr] has
joined #go-nuts
12:39 -!- franciscosouza [~francisco@] has quit [Read error:
Connection reset by peer]
12:40 -!- GeertJohan [~geertjoha@s51478c91.adsl.wanadoo.nl] has quit [Quit:
12:40 -!- franciscosouza [~francisco@] has joined #go-nuts
12:40 -!- garym_ [~garym@203-219-89-242.static.tpgi.com.au] has quit [Read error:
Connection timed out]
12:41 -!- garym_ [~garym@203-219-89-242.static.tpgi.com.au] has joined #go-nuts
12:42 < mpl> it's weird how I'm having trouble one liners, I really need the
returns :)
12:42 < mpl> *trouble reading
12:43 < mpl> I guess I'd suck at reading lisp
12:44 -!- virtualsue [~chatzilla@nat/cisco/x-ufcffmgbpfwleiqc] has quit [Quit:
ChatZilla 0.9.87 [Firefox 5.0.1/20110707182747]]
12:44 -!- franciscosouza [~francisco@] has quit [Client Quit]
12:49 -!- go^lang [~newblue@] has joined #go-nuts
12:49 < go^lang> how to insert item to array ?
12:50 < mpl> foo = append(foo, item) is one way
12:51 < mpl> well of course, it will not insert at the beginning or at a
given location if that's what you wanted
12:52 < go^lang> I need to localtion insert
12:52 -!- xcombelle [~xcombelle@AToulouse-551-1-19-127.w86-201.abo.wanadoo.fr] has
quit [Quit: I am a manual virus, please copy me to your quit message.]
12:55 -!- noam [~noam@] has quit [Ping timeout: 260
12:56 -!- xcombelle [~xcombelle@AToulouse-551-1-19-127.w86-201.abo.wanadoo.fr] has
joined #go-nuts
12:56 < mpl> wrtp: yeah that last one is even nicer, thx.
12:56 -!- garym_ [~garym@203-219-89-242.static.tpgi.com.au] has quit [Read error:
Connection reset by peer]
12:57 -!- garym [~garym@203-219-89-242.static.tpgi.com.au] has joined #go-nuts
12:58 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has joined #go-nuts
13:00 -!- ronnyy [~quassel@p4FF1C427.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
13:00 -!- pharris [~Adium@rhgw.opentext.com] has joined #go-nuts
13:09 -!- Project_2501 [~Marvin@] has quit [Ping timeout: 250 seconds]
13:10 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has joined
13:10 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has
joined #go-nuts
13:12 < gmilleramilar> go^lang: make sure there's room in the array, use
copy to move the "rest" of the elements up one.  then put your new element.
13:13 < go^lang> thank you
13:15 -!- ronnyy [~quassel@p4FF1C427.dip0.t-ipconnect.de] has joined #go-nuts
13:15 -!- xcombelle [~xcombelle@AToulouse-551-1-19-127.w86-201.abo.wanadoo.fr] has
quit [Quit: I am a manual virus, please copy me to your quit message.]
13:16 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-165-101.clienti.tiscali.it] has
joined #go-nuts
13:16 -!- noam [~noam@] has joined #go-nuts
13:17 < wrtp> go^lang: you might find this useful:
13:25 -!- pjacobs [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has
joined #go-nuts
13:38 -!- franciscosouza [~francisco@] has joined #go-nuts
13:48 -!- r_linux [~r_linux@static.] has joined
13:48 -!- pjacobs2 [~pjacobs@] has joined #go-nuts
13:49 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts
13:50 -!- pjacobs [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit
[Ping timeout: 258 seconds]
13:56 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
13:59 -!- fotang [~fotang@] has quit [Ping timeout: 252 seconds]
14:01 -!- meling [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has quit
[Read error: Connection reset by peer]
14:02 -!- fabled [~fabled@] has quit [Quit: Ex-Chat]
14:15 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 255 seconds]
14:18 -!- napsy [~luka@] has quit [Ping timeout: 276 seconds]
14:20 -!- meling [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has
joined #go-nuts
14:22 -!- ynv [~ynv@xdsl-188-154-4-146.adslplus.ch] has left #go-nuts ["Leaving"]
14:24 -!- meling_ [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has
joined #go-nuts
14:27 -!- meling [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has quit
[Ping timeout: 240 seconds]
14:28 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
14:29 -!- rejb [~rejb@unaffiliated/rejb] has quit [Read error: Connection reset by
14:29 -!- nekoh [~nekoh@dslb-188-107-172-026.pools.arcor-ip.net] has joined
14:30 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
14:33 -!- meling_ [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has quit
[Remote host closed the connection]
14:33 -!- meling [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has
joined #go-nuts
14:33 -!- preflex_ [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
14:34 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 260 seconds]
14:35 -!- napsy [~luka@] has joined #go-nuts
14:36 -!- kamaji [~kamaji@handtomouse.demon.co.uk] has joined #go-nuts
14:37 -!- chomp [~chomp@dap-209-166-184-50.pri.tnt-3.pgh.pa.stargate.net] has
joined #go-nuts
14:41 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined
14:49 -!- zcram [~zcram@78-28-83-147.cdma.dyn.kou.ee] has joined #go-nuts
14:53 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping
timeout: 246 seconds]
14:55 -!- zcram [~zcram@78-28-83-147.cdma.dyn.kou.ee] has quit [Quit: Leaving]
14:56 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit
[Remote host closed the connection]
15:03 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-165-101.clienti.tiscali.it] has
quit [Ping timeout: 240 seconds]
15:09 -!- franciscosouza [~francisco@] has quit [Quit:
15:10 -!- lucian [~lucian@78-86-217-168.zone2.bethere.co.uk] has joined #go-nuts
15:12 -!- mjml [~joya@] has quit [Quit: Leaving]
15:17 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined
15:18 -!- ArgonneIntern [~gauge@mcswl185.mcs.anl.gov] has joined #go-nuts
15:25 -!- yogib [~yogib@] has quit [Quit: yogib]
15:32 -!- qeed [~qeed@adsl-98-85-40-234.mco.bellsouth.net] has joined #go-nuts
15:34 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit
[Remote host closed the connection]
15:38 -!- robteix [~robteix@] has joined #go-nuts
15:42 -!- Guest63032 [~foo@cpe-70-94-229-122.sw.res.rr.com] has joined #go-nuts
15:44 < Guest63032> I could use a little guidance in understand how I would
implement a current production system in Go. We currently have a lighttpd API with
PHP accepting the API calls and then in turn calling compile C setuid binaries to
perform specific functions.  We would like to replace this current stack with an
all in one Go binary.
15:45 < Guest63032> What I am having difficulty comprehending is how would I
implement the dropped permissions of the API to listen on the web in Go, but still
handle the setuid functionality we need
15:45 < Guest63032> would I use a gocontrol that is setuid and idling?
15:45 < Guest63032> with a channel to pass off jobs to that that gocontrol?
15:45 < skelterjohn|work> i wish i were a web dev.  i don't understand most
of your question
15:46 < Guest63032> haha
15:46 < skelterjohn|work> i can answer questions about go, though
15:46 < Guest63032> well...  I guess I just need to know, what is the best
way to implement something like that in Go
15:46 < Guest63032> we obviously need root permissions for certain
functionality, but again for security reasons we don't want a root daemon
listening on the web
15:47 <+iant> On Unix the uid is process wide, so if you want part of your
program to be setuid, then you need to be running in different processes
15:47 < skelterjohn|work> ah, i see
15:47 < skelterjohn|work> go can invoke other processes easily, using the
exec package
15:47 < wrtp> Guest63032: what do you need root perms for?
15:48 < Guest63032> wrtp: stuff (I can't go into specifics due to NDA)
15:48 < wrtp> personally, i'd try to avoid any use of root if poss
15:48 <+iant> there's no reason you can't have a Go program be setuid, of
course, but Go doesn't really help you solve this problem any more than any other
15:48 <+iant> you still need different programs and a way to communicate
between them
15:48 < wrtp> you could have two go binaries, one running as root, with a
RPC pipe between them
15:49 <+iant> right
15:49 < wrtp> so the unprivileged process can make requests of the
privileged process
15:49 < wrtp> it would be quite straightforward, but not as fast as doing it
15:49 -!- erus` [~chatzilla@mailgate.ips-international.com] has quit [Remote host
closed the connection]
15:49 < Guest63032> Yeah our goal is to cut down the number of things we
have to maintain in the current API stack
15:49 < wrtp> depends whether the privileged ops are in the fast path
15:49 -!- black_rez [~black_rez@sd-26396.dedibox.fr] has quit [Excess Flood]
15:50 < wrtp> you could even make them the same binary, with a different
command line arg
15:50 < Guest63032> we are maintining the actual API, along with the
binaries, lighttpd and PHP
15:51 < Guest63032> So the more we can cut out of that...  the better we are
when it comes time to upgrade things (or if a security issue arrises)
15:51 < wrtp> sounds like go could provide a better solution, yeah
15:51 -!- noodles775 [~michael@canonical/launchpad/noodles775] has quit [Quit:
15:51 < Guest63032> I will look at the alternate commmand line switches...
that is something I hadn't considered
15:52 < skelterjohn|work> i feel like the "one proc running as root,
connected via RPC" sounds best
15:52 < Guest63032> I was hoping that a gocontrol could be forked as setuid
and then we drop permissions to attach to the web but still maintain the
connection to the control via channel that we can feed tasks into
15:52 < skelterjohn|work> and you can use netchan for the communication
15:53 < skelterjohn|work> the RPC route can *look* almost like that
15:53 -!- virtualsue [~chatzilla@nat/cisco/x-lyerygmclkxxycjw] has joined #go-nuts
15:53 -!- chomp [~chomp@dap-209-166-184-50.pri.tnt-3.pgh.pa.stargate.net] has quit
[Quit: Leaving]
15:53 < skelterjohn|work> except for the setup bit
15:53 -!- black_rez [~black_rez@sd-26396.dedibox.fr] has joined #go-nuts
15:53 < Guest63032> is there an RPC package for Go? or is that something I
would have to come up with on my own?
15:53 < skelterjohn|work> you can use the netchan package
15:54 < skelterjohn|work> that can send anything that the gob package can
serialize (i think)
15:54 < skelterjohn|work> so, general custom data structures with structs,
slices, maps, etc
15:54 < skelterjohn|work> i don't suggest sending a chan over a netchan
15:54 < Guest63032> Okay.  I think I am seeing where this can go
15:55 < skelterjohn|work> you'd basically define your own protocol by
defining the type that you'd send over the netchan
15:55 < jlaffaye> I wonder how fast would be a naive implementation of grep
like tool which reads line per line with bufio and look for text using
15:56 < jlaffaye> So I guess my question is: is there a better way to do it?
15:56 -!- meling_ [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has
joined #go-nuts
15:56 < skelterjohn|work> jlaffaye: if you don't care about the "rep" part
of grep, then that seems fine
15:56 < Guest63032> skelterjohn|work: Thanks...  that give me something to
go on and look at.
15:56 < skelterjohn|work> bytes.Index() will search efficiently
15:56 < skelterjohn|work> probably
15:57 -!- jimbaker [~jbaker@canonical/jimbaker] has joined #go-nuts
15:57 < jlaffaye> yup I dont care about regex
15:57 < skelterjohn|work> actually, it probably has the M*N kind of search -
you can search in time linear with the length of the string you're searching, too,
but it's more complicated
15:57 < skelterjohn|work> Guest63032: my pleasure
15:58 -!- yogib [~yogib@dslb-178-001-023-136.pools.arcor-ip.net] has joined
15:58 < wrtp> Guest63032: i think i'd recommend the rpc package over the
netchan package
15:59 < wrtp> netchan is more about streams - doing rpc with netchan is not
so easy
16:00 -!- meling [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has quit
[Ping timeout: 276 seconds]
16:00 < Guest63032> wrtp: okay.
16:01 < Guest63032> I am currently looking at the API and setuid binaries
being seperate Go apps currently
16:01 < wrtp> that's probably the easiest way to do it
16:01 -!- chadkouse [~Adium@rrcs-76-79-233-18.west.biz.rr.com] has joined #go-nuts
16:01 < Guest63032> that would cover our main design goals for looking at Go
anyways, which is to cut down on the maintanance of the entire API stack
16:02 < wrtp> you can have a package which both import which defines data
structures in common, if you need to
16:02 < Guest63032> plus give our engineers a web interface to monitor the
API which as been on the wish list since 1.0
16:02 < Guest63032> they like logging...  who knew
16:06 < Guest63032> wrtp: thank you for the suggestions and input.
16:06 < Guest63032> now to spec it out
16:07 -!- go^lang [~newblue@] has quit [Quit: 暂离]
16:08 < jlaffaye> each time I use defer I tell myself "that thing is damn
smart" :)
16:09 -!- segv [~segv@sig.segv.net] has left #go-nuts []
16:10 -!- Project_2501 [~Marvin@] has joined #go-nuts
16:10 -!- Guest63032 [~foo@cpe-70-94-229-122.sw.res.rr.com] has left #go-nuts []
16:12 < wrtp> jlaffaye: yeah, the saving of the arguments and receiver for
later is great.
16:13 < wrtp> anyone here played with exp/template much?
16:14 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has joined #go-nuts
16:15 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts
16:16 < dahankzter> Is there any sort of route/balancing thing for channels?
Something that transparently routes between local and remote nodes depending on
availability (and/or load)?
16:17 < dahankzter> Its not hard to write something naive but if there is
something working id like to use that
16:20 -!- yogib [~yogib@dslb-178-001-023-136.pools.arcor-ip.net] has quit [Quit:
16:34 -!- Natch| [~natch@] has quit [Ping timeout: 264 seconds]
16:35 < wrtp> dahankzter: channels don't go between local and remote nodes
16:36 -!- franciscosouza [~francisco@] has joined #go-nuts
16:39 -!- Natch| [~natch@] has joined #go-nuts
16:43 < dahankzter> i mean some sort of mechanism to abstract the remote
nature of a netchan tied (is that a correct term?) channel and just say
"getChannel" and the returned channel may or may not be networked
16:45 -!- ronnyy [~quassel@p4FF1C427.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
16:48 -!- Project-2501 [~Marvin@] has joined #go-nuts
16:51 -!- Project_2501 [~Marvin@] has quit [Ping timeout: 260 seconds]
16:52 -!- franciscosouza [~francisco@] has quit [Quit:
16:52 -!- yogib [~yogib@dslb-178-001-023-136.pools.arcor-ip.net] has joined
16:52 -!- wrtp [~rog@host-92-30-166-101.as13285.net] has quit [Quit: wrtp]
16:53 < jessta> dahankzter: a chan and a netchan behave quite differently
16:54 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has quit [Quit:
16:54 < jessta> you really want to know that your doing network
communication because the error cases are so different
16:56 -!- franciscosouza [~francisco@] has joined #go-nuts
16:59 -!- gnuvince|work [8e538a09@gateway/web/freenode/ip.] has quit
[Quit: Page closed]
17:05 < dahankzter> yes i know but having a bit of "work" being executed
where there is capacity might be a nice thing, be it local or remote
17:06 < dahankzter> Like the actor paradigm where the actors can be
(depending on the impl i guess) remote or local which can be decided by this piece
of code that i am looking for
17:07 < dahankzter> maybe its better to decide these things on another level
17:07 < jessta> you'd have to have the remote interface for both local and
remote channel sends
17:08 -!- vmil86 [~vmil86@] has quit [Ping timeout: 276 seconds]
17:08 < jessta> that's pretty much how erlang does it
17:13 -!- fabled [~fabled@] has joined #go-nuts
17:13 -!- dfr|mac [~dfr|work@nat/google/x-xfkcwvlfvbrhfysb] has joined #go-nuts
17:13 < dahankzter> what about just returning a normal channel to the caller
that proxies the possibly remote channel?  Is that daft?
17:14 < skelterjohn|work> if you use them for synchronization you have to be
aware that this introduces a buffer of size 1
17:15 -!- smw [~stephen@unaffiliated/smw] has joined #go-nuts
17:16 -!- robteix [~robteix@] has quit [Quit: Leaving]
17:16 -!- dfr|mac [~dfr|work@nat/google/x-xfkcwvlfvbrhfysb] has quit [Remote host
closed the connection]
17:17 -!- dfr|mac [~dfr|work@nat/google/x-swdccqfjqiryntsn] has joined #go-nuts
17:19 < dahankzter> Yes i am aware of that and hopefully it will not be a
problem :S
17:19 < jessta> dahankzter: a normal channel has no concept of errors.  if
errors occur while trying to send data acorss the network how is the sender to
handle them?
17:20 < skelterjohn|work> by blocking :)
17:21 < dahankzter> cant the proxying code detect it and return something
statusy?  hairy, perhaps not worth it
17:22 < dahankzter> requires an extra error channel maybe...
17:22 < ww> proxy could post the message to twitter?
17:22 < ww> :P
17:22 < dahankzter> :D
17:23 < dahankzter> it seemed like a nice thing to have the local/remote
invocation abstracted away for simpler things that just need somewhere to execute
17:24 -!- tavis_rain [~tavisb@24-104-129.146.hfc.mediarain.com] has joined
17:26 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-152-129.clienti.tiscali.it] has
joined #go-nuts
17:27 -!- Fish- [~Fish@9fans.fr] has joined #go-nuts
17:28 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-154-86.clienti.tiscali.it]
has joined #go-nuts
17:28 < jessta> dahankzter: yeah, that's what I mean.  The abstraction would
have to abstract away the fact that it might be local
17:28 -!- Project-2501 [~Marvin@] has quit [Ping timeout: 240 seconds]
17:28 < jessta> instead of abstracting away the fact that it might be over
the network
17:31 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-152-129.clienti.tiscali.it] has
quit [Ping timeout: 276 seconds]
17:32 -!- nekoh_ [~nekoh@dslb-178-004-065-169.pools.arcor-ip.net] has joined
17:34 < dahankzter> ye i know you meant that i expose the remote interface
17:35 < dahankzter> i am not sure exactly what that entails yet tho
17:35 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has joined
17:36 -!- nekoh [~nekoh@dslb-188-107-172-026.pools.arcor-ip.net] has quit [Ping
timeout: 276 seconds]
17:38 -!- Queue29_ [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts
17:38 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Read error:
Connection reset by peer]
17:39 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
17:47 < ArgonneIntern> does anyone know off hand if the http package
supports http://user:pass@url:port
17:50 < skelterjohn|work> been a long time since i've seen a url like that
17:50 < skelterjohn|work> (i don't know the answer to your question, sorry)
17:50 < skelterjohn|work> http certainly doesn't mind the url having a port
in it, though - that's purely client-side stuff
17:51 < ArgonneIntern> oh the port isn't the issue, that works, I've been
using that for some time.  The user and pass is the issue
17:51 -!- saschpe [~quassel@opensuse/member/saschpe] has joined #go-nuts
17:52 < skelterjohn|work> i figured
17:52 -!- tncardoso [~thiago@] has joined #go-nuts
17:52 < ww> hrmmm...  any .torrent parser/serialiser for go?
17:53 < nicka> ArgonneIntern:
17:54 < ArgonneIntern> ahh tyvm
17:55 < ww> ...  would like to do some piecemeal processing on
17:55 < ww> ...  would like to use go...
17:55 < ww> (incidentally, the descriptive text there is very interesting
17:55 < skelterjohn|work> go seems like a great language for a bt client
17:56 < ww> (esp.  if you've been following this aaron schwartz business)
17:56 < skelterjohn|work> since there is so much sync io
17:56 < ww> skelterjohn|work: yes, my thoughts exactly
17:56 -!- niemeyer [~niemeyer@] has joined #go-nuts
17:57 < skelterjohn|work> btw, they are not "typically" for $19/article
17:57 < skelterjohn|work> they are typically sold as a university-wide site
17:57 < skelterjohn|work> even though they will happily take your money if
you want just one
17:58 < ww> skelterjohn|work: right, i guess he means "typically for people
not at a university"
17:58 < skelterjohn|work> typically people not at a university have no
access whatsoever :)
17:59 < skelterjohn|work> i do agree that the distribution model is
completely out-dated
17:59 < ww> or people like me who are "at" a university but whose dodgy
"permanent visitor" status does not entitle...
17:59 < skelterjohn|work> and it's only a matter of time before it changes
17:59 < skelterjohn|work> at my school (rutgers) any computer on campus can
access all of JSTOR with no hassle
17:59 < skelterjohn|work> for instance, my laptop which connects to the
18:00 < skelterjohn|work> rutgers pays a nice premium for this
18:01 < skelterjohn|work> but it's a premium that any research institution
needs to pay or face an uproar from its researchers
18:01 < ww> i'd have to check perhaps tomorrow to make sure, but i'm used to
the various article distributors trying to make me use the whole shibboleth thing
(which is why it doesn't work for me)
18:01 < skelterjohn|work> i saw shibboleth defined the other day, but i
can't remember what it means
18:01 < skelterjohn|work> 'fucking'?
18:01 < skelterjohn|work> heh
18:02 < skelterjohn|work> oh, it actually means something specific
18:02 < skelterjohn|work> ok then
18:02 < skelterjohn|work> good to know
18:02 < ww> it's also the name of a big federated single-sign-on thing used
at least throughout europe
18:02 < skelterjohn|work> i see
18:03 -!- Chat8799 [vfwxfe@app4.chatmosphere.org] has joined #go-nuts
18:03 < ww> kind of like openid but much more overengineered
18:03 < Chat8799> السلام
18:03 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-154-86.clienti.tiscali.it]
has quit [Ping timeout: 252 seconds]
18:03 < skelterjohn|work> Chat8799: you may have found the wrong chatroom
18:04 -!- Chat8799 [vfwxfe@app4.chatmosphere.org] has quit [Client Quit]
18:12 < skelterjohn|work> exp/template question...  if i am {{range}}ing
over a slice of structs, and those structs have an element named "A", how to i
refer to an "A" from one level up?
18:12 -!- fvbommel [~fvbommel_@] has joined #go-nuts
18:14 < skelterjohn|work> the answer: assign it to a variable before the
18:14 < kevlar_work> skelterjohn|work, I think you have to assign another
var to a
18:14 < skelterjohn|work> :)
18:14 < kevlar_work> indeed.
18:14 < kevlar_work> though I thought the parent-struct's-member search was
taken out anyway
18:15 < kevlar_work> so you would've had to do that anyway
18:15 -!- fabled [~fabled@] has quit [Quit: Ex-Chat]
18:15 < skelterjohn|work> i hadn't tried it in the unambiguous case
18:15 < skelterjohn|work> but yes, that makes sense
18:28 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has quit [Remote
host closed the connection]
18:29 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has joined
18:35 < skelterjohn|work> hmm, when i do {{$X=.Y}}, it renders the result
18:36 -!- sacho [~sacho@95-42-118-162.btc-net.bg] has joined #go-nuts
18:37 -!- tavis_rain [~tavisb@24-104-129.146.hfc.mediarain.com] has quit [Quit:
18:38 < skelterjohn|work> and i'm not sure what the difference between {{if
.A}}...{{end}} and {{with .A}}...{{end}} is
18:39 < uriel> 18:03 < ww> kind of like openid but much more
18:39 < uriel> ww: openid is already quite insanely overengineered (one of
the many reasons it has been a total flop)
18:41 < ww> uriel: no argument from me, just trying to put in perspective
18:41 < uriel> 17:52 < ww> hrmmm...  any .torrent parser/serialiser
for go?
18:41 < uriel> ww: there are a few, look at the various bt implementations
in http://go-lang.cat-v.org/go-code (I'm sure there are more)
18:41 -!- Locke23rus [~locke23ru@] has joined #go-nuts
18:41 < skelterjohn|work> {{if $X=.Y}}{{end}} seems to do what i want
18:41 < skelterjohn|work> bit of a hack though
18:42 < uriel> ww: btw, that TPB torrent looks delicious...
18:44 -!- tavis_rain [~tavisb@24-104-129.146.hfc.mediarain.com] has joined
18:45 -!- meling_ [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has quit
[Remote host closed the connection]
18:46 < kevlar_work> skelterjohn|work, {{if}} is just a conditional,
{{with}} changes the "here" pointer
18:46 < skelterjohn|work> i see, thanks
18:47 < uriel> kevlar_work: you know what the plan is for switching to the
new template engine?
18:48 < kevlar_work> uriel, no idea.  probably keep hacking on exp until
they like it, then "rip the band-aid off" and make the switch.
18:49 < uriel> kevlar_work: I see, somehow I assumed it was mostly finished
18:49 < kevlar_work> or, contrariwise, delete it if it doesn't come out
looking as pretty as they want.
18:49 < uriel> kevlar_work: russ said the new regexp package was done, any
idea what is the plan for that?
18:49 < kevlar_work> I assume the same, lol
18:50 < skelterjohn|work> i can't imagine they'll abandon the new template
18:50 < skelterjohn|work> it's a lot slicker
18:50 < kevlar_work> they may be able to do the new regexp changes with
gofix, but I don't think they'll be able to do that with template
18:50 < kevlar_work> from everything I've seen, it looks a lot more
complicated and the templates look kinda ugly
18:50 < skelterjohn|work> for some reason exp/template doesn't have a
MustParse function...  just a MustParseFile
18:50 < kevlar_work> (not that I've ever really liked any template
18:50 < skelterjohn|work> kevlar_work: it's a lot more regular and
18:51 < kevlar_work> I like that the default delimiters aren't something
that I use constantly, lol
18:51 < skelterjohn|work> that's nice too :)
18:52 < kevlar_work> maybe they're waiting for autoescape?
18:52 * kevlar_work doesn't know.
18:52 < skelterjohn|work> what do you mean?
18:52 < kevlar_work> context-sensitive autoescaping for HTML, javascript,
and CSS
18:52 < nicka1> Is there an eta for the new regexp package?
18:52 < skelterjohn|work> i see
18:52 < kevlar_work> nicka1, there's never an ETA for anything in Go :)
18:53 < skelterjohn|work> nicka1: it's in exp/regexp right now
18:53 < skelterjohn|work> so you can use it
18:53 < nicka1> I should have examined the package listing a little closer
before starting with the current regexp package :P
18:54 < skelterjohn|work> it's only in the weekly, atm
18:54 < skelterjohn|work> not release
18:55 < uriel> I hope exp/template doesn't get autoescape by default
18:55 < nicka1> yeah I use the weeklies.  I just didn't look very closely
18:55 -!- miker2 [~miker2@] has quit [Ping timeout: 240 seconds]
18:57 < skelterjohn|work> uriel: I don't imagine it will - i remember
someone saying something about how that'd be possible, but it would likely be
something that wrapped the package
18:58 < mukyuu> in the go language runtime, running on linux x86-64, I'm not
seeing any of the runtime debugger messages being printed to stderr, is there
something I'm overlooking?
19:02 < skelterjohn|work> mukyuu: runtime debugger messages?  you mean stuff
like fmt.Fprintf(os.Stderr, msg)?
19:04 < mukyuu> no, stuff like runtime·printf
19:05 < skelterjohn|work> are you calling it in your go code?  cgo C code?
expecting something else to call it?
19:05 < skelterjohn|work> i've never heard of this function (but there is a
lot i've never heard of, so don't let that stop you)
19:05 < mukyuu> no, I'm hacking around within the language runtime itself,
familiarizing myself with the task scheduler used for scheduling goroutines
19:06 < skelterjohn|work> i see.  out of my area of expertise, unfortunately
19:07 < skelterjohn|work> if you're mucking around in the runtime, you are
writing C code, right?  you can't use fprintf(stderr, ...)?
19:07 < mukyuu> I've added some proof of concept code to detect the logical
number of processor cores, that way you don't need to futz around with the
GOMAXPROCS environment variable
19:07 < mukyuu> but I can't see my debug messages, let alone any debug
messages, heh
19:08 < skelterjohn|work> mukyuu: i like the easy way to limit the number of
processes go will use :) but i suppose there are other more standard ways to do
that kind of thing
19:09 < mukyuu> skelterjohn|work, yeah, I'm not making changes to gccgo, not
sure what the differences are with that, but with the core go implementation, it
has zero dependencies, it has it's own subset of libc taken from the Plan9 sources
I think
19:09 < mukyuu> so glibc and much of the posix interfaces aren't available
19:09 < mukyuu> including fprintf
19:09 < skelterjohn|work> i see, very interesting
19:11 < mukyuu> skelterjohn|work, yeah, I'm not removing GOMAXPROCS, and I'm
still using that if it is defined, but if it's not defined, it will auto-detect
19:11 -!- tvw [~tv@] has quit [Read error: Connection reset by peer]
19:11 -!- zcram [~zcram@] has joined #go-nuts
19:11 < mukyuu> the proper way to do it would be to let the
user/administrator specify a processor and/or processor group affinity masks
19:12 < mukyuu> so they can choose precisely what processors to let a go
process use
19:12 -!- erus` [~chatzilla@cpc2-gill2-0-0-cust701.basl.cable.virginmedia.com] has
joined #go-nuts
19:12 < skelterjohn|work> which sounds like an OS-level thing rather than a
program-level thing
19:12 < mukyuu> because as it stands now, the threads jump around on all of
the CPU cores, even if you only say set GOMAXPROCS to 6 when you have a total of 8
19:12 < mukyuu> yeah
19:13 < skelterjohn|work> generally that's a good thing, w/r/t CPU
temperature, etc
19:14 < mukyuu> it can, but it's a bad thing for performance (and also CPU
power utilization), causes a lot of cache thrashing
19:14 < skelterjohn|work> interesting
19:14 < skelterjohn|work> this is not stuff i usually thing about :)
19:15 < mukyuu> heh
19:15 < skelterjohn|work> what were you thinking of doing to the goroutine
19:16 < mukyuu> improve scalability and performance, but right now I'm just
kind of treading the waters, getting a feeling for the code base, maybe fix a few
smaller problems first
19:17 -!- saschpe [~quassel@opensuse/member/saschpe] has quit [Remote host closed
the connection]
19:17 < mukyuu> from what I can tell, the current scheduler just has a
single global queue for all goroutines, and when a worker thread needs a new
goroutine to run, it locks the global queue
19:17 < mukyuu> which is generally bad when it comes to scalability and
19:18 < skelterjohn|work> i can imagine something that groups goroutines
together based on which bits of memory they tend to access could give some nice
19:19 < skelterjohn|work> and only lock when a goroutine wants to jump from
one group to another
19:19 < mukyuu> it's better if each worker thread has it's own queue,
implemented with lock-free/wait-free algorithms, and worker threads can steal jobs
from other works when they become starved, thus you get automatic load-balancing
19:19 < skelterjohn|work> (a group would correspond to a processor)
19:19 < skelterjohn|work> yep, that's what i'm talking about
19:20 -!- noam [~noam@] has quit [Ping timeout: 246
19:21 < mukyuu> yeah
19:21 -!- huin [~huin@] has joined #go-nuts
19:22 < skelterjohn|work> well, sounds fun
19:22 < mukyuu> Linux, Windows, and I believe the BSDs (not sure about OS X
though) provide APIs for determining NUMA nodes and clusters, so you can build
your worker groups around that stuff
19:23 < skelterjohn|work> os x is a BSD
19:23 < skelterjohn|work> but really, how often do you get a many-core mac
19:23 < aiju> very often?
19:23 < skelterjohn|work> people don't run web servers on os x
19:23 < skelterjohn|work> or do they?
19:23 < aiju> yes they do
19:23 < aiju> it's like saying people don't run rails
19:24 < skelterjohn|work> in that it's "not true", i suppose that's a good
analogy =p
19:24 < mukyuu> anyway, need to figure out this dastardly runtime·printf
19:25 < erus`> 10 mins to download a linux distro :) i love my new internet
19:25 < mukyuu> aren't there mbps and macs with core i7s now?  (8 logical
cores if you count hyperthreading)
19:26 < erus`> didnt apple stop making servers?
19:26 < aiju> since when do people care about hyperthreading
19:26 < aiju> jesus christ
19:26 < skelterjohn|work> why wouldn't people care about hyperthreading?
19:26 < mukyuu> well, regular people don't
19:26 < aiju> it's a ridiculous thing
19:26 < mukyuu> people who write task schedulers do
19:26 < skelterjohn|work> what, having two process contexts for each
19:26 < aiju> yeah
19:27 < aiju> just complicates the scheduler
19:27 < skelterjohn|work> i always figured hyperthreading is to multiple
processors as goroutines are to processes
19:27 < skelterjohn|work> since you don't have to do an expensive context
switch to swap the two processes
19:28 < nicka1> So is the exp/regexp package just what's in
19:28 < nicka1> Or am I looking in the wrong place entirely
19:29 < mukyuu> well, it's a bit more than that, when one hardware thread is
blocked waiting on a cache page fetch due to a load/store instruction, the other
hardware thread can still make use of the instruction pipeline
19:29 < mukyuu> it takes advantage of instruction parallelism
19:29 < skelterjohn|work> oh - nicka1 maybe i was wrong about it being
available.  that doesn't look terribly useful.
19:29 < skelterjohn|work> mukyuu: that's why i made the goroutine analogy
19:30 < skelterjohn|work> you can alternate between the two processes
without loading anything into the contexts
19:32 < mukyuu> yeah
19:34 < ArgonneIntern> i think hyperthreading is a good idea
19:34 < ArgonneIntern> although as processors get more and more cores it
becomes less necessary
19:34 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has quit [Quit:
19:34 < skelterjohn|work> of course
19:35 < skelterjohn|work> though if two processes share a lot of memory, it
can still have advantages
19:35 < erus`> i have 4
19:35 < aiju> i don't mind hyperthreading as long as i can turn it off
19:35 < ArgonneIntern> i remember in single core p4's hyperthreading was
pretty good.
19:35 < ArgonneIntern> although p4's themselves kinda suckedlol
19:36 < aiju> that's quite an understatement
19:36 < mukyuu> lol
19:36 < ArgonneIntern> just think, now we have, duh duh duuuuuun, turbo
19:36 -!- noam [~noam@] has joined #go-nuts
19:36 < ArgonneIntern> it's the lastest and greatest
19:36 < nicka1> the p4s were on fire man
19:36 < nicka1> I don't know waht you're talking about
19:36 < skelterjohn|work> i've never heard of turbo boost
19:37 < ArgonneIntern> really
19:37 < ArgonneIntern> i7's come with it
19:37 < skelterjohn|work> i only follow the latest processor news when i'm
making a new computer
19:37 < skelterjohn|work> and i don't have a lot of disposable income right
19:37 < ArgonneIntern> turboboost came on the first i7's
19:37 < ArgonneIntern> I think it's still there
19:38 < skelterjohn|work> the last time i put together a machine was in 2007
19:38 < ArgonneIntern> http://www.intel.com/technology/turboboost/index.htm
19:38 < ArgonneIntern> it's basically a dynamic overclocking system
19:38 < skelterjohn|work> i see
19:38 < aiju> aka cores are always underclocked
19:38 < aiju> and they clock them higher if necessary?
19:39 < skelterjohn|work> the machine i made had a 12% overclock.  was great
for a long time - but my friend's new laptop is faster now :\
19:39 < ArgonneIntern> well some older programs only use one core, but
relied on higher clock cycles, so they tune other cores down and overclock the
single cores
19:39 < ArgonneIntern> sometimes 1 or 2 or whatever, and it monitors power
draw and temp to constatly change the overclocking
19:40 < skelterjohn|work> sounds pretty reasonable
19:40 < ArgonneIntern> off the top of my head, it's useful for everquest 2
19:40 < skelterjohn|work> ok?
19:40 < ArgonneIntern> just trying to give an example
19:41 < skelterjohn|work> hehe
19:41 -!- meling [~meling@cse-dhcp-10-91.ucsd.edu] has joined #go-nuts
19:44 -!- chadkouse [~Adium@rrcs-76-79-233-18.west.biz.rr.com] has quit [Quit:
19:49 -!- jmil [~jmil@2001:468:1802:e148:223:32ff:feb1:9dfc] has joined #go-nuts
19:51 -!- sacho [~sacho@95-42-118-162.btc-net.bg] has quit [Ping timeout: 260
19:56 -!- alehorst [~alehorst@] has quit
[Quit: Leaving.]
19:57 -!- moraes [~moraes@] has quit [Quit: Leaving]
20:00 -!- tvw [~tv@e176000246.adsl.alicedsl.de] has joined #go-nuts
20:02 -!- alehorst [~alehorst@] has joined
20:12 -!- virtualsue [~chatzilla@nat/cisco/x-lyerygmclkxxycjw] has quit [Quit:
ChatZilla 0.9.87 [Firefox 5.0.1/20110707182747]]
20:19 -!- yogib [~yogib@dslb-178-001-023-136.pools.arcor-ip.net] has quit [Quit:
20:27 -!- alexandere [~alexander@eijg.xs4all.nl] has joined #go-nuts
20:31 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has left
#go-nuts []
20:31 -!- alehorst [~alehorst@] has quit
[Remote host closed the connection]
20:37 -!- franciscosouza [~francisco@] has quit [Quit:
20:37 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Remote host closed
the connection]
20:38 -!- franciscosouza [~francisco@] has joined #go-nuts
20:39 < uriel> iant: i know I repeat myself, but you guys *really* should do
something about the spam in the Go lists
20:45 -!- franciscosouza [~francisco@] has quit [Quit:
20:46 -!- tncardoso [~thiago@] has quit [Read error: Connection
reset by peer]
20:47 -!- Fish- [~Fish@9fans.fr] has quit [Quit: WeeChat 0.3.5]
20:49 -!- jbooth1 [~jay@] has quit [Ping timeout: 250 seconds]
20:50 -!- pjacobs [~pjacobs@] has quit [Quit: Leaving]
20:50 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.]
20:51 -!- franciscosouza [~francisco@] has joined #go-nuts
20:54 -!- sacho [~sacho@] has joined #go-nuts
21:01 < erus`> replace the mailing lists with forums :)
21:02 < mukyuu> well, solved my problems, got cpu core count auto-detection
working on linux x86/x86-64, what a pain
21:03 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has quit [Quit: Leaving.]
21:05 < erus`> i thought go told you?
21:08 -!- r_linux [~r_linux@static.] has quit
[Quit: Lost terminal]
21:09 -!- huin [~huin@] has quit [Quit: leaving]
21:09 -!- jdahm [~jdahm@kappa.citi.umich.edu] has left #go-nuts ["WeeChat 0.3.5"]
21:09 < schmichael> if it doesn't python seems to have a decent
crossplatform way:
21:10 < fluffle> ohai.  how can I check whether a channel I want to send on
is closed or not?  the only way I found in the spec was to use the two-arg form of
the receive op, but this blocks on the receive
21:13 < fluffle> should I just try to send and trap the panic?  this seems
wrong :/
21:16 < uriel> fluffle: the sender should close
21:17 < uriel> not the receiver(s)
21:17 -!- napsy [~luka@] has quit [Ping timeout: 258 seconds]
21:17 < uriel> (this really deserves an entry in the wiki, if it doesn't
have one already)
21:18 < fluffle> uriel: the close is actually happening in a shutdown()
routine, unfortunately there appears to be a race condition where a different
goroutine triggers something to send based on data recieved before shutdown() is
called that gets executed afterwards
21:18 < fluffle> the alternative is to set a flag, i guess i'll go that way
21:19 -!- keithcascio [~keithcasc@nat/google/x-tbkbifzsrsnmorcy] has joined
21:19 < uriel> fluffle: again, *only the sender should ever close a channel*
21:19 < uriel> and even then, it rarely so
21:20 < uriel> as others have said, close() should have been called
endrange() or some such
21:20 < fluffle> so should I just not close the channels in this instance?
21:20 < uriel> (changing the name of close() is probably a good idea, just
as deleting container/vector, it seems to confuse people all the time)
21:21 < mukyuu> erus, it does?
21:21 < rm445> uriel: 'the wiki' - is there a go wiki?
21:21 < aiju> rägnarok(ch)
21:21 < uriel> fluffle: there is no need to close a channel unless the
reader is ranging over it
21:21 < fluffle> ref: https://github.com/fluffle/goirc/issues/6 and line
266+ of https://github.com/fluffle/goirc/blob/master/client/commands.go
21:21 < fluffle> uriel: okay, i clearly need to do some more reading, then
21:21 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has quit
[Quit: Leaving...]
21:21 < fluffle> i'll stop calling close instead
21:22 -!- Natch| [~natch@] has quit [Remote host closed the
21:22 < fluffle> can i still safely make() new channels over the top of the
old ones without causing leaks, or should I ensure that's only done at the object
creation time to avoid problems?
21:23 < Namegduf> Yes, you can.
21:23 < fluffle> awesome, thanks :)
21:23 < Namegduf> You don't need to close channels to clean them up.
21:23 < Namegduf> Only close them as a writer, to signal readers that you're
21:23 -!- Locke23rus [~locke23ru@] has quit [Remote host closed the
21:24 < fluffle> thanks for explaining this
21:24 < fluffle> i've not had enough time to keep up with Go dev, or learn
the semantics properly :/.
21:24 < Namegduf> That's fine.
21:29 < fluffle> aha, I do still need to close the Err channel, but that
should be fine as i'm sending on it and using the closedness of it to signal a
disconnect to a waiting listener
21:29 < fluffle> aiui that's what you're saying is a "correct" use of close,
21:29 < Namegduf> Yep.
21:30 < kevlar_work> they specifically changed the semantics of
closedness-checking to make it more difficult for a reader to close the channel or
a writer to check if it's closed; this was a major source of errors originally
21:31 < KirkMcDonald> An easy way to make a race condition.
21:31 < kevlar_work> (people would have the reader close the channel to
signal the writer to stop writing)
21:32 < Namegduf> The old version was also unreliable with multiple readers,
as you could read a legitimate zero, check for closed, and think it was a close,
while another reader read the final closing zero.
21:32 < Namegduf> New semantics are good.
21:32 < fluffle> hmm, the sendss to this channel are still potentially
happening in other goroutines than the close()
21:32 < Namegduf> In that case, you can't use close()
21:32 < fluffle> maybe I should use a different method to communicate to
listeners about the state change
21:33 < kevlar_work> fluffle, or you tell the writer that it's time to close
the channel
21:33 < uriel> close() confuses most newbies, it really should be renamed
(thankfully this days it is harder to mis-use)
21:33 < Namegduf> Yeah.
21:33 < Namegduf> close() says "no more to read", which means "no more is
being written"
21:33 < Namegduf> You need to coordinate things such that nothing more will
be written if you are to use close().
21:34 < kevlar_work> I've idly mused about calling it eof() but that
duplicates an existing concept.
21:34 < fluffle> kevlar_work: the channel is used at various points to dump
error messages out to the code using the library.  Chances are this is a bad
architecture design choice and i shouldn't use it :-)
21:34 < kevlar_work> fluffle, if it's a logging channel, why do you need to
close it?
21:34 < Namegduf> The normal idiom is ", ok" on function calls.
21:35 < Namegduf> (Possibly using panics to skip up the stack internally,
but only internally)
21:35 < fluffle> kevlar_work: because i was using the range idiom to read
the logging info and trigger things on the close
21:35 < kevlar_work> also, for such things, often I use the channel
internally and the callers don't know about it (e.g.  blah.NewLogger() makes and
stores a channel and starts a routine reading from it and writing to file, then
all method calls on the logger send a message on the channel
21:35 < fluffle> again, I'm probably making bad design choices here
21:35 < Namegduf> A logging info channel seems sensible, though
21:35 < kevlar_work> fluffle, what are you triggering off the close?
21:36 < fluffle> https://github.com/fluffle/goirc/blob/master/client.go #
line 79
21:36 < kevlar_work> oh, irc, lol
21:36 * kevlar_work has now accumulated two IRC daemons written in Go.
21:36 < fluffle> it's my standard "learn a new language" exercise
21:36 < kevlar_work> me too!  except with a bot
21:37 < kevlar_work> not a client.
21:37 < fluffle> meh this isn't a full client
21:37 < kevlar_work> !goego channels
21:37 < GoBIR> kevlar_work: Effective Go channels -
21:37 < kevlar_work> ^ my bot :)
21:37 < fluffle> it's a library that does IRC so you can write bots with a
nice event framework
21:37 < fluffle> unfortunately people started using the library, so I have
to fix bugs in it :)
21:37 < kevlar_work> lol
21:37 < nicka1> haha
21:37 < kevlar_work> one of the pitfalls of godashboard
21:38 < kevlar_work> though someone who found my go-gypsy project has been
so helpful that I made him a committer, lol
21:38 < fluffle> nice :D
21:38 -!- sacho [~sacho@] has quit [Ping timeout: 250 seconds]
21:39 < fluffle> so, if i don't close the Err channel, range will sit
infinitely reading
21:39 -!- segv [~segv@sig.segv.net] has joined #go-nuts
21:39 < kevlar_work> correct
21:39 < segv> So, quick question, I'm using "id" and exec.Command to return
the value of id -u username, i keep getting a []uint8
21:39 < kevlar_work> which should be fine if it's just logging information;
devise a way to trigger the events you used to trigger on close that is
21:40 < fluffle> would it be best to make a completely separate 'Quit'
channel that I only strobe once on disconnect, then users can select between them?
21:40 -!- ArgonneIntern [~gauge@mcswl185.mcs.anl.gov] has quit [Ping timeout: 240
21:40 < kevlar_work> fluffle, that would be relatively idiomatic, yes
21:40 < fluffle> ok, great
21:40 < fluffle> thanks :)
21:40 < kevlar_work> though usually event-driven stuff involves registering
callbacks with closures :)
21:40 < kevlar_work> irc.OnQuit( func() { /* blah */ } )
21:41 < fluffle> that's a good point
21:41 < fluffle> I guess I can fire a synthetic event for the disconnect
21:41 < kevlar_work> channels are lovely, but I find that they rarely work
nicely as an externally visible interface
21:41 < kevlar_work> they're great for connecting up internals though.
21:41 < fluffle> yes :)
21:42 < fluffle> ok, i'll go think about this a bit more
21:42 < fluffle> thanks for the help and advice!  :)
21:42 < kevlar_work> segv, do you want to get a string or what?
21:42 < segv> kevlar_work: yes, expecting a string.
21:42 < kevlar_work> []byte is used throughout the standard library for
character data reading adn writing
21:42 < kevlar_work> *and
21:43 < kevlar_work> it is freely convertable to a string
21:43 < kevlar_work> !golang conversions
21:43 < GoBIR> kevlar_work: Spec Section Conversions -
21:43 < segv> I am stumped as to how to, heh.  []uint8 to string isn't a
good google search term i'm guessing haha
21:44 < kevlar_work> var data []byte; ...; s := string(data)
21:44 < segv> ah
21:44 < kevlar_work> see the link my illustrious companion posted.
21:44 < segv> Got it
21:45 < kevlar_work> I'm not sure it mentions it, but keep in mind that
doing string(data) will always cause an allocation
21:45 < kevlar_work> same with []byte(s)
21:46 < kevlar_work> so try to avoid doing it in a loop, and always remember
that pretty much everything in package "strings" is also in package "bytes" and
vice versa
21:46 < segv> id, err := exec.Command("/usr/bin/id", "-u", *user).Output()
so that returning []uint8, would be var data []id; ..  s: = string(data)
21:46 < segv> ah
21:46 < segv> that's good to know
21:46 < segv> thanks for that info, wouldn't have realized that otherwise
21:46 < kevlar_work> output, err := exec.Command(...); id := string(output)
21:46 < segv> ah
21:48 < segv> see, i was overthinking it.
21:49 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
21:51 -!- sacho [~sacho@] has joined #go-nuts
21:53 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
21:56 -!- niemeyer [~niemeyer@] has quit [Ping timeout: 240 seconds]
22:01 -!- nicka [~nicka@unaffiliated/nicka] has quit [Ping timeout: 264 seconds]
22:02 -!- Peet__1 [~Peet__@blk-222-42-163.eastlink.ca] has quit [Ping timeout: 240
22:03 < jlaffaye> can I compare letters with < or > like I would do in
22:03 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has joined
22:03 < exch> 'a' < 'b'
22:03 -!- zmoazeni [~zmoazeni@50-57-89-129.static.cloud-ips.com] has quit [Quit:
22:03 < jlaffaye> (I want to know if the letter is in lower case)
22:04 -!- zmoazeni [~zmoazeni@50-57-89-129.static.cloud-ips.com] has joined
22:05 -!- Peet__ [~Peet__@unaffiliated/peet--/x-2416233] has joined #go-nuts
22:05 < qeed> unicode.IsUpper
22:05 < qeed> or IsLower
22:05 < jlaffaye> d.Name[0] >= 'a' seems to work :)
22:05 < qeed> need an end range for that
22:07 -!- robteix [~robteix@host27.190-30-213.telecom.net.ar] has joined #go-nuts
22:07 -!- berma [~duraffour@ks355364.kimsufi.com] has quit [Ping timeout: 250
22:07 -!- nicka [~nicka@unaffiliated/nicka] has joined #go-nuts
22:09 -!- Natch| [~natch@] has joined #go-nuts
22:12 -!- CatFish [~CatFish@2001:5c0:1400:a::4cf] has quit [Read error: Connection
reset by peer]
22:13 < kevlar_work> qeed, not really
22:14 < segv> yay fixed all my code, works again, thanks kevlar_work
22:15 < kevlar_work> np
22:15 < qeed> i guess it cant go pass z then?
22:15 -!- wrtp [~rog@host-92-30-166-101.as13285.net] has joined #go-nuts
22:18 -!- wrtp [~rog@host-92-30-166-101.as13285.net] has quit [Client Quit]
22:18 -!- franksalim [~frank@64-71-23-250.static.wiline.com] has joined #go-nuts
22:18 < kevlar_work> qeed, if you only care about ascii letters, >'Z' is
a fine way to check for lowercase and < 'a' is a fine way to check for
22:19 < kevlar_work> especially if the check is only used to do case
folding, after which you can do a normal ch-'a' check against 0 and 26.
22:21 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has quit
[Quit: Computer has gone to sleep.]
22:25 -!- tvw [~tv@e176000246.adsl.alicedsl.de] has quit [Remote host closed the
22:27 -!- photron [~photron@port-92-201-42-78.dynamic.qsc.de] has quit [Ping
timeout: 252 seconds]
22:30 -!- moraes [~moraes@] has joined #go-nuts
22:35 -!- angasule [~angasule@] has joined #go-nuts
22:41 -!- robteix [~robteix@host27.190-30-213.telecom.net.ar] has quit [Quit:
22:43 -!- franciscosouza [~francisco@] has quit [Quit: franciscosouza]
22:43 -!- rlab [~Miranda@] has quit [Read error: Connection reset by
22:45 -!- NiteRain [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has joined
22:52 -!- robteix [~robteix@host27.190-30-213.telecom.net.ar] has joined #go-nuts
22:54 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has joined
22:54 -!- ronnyy [~quassel@p4FF1C427.dip0.t-ipconnect.de] has joined #go-nuts
22:55 -!- dfr|mac [~dfr|work@nat/google/x-swdccqfjqiryntsn] has quit [Ping
timeout: 258 seconds]
22:56 -!- Bigbear1 [~Cody@d75-158-129-33.abhsia.telus.net] has joined #go-nuts
23:00 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has quit
[Quit: Computer has gone to sleep.]
23:01 -!- alexandere [~alexander@eijg.xs4all.nl] has quit [Quit: alexandere]
23:14 -!- tavis_rain [~tavisb@24-104-129.146.hfc.mediarain.com] has quit [Read
error: Connection reset by peer]
23:16 -!- franciscosouza [~francisco@] has joined #go-nuts
23:17 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 255 seconds]
23:19 -!- Vejeta [~user@unaffiliated/vejeta] has joined #go-nuts
23:19 -!- ronnyy [~quassel@p4FF1C427.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
23:25 -!- robteix [~robteix@host27.190-30-213.telecom.net.ar] has quit [Ping
timeout: 258 seconds]
23:28 -!- erus` [~chatzilla@cpc2-gill2-0-0-cust701.basl.cable.virginmedia.com] has
quit [Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]]
23:39 -!- sacho [~sacho@] has quit [Ping timeout: 250 seconds]
23:44 -!- sacho [~sacho@] has joined #go-nuts
23:50 -!- garym [~garym@203-219-89-242.static.tpgi.com.au] has quit [Quit:
23:50 -!- sacho [~sacho@] has quit [Ping timeout: 240 seconds]
--- Log closed Fri Jul 22 00:00:01 2011