--- Log opened Thu Jul 28 00:00:02 2011 00:09 -!- yogib [~yogib@dslb-188-100-008-153.pools.arcor-ip.net] has quit [Quit: yogib] 00:14 -!- Crnobog|Work [u1041@gateway/web/irccloud.com/x-hunxgmtkiilqlamo] has quit [Remote host closed the connection] 00:19 -!- gridaphobe [~gridaphob@cpe-74-68-151-24.nyc.res.rr.com] has quit [Remote host closed the connection] 00:24 -!- Kai` [u327@gateway/web/irccloud.com/x-feuxovsdzjatgyxn] has joined #go-nuts 00:25 -!- chomp [~chomp@c-67-186-35-69.hsd1.pa.comcast.net] has joined #go-nuts 00:27 -!- hargettp [~hargettp@pool-71-174-140-208.bstnma.east.verizon.net] has quit [Quit: Linkinus - http://linkinus.com] 00:29 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts 00:32 -!- kergoth [~kergoth@ip24-251-173-232.ph.ph.cox.net] has joined #go-nuts 00:34 -!- heatxsink [u956@gateway/web/irccloud.com/x-fdsuyedxlmtwaxnq] has joined #go-nuts 00:38 -!- Crnobog|Work [u1041@gateway/web/irccloud.com/x-xeeshgshgqmiwhix] has joined #go-nuts 00:39 -!- telexicon [~telexicon@unaffiliated/chowmeined] has quit [Read error: Connection reset by peer] 00:43 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.] 00:43 -!- qrush [u1528@gateway/web/irccloud.com/x-lumtcvlzrhzuqwog] has joined #go-nuts 00:49 < skelterjohn> fluffle: in general an error saying "cannot use X (type a.B) as type a.B" happens when you have two different packages named a. i think that it will make that more clear in the future 00:51 < fluffle> skelterjohn: thanks for the clarification, it was that in the end 00:51 < fluffle> i'd been using gb to build client and event locally 00:52 < skelterjohn> mirrored import path in GOROOT, or something? 00:52 < fluffle> worse... gb -i then moving the .a files to github/com/flufffle/goirc 00:52 < fluffle> *cough* 00:53 < fluffle> that doesn't work too well when pulling it in as a "third party" lib :) 00:55 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has quit [Quit: Linkinus - http://linkinus.com] 00:59 -!- nekoh [~nekoh@dslb-178-004-018-038.pools.arcor-ip.net] has quit [Quit: nekoh] 01:17 -!- cenuij [~cenuij@184.15.8.109.rev.sfr.net] has joined #go-nuts 01:17 -!- cenuij [~cenuij@184.15.8.109.rev.sfr.net] has quit [Changing host] 01:17 -!- cenuij [~cenuij@base/student/cenuij] has joined #go-nuts 01:18 -!- tylerl [~tylerl@unaffiliated/tylerl] has joined #go-nuts 01:18 < tylerl> do you know of any examples of code using os/signal properly? 01:21 -!- kevinwatt [~kevin@59-125-147-75.HINET-IP.hinet.net] has quit [Remote host closed the connection] 01:22 < chomp> definte "properly" :) 01:23 < chomp> it's pretty straightforward to use 01:23 < tylerl> chomp: well, for example, I can't see how you would handle SIGHUP without also implicitly taking on the responsiblity of handling SIGTERM et. al. 01:24 < chomp> you can't at the moment, afaik 01:24 < tylerl> thats a little silly 01:24 < chomp> there's a good reason for it 01:24 < tylerl> i'm all ears 01:24 < chomp> the signal trap has to be initialized when the package loads, before main executes 01:25 < tylerl> and? 01:25 < chomp> there's been talk of implementing the ability to select signals at load time, but no work on it yet as far as i'm aware 01:25 < chomp> and, so it traps everything because it can't assume you only want certain ones 01:25 < exch> IT's A TRAP 01:25 < tylerl> so what's the default handler for SIGTERM if I don't ever read from that channel? 01:26 < chomp> i assume it's nothing 01:26 < exch> mm if you never read from the channel, will that cause a deadlock? 01:26 < tylerl> but the signal handler is in place, right? 01:26 < exch> I never tried 01:26 < chomp> all the signal handler does is write to the signal channel 01:26 < tylerl> it would have to be, i think. 01:27 < tylerl> which makes me wonder why the program exits when you hit CTRL+C 01:27 < tylerl> because the signal is trapped and then queued into a channel and never read. So how does that end up in terminating the program? 01:28 < chomp> in my experience it hasn't 01:28 < chomp> if I C-c with os/signal loaded, the process is not terminated 01:28 < tylerl> ah. so if you don't reference os/signal, then no signal handling is in place at all? 01:28 < chomp> correct 01:28 < chomp> the trapping is done in os/signal load 01:29 < tylerl> funky 01:29 < chomp> it's not the most elegant thing in the world, given the need to handle everything gracefully, by hand 01:29 < chomp> alas, i gotta jet. cheers 01:29 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts 01:29 -!- chomp [~chomp@c-67-186-35-69.hsd1.pa.comcast.net] has quit [Quit: Leaving] 01:29 < tylerl> thanks 01:29 -!- ccc1 [~Adium@140.109.98.187] has joined #go-nuts 01:31 < tylerl> grr. wait. what about sigchld? Would adding signal handling fubar fork/exec ? 01:31 -!- cbeck [cbeck@gateway/shell/pdx.edu/x-vfecvmtofknhqkoz] has quit [Ping timeout: 255 seconds] 01:32 < exch> You'd have to try 01:33 -!- cbeck [cbeck@gateway/shell/pdx.edu/x-iiypylzrmnzfiyvv] has joined #go-nuts 01:34 < tylerl> what a fiasco 01:34 -!- chadkouse [~Adium@rrcs-74-218-87-242.central.biz.rr.com] has joined #go-nuts 01:38 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 01:40 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Ping timeout: 255 seconds] 01:45 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 01:50 -!- mjard [~k@misadventuregames.com] has quit [Ping timeout: 246 seconds] 01:50 -!- mjard [~k@misadventuregames.com] has joined #go-nuts 01:54 -!- NiteRain [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has quit [Ping timeout: 255 seconds] 01:56 -!- fhs [~fhs@pool-108-14-190-119.nycmny.east.verizon.net] has joined #go-nuts 02:01 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 02:03 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 02:07 -!- dfr|mac [~dfr|work@nat/google/x-ghbxbevbourzxlpa] has quit [Remote host closed the connection] 02:08 -!- dfr|mac [~dfr|work@nat/google/x-suedvehhkkapucim] has joined #go-nuts 02:18 -!- dfr|mac [~dfr|work@nat/google/x-suedvehhkkapucim] has quit [Remote host closed the connection] 02:22 -!- NiteRain [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has joined #go-nuts 02:22 -!- NiteRain|2 [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has joined #go-nuts 02:22 -!- NiteRain|2 [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has quit [Client Quit] 02:23 -!- skelterjohn_ [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 02:23 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Ping timeout: 255 seconds] 02:24 -!- tgall_foo_ [~tgall_foo@linaro/tgall-foo] has quit [Quit: ZZZZZzzzzz] 02:32 -!- desai [~Adium@c-67-174-14-128.hsd1.il.comcast.net] has joined #go-nuts 02:42 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 02:43 -!- niemeyer [~niemeyer@201.11.231.55] has quit [Ping timeout: 240 seconds] 02:44 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 02:45 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has joined #go-nuts 02:52 < tylerl> this signal handling stuff is fubar 02:53 < tylerl> you can't for example, ctrl+z a program that has go signal handling enabled, since you can't enable the default signal action, nor can you reproduce it. 02:54 < exch> As far as I know, signal handling in Go has always been a bit of a thorn and I am unsure if anyone cares enough to fix it. Provided that is even possible 02:54 < exch> As I understand it, the whole signal thing is highly prone to breaking in a multithreaded environment 02:54 < tylerl> well, allowing you to sepecify a signal mask would go a long way 02:55 < exch> Then again, I may be entirely wromg 02:55 < tylerl> im not sure how it would break, but I would imagine communicating between threads with signals wouldn't work very well 02:55 -!- dfr|mac [~dfr|work@ool-18baf7e7.dyn.optonline.net] has joined #go-nuts 02:55 < exch> There is probably a discussion or two about it on the mailinglist somewhere. otherwise you can always make some suggestions. Those are always welcome. 02:55 < tylerl> the whole system is so absurdly restrictive as to make it completely useless. 02:56 < tylerl> but since I don't know what justification led them to make these design decisions, i can't really tell whether fixing it is feasable or not 02:56 < exch> true 02:57 < exch> You can still offer suggestions and just see what people have to say about it 02:57 < exch> The worst that can happen is that they say No and nothing changes 03:02 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Ping timeout: 255 seconds] 03:03 -!- kungfuelmosan [6ee8901a@gateway/web/freenode/ip.110.232.144.26] has joined #go-nuts 03:04 < tylerl> /sigh 03:04 < tylerl> http://code.google.com/p/go/issues/detail?id=1266 03:04 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 03:05 < kungfuelmosan> Hey all, anyone know of a package for generating version 1 UUID's ? (RFC 4122) 03:05 < kungfuelmosan> I really would rather not write one from scratch 03:05 -!- dfr|mac [~dfr|work@ool-18baf7e7.dyn.optonline.net] has quit [Remote host closed the connection] 03:06 -!- cenuij [~cenuij@base/student/cenuij] has quit [Remote host closed the connection] 03:07 < tylerl> kungfuelmosan: version 1 requires your mac address, which makes it particularly difficult to implement (e.g. *which* mac address, and what if you don't have any network cards?) 03:09 < kungfuelmosan> tyler1: Hmm I see, that is a bit stink, I wouldn't need to extract the MAC address out of the UUID and use it for anything useful - I just need to be able to generate one for the current time to use in a Cassandra query 03:11 < tylerl> kungfuelmosan: why not generate a random guid and then replace the time-specific part with the current time? 03:13 < tylerl> anyone know the *reason* why signal handling must be set up and immunitble before main() starts? I think that restriction is the root of the problems right there. 03:13 -!- xcombelle [~xcombelle@AToulouse-551-1-62-177.w92-146.abo.wanadoo.fr] has quit [Quit: I am a manual virus, please copy me to your quit message.] 03:14 -!- Bigbear1 [~Cody@d75-158-128-103.abhsia.telus.net] has joined #go-nuts 03:23 -!- skelterjohn_ [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 03:26 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 03:33 -!- desai [~Adium@c-67-174-14-128.hsd1.il.comcast.net] has quit [Quit: Leaving.] 03:38 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 260 seconds] 03:41 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Ping timeout: 255 seconds] 03:42 < uriel> signals and threads just don't mix 03:42 < uriel> this has little to do with Go, it just is 03:43 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 03:43 -!- qeed [~qeed@adsl-98-85-37-24.mco.bellsouth.net] has quit [Quit: Leaving] 03:44 -!- Bigbear1 [~Cody@d75-158-128-103.abhsia.telus.net] has quit [Quit: Leaving.] 03:47 -!- espeed [~espeed@63.246.231.57] has joined #go-nuts 04:01 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 04:03 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 04:04 -!- espeed [~espeed@63.246.231.57] has quit [Quit: Leaving] 04:13 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts 04:13 -!- gtaylor [~gtaylor@108-196-160-120.lightspeed.tukrga.sbcglobal.net] has joined #go-nuts 04:13 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 255 seconds] 04:21 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 04:23 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 04:26 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts 04:29 < tylerl> uriel: signals and threads aren't that dangerous a combination as long as you use them responsibly. But even still that doesn't explain why signals must be set up before you start main() 04:33 < cbeck> Anyone besides adg in Portland for OSCON? 04:43 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 04:43 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 04:44 -!- PragCypher [~PragCyphe@208.82.216.3] has quit [Read error: Connection reset by peer] 04:44 -!- PragCypher [~PragCyphe@208.82.216.3] has joined #go-nuts 04:48 -!- tylerl [~tylerl@unaffiliated/tylerl] has quit [Quit: leaving] 04:48 -!- gtaylor [~gtaylor@108-196-160-120.lightspeed.tukrga.sbcglobal.net] has quit [Quit: gtaylor] 04:50 -!- moraes [~moraes@189.103.188.201] has quit [Ping timeout: 276 seconds] 04:51 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts 04:53 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Ping timeout: 255 seconds] 04:56 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has quit [Quit: ZZZZZzzzzz] 05:03 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 05:04 -!- nicka1 [~lerp@142.176.0.21] has quit [Quit: Leaving.] 05:07 -!- benjack [~benjack@bb119-74-109-65.singnet.com.sg] has joined #go-nuts 05:09 -!- telexicon [~telexicon@unaffiliated/chowmeined] has joined #go-nuts 05:10 < synx> is there a way to get 8g to stop complaining about variables defined and not used 05:10 < cbeck> synx: use them or don't declare them? 05:10 < cbeck> Other than that, no. 05:10 < synx> alright 05:16 < zozoR> it is a annoying feature sometimes 05:16 < zozoR> an annoying 05:16 < zozoR> remember you could do something stupid with it to make it used 05:16 < zozoR> something with a _ 05:17 < KirkMcDonald> Yes, you can assign it to _ 05:17 < KirkMcDonald> foo, _ := blah() 05:17 < KirkMcDonald> If you don't want to use the second return value. 05:17 < cbeck> But don't do that. Do it right. 05:22 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 05:23 -!- vsayer [~vsayer@c-67-170-236-166.hsd1.ca.comcast.net] has quit [Quit: Leaving] 05:25 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 05:35 < zozoR> KirkMcDonald, not what i meant 05:35 < zozoR> i sometimes make variables for debugging purpose or something like that 05:36 < zozoR> or comment out code using the variable for debuggin purpose 05:36 < zozoR> then it would be nice to do something like 05:36 < zozoR> unusedvar = _ 05:36 < zozoR> or something 05:37 -!- vmil86 [~vmil86@78.57.227.12] has joined #go-nuts 05:39 -!- awidegreen [~quassel@h-170-226.a212.priv.bahnhof.se] has joined #go-nuts 05:40 < synx> zozoR: Good point,thanks 05:40 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Remote host closed the connection] 05:40 < elimisteve> zozoR: I think I know what you mean. Similarly, I often comment out the only couple lines of code that use a library, so when I go to re-run the code it complains that X is imported but not used 05:41 < elimisteve> it'd be nice to have a more lax development mode of some kind 05:41 < elimisteve> though that's not a huge inconvenience 05:41 < f2f> elimisteve: in your case for something frequently used, like fmt, you can say: 'var _ fmt.Print' 05:42 < elimisteve> yes it's usually fmt 05:42 < f2f> but i don't think you'll get the compiler to issue a warning for unused variables. it's been discussed many times already and the opinion of the go team is pretty well set 05:43 < elimisteve> hmm true, I could create a couple lines like that so I could comment freely, then take them out when I'm done... 05:43 < elimisteve> for production, I love the way it is now 05:44 < elimisteve> but anyway, no serious issue here 05:44 < elimisteve> I love Go :-) 05:44 -!- skelterjohn_ [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 05:45 < f2f> people say "i'll fix it when i'm done debugging" but you see plenty of library code escaping with "var _ fmt.Print" when you search for it :) 05:45 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Ping timeout: 255 seconds] 05:45 < f2f> s/escaping/escaping in the open/ 05:49 -!- NiteRain [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has quit [Quit: KVIrc 4.1.1 Equilibrium http://www.kvirc.net/] 05:52 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Ping timeout: 255 seconds] 06:13 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 06:25 < jessta> f2f: you could avoid using fmt.Printf for debuging and use log, which you'll probably be using in other places anyway 06:33 -!- zanget [~zanget@hurf.durf.me] has quit [Ping timeout: 264 seconds] 06:33 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 06:41 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts 06:46 -!- Project_2501 [~Marvin@82.84.84.205] has joined #go-nuts 06:47 -!- kergoth [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Ping timeout: 276 seconds] 06:53 -!- chickamade [~chickamad@115.78.135.244] has joined #go-nuts 07:11 -!- zanget [~zanget@hurf.durf.me] has joined #go-nuts 07:19 -!- awidegreen [~quassel@h-170-226.a212.priv.bahnhof.se] has quit [Ping timeout: 258 seconds] 07:19 -!- rcrowley [~rcrowley@93-158-20-225.subs.ibrowse.com] has joined #go-nuts 07:24 -!- chickamade [~chickamad@115.78.135.244] has quit [Quit: chickamade] 07:37 -!- rcrowley [~rcrowley@93-158-20-225.subs.ibrowse.com] has quit [Quit: Computer has gone to sleep.] 07:47 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 264 seconds] 07:48 -!- yogib [~yogib@131.234.59.64] has joined #go-nuts 07:49 -!- zaero [~eclark@servo.m.signedint.com] has quit [Ping timeout: 260 seconds] 07:53 -!- photron [~photron@port-92-201-78-188.dynamic.qsc.de] has joined #go-nuts 07:54 -!- chickamade [~chickamad@115.78.135.244] has joined #go-nuts 07:54 -!- PragCypher [~PragCyphe@208.82.216.3] has quit [Read error: Connection reset by peer] 07:56 -!- telexicon [~telexicon@unaffiliated/chowmeined] has quit [Ping timeout: 252 seconds] 07:58 -!- napsy [~luka@193.2.66.6] has joined #go-nuts 08:00 -!- adil [~adil@nat/ibm/x-movzsnrkvckrsfly] has joined #go-nuts 08:03 -!- PragCypher [~PragCyphe@208.82.216.3] has joined #go-nuts 08:05 -!- benjack [~benjack@bb119-74-109-65.singnet.com.sg] has quit [Quit: Leaving.] 08:06 -!- kungfuelmosan [6ee8901a@gateway/web/freenode/ip.110.232.144.26] has quit [Ping timeout: 252 seconds] 08:15 -!- zaero [~eclark@50-82-164-104.client.mchsi.com] has joined #go-nuts 08:20 -!- thermal [~thermal@digital.com.au] has joined #go-nuts 08:21 < thermal> i'm starting a new App Engine project and i'm thiking of using Go 08:21 -!- virtualsue [~chatzilla@nat/cisco/x-fjwubntxqlxahmpb] has joined #go-nuts 08:21 < thermal> it sounds pretty awesome. :-) 08:23 < ww> thermal: great! 08:23 -!- zaero [~eclark@50-82-164-104.client.mchsi.com] has quit [Read error: Operation timed out] 08:23 -!- zaero [~eclark@servo.m.signedint.com] has joined #go-nuts 08:23 < thermal> ww: it's between Go and Python 08:24 < thermal> was hoping someone could sell me on Go 08:24 < thermal> tip the scales, so to speak :p 08:24 < |Craig|> thermal: if you want good communicating threads, go with go 08:25 < |Craig|> I havent tackled threading in python, but it really didn't look too nice, and its fantastic in go 08:25 < thermal> |Craig|: yeah threading can get quite messy in Python 08:25 < aiju> threading is a nightmare in python 08:25 < thermal> although i don't think App Engine supports multithreading, so it wouldn't really apply in this project 08:26 < thermal> but it's nice to know 08:26 < aiju> it's supported with go 08:27 < thermal> from the Google App Engine site: "The Go runtime environment for App Engine provides full support for goroutines, but not for parallel execution: goroutines are scheduled onto a single operating system thread. This single-thread restriction may be lifted in future versions. Multiple requests may be handled concurrently by a given instance." 08:27 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 08:27 < aiju> yeah 08:27 < aiju> half-supported ;) 08:28 < thermal> heh 08:28 < jnwhiteh> any idea where his accent is from? 08:29 < aiju> huh? 08:29 < jnwhiteh> oh, definitely the wrong channel =) 08:29 < thermal> i'm essentially wanting to poll an RSS feed (mtgox trading data), find new entries, save them and then make that historical trading data available to others 08:29 < aiju> hahaha 08:29 < aiju> mtgox is dead, isn't it? 08:29 < thermal> saving them to the App Engine data store 08:29 < thermal> what makes you say that? 08:30 < aiju> price seems to be gradually falling 08:31 < thermal> the price may be low compared to what it used to be, but the trading volume is quite high (i'm pretty sure) 08:31 < thermal> well, i guess i'll find out during this project! :-) 08:32 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|] 08:43 -!- erus` [~chatzilla@mailgate.ips-international.com] has joined #go-nuts 08:45 -!- Nisstyre [~nisstyre@infocalypse-net.info] has joined #go-nuts 08:47 -!- iXeno [~ixeno@ti0088a380-1359.bb.online.no] has quit [Read error: Connection reset by peer] 08:47 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 08:48 -!- iXeno [~ixeno@ti0088a380-1359.bb.online.no] has joined #go-nuts 08:49 -!- snafu [~Adium@brln-4db8767f.pool.mediaWays.net] has joined #go-nuts 08:55 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts 09:03 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has joined #go-nuts 09:04 -!- ThreeSix [~ThreeSix@87.68.242.120.adsl.012.net.il] has quit [Ping timeout: 250 seconds] 09:13 -!- zaero [~eclark@servo.m.signedint.com] has quit [Ping timeout: 260 seconds] 09:15 -!- virtualsue [~chatzilla@nat/cisco/x-fjwubntxqlxahmpb] has quit [Ping timeout: 264 seconds] 09:17 -!- wrtp [~rog@host-92-30-166-101.as13285.net] has joined #go-nuts 09:17 -!- zaero [~eclark@50-82-164-104.client.mchsi.com] has joined #go-nuts 09:20 < hokapoka> wrtp: mornin'# 09:21 < hokapoka> I just posted a question on the groups, as it was a touch long for here. 09:25 < jnwhiteh> dev or nuts? 09:25 < jnwhiteh> ah I see it 09:26 < jnwhiteh> ah, haven't messed with templates at all =/ 09:33 -!- xcombelle [~xcombelle@AToulouse-551-1-138-12.w86-201.abo.wanadoo.fr] has joined #go-nuts 09:38 < hokapoka> In fact, typically having thought about through the night I've just realised that I can use a FuncMap 09:47 -!- snafu [~Adium@brln-4db8767f.pool.mediaWays.net] has left #go-nuts [] 09:49 < wrtp> hokapoka: mornin' 09:51 -!- iXeno [~ixeno@ti0088a380-1359.bb.online.no] has quit [Remote host closed the connection] 09:52 < hokapoka> wrtp: hey there 09:52 < hokapoka> Oh man, I was wrong 09:53 < hokapoka> I had a typeo, the exp/template does type assert interface{} to it's actual type. 09:53 < wrtp> yeah, i thought it did - at least i've seen code there that does that 09:54 < wrtp> so does that answer your original question? 09:54 < hokapoka> indeed 09:55 < hokapoka> SWEET, now I can really get down to business. 09:56 < wrtp> hokapoka: you should answer your own post to that effect, otherwise rob will have to answer it himself... 09:56 < wrtp> oh sorry, you have already! 09:58 < hokapoka> heh, yeah I was trying to workout how not to sound like a total fool! 10:05 < uriel> thermal: http://www.reddit.com/r/programming/comments/iwjwa/go_for_app_engine_is_now_generally_available/c27nd34 10:08 -!- xcombelle [~xcombelle@AToulouse-551-1-138-12.w86-201.abo.wanadoo.fr] has quit [Quit: I am a manual virus, please copy me to your quit message.] 10:14 < jnwhiteh> uriel: we're (normally more than me, but at least me) are in #chunkymonkey as well 10:14 < jnwhiteh> I'm (somewhat) new to the codebase but can try to answer any questions you have :P 10:17 < hokapoka> People keep bringing up Generics don't they. 10:17 < jnwhiteh> aye 10:18 < jessta> thermal: I think the thread restriction is because you can currently break memory safety in Go using multiple threads 10:27 -!- z4k4ri4 [~Zakaria@118.96.91.171] has joined #go-nuts 10:28 < z4k4ri4> Is it possible (and safe) for a channel to be consumed by multiple goroutine? 10:28 < jnwhiteh> yes 10:28 < jnwhiteh> although normally channels aren't consumed =) 10:29 < jnwhiteh> a channel can have multiple readers and multiple writes 10:29 < jnwhiteh> writers, rather 10:29 < z4k4ri4> I'm talking in producer and consumer thing 10:29 < jnwhiteh> well, the consumer is consuming the items on the channel, but that's just me being pedantic =) 10:31 < z4k4ri4> I'm learning go and trying to get feeling with its performance 10:31 < jnwhiteh> okay 10:31 < z4k4ri4> currently my focus is to try to optimize a batch log parsing 10:32 < z4k4ri4> the problem is I have a custom protocol server log 10:32 < z4k4ri4> the server have 700 client 10:32 -!- alehorst [~alehorst@189.58.25.132.dynamic.adsl.gvt.net.br] has joined #go-nuts 10:33 -!- napsy [~luka@193.2.66.6] has quit [Ping timeout: 276 seconds] 10:33 < z4k4ri4> and the objective is to split the log into separate file for each client 10:33 < z4k4ri4> I try every trick 10:34 < z4k4ri4> replacing regexp with parser generator 10:34 < z4k4ri4> I forget the name, will lookup later 10:35 < z4k4ri4> but I got stuck with the fact I'm trying to write to many files at once 10:35 < jnwhiteh> well that stands to reason.. 10:35 < jnwhiteh> splitting one file into N files doesn't really scale =) 10:36 < z4k4ri4> yeah 10:36 -!- anticide [~textual@91.79.200.212] has joined #go-nuts 10:36 < z4k4ri4> so is there any pattern to try to write them concurrently 10:36 -!- alehorst [~alehorst@189.58.25.132.dynamic.adsl.gvt.net.br] has quit [Remote host closed the connection] 10:36 < z4k4ri4> maybe 10 or 20 write concurently 10:36 < jnwhiteh> sure, but that doesn't have much to do with Go.. 10:37 < jnwhiteh> that's changing the problem specification 10:37 < z4k4ri4> that doesn't matter its just for learning purpose 10:37 < jnwhiteh> if you are running into the open file descriptor limit (I assume this is your problem)? 10:37 < z4k4ri4> i'm trying to avoid it yes 10:37 < jnwhiteh> then it stands to reason that you need to open fewer files, but I can't really tell you which files you should be opening or how you should be structuring things 10:37 < jnwhiteh> because only you truly understand the problem 10:38 < jnwhiteh> you could write a custom bytes.Buffer that opens file/dumps the data/closes when it gets full 10:38 < jnwhiteh> then have a buffer for each client and just write, knowing that it'll be flushed on the backend 10:39 < z4k4ri4> yes currently I have those 10:39 < z4k4ri4> but the problem is can I have those buffer flushed concurently? 10:39 < jnwhiteh> if you'd like, yes 10:40 < z4k4ri4> will that speed up my process? 10:40 < jnwhiteh> concurrent != parallel 10:40 < jnwhiteh> they're quite different things, although they are related 10:40 < jnwhiteh> there's no guarantee that a concurrent solution to a problem will be faster, but that isn't the purpose of concurrency 10:41 < z4k4ri4> Is there a pattern/example for this kind of problem 10:42 < jnwhiteh> nothing that would be specific enough to help you that I am aware of. 10:42 < z4k4ri4> I'm thinking somekind configurable n concurent flushed goroutine 10:42 < jnwhiteh> you're writing a demuxer 10:42 < z4k4ri4> okay, you give me something to google 10:42 -!- Kahvi [5b9b57fc@gateway/web/freenode/ip.91.155.87.252] has joined #go-nuts 10:44 < z4k4ri4> okay let me explain it a little better 10:44 < z4k4ri4> assume that we buffer each log message for each client 10:45 < z4k4ri4> and when those buffer filled up they get sent to a channel 10:45 < z4k4ri4> so I want the reader of that channel is more than one coroutine 10:46 -!- ccc1 [~Adium@140.109.98.187] has quit [Quit: Leaving.] 10:46 < z4k4ri4> and the number of goroutine is user configurable (using commandline option) 10:46 < jnwhiteh> you want parallelism it seems 10:46 < jnwhiteh> goroutines do not give that to you 10:47 < jnwhiteh> you are processing a text file (log) that already exists, correct? 10:47 < z4k4ri4> yes 10:47 < jnwhiteh> and you want to read it in line-by-line, and split it up based on the client that caused the line in the log to appear 10:47 < jnwhiteh> and have that dumped to a separate file? 10:47 < z4k4ri4> pretty much 10:47 < jnwhiteh> then I'd do what I suggested 10:48 < jnwhiteh> write a buffer that flushes to file 10:48 < z4k4ri4> yes, the problem is can I make it faster by parallelize the flushes? 10:49 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 10:49 < jnwhiteh> You're asking a hypothetical optimization question 10:49 < jnwhiteh> I don't know 10:49 < jnwhiteh> I can't guarantee anything 10:49 < z4k4ri4> and avoid the max open file handle problem 10:49 < jnwhiteh> you can try it and see 10:49 < jnwhiteh> but goroutines do NOT make something parallel 10:49 < z4k4ri4> GOMAXPROC? 10:49 < jnwhiteh> GOMAXPROCS introduces parallelism, and its 1 by default 10:50 < jnwhiteh> but file operations are already intelligently handled 10:50 < z4k4ri4> assuming I set that and run it by 2 double core server 10:50 < jnwhiteh> so that should not be a problem 10:50 < jnwhiteh> I cannot tell you if it will be more efficient 10:50 < jnwhiteh> no one can 10:50 < jnwhiteh> they can give you an idea, and make guesses 10:50 < z4k4ri4> what your guess? 10:50 < jnwhiteh> but you have to do it and see if it works for your particular situation/server in order to see 10:50 -!- alehorst [~alehorst@189.58.25.132.dynamic.adsl.gvt.net.br] has joined #go-nuts 10:50 < jnwhiteh> I don't know. 10:51 < jnwhiteh> its too abstractly defined now and would be too implementation specific 10:51 -!- anticide_ [~textual@91.79.186.19] has joined #go-nuts 10:51 < jnwhiteh> I think the way Go handles I/O should make single process operation plenty fast, but you might see some speedup with multiple processes 10:51 < jnwhiteh> I don't know enough about the I/O scheduler 10:51 < wrtp> z4k4ri4: whether you can speed it up depends on whether it's actually I/O bound or not 10:51 < jnwhiteh> there are too many variables right now =) 10:52 < wrtp> if it is really I/O bound then you should get some speed up even with GOMAPROCS=1 10:52 < z4k4ri4> well If I remove the writing process it's quite fast 10:52 < hokapoka> Has anyone use the apache fastcgi mod(s) with go? 10:52 < z4k4ri4> its about 10x slower 10:52 -!- anticide [~textual@91.79.200.212] has quit [Ping timeout: 255 seconds] 10:53 < z4k4ri4> I think I'll try it, but the question is how? 10:54 < z4k4ri4> How to make a user configurable multi goroutine that read a single channel 10:54 < wrtp> i'd have one channel per file; read lines from the log file and multiplex to the correct channel 10:54 < wrtp> then you have one goroutine for each file which reads from its channel and writes to the file 10:55 < jnwhiteh> you can't leave the files open 10:55 < z4k4ri4> It will hit the max open files 10:55 < jnwhiteh> that's the problem he's running into right now 10:55 < jnwhiteh> so you have to do what I told you to do 10:55 < jnwhiteh> or somethign like it 10:55 < wrtp> how many files? 10:55 < jnwhiteh> I'm not sure what you mean by 'how', you just have to write it 10:55 < z4k4ri4> around 700 10:55 < jnwhiteh> no solution already exists 10:55 < jnwhiteh> that I'm aware of 10:55 < jnwhiteh> tho i'm working on an example 10:56 < wrtp> 700 doesn't seem like many. surely you can up the fd limit? 10:57 < z4k4ri4> maybe I do that 10:57 < z4k4ri4> thanks 10:58 < z4k4ri4> what is the hard limit for linux? 10:58 < jnwhiteh> it depends on the distro 10:58 < wrtp> if you can't, then you could have a cache of open files, but it's more work 10:59 < z4k4ri4> ubuntu? 10:59 < jnwhiteh> ulimit -a 11:01 < z4k4ri4> Okay, thanks guys for the discussion 11:01 -!- z4k4ri4 [~Zakaria@118.96.91.171] has quit [Quit: Leaving] 11:07 -!- chickamade [~chickamad@115.78.135.244] has quit [Quit: chickamade] 11:09 -!- julia [~julia@124-148-135-84.dyn.iinet.net.au] has joined #go-nuts 11:09 -!- anticide_ [~textual@91.79.186.19] has quit [Ping timeout: 250 seconds] 11:12 -!- julia [~julia@124-148-135-84.dyn.iinet.net.au] has left #go-nuts [] 11:13 -!- julia [~julia@124-148-135-84.dyn.iinet.net.au] has joined #go-nuts 11:14 < aiju> 12:57 < jnwhiteh> I think the way Go handles I/O should make single process operation plenty fast, but you might see some speedup with multiple processes 11:14 < aiju> Go forks off more processes when you do I/O 11:14 < aiju> no such thing as "single process operation" 11:14 < jnwhiteh> I know 11:14 < jnwhiteh> I meant GOMAXPROCS=1 11:14 < aiju> (unless you're talking about NT, don't know about that) 11:14 < wrtp> aiju: that's not strictly true 11:14 < jnwhiteh> that's what I was referring to, actually 11:15 < wrtp> aiju: Go *can* fork off more processes when you do I/O 11:15 < wrtp> but it doesn't necessarily 11:15 < aiju> wrtp: when you have a goroutine ready 11:15 < aiju> and do I/O 11:15 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 255 seconds] 11:15 < wrtp> oh, sorry, when you said "single process" you meant GOMAXPROCS=1 rather than a single goroutine 11:18 -!- nekoh [~nekoh@dslb-088-069-130-210.pools.arcor-ip.net] has joined #go-nuts 11:19 < jnwhiteh> hrm outputting 1e9 lines of text takes a long time =) 11:19 < aiju> jnwhiteh: bio? 11:19 < aiju> ehm, bufio 11:19 < jnwhiteh> was just a test for a poc solution 11:22 < fluffle> jnwhiteh: hope you've got O(len(line)) GB of storage lying around too :) 11:22 < jnwhiteh> :P 11:23 < jnwhiteh> this is what I threw together 11:23 < jnwhiteh> not very nice: http://paste.pocoo.org/show/448081/ 11:24 < fluffle> hmm, i wish more servers logged in latin 11:26 -!- anticide [~textual@91.79.183.143] has joined #go-nuts 11:31 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts 11:35 < wrtp> jnwhiteh: what aiju says: why not just use bufio with the appropriate buffer size? 11:36 < wrtp> also why do you need to pass in the waitgroup if you've got a flush method? 11:37 -!- ccc1 [~Adium@114-45-7-49.dynamic.hinet.net] has joined #go-nuts 11:37 -!- anticide [~textual@91.79.183.143] has quit [Ping timeout: 255 seconds] 11:37 -!- PragCypher [~PragCyphe@208.82.216.3] has quit [Read error: Connection reset by peer] 11:38 -!- PragCypher [~PragCyphe@208.82.216.3] has joined #go-nuts 11:38 -!- noodles775 [~michael@canonical/launchpad/noodles775] has quit [Ping timeout: 258 seconds] 11:40 -!- noodles775 [~michael@canonical/launchpad/noodles775] has joined #go-nuts 11:48 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 11:57 -!- ThreeSix [~ThreeSix@87.68.242.120.adsl.012.net.il] has joined #go-nuts 11:58 < jnwhiteh> wrtp: 1.) because you can't leave the files open, that's part of the original requirements and 2.) because I don't return the object, its just a long running process, and the Flush method is independent of the Process() loop which very well could still be running when main() terminates (or would) 11:59 < wrtp> jnwhiteh: 1) it would be easy to create a Writer that opened the file (or accessed a cache of open files) for each write. 11:59 < jnwhiteh> certainly, that's one way to do it 11:59 < jnwhiteh> this was just one that I pursued =) 12:00 < jnwhiteh> would be much more straightforward that way 12:00 < wrtp> 2) the whole point of the Flush method is to wait until the data is written. if the data is written you don't care if the Process() loop is still active. 12:00 < jnwhiteh> I don't follow. 12:00 -!- antonio_ [~antonio@218.241.169.34] has joined #go-nuts 12:00 < jnwhiteh> I'm processing N requests in the main loop 12:01 < odoacre> hi, i have a problem with gotest 12:01 < jnwhiteh> when I'm done processing those N requests, if I call Flush() on each buffer, there is still a high likelihood of data being lost 12:01 < odoacre> when i run gotest my test fails 12:01 < odoacre> but if i run the complied execuable it works 12:01 < wrtp> oh i see 12:01 < jnwhiteh> it is there to ensure that all data has been processed and written to the buffer before the main loop terminates, as I said 12:01 < wrtp> so Flush isn't really a public method 12:02 < jnwhiteh> no, there are no public methods 12:02 < jnwhiteh> the object isn't returned. 12:02 < wrtp> it's got an initial capital letter - that confused me! 12:03 < jnwhiteh> fair, but I did say minutes ago that the object is never returned =) 12:03 < wrtp> yeah, i missed that 12:04 < odoacre> help ? 12:05 < jnwhiteh> I don't have an answer for you odoacre 12:05 < jnwhiteh> perhaps you could pastey some code/error messages 12:05 < odoacre> there's no specific error message 12:05 < odoacre> it just fails 12:05 < skelterjohn> odoacre: is it your own library that is failing tests? 12:05 < odoacre> but then you run the exact same thing that it spit out and it says PASS 12:05 < skelterjohn> and if it fails it should tell you which test failed 12:06 < odoacre> yeah, my library 12:06 < skelterjohn> odoacre: do you mean running gotest vs ./testmain? or whatever the binary is called 12:06 < odoacre> yes 12:06 < odoacre> running gotest -> fail 12:06 < skelterjohn> that *is* strange :) 12:06 < odoacre> runnin 6.out -> pass 12:07 < odoacre> i know 12:07 < skelterjohn> since you wrote the tests, you can put a useful message in all of your t.Fail() calls 12:07 < odoacre> it's driving me crazy 12:07 < skelterjohn> so you can see which one fails 12:07 < odoacre> the test is really basic 12:07 < odoacre> i ll do a pastie 12:09 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has joined #go-nuts 12:09 < odoacre> http://pastie.org/2284250 12:09 < odoacre> the test that fails 12:09 < odoacre> is the onejust before the last 12:10 < odoacre> it looks as if it's running the function AFTER the data is modified 12:10 < skelterjohn> "IsDAG finds nonexistant cycle"? 12:10 < odoacre> yes 12:10 < skelterjohn> dunno 12:10 < skelterjohn> make clean? 12:10 < odoacre> tried :( 12:10 < skelterjohn> maybe 6.out is leftover 12:10 < odoacre> checked very carefully 12:11 < odoacre> well i'll separate it completely from the other one and see if it still fails 12:16 < odoacre> no joy :( 12:16 -!- ccc1 [~Adium@114-45-7-49.dynamic.hinet.net] has quit [Ping timeout: 246 seconds] 12:17 < jnwhiteh> I've never heard of anything like this before O.o 12:17 -!- ccc1 [~Adium@114-45-82-104.dynamic.hinet.net] has joined #go-nuts 12:17 < odoacre> i can send you the code 12:17 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping timeout: 255 seconds] 12:17 -!- preflex_ [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts 12:19 -!- desai [~Adium@c-67-174-14-128.hsd1.il.comcast.net] has joined #go-nuts 12:22 < odoacre> http://pastie.org/2284292 is someone wants to try it/tell me whet i'm doing wrong 12:25 < wrtp> skelterjohn: yeah, i'd factor it differently - i wouldn't expose a channel in the API 12:33 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts 12:37 < wrtp> skelterjohn: oops, i meant that to be addressed to jnwhiteh 12:37 < jnwhiteh> *nod* 12:37 < jnwhiteh> just was implementing what I thought he was saying he wanted 12:39 < jnwhiteh> but even that was very confused 12:48 -!- desai [~Adium@c-67-174-14-128.hsd1.il.comcast.net] has quit [Quit: Leaving.] 13:01 -!- Kahvi [5b9b57fc@gateway/web/freenode/ip.91.155.87.252] has quit [Ping timeout: 252 seconds] 13:05 -!- nicka [~nicka@unaffiliated/nicka] has quit [Ping timeout: 250 seconds] 13:09 -!- nicka [~lerp@unaffiliated/nicka] has joined #go-nuts 13:15 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has joined #go-nuts 13:19 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Remote host closed the connection] 13:36 -!- gridaphobe [~gridaphob@cpe-74-68-151-24.nyc.res.rr.com] has joined #go-nuts 13:38 -!- angasule [~angasule@190.2.33.49] has quit [Read error: Connection reset by peer] 13:40 -!- franciscosouza [~francisco@187.67.73.143] has joined #go-nuts 13:48 -!- smw [~stephen@unaffiliated/smw] has quit [Ping timeout: 260 seconds] 13:49 -!- pharris [~Adium@rhgw.opentext.com] has joined #go-nuts 13:52 -!- desai [~Adium@anlextwls003-089.wl.anl-external.org] has joined #go-nuts 13:53 -!- smw [~stephen@unaffiliated/smw] has joined #go-nuts 13:59 -!- Kahvi [5b9b57fc@gateway/web/freenode/ip.91.155.87.252] has joined #go-nuts 14:00 -!- moraes [~moraes@189.103.188.201] has quit [Ping timeout: 250 seconds] 14:00 -!- franciscosouza_ [~francisco@201.7.186.67] has joined #go-nuts 14:00 -!- Gauge [~gauge@anlextwls093-157.wl.anl-external.org] has joined #go-nuts 14:02 -!- niemeyer [~niemeyer@201-11-231-55.pltce701.dsl.brasiltelecom.net.br] has joined #go-nuts 14:02 -!- franciscosouza [~francisco@187.67.73.143] has quit [Ping timeout: 252 seconds] 14:05 -!- julia [~julia@124-148-135-84.dyn.iinet.net.au] has quit [Quit: julia] 14:08 -!- r_linux [~r_linux@static.200.198.180.250.datacenter1.com.br] has joined #go-nuts 14:23 -!- zaero [~eclark@50-82-164-104.client.mchsi.com] has quit [Read error: Operation timed out] 14:23 -!- zaero [~eclark@servo.m.signedint.com] has joined #go-nuts 14:25 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal] 14:25 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 14:27 -!- rlab [~Miranda@147-66-95-178.pool.ukrtel.net] has joined #go-nuts 14:30 -!- ancientlore [~ancientlo@63.76.22.10] has joined #go-nuts 14:31 -!- kergoth [~kergoth@ip24-251-173-232.ph.ph.cox.net] has joined #go-nuts 14:35 -!- ancientlore [~ancientlo@63.76.22.10] has quit [Read error: Connection reset by peer] 14:36 -!- ancientlore [~ancientlo@63.76.22.10] has joined #go-nuts 14:38 -!- smw [~stephen@unaffiliated/smw] has quit [Ping timeout: 240 seconds] 14:40 -!- adil [~adil@nat/ibm/x-movzsnrkvckrsfly] has left #go-nuts [] 14:41 -!- ronnyy [~quassel@p4FF1C5FB.dip0.t-ipconnect.de] has joined #go-nuts 14:42 -!- ccc1 [~Adium@114-45-82-104.dynamic.hinet.net] has quit [Quit: Leaving.] 14:43 -!- GoBIR_ [~gobir@70-90-168-189-SFBACalifornia.hfc.comcastbusiness.net] has quit [Read error: Connection reset by peer] 14:43 -!- GoBIR [~gobir@70-90-168-189-SFBACalifornia.hfc.comcastbusiness.net] has joined #go-nuts 14:43 -!- Gauge [~gauge@anlextwls093-157.wl.anl-external.org] has quit [Ping timeout: 276 seconds] 14:45 -!- ancientlore [~ancientlo@63.76.22.10] has quit [Read error: Connection reset by peer] 14:46 -!- ancientlore [~ancientlo@63.76.22.10] has joined #go-nuts 14:46 -!- ancientlore [~ancientlo@63.76.22.10] has left #go-nuts [] 14:47 -!- smw [~stephen@unaffiliated/smw] has joined #go-nuts 14:52 -!- Gauge [~gauge@anlextwls093-157.wl.anl-external.org] has joined #go-nuts 14:56 -!- qeed [~qeed@adsl-98-85-58-69.mco.bellsouth.net] has joined #go-nuts 14:56 -!- yogib [~yogib@131.234.59.64] has quit [Ping timeout: 255 seconds] 14:57 -!- taruti [taruti@ultra.violetti.org] has quit [Ping timeout: 252 seconds] 14:57 < skelterjohn|work> morning all 14:57 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts 14:58 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.] 15:01 < mpl> hello to you 15:02 < skelterjohn|work> i was thinking some more about what might make an interesting go programming competition 15:02 < skelterjohn|work> i haven't come up with anything, really :) 15:02 < skelterjohn|work> be nice to be something that benefits from concurrency and communication 15:03 < jnwhiteh> any multi-agent system 15:04 < Gauge> what would make an interesting go programming competition is if they allowed go at ACM prog comps 15:04 < skelterjohn|work> that's a much more general flavor of competition 15:05 < Gauge> I'd still use it lol 15:05 < skelterjohn|work> oh, me too 15:05 < skelterjohn|work> but it's not what i'm thinking about 15:05 < skelterjohn|work> i'm thinking about some kind of fun community event 15:05 < skelterjohn|work> jnwhiteh: do you mean multiple agents, each written by a different competitor? 15:06 < Gauge> almost anything involving a listen socket has to use a go routine 15:06 < jnwhiteh> skelterjohn|work: no, but that would work as well 15:06 < Gauge> if you are trying to think of things to force use of them 15:06 < jnwhiteh> for example, you create a maze and they write a program to navigate the maze 15:06 < Gauge> the serial solution to that jnwhiteh is much faster I think than a parallel one 15:06 < jnwhiteh> or anything where multiple autonomous agents interact 15:07 -!- Bigbear1 [~Cody@d75-158-128-103.abhsia.telus.net] has joined #go-nuts 15:07 < jnwhiteh> this isn't about parallelism 15:07 < jnwhiteh> its about concurrency 15:07 < jnwhiteh> =) 15:07 < skelterjohn|work> Gauge: not at all, if you actually mean parallel 15:07 < skelterjohn|work> pathfinding is something that is embarassingly parallelizable 15:07 < Gauge> i get confused between the terms constantly 15:07 < Gauge> oh I know it is 15:08 < jnwhiteh> that's why you don't give them the maze at once, you just give them the state of the room they're in, something like that 15:08 < Gauge> but there are algorithms that are stupid fast for solving those in serial 15:08 < Gauge> unless the maze is incredibly large 15:08 < jnwhiteh> it wasn't an optimisation problem 15:08 < skelterjohn|work> finding solutions to mazes is not that interesting, but more general planning is, i think 15:08 < jnwhiteh> if it was, we wouldn't use Go =) 15:08 < jnwhiteh> we'd write everything in machine code :P 15:08 -!- statik [~emurphy@newyork.elliotmurphy.com] has quit [Quit: Coyote finally caught me] 15:09 < Gauge> I thought the idea was to think of problems that enforce the use of go routines? 15:09 < jnwhiteh> skelterjohn|work: just think about having multiple robots or agents doing *something* 15:09 < jnwhiteh> Gauge: not *enforce* but wherein communication and goroutines work well 15:09 < jnwhiteh> and they do, with what I've been talking about 15:09 < Gauge> oh so channels then lol 15:10 < ww> there are open problems in query federation for data mining (and other uses) that are possibilities 15:10 < skelterjohn|work> one learning problem i always thought was interesting (but kind of got shot down by my advisor for time constraints) is when you have some environment with many agents - they have a collective knowledge aobut what has happened so far 15:10 < skelterjohn|work> and they need to jointly choose the best things to do to learn quickly so they can exploit 15:10 < ww> so there's an element of parallelism for the queries on different sources 15:10 < jnwhiteh> i love implementing the borg 15:10 < ww> ... and cooperation for combining the responses 15:11 < Gauge> is posting of an http connection go routine safe? 15:11 < Gauge> like logging is 15:11 < skelterjohn|work> you mean, multiple goroutines posting on the same conn? 15:11 < Gauge> yes 15:12 < skelterjohn|work> probably not, but i don't know 15:12 < skelterjohn|work> i don't imagine that it's done with one write operation 15:12 < skelterjohn|work> but maybe there is some internal mutexing 15:12 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection] 15:13 < jessta> Gauge: safe in what way? 15:14 < Gauge> with logging 2 go routines can log to the same logger at the same time and it will be safe 15:14 < Gauge> was windering if http conns were also like that 15:15 < Gauge> I would assume so, but making assumptions i bad with sockets :P 15:15 < skelterjohn|work> the logger is safe because the whole message is written with one .Write() call 15:15 < ww> i would guess that, absent muxing like spdy does, the http protocol should serialise them 15:15 < ww> no idea if it actually does though 15:16 < jessta> Gauge: it's probably safe in the same way that log is safe, but that's not really safe for http 15:17 < jessta> if logging the order of the lines are unimportant, but for http they are 15:18 < Gauge> no my services are stateless 15:18 < Gauge> so the order doesn't matter 15:18 < Gauge> i'm looking in server.go to see if I can find anything 15:19 < skelterjohn|work> posting is done from the client side, no? 15:19 < skelterjohn|work> i was just tracing through the code...it's kind of confusing 15:22 < Gauge> yea I'm in client.go now 15:22 < Gauge> server.go is for servers and responses 15:22 < Gauge> err request.go sorry 15:23 -!- Kahvi [5b9b57fc@gateway/web/freenode/ip.91.155.87.252] has quit [Quit: Page closed] 15:23 -!- yogib [~yogib@dslb-178-001-017-155.pools.arcor-ip.net] has joined #go-nuts 15:24 -!- GilJ [~GilJ@zeus.ugent.be] has quit [Read error: Operation timed out] 15:24 -!- tav [~tav@host-92-20-103-198.as13285.net] has quit [Ping timeout: 255 seconds] 15:24 -!- PragCypher [~PragCyphe@208.82.216.3] has quit [Read error: Connection reset by peer] 15:25 < Gauge> hmm, as long as I make a new request everytime it looks safe 15:25 -!- PragCypher [~PragCyphe@208.82.216.3] has joined #go-nuts 15:25 < Gauge> eh w/e i'll try it 15:26 -!- smw [~stephen@unaffiliated/smw] has quit [Ping timeout: 260 seconds] 15:28 -!- GilJ [~GilJ@zeusgw.ugent.be] has joined #go-nuts 15:31 < kevlar_work> Gauge, using the same http.Client for multiple requests is safe; using the same request, response, etc is not advised. 15:31 < Gauge> yea 15:31 < Gauge> that's what I gathered from the go sources files 15:31 < Gauge> I'm actually using the client package, and on every post is creates a new request for you and sends, so it looks prefectly safe 15:31 -!- dahankzter [~henke@92-244-3-192.customers.ownit.se] has joined #go-nuts 15:32 < kevlar_work> are you talking about an HTTP Server or an application that can act as an HTTP Client? 15:33 < kevlar_work> (or something like a proxy that does both) 15:35 < dahankzter> huuu copy on assignment is weird if you are not used to it 15:35 < Gauge> i have many tiers of http daemons, some receive requests only to send requests off to other server, so they can act as both a server and client 15:36 -!- anticide [~textual@91.79.206.85] has joined #go-nuts 15:41 -!- anticide [~textual@91.79.206.85] has quit [Read error: Connection reset by peer] 15:46 < jessta> dahankzter: I've never used a language that doesn't copy on assignment 15:49 < dahankzter> aha i mean arrays 15:49 < dahankzter> it does copy the whole of it right? 15:50 < jessta> = in Go copies the value on the right in to the variable on the left 15:50 < jessta> arrays, pointers, int, string, slice, interface are all value 15:50 < jessta> *values 15:51 < kevlar_work> funcs are also values 15:51 < kevlar_work> (even though they're pointers behind-the-scenes) 15:51 < jessta> and maps 15:51 < dahankzter> i am stuck on the array content but i get it 15:51 < kevlar_work> oh, I thought you got that one, yeah. 15:51 -!- robteix [~robteix@192.55.54.36] has joined #go-nuts 15:52 < aiju> funcs are not values 15:52 < jessta> dahankzter: it's rare that you'd use arrays on their own 15:52 < kevlar_work> aiju, how do you figure? 15:52 < dahankzter> as parts of structures mostly i guess and copy on assignment makes for nice concurrency support 15:53 < dahankzter> as long as youdon't forget how it works 15:53 < aiju> kevlar_work: funcs are pointers 15:54 -!- odoacre [~antonio@218.241.169.34] has quit [Quit: Leaving] 15:54 < jessta> dahankzter: java, python etc. also do copy on assignment 15:55 -!- erus` [~chatzilla@mailgate.ips-international.com] has quit [Remote host closed the connection] 15:55 < dahankzter> but not of the whole content, at least in Java 15:56 < dahankzter> the values in the array 15:57 < jessta> almost everything in java is a reference type 15:57 < jessta> so a java array is like a Go slice 15:58 < dahankzter> yes surely we copy the reference but not what it refers to 16:00 < kevlar_work> aiju, and pointers are values. 16:01 < kevlar_work> but since they have no * in them, I don't think you can just blindly assume everyone knows they're pointers. 16:01 < kevlar_work> (*func is NOT the same as func) 16:03 < jessta> dahankzter: yeah, = only means shallow copy 16:05 < dahankzter> yes but not so in go right? 16:05 < dahankzter> for arrays? 16:05 < jessta> the difference between Go and Java is how the = operator works 16:05 < jessta> *is not 16:06 < jessta> the difference is what things are values 16:06 < dahankzter> yes you are right and it is i think what got me at first 16:06 < dahankzter> the whole array is a value right? 16:07 < jessta> Java only has object references, and a few numberic values 16:08 -!- fabian__ [~fabian@p5DCDB695.dip.t-dialin.net] has joined #go-nuts 16:09 < jessta> Go has a bunch of reference types(map,func,interface,slice,string), pointers, structs, arrays and all the numeric values 16:09 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts 16:10 -!- smw [~stephen@unaffiliated/smw] has joined #go-nuts 16:11 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 16:11 -!- anticide [~textual@91.79.185.89] has joined #go-nuts 16:18 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping timeout: 255 seconds] 16:19 -!- erus` [~chatzilla@cpc2-gill2-0-0-cust701.basl.cable.virginmedia.com] has joined #go-nuts 16:19 -!- iant [~iant@216.239.45.130] has joined #go-nuts 16:19 -!- mode/#go-nuts [+v iant] by ChanServ 16:20 -!- fabian__ [~fabian@p5DCDB695.dip.t-dialin.net] has quit [Ping timeout: 258 seconds] 16:20 -!- fabian__ [~fabian@p5DCDAACD.dip.t-dialin.net] has joined #go-nuts 16:22 < kevlar_work> dahankzter, stop using arrays :P 16:22 < kevlar_work> only use them if you really need them, which you almost certainly don't when you're starting out. 16:23 < kevlar_work> slices are far more idiomatic and are what (almost?) every stdlib function requires 16:24 < fluffle> hi again! if I want to make a copy of a struct that I have a pointer to, can i just do: newstruct := *pointer 16:24 < dahankzter> i am having trouble seeing the difference :D 16:24 < fluffle> (i realise this is a shallow copy, but that's fine in this instance) 16:25 < dahankzter> visually in the code i mean... for a function declaration it slice []t is it the same in vars? 16:25 < fluffle> oh, hmm, no it's not, the struct contains an []string 16:25 < aiju> slices are not reference types 16:25 < aiju> for the ten billionth time 16:26 < fluffle> aiju: was that to me? 16:26 < aiju> jessta 16:27 < fluffle> ah 16:27 < dahankzter> "Slices are reference types" from the docs tho 16:28 -!- Crnobog|Work [u1041@gateway/web/irccloud.com/x-xeeshgshgqmiwhix] has quit [Remote host closed the connection] 16:28 -!- Kai` [u327@gateway/web/irccloud.com/x-feuxovsdzjatgyxn] has quit [Remote host closed the connection] 16:28 -!- heatxsink [u956@gateway/web/irccloud.com/x-fdsuyedxlmtwaxnq] has quit [Remote host closed the connection] 16:28 -!- qrush [u1528@gateway/web/irccloud.com/x-lumtcvlzrhzuqwog] has quit [Read error: Connection reset by peer] 16:29 < fabian__> hey, the gob encoding can just be used by go written programs, right? 16:30 < aiju> no 16:30 < pharris> fabian__: The format is well defined, so it can be used from elsewhere if you want. eg: http://code.google.com/p/libgob/ 16:30 < aiju> you could also use a different language 16:32 -!- anticide [~textual@91.79.185.89] has quit [Quit: Computer has gone to sleep.] 16:32 < fluffle> http://pastie.org/2285345 -- Will this Do What I Want (bar the lack of duplicating the Timestamp field, which I'm fine with) ? 16:32 < jessta> aiju: so what do you call a type that specifically contains a pointer(reference)? 16:32 < aiju> jessta: "value" 16:33 -!- fabian__ [~fabian@p5DCDAACD.dip.t-dialin.net] has quit [Ping timeout: 246 seconds] 16:33 < jessta> aiju: that's a rather vauge way to describe it 16:33 < aiju> or maybe 16:33 < aiju> "pointer"? 16:34 < jessta> but it's not a pointer 16:34 -!- fabian__ [~fabian@p5DCDB55C.dip.t-dialin.net] has joined #go-nuts 16:35 < dahankzter> its a type whose value is a pointer? 16:38 < jessta> in the case of an interface value, it's more vague. Because it's not a pointer and conceptually it doesn't contain a pointer but copying it doesn't actually copy the data it refers to. 16:38 -!- pjacobs [~pjacobs@66.54.185.133] has joined #go-nuts 16:40 -!- pjacobs2 [~pjacobs@66.54.185.130] has joined #go-nuts 16:40 -!- pjacobs [~pjacobs@66.54.185.133] has quit [Disconnected by services] 16:40 < jessta> I guess "reference value" is reasonable 16:42 < jessta> fluffle: that's not goign to work as you expect 16:42 -!- iXeno [~ixeno@cm-188.126.214.153.customer.telag.net] has joined #go-nuts 16:42 -!- aboSamoor [~rmyeid@nat/google/x-cslqhhzijbqkifse] has quit [Remote host closed the connection] 16:42 < jessta> fluffle: line.Args and nl.Args are using the same array 16:44 < fluffle> ah, so I need to create a new slice, copy to that, then assign it to nl.Args? 16:44 * fluffle goes to read about copy properly 16:45 < jessta> fluffle: I think you can just set nl.Args to nil and then copy() 16:45 < fluffle> oh, uh, it's copy(dst, src) for one thing :/ 16:46 < jessta> ah, that only works for append(), anyway 16:47 < fluffle> no worries 16:47 < fluffle> thanks for the help 16:49 -!- Bigbear1 [~Cody@d75-158-128-103.abhsia.telus.net] has quit [Read error: Connection reset by peer] 16:51 -!- fabian__ [~fabian@p5DCDB55C.dip.t-dialin.net] has quit [Ping timeout: 260 seconds] 16:54 -!- ThreeSix [~ThreeSix@87.68.242.120.adsl.012.net.il] has quit [Ping timeout: 252 seconds] 16:55 -!- awidegreen [~quassel@h-170-226.a212.priv.bahnhof.se] has joined #go-nuts 16:55 -!- Project-2501 [~Marvin@82.84.84.165] has joined #go-nuts 16:56 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:7963:ebbf:dc5a:d64b] has joined #go-nuts 16:59 -!- Fish- [~Fish@exo3753.pck.nerim.net] has joined #go-nuts 16:59 -!- Project_2501 [~Marvin@82.84.84.205] has quit [Ping timeout: 255 seconds] 17:02 -!- Fish [~Fish@exo3753.pck.nerim.net] has quit [Ping timeout: 250 seconds] 17:02 -!- Crnobog|Work [u1041@gateway/web/irccloud.com/x-exlgtekbzkghpzwx] has joined #go-nuts 17:04 -!- heatxsink [u956@gateway/web/irccloud.com/x-exgivzmsastagwds] has joined #go-nuts 17:05 -!- fabian__ [~fabian@p5DCDAE80.dip.t-dialin.net] has joined #go-nuts 17:07 < skelterjohn|work> aiju: i don't think it's meaningful to refer to both struct types and slice types as values 17:07 < skelterjohn|work> in go the word "reference" has meaning. it's not the same as in C++, but it does have meaning 17:07 < skelterjohn|work> we just use the word "reference" to mean a pointer wrapped with some extra data 17:08 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has quit [Quit: pyrhho] 17:08 -!- tvw [~tv@e176007174.adsl.alicedsl.de] has joined #go-nuts 17:11 < jessta> "In programming language theory, a reference type is a data type that can only be accessed by references. Unlike objects of value types, objects of reference types cannot be directly embedded into composite objects and are always dynamically allocated." 17:11 -!- fabian__ [~fabian@p5DCDAE80.dip.t-dialin.net] has quit [Ping timeout: 264 seconds] 17:12 < aiju> what the fuck? 17:12 < jessta> that's what wikipedia seems to think 17:12 -!- fabian__ [~fabian@p5DCDA35C.dip.t-dialin.net] has joined #go-nuts 17:12 <+iant> obviously Go is not using that definition when it says "reference type" 17:12 <+iant> or rather, perhaps in a sense it is 17:12 <+iant> but not in the obvious sense 17:12 <+iant> there is an underlying map type in Go which meets that definition of reference type 17:13 <+iant> but it's not the type that Go calls "map[int]int" 17:13 < skelterjohn|work> the person writing the wiki entry was clearly thinking of a specific language 17:13 < skelterjohn|work> and decided that the way that language did it was the only way that made sense 17:14 < skelterjohn|work> "cannot be directly embedded into composite objects" that's a pretty silly thing to add to the defn of a reference type 17:14 < skelterjohn|work> the dynamically allocated bit, too 17:15 < skelterjohn|work> i'm pretty sure if in C++ you write "int a = 5; int& b = a; b += 2;" it doesn't dynamically allocate b 17:15 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 276 seconds] 17:15 < skelterjohn|work> i'm pretty sure the whole reference type syntax is just dressed up pointers 17:15 <+iant> in C++ it is, yes 17:15 < skelterjohn|work> yes, in C++ 17:16 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat] 17:19 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts 17:20 -!- fabian__ [~fabian@p5DCDA35C.dip.t-dialin.net] has quit [Ping timeout: 258 seconds] 17:20 -!- fabian__ [~fabian@p5DCDB5B2.dip.t-dialin.net] has joined #go-nuts 17:21 < exch> http://www.solipsys.co.uk/new/EveryLanguageFixesSomething.html kind of them to mention Go in there, but I think the reasoning is a bit limited 17:21 < exch> (in the second graph) 17:22 < aiju> seems quite wrong 17:23 < aiju> Javascript does not descend from Java 17:23 < skelterjohn|work> wow, they put that in there? 17:23 < KirkMcDonald> The important distinction between Go's reference types and references in C++ is in what happens when you assign to them. 17:23 < skelterjohn|work> not in the 2nd figure... 17:23 < skelterjohn|work> they have js coming from "self" which i have never heard of 17:23 < aiju> this is full of crapp 17:24 < skelterjohn|work> read the disclaimer at th etop 17:24 -!- tvw [~tv@e176007174.adsl.alicedsl.de] has quit [Ping timeout: 255 seconds] 17:25 < f2f> hmm. touring machines begat lisp. 17:25 < skelterjohn|work> (turing) 17:25 < f2f> sorry. 17:27 < aiju> hahahaha, touring machine 17:29 -!- jstemmer [~cheetah@mrpwn.stemmertech.com] has quit [Quit: leaving] 17:30 -!- Fish [~Fish@9fans.fr] has joined #go-nuts 17:31 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts 17:32 -!- jstemmer [~cheetah@mrpwn.stemmertech.com] has joined #go-nuts 17:36 -!- arun_ [~arun@unaffiliated/sindian] has quit [Read error: Connection reset by peer] 17:36 -!- arun_ [~arun@e71020.upc-e.chello.nl] has joined #go-nuts 17:36 -!- arun_ [~arun@e71020.upc-e.chello.nl] has quit [Changing host] 17:36 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts 17:41 < skelterjohn|work> it makes sense - the machine tours around the infinite magnetic tape 17:42 < aiju> the infinite tape bit is a nice one 17:43 -!- qrush [u1528@gateway/web/irccloud.com/x-mzqfptrctfyzkozd] has joined #go-nuts 17:47 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts 17:47 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Remote host closed the connection] 17:50 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts 17:50 -!- iXeno [~ixeno@cm-188.126.214.153.customer.telag.net] has quit [Remote host closed the connection] 17:57 -!- ronnyy [~quassel@p4FF1C5FB.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 17:58 -!- kergoth [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Ping timeout: 276 seconds] 18:03 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-154-99.clienti.tiscali.it] has joined #go-nuts 18:04 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has joined #go-nuts 18:07 -!- Project-2501 [~Marvin@82.84.84.165] has quit [Ping timeout: 258 seconds] 18:10 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Remote host closed the connection] 18:11 -!- Project_2501 [~Marvin@82.84.94.53] has joined #go-nuts 18:12 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts 18:14 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-154-99.clienti.tiscali.it] has quit [Ping timeout: 257 seconds] 18:22 -!- kamaji [~kamaji@handtomouse.demon.co.uk] has joined #go-nuts 18:24 -!- photron [~photron@port-92-201-78-188.dynamic.qsc.de] has quit [Ping timeout: 255 seconds] 18:32 -!- Project_2501 [~Marvin@82.84.94.53] has quit [Quit: E se abbasso questa leva che succ...] 18:34 < erus`> write an AI for this without bruting it :D http://en.wikipedia.org/wiki/Racetrack_%28game%29 18:34 -!- smcquay [~smcquay@30.236.sfcn.org] has joined #go-nuts 18:36 -!- saschpe [~quassel@opensuse/member/saschpe] has joined #go-nuts 18:37 -!- tav [~tav@host-92-20-54-201.as13285.net] has joined #go-nuts 18:37 -!- durin42 [~durin@adium/durin42] has joined #go-nuts 18:38 -!- durin42 [~durin@adium/durin42] has left #go-nuts [] 18:39 -!- fabled [~fabled@83.145.235.194] has quit [Read error: No route to host] 18:39 -!- saschpe [~quassel@opensuse/member/saschpe] has quit [Remote host closed the connection] 18:42 < kevlar_work> erus`, AI = search, so that's a pretty trivial DFS with some heuristic (think A*) 18:44 -!- yogib [~yogib@dslb-178-001-017-155.pools.arcor-ip.net] has quit [Quit: yogib] 18:46 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.] 18:51 -!- chomp [~chomp@dap-209-166-184-50.pri.tnt-3.pgh.pa.stargate.net] has joined #go-nuts 18:51 -!- TheMue [~FMueller@p5DDF6659.dip.t-dialin.net] has joined #go-nuts 18:51 < TheMue> re 18:54 -!- Archwyrm [~archwyrm@archwyrm.net] has joined #go-nuts 18:55 -!- smcquay [~smcquay@30.236.sfcn.org] has quit [Read error: Connection reset by peer] 19:00 -!- Archwyrm [~archwyrm@archwyrm.net] has quit [Quit: Changing server] 19:01 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Remote host closed the connection] 19:02 -!- DisposaBoy [~DisposaBo@46.37.178.63] has joined #go-nuts 19:05 -!- TheMue [~FMueller@p5DDF6659.dip.t-dialin.net] has quit [Ping timeout: 250 seconds] 19:07 -!- TheMue [~FMueller@p5DDF6659.dip.t-dialin.net] has joined #go-nuts 19:08 -!- Archwyrm [~archwyrm@archwyrm.net] has joined #go-nuts 19:09 -!- Kai` [u327@gateway/web/irccloud.com/x-cynjhqoiymweusxx] has joined #go-nuts 19:17 < smw> is there a way to get code coverage statistics from gotest? 19:18 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts 19:21 -!- zaero [~eclark@servo.m.signedint.com] has quit [Ping timeout: 255 seconds] 19:22 -!- kungfuelmosan [6ee8901a@gateway/web/freenode/ip.110.232.144.26] has joined #go-nuts 19:22 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Remote host closed the connection] 19:25 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts 19:26 -!- yogib [~yogib@dslb-178-001-017-155.pools.arcor-ip.net] has joined #go-nuts 19:27 -!- zaero [~eclark@50-82-164-104.client.mchsi.com] has joined #go-nuts 19:33 -!- Gauge [~gauge@anlextwls093-157.wl.anl-external.org] has quit [Ping timeout: 276 seconds] 19:34 -!- fabian__ [~fabian@p5DCDB5B2.dip.t-dialin.net] has quit [Ping timeout: 240 seconds] 19:39 -!- huin [~huin@91.84.179.118] has joined #go-nuts 19:40 -!- magn3ts [~magn3ts@ip68-103-225-65.ks.ok.cox.net] has joined #go-nuts 19:43 < TheMue> smw: Not with gotest, but maybe http://golang.org/cmd/cov/ helps. 19:48 -!- nicka1 [~nicka@142.176.0.21] has joined #go-nuts 19:50 -!- keithcascio [~keithcasc@nat/google/x-ywkrkbdjmyktulwn] has joined #go-nuts 19:54 -!- iXeno [~ixeno@cm-188.126.214.153.customer.telag.net] has joined #go-nuts 19:57 -!- alehorst [~alehorst@189.58.25.132.dynamic.adsl.gvt.net.br] has quit [Quit: Leaving.] 20:00 -!- ThreeSix [~ThreeSix@87.68.152.12] has joined #go-nuts 20:02 -!- alehorst [~alehorst@189.58.25.132.dynamic.adsl.gvt.net.br] has joined #go-nuts 20:04 -!- iXeno_ [~ixeno@cm-188.126.214.153.customer.telag.net] has joined #go-nuts 20:05 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 20:06 < smw> TheMue, we need some way to combine gotest and cov :-) 20:07 -!- iXeno [~ixeno@cm-188.126.214.153.customer.telag.net] has quit [Ping timeout: 258 seconds] 20:07 < TheMue> smw: Yep 20:10 -!- fabian__ [~fabian@koln-4d0d1bde.pool.mediaWays.net] has joined #go-nuts 20:12 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 20:13 -!- vmil86 [~vmil86@78.57.227.12] has quit [Read error: Connection reset by peer] 20:16 < skelterjohn|work> kevlar_work: you might be surprised at how difficult that can be 20:16 < skelterjohn|work> also, what would you use as an admissible heuristic for A* in that game? 20:16 < skelterjohn|work> it's not obvious to me what would work 20:17 -!- DisposaBoy [~DisposaBo@46.37.178.63] has quit [Remote host closed the connection] 20:22 < kevlar_work> skelterjohn, I said it'd be a trivial dfs, I didn't say the heuristic would be trivial ;-) 20:24 < kevlar_work> though I would hazard that you could get by with a heuristic that involves the area between your dot and the finish line. 20:24 < skelterjohn|work> i still don't think a DFS would be the best solution (A* is not a kind of DFS, btw) 20:24 < kevlar_work> I'm probably getting the names confused; I know what I mean in my head, lol 20:25 < kevlar_work> my ai training focused more on explaining the concepts, we only learned the names for them very late in the game. 20:25 < kevlar_work> s/explaining/learning/ 20:26 < TheMue> So, just release a new Tideland Common Go Library release with another more flexible identifier generation function. 20:26 < skelterjohn|work> i think that manhattan distance would not be admissible 20:26 < skelterjohn|work> it's an interesting game 20:26 < skelterjohn|work> TheMue: what is Tideland anyway 20:26 < skelterjohn|work> i've seen it around but never looked into what it was 20:27 < TheMue> skelterjohn|work: It's my little one person software label. Take a look at the dashboard, there are five libs I provide now. 20:28 < skelterjohn|work> there is both CGL and Common Go Library 20:28 -!- Fish [~Fish@9fans.fr] has quit [Quit: WeeChat 0.3.5] 20:28 < TheMue> skelterjohn|work: CGL is a lot of stuff, monitoring, map/reduce, parallel sorting, supervising, uuid, other ids ... 20:28 -!- rcrowley [~rcrowley@93-158-11-253.subs.ibrowse.com] has joined #go-nuts 20:28 < TheMue> skelterjohn|work: I love those old TLAs (three letter acronyms). 20:29 < TheMue> skelterjohn|work: GNL = Go Numeric Library / RWF = RESTful Web Framework / RDC = Redis Database Client / ECA = Event-driven Cell Architecture 20:30 < skelterjohn|work> gnl has a broken link on the dashboard 20:31 < TheMue> skelterjohn|work: Hehe, yes, thx for the hint, the leading t is missing. I'll write a note to Andrew. 20:32 < skelterjohn|work> if you add the t it's still not a good link :) remove the /hg too 20:32 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-164-114.clienti.tiscali.it] has joined #go-nuts 20:34 -!- synx` [~dhorn@unaffiliated/synx/x-4957395] has quit [] 20:37 -!- rcrowley [~rcrowley@93-158-11-253.subs.ibrowse.com] has quit [Quit: Computer has gone to sleep.] 20:39 -!- synx` [~dhorn@kodiak.cs.sonoma.edu] has joined #go-nuts 20:39 -!- synx` [~dhorn@kodiak.cs.sonoma.edu] has quit [Changing host] 20:39 -!- synx` [~dhorn@unaffiliated/synx/x-4957395] has joined #go-nuts 20:39 -!- rcrowley [~rcrowley@93-158-11-253.subs.ibrowse.com] has joined #go-nuts 20:43 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-169-217.clienti.tiscali.it] has joined #go-nuts 20:44 -!- robteix [~robteix@192.55.54.36] has quit [Quit: Leaving] 20:45 -!- PragCypher [~PragCyphe@208.82.216.3] has quit [Read error: Connection reset by peer] 20:45 -!- PragCypher [~PragCyphe@208.82.216.3] has joined #go-nuts 20:46 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-164-114.clienti.tiscali.it] has quit [Ping timeout: 252 seconds] 20:48 -!- rcrowley [~rcrowley@93-158-11-253.subs.ibrowse.com] has quit [Quit: Computer has gone to sleep.] 20:49 -!- r_linux [~r_linux@static.200.198.180.250.datacenter1.com.br] has quit [Quit: Lost terminal] 20:50 -!- qeed [~qeed@adsl-98-85-58-69.mco.bellsouth.net] has quit [Quit: Leaving] 20:53 -!- rcrowley [~rcrowley@93-158-11-253.subs.ibrowse.com] has joined #go-nuts 20:57 -!- Natch| [~natch@c-adcee155.25-4-64736c10.cust.bredbandsbolaget.se] has quit [Remote host closed the connection] 20:58 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:7963:ebbf:dc5a:d64b] has quit [Quit: Leaving.] 21:04 -!- rcrowley [~rcrowley@93-158-11-253.subs.ibrowse.com] has quit [Ping timeout: 252 seconds] 21:17 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has quit [Remote host closed the connection] 21:17 -!- kergoth_ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has joined #go-nuts 21:18 -!- yogib [~yogib@dslb-178-001-017-155.pools.arcor-ip.net] has quit [Quit: yogib] 21:20 -!- TheMue [~FMueller@p5DDF6659.dip.t-dialin.net] has quit [Quit: Lost terminal] 21:21 -!- huin [~huin@91.84.179.118] has quit [Quit: leaving] 21:28 -!- gridaphobe [~gridaphob@cpe-74-68-151-24.nyc.res.rr.com] has quit [Remote host closed the connection] 21:30 -!- kergoth__ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has joined #go-nuts 21:30 -!- kergoth_ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Ping timeout: 252 seconds] 21:31 < fluffle> has anyone used the PCRE bindings listed on http://go-lang.cat-v.org/library-bindings ? 21:32 < fluffle> i'd quite like to be able to do regex substitutions, and neither the go standard library's regexp package or the sre2 implementation go that for 21:32 < kevlar_work> uh 21:32 < fluffle> (I could perform the substitutions manually from the index list, at a pinch, but that seems like a lot of work) 21:33 < kevlar_work> fluffle, regexp.ReplaceAll? 21:33 < fluffle> oh. 21:33 < fluffle> damn 21:33 < fluffle> um, ignore me, i clearly can't read tonight 21:33 < fluffle> sorry! 21:33 < kevlar_work> lol 21:33 < kevlar_work> it's entirely possible you need things stdlib regexp doesn't have, that just happens to be one it does :) 21:33 < kevlar_work> you should also check out exp/regexp 21:34 < kevlar_work> (if you are on the bleeding edge) 21:34 < fluffle> not currently, i went there and ended up shooting myself in the foot a couple of times :) 21:35 < kevlar_work> but the dashboard is almost entirely black now! 21:35 < fluffle> 'No support is provided for expressions (e.g. \1 or $1) in the replacement text.' <-- this makes me sad 21:35 < kevlar_work> ReplaceFunc 21:35 < kevlar_work> er, ReplaceAllFunc 21:35 < kevlar_work> + sprintf 21:36 < kevlar_work> I think that's one of the many things coming with the exp/regexp 21:36 < fluffle> ok 21:36 < fluffle> thanks again 21:36 * fluffle considers his options 21:37 < kevlar_work> oh, nevermind, I thought the replacement functions took the subexpressions 21:39 -!- fabian__ [~fabian@koln-4d0d1bde.pool.mediaWays.net] has quit [Quit: Verlassend] 21:40 < fluffle> I could probably hack something up with regexp.FindAllStringSubmatchIndex() but it looks like hard work 21:46 < f2f> nothing in Go is hard work ;) 21:47 < fluffle> well, compared to e.g. perl where regex are a first-class language construct, for example :p 21:50 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has quit [Quit: Leaving...] 21:53 -!- gridaphobe [~gridaphob@cpe-74-68-151-24.nyc.res.rr.com] has joined #go-nuts 21:56 -!- desai [~Adium@anlextwls003-089.wl.anl-external.org] has quit [Quit: Leaving.] 21:57 < kevlar_work> fluffle, any programming problem is easy in the language designed to solve that programming problem 21:58 < fluffle> good point well made 21:58 * fluffle stops whining 21:59 -!- magn3ts [~magn3ts@ip68-103-225-65.ks.ok.cox.net] has quit [Ping timeout: 276 seconds] 22:02 -!- rlab [~Miranda@147-66-95-178.pool.ukrtel.net] has quit [Read error: Connection reset by peer] 22:05 -!- franciscosouza [~francisco@201.7.186.67] has quit [Quit: franciscosouza] 22:06 < ThreeSix> when I type "var v SyncedBuffer" does it uses stack? 22:06 < f2f> yes. it's put on the heap if you take its pointer 22:07 < f2f> assuming SyncedBuffer isn't a pointer type :) 22:07 < ThreeSix> nice :o 22:07 < ThreeSix> cool 22:09 < kevlar_work> you shouldn't care about that and it's an implementation detail. 22:10 < ThreeSix> I just was curious to know how does it works :P 22:12 -!- magn3ts [~magn3ts@ip68-103-225-65.ks.ok.cox.net] has joined #go-nuts 22:12 < kevlar_work> ThreeSix, escape analysis is coming soon to gc, and then we won't be able to answer the stack/heap question for you simply ;-) 22:16 -!- Nisstyre [~nisstyre@infocalypse-net.info] has quit [Ping timeout: 240 seconds] 22:20 -!- wrtp [~rog@host-92-30-166-101.as13285.net] has quit [Quit: wrtp] 22:20 < ThreeSix> escape analysis? 22:21 -!- awidegreen [~quassel@h-170-226.a212.priv.bahnhof.se] has quit [Ping timeout: 240 seconds] 22:21 < Namegduf> kevlar_work: It's good to know when you can easily assume it's on the stack, though, for performance reasons 22:24 -!- chomp [~chomp@dap-209-166-184-50.pri.tnt-3.pgh.pa.stargate.net] has quit [Ping timeout: 252 seconds] 22:25 -!- moraes [~moraes@189.103.188.201] has quit [Ping timeout: 252 seconds] 22:25 < kevlar_work> yeah 22:25 < kevlar_work> though the whole point is that all you should have to do is confine its use to one function and it will be on the stack 22:25 < kevlar_work> which is why lvd is working on escape analysis 22:27 < Namegduf> It'd be nice if I could assume that, yeah. 22:27 < nicka> To what extent is it done currently? 22:27 < Namegduf> "not at all" 22:28 < Namegduf> You take the address, it goes on the stack. 22:29 < Namegduf> I'm wishing for it only putting it on the stack if you 1) Put it in a global variable. 2) Send to another goroutine 3) Call a function that does one of these things. 22:29 < Namegduf> Should be possible to tag function parameters for "will not be referenced anywhere by this function when it returns"> 22:30 < Namegduf> And then you can use the stack mostly as you could in C. 22:30 < Namegduf> But anything is a nice start. 22:31 < kevlar_work> I am pretty sure the escape analysis that's being done is quite thorough, based on some of the commentary 22:31 < Namegduf> Nice. 22:31 < kevlar_work> e.g. I think it tags each argument of each function with whether or not it is leaked 22:31 < Namegduf> Awesome. 22:32 < kevlar_work> don't quote me on that though; it's on the go-dev list if you want to check it out. 22:32 < kevlar_work> I haven't taken the time to understand the code, so I try to read the comments and infer :) 22:33 < kevlar_work> (and the reviewer comments) 22:34 < Namegduf> I won't. 22:35 -!- franciscosouza [~francisco@187.105.25.184] has joined #go-nuts 22:37 -!- kergoth` [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Read error: Connection reset by peer] 22:42 -!- NiteRain [~kvirc@174.140.110.37] has joined #go-nuts 22:45 -!- Nisstyre [~nisstyre@infocalypse-net.info] has joined #go-nuts 22:57 -!- NiteRain|2 [~kvirc@174.140.110.37] has joined #go-nuts 22:57 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-169-217.clienti.tiscali.it] has quit [Quit: E se abbasso questa leva che succ...] 22:58 -!- NiteRain|2 [~kvirc@174.140.110.37] has quit [Client Quit] 23:04 -!- erus` [~chatzilla@cpc2-gill2-0-0-cust701.basl.cable.virginmedia.com] has quit [Remote host closed the connection] 23:21 -!- magn3ts [~magn3ts@ip68-103-225-65.ks.ok.cox.net] has quit [Remote host closed the connection] 23:21 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts 23:22 -!- NiteRain [~kvirc@174.140.110.37] has quit [Quit: KVIrc 4.1.1 Equilibrium http://www.kvirc.net/] 23:31 -!- PragCypher [~PragCyphe@208.82.216.3] has quit [Read error: Connection reset by peer] 23:32 -!- PragCypher [~PragCyphe@208.82.216.3] has joined #go-nuts 23:33 -!- pjacobs [~pjacobs@66.54.185.130] has quit [Quit: Leaving] 23:51 -!- robteix [~robteix@host123.190-30-191.telecom.net.ar] has joined #go-nuts 23:55 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts --- Log closed Fri Jul 29 00:00:02 2011