--- Log opened Thu Sep 30 00:00:08 2010 00:06 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit: This computer has gone to sleep] 00:23 -!- ExtraSpice [~XtraSpice@88.118.34.223] has quit [Ping timeout: 240 seconds] 00:31 -!- navigator [~navigator@p54894137.dip.t-dialin.net] has quit [Quit: WeeChat 0.3.3] 00:36 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by peer] 00:44 -!- thomas_b [~thomasb@cm-84.215.47.51.getinternet.no] has joined #go-nuts 00:56 -!- iant1 [~iant@67.218.106.122] has quit [Quit: Leaving.] 01:05 -!- major_majors [~major_maj@c-68-40-195-246.hsd1.mi.comcast.net] has joined #go-nuts 01:06 -!- l00t [~i-i3id3r_@20150152121.user.veloxzone.com.br] has joined #go-nuts 01:08 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has joined #go-nuts 01:12 -!- mikespook [~mikespook@58.61.204.60] has joined #go-nuts 01:18 -!- major_majors [~major_maj@c-68-40-195-246.hsd1.mi.comcast.net] has quit [Quit: major_majors] 01:21 -!- scm [scm@d038063.adsl.hansenet.de] has quit [Ping timeout: 240 seconds] 01:23 -!- scm [scm@d039096.adsl.hansenet.de] has joined #go-nuts 01:26 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts 01:34 < plexdev> http://is.gd/fBk0Q by [Andrew Gerrand] in go/doc/ -- doc: faq updates part one 01:43 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined #go-nuts 01:58 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts 01:58 -!- mode/#go-nuts [+v iant] by ChanServ 02:06 < plexdev> http://is.gd/fBmsl by [Andrew Gerrand] in go/misc/dashboard/builder/ -- misc/dashboard/builder: remove build files after benchmarking 02:06 < plexdev> http://is.gd/fBmso by [Andrew Gerrand] in 3 subdirs of go/src/pkg/ -- archive/zip: new package for reading ZIP files 02:37 -!- Tv [~tv@gige.bur.digisynd.com] has quit [Disconnected by services] 02:37 -!- Tv1 [~tv@gige.bur.digisynd.com] has joined #go-nuts 02:40 -!- adu [~ajr@pool-173-66-253-121.washdc.fios.verizon.net] has joined #go-nuts 02:42 -!- Tv1 [~tv@gige.bur.digisynd.com] has quit [Ping timeout: 265 seconds] 02:45 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 02:46 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has joined #go-nuts 02:52 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has joined #go-nuts 02:59 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 03:00 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has joined #go-nuts 03:04 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has quit [Client Quit] 03:07 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts 03:07 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping timeout: 245 seconds] 03:08 -!- iant [~iant@216.239.45.130] has joined #go-nuts 03:08 -!- mode/#go-nuts [+v iant] by ChanServ 03:13 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has quit [Ping timeout: 240 seconds] 03:20 -!- major_majors [~major_maj@173-10-44-57-Michigan.hfc.comcastbusiness.net] has joined #go-nuts 03:23 < plexdev> http://is.gd/fBs50 by [Russ Cox] in go/src/pkg/ -- build: disable archive/zip on arm 03:23 < plexdev> http://is.gd/fBs58 by [David Symonds] in go/src/cmd/prof/ -- 6prof: more accurate usage message. 03:23 < plexdev> http://is.gd/fBs5w by [Stephen Ma] in go/doc/codelab/wiki/ -- doc: update http handler usage for new signature 03:23 < plexdev> http://is.gd/fBs75 by [Stephen Ma] in go/src/pkg/http/ -- http: fix http handler signature changes previously missed 03:31 -!- msponer [~user@cpe-66-75-33-237.san.res.rr.com] has joined #go-nuts 03:37 -!- major_majors [~major_maj@173-10-44-57-Michigan.hfc.comcastbusiness.net] has quit [Quit: major_majors] 03:38 -!- major_majors [~major_maj@173-10-44-57-Michigan.hfc.comcastbusiness.net] has joined #go-nuts 03:39 -!- major_majors [~major_maj@173-10-44-57-Michigan.hfc.comcastbusiness.net] has quit [Read error: Connection reset by peer] 03:39 -!- major_majors [~major_maj@173-10-44-57-Michigan.hfc.comcastbusiness.net] has joined #go-nuts 03:51 -!- scm [scm@d039096.adsl.hansenet.de] has quit [Ping timeout: 255 seconds] 03:53 -!- scm [scm@d038077.adsl.hansenet.de] has joined #go-nuts 03:54 -!- itrekkie [~itrekkie@ip72-200-110-29.tc.ph.cox.net] has joined #go-nuts 03:55 < plexdev> http://is.gd/fBu1B by [Andrew Gerrand] in go/doc/ -- doc: add to and consolidate non-english doc references 04:15 -!- artefon [~thiago@189.59.202.120] has quit [Remote host closed the connection] 04:18 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds] 04:22 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has quit [Ping timeout: 265 seconds] 04:33 -!- msponer [~user@cpe-66-75-33-237.san.res.rr.com] has left #go-nuts ["ERC Version 5.3 (IRC client for Emacs)"] 04:36 -!- msponer [~user@cpe-66-75-33-237.san.res.rr.com] has joined #go-nuts 04:36 < msponer> This is my first few hours with Go. I am parsing ~1 GB XML files, and don't see a way in the XML or File API to measure progress through the file. Should I just make a new Reader that sits inbetween the File and XML Parser, and counts bytes as they go through? Or am I missing something? 04:37 -!- zozoR [~zozoR@4705ds1-ris.0.fullrate.dk] has joined #go-nuts 04:39 -!- itrekkie [~itrekkie@ip72-200-110-29.tc.ph.cox.net] has quit [Quit: itrekkie] 04:44 -!- major_majors [~major_maj@173-10-44-57-Michigan.hfc.comcastbusiness.net] has quit [Read error: Operation timed out] 04:45 < xb95> msponer: You could do that, that'd probably work well. I don't know how to do it using the XML or File API as it stands, but I'm not intimately familiar with them. 04:47 -!- major_majors_ [~major_maj@173-10-44-57-Michigan.hfc.comcastbusiness.net] has joined #go-nuts 04:53 < msponer> Ok. Thank you. 04:53 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-177-190.clienti.tiscali.it] has joined #go-nuts 04:54 * Project_2501 yawn :/ 04:55 -!- itrekkie [~itrekkie@ip72-200-110-29.tc.ph.cox.net] has joined #go-nuts 05:00 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit: This computer has gone to sleep] 05:01 -!- scm [scm@d038077.adsl.hansenet.de] has quit [Ping timeout: 276 seconds] 05:02 -!- scm [scm@d070220.adsl.hansenet.de] has joined #go-nuts 05:09 -!- jhh [~jhh@e179096172.adsl.alicedsl.de] has joined #go-nuts 05:11 -!- res [c9ed8246@gateway/web/freenode/ip.201.237.130.70] has joined #go-nuts 05:12 -!- Eridius [~kevin@unaffiliated/eridius] has quit [Ping timeout: 240 seconds] 05:27 -!- fabled [~fabled@letku109.adsl.netsonic.fi] has joined #go-nuts 05:35 < uriel> msponer: ~1Gb XML files? oh dear, oh dear... 05:36 < enferex> ppppppp pageing 05:36 < enferex> heheh :-) 05:41 < enferex> msponer: I must say handling 1GB files, that does seem rather nice that the runtime can handle such large datasets. I'd be interested in the performance. 05:41 -!- SRabbelier [~SRabbelie@ip138-114-211-87.adsl2.static.versatel.nl] has quit [Read error: Connection reset by peer] 05:43 < msponer> Haha. Yes, I am curious about how well it will work. I am hoping it will be faster than the Win32 MSXML -> SQLite system this code uses now. The data set is usually several to a couple dozen ~1GB XML files. 05:44 < msponer> I think I am personally responsible for the author of SQLite putting a size limit on it's tables. :) 05:45 < msponer> I bought a support contract from him to help tune the SQL queries, and he added the limit soon after. 05:52 -!- jrslepak [~jrslepak@71-13-223-16.dhcp.mrqt.mi.charter.com] has joined #go-nuts 05:52 -!- jrslepak [~jrslepak@71-13-223-16.dhcp.mrqt.mi.charter.com] has quit [Client Quit] 05:53 -!- SRabbelier [~SRabbelie@ip138-114-211-87.adsl2.static.versatel.nl] has joined #go-nuts 06:00 < nf_> why what huh 06:00 < nf_> why on earth would you have a ~1gb XML file? 06:01 < msponer> 3.2 megs/second to just scan through 1096meg XML file on my 2ghz MacBook... 06:01 < nf_> msponer: that sounds like a reasonable solution. you could have it send the byte count on a channel to a goroutine that periodically prints out the progress 06:03 -!- gabriel9 [~gabriel9@93.157.192.28] has joined #go-nuts 06:03 < msponer> Ahh, good idea. This is really my fourth hour with Go and I need to re-read the section of passing variables. I think the Reader wrapper class I made is being passed by value inside the XML parser, since the progress variable is being reset with every read. 06:04 < msponer> The enormous XML files aren't my choice, of course. This is a mobile analytics program, and the data comes from companies upstream of us. 06:05 < msponer> ~1gb/month is a typical dataset for a medium sized company in this niche, and we've been in business for 7 or 8 years... 06:06 < nf_> "class"? there are no classes ;) 06:06 < msponer> I am happy. The XML parsing code seems to be working great, and the program was I/O bound, and didn't freak out with memory allocation or anything nutty like that. 06:07 < msponer> I have no class? 06:07 < nf_> feel free to post code on a pastebin if you want me to take a look at it 06:07 < enferex> you have a type 06:08 < msponer> That would be embarassing-- I started with "hello world" and kept modifying it until it was reading xml files. But sure. 06:09 -!- major_majors_ [~major_maj@173-10-44-57-Michigan.hfc.comcastbusiness.net] has quit [Quit: major_majors_] 06:14 < msponer> Ok, thank you for taking a look at this: http://pastebin.com/14FLnENe 06:15 -!- itrekkie [~itrekkie@ip72-200-110-29.tc.ph.cox.net] has quit [Quit: itrekkie] 06:15 < msponer> I probably just don't understand the semantics, why the variable in the struct is not surviving subsequent calls. 06:18 < msponer> Sample output: File size: 1097m 06:18 < msponer> pr Read: 4096 pos: 4096 pr.Pos: 4096 06:18 < msponer> pr Read: 4096 pos: 8192 pr.Pos: 4096 06:18 < msponer> pr Read: 4096 pos:12288 pr.Pos: 4096 06:18 < msponer> 06:18 -!- ExtraSpice [~XtraSpice@88.118.34.223] has joined #go-nuts 06:19 < nf_> msponer: declare the functions on *progressReader instead of progressReader 06:19 < nf_> func (pr progressReader) Read(b []byte) 06:19 < nf_> is the same as 06:19 < nf_> func Read(pr progressReader, b []byte) 06:19 < nf_> semantically 06:19 < nf_> (not in terms of how it's used) 06:20 < nf_> when you call somePr.Read(b) it's just passing in a copy of somePr 06:20 < nf_> pass in the pointer, and you can update the struct 06:24 < msponer> Great, thank you. 06:25 < msponer> I suspected something like that, but then just freaked out and started adding *'s everywhere and got a "method requires pointer receiver" compiler error, and decided that I should RTFM and learn the terminology. 06:27 -!- mduft [~mduft@gentoo/developer/mduft] has quit [Remote host closed the connection] 06:30 < nf_> just remember this: all values are copied 06:30 < nf_> ti's just that when you copy a pointer value, it's still pointing to the same thing ;) 06:31 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts 06:34 -!- itrekkie [~itrekkie@ip72-200-110-29.tc.ph.cox.net] has joined #go-nuts 06:35 -!- itrekkie [~itrekkie@ip72-200-110-29.tc.ph.cox.net] has quit [Client Quit] 06:37 < msponer> Is "golang" the keyword for Go related Google searches? 06:40 < msponer> Ahh, just found http://www.google.com/cse/home?cx=003538345765652431974:5nbobem3igq 06:41 -!- Eko [~eko@res-128-61-89-71.res.gatech.edu] has joined #go-nuts 06:41 < uriel> msponer: http://go-lang.cat-v.org/go-search 06:42 -!- mduft [~mduft@gentoo/developer/mduft] has joined #go-nuts 06:42 < uriel> by the way, if anyone wants to help maintain that custom search engine, more editors are very welcome 06:48 -!- msponer [~user@cpe-66-75-33-237.san.res.rr.com] has left #go-nuts ["ERC Version 5.3 (IRC client for Emacs)"] 06:48 -!- msponer [~user@cpe-66-75-33-237.san.res.rr.com] has joined #go-nuts 07:16 -!- fuzzybyte [~fuzzybyte@77.79.7.8] has quit [Read error: Operation timed out] 07:17 -!- zerd [~quassel@tor.zerd.net] has quit [Read error: Connection reset by peer] 07:18 -!- zerd [~quassel@tor.zerd.net] has joined #go-nuts 07:19 -!- fuzzybyte [~fuzzybyte@77.79.7.8] has joined #go-nuts 07:19 -!- itrekkie [~itrekkie@ip72-200-110-29.tc.ph.cox.net] has joined #go-nuts 07:20 -!- zozoR [~zozoR@4705ds1-ris.0.fullrate.dk] has quit [Quit: Morten. Desu~] 07:26 -!- ikaros [~ikaros@dslb-094-219-218-241.pools.arcor-ip.net] has joined #go-nuts 07:28 -!- noktoborus [~noktoboru@host-208-107.hosts.vtc.ru] has joined #go-nuts 07:28 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 07:29 -!- msponer [~user@cpe-66-75-33-237.san.res.rr.com] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 07:29 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 07:31 -!- wrtp [~rog@92.17.2.31] has joined #go-nuts 07:36 -!- quag [~quag@121-98-81-61.bitstream.orcon.net.nz] has quit [Ping timeout: 240 seconds] 07:36 -!- quag [~quag@121-98-81-61.bitstream.orcon.net.nz] has joined #go-nuts 07:42 -!- fabled [~fabled@letku109.adsl.netsonic.fi] has quit [Ping timeout: 264 seconds] 07:42 < plexdev> http://is.gd/fBLRT by [Andrew Gerrand] in 2 subdirs of go/ -- release.2010-09-29 07:50 -!- ucasano [~ucasano@95.231.79.71] has joined #go-nuts 07:52 -!- emmanueloga [~emmanuelo@190.244.14.111] has quit [Ping timeout: 252 seconds] 07:53 -!- photron [~photron@port-92-201-135-146.dynamic.qsc.de] has joined #go-nuts 07:55 -!- fabled [~fabled@xdsl-83-150-94-237.nebulazone.fi] has joined #go-nuts 08:00 < plexdev> http://is.gd/fBN98 by [Andrew Gerrand] in go/ -- tag release.2010-09-29 08:02 -!- sacho [~sacho@95-42-116-140.btc-net.bg] has quit [Ping timeout: 276 seconds] 08:02 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has quit [Quit: Ex-Chat] 08:05 -!- wrtp [~rog@92.17.2.31] has quit [Ping timeout: 240 seconds] 08:11 -!- bmizerany [~bmizerany@208.66.27.62] has quit [Remote host closed the connection] 08:12 -!- wrtp [~rog@92.17.2.31] has joined #go-nuts 08:14 -!- AngryParsley [~AngryPars@unaffiliated/angryparsley] has quit [Quit: ZNC - http://znc.sourceforge.net] 08:14 -!- AngryParsley [~AngryPars@unaffiliated/angryparsley] has joined #go-nuts 08:28 -!- niemeyer [~niemeyer@91.189.88.12] has joined #go-nuts 08:31 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has joined #go-nuts 08:32 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 08:33 -!- ucasano [~ucasano@95.231.79.71] has quit [Quit: ucasano] 08:34 -!- ucasano [~ucasano@95.231.79.71] has joined #go-nuts 08:38 -!- adu_ [~ajr@pool-173-66-253-25.washdc.fios.verizon.net] has joined #go-nuts 08:39 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 08:40 -!- adu [~ajr@pool-173-66-253-121.washdc.fios.verizon.net] has quit [Ping timeout: 245 seconds] 08:40 -!- ronnyy [~quassel@p4FF1D135.dip.t-dialin.net] has joined #go-nuts 08:41 -!- melba [~a@85.11.190.15] has joined #go-nuts 08:41 -!- melba [~a@85.11.190.15] has quit [Changing host] 08:41 -!- melba [~a@unaffiliated/lazz0] has joined #go-nuts 08:53 -!- adu_ [~ajr@pool-173-66-253-25.washdc.fios.verizon.net] has quit [Ping timeout: 245 seconds] 08:56 -!- jmettraux [~jmettraux@211.19.55.177] has quit [Remote host closed the connection] 09:01 -!- serverhorror [~serverhor@chello080109038110.17.14.vie.surfer.at] has joined #go-nuts 09:11 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-177-190.clienti.tiscali.it] has quit [Read error: Connection reset by peer] 09:11 -!- noktoborus [~noktoboru@host-208-107.hosts.vtc.ru] has quit [Ping timeout: 240 seconds] 09:15 -!- noktoborus [~noktoboru@host-208-107.hosts.vtc.ru] has joined #go-nuts 09:16 -!- chressie [~chressie@dreggn.in-ulm.de] has quit [Quit: WeeChat 0.3.3] 09:17 -!- chressie [~chressie@dreggn.in-ulm.de] has joined #go-nuts 09:19 -!- ExtraSpice [~XtraSpice@88.118.34.223] has quit [Read error: Connection reset by peer] 09:21 -!- ikaros [~ikaros@dslb-094-219-218-241.pools.arcor-ip.net] has quit [Quit: Leave the magic to Houdini] 09:23 -!- virtualsue [~chatzilla@nat/cisco/x-fjiozltujunbiiwb] has joined #go-nuts 09:27 -!- scyth [~scyth@rots.in.rs] has quit [Disconnected by services] 09:27 -!- scyth_ [~scyth@rots.in.rs] has joined #go-nuts 09:27 -!- scyth [~scyth@zeljko.eunet.rs] has joined #go-nuts 09:30 -!- mikespook [~mikespook@58.61.204.60] has quit [Quit: Leaving.] 09:31 -!- mikespook [~mikespook@58.61.204.60] has joined #go-nuts 09:33 -!- mikespook [~mikespook@58.61.204.60] has quit [Client Quit] 09:34 -!- chressie [~chressie@dreggn.in-ulm.de] has quit [Quit: WeeChat 0.3.3] 09:35 -!- chressie [~chressie@dreggn.in-ulm.de] has joined #go-nuts 09:37 -!- nighty^ [~nighty@x122091.ppp.asahi-net.or.jp] has joined #go-nuts 09:49 -!- photron [~photron@port-92-201-135-146.dynamic.qsc.de] has quit [Ping timeout: 276 seconds] 09:52 -!- Rennex [rennex@giraf.fi] has quit [Ping timeout: 240 seconds] 09:58 -!- jdp [jdp@24.238.32.162.res-cmts.segr.ptd.net] has quit [] 10:16 -!- Rennex [rennex@giraf.fi] has joined #go-nuts 10:21 -!- adu [~ajr@pool-173-66-253-121.washdc.fios.verizon.net] has joined #go-nuts 10:26 < ucasano> hi 10:26 < ucasano> a question: which is the most stable and usable go mysql interface library? 10:26 < ucasano> I tried gomysql but seems not to be working :( 10:29 -!- l00t [~i-i3id3r_@20150152121.user.veloxzone.com.br] has quit [Quit: Leaving] 10:30 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 265 seconds] 10:38 -!- tvw [~tv@212.79.9.150] has quit [Ping timeout: 240 seconds] 10:42 -!- ucasano [~ucasano@95.231.79.71] has quit [Ping timeout: 265 seconds] 10:43 -!- Cyprien_ [~Cyprien@186-156.3-85.cust.bluewin.ch] has quit [Ping timeout: 252 seconds] 10:47 -!- gabriel9 [~gabriel9@93.157.192.28] has quit [Remote host closed the connection] 10:50 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 240 seconds] 10:53 -!- gabriel9 [~gabriel9@93.157.192.28] has joined #go-nuts 10:56 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 11:04 -!- scm [scm@d070220.adsl.hansenet.de] has quit [Quit: leaving] 11:04 -!- scm [scm@d070220.adsl.hansenet.de] has joined #go-nuts 11:19 -!- adu [~ajr@pool-173-66-253-121.washdc.fios.verizon.net] has quit [Quit: adu] 11:20 -!- virtualsue [~chatzilla@nat/cisco/x-fjiozltujunbiiwb] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.13/20100914122142]] 11:38 -!- adu [~ajr@pool-173-66-253-121.washdc.fios.verizon.net] has joined #go-nuts 11:38 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 11:39 < nf_> ( http://github.com/thoj/Go-MySQL-Client-Library ? ) 11:43 < wrtp> nf_: he's gone... 11:46 < nf_> i looked through the ones listed at http://godashboard.appspot.com/project 11:47 < nf_> that seemed most current 11:50 -!- artefon [~thiago@187.114.52.95] has joined #go-nuts 12:01 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 272 seconds] 12:02 < wrtp> nf_: BTW what do you think of this: rog-go.googlecode.com/hg/extend ? abuse of reflection or quite elegant? 12:15 -!- iant [~iant@216.239.45.130] has quit [Quit: Leaving.] 12:19 -!- cenuij [~cenuij@base/student/cenuij] has quit [Remote host closed the connection] 12:23 -!- kanru [~kanru@218-161-125-110.dynamic.hinet.net] has joined #go-nuts 12:25 -!- Maxdamantus [~m@203-97-238-106.cable.telstraclear.net] has quit [Ping timeout: 252 seconds] 12:33 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has joined #go-nuts 12:43 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 12:45 -!- tensorpudding [~user@99.148.202.191] has joined #go-nuts 12:45 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has joined #go-nuts 12:51 -!- prip [~foo@host36-126-dynamic.36-79-r.retail.telecomitalia.it] has quit [Quit: Leaving] 12:51 < nf_> i think it's kinda cute 12:52 -!- skejoe [~skejoe@188.114.142.231] has joined #go-nuts 12:52 < nf_> conceptually it's pretty, but being 8x slower it's actually no more succinct than using vector 12:52 < nf_> closures are great :) 12:52 < nickaugust> i was going to say isnt that the same as what a vector does 12:53 < wrtp> it's not faster but it is more succinct :-) it always rankles a little bit adding that extra loop to make the copy at the end. 12:54 < wrtp> it's a pity that reflection is so... slow... 12:55 < wrtp> nickaugust: it does what a vector is probably most often used for. 12:57 < wrtp> i think all the time is going into this line: v.Elem(len).SetValue(reflect.NewValue(x)) 12:58 < wrtp> and i can't think how to speed it up, even using unsafe 13:00 -!- ucasano [~ucasano@host153-182-static.227-95-b.business.telecomitalia.it] has joined #go-nuts 13:00 -!- adu [~ajr@pool-173-66-253-121.washdc.fios.verizon.net] has quit [Quit: adu] 13:00 < wrtp> if reflect didn't do an allocation for every NewValue, things would be better, i think. 13:01 < wrtp> maybe reflect.Value should not be an interface. 13:01 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 13:04 < nickaugust> wrtp: is v.Elem(len).SetValue(reflect.NewValue(x)) slow? I do that quite often in my project 13:04 < wrtp> well, it does at least two allocations 13:04 < nickaugust> i dont know how it wouldnt do a new allocation on NewValue.. 13:05 < wrtp> slow here is relative to just converting to interface{} and assigning to an array element 13:05 -!- kanru [~kanru@218-161-125-110.dynamic.hinet.net] has quit [Ping timeout: 265 seconds] 13:05 -!- Maxdamantus [~m@203-97-238-106.cable.telstraclear.net] has joined #go-nuts 13:05 < wrtp> it can't avoid it - all the Value instances are pointers 13:05 < nickaugust> as in 'probably fast enough' for me anyway :) 13:05 < wrtp> yeah. we're talking sub microsecond here. 13:07 < wrtp> it's hard to see how to avoid an allocation, as converting something larger than a pointer to an interface with methods also does an allocation. 13:08 -!- iant [~iant@67.218.106.122] has joined #go-nuts 13:08 -!- mode/#go-nuts [+v iant] by ChanServ 13:09 -!- kanru [~kanru@218-161-125-110.dynamic.hinet.net] has joined #go-nuts 13:10 -!- mduft [~mduft@gentoo/developer/mduft] has quit [Read error: Connection reset by peer] 13:10 -!- mduft [~mduft@gentoo/developer/mduft] has joined #go-nuts 13:14 -!- noktoborus [~noktoboru@host-208-107.hosts.vtc.ru] has quit [Ping timeout: 240 seconds] 13:22 -!- emmanueloga [~emmanuelo@190.244.14.111] has joined #go-nuts 13:24 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 13:24 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 13:29 -!- DerHorst [~Horst@e176107132.adsl.alicedsl.de] has joined #go-nuts 13:32 -!- noktoborus [~noktoboru@host-208-107.hosts.vtc.ru] has joined #go-nuts 13:33 -!- prip [~foo@host36-126-dynamic.36-79-r.retail.telecomitalia.it] has joined #go-nuts 13:34 -!- iant [~iant@67.218.106.122] has quit [Ping timeout: 276 seconds] 13:38 -!- emmanueloga [~emmanuelo@190.244.14.111] has quit [Ping timeout: 240 seconds] 13:43 -!- iant [~iant@67.218.106.122] has joined #go-nuts 13:43 -!- mode/#go-nuts [+v iant] by ChanServ 13:45 -!- iant [~iant@67.218.106.122] has quit [Client Quit] 13:50 -!- emmanueloga [~emmanuelo@host52.190-30-10.telecom.net.ar] has joined #go-nuts 14:09 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has quit [Quit: Ex-Chat] 14:12 -!- iant [~iant@nat/google/x-qpylqgunbnjzwrdj] has joined #go-nuts 14:12 -!- mode/#go-nuts [+v iant] by ChanServ 14:17 < Gertm> when making a method, is it better to work on a pointer of a type or on the type? (in the receiver clause) 14:17 <+iant> it depends 14:17 <+iant> often the pointer is simpler 14:18 -!- kanru [~kanru@218-161-125-110.dynamic.hinet.net] has quit [Ping timeout: 264 seconds] 14:18 < Gertm> why is that? 14:18 <+iant> but for a small type where the receiver is not changed a value can be better 14:18 -!- mbohun [~mbohun@ppp115-156.static.internode.on.net] has joined #go-nuts 14:18 < Gertm> ah 14:18 <+iant> using a pointer only requires passing a pointer, not the whole value 14:18 -!- kingfishr_ [~kingfishr@75.sub-97-255-45.myvzw.com] has joined #go-nuts 14:18 < Gertm> Ah yea, I keep forgetting that. (go is my first pointy language) 14:21 < wrtp> Gertm: if the methods have side effects on the receiver, then you it's usually necessary to make the receiver a pointer type. 14:21 -!- Venom_X [~pjacobs@66.54.185.131] has joined #go-nuts 14:21 < wrtp> Gertm: 'cos otherwise you can't change the fields in the receiver. (well, you can, but the changes will be lost, because they're being made on a copy) 14:22 < Gertm> wrtp: ah, that actually makes a lot of sense 14:22 < Gertm> Being used to functional languages, that will take some adjusting :) 14:23 -!- hokapoka [~hokapoka@hoka.hokapoka.com] has quit [Read error: Operation timed out] 14:24 -!- navigator [~navigator@p54897915.dip.t-dialin.net] has joined #go-nuts 14:24 < kingfishr_> I have a type question -- is it possible to write a function which binds arguments to a function? (partially applies them). Like this: http://pastie.org/1191380, but for arbitrary types (or even an arbitrary # of arguments). 14:27 < wrtp> kingfishr: i don't think so. you can't use reflection to create a new function, unless you know the resultant type already. 14:29 < wrtp> nf_: using some horrible unsafe hackery i managed to get the overhead of Pusher vs extend down to 60%. 14:29 < wrtp> for types with size < sizeof(uintptr) anyway 14:29 < wrtp> s/vs extend/vs vector/ 14:30 < kingfishr_> wrtp: ok, thanks 14:34 -!- ikaros [~ikaros@dslb-094-219-218-241.pools.arcor-ip.net] has joined #go-nuts 14:36 -!- kingfishr_ [~kingfishr@75.sub-97-255-45.myvzw.com] has quit [Quit: Leaving] 14:40 < nickaugust> wrtp: can i see that? 14:42 < Gertm> if all the files in a package need the same 'package <name>' line, where do I put my 'main' function then? 14:43 < nickaugust> Gertm: in package main :) 14:43 < wrtp> nickaugust: http://rog-go.googlecode.com/hg/extend 14:43 < wrtp> nickaugust: (excuse me while i wipe the vomit off my chin :-]) 14:45 < wrtp> who says you can't do pointer arithmetic in go? :-) 14:46 < nickaugust> wow. i'll stick with vector for the time being :) 14:47 < wrtp> well, the interface remains the same, and that's the important thing. 14:47 < wrtp> the implementation will clean up once reflect gets faster 14:47 < nickaugust> i didnt realize you could do val, ok := blah.(*reflect.Type) or whatever.. thats handy 14:48 < wrtp> basically, it's very hard to do reflecty kinda stuff without allocating. 14:48 < nickaugust> you think they will change that in reflect? 14:48 < wrtp> i think it's the only thing they can do to speed things up. 14:49 < wrtp> maybe there's another way. but i can't see that there was anything much else slowing things down. 14:49 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has joined #go-nuts 14:49 < nickaugust> is there a function that will copy a refect.StructValue to an actual struct? 14:50 < wrtp> just call Interface() 14:50 < nickaugust> i wish after doing the type assertions you could just use the value as a struct rather than a reflect.StructValue... i guess thats not possible though? 14:50 < wrtp> and then convert it to the correct type 14:50 < wrtp> you can 14:51 < nickaugust> hmm let me try that. i guess thats another allocation though 14:51 < wrtp> type T struct {a, b int}; x := T{1,43}; v := reflect.NewValue(x).(*reflect.StructValue).Interface().(T); print(x.a) 14:51 < wrtp> i don't think it is 14:52 < wrtp> probably depends how big the type is 14:52 < wrtp> oops; s/print\(x.a\)/print(v.a)/ 14:52 < nickaugust> yeah i got that... hmm i didnt know you could do that 14:54 < wrtp> do what? 14:54 < nickaugust> (reflect.StructValue).Interface().(T) 14:55 < nickaugust> in my project i dont know the type to do a type assertion though... all i know is its a struct 14:55 < nickaugust> is there a way to use the Name() of StructType to do a type assertion? 14:56 < wrtp> if you don't know the type, you've got to remain in Reflection Land. 14:56 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has joined #go-nuts 14:57 < wrtp> a type assertion asserts that you know the type in question. you don't know the type, so you can't do a type assertion. simple really. 14:58 < nickaugust> wrtp: thats what i dont understand because doing obj.Type().(*reflect.StructType).Name() will return the name of the struct type.. so why cant you use that info to do the assertion? 14:59 < wrtp> because the compiler has to know the type too 14:59 < wrtp> and the string returned by Name is dynamic - the compiler cannot possibly know what it's going to return. 15:00 < nickaugust> ah! yes ok that makes sense.. it gets the name at runtime not compile time.. of course 15:00 < wrtp> at a basic level, the compiler has to allocate enough space on the stack for the value. 15:00 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 245 seconds] 15:00 -!- awidegreen [~quassel@62.176.237.78] has joined #go-nuts 15:00 < nickaugust> yes yes yes ok... i understand 15:00 < wrtp> cool 15:01 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts 15:01 < nickaugust> i dont really understand how the compiler works... that would be an intersting thing to study i suppose 15:02 < skelterjohn> I refer you to your local accredited university 15:02 < nickaugust> hehe.. i couldnt make it through high school.. i dont think university is my thing :) 15:03 < nickaugust> im sure theres a book that will explain it just as well as a prof 15:04 < nickaugust> and if i have any questions i'll just come ask skelterjohn :) 15:04 < skelterjohn> I'm not nice. 15:04 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 15:05 < nickaugust> skelterjohn: you at Rutgers? 15:05 < skelterjohn> uh 15:05 < skelterjohn> yes? 15:06 < skelterjohn> oh, showed up in my /whois? 15:06 < nickaugust> yeah i saw when you joined 15:06 < skelterjohn> that is indeed where i am 15:07 * skelterjohn waits for the other shoe to drop. 15:09 < nickaugust> hehehe... no shoe... i was just reading about that kid who commited suicide. really sad. 15:09 -!- ExtraSpice [~XtraSpice@88.118.34.223] has joined #go-nuts 15:09 < skelterjohn> yep. talk of the town around here. 15:10 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has joined #go-nuts 15:12 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-177-190.clienti.tiscali.it] has joined #go-nuts 15:18 -!- zozoR [~zozoR@4705ds1-ris.0.fullrate.dk] has joined #go-nuts 15:19 -!- Maxdamantus [~m@203-97-238-106.cable.telstraclear.net] has quit [Ping timeout: 240 seconds] 15:21 -!- artefon [~thiago@187.114.52.95] has quit [Quit: bye] 15:21 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.] 15:25 -!- zozoR [~zozoR@4705ds1-ris.0.fullrate.dk] has quit [Read error: Connection reset by peer] 15:26 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 245 seconds] 15:31 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has quit [Quit: Ex-Chat] 15:37 -!- zozoR [~zozoR@4705ds1-ris.0.fullrate.dk] has joined #go-nuts 15:38 -!- virtualsue [~chatzilla@nat/cisco/x-onivjdnciorszldd] has joined #go-nuts 15:42 -!- ikaros [~ikaros@dslb-094-219-218-241.pools.arcor-ip.net] has quit [Quit: Leave the magic to Houdini] 15:42 -!- Maxdamantus [~m@203-97-238-106.cable.telstraclear.net] has joined #go-nuts 15:43 -!- ikaros [~ikaros@dslb-094-219-218-241.pools.arcor-ip.net] has joined #go-nuts 15:52 -!- kronoz [~user@213.86.152.1] has joined #go-nuts 15:52 < kronoz> yo 15:53 < wrtp> hey 15:53 < nickaugust> howdy 15:54 < kronoz> so, how do I get to contribute code to go :-) 15:54 < wrtp> kronoz: fix something 15:54 < exch> kronoz: http://golang.org/doc/contrib.html 15:54 < wrtp> kronoz: or fill in a gap 15:54 < wrtp> exch: +1 15:54 < kronoz> cool. 15:55 < kronoz> so you guys are fully open to patches? 15:55 < wrtp> i guess it depends on the patch. the guys at google are the ones with commit privileges... 15:56 < exch> In principle, yes. They will be reviewed for correctness and usefulness though. Any new 'features' are subject to rejection 15:56 < wrtp> ... and they have high standards 15:56 < kronoz> which is a good thing. 15:56 < wrtp> yup 15:56 < wrtp> are you thinking of doing anything in particular 15:56 < wrtp> ? 15:57 < kronoz> not particularly, that is something I need to consider. I just want to contribute to a high-quality oss project and collaborate with smart people on an interesting problem. 15:57 < kronoz> I use go for some of my own projects, and like it very much. So it seems a good contender. 15:58 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has quit [Quit: skelterjohn] 15:58 -!- photron [~photron@port-92-201-135-146.dynamic.qsc.de] has joined #go-nuts 15:58 < kronoz> is there are prospect of quality contributers eventually gaining commit? :) 15:58 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has joined #go-nuts 15:59 -!- skejoe [~skejoe@188.114.142.231] has quit [Quit: leaving] 16:01 < exch> the overwhelming silence is probably a good indication of 'unknown' :p 16:01 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 16:02 < kronoz> haha 16:03 -!- kanru [~kanru@118-168-236-6.dynamic.hinet.net] has joined #go-nuts 16:04 < kronoz> anyway, yeah, that's obviously not a pressing concern right now, I just want to get involved in the project and see how that goes. 16:05 < kronoz> coolio 16:06 < wrtp> kronoz: i think it's unlikely, unless you work at google. 16:06 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts 16:07 < scyth> but of course, you don't have to contribute to the language directly. Writing new cool packages (or porting existing ones from other languages) is highly appreciated :) 16:08 < exch> indeed 16:08 < exch> Full Go ports of existing C libs would probably be a major plus 16:08 -!- Tv [~tv@gige.bur.digisynd.com] has joined #go-nuts 16:09 < exch> For the more useful libs that's not a trivial task though 16:09 < nbjoerg> it also helps if the one doing the work knows the issues faced in the original projects 16:09 < nbjoerg> quite a few of them are written the way they due to various limitations of C 16:10 -!- kanru [~kanru@118-168-236-6.dynamic.hinet.net] has quit [Ping timeout: 240 seconds] 16:10 < exch> true 16:12 -!- res [c9ed8246@gateway/web/freenode/ip.201.237.130.70] has quit [Ping timeout: 252 seconds] 16:13 < kronoz> ah yes I am not limiting myself to necessarily working on the core language 16:13 < kronoz> wrtp: unfortunately I am not a googler... 16:14 < kronoz> well regardless, I want to contribute some code :) 16:14 < kronoz> I think a good way of starting out might be to look at the issue tracker and maybe take a shot at some trivial bugs 16:14 < wrtp> not having commit privileges doesn't really matter. even between the core team, there's often a lively interaction before something actually gets committed. 16:14 < kronoz> then work my way up from there. 16:14 -!- tensorpudding [~user@99.148.202.191] has quit [Remote host closed the connection] 16:14 < kronoz> sure, well there is a code review procedure 16:14 < kronoz> so everything gets reviewed I believe? 16:15 < exch> yes 16:17 -!- ronnyy [~quassel@p4FF1D135.dip.t-dialin.net] has quit [Remote host closed the connection] 16:17 < kronoz> which again, is a good thing. 16:18 < kronoz> itching to contribute to a good project and get actually criticised by smart people. That's a great way to improve. 16:21 -!- tensorpudding [~user@99.148.202.191] has joined #go-nuts 16:22 < kronoz> anyway, thanks for your advice dudez 16:22 -!- kronoz [~user@213.86.152.1] has left #go-nuts ["ERC Version 5.3 (IRC client for Emacs)"] 16:25 -!- Cyprien_ [~Cyprien@148-96.79-83.cust.bluewin.ch] has joined #go-nuts 16:26 -!- DerHorst [~Horst@e176107132.adsl.alicedsl.de] has quit [Remote host closed the connection] 16:29 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection] 16:29 -!- aho [~nya@fuld-4d00d08d.pool.mediaWays.net] has joined #go-nuts 16:30 -!- artefon [~thiagon@150.164.2.20] has quit [Remote host closed the connection] 16:33 -!- Tv1 [~tv@gige.bur.digisynd.com] has joined #go-nuts 16:33 -!- Tv [~tv@gige.bur.digisynd.com] has quit [Disconnected by services] 16:38 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 16:39 -!- lmoura_ [~lauromour@187.59.123.240] has quit [Ping timeout: 245 seconds] 16:40 -!- Cyprien_ [~Cyprien@148-96.79-83.cust.bluewin.ch] has quit [Read error: Connection reset by peer] 16:44 -!- ikaros [~ikaros@dslb-094-219-218-241.pools.arcor-ip.net] has quit [Quit: Leave the magic to Houdini] 16:47 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts 16:48 -!- Cyprien_ [~Cyprien@148-96.79-83.cust.bluewin.ch] has joined #go-nuts 16:51 -!- msponer [~user@cpe-66-75-33-237.san.res.rr.com] has joined #go-nuts 16:51 -!- lmoura_ [~lauromour@187.113.162.49] has joined #go-nuts 16:56 -!- lmoura_ [~lauromour@187.113.162.49] has quit [Ping timeout: 245 seconds] 16:56 -!- ucasano [~ucasano@host153-182-static.227-95-b.business.telecomitalia.it] has quit [Quit: ucasano] 16:57 -!- lmoura_ [~lauromour@189.115.166.243] has joined #go-nuts 16:59 -!- ikaros [~ikaros@dslb-094-219-218-241.pools.arcor-ip.net] has joined #go-nuts 17:03 -!- serverhorror [~serverhor@chello080109038110.17.14.vie.surfer.at] has quit [Ping timeout: 245 seconds] 17:06 < skelterjohn> anyone remember off the top of their head what function you give to a type to make fmt.Printf call it with %v? 17:06 -!- wrtp [~rog@92.17.2.31] has quit [Ping timeout: 245 seconds] 17:06 -!- artefon [~thiagon@150.164.2.20] has quit [Ping timeout: 240 seconds] 17:06 < skelterjohn> is it String? 17:08 < exch> func String() string 17:08 -!- plainhao [~plainhao@mail.xbiotica.com] has joined #go-nuts 17:10 -!- serverhorror [~serverhor@chello080109038110.17.14.vie.surfer.at] has joined #go-nuts 17:10 -!- ikaros [~ikaros@dslb-094-219-218-241.pools.arcor-ip.net] has quit [Quit: Leave the magic to Houdini] 17:11 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal] 17:11 -!- wrtp [~rog@92.17.2.31] has joined #go-nuts 17:13 -!- ikaros [~ikaros@dslb-094-219-218-241.pools.arcor-ip.net] has joined #go-nuts 17:13 < nickaugust> is there a json.Unmarshaler to unmarshal json into a reflect.StructValue? if not then I would add a func (s *reflect.StructValue) UmarshalJSON() method and do it there? 17:13 -!- Bombe [~droden@freenet/developer/Bombe] has quit [Excess Flood] 17:13 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 17:14 -!- Bombe [~droden@weltgehirnmaschine.de] has joined #go-nuts 17:14 -!- Bombe [~droden@weltgehirnmaschine.de] has quit [Changing host] 17:14 -!- Bombe [~droden@freenet/developer/Bombe] has joined #go-nuts 17:14 -!- napsy_ [~luka@88.200.96.18] has joined #go-nuts 17:20 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts 17:25 -!- Guest12358 [~luka@88.200.96.18] has quit [Quit: Lost terminal] 17:26 -!- freetz [~fritz@rome.ceat.okstate.edu] has joined #go-nuts 17:27 -!- lmoura_ [~lauromour@189.115.166.243] has quit [Ping timeout: 276 seconds] 17:27 < nickaugust> hmm, i think writing UnmarshalJSON() method for reflect.StructValue might be over my head 17:29 < skelterjohn> what are you working on? 17:29 < skelterjohn> i always get the feeling that you're kinda reinventing the wheel 17:30 < exch> Isn't a lot less of a hassle to just unmarshal to a known type and then create a reflect.Value from that the old fashioned way? 17:31 -!- wrtp [~rog@92.17.2.31] has quit [Quit: wrtp] 17:32 -!- lmoura_ [~lauromour@187.113.171.176] has joined #go-nuts 17:32 < msponer> Newbie here. Is there syntax to use a single return value in a statement when the function returns multiple values? 17:32 < msponer> For example, file.Stat().Size is incorrect because file.Stat() returns two values. 17:32 < msponer> 17:33 < skelterjohn> not that i know of 17:33 < skelterjohn> in my experience, separating these kinds of things onto two lines makes code clearer and easier to read 17:33 -!- scyth [~scyth@zeljko.eunet.rs] has quit [Quit: Leaving] 17:33 < skelterjohn> even if it does involve more typing 17:34 < skelterjohn> not to imply that less typing -> easier to read code 17:34 < exch> msponer: You mean you wish to ignore one of the return values? 17:35 < msponer> Ok. I guess I am used to the overly complex class hierarchies in other languages where it's common to chain retrieving them on one line. 17:35 < skelterjohn> also, if you do "x, _ := file.State() \n x.Size" it makes it obvious that you're purposefully ignoring the error 17:35 < exch> in which case, use the _ token for the var you don't need.: foo, _, bar := Ireturn3Values() 17:36 < nickaugust> well im sure i am in some areas. its mainly an education project. im taking some data models that are defined as structs, and the data is stored in json files in the data/<model name> directoy and then i have on disk indices in /indicies/<model name> and in memory indices named simliarly.. so by adding a new data model all the indexes and search methods are all work on all the data models. so i 17:36 < nickaugust> use interface{} to accept all struct values then i pull the struct name off to know what directory to search in ect. so the types are not know ahead of time for most of the functions although they are always struct types 17:36 < nickaugust> s/education/educational 17:37 < msponer> Yes, I want to ignore the error return value. Maybe I am blase about errors, but I already checked for an error when I opened the file, and getting an error from file.Stat() seems a little silly. Maybe the library is doing more than just returning an internal structure when it does Stat and there is a possibillity of an error at that point. 17:37 -!- ExtraSpice [~XtraSpice@88.118.34.223] has quit [Remote host closed the connection] 17:37 < nickaugust> seems silly to ignore an error 17:37 < skelterjohn> no - not silly in many cases 17:37 < skelterjohn> like this one, for instance 17:37 < msponer> Ok. Two lines. :) 17:37 < skelterjohn> but it's good to be clear that that's what you're doing 17:38 < skelterjohn> that's my only point 17:39 -!- itrekkie [~itrekkie@ip72-200-110-29.tc.ph.cox.net] has quit [Quit: itrekkie] 17:40 -!- itrekkie [~itrekkie@ip72-200-110-29.tc.ph.cox.net] has joined #go-nuts 17:40 -!- itrekkie [~itrekkie@ip72-200-110-29.tc.ph.cox.net] has quit [Client Quit] 17:41 < nickaugust> exch: well thats the thing, i dont know the type ahead of time. 17:42 < exch> fair enough 17:43 < nickaugust> id think json.Unmarshal should be able to unmarshal into a reflect.StructValue.. i can tell its possible, just not implemented. i'll take a run at it.. if for nothing other than the sake of trying :) 17:47 < exch> I'm not sure. The reflect package only deals with existing types and their known methods/fields. I have yet to see an instance where you can construct a new type from scratch at runtime 17:48 < msponer> Another newbie syntax question: "int64 += int" is an invalid operation, the int needs to be cast to int64. Easy to type, but am I missing a philisophical decision as to why upgrading to a larger type needs to be explicit? 17:48 < msponer> If I understand the philosophy I can cheat and guess at the syntax better, rather then memorize it all :) 17:48 < Namegduf> msponer: Because int64 += int*int is much less clear. 17:48 < nsf> msponer: there are no implicit conversions 17:49 < Namegduf> The precision at which the math will be performed and the consequences remain unclear. 17:49 < Namegduf> Hmm, not precision. 17:49 < Namegduf> Variable size. 17:50 < exch> Go is very picky about implicit conversions. There are only one or two cases where this works, but in general you should assume that it simply won't work. The reason why is mostly likely simplicity of the compiler/runtime or something like that. At the expensive of having to be a little more verbose in your code 17:50 -!- artefon [~thiagon@150.164.2.20] has quit [Quit: Leaving] 17:50 < Namegduf> The reason is that implicit conversions are a very easy place for bugs to slip in at the edges. 17:51 < Namegduf> Conversions are a significant thing to do, as they change the acceptable values that a variable could hold and the code work, so they're explicit. 17:51 < msponer> Ok, thanks. I only know the philosophy as far as the introduction at Google IO last year. 17:52 < msponer> But just to be clear, because I am stupid, "int64 += int" has no inherent safety problems, right? The cast is just to follow the language convention of casting nearly all the time? 17:53 < Namegduf> That, and I'd be surprised if the code implementing said restrictions distinguished between int64 += int, which is safe, and int64 += int*int, which is unclear. 17:53 < nsf> msponer: it doesn't matter whether it has problems or not.. compiler just doesn't have implicit casting rules, because it's sort of a KISS thing to do 17:53 < nsf> s/compiler/language/ 17:54 < nsf> but other than that it looks like int64 += int is safe 17:54 < nsf> I mean you can safely cast int to int64 in this expression 17:54 * Namegduf hated implicit conversions in C 17:54 < nsf> and proceed 17:55 < nsf> Namegduf: I hated user defined types mostly.. each library has its own png_uint32_t 17:55 < nsf> etc. 17:55 < Namegduf> I reason in sets of valid inputs and values for things, and casting quietly, subtly, and potentially quite far from the lines setting the types of the variables, alters them. 17:55 < msponer> Ok. Thank you. I am used to C, where explicit casts are a reason to take a second glance at the line, to make sure it wasn't doing something weird. 17:55 < msponer> So I really only paid attention to explicit casts when reading code. 17:56 < KirkMcDonald> There is one category of implicit conversion allowed by Go, which are to interface types. 17:56 < nsf> also int <-> float conversions are quite costly actually 17:56 < Namegduf> It's less a conversion and more boxing, but yeah. 17:56 < nsf> doing them silently is a bad idea 17:57 < nsf> at least one of them is costly 17:57 < Namegduf> Go will let you use a type where an interface that that type satisfies is expected. 17:57 < Namegduf> Automatically boxing your given value in a value of the interface type. 17:57 < Namegduf> I don't think it has implicit conversions anywhere else. 17:57 < msponer> Yes, I really like the implicit type casting. 17:58 < nsf> implicit or explicit? 17:58 < nsf> :) 17:58 < msponer> Interface casting, I mean. 17:58 < nsf> :D 17:58 < Namegduf> It's convenient and actually is always safe. 18:03 -!- ExtraSpice [~XtraSpice@88.118.34.223] has joined #go-nuts 18:03 < msponer> I am just curious, when you said int <-> float conversions are costly-- do you know if " int = int / int " ends up using the DIV instruction on x86 processors or is it compiled into something like FDIV with casts to and from floating point? 18:05 < msponer> I know people probably don't care about that level of detail any more. But this is for a large statistical data set and the remainder or floating point precision isn't important. 18:05 < skelterjohn> int / int will be integer division - no float conversions 18:05 < skelterjohn> why would it cast to float and then back? 18:05 < Namegduf> If you want it to be floating point, you convert both to a float first. 18:05 < skelterjohn> does any language do that? 18:06 < Namegduf> A bonus of the explicit casts is that whether a division is integer or not is fairly clear as a result. 18:06 -!- nsf [~nsf@jiss.convex.ru] has quit [Ping timeout: 272 seconds] 18:06 < Namegduf> float = int/int isn't possible. 18:07 < Namegduf> float = float(int/int) or float = float(int)/float(int) are, and they're nice and clear. 18:07 -!- ExtraSpice [~XtraSpice@88.118.34.223] has quit [Remote host closed the connection] 18:10 -!- scyth_ [~scyth@rots.in.rs] has left #go-nuts [] 18:10 -!- scyth [~scyth@rots.in.rs] has joined #go-nuts 18:13 -!- rup [~rupert@deathknight.net] has quit [Ping timeout: 265 seconds] 18:13 -!- rup [~rupert@deathknight.net] has joined #go-nuts 18:14 -!- fabled [~fabled@xdsl-83-150-94-237.nebulazone.fi] has quit [Quit: Ex-Chat] 18:14 -!- ako [~nya@fuld-4d00d5de.pool.mediaWays.net] has joined #go-nuts 18:14 -!- niemeyer [~niemeyer@91.189.88.12] has quit [Ping timeout: 276 seconds] 18:16 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 245 seconds] 18:16 -!- aho [~nya@fuld-4d00d08d.pool.mediaWays.net] has quit [Ping timeout: 245 seconds] 18:16 -!- fabled [~fabled@xdsl-83-150-94-238.nebulazone.fi] has joined #go-nuts 18:20 < plexdev> http://is.gd/fCEdq by [Russ Cox] in go/src/pkg/runtime/ -- runtime: serialize mcache allocation 18:21 -!- enherit [~enherit@cpe-98-149-170-48.socal.res.rr.com] has joined #go-nuts 18:26 -!- rup [~rupert@deathknight.net] has quit [Ping timeout: 245 seconds] 18:27 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 18:27 -!- alefnula [~alefnula@188.246.38.197] has joined #go-nuts 18:28 -!- rup [~rupert@deathknight.net] has joined #go-nuts 18:31 -!- emmanueloga [~emmanuelo@host52.190-30-10.telecom.net.ar] has quit [Ping timeout: 264 seconds] 18:33 -!- virtualsue [~chatzilla@nat/cisco/x-onivjdnciorszldd] has quit [Ping timeout: 240 seconds] 18:33 -!- emmanueloga [~emmanuelo@host52.190-30-10.telecom.net.ar] has joined #go-nuts 18:36 -!- bjarneh [~bjarneh@1x-193-157-195-143.uio.no] has joined #go-nuts 18:43 -!- virtualsue [~chatzilla@nat/cisco/x-peqiguoxrhhsfklt] has joined #go-nuts 18:52 < plexdev> http://is.gd/fCGSH by [Russ Cox] in go/src/libcgo/ -- fix arm build on darwin leopard 18:53 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:41c6:ebe8:5983:7686] has joined #go-nuts 18:54 -!- serverhorror [~serverhor@chello080109038110.17.14.vie.surfer.at] has quit [Ping timeout: 265 seconds] 18:56 -!- enherit [~enherit@cpe-98-149-170-48.socal.res.rr.com] has quit [Ping timeout: 276 seconds] 19:00 -!- serverhorror [~serverhor@chello080109038110.17.14.vie.surfer.at] has joined #go-nuts 19:01 -!- serverhorror [~serverhor@chello080109038110.17.14.vie.surfer.at] has quit [Client Quit] 19:07 < gmilleramilar> So apparently you cannot cast back from an interface{} to a named type that is a function pointer... this program panics on line 19. is this a bug? http://pastie.org/private/sp3j8flrjvvu9cdymsvba 19:08 < plexdev> http://is.gd/fCIrZ by [Russ Cox] in go/src/libcgo/ -- libcgo: fix comment 19:08 < plexdev> http://is.gd/fCIs7 by [Russ Cox] in 4 subdirs of go/ -- gc, spec, tests: no auto-indirect of pointer to interface value 19:09 < plexdev> http://is.gd/fCIsG by [Russ Cox] in go/src/cmd/gc/ -- gc: correct buffer size in sprint, add -L to show full paths 19:09 < plexdev> http://is.gd/fCIsQ by [Russ Cox] in 2 subdirs of go/ -- gc: bug308 19:09 < KirkMcDonald> gmilleramilar: But it wasn't a FooFunc that you put into the interface. 19:09 < KirkMcDonald> gmilleramilar: It was a func(int). 19:09 < gmilleramilar> but the assignment funcPtr = intFunc works fine... 19:09 -!- jhh [~jhh@e179096172.adsl.alicedsl.de] has quit [Quit: jhh] 19:09 -!- alefnula [~alefnula@188.246.38.197] has quit [Ping timeout: 276 seconds] 19:10 < Namegduf> Being assignment compatible doesn't make them the same time. 19:10 < Namegduf> FooFunc and func(int) are different types. 19:10 < KirkMcDonald> gmilleramilar: The two types are assignment compatible, but not identical. 19:10 < Namegduf> I suppose that's a case of an implicit cast I'd forgotten. 19:11 < KirkMcDonald> gmilleramilar: A type assertion requires that the type of the value be identical to the type you are asserting. 19:11 < gmilleramilar> ant it appears that you cannot do the assignment at all because intf.(func(int)).(FooFunc) is not valid syntax 19:12 < KirkMcDonald> gmilleramilar: FooFunc(intf.(func(int))) 19:12 < KirkMcDonald> gmilleramilar: Assert, then convert. 19:12 < gmilleramilar> ah. 19:12 < Namegduf> Type assertions and conversions have different syntax, yeah. 19:12 < KirkMcDonald> And I would not expect the explicit conversion to be necessary. 19:13 < KirkMcDonald> funcPtr = intf.(func(int)) should work. 19:13 < gmilleramilar> KirkMcDonald: that does work. 19:13 < gmilleramilar> thx. 19:13 < KirkMcDonald> gmilleramilar: Alternatively, have line 17 be: intf = FooFunc(intFunc) 19:14 < KirkMcDonald> gmilleramilar: Then the type of the value in the interface will be FooFunc, and intf.(FooFunc) will work. 19:15 < gmilleramilar> oh, yeah, that's probably cleaner for what I'm trying to do. 19:16 -!- skejoe [~skejoe@188.114.142.231] has joined #go-nuts 19:17 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts 19:18 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 19:18 -!- skejoe [~skejoe@188.114.142.231] has quit [Client Quit] 19:21 < Venom_X> what is the syntax of passing a map to a func as a parameter? 19:23 < exch> func F(m map[int]string) { ... } 19:23 -!- jhh [~jhh@e179096172.adsl.alicedsl.de] has joined #go-nuts 19:25 < Venom_X> oh, thanks 19:28 -!- Cyprien__ [~Cyprien@148-96.79-83.cust.bluewin.ch] has joined #go-nuts 19:30 -!- plainhao [~plainhao@mail.xbiotica.com] has quit [Quit: plainhao] 19:31 -!- ExtraSpice [~XtraSpice@88.118.34.223] has joined #go-nuts 19:31 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 19:31 -!- Cyprien_ [~Cyprien@148-96.79-83.cust.bluewin.ch] has quit [Ping timeout: 240 seconds] 19:32 -!- Cyprien__ [~Cyprien@148-96.79-83.cust.bluewin.ch] has quit [Client Quit] 19:33 -!- bjarneh [~bjarneh@1x-193-157-195-143.uio.no] has quit [Quit: leaving] 19:33 -!- serverhorror [~serverhor@chello080109038110.17.14.vie.surfer.at] has joined #go-nuts 19:34 -!- alefnula [~alefnula@188.246.38.197] has joined #go-nuts 19:36 -!- serverhorror [~serverhor@chello080109038110.17.14.vie.surfer.at] has quit [Client Quit] 19:39 -!- jhh [~jhh@e179096172.adsl.alicedsl.de] has quit [Quit: jhh] 19:44 < vsmatck> I want to have a pair as the key of a map (two uint64's). I don't know how to best do this. 19:45 < vsmatck> The go spec seems to indicate I can make an interface for the key and get comparison defined on that somehow. 19:47 -!- tvw [~tv@e176004221.adsl.alicedsl.de] has joined #go-nuts 19:49 < nickaugust> vsmatck: where does the spec indicate that? i was under the impression the key couldnt be a slice or struct or anything like that 19:51 < vsmatck> It says this, "If the key type is an interface type, these comparison operators must be defined for the dynamic key values; failure will cause a run-time panic." in this section http://golang.org/doc/go_spec.html#Map_types 19:51 < nickaugust> hm intersting.. so your interface has to define the comparison methods 19:53 < skelterjohn> no - the underlying type 19:54 < nickaugust> so you cant define your own comparison methods then? 19:54 < skelterjohn> you say method 19:54 < vsmatck> Does this mean if I give my struct some named function and past some interface I can do this? 19:54 < skelterjohn> i haven't said method 19:54 < skelterjohn> i said operator on purpose 19:54 < skelterjohn> operator would be <, >, ==, != 19:55 < skelterjohn> < is not defined for struct types 19:55 < skelterjohn> for instance 19:55 < vsmatck> Do I need to use []byte as the key and just smush the two uint64s in to that? 19:55 < vsmatck> oh wait.. that's an array. 19:55 < skelterjohn> i don't believe you can use a slice as a map key 19:55 < vsmatck> I mean put them in a string. 19:55 < skelterjohn> you can use a string 19:55 < skelterjohn> that's one way 19:56 < vsmatck> Seems kind of shitty. They'd be hard to access later that way. 19:56 < KirkMcDonald> Just use a uint128 as the key! 19:56 < skelterjohn> uint128 exists? that's certainly a solution 19:56 < KirkMcDonald> (It doesn't.) 19:56 < skelterjohn> i was going to ask if your values actually fit into uint32 19:56 < skelterjohn> oh 19:56 < skelterjohn> i have been trolled 19:56 < nickaugust> hehe 19:56 < KirkMcDonald> Verily. 19:56 < vsmatck> They have to be 64bit. 19:57 < skelterjohn> why? what do they represent? 19:57 < vsmatck> I won't say. Too much to explain and I'm certain I need them to be 64bit. 19:57 < vsmatck> It's a can of worms you will hate. 19:57 < skelterjohn> could you hash them? 19:57 -!- jhh [~jhh@e179096172.adsl.alicedsl.de] has joined #go-nuts 19:57 < skelterjohn> gohash.googlecode.com 19:57 < skelterjohn> /shameless plug 19:58 < skelterjohn> if you can make a type MyKey struct {a, b uint64} 19:58 < skelterjohn> and define a hash and equals method, you can use the gohash stuff 19:58 < skelterjohn> if you don't care about type safety 19:59 < skelterjohn> for instance, hash = a + b << 1 20:03 < vsmatck> Hm. I think I'm going to pack them in to a string. 20:04 < skelterjohn> sounds efficient 20:04 < vsmatck> I think I could save space like that too. Just trim off the extra zeros. 20:05 < skelterjohn> if you can reliably trim off extra zeros without causing key collisions, then you don't need all 64 bits ;) 20:05 < vsmatck> I'm going to use the variable length int format used in gob and protocol buffers. 20:06 < vsmatck> You use each most sig bit of each byte to indicate if there will be another byte. 20:06 < vsmatck> Most of my uint64s will be low value, but some will be really high. 20:07 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts 20:07 < vsmatck> I'll be able to retrieve the pair values later this way too. Which I need to be able to do. 20:08 < skelterjohn> if you trim off zeros? 20:08 < vsmatck> You only use 7 bits of each byte to store the actual value. It makes it so the uint64 can take up to 10 bytes. 20:09 < vsmatck> There won't be any collisions I'm pretty sure. 20:10 < vsmatck> http://code.google.com/apis/protocolbuffers/docs/encoding.html#varints 20:10 < skelterjohn> this is a bit wonky - but i bet you could store each of the uint64s into float32s 20:10 < skelterjohn> if they're either 1) low or 2) high with lots of trailing zeros 20:11 < skelterjohn> then convert them to the raw bites and stick em in a singkle uint64 20:11 < skelterjohn> single 20:11 < vsmatck> I've seen the gob format has a way of converting floats to uints. 20:12 < vsmatck> But I think to be able to trim stuff you just need contiguous zeros which the uint already has. 20:12 < skelterjohn> *((*uint32)(unsafe.Pointer(&aFloat32))) 20:16 < KirkMcDonald> If you're going to pack two uint64s into a string, wouldn't you just store them as a 16-byte string? 20:16 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has quit [Ping timeout: 265 seconds] 20:16 < KirkMcDonald> I see no need to be fancier than that. 20:17 < skelterjohn> oh sure - that works too 20:17 < skelterjohn> that seems like the simplest solution 20:17 < skelterjohn> rather than using fmt.Sprintf("%d%d", a, b) etc 20:18 -!- res [c9ed8246@gateway/web/freenode/ip.201.237.130.70] has joined #go-nuts 20:20 < vsmatck> ah, looks like I can use the encoding/bytes package to get the bytes of the integer. 20:27 < nickaugust> you know when a program keeps changing the same line, like a percentage complete number going up? do you have to use curses for that or is there a backspace character you can output that will back up a few spaces in the terminal so you can rewrite? 20:28 < homa_rano> nickaugust: '\r' moves the cursor to the beginning of the line 20:28 < homa_rano> and the previous line can be overwritten 20:28 < nickaugust> homa_rano: sweet! thanks man 20:28 < nickaugust> i guess that a carriage return or whatever 20:29 < homa_rano> yeah I never remember the names for those things 20:29 -!- Fish [~Fish@9fans.fr] has joined #go-nuts 20:46 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 20:47 -!- zozoR [~zozoR@4705ds1-ris.0.fullrate.dk] has quit [Quit: Morten. Desu~] 20:50 -!- gnuvince_ [~vince@70.35.163.20] has quit [Read error: Connection reset by peer] 20:50 -!- ako [~nya@fuld-4d00d63b.pool.mediaWays.net] has joined #go-nuts 20:51 -!- aho [~nya@fuld-4d00d5de.pool.mediaWays.net] has quit [Disconnected by services] 20:51 -!- gnuvince_ [~vince@70.35.162.240] has joined #go-nuts 20:57 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:41c6:ebe8:5983:7686] has quit [Quit: Leaving.] 21:00 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has quit [Quit: skelterjohn] 21:01 < scyth> is anyone successfully using protobufs? 21:01 < scyth> within go, of course 21:03 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 21:04 -!- awidegreen [~quassel@62.176.237.78] has quit [Remote host closed the connection] 21:06 -!- gabriel9 [~gabriel9@93.157.192.28] has quit [Read error: Connection reset by peer] 21:06 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org] 21:07 -!- ukai [~ukai@nat/google/x-eyqbibnbppljbatk] has quit [Ping timeout: 265 seconds] 21:08 -!- gabriel9 [~gabriel9@93.157.192.28] has joined #go-nuts 21:08 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-177-190.clienti.tiscali.it] has quit [Quit: E se abbasso questa leva che succ...] 21:10 -!- alefnula [~alefnula@188.246.38.197] has quit [Quit: Ex-Chat] 21:17 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 252 seconds] 21:18 -!- bmizerany [~bmizerany@c-76-21-40-207.hsd1.ca.comcast.net] has joined #go-nuts 21:20 -!- ExtraSpice [~XtraSpice@88.118.34.223] has quit [Quit: Leaving] 21:29 -!- ikaros [~ikaros@dslb-094-219-218-241.pools.arcor-ip.net] has quit [Quit: Leave the magic to Houdini] 21:32 -!- ukai [~ukai@nat/google/x-cpmscpdnvguxvkho] has joined #go-nuts 21:42 -!- Fish [~Fish@9fans.fr] has quit [Remote host closed the connection] 21:54 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 21:57 -!- mbohun [~mbohun@ppp115-156.static.internode.on.net] has quit [Quit: Leaving] 22:01 -!- Venom_X [~pjacobs@66.54.185.131] has quit [Quit: Venom_X] 22:01 -!- gabriel9 [~gabriel9@93.157.192.28] has quit [Read error: Connection reset by peer] 22:03 -!- gabriel9 [~gabriel9@93.157.192.28] has joined #go-nuts 22:06 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit: Verlassend] 22:08 -!- enherit [~enherit@cpe-98-149-170-48.socal.res.rr.com] has joined #go-nuts 22:20 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal] 22:25 -!- ronnyy [~quassel@p4FF1D135.dip.t-dialin.net] has joined #go-nuts 22:27 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has joined #go-nuts 22:33 -!- adu [~ajr@pool-173-66-253-121.washdc.fios.verizon.net] has joined #go-nuts 22:36 -!- adu [~ajr@pool-173-66-253-121.washdc.fios.verizon.net] has quit [Client Quit] 22:39 -!- photron [~photron@port-92-201-135-146.dynamic.qsc.de] has quit [Ping timeout: 264 seconds] 22:44 -!- virtualsue [~chatzilla@nat/cisco/x-peqiguoxrhhsfklt] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.13/20100914122142]] 22:59 -!- kanru [~kanru@118-168-238-117.dynamic.hinet.net] has joined #go-nuts 23:10 -!- kanru [~kanru@118-168-238-117.dynamic.hinet.net] has quit [Ping timeout: 276 seconds] 23:11 -!- jmettraux [~jmettraux@211.19.55.177] has joined #go-nuts 23:12 < msponer> Is anyone using Amazon RDBMS from Go? 23:14 -!- gabriel9 [~gabriel9@93.157.192.28] has quit [Read error: Connection reset by peer] 23:15 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined #go-nuts 23:17 -!- crazy2be [~justin@d205-206-130-118.abhsia.telus.net] has joined #go-nuts 23:19 -!- l00t [~i-i3id3r_@189.105.121.98] has joined #go-nuts 23:27 -!- iant [~iant@nat/google/x-qpylqgunbnjzwrdj] has quit [Ping timeout: 272 seconds] 23:33 -!- iant [~iant@67.218.106.122] has joined #go-nuts 23:33 -!- mode/#go-nuts [+v iant] by ChanServ 23:44 -!- enherit [~enherit@cpe-98-149-170-48.socal.res.rr.com] has quit [Quit: leaving] 23:46 < crazy2be> Anyone know how to access a certain index in an array using the template package? 23:46 < crazy2be> foo[0].blah doesn't seem to work 23:47 < crazy2be> or foo.0.blah 23:53 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has joined #go-nuts --- Log closed Fri Oct 01 00:00:08 2010