--- Log opened Wed Jul 06 00:00:19 2011 --- Day changed Wed Jul 06 2011 00:00 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has joined #go-nuts 00:00 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 00:07 -!- meling [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has joined #go-nuts 00:10 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Ping timeout: 250 seconds] 00:14 -!- taruti [taruti@ultra.violetti.org] has quit [Remote host closed the connection] 00:16 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts 00:20 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts 00:23 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.] 00:24 -!- Sep102_ [~Sep102@c-71-227-179-131.hsd1.wa.comcast.net] has quit [Read error: Connection reset by peer] 00:25 -!- Sep102_ [~Sep102@c-71-227-179-131.hsd1.wa.comcast.net] has joined #go-nuts 00:25 -!- cmike_ [~mcrosby@99.75.50.144] has joined #go-nuts 00:28 -!- ccc1 [~Adium@140.109.98.187] has joined #go-nuts 00:31 -!- taruti [taruti@ultra.violetti.org] has quit [Ping timeout: 240 seconds] 00:32 -!- Sep102_ [~Sep102@c-71-227-179-131.hsd1.wa.comcast.net] has quit [Read error: Connection reset by peer] 00:33 -!- Sep102_ [~Sep102@c-71-227-179-131.hsd1.wa.comcast.net] has joined #go-nuts 00:37 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts 00:38 -!- dreadlorde [dreadlorde@c-68-42-82-10.hsd1.mi.comcast.net] has joined #go-nuts 00:42 -!- taruti [taruti@ultra.violetti.org] has quit [Remote host closed the connection] 00:42 -!- Sep102__ [~Sep102@c-71-227-179-131.hsd1.wa.comcast.net] has joined #go-nuts 00:42 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts 00:45 -!- Sep102_ [~Sep102@c-71-227-179-131.hsd1.wa.comcast.net] has quit [Ping timeout: 255 seconds] 00:46 -!- IanWizard [~dEVOted@c-98-237-207-104.hsd1.wa.comcast.net] has joined #go-nuts 00:46 < IanWizard> Hey everyone, I'm back. (With more questions...) 00:47 < IanWizard> But first with something that I noticed. I'm just learning Go, and I just wrote my first for loop. 00:47 < IanWizard> Strangest thing, not having the parenthases, and having the semicolons mixed in, plus the curly braces... felt naked. 00:48 < IanWizard> *I felt naked. 00:48 < kergoth> it's just a matter of acclimating to the new syntax, same as with any other language 00:49 < IanWizard> Not having those parenthases, it just felt so... free (though I didn't like it) 00:49 -!- taruti [taruti@ultra.violetti.org] has quit [Ping timeout: 240 seconds] 00:49 < IanWizard> Just an observation. 00:50 < IanWizard> First time I've been in one of those "I felt so naked" situations, and it really did feel that way. 00:50 -!- taruti [~taruti@ultra.violetti.org] has joined #go-nuts 00:50 < cmike_> i like the feel of freedom 00:51 < IanWizard> Ok, now for a couple questions.. 1: can I use the parenthases, or would that be wrong / bad / a no-no? 00:51 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 276 seconds] 00:51 < IanWizard> cmike_, it feels like they're trying to make something that's more novel in the way they do things. 00:52 < IanWizard> cmike_, but acting like they're doing something that's better. 00:52 < kergoth> it's not the first language to avoid it, nor are they claiming to be somehow revolutionary. try ruby or python or lua or.. sometime 00:53 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has quit [Quit: WeeChat 0.3.0] 00:53 < IanWizard> kergoth, I've used Python (it was my first lang), and a little (wikipedia page) of ruby / lua. but you can still use parenthases if you like. 00:54 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has joined #go-nuts 00:54 < uriel> 00:51 < IanWizard> Ok, now for a couple questions.. 1: can I use the parenthases, or would that be wrong / bad / a no-no? 00:54 < uriel> IanWizard: it is just less clutter on the screen 00:54 < uriel> leave them out 00:54 < IanWizard> uriel, less chars, but it's less clear. 00:55 < uriel> less needless clutter around your code *is* better 00:55 < IanWizard> uriel, the parenthases keep things together. 00:55 < uriel> this has been bikesheeded to death 00:55 < kergoth> seems perfectly readable to me. you're just biased by your usual language. its not uncommon. you're used to c/c++/java/whatever 00:55 < uriel> the line keeps things together things are one after the other 00:55 < uriel> you use { } around what needs to be keept together 00:57 < IanWizard> kergoth, uriel, As I said, my first lang was Python. I learned things without them, and then came to find the code to be more consice with. Just my opinion, I'll move on. 00:57 < uriel> python has no { } 00:58 < skelterjohn> it's not "less clear". it's "different". 00:58 < uriel> things that are all in one line clearly go together 00:58 < kergoth> personally, I don't care much about minor syntactic differences. languages are much the same, just a matter of getting used to the new language's behavior and syntax. once you're used to it, you don't really even see it anymore 00:58 < uriel> skelterjohn: I think less clutter is clearly more clear, but it is a fucking bikeshed and have better things to argue about 00:58 < skelterjohn> agreed with kergoth/uriel 00:59 < uriel> kergoth: yup, if you cant addapt to a new coat of pain, you should not be writting code 00:59 < skelterjohn> i find syntax to be fun but unimportant 00:59 < uriel> I wouldn't call it unimportant, but I find it sad how religious people can be about it 00:59 < IanWizard> as for my other question (#2 for those keeping track at home): I see "flags", so is there any reason to have any paramaters in the main() param list? (assuming that you're not calling it directly, just from the command line) 00:59 < uriel> IanWizard: see what the flags package does 01:00 < kergoth> IanWizard: pretty sure the answer is "no" 01:00 < kergoth> but i'm pretty new to the language too 01:00 < IanWizard> uriel, from what I can tell, it's for the command line args (or "flags") 01:00 < IanWizard> kergoth, that's what I'm thinking. 01:00 < bugQ> uriel, can I quote you on "coat of pain" ? XD 01:00 < kergoth> haha 01:01 < dreadlorde> no, you may not. 01:01 < dreadlorde> that quote is property of uriel 01:01 < skelterjohn> the command line comes through as os.Args 01:01 < skelterjohn> the flags package is a utility to parse it 01:01 < bugQ> that's why I'm asking 01:01 < dreadlorde> and any attempts to use it will be met with a court order 01:02 < IanWizard> ok. 01:02 -!- bjarneh [~bjarneh@24.80-203-20.nextgentel.com] has joined #go-nuts 01:03 -!- taruti [~taruti@ultra.violetti.org] has quit [Ping timeout: 276 seconds] 01:05 < uriel> bugQ: sure :)) 01:05 < bugQ> there, see ? a written consent 01:06 < dreadlorde> i was trolling you. words aren't property. hurr durr 01:06 < uriel> IanWizard: arguments are not always flags, I think it is pretty obvious if you look at the flags package that flags simply provides some help at interpreting some arguments in a certain way 01:06 * uriel doesn't believe in so called "intellectual property" anyway 01:07 -!- IanWizard [~dEVOted@c-98-237-207-104.hsd1.wa.comcast.net] has quit [Ping timeout: 240 seconds] 01:08 < bugQ> as an engineer I'm sure my future employer would love to hear that ! 01:12 < kergoth> uriel: I think his main question was verifying that arguments always come in via os.Args, never as arguments to main(). seemed pretty obvious to me after reading examples and the docs, but... 01:12 * kergoth rolls eyes 01:13 -!- kergoth [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Read error: Connection reset by peer] 01:14 < uriel> bugQ: as my future employer, I love to hear that 01:14 -!- franciscosouza_ [~francisco@187.105.22.148] has joined #go-nuts 01:15 -!- franciscosouza [~francisco@187.105.22.148] has quit [Read error: Connection reset by peer] 01:16 < bugQ> uriel: no fair :P 01:17 -!- dlowe [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has joined #go-nuts 01:26 -!- fvbommel [~fvbommel_@86.86.15.250] has joined #go-nuts 01:26 -!- deadmoth [~void@ip98-181-33-119.br.br.cox.net] has joined #go-nuts 01:28 -!- kaichenxyz [~kaichenxy@115.196.136.71] has joined #go-nuts 01:28 -!- kaichenxyz [~kaichenxy@115.196.136.71] has quit [Remote host closed the connection] 01:28 -!- kaichenxyz [~kaichenxy@li261-87.members.linode.com] has joined #go-nuts 01:29 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 255 seconds] 01:30 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has quit [Ping timeout: 255 seconds] 01:31 -!- dreadlorde [dreadlorde@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping timeout: 244 seconds] 01:32 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts 01:33 -!- dreadlorde [dreadlorde@c-68-42-82-10.hsd1.mi.comcast.net] has joined #go-nuts 01:34 -!- hcatlin [~hcatlin@host86-162-156-178.range86-162.btcentralplus.com] has joined #go-nuts 01:34 -!- hcatlin [~hcatlin@host86-162-156-178.range86-162.btcentralplus.com] has quit [Changing host] 01:34 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has joined #go-nuts 01:35 -!- dlowe [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has quit [Quit: *poof*] 01:37 -!- taruti [taruti@ultra.violetti.org] has quit [Remote host closed the connection] 01:52 -!- franciscosouza [~francisco@187.105.22.148] has quit [Read error: Connection reset by peer] 01:52 -!- franciscosouza [~francisco@187.105.22.148] has joined #go-nuts 01:56 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 02:03 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Remote host closed the connection] 02:04 -!- franciscosouza [~francisco@187.105.22.148] has quit [Read error: Connection reset by peer] 02:04 -!- franciscosouza [~francisco@187.105.22.148] has joined #go-nuts 02:13 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 276 seconds] 02:14 -!- danilo04 [~danilo04@province-wireless-173-84-26-97.dr02.roch.ny.frontiernet.net] has quit [Quit: Leaving] 02:17 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts 02:18 -!- Jessica_Lily [~Jessica@unaffiliated/xray7224] has quit [Quit: Leaving...] 02:21 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts 02:21 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Read error: Connection reset by peer] 02:30 -!- Nisstyre [~nisstyre@infocalypse-net.info] has quit [Quit: Leaving] 02:32 -!- Nisstyre [~nisstyre@infocalypse-net.info] has joined #go-nuts 02:42 -!- taruti [~taruti@ultra.violetti.org] has joined #go-nuts 02:42 -!- nteon [~nteon@c-98-210-195-105.hsd1.ca.comcast.net] has joined #go-nuts 02:48 -!- moraes [~moraes@189.103.188.201] has quit [Remote host closed the connection] 02:50 -!- taruti [~taruti@ultra.violetti.org] has quit [Ping timeout: 246 seconds] 03:01 -!- GS [~gsv@108.61.238.49.southernonline.net] has joined #go-nuts 03:09 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has quit [Quit: WeeChat 0.3.0] 03:09 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has quit [] 03:10 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has joined #go-nuts 03:10 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has quit [Client Quit] 03:11 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has joined #go-nuts 03:12 -!- Tv__ [~Tv__@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts 03:14 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 258 seconds] 03:15 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts 03:19 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts 03:20 -!- bugQ [~bug@c-71-195-207-34.hsd1.ut.comcast.net] has quit [Ping timeout: 252 seconds] 03:26 -!- bugQ [~bug@c-71-195-207-34.hsd1.ut.comcast.net] has joined #go-nuts 03:27 < cmike_> everyone having quiet time just joining and leaving 03:29 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts 03:34 -!- cmike_ [~mcrosby@99.75.50.144] has quit [Quit: cmike_] 03:37 -!- niemeyer [~niemeyer@201-14-255-163.pltce701.dsl.brasiltelecom.net.br] has quit [Ping timeout: 240 seconds] 03:40 -!- taruti [taruti@ultra.violetti.org] has quit [Ping timeout: 276 seconds] 03:41 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts 03:43 -!- GS [~gsv@108.61.238.49.southernonline.net] has quit [Remote host closed the connection] 03:44 -!- kergoth [~kergoth@ip24-251-173-232.ph.ph.cox.net] has joined #go-nuts 03:46 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has quit [Quit: ZZZZZzzzzz] 03:46 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 250 seconds] 03:47 -!- dtm_ [~dtm@cpe-66-61-15-236.neo.res.rr.com] has quit [Quit: Leaving] 03:48 -!- taruti [taruti@ultra.violetti.org] has quit [Ping timeout: 240 seconds] 03:49 -!- dropdrive [~dropdrive@cpe-72-227-159-70.nyc.res.rr.com] has quit [Quit: leaving] 03:53 -!- dropdrive [~dropdrive@cpe-72-227-159-70.nyc.res.rr.com] has joined #go-nuts 03:55 -!- taruti [~taruti@ultra.violetti.org] has joined #go-nuts 03:55 -!- Stiletto [7f000001@69.195.144.4] has quit [Ping timeout: 264 seconds] 03:59 -!- smw [~stephen@unaffiliated/smw] has joined #go-nuts 04:03 -!- Stiletto [7f000001@69.195.144.4] has joined #go-nuts 04:03 -!- taruti [~taruti@ultra.violetti.org] has quit [Ping timeout: 240 seconds] 04:05 -!- rejb [~rejb@unaffiliated/rejb] has quit [Disconnected by services] 04:06 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts 04:06 -!- opt [~opt@174.3.227.184] has joined #go-nuts 04:08 -!- bugQ [~bug@c-71-195-207-34.hsd1.ut.comcast.net] has quit [Remote host closed the connection] 04:09 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host closed the connection] 04:13 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts 04:18 -!- taruti [taruti@ultra.violetti.org] has quit [Ping timeout: 240 seconds] 04:21 -!- adg [~nf@atka.wh3rd.net] has quit [Quit: leaving] 04:22 -!- nf [~nf@atka.wh3rd.net] has joined #go-nuts 04:22 -!- mode/#go-nuts [+o nf] by ChanServ 04:24 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts 04:29 -!- taruti [taruti@ultra.violetti.org] has quit [Ping timeout: 258 seconds] 04:29 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts 04:36 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined #go-nuts 04:37 -!- IanWizard [~dEVOted@c-98-237-207-104.hsd1.wa.comcast.net] has joined #go-nuts 04:37 -!- taruti_ [taruti@ultra.violetti.org] has joined #go-nuts 04:38 -!- taruti [taruti@ultra.violetti.org] has quit [Ping timeout: 276 seconds] 04:40 -!- xyproto [~alexander@77.40.159.131] has quit [Ping timeout: 250 seconds] 04:41 -!- taruti_ [taruti@ultra.violetti.org] has quit [Ping timeout: 240 seconds] 04:44 -!- xyproto [~alexander@77.40.159.131] has joined #go-nuts 04:46 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts 04:52 -!- cafesofie [~cafesofie@ool-18b97779.dyn.optonline.net] has quit [Remote host closed the connection] 05:01 -!- GS [~gsv@108.61.238.49.southernonline.net] has joined #go-nuts 05:07 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has joined #go-nuts 05:07 -!- IanWizard [~dEVOted@c-98-237-207-104.hsd1.wa.comcast.net] has quit [Quit: Leaving] 05:09 -!- fluffle [~camelid@s.pl0rt.org] has joined #go-nuts 05:09 -!- fluf^arr [~camelid@s.pl0rt.org] has quit [Read error: Connection reset by peer] 05:15 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has quit [Ping timeout: 255 seconds] 05:20 -!- hcatlin [~hcatlin@host86-163-247-252.range86-163.btcentralplus.com] has joined #go-nuts 05:20 -!- hcatlin [~hcatlin@host86-163-247-252.range86-163.btcentralplus.com] has quit [Changing host] 05:20 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has joined #go-nuts 05:20 -!- Boney [~paul@124-148-153-94.dyn.iinet.net.au] has joined #go-nuts 05:21 -!- taruti [~taruti@ultra.violetti.org] has joined #go-nuts 05:27 < Husio_> after updating go (compile + install from hg) it is required to reinstall all packages build with previous version? 05:28 < str1ngs> Husio: yes 05:28 < str1ngs> goinstall -a -u will handle most of it. if you used goinstall to install them of course 05:32 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has joined #go-nuts 05:35 -!- ronnyy [~quassel@p4FF1C5D4.dip0.t-ipconnect.de] has joined #go-nuts 05:36 < magn3ts> Is it more common for a go func to return a chan to let it be killed 05:36 < magn3ts> or to accept one to listen to be killed from? 05:36 < magn3ts> Is there an accepted practice? 05:37 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has joined #go-nuts 05:37 < Husio> well, goinstall -a -u does nothing so i guess I have to do it myself :( 05:37 < str1ngs> magn3ts: any of them work, really depends on your design 05:38 < str1ngs> Husio: goinstall -a -u -v 05:38 < str1ngs> Husio: also did you install them with goinstall? 05:39 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit [Remote host closed the connection] 05:40 < Husio> str1ngs: I guess I did 05:40 < Husio> -v shows few sources 05:40 < str1ngs> what package are you having trouble with? 05:42 < Husio> http://paste.pocoo.org/raw/430845/ 05:43 < str1ngs> Husio: seems to install fine 05:43 < str1ngs> and the project that is useing the package? what error? 05:44 < Husio> I've installed it as part of the go-xmpp package, but it's not being listed by the goinstall 05:45 < Husio> I think I should remove all, and install from scratch 05:45 < str1ngs> how did you install go-xmpp? 05:45 < smw> is closing a channel and accepted way to kill a goroutine? It would make that routine panic, correct? 05:46 < Husio> str1ngs: I'm not sure now 05:47 < smw> oh, nm, that would not work, although you can still tell if the channel is closed. That would work well. 05:48 < str1ngs> Husio: find $GOROOT -name "*xm*.a" 05:48 < str1ngs> Husio: adjust find your OS :P 05:48 < str1ngs> not sure how portable that will be 05:49 < str1ngs> smw: yes better to signal 05:49 < Husio> /opt/go/pkg/linux_386/xml.a 05:49 < Husio> /opt/go/pkg/linux_386/github.com/mattn/go-xmpp.a 05:49 < smw> str1ngs, you could use closing the channel as a signal. 05:49 < smw> str1ngs, seems like the simplest method. 05:49 < str1ngs> Husio: seems you used goinstall and make 05:49 < Husio> :) 05:50 -!- photron [~photron@port-92-201-20-50.dynamic.qsc.de] has joined #go-nuts 05:50 < str1ngs> Husio: ok mv /opt/go/pkg/linux_386/xml.a && goinstall -v github.com/mattn/go-xmpp 05:50 < Husio> is it possible to add go-xmpp as git submodule and then build my app using gb so that it won't be system wide? 05:50 < str1ngs> see how that goes. you might have to adjust the github url 05:51 < magn3ts> Is this the most concise syntax possible: http://pastie.org/2170878 05:51 < str1ngs> Husio: sure you can use submodule but I dont know how gb handles go proper rebuilds 05:51 < Husio> ok 05:51 < Husio> str1ngs: thanks for help, need to go to work ;) 05:51 < str1ngs> magn3ts: case <-quit: unless you plan to use i? 05:52 < magn3ts> but no combo of the for and switch? 05:52 < magn3ts> though, I suppose that should be a select rather. 05:52 < str1ngs> not sure what you mean? 05:58 -!- vmil86 [~vmil86@88.118.37.245] has joined #go-nuts 05:59 -!- Jessica_Lily [~Jessica@unaffiliated/xray7224] has joined #go-nuts 06:00 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts 06:03 -!- ccc1 [~Adium@140.109.98.187] has quit [Quit: Leaving.] 06:04 -!- Tv__ [~Tv__@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 276 seconds] 06:05 < magn3ts> Is something like this possible? Rather than declaring a function that accepts a *websocket.Conn and then pass it's name to Handle? http://pastie.org/2170912 06:06 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has quit [Remote host closed the connection] 06:09 -!- dohug [~dohug@c-67-169-72-243.hsd1.ca.comcast.net] has joined #go-nuts 06:10 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 06:10 < magn3ts> There has to be. 06:10 < magn3ts> What if I want to pass my WebSocket handler additional variables. 06:15 < magn3ts> I wish there were more examples of the comma, ok, chan syntax. 06:18 < Electro> I 06:19 < Electro> I'm having a slight problem with the ... operator here 06:19 < Electro> err := c.Insert(image[0], image[1]) 06:19 < magn3ts> How does a chan return the ok status? I don't understand it. The only example I can find it loking up a map value... 06:19 < Electro> works fine, but is not effective since i needs to input an arbritrary number 06:19 < Electro> err := c.Insert(image[:]...) 06:19 < Electro> does not work, but from what i read on golang it should 06:19 < Electro> cannot use &image[:] (type []ivbs.Image) as type []interface { } in function argument 06:19 < Electro> is the error 06:21 < str1ngs> Electro: sure you dont want image... ? 06:22 < str1ngs> also what does the signature of Insert look like 06:22 < Electro> cannot use image (type [2]ivbs.Image) as type []interface { } in function argument 06:22 < Electro> is the new error 06:22 < zozoR> magn3ts, v, ok := <-ch 06:22 < magn3ts> chan := make(chan int) i, ok <- chan; when is ok ever false? What determines or what code sets it to false? 06:22 < Electro> unc (collection Collection) Insert(docs ...interface{}) os.Error 06:22 < Electro> Insert inserts one or more documents in the respective collection. In case the session is in safe mode (see the SetSafe method) and an error happens while inserting the provided documents, the returned error will be of type *LastError. 06:22 < zozoR> close(ch) sets it to false 06:22 < magn3ts> zozoR, I see 06:23 < str1ngs> Electro: does it really have to be an interface or can you say use ...Image ? 06:23 < magn3ts> zozoR, do you have any thoughts on my other question: is there a syntactical way to do this: http://pastie.org/2170912 06:23 < magn3ts> it turns out I need to use a closure anyway to give my handler some other data it needs, but I'm still curious 06:23 < Electro> ah, Insert is not my code, is a driver 06:23 < str1ngs> Electro: ah was worried about that 06:24 -!- ronnyy [~quassel@p4FF1C5D4.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 06:25 < str1ngs> Electro: as far as i know []interface{} does not exactly work the way you would thing . I think ...interface{} is probably what is needed 06:25 < str1ngs> think* 06:26 < str1ngs> Electro: atleast that i show fmt handles it which is generally where I use this sort of thing. 06:26 < zozoR> i have no idea :D 06:26 < zozoR> i seldom use go's concurrency for other things than iterators 06:27 < zozoR> or generators or whatever you call them 06:27 < Electro> but ...interface{} is what is specified in the function? Insert(docs ...interface{}) os.Error 06:27 < str1ngs> I know thats why I'm wonder if that is the best signature for this 06:28 < Electro> oh 06:28 < str1ngs> but I guess you could in some way convert your Images to []interface{} 06:28 < str1ngs> grrr wait the sigure is right 06:29 < nteon> whats the way I'm suppose to convert an int to an int32? 06:29 < str1ngs> is Image an array ? 06:29 < str1ngs> nteon: int32(myInt) 06:29 < Electro> str1ngs: http://pastebin.com/ch4MZDim 06:30 < Electro> thas the test code im trying to work 06:30 < nteon> str1ngs: thanks :) wasn't sure if it was that or myInt.(int32) 06:30 < str1ngs> Electro: ah use a slice 06:30 < Electro> still havent understood the exact difference between arrays and slices to be honest 06:31 < Electro> how would i go about changing it into a slice? 06:31 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts 06:31 < str1ngs> &ivbps.Image{image1,image2} 06:31 < magn3ts> I literally have no idea how to do this. 06:31 < str1ngs> err &[]ivbps.Image{image1,image2} 06:32 < str1ngs> Electro: my rule of them, always use a slice. 06:33 < str1ngs> thumb* 06:33 -!- zippoxer [~zippoxer@bzq-79-179-204-222.red.bezeqint.net] has quit [Ping timeout: 240 seconds] 06:34 < Electro> yes from what ive understood that is so 06:34 < Electro> im sorry but i dont fully understand the answer here though 06:35 < str1ngs> right now you are using an array 06:35 < str1ngs> use a slice instead 06:35 < str1ngs> &[]ivbps.Image{image1,image2} will create a slice 06:36 < str1ngs> [2] creates an array 06:37 < Electro> hmm yes. i think i understand 06:37 < Electro> will do some reading up now 06:37 < Electro> well thank you for your time 06:38 < str1ngs> https://gist.github.com/4e7257d77dbd1740b9d3 will show what I mean 06:39 < Electro> ah yes 06:40 -!- GS [~gsv@108.61.238.49.southernonline.net] has quit [Remote host closed the connection] 06:41 < str1ngs> Electro: http://golang.org/doc/effective_go.html#slices will help. above that is array 06:42 < Electro> yep reading that particular piece now 06:42 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts 06:42 -!- tokuhiro_ [~tokuhirom@www33009u.sakura.ne.jp] has joined #go-nuts 06:43 < magn3ts> What is the purpose of type HandlerFunc? Why would you not use an interface insteaD? 06:43 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has left #go-nuts [] 06:45 < str1ngs> magn3ts: my suggestion even though you are not going to like it . is not to complicate it with a closure. 06:45 < str1ngs> walk before you run. 06:45 < magn3ts> I actually got the closure bit working, I had only made a small mistake. 06:46 < magn3ts> I'm more confused about the whole, just return a type and write the function prototype to match the type. That seems like things interfaces are used for 06:48 < magn3ts> I guess it is an interface, haha. 06:48 < str1ngs> there is a Hanlder interface 06:48 < str1ngs> spelt right of course 06:48 < Electro> y 06:49 < Electro> (mistype) 06:49 < str1ngs> magn3ts: I find if I'm confused about a package in the stdlib. its best to use godoc or godoc http server 06:50 < magn3ts> I currently am. I didn't read the Handle section close enough and was expecting "interface Handler" instead of "type Handler". I was being dumb. 06:53 < str1ngs> hehe dont be so hard on your self . 06:54 < str1ngs> I mean we have a gopher mascot, common you cant take it that serious :P 06:55 < zozoR> im looking for a timer function, one you can start and later measure to look how far you have gone 06:56 < zozoR> like, timer.Start() and then later timer.Time 06:56 < zozoR> suppose i could just create one using the time library .. : | 06:56 < str1ngs> http://code.google.com/p/gotimer/ 06:56 < str1ngs> or https://github.com/str1ngs/gotimer 06:57 -!- yogib [~yogib@131.234.59.64] has joined #go-nuts 06:57 < str1ngs> its rather simple though... 06:58 < zozoR> true, doesnt really do what i want ^^ 06:58 < zozoR> ill just make one myself, as it is a simple task afterall 06:59 -!- virtualsue [~chatzilla@nat/cisco/x-gtdllljmrwuwwbop] has joined #go-nuts 06:59 < str1ngs> how does it not do what you want? 06:59 < str1ngs> are you missing the deffer aspect? 07:00 < zozoR> maybe i just didnt read it good enough 07:00 < zozoR> what does the runtime.Caller do? 07:04 < str1ngs> godoc runtime Caller 07:04 < str1ngs> good for call tracing 07:05 < zozoR> :) 07:05 < str1ngs> but either eay. time package probably all you want 07:05 < zozoR> thanks for input 07:06 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 258 seconds] 07:07 < str1ngs> something like start := time.Seconds() ....... total := time.Seconds() - start 07:07 < magn3ts> Is the compiler always so aggressive about unused variables? 07:07 < magn3ts> I'm using this variable and it's telling me it's not used. 07:08 < str1ngs> zozoR: use Nanoseconds if you need higher resolution 07:08 < magn3ts> nvrmnd 07:08 < str1ngs> magn3ts: did you redeclare it with := in another scope? 07:08 < magn3ts> no 07:09 < magn3ts> I just had it chilling by itself on a line... just a variable hanging out 07:09 < zozoR> magn3ts, i know what you mean 07:10 < zozoR> occasionally i want to use the fmt to do debugging 07:10 < zozoR> but i have to uncomment it everytime i am not debugging because of HEEY! YOU HAVENT USE THIS! OI!! 07:10 < str1ngs> _ = foo to get around that. but imo dont abuse it 07:11 < zozoR> is ok, i made af func ASDASOINDASD() { fmt.Println("AJSDNA") } 07:11 < str1ngs> zozoR: use log instead 07:11 < str1ngs> if debug { log.SetOutput(os.Stderr) } 07:11 < str1ngs> if not log to file 07:11 -!- virtualsue [~chatzilla@nat/cisco/x-gtdllljmrwuwwbop] has quit [Ping timeout: 241 seconds] 07:12 < zozoR> i dont want to use if statements when debugging : | 07:12 < aiju> 09:18 < zozoR> is ok, i made af func ASDASOINDASD() { fmt.Println("AJSDNA") } 07:12 < str1ngs> its one if statement 07:12 < str1ngs> jesh 07:12 < aiju> fine 07:12 < zozoR> :D 07:12 < aiju> i just add debug statements on demand 07:12 < zozoR> well, i dont want debug code in my code in general 07:12 < str1ngs> that makes no sense 07:13 < aiju> silly debug flags which print lots of nonsensical stuff 07:13 < zozoR> i use it when there is a bug, then i remove it when im done 07:13 < aiju> make no sense ;p 07:14 < aiju> zozoR: you can also use print/println for debugging 07:14 < zozoR> i am 07:15 < magn3ts> anyone have any container/list examples? 07:15 < aiju> magn3ts: use a slice 07:15 < magn3ts> I need to be able to remove elements randomly. 07:15 < zozoR> why arent those packages removed yet? 07:15 < zozoR> use append 07:16 < dforsyth> whats wrong with those packages? 07:16 * magn3ts is too lazy to find :[ 07:16 < str1ngs> ya wtf 07:16 < str1ngs> lets all make are own double link list for fun. 07:16 < aiju> doubly linked lists aren't rocket science 07:16 < aiju> there aren't even much work 07:17 < zozoR> why cant slices do all that? 07:17 < dforsyth> so then why force everyone to duplicate it? 07:17 < magn3ts> okay, let me ask a different way. I *could* use a slice, I could write my own ll, but for a list of websocket connections that I need to be able to remove at random from some sort of array/slice/ll... what would be the recommendation? 07:18 < zozoR> o = append(o[0:i], o[i+1:len(o)]...) 07:18 < zozoR> that removes the index i 07:18 < magn3ts> is there a convenience find() ? Do I really have to implement my own find every time I want to use a list like this? 07:18 < aiju> just write your own list 07:18 < aiju> god damnit 07:18 < magn3ts> (or any reason why I couldn't just use... list?) 07:19 < magn3ts> aiju, right, I can. But why not use the one that already exists? 07:19 < zozoR> well, you can 07:19 < aiju> interface madness? 07:19 < aiju> but sure you can 07:19 < zozoR> but it only works with ints 07:19 < zozoR> and then typesafety is off 07:19 < zozoR> if you want other than ints that is 07:19 < str1ngs> dforsyth: I sense trolls, will operations starvation. 07:19 < dforsyth> magn3ts: if you have a way to identify the connections i'd use a map 07:19 * magn3ts coughs and it sounds like generics 07:20 < str1ngs> commence* 07:20 < dforsyth> str1ngs: yeh 07:22 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 07:22 < zozoR> well, its just that you have to check the types on the interface{} every time you use other types than int 07:23 < magn3ts> I understand that, I've already written out bits of this to use list.List, but I'm second guessing it now. 07:23 < magn3ts> But I also drag my feet at the notion of writing my own Find 07:23 < zozoR> : | 07:24 < magn3ts> lol is that bad? 07:24 < zozoR> for ------ { if list[i] == kage {return i}} 07:24 < zozoR> done 07:24 < magn3ts> kage? 07:24 -!- Project_2501 [~Marvin@82.84.71.233] has joined #go-nuts 07:24 < zozoR> means cake in danish 07:24 < magn3ts> are you just shortening that? lol 07:25 < zozoR> replace kage with an argument 07:25 < zozoR> and write the for loop correctly 07:25 -!- napsy [~luka@193.2.66.6] has joined #go-nuts 07:25 < zozoR> its not that hard 07:25 < magn3ts> lol 07:25 < magn3ts> I know, I know. 07:25 < zozoR> :P 07:26 < dforsyth> are you danish zozoR ? 07:26 < zozoR> ye 07:26 < dforsyth> i work with a denmarkian 07:26 < zozoR> a dane* 07:26 < zozoR> ^^ 07:26 < dforsyth> denmarkian 07:26 < zozoR> is it nice? 07:26 < dforsyth> yeah, hes pretty cool 07:26 < zozoR> wth is a denmarkian 07:27 < dforsyth> hes one of the og nautilus developers 07:27 < aiju> he's joking 07:27 < aiju> for christ's sake 07:27 < zozoR> aiju is a germanian 07:27 < zozoR> xD 07:27 < aiju> it's "nazi" 07:27 < zozoR> true that 07:28 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has quit [Quit: WeeChat 0.3.0] 07:29 < zozoR> but i only know one guy from denmark who codes, and he hates nautilus :P 07:29 < dforsyth> well, the guy i work with doesnt like it that much either as far as i can tell :) 07:29 < zozoR> haha 07:29 < dforsyth> the first time i spoke to him was while i was talking about how crappy it was 07:30 -!- Skola [~bas@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has joined #go-nuts 07:30 < dforsyth> he didnt mind too much 07:30 < aiju> nautilus .. isn't that GNOME stuff? 07:30 < zozoR> yes 07:30 < dforsyth> it started at a company called eazel, and he worked for them 07:31 < zozoR> well, its not that bad :P 07:32 < dforsyth> i havent used it since like 2005 so i cant really say 07:32 -!- `micro` [~quassel@96-42-218-124.dhcp.roch.mn.charter.com] has quit [Quit: No Ping reply in 180 seconds.] 07:32 < aiju> GNOME and "not that bad" ... lol 07:33 -!- `micro` [~quassel@96-42-218-124.dhcp.roch.mn.charter.com] has joined #go-nuts 07:34 -!- ccc1 [~Adium@140.109.98.187] has joined #go-nuts 07:47 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 258 seconds] 07:48 < magn3ts> nautilus and then the rest of gnome rank high on my least favorite software. 07:48 < magn3ts> I'm rooting for Marlin. 07:48 < aiju> guns? sounds good 07:49 < fzzbt> nazis like their guns 07:49 < aiju> almost as much as their beloved gas chambers 07:50 < Electro> sigh i still cant get it to work, i've involved others here at work now and we cannot figure it out... 07:50 < Electro> http://pastebin.com/euXNTVCE 07:50 < Electro> is the code now 07:50 < Electro> src/state.go:23: cannot slice image (type *[]ivbs.Image) 07:50 < Electro> is the error 07:50 < aiju> you have a pointer to a slice 07:50 < aiju> why? 07:50 < dforsyth> magn3ts: marlin? 07:51 < magn3ts> GTK3 file manager with column browsing <3 07:51 < Electro> aiju: not sure exactly, been trying lots of different methods to pass the structs i need into the Insert() function 07:51 < aiju> sh is the one and only file manager 07:51 < zozoR> aiju, buffer pointer :D 07:51 < Electro> i need the structs passed individually, not as a slice/array 07:52 < dforsyth> oh i see 07:52 < Electro> i'm quite certain it should work, i just cant get it to actually work 07:52 < aiju> (*image)[:] 07:52 < aiju> should work 07:52 < aiju> even without the [:] 07:53 < Electro> src/state.go:23: cannot use *image[:] (type []ivbs.Image) as type []interface { } in function argument 07:53 < aiju> oh lol 07:53 < aiju> Electro: for loop and insert each manually 07:53 < magn3ts> file manager? just keep the table on paper and access the bytes yourself! 07:53 < zozoR> :3 07:53 < aiju> magn3ts: use punch tape and store your files on your sehfl 07:53 < aiju> *self 07:53 < aiju> *shelf 07:54 < Electro> aiju: thats exactly what im trying not to do, since that would mean a database access for every image im inserting 07:54 < aiju> Electro: create a new []interface{} slice 07:54 < aiju> copy everything over with a for loop 07:54 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 07:55 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 07:55 -!- GS [~gsv@108.61.238.49.southernonline.net] has joined #go-nuts 07:56 < Electro> well... that worked 07:56 < Electro> i've been working on this for well over an hour now 07:56 < Electro> thank you very much 07:57 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has joined #go-nuts 07:58 < str1ngs> 06:33 str1ngs | but I guess you could in some way convert your Images to []interface{} 07:59 < Electro> str1ngs: yeah i guess i didnt understand it exactly... 07:59 -!- moraes [~moraes@189.103.188.201] has quit [Read error: Operation timed out] 07:59 < str1ngs> Electro: to be fair I was having trouble explaining the concept. since I didnt understand it 100% either. 08:00 < str1ngs> Electro: not everyone speaks str1nganese :( 08:02 -!- fvbommel [~fvbommel_@86.86.15.250] has joined #go-nuts 08:06 < Electro> heh, well i thank you for trying 08:06 < Electro> and i understand go a bit better now 08:06 < Electro> which i do humiliatingly bad for having a well paid job as a Go coder... 08:07 < aiju> haha 08:07 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has quit [Quit: Slant] 08:07 < str1ngs> I guess in a nut shell.. no pun. slice of Images != slice of interfaces 08:07 < aiju> and I'm hacking C# here ... 08:08 < Electro> yeah... well im off to actually code the function i set out to do hours ago :) 08:09 < aiju> throw new xiExceptionBase(Convert.ToInt32(xiDBStorageErrors.MissingParameters), RMCache.GetExternalString("ERROR_NOINPUTTABLE", mCurrentOp.CultureInfo)); 08:09 < aiju> fun! 08:10 < zozoR> why are you coding C# 08:10 < aiju> work 08:10 < zozoR> oh yea, some people want to code as work.. 08:10 < zozoR> forgot that :D 08:12 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-180-40.clienti.tiscali.it] has joined #go-nuts 08:14 < zozoR> aiju, what is your oppinion on C#? 08:14 < aiju> sucks 08:14 < zozoR> awesome 08:14 < aiju> ha 08:14 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|] 08:14 < aiju> i suppose you're not surprised 08:15 < aiju> it's an unholy fusion of Java and C++ 08:16 -!- Project_2501 [~Marvin@82.84.71.233] has quit [Ping timeout: 250 seconds] 08:19 < vsmatck> I gotta do VB6 tomorrow. AKA VBA. 08:19 < aiju> haaha 08:19 < aiju> i thought VB was dead 08:20 < vsmatck> Better than the BASIC I was doing before that. 08:21 < vsmatck> I think the only tool I don't disaprove of at my work is ladder logic. Although the one we use doesn't have symbols.. only memory addresses. 08:22 < aiju> ladder logic? 08:22 < vsmatck> It a type of programming meant to harness preexisting knowledge of electrical engineers. 08:23 < aiju> sounds bad 08:23 < vsmatck> It looks like a wiring diagram. You build state machines with it to do sequential stuff. But it's basically like you have a program where you only have one while loop and aren't allowed to use blocking operations. 08:23 < mpl> what happens if a black cat walks under it? 08:25 < vsmatck> Industrial programming is all primitive. All old shit. I'd be happy if they let me use C, but the people in charge are afraid of "text based programming" as they call it. 08:25 * vsmatck will stop bitching. 08:26 < aiju> vsmatck: is it like labview? 08:27 < vsmatck> Nah. LabView is different. I do a lot of LabView. 08:27 < aiju> labview is fun 08:27 < vsmatck> It's way easier to express parallelism in a Ladder Logic language than labview. 08:27 < aiju> i wrote complicated programs in labview 08:27 < aiju> like a program which plays music on a stepper motor 08:27 < mpl> I wrote a little something that used both labview and go :) 08:29 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 246 seconds] 08:33 < vsmatck> I think Go would make a nice data collection language for industrial stuff. It'd just need drivers for all the various communications protocols. 08:34 < aiju> vsmatck: and a VAX compiler :) 08:34 < vsmatck> Probably wouldn't be good at control unless the GC was lower latency. 08:34 < aiju> aren't there still some systems with PDP-11s? lol 08:34 < vsmatck> Generally PLCs are < 10ms scan rate. 08:34 < aiju> PLC? 08:35 < vsmatck> Portable Logic Controller. Computer with build in inputs/outputs. Like industrial PC or something. 08:35 < vsmatck> Eh. People generally call "intel atom" industrial PC tho so that's not right. 08:36 < aiju> most computers have built in I/O ;p 08:36 < aiju> but i get what you mean 08:36 < vsmatck> :) 08:36 < str1ngs> dont you mean programmable logic controller? 08:37 -!- rlab [~Miranda@108-114-113-92.pool.ukrtel.net] has joined #go-nuts 08:37 < vsmatck> oh yeah, you're right. 08:40 -!- benjack [~benjack@bb119-74-99-26.singnet.com.sg] has joined #go-nuts 08:42 -!- zippoxer [~zippoxer@bzq-79-179-204-222.red.bezeqint.net] has joined #go-nuts 08:43 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has quit [Ping timeout: 258 seconds] 08:44 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has joined #go-nuts 08:50 < aiju> c# has this locale crap all over it 08:51 < aiju> you can probably break c# programs by changing the locale 08:56 -!- virtualsue [~chatzilla@nat/cisco/x-fuwhfpvqefirrnkd] has joined #go-nuts 08:58 -!- PortatoreSanoDiI [~Marvin@82.84.99.106] has joined #go-nuts 09:01 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-180-40.clienti.tiscali.it] has quit [Ping timeout: 244 seconds] 09:08 < zippoxer> that's not something that's hard to fix for the c# team, the hard thing to fix, is all shit together. 09:09 < zippoxer> craps* 09:09 < aiju> haha 09:09 < aiju> computers speak english. period. 09:10 < zippoxer> yeah. if we consider other languages too much we'll advance slower .. 09:13 < aiju> there's nothing wrong with manuals and documentation in other languages 09:18 -!- bjarneh [~bjarneh@24.80-203-20.nextgentel.com] has quit [Quit: leaving] 09:20 -!- ccc1 [~Adium@140.109.98.187] has quit [Quit: Leaving.] 09:28 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has quit [Read error: Connection reset by peer] 09:28 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has joined #go-nuts 09:38 -!- Jessica_Lily [~Jessica@unaffiliated/xray7224] has quit [Read error: Connection reset by peer] 09:39 -!- benjack [~benjack@bb119-74-99-26.singnet.com.sg] has quit [Quit: Leaving.] 09:40 -!- shvntr [~shvntr@113.84.88.84] has joined #go-nuts 09:43 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts 09:47 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 09:48 < Tonnerre> Hm, if I have a compress/gzip Decompressor and I use ReadFull, why do I get 0 bytes? 09:49 < aiju> because it's empty? ;p 09:49 < Tonnerre> It shouldn't be, there's 2052 bytes of input 09:50 < Tonnerre> Maybe it's just corrupted or otherwise invalid or something 09:50 < aiju> do you check errors? 09:51 < Tonnerre> Yes, I don't see any 09:51 < Tonnerre> I just see 0 bytes read 09:52 < Tonnerre> ReadFull also claims 0 bytes read in its return code 09:53 < aiju> hm 09:53 < aiju> i don't see a way for ReadFull to return 0, nil 09:54 < aiju> unless you pass an empty buffer :) 09:55 < aiju> Tonnerre: mind pasting the code? 09:57 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 250 seconds] 10:00 -!- virtualsue [~chatzilla@nat/cisco/x-fuwhfpvqefirrnkd] has quit [Ping timeout: 240 seconds] 10:01 -!- smw [~stephen@unaffiliated/smw] has quit [Ping timeout: 244 seconds] 10:09 -!- shvntr [~shvntr@113.84.88.84] has quit [Quit: leaving] 10:12 -!- virtualsue [~chatzilla@nat/cisco/x-wtfswchkuffqmidx] has joined #go-nuts 10:13 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 276 seconds] 10:15 -!- fvbommel [~fvbommel_@86.86.15.250] has joined #go-nuts 10:15 -!- tav [~tav@92.20.69.225] has quit [Quit: tav] 10:17 -!- tav [~tav@92.20.69.225] has joined #go-nuts 10:18 -!- alehorst [~alehorst@177.40.53.236] has quit [Ping timeout: 255 seconds] 10:29 < zippoxer> http://www.fancy-lang.org/ 10:29 < zippoxer> ewww 10:30 -!- GeertJohan [~Squarc@D978EC5D.cm-3-1d.dynamic.ziggo.nl] has joined #go-nuts 10:32 -!- alehorst [~alehorst@189.58.133.88.dynamic.adsl.gvt.net.br] has joined #go-nuts 10:32 < Crnobog|Work> Oh another dynamic language yaaay 10:32 < zippoxer> i mean, it's ugly and useless. 10:32 < zippoxer> if they don't try to compete anyone else, so fine, i can just ignore 10:32 < zippoxer> but... 10:33 < zippoxer> if: (city is_a?: City) then: { 10:33 < zippoxer> y?? 10:34 < Crnobog|Work> so many colons D: 10:34 < zippoxer> useles.. 10:35 < zippoxer> and the world "then" and the brackets.. i would prefer go, even if it's faster :P 10:35 < zippoxer> word* 10:39 < zozoR> how can one language beside perl rape my eyes so much 10:42 < bpalmer> the smalltalk heritage is clear. 10:49 < aiju> 12:42 < zippoxer> and the world "then" and the brackets.. i would prefer go, even if it's faster :P 10:50 < aiju> it's based on ruby 10:50 < aiju> it will be outperformed by ANYTHING 10:50 < aiju> and ranting about syntax is usually pointless 10:51 < aiju> just look at http://aiju.de/code/k/tictactoe 10:57 -!- gnuvince|work [8e544424@gateway/web/freenode/ip.142.84.68.36] has joined #go-nuts 10:57 < zozoR> aiju, what foul language is that? 10:57 < aiju> K 10:58 < zozoR> why did you learn that? 10:58 < aiju> it's fun 10:58 < aiju> 2+&{~|/'(0=x!/:\:x)&x>/:\:x}@2+!100 10:58 < aiju> have you ever seen a shorter sieve of erastothenes implementation? 10:59 < zozoR> this makes perl look like python : | 11:01 < aiju> haha 11:01 < aiju> i find perl fairly readable, actually 11:01 < aiju> no clue why people always rant about it 11:02 < aiju> there are other reasons why perl sucks 11:03 < aiju> sure you can write unreadable code 11:06 < aiju> show me a language where you can't ;p 11:09 -!- dohug [~dohug@c-67-169-72-243.hsd1.ca.comcast.net] has quit [Quit: Lost terminal] 11:12 < zozoR> its hard to do it in python :D 11:12 < aiju> bs 11:12 < aiju> play a bit with map and these list thingies 11:12 < aiju> how were they called? 11:13 < photron> list comprehension? 11:13 < aiju> yeah 11:13 < aiju> i have written some horrible unreadable python code 11:14 < aiju> but it's buried in backup 11:15 < aiju> i'm not even sure whether i have access to the backups 11:15 -!- tav [~tav@92.20.69.225] has quit [Ping timeout: 255 seconds] 11:19 -!- Loonacy [~loonacy@c-67-172-248-248.hsd1.ut.comcast.net] has quit [Quit: Leaving] 11:19 < zippoxer> aiju: i didn't complain about the readability, but the pointless "then" and repeating pointless ":" 11:19 < zippoxer> both could be removed from the language without fucking features off 11:20 < aiju> zippoxer: it might be required by something deeper 11:20 < zippoxer> might* 11:20 < zippoxer> so they should show me that right after that ugly code of block 11:20 < aiju> haha 11:20 < aiju> but maybe it's indeed pointless 11:21 < zippoxer> i hope. 11:21 -!- tav [~tav@92.20.70.66] has joined #go-nuts 11:21 < aiju> but then it's Ruby x Smalltakl 11:21 < aiju> why the fuck do you have any expectations on something like that? 11:21 < zozoR> one should not try to make unreadable code 11:21 < zozoR> ;3 11:21 < aiju> zozoR: oh that python code wasn't unreadable on purpose 11:22 < aiju> zippoxer: the trailing ":" marks keywords 11:22 < aiju> according to the tutorial 11:22 < zozoR> lol 11:22 < zippoxer> holding shift 3 times a line.. 11:22 < zippoxer> :( 11:23 < zippoxer> kidding not 3, but .. 11:23 < zippoxer> avg is 1-2-3 11:23 < aiju> you need shift for {} 11:23 < aiju> are you using a fucking mechanical typewriter? 11:23 < zippoxer> :) 11:23 < zippoxer> how did u know 11:24 < aiju> the : are indeed necessary by the syntax 11:24 < aiju> but i don't quite understand it 11:25 < zozoR> i have to use alt gr to use {} 11:25 < zozoR> xD 11:25 < zippoxer> it has a logic, but they could make a shortcut! 11:25 < aiju> zozoR: hahahha 11:25 < aiju> zozoR: US layout or gtfo 11:25 < zozoR> nah, danish ftw 11:25 < zozoR> æøå in your face :D 11:25 < aiju> äöü 11:25 < aiju> i just remap them 11:25 < zozoR> that y æ and ø 11:26 < aiju> so i can type Übermensch 11:26 < aiju> well, i'm german 11:26 < zozoR> ich bin sehr schlüssel 11:26 < zozoR> mit dir 11:26 < aiju> i don't need øå 11:26 < aiju> æ might be necessary for french 11:27 < zozoR> ^^ 11:27 < aiju> there is always SCIM 11:27 < aiju> ... except on windows 11:30 < aiju> i find it very ironic that the german keyboard has the paragraph sign 11:30 < mpl> aiju: I just use alt 11:30 < mpl> alt-a-e in acme ;) 11:30 < aiju> mpl: ofc 11:30 < aiju> plan 9 has the best 11:31 < aiju> Ångstrøm 11:31 < mpl> but it's true that I've added é and è and à to my dvorak because they're common enough. 11:32 < mpl> æ is really anecdotic. 11:32 < aiju> i use hex input for some chars 11:32 < aiju> e.g. 卐(U+5350) 11:32 < zippoxer> LOL? 11:32 < aiju> or ¥ (U+00a5) 11:32 < mpl> that one is essential of course. 11:33 < zippoxer> why the hell that sign was added? 11:33 < aiju> zippoxer: haha 11:33 < aiju> zippoxer: there is hammer and sickle 11:33 < aiju> zippoxer: and it was added because it is used in hinduism 11:33 < zippoxer> ... 11:34 < aiju> there are also runes 11:36 < aiju> Right facing swastika In the Hindu tradition within India, you will find only the right facing swastika. The right facing swastika 卐 U+5350 is a symbol for Hinduism, the left handed swastika 卍 U+534D is a symbol for Buddhism. 11:37 < mpl> isn't one of them used for Sun or Horus in Egyptian or something? 11:37 < zippoxer> lol a history lesson 11:38 < aiju> mpl: pretty much any civilization used swastikas 11:38 -!- Gertm [~Gertm@178-119-230-147.access.telenet.be] has joined #go-nuts 11:38 -!- sacho [~sacho@95-42-102-15.btc-net.bg] has joined #go-nuts 11:38 < mpl> ah yeah, wi says sun wheel at age of bronze. 11:39 < aiju> By the early 20th century, it was used worldwide and was regarded as a symbol of good luck and success. 11:39 < zippoxer> the beautiful 卐 sign is basic, i almost always knew nazzis didn't invent it 11:39 -!- tvw [~tv@212.79.9.150] has quit [Ping timeout: 255 seconds] 11:39 < zippoxer> luck and success to evil :P 11:45 < aiju> one wikipedia article used to use the swastika to explain symmetry 11:45 -!- _andre [~andre@fosforo.f2.k8.com.br] has joined #go-nuts 11:45 -!- tncardoso [~thiago@189.59.206.226] has joined #go-nuts 11:47 -!- franciscosouza [~francisco@187.105.22.148] has quit [Quit: franciscosouza] 11:48 -!- moraes [~moraes@189.103.188.201] has quit [Ping timeout: 264 seconds] 11:50 < Tekerson> sorry to interupt the history lesson :) has anyone use mgo with the template package? I'm trying to figure out what I need to do to get the template to iterate over a collection (not working example here: http://pastebin.com/4inC0Zif) 11:58 -!- dlowe [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has joined #go-nuts 12:00 -!- erus` [~chatzilla@mailgate.ips-international.com] has joined #go-nuts 12:00 < erus`> skelterjohn 12:01 < aiju> IT'S A TRAP 12:02 < erus`> skelterjohn go-gb wont build :( 12:04 -!- sacho [~sacho@95-42-102-15.btc-net.bg] has quit [Ping timeout: 252 seconds] 12:09 < zozoR> has it not been a long time since nsf were here? 12:10 < aiju> yeah 12:10 < aiju> i wonder what happened to him 12:10 -!- nekoh [~nekoh@dslb-178-004-073-068.pools.arcor-ip.net] has joined #go-nuts 12:11 < skelterjohn> morning 12:11 < skelterjohn> erus`: i bet it's a weekly/release issue 12:11 < erus`> ok it builds now 12:12 < skelterjohn> magic 12:12 < erus`> sort.SortStrings 12:12 < erus`> had to change that in pkg 12:12 < skelterjohn> that's the weekly/release issue 12:12 < skelterjohn> gb tip goes with go weekly 12:12 < skelterjohn> gb tag release or gb-release.r58 goes with go release 12:13 -!- lucian [~lucian@78-86-217-168.zone2.bethere.co.uk] has joined #go-nuts 12:14 < erus`> when it builds a packages 12:14 < erus`> should it just build a .8 ? 12:15 < aiju> nsf said the last time something 16.9. 12:16 < erus`> skelterjohn can i force it not to use make? 12:16 < skelterjohn> it doesn't use make by default 12:18 -!- sacho [~sacho@87-126-0-180.btc-net.bg] has joined #go-nuts 12:18 < skelterjohn> the only time it will use make without you telling it to is in $GOROOT/src for a few packages 12:18 -!- Project_2501 [~Marvin@82.84.97.16] has joined #go-nuts 12:18 < skelterjohn> os, go/build and runtime/cgo 12:19 < skelterjohn> and math 12:19 -!- franciscosouza [~francisco@201.7.186.67] has joined #go-nuts 12:20 -!- of82ecuq [~of82ecuq@faui00s.informatik.uni-erlangen.de] has joined #go-nuts 12:20 -!- PortatoreSanoDiI [~Marvin@82.84.99.106] has quit [Ping timeout: 240 seconds] 12:21 < vegai> http://seanerussell.blogspot.com/2011/06/now-we-get-to-annoying-aspects-of-go.html 12:21 < erus`> keep getting 'make not in path' 12:21 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 12:21 < vegai> new/make *is* kinda weird 12:21 < erus`> but mingw calls make 'mingw32-make' 12:21 < aiju> nsf is alive in #krawlang 12:23 < vegai> does the new / make separation make the language simpler or is there some other reason for it? 12:23 -!- hsoj [~josh@66.54.185.139] has joined #go-nuts 12:23 < aiju> vegai: no 12:23 < skelterjohn> erus`: it should still work, right? 12:23 < skelterjohn> it just warns you about the lack of make 12:23 < Gertm> weren't there plans to get rid of the new/make thing and just use make? 12:24 -!- franciscosouza [~francisco@201.7.186.67] has quit [Client Quit] 12:24 < skelterjohn> Gertm: it was talk, never got used 12:24 < Gertm> too bad 12:24 < dlowe> vegai: last time I pointed this out, I got roasted in a flamewar :D 12:24 < skelterjohn> i thought so too 12:24 < aiju> 14:28 < vegai> http://seanerussell.blogspot.com/2011/06/now-we-get-to-annoying-aspects-of-go.html 12:24 < aiju> he doesn't get the language 12:25 < aiju> structures are values, maps are references 12:25 < aiju> wow 12:25 < aiju> this guy really has no clue 12:26 -!- sacho [~sacho@87-126-0-180.btc-net.bg] has quit [Read error: Connection reset by peer] 12:26 -!- ccc1 [~Adium@114-45-84-113.dynamic.hinet.net] has joined #go-nuts 12:29 -!- sacho [~sacho@87-126-7-117.btc-net.bg] has joined #go-nuts 12:30 -!- dlowe1 [~dlowe@nat/google/x-fmnorjaqkqahqtfk] has joined #go-nuts 12:32 < vegai> yes, well 12:32 < vegai> are there often situations where new(Foo) (where Foo is a reference type) is useful? 12:33 < aiju> no 12:33 < vegai> are there ever? 12:33 < aiju> but the language shouldn't add complicated heuristics 12:33 < vegai> sure 12:34 -!- GeertJohan [~Squarc@D978EC5D.cm-3-1d.dynamic.ziggo.nl] has quit [Ping timeout: 240 seconds] 12:35 < dlowe> Given that there are an extremely small number of possible reference types, I'm not sure that qualifies as a complicated heuristic 12:37 -!- GeertJohan [~Squarc@D978EC5D.cm-3-1d.dynamic.ziggo.nl] has joined #go-nuts 12:49 -!- rlab [~Miranda@108-114-113-92.pool.ukrtel.net] has quit [Ping timeout: 252 seconds] 12:50 -!- yogib [~yogib@131.234.59.64] has quit [Quit: yogib] 12:51 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has joined #go-nuts 12:52 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has quit [Ping timeout: 252 seconds] 12:52 -!- rlab [~Miranda@108-114-113-92.pool.ukrtel.net] has joined #go-nuts 12:52 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has joined #go-nuts 12:52 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has quit [Client Quit] 12:53 -!- niemeyer [~niemeyer@201.14.255.163] has joined #go-nuts 12:54 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has joined #go-nuts 12:54 < erus`> can the template package do loops? 12:54 < erus`> liek for each x in xs "<p> x </p>" 12:54 < erus`> or something 12:55 < skelterjohn> yes 12:55 < skelterjohn> {.repeated section xs}<p>{@}</p>{.end} 12:56 < aiju> what is this template thing everyone is talking about 12:56 < aiju> just a fancy fmt.Print? 12:57 < zozoR> the template lib 12:57 < zozoR> and yes 12:57 < zozoR> ;D 12:57 < zippoxer> nah. 12:57 < zippoxer> it does actions too 12:57 < zippoxer> like loops, etc.. 12:57 < zippoxer> nah = no 12:58 < aiju> nah shit ;) 12:58 < skelterjohn> yeah, fancy fmt.Print 13:05 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined #go-nuts 13:06 < GS> text cooking? 13:06 -!- erus` [~chatzilla@mailgate.ips-international.com] has quit [Read error: Connection reset by peer] 13:06 -!- erus`_ [~chatzilla@mailgate.ips-international.com] has joined #go-nuts 13:08 < erus`> is there a list type? 13:08 < aiju> no 13:08 < erus`> i need to push an item to the front of a slice/list 13:08 < aiju> there is container/list, but it sucks 13:09 < aiju> 14:42 < dlowe> Given that there are an extremely small number of possible reference types, I'm not sure that qualifies as a complicated heuristic 13:09 < aiju> it's a language, it shouldn't have ANY heuristics 13:09 < erus`> still no generics 13:11 -!- ccc1 [~Adium@114-45-84-113.dynamic.hinet.net] has quit [Quit: Leaving.] 13:11 < zozoR> we dont need generics 13:11 -!- ccc1 [~Adium@114-45-84-113.dynamic.hinet.net] has joined #go-nuts 13:11 < aiju> lists are dead simple 13:12 -!- r_linux [~r_linux@static.200.198.180.250.datacenter1.com.br] has joined #go-nuts 13:12 -!- Loonacy [~loonacy@c-67-172-248-248.hsd1.ut.comcast.net] has joined #go-nuts 13:14 < dlowe1> aiju: how is that a heuristic at all? 13:15 < aiju> currently new(type) just allocates enough memory for the type 13:15 < aiju> and zeroes it 13:15 < aiju> adding special cases for "the programmer might want to have it initialized" seem like a bad idea to me 13:16 -!- prip [~foo@host8-197-dynamic.17-79-r.retail.telecomitalia.it] has quit [Ping timeout: 258 seconds] 13:16 < dlowe1> it seems that "the programmer might want to have it uninitialized" seems like a worse failure mode 13:16 < dlowe1> grammar fail 13:17 < aiju> huh? 13:17 < aiju> the behaviour is consitent 13:17 < aiju> that's the point 13:17 < dlowe1> shrug. I'm not getting sucked into this again. 13:17 < erus`> how do i cant an interface{} to something else ? 13:18 < aiju> erus`: x.(foo) 13:19 -!- yogib [~kaiser@dslb-178-009-078-252.pools.arcor-ip.net] has joined #go-nuts 13:19 < zozoR> aiju, if you have a function: func kage() (i *int) { ... } is i allocated? 13:19 < aiju> i is allocated on the stack 13:20 < aiju> i is pointing to nil 13:20 < aiju> ehm, it's pointing to *somerandomvalue* 13:20 < zozoR> so i have to go i = new(int) 13:20 < erus`> i made a 4chon without images or a database :D 13:20 < zozoR> thats why you use o instead of a? 13:21 < aiju> 4chan without images is like a garbage dump without garbage 13:21 < zozoR> empty space? 13:21 < aiju> yeah 13:21 < erus`> http://4chon.org/ 13:22 < aiju> afraid to click 13:22 < erus`> lol its just a clone of 4chan 13:22 < aiju> ... that's why i'm afraid to click 13:22 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has quit [Quit: Slant] 13:22 < aiju> i'm at work dude 13:22 < erus`> web.go is awesome 13:22 -!- ronnyy [~quassel@p4FF1C5D4.dip0.t-ipconnect.de] has joined #go-nuts 13:22 < erus`> aiju: it has a homepage without images 13:22 < erus`> check googles cache though if your scared 13:23 < zozoR> it does have pictures :o 13:23 < GS> Does serializing an interface still 13:23 < GS> e if I pass an 13:23 < GS> interface to encode, when i decode into &val it gives me a nil when I 13:23 < GS> don't think it should. 13:23 < zozoR> i just found porn on it 13:23 < zozoR> :D 13:23 -!- Rennex_ [rennex@giraf.fi] has joined #go-nuts 13:24 -!- schilly_ [~schilly@boxen.math.washington.edu] has joined #go-nuts 13:24 -!- xb95_ [~xb95@qq.is] has joined #go-nuts 13:24 < erus`> yey i made my first css exploitable website 13:25 -!- dju_ [dju@fsf/member/dju] has joined #go-nuts 13:25 < erus`> where is the html escape function? 13:26 < erus`> found it 13:27 < erus`> go need a html generation library 13:27 < erus`> but with the go syntax it might be painful 13:27 < zozoR> html lib? 13:28 < aiju> god 13:28 < jessta> html generation? it's just text 13:28 -!- prip [~foo@host180-197-dynamic.17-79-r.retail.telecomitalia.it] has joined #go-nuts 13:28 < aiju> why did Go even get into the web dev business 13:28 < aiju> it's hell 13:28 < erus`> in haskell you can do body << h1 "Hello 13:28 < jessta> aiju: it's Google, that's kind of their thing 13:28 < erus`> and then on the next like ++ p << "Blah" 13:28 -!- squeese_ [~squeese@cm-84.209.17.156.getinternet.no] has joined #go-nuts 13:29 -!- Netsplit *.net <-> *.split quits: schilly, Loonacy, dju, xb95, Rennex, squeese 13:29 < erus`> its really nice to generate in loops and stuff 13:29 -!- iant [~iant@216.239.45.130] has quit [Ping timeout: 252 seconds] 13:31 -!- ancientlore [~ancientlo@63.76.22.10] has joined #go-nuts 13:31 < zozoR> go just need someone to make an awesome webframework 13:31 -!- alehorst [~alehorst@189.58.133.88.dynamic.adsl.gvt.net.br] has quit [Ping timeout: 255 seconds] 13:32 < zozoR> and then everybody is happy 13:32 < zozoR> except aiju 13:33 < aiju> i don't care 13:33 < aiju> as long as it's not in the stdlib 13:35 < zozoR> true that 13:36 -!- Loonacy [~loonacy@c-67-172-248-248.hsd1.ut.comcast.net] has joined #go-nuts 13:37 -!- iant [~iant@67.218.104.187] has joined #go-nuts 13:37 -!- mode/#go-nuts [+v iant] by ChanServ 13:40 < zozoR> converting a program from int to float64 would be a lot easier with implicit conversion -.- 13:41 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts 13:42 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts 13:44 -!- virtualsue [~chatzilla@nat/cisco/x-wtfswchkuffqmidx] has quit [Read error: Connection reset by peer] 13:44 -!- virtualsue [~chatzilla@nat/cisco/x-rxfedbxjinyxgmwv] has joined #go-nuts 13:44 < erus`> is websocket safe yet? 13:45 < vegai> erus`: what sort of machine does 4chon need to run? 13:46 < erus`> 4chon isnt mine btw 13:49 -!- dlowe1 [~dlowe@nat/google/x-fmnorjaqkqahqtfk] has quit [Quit: Leaving.] 13:51 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has joined #go-nuts 13:52 < zippoxer> erus`: what do you care? ^.^ 13:53 < zippoxer> safe or not, it's safe enough for me. 13:53 < erus`> i care because browsers keep dropping it 13:53 < erus`> no point in spending any time on it if no one can use it 13:53 < zippoxer> yeah it advances VERY slow 13:55 -!- franciscosouza [~francisco@201.7.186.67] has joined #go-nuts 13:55 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has joined #go-nuts 13:55 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has quit [Client Quit] 13:56 < zippoxer> i once (2009) thought it will be popular. 13:56 < jessta> erus`: websockets are kind of crazy, it's a horrible hack 13:56 < zippoxer> jessta: you mean nothing is better? 13:56 < zippoxer> or tcp is better? ^^ 13:56 < jessta> tcp is better 13:57 < erus`> tcp from javascript would be a security nightmare 13:57 < jessta> tcp + restrictions on where you can connect to 13:57 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has joined #go-nuts 13:57 < erus`> maybe if they did prompts before connects 13:57 < jessta> the only reason websockets are the way they are is because too many networks are badly configured 13:58 < zippoxer> yeah people can add few lines to their site and crash a huge tcp server 13:58 < zippoxer> if they have many clients loading their site 13:58 < jessta> zippoxer: how are websocket servers different from that? 13:58 < zippoxer> origin or dunno 13:59 < zippoxer> it must have something..? 13:59 < jessta> you can't do origin with tcp? 13:59 < jessta> websockets don't even do origin 13:59 < zippoxer> so websockets sucks. 13:59 < zippoxer> comparing to tcp 14:00 < jessta> they just have a stupid handshake over http 14:01 < jessta> connect to http server, tell it I would rather it was a websocket server 14:01 < zippoxer> if javascript had tcp sockets since 2009, i think you could see some nice html MMOs 14:02 < zippoxer> oh and irc 14:02 < jessta> and it's all because people forgot what ports are for and blocked everything except port 80 14:02 < zippoxer> scary :( 14:02 -!- Tv__ [~Tv__@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts 14:03 < zippoxer> the stupid default block in routers, makes people less creative 14:03 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat] 14:03 < jessta> so they will soon have the same issue they had with ports, but now it will require deep packet inspection to determine 14:04 < jessta> the web platforms slowly evolves toward the platforms of the 90s 14:05 < erus`> dial tcp user:pass@localhost:8332: too many colons in address user:pass@localhost:8332 14:05 < erus`> how do i do http auth with jsonrpc? 14:06 < zippoxer> what does it say if the address is "localhost:8332" ? 14:07 < erus`> its hanging... 14:08 -!- dlowe1 [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has joined #go-nuts 14:09 < erus`> i think it worked... 14:10 < jessta> erus`: I don;t think jsonrpc uses http 14:11 < erus`> hmm 14:12 -!- dlowe1 [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has quit [Ping timeout: 252 seconds] 14:12 -!- kergoth__ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has joined #go-nuts 14:13 -!- dlowe1 [~dlowe@nat/google/x-icwagewkqjvycvwg] has joined #go-nuts 14:13 -!- dario [~of82ecuq@faui00s.informatik.uni-erlangen.de] has quit [Quit: Lost terminal] 14:14 -!- rlab [~Miranda@108-114-113-92.pool.ukrtel.net] has quit [Read error: Connection reset by peer] 14:15 < erus`> aw man 14:15 < erus`> how am i gonna do this... 14:15 -!- Skola [~bas@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has quit [Ping timeout: 240 seconds] 14:15 < zippoxer> maybe the tests for the jsonrpc package: http://golang.org/src/pkg/rpc/jsonrpc/all_test.go 14:15 < zippoxer> can help 14:17 -!- prip [~foo@host180-197-dynamic.17-79-r.retail.telecomitalia.it] has quit [Ping timeout: 258 seconds] 14:18 -!- napsy [~luka@193.2.66.6] has quit [Ping timeout: 276 seconds] 14:18 < jessta> erus`: you can probably use some of the code from the rpc.DialHTTP() 14:19 < erus`> is still doesnt like the user:pass@ip 14:21 < jessta> you should probably use the SetBasicAuth() from the http package 14:23 -!- r_linux [~r_linux@static.200.198.180.250.datacenter1.com.br] has quit [Ping timeout: 252 seconds] 14:23 -!- meling [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has quit [Remote host closed the connection] 14:23 -!- Skola [~bas@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has joined #go-nuts 14:25 -!- r_linux [~r_linux@static.200.198.180.250.datacenter1.com.br] has joined #go-nuts 14:26 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has quit [Quit: Slant] 14:26 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has joined #go-nuts 14:27 -!- dlowe1 [~dlowe@nat/google/x-icwagewkqjvycvwg] has quit [Quit: Leaving.] 14:27 -!- dlowe [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has quit [Quit: *poof*] 14:29 -!- prip [~foo@host233-120-dynamic.35-79-r.retail.telecomitalia.it] has joined #go-nuts 14:32 -!- nekoh [~nekoh@dslb-178-004-073-068.pools.arcor-ip.net] has quit [Quit: nekoh] 14:33 < erus`> who owns this: http://go-lang.cat-v.org/pure-go-libs 14:34 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit [Remote host closed the connection] 14:34 < erus`> uriel: 14:35 < erus`> you need to change the s3dm url to https://github.com/tm1rbrt/s3dm-go 14:35 < skelterjohn|work> tsk 14:35 < skelterjohn|work> why would you replace the go version with a haskell version? 14:37 < erus`> because the haskell one is nicer 14:37 < skelterjohn|work> lies 14:40 < erus`> is there an io.Writer for stdout? 14:40 < erus`> i need to test something 14:40 < skelterjohn|work> os.Stdout is an io.Writer 14:42 < jnwhiteh> has anyone seen anything on the gonuts mailing list that can scan source for all instances of values with a given type? I asked yesterday, just seeing if there's a different crowd today =) 14:43 < skelterjohn|work> i don't know of anything that does it, but i do know how to do it 14:43 < jnwhiteh> I've gotten as far as parsing the files and getting back the annotated AST, but didn't get much further than that. 14:44 < skelterjohn|work> you need to also use a type checker 14:44 < skelterjohn|work> there is one in the go core, but i don't know how functional it is 14:44 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined #go-nuts 14:44 < skelterjohn|work> roger peppe also made one that i've used 14:44 < skelterjohn|work> to make my (now defunct) refactoring engine 14:45 < jnwhiteh> that's why I said the annotates AST, I was already using go/check =) 14:45 < jnwhiteh> any idea what Roger's was called? 14:45 < skelterjohn|work> no, but it's in rog-go.googlecode.com 14:45 < skelterjohn|work> he has a ton of stuff in there 14:45 < jnwhiteh> thanks. 14:46 < skelterjohn|work> and my project was github.com/skelterjohn/gorf 14:48 < jnwhiteh> thanks, I'll take a look at it! 14:50 < erus`> maybe i will use a python script to handle the jsonrpc calls 14:51 < erus`> and then pipe that into my go webserver 14:51 < skelterjohn|work> why does there need to be a language bridge? that always complicates things 14:51 -!- jrr [~jrr@c-98-253-78-18.hsd1.in.comcast.net] has joined #go-nuts 14:51 < erus`> because its so easy todo it in python 14:52 < erus`> i will be messing around in go for hours 14:52 -!- ronnyy [~quassel@p4FF1C5D4.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 14:52 < skelterjohn|work> only because no one has written the go library that makes it easy to do, yet 14:52 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts 14:53 < skelterjohn|work> (your job?) :) 14:54 < erus`> i dont even know how http auth works 14:54 -!- dreadlorde [dreadlorde@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping timeout: 252 seconds] 14:54 < erus`> or if thats even used 14:55 < erus`> i tried sniffing packets but it didnt help 14:55 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-183-105.clienti.tiscali.it] has joined #go-nuts 14:56 < skelterjohn|work> http://blog.golang.org/2010/04/json-rpc-tale-of-interfaces.html 14:56 < skelterjohn|work> http://golang.org/pkg/rpc/jsonrpc/ 14:56 < skelterjohn|work> i feel like the code exists 14:57 < skelterjohn|work> although i didn't read the conversation from earlier this morning 14:57 -!- iant [~iant@67.218.104.187] has quit [Quit: Leaving.] 14:57 < skelterjohn|work> so i might be missing something 14:57 -!- lucian_ [~lucian@78-86-217-168.zone2.bethere.co.uk] has joined #go-nuts 14:57 < erus`> its a http jsonrpc 14:57 < erus`> server (bitcoin) 14:58 -!- Project_2501 [~Marvin@82.84.97.16] has quit [Ping timeout: 240 seconds] 14:58 -!- lucian [~lucian@78-86-217-168.zone2.bethere.co.uk] has quit [Ping timeout: 252 seconds] 15:00 < erus`> aha it uses a POST 15:01 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts 15:01 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat] 15:02 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts 15:02 -!- pharris [~Adium@rhgw.opentext.com] has joined #go-nuts 15:03 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit [Remote host closed the connection] 15:04 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 250 seconds] 15:04 -!- tncardoso [~thiago@189.59.206.226] has quit [Quit: bye] 15:04 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has quit [Read error: Connection reset by peer] 15:04 -!- iant [~iant@nat/google/x-lylcpzyydgxpxcbe] has joined #go-nuts 15:04 -!- mode/#go-nuts [+v iant] by ChanServ 15:05 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has joined #go-nuts 15:08 -!- ccc1 [~Adium@114-45-84-113.dynamic.hinet.net] has quit [Quit: Leaving.] 15:10 -!- bugQ [~bug@c-71-195-207-34.hsd1.ut.comcast.net] has joined #go-nuts 15:16 -!- opt [~opt@174.3.227.184] has quit [Quit: Leaving] 15:17 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 15:21 -!- ccc1 [~Adium@114-45-84-113.dynamic.hinet.net] has joined #go-nuts 15:26 < erus`> is there an easy way to create an ioreader that is just a string? 15:26 < skelterjohn|work> bytes.Buffer 15:27 < skelterjohn|work> strings.Reader 15:28 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 240 seconds] 15:29 < erus`> fuck yes it works :D 15:29 < erus`> cheers skelterjohn 15:29 < skelterjohn|work> ^5 15:29 < erus`> i should wrap this up 15:29 < erus`> get some sweet karma 15:29 < skelterjohn|work> what'd you do? 15:32 < erus`> bitcoin rpc interface 15:32 < erus`> using http.Request 15:34 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts 15:38 < erus`> well im not using rpc at all yet 15:38 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host closed the connection] 15:39 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 15:40 -!- meling [~meling@cse-dhcp-10-91.ucsd.edu] has joined #go-nuts 15:41 -!- perangel [~Adium@65.242.66.218] has joined #go-nuts 15:42 -!- ccc1 [~Adium@114-45-84-113.dynamic.hinet.net] has quit [Quit: Leaving.] 15:43 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts 15:48 -!- Natch [~natch@178.73.220.205] has joined #go-nuts 15:48 -!- erus` [~chatzilla@mailgate.ips-international.com] has quit [Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]] 15:50 -!- iant [~iant@nat/google/x-lylcpzyydgxpxcbe] has quit [Quit: Leaving.] 15:50 -!- Natch| [~natch@178.73.220.205] has quit [Ping timeout: 264 seconds] 15:50 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Remote host closed the connection] 15:56 -!- virtualsue [~chatzilla@nat/cisco/x-rxfedbxjinyxgmwv] has quit [Ping timeout: 240 seconds] 15:57 -!- mrmikenev [~mkn24@128.187.210.255] has joined #go-nuts 15:57 -!- icey [u2593@gateway/web/irccloud.com/x-apkzldlslrypswjs] has joined #go-nuts 15:58 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts 15:58 -!- ShadowIce [~pyoro@HSI-KBW-109-193-121-123.hsi7.kabel-badenwuerttemberg.de] has joined #go-nuts 15:58 -!- ShadowIce [~pyoro@HSI-KBW-109-193-121-123.hsi7.kabel-badenwuerttemberg.de] has quit [Changing host] 15:58 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 15:58 -!- awidegreen [~quassel@h-170-226.a212.priv.bahnhof.se] has joined #go-nuts 16:03 -!- dreadlorde [dreadlorde@c-68-42-82-10.hsd1.mi.comcast.net] has joined #go-nuts 16:08 -!- tncardoso [~thiagon@150.164.2.20] has joined #go-nuts 16:12 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has joined #go-nuts 16:16 -!- pjacobs [~pjacobs@66.54.185.130] has joined #go-nuts 16:21 < magn3ts> How do I yield in a go function? 16:22 < jnwhiteh> you don't 16:22 < zozoR> chans 16:22 < magn3ts> I have some functions running in parallel and I find that if I don't put time.Sleep(1e9*1) as a default case in a inf-for/select combo, that my other go funcs don't run properl.y 16:22 < zozoR> use a function that returns a <-chan 16:22 < magn3ts> zozoR, different kind of yield. 16:23 < zozoR> oh 16:23 < zozoR> D: 16:23 < jnwhiteh> you shouldn't have an issue like that, can you give us an idea of what you're doing? 16:23 -!- kaichenxyz [~kaichenxy@li261-87.members.linode.com] has quit [Quit: kaichenxyz] 16:23 -!- Tv__ [~Tv__@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 258 seconds] 16:23 < magn3ts> jnwhiteh, sure. I think I can show you, it's pretty basic 16:23 < jnwhiteh> that would be great! 16:23 < zozoR> you have to alocate cpu to jump between goroutines 16:23 -!- shvntr [~shvntr@113.84.89.40] has joined #go-nuts 16:23 < magn3ts> http://pastie.org/2173128 16:23 < jnwhiteh> zozoR: O.o 16:24 < jnwhiteh> i'm really not sure what you're on about.. 16:24 -!- dannyft [~dannyft@3e6b3a68.rev.stofanet.dk] has joined #go-nuts 16:24 < magn3ts> Without that time.Sleep... my websocket elsewhere fails to communicate, at all. 16:24 < jnwhiteh> and you're running these detectors each in their own goroutines? 16:25 < magn3ts> just one detector, but yes. 16:25 -!- xb95 [~xb95@qq.is] has quit [Changing host] 16:25 -!- xb95 [~xb95@dreamwidth/staff/mark] has joined #go-nuts 16:25 -!- rlab [~Miranda@238-89-95-178.pool.ukrtel.net] has joined #go-nuts 16:25 < jnwhiteh> if you make that for { <-quit; l.Println("detector bailing") return } it doesn't work? 16:25 < jnwhiteh> sounds like something is getting mixed up elsewhere 16:25 < jnwhiteh> the logic is fairly simple there =) 16:26 < magn3ts> jnwhiteh, well, it's commented out, but I also need to read a packet if I *can* and then handle it in the default case. 16:26 < magn3ts> though I'm wondering if that's "wrong". 16:27 < jnwhiteh> so you want to handle as many packets as you can until you get the quit message, at which point you want to quite immediately or finish processing? 16:27 < magn3ts> um 16:27 < magn3ts> either? 16:27 < jnwhiteh> =) 16:27 < magn3ts> I know, that's a terrible answer but for this purpose it doesn't matter 16:28 < jnwhiteh> hehe 16:28 < jnwhiteh> I cannot think of any reason that the sleep would be required there 16:28 -!- GS [~gsv@108.61.238.49.southernonline.net] has quit [Read error: Connection reset by peer] 16:28 < jnwhiteh> nor can I see what its fixing =) 16:28 < magn3ts> Yeah, I was confused too. I broke it into another test that worked fine. If I never go detector(), my websocket is fine, and with the sleep, it works. Otherwise, nada. 16:29 < jnwhiteh> *sounds* like a deadloc 16:29 < jnwhiteh> k 16:29 -!- awidegreen [~quassel@h-170-226.a212.priv.bahnhof.se] has quit [Read error: Connection reset by peer] 16:30 < magn3ts> eevn just throwing packet := h.Next() fmt.Println(packet) allows it to work. 16:30 < jnwhiteh> so its just packet := h.Next() by itself that 'breaks' it> 16:30 < jnwhiteh> ? 16:30 < magn3ts> no, having a completely empty default case causes the websocket (elsewhere) to not connect or receive 16:31 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has left #go-nuts [] 16:31 < magn3ts> and h.Next() should block for a short period and then timeout. 16:31 < jnwhiteh> yeah its a bit difficult to see without the whole picture 16:31 < jnwhiteh> so hard to diagnose =/ 16:32 < magn3ts> I'll try another test case 16:32 < magn3ts> with this func in it too to reproduce. 16:32 < jnwhiteh> there's no real reason I can see for you to have this problem, with what I've seen =) 16:32 -!- awidegreen [~quassel@h-170-226.a212.priv.bahnhof.se] has joined #go-nuts 16:33 -!- nicka1 [~lerp@142.176.0.21] has joined #go-nuts 16:35 < magn3ts> jnwhiteh, http://pastie.org/2173189 16:35 < magn3ts> if you remove line 22 and try to connect a websocket from your browser... you will not see "test" in the console. :[ 16:36 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Remote host closed the connection] 16:36 < jnwhiteh> that does not seem like desired behaviour, perhaps its a bug 16:36 < jnwhiteh> how do i connect a websocket from my browser 16:36 < jnwhiteh> just to test? 16:37 < magn3ts> ws = new WebSocket("ws://localhost:7070/daemon") from the js console 16:37 < magn3ts> should be enough to get it to emit "test" in console. 16:38 < magn3ts> (I'm on tip for what it's worth. :S it could be a bug, but I'm new enough that I assume I've done something wrong) 16:39 < jnwhiteh> if I remove the default case entirely, it continues to function correctly 16:39 < jnwhiteh> i'm on release, I believe, on 6g 16:39 < magn3ts> Oh really. I hadn't considered just removing the case. 16:39 < magn3ts> I'll try that. 16:40 < jnwhiteh> it does indeed break with an empty default case 16:40 < magn3ts> same here. 16:40 < jnwhiteh> because its a busy loop, but I think it should be yielding 16:40 -!- tav [~tav@92.20.70.66] has quit [Ping timeout: 255 seconds] 16:40 < jnwhiteh> but I'm not 100% sure on the yielding the runtime does 16:40 < jnwhiteh> it's worth a post, if not a bug report, but lemme check the issue tracker. 16:41 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has quit [Quit: twolfe18] 16:42 < jnwhiteh> I don't see anything immediately obvious, but since your detector and the http code are running in goroutines, this is bad behaviour =) 16:42 < magn3ts> bad behavior from go or something that I could have done better/differently? 16:42 < magn3ts> (for what it's worth, creating and calling nop() from the default case gives the same "broken" behavior) 16:43 < jnwhiteh> well, you've created a busy-loop 16:43 < jnwhiteh> in the contrived case 16:43 < jnwhiteh> sounds like its fine in the actual application 16:43 -!- pr [phil@unaffiliated/pr] has left #go-nuts [] 16:43 < jnwhiteh> you can replace your detector with func() { for { } } 16:43 < jnwhiteh> and you'll get the same behaviour 16:44 < jnwhiteh> so I'd probably start with a post to go-nuts, since its consistent (if not undesirable) behavior 16:44 < jnwhiteh> but YMMV :P 16:44 < magn3ts> "you'll get the same behavior", you mean the non-yielding behavior right? 16:45 < jnwhiteh> correct 16:45 -!- tav [~tav@92.20.83.50] has joined #go-nuts 16:48 -!- Queue29 [~shoenig@egress-w.sfo1.yelpcorp.com] has joined #go-nuts 16:48 -!- Queue29 [~shoenig@egress-w.sfo1.yelpcorp.com] has quit [Client Quit] 16:48 -!- perangel [~Adium@65.242.66.218] has quit [Quit: Leaving.] 16:49 -!- shvntr [~shvntr@113.84.89.40] has quit [Quit: leaving] 16:49 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 258 seconds] 16:50 -!- zippoxer [~zippoxer@bzq-79-179-204-222.red.bezeqint.net] has quit [Remote host closed the connection] 16:51 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts 16:51 -!- perangel [~Adium@65.242.66.218] has joined #go-nuts 16:52 < jessta> magn3ts: your problem is the sleep 16:52 < magn3ts> jessta, wha? The sleep is what fixes the problem. 16:52 < magn3ts> at least, from where I'm sitting :s 16:54 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts 16:55 < jessta> magn3ts: oh right, ummm...ignore me I should sleep 16:56 < magn3ts> aw, I was hoping you'd tell me why I was wrong and have an awesome explanation 16:56 -!- dreadlorde [dreadlorde@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping timeout: 260 seconds] 16:58 < pharris> Why is detector so complex? Shouldn't it just be two lines (<- quit; fmt.Println)? 16:58 < magn3ts> pharris, that's not the full implementation 16:59 < magn3ts> and in fact, implementing the logic in the default case enables the runtime to yield back and clears up my problem 16:59 < jnwhiteh> this is just a test case 16:59 < pharris> Okay, but what am I missing? The reason this sample is busy-waiting is because you have an empty default inside a select, inside a for(ever). 16:59 < jnwhiteh> if you'd run it, you'd clearly see the issue 16:59 < jnwhiteh> pharris: there are two goroutines 16:59 < jnwhiteh> a 16:59 < pharris> So subtract the default at the same time you subtract the time.Sleep 16:59 < jnwhiteh> a busy wait in one is stopping the other from running 16:59 < jnwhiteh> this is undesirable =) 16:59 < jnwhiteh> that's the only problem 17:00 < pharris> "a busy wait" == bug. Don't busy-wait. 17:00 < jnwhiteh> .. obviously 17:00 < jnwhiteh> that doesn't mean it isn't reasonable to have a discussion about it 17:00 < magn3ts> What does the busy wait necessarily refer to? Just the existence of the empty default case? 17:00 < pharris> If you're actually doing work (lots of number crunching) rather than just busy-waiting, GOMAXPROCS=4 17:01 < jnwhiteh> spawning additional processes would help as well 17:01 < pharris> magn3ts: busy-wait means doing something stupid like for { mutex.TryLock() } instead of just mutex.Lock(). 17:01 < jnwhiteh> he's trying to UNDERSTAND the issue 17:01 < jnwhiteh> he knows what fixes it 17:02 < kergoth__> hmm, can you *get* the current gomaxprocs with runtime, no matter how it was set, or can you only set it there? 17:02 < magn3ts> pharris, I'm not sure how to avoid that pattern for what I'm trying to accomplish here. 17:02 -!- virtualsue [~chatzilla@nat/cisco/x-pvotmlmqifxyxemr] has joined #go-nuts 17:02 * kergoth__ doesn't see such a thing in the godoc, so assumes not 17:02 < pharris> Understanding is easy. When you busy-wait, you eat up all the resources doing no work. The solution is: Don't busy-wait. 17:02 < jnwhiteh> I believe someone said somewhere that the runtime only yields based on 'lines', which seems to be the issue here 17:02 < jnwhiteh> you're being really adversarial without much cause, in my opinion =/ 17:02 < pharris> magn3ts: Do you have a slightly more fleshed-out example, then? Did I miss another pastie? 17:03 < magn3ts> pharris, I get that, but does having a body for the default case cause it to not longer be "busy-wait" ? 17:03 < jnwhiteh> pharris: yes, you are 17:03 < magn3ts> pharris, only the full code, only a few hundred lines but it's my first go and it's embarassing. 17:03 -!- dreadlorde [dreadlorde@c-68-42-82-10.hsd1.mi.comcast.net] has joined #go-nuts 17:03 < jnwhiteh> his actual example processes a packet in the default case 17:03 < Namegduf> magn3ts: Quite possibly 17:03 < jnwhiteh> or at least that was his intent, and he included that and explained that. 17:03 < pharris> I'm not trying to be adversarial. Sorry about that. I'm clearly not communicating well. 17:03 < Namegduf> Go yields on certain lines. 17:03 < zozoR> as i said, if you eat the cpu, it wont have time to do other tasks in other goroutines 17:03 < Namegduf> Memory allocations, channel sends/receives, and so forth. 17:04 < jnwhiteh> zozoR: yes, but it should still manage to yield at some point.. 17:04 < jnwhiteh> ideally =) 17:04 < zozoR> noam, why 17:04 < Namegduf> If you add one of those in a busy loop, it will yield at some point to other goroutines. 17:04 < Namegduf> If you don't, then it will *never* yield. 17:04 < jnwhiteh> *nod* 17:04 < jnwhiteh> I couldn't find the information on that, thanks. 17:04 < Namegduf> I don't know if a non-blocking channel receive/send counts. 17:04 < jnwhiteh> pharris: http://pastie.org/2173128 look at the commented out line 17:04 < Namegduf> I'm guessing from this it might not. 17:04 < skelterjohn|work> Namegduf: I believe that a select will yield 17:04 < skelterjohn|work> but i don't promise 17:04 < jnwhiteh> now I suspect the issue he is having is that h.Next() doesn't do the work he thinks it does :P 17:04 < magn3ts> I just wonder why an empty default case doesn't have the same effect as just having no default case... from a language perspective. I can appreciate that the runtime is implemented a certain way, but would this ever be desired? 17:05 < Namegduf> skelterjohn|work: I was wondering about that, but it'd explain this behaviour perfectly if it doesn't. 17:05 < jnwhiteh> magn3ts: because the default case of a select is used for testing non-blocking receives/sends 17:05 < skelterjohn|work> i'll run a test 17:05 < magn3ts> jnwhiteh, how so? I think this will be working the way it should. (If the platform doesn't timeout on next packet, what I'm doing is more or less impossible) 17:05 < Namegduf> magn3ts: An empty default is still a default. 17:05 < Namegduf> magn3ts: And select{} works differently if there's a default compared to if there isn't. 17:05 < _andre> is there a better way to check if an IP address is v4 or v6 other than calling to4() and checking if it fails? 17:05 < Namegduf> If there's no default, it will block until one of the operations can go through. 17:06 < Namegduf> If there is, it will not block, but run the default instead. 17:06 < Namegduf> An empty default, thus, lets it continue without doing anything if none of the channel operations can be performed right now. 17:07 < magn3ts> jnwhiteh, can you elaborate a bit? I'm always interested to know if there's a more appropriate way to do something but I don't understand how else I'd do something like this. 17:08 < jnwhiteh> I'm thinking =) 17:08 < pharris> Hmm. If pcap is the wrapper I think it is, and if I understand correctly, h.Next waits (Select or similar) in C, so Go doesn't have a chance to dispatch a different goroutine. 17:09 < jnwhiteh> pharris: pcap times out and returns 17:09 < magn3ts> pharris, I tried it with it and it works fine, but uh, pcap's behavior there actually depends on the platform. 17:09 < jnwhiteh> pharris: and without the time.Sleep() he said it was not yielding 17:09 < magn3ts> but yes, it can sometimes block indefinitely on not reading a packet, but I don't think that's the case here (on my linux box at least) 17:09 < jnwhiteh> likely because its crossing the C/Go boundary 17:10 < skelterjohn|work> select does not yield on a default case 17:10 < skelterjohn|work> (tested) 17:10 < magn3ts> skelterjohn, ever? 17:10 < skelterjohn|work> ever 17:10 -!- perangel [~Adium@65.242.66.218] has quit [Quit: Leaving.] 17:10 < jnwhiteh> but I'm not third-hand diagnosing things, which isn't terribly useful 17:10 < magn3ts> and if so, why does adding a nontrivial body allow my application to work? 17:10 < jnwhiteh> its not a non-trivial body 17:10 < pharris> Right. My point is, because it's not written in Go, the Go runtime doesn't have an opportunity to dispatch a separate goroutine while h.Next() is running. If it were written in Go, this code would be fine. 17:10 < skelterjohn|work> does your non-trivial body do something that yields? 17:10 < jnwhiteh> you're doing one of the things that 'triggers' a yield 17:10 < skelterjohn|work> that would explain it 17:10 < jnwhiteh> =) 17:11 < magn3ts> pharris, but the code works fine with h.Next() :) 17:11 < pharris> Now I'm just confused. 17:11 < magn3ts> skelterjohn, I see. 17:11 < jnwhiteh> pharris: I'm not sure I understand. If h.Next() returns a packet, or nil (if timed out after x seconds) then I don't follow you. 17:11 < jnwhiteh> so the issue is slightly different than what i think you're suggesting 17:12 < magn3ts> pharris, the testcase at pastie includes a time.Sleep(). If you remove it, no yield occurs. with my *actual* code in there... (reads a packet, dispatches it elsewhere), it also works fine. 17:12 < skelterjohn|work> io yields 17:12 < skelterjohn|work> so that makes sense 17:13 < jessta> io only yields if it's Go IO 17:13 < skelterjohn|work> yes, sorry 17:13 < skelterjohn|work> if it's in C, the go runtime has no idea what's going on 17:13 < jessta> if you're doing io in C then you're blocking the whole thread 17:13 < skelterjohn|work> .o/ coroutines 17:13 < magn3ts> that's acceptable for me. 17:14 < magn3ts> h.Next() blocks for a short enough period of time and lets me handle the packet with Go chans that I'm okay with that. And not aware of an alternative. 17:14 < kergoth__> it's probably good for you get used to how this sort of thing works. this isn't the only scheduler that behaves in this way, yielding control at particular points. the alternative would be to suspend/interrupt the routine on a regular time basis, and you can only really do that with separate threads, and opens up quite a can of worms (/me recalls linux kernel interactivity changes..) 17:14 < kergoth__> heh 17:14 < magn3ts> jnwhiteh, did you come up with a better way to do that select :P ? 17:14 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 17:15 < magn3ts> kergoth__, oh sure. Like I said, I readily assume that I'm just not aware of the intricacies and I get a lot out of these types of discussions. 17:15 * kergoth__ nods, definitely informative 17:15 < jnwhiteh> magn3ts: without knowing the pcap bindings, it makes it a bit difficult to say 17:15 * kergoth__ wonders if the spec covers the points at which yields occur, and goes to check 17:15 < pharris> [Aside: runtime.Gosched() is probably more efficient than Sleep(smallnum)] 17:15 < jessta> I don't think calling in to C yields, so the scheduler doesn't get to make a new thread for the other goroutines to run on 17:15 < magn3ts> jnwhiteh, you can see all the important and applicable bits of the pcap go exposure right there to be honest. 17:16 < magn3ts> pharris, cool. that's also what I was looking for. Thanks. 17:16 < jnwhiteh> you just shouldn't use it =) 17:17 < magn3ts> jnwhiteh, as for the rest, it's pretty short: https://github.com/colemickens/gopcap/blob/master/pcap/pcap.go 17:18 < jnwhiteh> magn3ts: I don't have any immediate suggestions right now 17:18 < jnwhiteh> my head is buried in my own work at the moment =/ 17:18 < magn3ts> jnwhiteh, oh sure, thanks for the time and thoughts. 17:19 -!- pjacobs [~pjacobs@66.54.185.130] has quit [Ping timeout: 240 seconds] 17:20 -!- iant [~iant@nat/google/x-lutmmmyudkfzwzug] has joined #go-nuts 17:20 -!- mode/#go-nuts [+v iant] by ChanServ 17:29 -!- bugQ [~bug@c-71-195-207-34.hsd1.ut.comcast.net] has quit [Ping timeout: 258 seconds] 17:30 -!- Fish- [~Fish@9fans.fr] has joined #go-nuts 17:34 -!- yernab [~icebreake@cpe-184-59-1-103.wi.res.rr.com] has joined #go-nuts 17:34 -!- yernab [~icebreake@cpe-184-59-1-103.wi.res.rr.com] has left #go-nuts ["WeeChat 0.3.5"] 17:35 -!- bugQ [~bug@c-71-195-207-34.hsd1.ut.comcast.net] has joined #go-nuts 17:37 -!- perangel [~Adium@65.242.66.218] has joined #go-nuts 17:39 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 240 seconds] 17:44 -!- tav [~tav@92.20.83.50] has quit [Quit: tav] 17:44 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has joined #go-nuts 17:45 -!- tav [~tav@92.20.83.50] has joined #go-nuts 17:46 -!- tav [~tav@92.20.83.50] has quit [Client Quit] 17:47 -!- dreadlorde [dreadlorde@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping timeout: 240 seconds] 17:49 -!- sacho [~sacho@87-126-7-117.btc-net.bg] has quit [Ping timeout: 252 seconds] 17:49 -!- PortatoreSanoDiI [~Marvin@82.84.89.183] has joined #go-nuts 17:52 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 17:52 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-183-105.clienti.tiscali.it] has quit [Ping timeout: 276 seconds] 18:00 -!- twolfe18 [~twolfe18@128.237.242.229] has joined #go-nuts 18:02 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts 18:02 -!- sacho [~sacho@87-126-7-117.btc-net.bg] has joined #go-nuts 18:04 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 276 seconds] 18:08 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 258 seconds] 18:18 -!- dannyft [~dannyft@3e6b3a68.rev.stofanet.dk] has quit [Quit: Leaving] 18:19 -!- yogib [~kaiser@dslb-178-009-078-252.pools.arcor-ip.net] has quit [Remote host closed the connection] 18:25 -!- tvw [~tv@212.79.9.150] has quit [Read error: Connection reset by peer] 18:31 -!- markcol [~markcol@74.125.59.73] has joined #go-nuts 18:33 -!- kinofcain [~KinOfCain@h-64-105-141-42.snvacaid.static.covad.net] has joined #go-nuts 18:33 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 18:41 < _andre> is there a better way to check if an IP address is v4 or v6 other than calling to4() and checking if it fails? 18:42 < kevlar_work> _andre, what's the use case? 18:43 < _andre> need to create an RtMsg and need to know if the Family field is AF_INET or AF_INET6 18:44 -!- tncardoso [~thiagon@150.164.2.20] has quit [Quit: Leaving] 18:44 -!- gnuvince|work [8e544424@gateway/web/freenode/ip.142.84.68.36] has quit [Ping timeout: 252 seconds] 18:44 < kevlar_work> sometimes you can check if len(ip) == net.IPv4len 18:45 < kevlar_work> but I only recommend that if you're constructing your own net.IP with the minimum number of octets 18:45 < _andre> but the lenght can be 16 even for v4 can't it? 18:45 < aiju> yes 18:45 < kevlar_work> hence "sometimes" 18:45 < kevlar_work> To4 is the reliable way to do it. 18:45 < skelterjohn|work> get the string repr and check if there is a ':'? 18:47 < kevlar_work> skelterjohn, To4 is faster ;-) 18:48 < skelterjohn|work> :) 18:48 < skelterjohn|work> i don't worry about such things 18:48 < skelterjohn|work> i prefer to rely on coincidence 18:54 < skelterjohn|work> i don't like things in the go core that return nil in case of an error 18:54 < skelterjohn|work> i think they should be changed to return val, ok 18:54 < skelterjohn|work> it's not like nil is the ip4 representation of the ip 18:56 -!- markcol [~markcol@74.125.59.73] has quit [Quit: markcol] 18:59 < kevlar_work> +1 18:59 -!- pjacobs [~pjacobs@66.54.185.133] has joined #go-nuts 18:59 -!- moraes [~moraes@189.103.188.201] has quit [Ping timeout: 276 seconds] 19:01 < crunge> I'm creating a file doing myFile := os.Create("blah"). It gets created. I then do n, err := myFile.Write(sixteenBytes); if err != nil { log.Fatal(...) } fmt.Print("Yay!"); n, err = myFile.Write(sixteenMore);... The file is created, the first bytes are written, but Yay is never printed, log.Fatal is never called (that I can tell) and the second set of bytes aren't written 19:01 < skelterjohn|work> crunge: pastebin the code 19:02 < crunge> yeah, Fatal isn't getting called... 1 sec 19:02 < skelterjohn|work> and what makes you think it isn't called? 19:02 < skelterjohn|work> maybe it's dumping the message to somewhere unexpected 19:02 < kevlar_work> Is the behavior of http://goo.gl/AbkLw (the range) guaranteed by spec? 19:03 < kevlar_work> I think so, but I would like someone else to agree with me :) 19:03 < crunge> http://pastie.org/private/dqfykv4xewsmuail7n5dma 19:03 < crunge> skelterjohn|work: I have a log.Print at the end of main() 19:04 < skelterjohn|work> crunge: log.Fatal() will quit 19:04 < crunge> My only output is "Created file" and "Finishing Up" 19:04 < kevlar_work> specifically, that the range is evaluated once, and therefore will not iterate over the appended elements. 19:04 < skelterjohn|work> kevlar_work: the range is on the first slice you gave it - append will return a new slice the first time it is called 19:05 < skelterjohn|work> if you did x := []int{1,2,3,0,0,0}[:3] i bet it would behave differently 19:07 < skelterjohn|work> nope, behaves the same 19:07 < skelterjohn|work> it must evaluate the length once at the beginning, and save it somewhere 19:09 < magn3ts> I don't understand the discussion in the mailing list 19:09 -!- bugQ [~bug@c-71-195-207-34.hsd1.ut.comcast.net] has quit [Ping timeout: 240 seconds] 19:09 < skelterjohn|work> which one 19:09 < magn3ts> about make and new 19:10 < skelterjohn|work> crunge: do you see what i mean? 19:10 < crunge> skelterjohn|work: no 19:10 < zozoR> magn3ts, make is serious business, new isnt 19:11 < skelterjohn|work> crunge: a few things are going wrong here. one is that if you call log.Fatalf(), that function calls os.Exit() 19:11 < skelterjohn|work> so your program exits completely at that point 19:11 < skelterjohn|work> the other is that if main returns, the whole program exits 19:11 < magn3ts> zozoR, heh what does "serious business" mean in this case? 19:11 < zozoR> that it initializes channels, maps and slices 19:11 < skelterjohn|work> so once you send *testChain to chains, it will print "Finishing up" and quit 19:11 < crunge> skelterjohn|work: so main needs to wait until writeChains sends a finished singal 19:11 < zozoR> if you use new on those three, a kitten dies 19:11 < skelterjohn|work> yes 19:12 < magn3ts> I don't like kittens anyway 19:12 < zozoR> aww 19:12 < zozoR> i dont know the details, but make is for chans, slice and maps 19:12 < aiju> actually you can new a slice 19:12 < zozoR> new is for everything else 19:12 < aiju> you will get a pointer to a nil slice 19:12 < zozoR> which is usefull for? 19:12 < skelterjohn|work> (not super useful) 19:12 < skelterjohn|work> but it can be 19:12 < skelterjohn|work> if you want out-parameters 19:12 < aiju> new returns a null value anything 19:13 < aiju> it's just that null value channels and maps aren't useful 19:13 < aiju> (it returns a pointer to a null value anything) 19:13 < skelterjohn|work> x := new(X) => var xvalue X; x := &xvalue 19:14 < crunge> skelterjohn|work: fixed. Tragically simple 19:15 -!- markcol [~markcol@74.125.59.65] has joined #go-nuts 19:16 < skelterjohn|work> :) 19:20 < str1ngs> format: 19:21 < jessta> nil value channels and maps are useful for pointing at 19:22 -!- sav [~lsd@peirce.xored.org] has quit [Read error: Connection reset by peer] 19:23 -!- sav [~lsd@peirce.xored.org] has joined #go-nuts 19:24 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts 19:25 < jessta> since you can't make() to a nil pointer 19:27 -!- tncardoso [~thiago@189.59.206.226] has joined #go-nuts 19:28 -!- pjacobs2 [~pjacobs@66.54.185.130] has joined #go-nuts 19:28 -!- pjacobs [~pjacobs@66.54.185.133] has quit [Read error: Operation timed out] 19:31 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 250 seconds] 19:38 -!- huin [~huin@91.85.188.1] has joined #go-nuts 19:45 -!- moraes [~moraes@189.103.188.201] has quit [Ping timeout: 246 seconds] 19:48 -!- serverhorror [~martin@krlh-5f72c925.pool.mediaWays.net] has joined #go-nuts 19:48 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 19:50 < jnwhiteh> hrm, it seems the go/types package is still missing quite a bit =/ 19:50 < jnwhiteh> but the package documentation says this, so I suppose its to be expected 19:50 < jnwhiteh> luckily I can get what I need with what skelterjohn|work posted earlier =) 19:50 < jnwhiteh> just needs some massaging 19:50 -!- lucian_ [~lucian@78-86-217-168.zone2.bethere.co.uk] has joined #go-nuts 19:50 < skelterjohn|work> don't thank me - thank wrtp 19:50 < skelterjohn|work> he wrote the type engine 19:50 < jnwhiteh> I was wondering what his username was :P 19:51 < magn3ts> what is that pkg used for? 19:51 < magn3ts> like what are you doing with it? 19:51 < jnwhiteh> magn3ts: type checking 19:51 < jnwhiteh> I need to take this program. or one like this: http://paste.pocoo.org/show/431418/ 19:52 < jnwhiteh> and search it for all constructs that access a value of a given type 19:52 < jnwhiteh> so in this case I'd want to be able to find any line that touches a 'Bar' 19:52 -!- lucian [~lucian@78-86-217-168.zone2.bethere.co.uk] has quit [Ping timeout: 240 seconds] 19:53 < jnwhiteh> and go/types doesn't include types for for those index/selector expression components 19:53 < jnwhiteh> wrtp's does, thankfully =) 19:53 -!- lucian [~lucian@78-86-217-168.zone2.bethere.co.uk] has joined #go-nuts 19:53 < jnwhiteh> (for reference, here's the annotated AST you get from go/types): http://paste.pocoo.org/show/431420/ 19:53 -!- markcol [~markcol@74.125.59.65] has quit [Quit: markcol] 19:55 -!- lucian_ [~lucian@78-86-217-168.zone2.bethere.co.uk] has quit [Ping timeout: 250 seconds] 19:57 -!- markcol [~markcol@74.125.59.65] has joined #go-nuts 19:58 -!- serverhorror [~martin@krlh-5f72c925.pool.mediaWays.net] has quit [Quit: Leaving] 19:59 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat] 20:07 -!- napsy [~luka@88.200.96.18] has quit [Read error: Connection reset by peer] 20:07 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 20:13 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.] 20:15 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 240 seconds] 20:17 -!- napsy [~luka@88.200.96.18] has quit [Read error: Connection reset by peer] 20:17 < zozoR> http://pastebin.com/wC3hF3xu 20:17 < zozoR> whys : | 20:17 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 20:17 < zozoR> i dont understand that 20:18 < rm445> because range doesn't do that. 20:18 < rm445> 'for' is the magic word that enables all kinds of shenanigans 20:19 < zozoR> the range part works 20:19 -!- robteix [~robteix@host147.190-137-109.telecom.net.ar] has joined #go-nuts 20:19 < rm445> no 20:19 < Namegduf> No, it doesn't. 20:19 < Namegduf> "range" is a language keyword which only works in for 20:19 < zozoR> oh lol 20:19 < zozoR> remove the range 20:19 < zozoR> xD 20:19 < Namegduf> Not a construct in and of itself 20:20 < Namegduf> And yeah, I'm not sure what you were trying to do with it there, or what it would mean there. 20:20 < zozoR> http://pastebin.com/knwKrE1g 20:20 < zozoR> there 20:20 < zozoR> the range thing followed the copypaste:P 20:20 -!- dtm_ [~dtm@cpe-66-61-15-236.neo.res.rr.com] has joined #go-nuts 20:21 < Namegduf> What's the error? 20:21 < zozoR> cannot use currentLvl.Monst.Attack() (type []*EnemyLaser) as type []Shots in append 20:21 < zozoR> Shots is an interface (that *EnemyLaser implements) 20:22 < skelterjohn|work> but []Shots is not 20:22 < skelterjohn|work> it's a slice 20:22 < skelterjohn|work> you can't implicitly convert a slice of things to a slice of interfaces 20:22 < Namegduf> Ick 20:22 < Namegduf> Yeah 20:23 < zozoR> im not sure if that is what i am doing 20:23 -!- fenicks [~fenicks@log77-3-82-243-254-112.fbx.proxad.net] has quit [Ping timeout: 240 seconds] 20:23 < Namegduf> You can't pass a slice of X as a slice of an interface which X meets. 20:23 < zozoR> elasers= append(elasers, []Shots(currentLvl.Monst.Attack())...) 20:24 < zozoR> better that way? 20:24 < skelterjohn|work> no 20:24 < Namegduf> No 20:24 < skelterjohn|work> that won't work 20:24 < Namegduf> You have to use the for loop. 20:24 < skelterjohn|work> you have to create a new slice and assign items to it 20:24 < Namegduf> To be clearer, let's say you have an interface A and a type X. 20:24 -!- fenicks [~fenicks@log77-3-82-243-254-112.fbx.proxad.net] has joined #go-nuts 20:24 < Namegduf> You can pass X where something expects A. 20:24 < Namegduf> You CANNOT pass a slice of X to something expecting a slice of A 20:24 < Namegduf> Nor can you convert a slice of X to a slice of A 20:25 < Namegduf> You also cannot pass a map with X in the type to something expecting a map with the interface in the type. 20:25 < Namegduf> Nor can you convert the former to the latter there. 20:25 -!- _andre [~andre@fosforo.f2.k8.com.br] has quit [Quit: leaving] 20:25 < Namegduf> You can only, ever, use the type to meet the interface; that doesn't let you use composite types as each other. 20:26 < zozoR> i think i understand 20:26 < zozoR> for loop it is 20:26 < Namegduf> This is because a slice of []Shots and []*EnemyLazer looks different in memory 20:27 < Namegduf> Each individual item in the first one is wrapped in an interface, but not in the second 20:27 < skelterjohn|work> right - if the code tried to index into a []Shots, but it was really a []*EnemyLazer underneath, the memory offset would be wrong 20:27 < Namegduf> And the only way to convert is to make a new slice with each individual item wrapped. 20:27 < Namegduf> This is in general true for all composite things using a concrete type vs an interface. 20:27 < zozoR> interesting 20:28 < Namegduf> There's no other way to do it, since a []Shots can contain multiple different implementations of Shots 20:29 < Namegduf> Any Shots implementation can be an element, and there's nothing forcing them to be the same. 20:29 < Namegduf> While a []*EnemyLazer can only ever contain that type. 20:30 < zozoR> ^^ 20:30 < zozoR> thank you :D 20:30 -!- erus` [~chatzilla@host86-173-109-230.range86-173.btcentralplus.com] has joined #go-nuts 20:31 < erus`> i need to marshall a key to json in lowercase :x 20:31 < Namegduf> Can you tag it? 20:33 < erus`> how? 20:33 < skelterjohn|work> put a quoted string after the field declaration 20:33 < skelterjohn|work> type X struct { a int "A" } 20:33 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 20:34 < skelterjohn|work> or, better suited for your example, { A int "a" } 20:34 < erus`> ah cool 20:35 < erus`> can i initialize a struct like in c: a := (mystruct) { "hi, 123, 12 } 20:36 < aiju> erus`: yes 20:36 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|] 20:36 < aiju> mystruct { "hi", 123, 12 } 20:36 -!- fenicks [~fenicks@log77-3-82-243-254-112.fbx.proxad.net] has left #go-nuts [] 20:37 -!- iant1 [~iant@216.239.45.130] has joined #go-nuts 20:39 -!- iant2 [~iant@nat/google/x-welocgihdvxkccyu] has joined #go-nuts 20:39 -!- GeertJohan [~Squarc@D978EC5D.cm-3-1d.dynamic.ziggo.nl] has quit [Ping timeout: 252 seconds] 20:39 -!- iant [~iant@nat/google/x-lutmmmyudkfzwzug] has quit [Ping timeout: 260 seconds] 20:39 < erus`> can i tag the structname part ? 20:40 -!- mode/#go-nuts [+v iant] by ChanServ 20:40 < skelterjohn|work> what does that mean? 20:40 -!- robteix [~robteix@host147.190-137-109.telecom.net.ar] has quit [Quit: Leaving...] 20:40 < erus`> i presume when i marshall my struct it will output the name of the struct 20:40 < erus`> name { member1, member 2 } 20:41 < skelterjohn|work> i see 20:41 < skelterjohn|work> i don't know 20:41 -!- photron [~photron@port-92-201-20-50.dynamic.qsc.de] has quit [Ping timeout: 246 seconds] 20:41 < erus`> ok it doesnt :D 20:42 -!- iant1 [~iant@216.239.45.130] has quit [Ping timeout: 264 seconds] 20:43 -!- r_linux [~r_linux@static.200.198.180.250.datacenter1.com.br] has quit [Quit: Lost terminal] 20:56 -!- Tonnerre [tonnerre@netbsd/developer/tonnerre] has quit [Quit: WeeChat 0.3.4] 20:56 -!- GeertJohan [~Squarc@D978EC5D.cm-3-1d.dynamic.ziggo.nl] has joined #go-nuts 21:01 -!- rlab [~Miranda@238-89-95-178.pool.ukrtel.net] has quit [Ping timeout: 240 seconds] 21:02 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts 21:02 < erus`> is having an if e != nil ... after every statment in a function (4 times in 1 func) bad practise? 21:02 -!- rlab [~Miranda@238-89-95-178.pool.ukrtel.net] has joined #go-nuts 21:02 < skelterjohn|work> no 21:02 < skelterjohn|work> though something like exceptions would be nice 21:04 -!- twolfe18 [~twolfe18@128.237.242.229] has quit [Quit: twolfe18] 21:05 -!- huin [~huin@91.85.188.1] has quit [Quit: leaving] 21:07 < kevlar_work> erus`, if you have deeply nested functions inside your package and a relatively narrow external interface, it is sometimes beneficial to use panic as an internal short-circuit mechanism. 21:07 < erus`> its only 1 level deep 21:07 < erus`> well 2 at most 21:08 < kevlar_work> yeah, then that's pretty much normal 21:08 < kevlar_work> A lot of my functions are ~50% error checking (or more). 21:12 < Namegduf> That's because most of the complexity in what the function is doing, fundamentally, is in handling error cases 21:12 < Namegduf> If you were to describe it in full detail in English, you'd find a similar percentage. 21:12 < kevlar_work> yep. 21:13 < kevlar_work> My functions tend to either be all error handling or all logic. 21:13 < Namegduf> Go does make it visible, yeah. 21:13 < Namegduf> It is normal, and perfectly good style when most of what your package is doing is calling functionality in other packages which can possibly fail. 21:14 -!- Fish- [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the Fish] 21:14 < kevlar_work> I love that Go encourages actually doing the error handling; I can't tell you how many times I had to debug C code and found out that I had ignored an error condition and it was causing bad things to happen 21:15 < Namegduf> panic() can be used internally, but totally changes the guarantees your code needs to meet 21:15 -!- GeertJohan [~Squarc@D978EC5D.cm-3-1d.dynamic.ziggo.nl] has quit [Quit: Leaving.] 21:15 < skelterjohn|work> what, you don't have a reflex of checking errno every time you do something? 21:15 < Namegduf> So it's worth being aware of. 21:15 < erus`> is there a quick way to init arrays? like [1,2,3] ? 21:15 < skelterjohn|work> []int{1,2,3} 21:15 < kevlar_work> and because error handling is via a consistent mechanism, it doesn't hamper readability too much, because you learn to read around it. 21:15 < Namegduf> Well, it complicates reading the nice, fast, default case 21:16 < kevlar_work> erus`, what skelterjohn|work said, unless you *actually* meant an array, which I don't think you did. (he answered your question with s/array/slice/) 21:16 < Namegduf> But when you come to think of it, let's say you do two reads from different things, then a write 21:16 < skelterjohn|work> for an array, [...]int{1,2,3} :) 21:16 < Namegduf> What you need to do and the error you need to report differs if the first fails, the second, and the third. Or it could be the same- but you should manually have to assert that it is. 21:16 < kevlar_work> yeah 21:17 < Namegduf> The visual noise is just information on what the error cases do. It's not very compact if you do wish to assert they're the same 21:17 < kevlar_work> if the first fails, you can probably just drop out. IF the second or the third fails, you may have to make sure that some consistency remains and that you're not getting things desynchronized. 21:17 < Namegduf> But it's useful information. 21:17 < Namegduf> Yeah. 21:18 < erus`> im getting this an a print(e) : (0x10af30a0,0x0) 21:18 < erus`> what does it mean? 21:19 < erus`> ah EOF 21:20 < skelterjohn|work> don't use print 21:20 < skelterjohn|work> use fmt.Print 21:20 < Namegduf> print() doesn't essentially do the right thing 21:21 < Namegduf> I don't think it checks for things being convertable to string, for example 21:21 < Namegduf> fmt.Printf will 21:21 < Namegduf> print() is a debugging command, anyway; it is not good to use. 21:25 -!- perangel [~Adium@65.242.66.218] has left #go-nuts [] 21:26 < kevlar_work> it's also not guaranteed to be available to you as a developer. 21:26 < kevlar_work> and its output is not guaranteed to be anything. 21:31 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 252 seconds] 21:33 < crunge> and it may cause rashes 21:41 < Namegduf> As well as sleepiness, nausea, heart palpitations, and lack of printing. 21:41 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Remote host closed the connection] 21:43 -!- message144 [~message14@cpe-75-83-155-145.socal.res.rr.com] has joined #go-nuts 21:43 -!- Crnobog [~crnobog@cpc3-nmal12-0-0-cust48.croy.cable.virginmedia.com] has quit [Read error: Connection reset by peer] 21:44 -!- Crnobog [~crnobog@cpc3-nmal12-0-0-cust48.croy.cable.virginmedia.com] has joined #go-nuts 21:45 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 276 seconds] 21:49 -!- keithcascio [~keithcasc@nat/google/x-ynmnhukbgbqmgtls] has joined #go-nuts 21:52 -!- rlab [~Miranda@238-89-95-178.pool.ukrtel.net] has quit [Read error: Connection reset by peer] 21:52 < erus`> for lbytes := sr.ReadLine(); lbytes != nil { 21:54 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has quit [Quit: Leaving...] 21:55 < erus`> also how do i create a new error? 21:55 < erus`> found it 21:57 -!- bmizerany [~bmizerany@204.14.152.118] has joined #go-nuts 21:59 -!- virtualsue [~chatzilla@nat/cisco/x-pvotmlmqifxyxemr] has quit [Quit: ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]] 21:59 < erus`> i had to parse my own http responce :( 21:59 < erus`> because stupid go smells 22:00 < bmizerany> hello, all. I'm following Russ' instructions on using `goinstall` to build commands and packages without makefiles (https://groups.google.com/d/msg/golang-nuts/KBBtDDeaW9Q/hzVSdruC96cJ) but am getting this error "goinstall: foochatd: open /Users/blake/src/go/src/pkg/foochatd: no such file or directory". I've updated go to HEAD and built. I'm not sure what I'm doing wrong. 22:00 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has joined #go-nuts 22:00 < bmizerany> has anyone tried this? 22:03 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has quit [Quit: hcatlin] 22:04 < jnwhiteh> erus`: why did you have to parse an http response? 22:04 < jnwhiteh> O.o 22:04 < erus`> because http.ReadRequest says bad version 22:05 < jnwhiteh> why would you read a response with ReadRequest. 22:05 < jnwhiteh> perhaps that was part of your issue? 22:10 -!- meling [~meling@cse-dhcp-10-91.ucsd.edu] has quit [Remote host closed the connection] 22:12 -!- jbooth1 [~jay@209.249.216.2] has quit [Quit: Leaving.] 22:13 < kevlar_work> bmizerany, I assume /Users/blake/src/go/src/pkg/foochatd exists and has your source in it? 22:14 < bmizerany> kevlar_work: I'm working in a directory outside $GOROOT. Do I need to be under $GOROOT? 22:15 -!- mrmikenev [~mkn24@128.187.210.255] has left #go-nuts [] 22:15 < kevlar_work> bmizerany, no 22:15 < bmizerany> foochatd isn't a pkg but a cmd, that is where I'm getting confused. 22:15 < kevlar_work> bmizerany, but you do need a $GOPATH-compatible goinstall and a $GOPATH-compatible directory 22:15 < bmizerany> foochat/po is a pkg. foochat/foochatd is a cmd. 22:16 -!- tncardoso [~thiago@189.59.206.226] has quit [Quit: bye] 22:16 < bmizerany> kevlar_work: the goinstall I have knows about GOPATH, according to a quick grep. 22:16 < kevlar_work> does `godoc goinstall` talk about $GOPATH for you? 22:16 < erus`> how can i query the true type of an interface{} ? 22:16 < kevlar_work> okay, then you need to set $GOPATH 22:16 < bmizerany> no. hrm. 22:17 < bmizerany> I did set GOPATH, but `godoc goinstall` doesn't mention GOPATH 22:17 < kevlar_work> erus`, you can do a `switch x.(type) {...}` 22:17 * bmizerany rebuilds Go 22:17 < kevlar_work> bmizerany, then you need to `hg pull -u` and a `all.bash` 22:17 < kevlar_work> (if you want to get to tip) 22:17 < bmizerany> says "no changes found" 22:18 < kevlar_work> bmizerany, what's hg identify say? 22:18 < bmizerany> hg: unknown command 'indentify' 22:18 < bmizerany> oh 22:18 < bmizerany> wait. pft 22:19 < bmizerany> 9d7967223815 (release-branch.r57) release.r57.2 22:19 < kevlar_work> I would `cd $GOROOT && hg pull && hg update weekly && cd src/ && ./all.bash` 22:19 < kevlar_work> yeah, you're on the release branch. 22:20 < bmizerany> ah. the `weekly` was what I was missing, it seems. thank you. 22:20 < kevlar_work> I guess if you're on the release branch "hg update" won't change you to the head branch. 22:20 < bmizerany> I'm a git guy so I'm not effective with hg. Thank you for help. noted. 22:20 * kevlar_work has become a git person too recently but still remembers a bit of hg 22:20 < bmizerany> it seems that way. that was my guess 22:21 < bmizerany> ok. it's building. I'll let you know how it goes 22:21 -!- brad_ [~brad@cpe-098-026-120-155.nc.res.rr.com] has quit [Ping timeout: 260 seconds] 22:21 < bmizerany> after a year of Go, it still amazes me how fast the entire language and it's stdlib build. 22:22 < bmizerany> and runs tests. 22:22 -!- Skola [~bas@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has quit [Ping timeout: 260 seconds] 22:22 -!- Jessica_Lily [~Jessica@85.211.19.216] has joined #go-nuts 22:22 -!- Jessica_Lily [~Jessica@85.211.19.216] has quit [Changing host] 22:22 -!- Jessica_Lily [~Jessica@unaffiliated/xray7224] has joined #go-nuts 22:23 < str1ngs> yes I really like that 22:23 -!- awidegreen [~quassel@h-170-226.a212.priv.bahnhof.se] has quit [Ping timeout: 246 seconds] 22:24 < kevlar_work> not to mention carriage-return compilations for pretty much any project 22:25 < bmizerany> yeah. after gotest was ported to pure Go, building Doozer became even more of a joy. 22:27 -!- clip9 [clip9@109.169.41.5] has quit [Read error: Operation timed out] 22:27 -!- almaisan-away [~al-maisan@li351-175.members.linode.com] has quit [Read error: Operation timed out] 22:29 -!- vmil86 [~vmil86@88.118.37.245] has quit [Read error: Connection reset by peer] 22:29 -!- iant [~iant@nat/google/x-welocgihdvxkccyu] has quit [Ping timeout: 264 seconds] 22:30 <@nf> bmizerany: :) 22:31 <@nf> bmizerany: wait until goinstall becomes gomake and we throw out gnu make entirely 22:31 -!- clip9 [clip9@er.en.svarteper.com] has joined #go-nuts 22:31 < bmizerany> ah man. got goinstall+GOPATH working. so slick. 22:32 < bmizerany> nf: looking forward to it. 22:32 -!- almaisan-away [~al-maisan@li351-175.members.linode.com] has joined #go-nuts 22:32 <@nf> bmizerany: oh great. lemme know if you have problems w/ GOPATH/goinstall. trying to get it as solid as possible 22:32 <@nf> if you have no cgo code, try goinstall -make=false for speed ;) 22:33 -!- EvilJStoker [jstoker@unaffiliated/jstoker] has quit [Read error: Connection reset by peer] 22:33 < bmizerany> nice 22:34 < bmizerany> real 0m0.008s 22:34 -!- Bigbear1 [~Cody@d75-156-132-175.abhsia.telus.net] has joined #go-nuts 22:34 <@nf> with -make=false you should also get better staleness checking 22:34 < bmizerany> so how does goinstall determine if something is a pkg or cmd? if package == main then cmd? 22:34 <@nf> ie, change something in a package way upstream and it should rebuild all the deps properly 22:35 <@nf> bmizerany: currently that's it, yeah 22:35 < bmizerany> oh nice. that was a problem we've seen during Doozer builds before. we would usually clear out go/bin and go/pkg and rebuild to fix it. 22:36 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit: Verlassend] 22:37 < bmizerany> hrm. I still need a Makefile for gotest? 22:38 < kevlar_work> bmizerany, unless you use a third-party builder like gofr or gb 22:38 < kevlar_work> I believe the new stdlib builder will have the functionality eventually. 22:42 < bmizerany> nice 22:43 <@nf> bmizerany: yeah unfortunately 22:43 <@nf> bmizerany: workin on it ;) 22:43 -!- EvilJStoker [jstoker@unaffiliated/jstoker] has joined #go-nuts 22:44 -!- iant [~iant@nat/google/x-eepbdrdtzfgjluyk] has joined #go-nuts 22:44 -!- mode/#go-nuts [+v iant] by ChanServ 22:44 < skelterjohn> nf = who? 22:44 -!- wallerdev [~wallerdev@72.44.102.30] has joined #go-nuts 22:44 <+iant> nf = adg 22:45 < skelterjohn> aha 22:45 < bmizerany> have any of you seen this awesome hack by kr for using :make in vi? heh. https://github.com/ha/doozerd/blob/master/src/Make.inc 22:45 < kevlar_work> oh, hopefully it's nicer than mine *click* 22:46 < bmizerany> just include it like this https://github.com/ha/doozerd/blob/master/src/pkg/peer/Makefile#L1 22:46 < kevlar_work> oh, not the same hack, nevermind. 22:46 < kevlar_work> I have a hack in one of my projects somewhere that appends relative pathnames to compile error output because recursive make causes the compilers to print out local filenames which confuses vim 22:47 < kevlar_work> prepends* 22:47 < bmizerany> ah 22:48 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has joined #go-nuts 22:50 < erus`> how can i coerc a float64 to int? 22:50 < kevlar_work> int(x) 22:51 < erus`> oh yeh :| 22:51 < erus`> to much .(blah) int 22:51 -!- Kahvi [~Kahvi@a91-152-177-58.elisa-laajakaista.fi] has joined #go-nuts 22:51 < erus`> ok my Bitcoin go rpc library now handles errors from the server 22:51 < erus`> with error codes too :) 22:54 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has joined #go-nuts 22:54 -!- markcol [~markcol@74.125.59.65] has quit [Quit: markcol] 22:54 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has joined #go-nuts 22:55 -!- erus` [~chatzilla@host86-173-109-230.range86-173.btcentralplus.com] has quit [Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]] 22:58 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has quit [Quit: Slant] 22:58 -!- Tonnerre [tonnerre@netbsd/developer/tonnerre] has joined #go-nuts 23:02 -!- ancientlore [~ancientlo@63.76.22.10] has quit [Quit: ~ Trillian Astra - www.trillian.im ~] 23:04 -!- pjacobs [~pjacobs@66.54.185.130] has quit [Quit: Leaving] 23:05 -!- meling [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has joined #go-nuts 23:08 -!- Bigbear1 [~Cody@d75-156-132-175.abhsia.telus.net] has quit [Read error: Connection reset by peer] 23:11 -!- iant [~iant@nat/google/x-eepbdrdtzfgjluyk] has quit [Ping timeout: 246 seconds] 23:15 -!- dfr|mac [~dfr|work@nat/google/x-ircbqfhpnfaabole] has joined #go-nuts 23:20 -!- niemeyer_ [~niemeyer@200-180-238-189.pltce701.dsl.brasiltelecom.net.br] has joined #go-nuts 23:22 -!- PortatoreSanoDiI [~Marvin@82.84.89.183] has quit [Quit: E se abbasso questa leva che succ...] 23:23 -!- brad_ [~brad@cpe-098-026-120-155.nc.res.rr.com] has joined #go-nuts 23:23 -!- niemeyer [~niemeyer@201.14.255.163] has quit [Ping timeout: 240 seconds] 23:28 -!- markcol [~markcol@74.125.59.1] has joined #go-nuts 23:30 -!- iant [~iant@67.218.104.187] has joined #go-nuts 23:30 -!- mode/#go-nuts [+v iant] by ChanServ 23:30 -!- vsmatck2 [0c041bf8@gateway/web/freenode/ip.12.4.27.248] has joined #go-nuts 23:33 < vsmatck2> uriel: You are the flame warrior man. I think Go may be the new C++ on reddit. :) 23:35 < vsmatck2> I may be misusing term "flame warrior". I don't mean it as pejorative. 23:38 < uriel> vsmatck2: I take it as a compliment 23:38 < uriel> http://genius.cat-v.org/erik-naggum/ 23:41 < vsmatck2> I read about him a while back. After he passed. 23:42 < vsmatck2> I was watching that Git presentation Linus Torvalds gave at google. To quote him, "if you're subtle on the internet, no one gets it". 23:42 -!- lucian [~lucian@78-86-217-168.zone2.bethere.co.uk] has quit [Remote host closed the connection] 23:43 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has quit [Quit: ZZZZZzzzzz] 23:43 < kevlar_work> rofl. 23:43 < kevlar_work> uriel, are you actively fighting the good fight on reddit? 23:45 -!- vsmatck2 [0c041bf8@gateway/web/freenode/ip.12.4.27.248] has quit [Quit: Page closed] 23:46 < Namegduf> Grr, damn mailing list 23:46 < Namegduf> Stupid Go blog posts 23:46 < Namegduf> Why do people link them 23:47 < Namegduf> Bloggers don't like Go because it isn't pretty and doesn't do everything and not require them to think, and of course they blame the language and make loud pronouncements because they think they're authorities on the subject of a language they sorta glanced at. 23:47 < Namegduf> Or on the learning of new languages. 23:48 < kergoth`> seems pretty to me, quite clean and readable. to each his own, i guess 23:48 < kevlar_work> I don't think bloggers hate Go, I think bloggers love anything new that they can bash 23:48 < Namegduf> We know this, why do we need to see more blog entries. 23:48 < kevlar_work> and there aren't enough people yet who use Go who will flame them down like if they tried the same thing with Python or Java or C++ or C or Haskell. 23:48 < uriel> kevlar_work: reddit is quite hopeless 23:48 < Namegduf> We also know that Reddit users are basically news website commenters with better spelling and vastly overinflated egos, for the most part. Why does anyone, ever mention their views? 23:49 < kevlar_work> uriel, I have never given it my attention beyond clicking a mailing list link and reading a comment and giving up. 23:49 < Namegduf> It's the damn rating system. 23:49 < Namegduf> Writing something that *sounds* good gets ratings 23:49 < Namegduf> Which makes them think it is clever and/or correct 23:49 < kevlar_work> or sounds inflamatory. 23:49 < Namegduf> Oh, or that. 23:50 < Namegduf> So a comment on Go having poor regexp performance in their personal experiment will be highly rated because it *sounds* interesting. 23:50 < kevlar_work> (I apparently couldn't be a reddit poster, as I can't spell inflammatory correctly ;-)) 23:50 -!- niemeyer__ [~niemeyer@201.25.35.2] has joined #go-nuts 23:50 < kevlar_work> rofl 23:50 < Namegduf> Not because it's actually sensible, meaningful, or even accurate in its conclusions. 23:50 < kevlar_work> never you mind that rsc is working on a re2 implementation that can blow perl out of the water in certain cases. 23:50 < Namegduf> Looking informative is enough, when most don't know better. 23:51 < kevlar_work> I'm surprised Google+ hasn't been the favorite new target of bloggers 23:51 < kevlar_work> or at least, if it has, I haven't seen it. 23:52 -!- niemeyer_ [~niemeyer@200-180-238-189.pltce701.dsl.brasiltelecom.net.br] has quit [Ping timeout: 240 seconds] 23:52 -!- Kahvi [~Kahvi@a91-152-177-58.elisa-laajakaista.fi] has quit [Quit: Lähdössä] 23:54 < Namegduf> I think people just hate Facebook that much, but I was expecting it, too. 23:57 -!- Sep102__ [~Sep102@c-71-227-179-131.hsd1.wa.comcast.net] has quit [Read error: Connection reset by peer] 23:58 -!- franciscosouza [~francisco@201.7.186.67] has quit [Quit: franciscosouza] 23:58 -!- Sep102__ [~Sep102@c-71-227-179-131.hsd1.wa.comcast.net] has joined #go-nuts --- Log closed Thu Jul 07 00:00:54 2011