--- Log opened Fri Sep 09 00:00:23 2011 --- Day changed Fri Sep 09 2011 00:00 < kevlar_work> you'll probably have to paste code for me to give you a more detailed examination 00:00 < smcquay> kevlar_work: yes, that's exactly the test I wrote. I'd expect non-ideal (low Efficiency) performance in any language if there is a ton of i/o 00:00 < f2f> are the channels buffered? 00:00 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.5] 00:00 -!- icebrain [~icebrain@co3-84-90-63-109.netvisao.pt] has joined #go-nuts 00:04 < smcquay> f2f: unbuffered 00:04 < kevlar_work> smcquay, also not a good idea for gomaxprocs > 1 00:05 < kevlar_work> (for a linear-parallel-linear program) 00:06 < smcquay> kevlar_work: but then my parallel dart throwing pegs a single cpu when it could be pegging all 8 00:06 < kevlar_work> how do you figure? 00:06 < smcquay> empirically 00:07 < brandini> evening 00:07 < smcquay> i don't set GOMAXPROCS, and when I run it, asking for 4 goroutines, it pegs a single of my 8 cpus 00:07 < kevlar_work> uh, that's because you didn't set GOMAXPROCS 00:07 < smcquay> at least it did 6 weeks ago when last I tested; I'm finally making time to get back into Go. 00:08 < smcquay> correct. if I don't set GOMAXPROCS > 1, I only peg a single CPU. I would like to use more than one. Hence I think it's a good idea for GOMAXPROCS>1 :) 00:09 < kevlar_work> smcquay, as I said, there is a good chance you will SLOW DOWN your program from the GMP=1 case when you use GMP>1 00:09 -!- xash [~xash@d004144.adsl.hansenet.de] has quit [Quit: Lost terminal] 00:09 < kevlar_work> and what I was saying about unbuffered channels is that you're even more likely to shoot yourself in the foot if you have a GMP>1 program that collects using buffered channels 00:09 < smcquay> kevlar_work: because of the current scheduler implementation? 00:09 < kevlar_work> among other things, yes. 00:10 < smcquay> alright. I shall be patient and indulge in the many other things Go gives me for the time being 00:10 < kevlar_work> That's probably not going to be forthcoming. 00:10 < brandini> kevlar_work: hasn't that been "fixed" in the weekly? 00:10 < kevlar_work> lol, no. 00:10 < brandini> oh, ok :) 00:11 * brandini might have been reading the dev list :D 00:11 < kevlar_work> scheduler and garbage collector upgrades are serious business 00:11 < kevlar_work> function inlining and escape analysis are coming down the pipe though, which might be what you're thinking 00:12 < smcquay> kevlar_work: am I mistaken in thinking that one of golang's main goals is to get the most out of multicore and networked machines? 00:13 < brandini> smcquay: IMO there is a trade off between GMP and how your app is built 00:14 < kevlar_work> smcquay, it is 00:14 < f2f> smcquay: there are many ways to write an inefficient program :) if the code is small enough just let us have a look at it. there are plenty of examples of go programs which are efficiently parallelized 00:14 < brandini> so bumping it up may help 00:14 -!- chomp [~chomp@c-67-186-35-69.hsd1.pa.comcast.net] has joined #go-nuts 00:14 < f2f> so i don't think the issue is Go itself 00:14 < smcquay> fair enough; i definitely don't claim to be an experienced (go) programmer 00:14 < brandini> I've got 4 go experience 00:14 < brandini> and you can too! 00:14 < brandini> :) 00:14 < Namegduf> I have 15 years experience with the Go programming language 00:15 < kevlar_work> smcquay, benchmarks and "demo" programs (like yours) behave in a much different fashion from a daemon living in the wild processing incoming requests 00:15 < smcquay> Namegduf: I know someone who would like to find you a ojb P: 00:15 < Namegduf> smcquay: I'm kidding, Go hasn't existed that long. :P 00:15 < smw> Namegduf, damn. I thought I had the most experience here with only a decade. 00:16 -!- pack3754 [~daniel@71.216.93.203] has quit [Quit: Leaving] 00:16 < brandini> see what I started! ;) 00:16 < smcquay> is there a prefered pastebin for go? 00:16 < itrekkie> here's something I don't quite understand, why doesn't a real OS thread back every goroutine and let the OS worry about scheduling? 00:16 < kevlar_work> despite the smashy-smash aspects of goroutine relocation, it can still have very real benefits for response time and throughput on servers, etc 00:16 < kevlar_work> smcquay, my personal favorite is gist.github.com 00:16 < kevlar_work> but lots of people use pastie. 00:16 < brandini> itrekkie: because not all schedulers are created equal 00:17 < brandini> and go doesn't want to depend on the os scheduler to perform well on MP 00:17 < Namegduf> itrekkie: Because OS threads are RAM heavy and much slower to create and destroy 00:17 < smcquay> https://gist.github.com/1205171 00:17 < kevlar_work> itrekkie, try out gccgo and let us know how that works for you ;-) 00:18 < itrekkie> gccgo is the bane of my existence, I can't compile it for the life of me 00:18 < Namegduf> Yeah; gccgo does that. It makes anything using goroutines (which is everything to some degree) slower 00:18 < kevlar_work> (for your program it might actually speed things up because it has more optimizations, but for tens of thousands of goroutines it groans and falls over) 00:18 < itrekkie> I was anxious to see how it handled inlining in particular 00:18 -!- rcrowley [~rcrowley@64.125.181.68] has quit [Quit: Computer has gone to sleep.] 00:19 < Namegduf> I don't know if there's some theoretical reason OS threads have to be as they are 00:19 < kevlar_work> itrekkie, it aggressively inlines and unrolls loops when optimizations are turned on, just like GCC 00:19 < itrekkie> does anyone have it running on OS X, or is it a linux only thing 00:19 < Namegduf> But they aren't. 00:19 < Namegduf> It ought to work anywhere GCC does, surely? 00:20 < Namegduf> Given GCC's architecture? 00:20 < kevlar_work> well, if the frontend doesn't compile right, then it won't work 00:20 < kevlar_work> and you still need to be able to *compile* gcc to be able to compile gccgo 00:20 < brandini> ok, while we're on obscure topics... how can I install go on my android phone? 00:20 < kevlar_work> and environments in which you can compile gcc are far more rare than environments which can run it. 00:21 < Namegduf> Ah. 00:21 < itrekkie> I personally think a self-hosting go compiler sounds like terrific fun, but there are probably lots more important things on the menu 00:21 < Namegduf> brandini: You do a lot of infrastructure work no one has done yet 00:21 < Namegduf> Then you use that 00:21 < Namegduf> It'd involve going via the NDK 00:21 < brandini> :) 00:21 < kevlar_work> or rooting it and installing linux 00:21 < brandini> I read it was done before 00:21 < kevlar_work> :> 00:22 < brandini> I guess I'll just wait for my pandaboard to arrive 00:22 < Namegduf> For all the flaws of Android, such as, to pick a random one in particular, the whole thing, it's better than trying to use a desktop OS on a phone. 00:23 < smcquay> kevlar_work: I am headed out to a LUG; thanks for your input and insight. 00:23 < Namegduf> Meego is trying to develop the necessary stuff to make regular Linux have phone-friendly software available, but so far I've yet to be astounded 00:23 < Namegduf> Also their principal backer decided to take a huge cash payment from MS for running their OS, since no one else would. 00:24 < Namegduf> So that's not going to help. 00:25 < str1ngs> brandini: debian chroot is the easiest way 00:25 < kevlar_work> microsoft <3 open source 00:25 < brandini> I have grand plans to run some webservers on a pandaboard 00:25 < str1ngs> brandini: my method though is to use a decoupled glibc 00:26 < str1ngs> if you have pandaboard with a linux os, just cross build go stuff for it 00:26 < str1ngs> with go its pretty trivial to cross compile 00:26 < brandini> aha ok 00:27 < str1ngs> GOARCH=arm make 00:27 < Ginto8> str1ngs, you just need to set $GOOS and $GOARCH different from $GOHOSTOS and $GOHOSTARCH right? 00:28 < str1ngs> gc essentially always cross builds so w/e you set GOOS/GOARCH for 00:28 < brandini> str1ngs: what phone have you done this on? 00:28 < str1ngs> brandini: motorola xoom 00:28 < Namegduf> It's not quite that simple 00:28 -!- itrekkie [86868b4a@gateway/web/freenode/ip.134.134.139.74] has quit [Quit: Page closed] 00:29 < brandini> aha, the one doing the builds? 00:29 < Namegduf> Cross-compiling for a platform requires getting dependencies for the cross compilation 00:29 < Namegduf> And I don't think anyone's put any instructions up for that. 00:29 < brandini> nope, I looked for them today 00:29 < str1ngs> works fine when I build for arm 00:29 < Namegduf> Aside rerunning Make, but that isn't enough on its own, or won't work without dependencies itself, I forget. 00:29 < str1ngs> but if you are cross building OS thats abit more complex 00:29 < Namegduf> Architectures, yes, OS, no. 00:30 < str1ngs> brandini: anyways I run go native on my xoom I just use a decoupled glibc. which allows me also to use stuff like vim,git,openssh etc 00:30 < str1ngs> without a chroot 00:30 < brandini> ok :) 00:31 < kevlar_work> cross-compiling requires knowing that you should disable CGO in net and then it works 00:31 < brandini> how's the performance serving http requests on that xoom? 00:31 < Namegduf> kevlar_work: Doesn't that silently break DNS resolution? 00:31 < str1ngs> not sure . probably not greats its wifi 00:31 < brandini> what about local tests? 00:31 < kevlar_work> Namegduf, nope, that's a lie that I accidentally started/perpetuated 00:32 < kevlar_work> the environment in which I was testing used weird resolv.conf settings that only the cgo library noticed 00:32 -!- hargettp [~hargettp@pool-71-184-176-101.bstnma.east.verizon.net] has joined #go-nuts 00:32 < str1ngs> brandini: I'd have to setup some benchmark which I'm not very motivated to do :P 00:32 < kevlar_work> so when it reverted back to the go DNS it "silently broke" 00:32 -!- goraes [~goraes@189.103.177.124] has quit [Read error: Connection reset by peer] 00:32 < brandini> str1ngs: no worries, just curiousity mostly 00:33 < brandini> when I get my board I'll find out soon enough :) 00:33 < str1ngs> brandini: with the pandaboard should be pretty easy, just use something like debian 00:33 < brandini> they have builds/installs packaged up for ubuntu 00:33 < brandini> I'm going to start there 00:34 < str1ngs> I'm more hardcore. I use a CLFS 00:34 < brandini> :) 00:34 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 00:34 < brandini> I was going to try and add the ARM support to openbsd 00:34 < str1ngs> atleast until my go package manager is done 00:35 < brandini> it's got armish, just not this cpu 00:46 -!- replore_ [~replore@203.152.213.161.static.zoot.jp] has quit [Read error: Connection reset by peer] 00:46 -!- replore [~replore@203.152.213.161.static.zoot.jp] has joined #go-nuts 00:47 < Ginto8> str1ngs, a package manager written in go? 00:52 < f2f> smcquay: the issue with your code is all the use of rand.Float() which uses a global (locking) random number generator. that's why you're seeing only one cpu at work 00:53 < f2f> Float64, i mean 00:54 -!- Tv__ [~Tv__@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts 00:55 -!- kergoth [~kergoth@ip24-251-167-38.ph.ph.cox.net] has joined #go-nuts 00:58 < str1ngs> Ginto8: right 00:59 < Ginto8> ah ok cool. How's it coming? 00:59 < str1ngs> good so far. right now its more of a tarball compressor extractor 01:00 < Ginto8> well that's what apt is at the most basic isn't it? 01:00 < Ginto8> or at least dpkg 01:00 < str1ngs> something like that its more complex then that 01:01 < str1ngs> ie mine uses the openpgp pkg for signing and verification along with debug/elf for resolving depends 01:02 < Ginto8> ahh nice 01:02 < str1ngs> basically its detached signatures 01:02 < Ginto8> uses debug/elf... does that mean it looks for what libraries it's linked to? 01:02 < str1ngs> but this has no external dependancies 01:03 < str1ngs> yes it looks up the ASNEEDED elf headers and resolves what packages owns that file. 01:03 < Ginto8> that's pretty cool 01:03 < str1ngs> and the meta data is compressed json 01:04 < Ginto8> I never quite understood what json was and what it was used for 01:04 < str1ngs> json is serialization 01:04 < Ginto8> ahh ok 01:05 < str1ngs> go json support is first rate. 01:05 < kevlar_work> {"foo":[{"I":"am"},3],"bar":{"objects"}} 01:05 < kevlar_work> yeah, go's json is way nicer than its xml 01:05 < kevlar_work> which is fine with me 01:05 < kevlar_work> (though I had to use xml [boo hiss] so I went ahead and wrote xml.Marshal) 01:06 < Ginto8> well json seems way nicer than xml anyway 01:06 < kevlar_work> indeed. 01:06 < Ginto8> just looking at the basic premise of json on json.org 01:06 -!- thrashr888_ [~thrashr88@64.125.143.6] has joined #go-nuts 01:07 -!- franciscosouza [~francisco@187.105.26.180] has quit [Read error: Connection reset by peer] 01:08 < kevlar_work> like go, the entire definition fits on an easily consumable web page 01:08 < kevlar_work> I like <3 01:09 -!- thrashr888 [~thrashr88@64.125.143.6] has quit [Ping timeout: 260 seconds] 01:09 -!- franciscosouza [~francisco@187.105.26.180] has joined #go-nuts 01:16 -!- hargettp [~hargettp@pool-71-184-176-101.bstnma.east.verizon.net] has quit [Quit: Leaving...] 01:23 -!- adg changed the topic of #go-nuts to: http://golang.org/ | Bug tracker: http://code.google.com/p/go/issues/list | don't ask to ask - just ask 01:23 < Ginto8> Damn, looking at the json package now that I actually know what json is, it's quite impressive 01:23 -!- smw [~stephen@unaffiliated/smw] has quit [Ping timeout: 260 seconds] 01:25 < Ginto8> I mean, it allows complete and total serialization of just about any go data type, and that's just awesome :D 01:39 < kevlar_work> yep. 01:40 -!- pjacobs [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit [Quit: Leaving] 01:48 -!- miker2 [~miker2@pool-71-175-94-30.phlapa.fios.verizon.net] has joined #go-nuts 01:52 -!- chomp [~chomp@c-67-186-35-69.hsd1.pa.comcast.net] has quit [Read error: Connection reset by peer] 01:52 -!- chomp [~chomp@c-67-186-35-69.hsd1.pa.comcast.net] has joined #go-nuts 02:01 -!- ccc_ [~macroron@c-98-249-244-254.hsd1.fl.comcast.net] has quit [Quit: leaving] 02:02 -!- thrashr888 [~thrashr88@64.125.143.6] has quit [Quit: thrashr888] 02:14 < Ginto8> is there a binary json format, or is just text based? 02:15 < kevlar_work> only text 02:15 < Ginto8> hm ok 02:16 < kevlar_work> there isn't really a comparable binary format 02:16 < Ginto8> yeah 02:17 < Ginto8> it's probably possible to make a simple format, but I guess it wouldn't have quite the flexibility of json 02:17 < kevlar_work> sure it would, but it wouldn't be human editable 02:17 < kevlar_work> and it wouldn't save much space 02:17 < Ginto8> yeah 02:18 < kevlar_work> part of the advantage of binary formats is not having to send things like tag names over the wire 02:18 < kevlar_work> I'm actually not sure what gob does 02:18 < kevlar_work> I think it's tagged 02:19 < Ginto8> tag names make it so you don't actually need to know the order of how the data is put together 02:22 < Ginto8> gobs seem like a comparable binary alternative (for go at least) 02:24 -!- ericvh [~Adium@cpe-72-177-122-77.austin.res.rr.com] has quit [Quit: Leaving.] 02:24 < kevlar_work> yeah, they're great for go 02:24 < kevlar_work> but I haven't seen any implementations for other languages (though they shouldn't be too hard, especially for things like python) 02:25 -!- walker [~walker@drynwyn.deafcode.com] has joined #go-nuts 02:26 < walker> Howdy, folks. Is there a case-insensitive version of bytes.Index anywhere? 02:26 < walker> I have a 200MB mmap'd file (using syscall), and want to basically perform the equivalent of a case-insensitive grep() through it. 02:27 < walker> Err, grep, not grep() :D. 02:30 < walker> (And unfortunately, I can't upper case the whole file :D) 02:31 < str1ngs> use regex? 02:31 < walker> Go regexp on a 200MB block of memory? 02:32 < str1ngs> chunk it up. I would imagine you are trying to find some subset 02:33 < walker> Yes and no. The 200MB is actually the entire set of wikipedia titles, stored in the file, with <title>-<recordnum> mappings for where to find said title within the .bz2'd dumps. 02:34 < walker> So there are 6.3 million records (excluding all redirects, of which there are over 5 million !) 02:34 < walker> And my goal is to implement title search. 02:35 < walker> Whereas the titles themselves are case sensitive. :-/. (There's redirects purely for capitalization. And treating titles case-insensitively can get the wrong one.) 02:36 < chilts> walker: I think your solution involves a proper indexing engine, rather than a grep or any regex 02:36 < chilts> try Solr/Lucene or Xapian or any number of other things 02:36 < walker> chilts: Perhaps, but those defeat my goal: A single executable for running 'go' locally on my laptop. 02:37 < walker> err, for running 'wikipedia' 02:37 < chilts> well, you know your restrictions, but I think there are better ways of doing it :) 02:37 < chilts> go nuts (as it were) :) 02:38 < walker> Yes, there are, but my goal's to keep both memory and package/etc impact on end users as low as possible for this :D. 02:39 < Ginto8> walker, here's my suggestion: load it in, chunk it up, have goroutines going through individual chunks, then passing the results back through a channel 02:39 < Ginto8> or channels 02:39 < walker> That's a good idea, and is close to what I'm planning, but still means I need to do case-insensitivity myself. 02:40 < Ginto8> you can use a well 02:40 < Ginto8> sorry 02:40 < Ginto8> you can use bytes.Index on a strings.ToLower()'d or bytes.ToLower'd set 02:41 < chilts> walker: what about when people search with stemming, words being out of order, boolean operations (and others)? 02:41 < walker> Yeah, still basically requires 200MB uppercased. 02:42 < walker> chilts: Yeah, not my problem, it's not intended to be a full wikipedia replacement or anything, just something that you can use when you have no internet/etc. 02:42 < walker> So search for one word, get a list of all titles containing that word, then use browser search to find another word, etc. 02:43 < chilts> ok 02:43 < walker> It's not google, sure, and no text searching, it's just title caching. 02:43 -!- miker2 [~miker2@pool-71-175-94-30.phlapa.fios.verizon.net] has quit [Quit: Computer has gone to sleep.] 02:45 < chilts> walker: sounds like you could just have a file which was 'recordnumber: title' (x however many articles) and you just 'grep -i "theword" file | ...' and just get all the line numbers that way? it'd be pretty easy and pretty fast I'm sure 02:45 < chilts> sounds like that would work 02:46 < Ginto8> walker, load it in ToLower'd chunks, get the results as a chunk/line pair, load relevant chunks, and output the non-ToLower'd results 02:46 < walker> goroutine+slices question: If I create four goroutines each searching 1/4th of the file, and I do that by doing title_blob[0:max_len/4], title_blob[max_len/4:max_len/2], etc - those simply create byte references to title_blob, and won't create 50MB copies? 02:46 < Ginto8> correct 02:48 < walker> chilts: Hm, that might work. 02:49 < walker> (btw, this currently manages to serve all 6 million enwiki pages-articles using only 10MB of RAM. That's the goal for it.) 02:49 < walker> (And very fast page lookup, though I'll be fine with search taking a few seconds. the grep time (around 5-6 seconds) being my goal for search speed.) 02:52 < walker> A bytes.CaseInsensitiveIndex would be exactly the same as grep. Oh well :D. 02:53 < walker> Time to write one. 02:54 < Ginto8> and submit it :D 02:54 < walker> Eh, I already have all my stuff up on github. I'm too lazy to submit things all over the place :D. 02:54 < walker> http://www.carbonatedblog.com/2011/08/zombies-are-awesome-so-is-wikipedia.html 02:55 < chilts> walker: yeah, I figure grep is written in C and reads the file in chunks, so the memory usage won't be very high 02:57 < walker> chilts: right, though another reason I don't want to use grep is I eventually want this to also run on Windows :D. 02:57 < chilts> heh, ok, I'm out of options ... :) 03:06 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout: 612 seconds] 03:08 -!- chomp [~chomp@c-67-186-35-69.hsd1.pa.comcast.net] has quit [Quit: Leaving] 03:11 -!- replore [~replore@203.152.213.161.static.zoot.jp] has quit [Read error: Connection reset by peer] 03:11 -!- replore [~replore@203.152.213.161.static.zoot.jp] has joined #go-nuts 03:16 -!- kergoth [~kergoth@ip24-251-167-38.ph.ph.cox.net] has quit [Quit: Computer has gone to sleep.] 03:18 -!- smw [~stephen@unaffiliated/smw] has joined #go-nuts 03:19 -!- NiteRain [~NiteRain@c-98-254-236-21.hsd1.fl.comcast.net] has quit [Ping timeout: 245 seconds] 03:35 -!- replore [~replore@203.152.213.161.static.zoot.jp] has quit [Read error: Connection reset by peer] 03:35 -!- replore_ [~replore@203.152.213.161.static.zoot.jp] has joined #go-nuts 03:41 -!- stalled [~stalled@unaffiliated/stalled] has quit [Ping timeout: 252 seconds] 03:48 -!- chomp [~chomp@c-67-186-35-69.hsd1.pa.comcast.net] has joined #go-nuts 03:55 -!- qeed [~qeed@adsl-98-85-35-116.mco.bellsouth.net] has quit [Quit: Leaving] 03:59 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts 04:01 -!- niemeyer [~niemeyer@200-102-220-181.pltce701.dsl.brasiltelecom.net.br] has quit [Ping timeout: 260 seconds] 04:02 -!- thrashr888 [~thrashr88@adsl-99-115-81-123.dsl.pltn13.sbcglobal.net] has joined #go-nuts 04:02 -!- thrashr888 [~thrashr88@adsl-99-115-81-123.dsl.pltn13.sbcglobal.net] has quit [Client Quit] 04:06 -!- stalled [~stalled@unaffiliated/stalled] has joined #go-nuts 04:07 -!- walker [~walker@drynwyn.deafcode.com] has quit [Quit: leaving] 04:09 -!- guilty_spark [jsawczuk@ec2-184-73-19-135.compute-1.amazonaws.com] has quit [Ping timeout: 245 seconds] 04:12 -!- guilty_spark [jsawczuk@ec2-184-73-19-135.compute-1.amazonaws.com] has joined #go-nuts 04:38 -!- BizarreCake [~BizarreCa@IGLD-84-228-60-55.inter.net.il] has joined #go-nuts 04:40 -!- sinclair [~chatzilla@ip-118-90-5-90.xdsl.xnet.co.nz] has quit [Quit: ChatZilla 0.9.87 [Firefox 6.0.2/20110902133214]] 04:46 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts 04:47 -!- LightStar3000 [~lightstar@213.247.194.138] has joined #go-nuts 04:49 -!- dfr|SF [~dfr|work@nat/google/x-sljmtacahpuvnwdj] has quit [Remote host closed the connection] 04:49 -!- LightStar3000 [~lightstar@213.247.194.138] has quit [] 04:50 -!- LightStar3000 [~lightstar@62.231.28.6] has joined #go-nuts 04:51 -!- dfr|SF [~dfr|work@c-69-181-71-244.hsd1.ca.comcast.net] has joined #go-nuts 05:00 -!- foxen [~foxen@212.12.18.237] has joined #go-nuts 05:07 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts 05:10 -!- BizarreCake [~BizarreCa@IGLD-84-228-60-55.inter.net.il] has quit [Remote host closed the connection] 05:17 -!- vmil86 [~vmil86@88.118.38.213] has joined #go-nuts 05:23 -!- Loonacy [~Loonacy@c-67-172-248-248.hsd1.ut.comcast.net] has quit [Ping timeout: 240 seconds] 05:24 -!- Loonacy [~Loonacy@c-67-172-248-248.hsd1.ut.comcast.net] has joined #go-nuts 05:34 -!- hnry [50dd2595@gateway/web/freenode/ip.80.221.37.149] has joined #go-nuts 05:36 -!- jmhodges [u1436@gateway/web/irccloud.com/x-oijadaapfbnzusfh] has joined #go-nuts 05:37 < jmhodges> hey, anyone know how to abort a codereview on rietveld? all i see is "closed" in the Edit section 05:43 -!- sebastianskejoe [~sebastian@56345582.rev.stofanet.dk] has joined #go-nuts 05:45 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Remote host closed the connection] 05:46 -!- Tv__ [~Tv__@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 252 seconds] 05:57 -!- tjyang [~tjyang@c-71-201-81-103.hsd1.il.comcast.net] has quit [Read error: Connection reset by peer] 05:57 -!- tjyang [~tjyang@c-71-201-81-103.hsd1.il.comcast.net] has joined #go-nuts 05:58 -!- tjyang [~tjyang@c-71-201-81-103.hsd1.il.comcast.net] has quit [Read error: Connection reset by peer] 05:58 -!- tjyang [~tjyang@c-71-201-81-103.hsd1.il.comcast.net] has joined #go-nuts 06:04 -!- chomp [~chomp@c-67-186-35-69.hsd1.pa.comcast.net] has quit [Quit: Leaving] 06:04 -!- foxen [~foxen@212.12.18.237] has left #go-nuts [] 06:04 -!- hnry_ [50dd2595@gateway/web/freenode/ip.80.221.37.149] has joined #go-nuts 06:04 -!- hnry [50dd2595@gateway/web/freenode/ip.80.221.37.149] has quit [Ping timeout: 252 seconds] 06:06 <@adg> jmhodges: close works, also "hg change -d " 06:06 < jmhodges> adg: thanks! 06:11 -!- benjack [~benjack@bb116-15-174-30.singnet.com.sg] has joined #go-nuts 06:17 -!- mavar [~mavar@81-226-52-85-no179.tbcn.telia.com] has joined #go-nuts 06:18 < vsmatck> r60 is faster! 32% faster for my application which renders templates and serves web pages. 06:19 < vsmatck> Probably the escape analysis business? Anyways. I'm not complaining. :) 06:23 -!- franciscosouza [~francisco@187.105.26.180] has quit [Read error: Connection reset by peer] 06:23 -!- franciscosouza [~francisco@187.105.26.180] has joined #go-nuts 06:26 -!- remy_o [~babar@archlinux/developer/remy-o] has joined #go-nuts 06:26 < jmhodges> vsmatck: hooray :) 06:30 < jmhodges> vsmatck: what are the absolutes now? 06:32 < vsmatck> Hm. Absolutes? 06:35 < hnry_> My connection should be 2/2 Mbps but I download 500 kB/s and upload 2200 kB/s. Maybe I should call my ISP. 06:40 < vegai> vsmatck: nice. That should put go in a spitting range of gcc C in The Shootout 06:42 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 06:44 -!- LightStar3000 [~lightstar@62.231.28.6] has quit [] 06:45 <@adg> vsmatck: no escape analysis in r60 06:46 -!- LightStar3000 [~lightstar@62.231.28.6] has joined #go-nuts 06:49 < vsmatck> oh. Hm. I have no idea what it could be then. I probably won't try to figure it out. 06:52 < vegai> placebo? :) 06:53 < jmhodges> vsmatck: this might be a place for pprof! before and after 06:53 < vsmatck> heh. I just ran apache bench on it before/after update. So many parts to the application I have no idea what got sped up or why. 06:55 < vsmatck> The program may be faster, but it's faster at doing nothing useful for anyone. Sort-of kills my motivation to investigate. 06:55 -!- dfr|SF [~dfr|work@c-69-181-71-244.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 06:57 -!- tsung [~jon@175.180.141.57] has quit [Ping timeout: 260 seconds] 07:01 -!- mavar [~mavar@81-226-52-85-no179.tbcn.telia.com] has quit [Ping timeout: 260 seconds] 07:07 < vsmatck> Gotta rest up so I can go sit in a box for 9 hours tomorrow. 07:07 * vsmatck sleeps. 07:09 -!- remy_o [~babar@archlinux/developer/remy-o] has quit [Ping timeout: 258 seconds] 07:10 -!- magn3ts [~magn3ts@colemickens.unl.edu] has quit [Quit: Leaving] 07:14 -!- vsmatck [~smack@64-142-40-6.dsl.static.sonic.net] has left #go-nuts [] 07:29 -!- goraes [~goraes@189.103.177.124] has joined #go-nuts 07:30 < goraes> go'od morning. 07:31 -!- BigBlackDog [~BigBlackD@HSI-KBW-109-192-007-188.hsi6.kabel-badenwuerttemberg.de] has joined #go-nuts 07:33 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by peer] 07:35 -!- pyrhho [~pyrhho@027bf849.bb.sky.com] has joined #go-nuts 07:43 -!- ronnyy [~quassel@p4FF1C462.dip0.t-ipconnect.de] has joined #go-nuts 07:48 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|] 07:51 -!- KBme [~KBme@2001:470:cabe:666:666:666:666:666] has quit [Ping timeout: 260 seconds] 07:52 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has joined #go-nuts 07:52 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has joined #go-nuts 07:53 -!- KBme [~KBme@2001:470:cabe:666:666:666:666:666] has joined #go-nuts 07:57 -!- bobbysworld [~bobbyswor@99-20-89-113.lightspeed.austtx.sbcglobal.net] has joined #go-nuts 07:59 -!- valentin [~valentin@darkstar2.fullsix.com] has joined #go-nuts 08:02 -!- gobeginner [~nwood@84.92.0.53] has joined #go-nuts 08:04 -!- napsy [~luka@193.2.66.6] has joined #go-nuts 08:11 -!- yogib [~yogib@131.234.59.64] has joined #go-nuts 08:11 -!- hnry_ [50dd2595@gateway/web/freenode/ip.80.221.37.149] has quit [Quit: Page closed] 08:19 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 08:39 -!- yogib [~yogib@131.234.59.64] has quit [Ping timeout: 276 seconds] 09:02 -!- hargettp [~hargettp@pool-71-184-176-101.bstnma.east.verizon.net] has joined #go-nuts 09:17 -!- marcux [~marco@189.121.104.181] has joined #go-nuts 09:18 -!- lmnop [none@50-44-67-1.bltn.il.frontiernet.net] has quit [Read error: Connection reset by peer] 09:20 -!- goraes [~goraes@189.103.177.124] has quit [Ping timeout: 250 seconds] 09:20 -!- lmnop [none@50-44-67-1.bltn.il.frontiernet.net] has joined #go-nuts 09:20 -!- replore_ [~replore@203.152.213.161.static.zoot.jp] has quit [Remote host closed the connection] 09:22 -!- marcux [~marco@189.121.104.181] has quit [Client Quit] 09:22 -!- larva [~larvanitr@ec2-46-51-171-183.eu-west-1.compute.amazonaws.com] has joined #go-nuts 09:22 -!- marcux [~marco@189.121.104.181] has joined #go-nuts 09:24 -!- tux21b [~christoph@cpe90-146-162-55.liwest.at] has quit [Remote host closed the connection] 09:26 -!- marcux [~marco@189.121.104.181] has quit [Client Quit] 09:27 -!- marcux [~marco@189.121.104.181] has joined #go-nuts 09:31 -!- pbgc [~pbgc@bl20-178-21.dsl.telepac.pt] has joined #go-nuts 09:34 -!- Soultaker [~Soultaker@hell.student.utwente.nl] has quit [Ping timeout: 245 seconds] 09:39 -!- TimKack [~tkack@213.208.236.186] has joined #go-nuts 09:40 -!- preflex_ [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts 09:40 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping timeout: 246 seconds] 09:40 -!- marcux [~marco@189.121.104.181] has quit [Quit: marcux] 10:00 -!- ronnyy [~quassel@p4FF1C462.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 10:01 < jnwhiteh> hrm, did the shorter panic dumps not make it into r60? O.o 10:05 -!- dmg [~dmg@ip56513def.adsl-surfen.hetnet.nl] has quit [Ping timeout: 240 seconds] 10:05 -!- dmg [~dmg@ip56513def.adsl-surfen.hetnet.nl] has joined #go-nuts 10:06 -!- Bigbear1 [~Cody@res6-185.lakeheadu.ca] has joined #go-nuts 10:07 -!- kamaji [~kamaji@handtomouse.demon.co.uk] has quit [Ping timeout: 252 seconds] 10:10 -!- dmg [~dmg@ip56513def.adsl-surfen.hetnet.nl] has quit [Ping timeout: 252 seconds] 10:11 -!- dmg [~dmg@ip56513def.adsl-surfen.hetnet.nl] has joined #go-nuts 10:15 -!- Bigbear1 [~Cody@res6-185.lakeheadu.ca] has quit [Ping timeout: 260 seconds] 10:23 -!- Bigbear1 [~Cody@res6-185.lakeheadu.ca] has joined #go-nuts 10:24 -!- franciscosouza [~francisco@187.105.26.180] has quit [Read error: Connection reset by peer] 10:26 -!- iXeno [~ixeno@106.80-203-229.nextgentel.com] has joined #go-nuts 10:26 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.5] 10:27 -!- avelino [~avelino@unaffiliated/avelino] has joined #go-nuts 10:28 -!- iXeno_ [~ixeno@106.80-203-229.nextgentel.com] has quit [Ping timeout: 260 seconds] 10:31 -!- marcux [~marco@189.121.104.181] has joined #go-nuts 10:32 -!- bobbysworld [~bobbyswor@99-20-89-113.lightspeed.austtx.sbcglobal.net] has quit [Quit: bobbysworld] 10:33 -!- hargettp [~hargettp@pool-71-184-176-101.bstnma.east.verizon.net] has quit [Quit: Leaving...] 10:35 -!- hargettp [~hargettp@pool-71-184-176-101.bstnma.east.verizon.net] has joined #go-nuts 10:37 -!- marcux [~marco@189.121.104.181] has left #go-nuts [] 10:49 -!- tobik [~tobik@p5DC593C0.dip.t-dialin.net] has joined #go-nuts 10:49 -!- Bigbear1 [~Cody@res6-185.lakeheadu.ca] has quit [Read error: Connection reset by peer] 10:52 -!- hargettp [~hargettp@pool-71-184-176-101.bstnma.east.verizon.net] has quit [Quit: Leaving...] 10:53 -!- noam [~noam@87.69.42.61.cable.012.net.il] has quit [Ping timeout: 276 seconds] 10:56 -!- nekoh [~nekoh@dslb-178-004-079-062.pools.arcor-ip.net] has joined #go-nuts 10:56 -!- noam [~noam@87.69.42.61.cable.012.net.il] has joined #go-nuts 11:03 -!- erus` [~chatzilla@mailgate.ips-international.com] has joined #go-nuts 11:08 -!- benjack [~benjack@bb116-15-174-30.singnet.com.sg] has quit [Quit: Leaving.] 11:12 -!- sebastianskejoe [~sebastian@56345582.rev.stofanet.dk] has quit [Quit: Lost terminal] 11:14 -!- sacho [~sacho@82.137.64.217] has quit [Ping timeout: 260 seconds] 11:17 -!- marcux [~marco@189.121.104.181] has joined #go-nuts 11:20 -!- NiteRain [~NiteRain@c-98-254-236-21.hsd1.fl.comcast.net] has joined #go-nuts 11:20 -!- schilly [~schilly@boxen.math.washington.edu] has quit [Ping timeout: 246 seconds] 11:21 -!- BizarreCake [~BizarreCa@IGLD-84-228-60-55.inter.net.il] has joined #go-nuts 11:22 -!- schilly [~schilly@boxen.math.washington.edu] has joined #go-nuts 11:22 -!- tux21b [~christoph@cpe90-146-162-55.liwest.at] has joined #go-nuts 11:24 -!- marcux [~marco@189.121.104.181] has quit [Quit: marcux] 11:33 -!- replore [~replore@ntkngw133234.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #go-nuts 11:38 -!- miker2 [~miker2@pool-71-175-94-30.phlapa.fios.verizon.net] has joined #go-nuts 11:45 -!- alehorst [~alehorst@201.22.30.159.dynamic.adsl.gvt.net.br] has joined #go-nuts 11:50 -!- flaguy48 [~gmallard@user-0c6s350.cable.mindspring.com] has left #go-nuts [] 11:50 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 260 seconds] 11:51 -!- fvbommel [~fvbommel_@86.86.15.250] has joined #go-nuts 11:53 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has quit [Ping timeout: 250 seconds] 11:57 < uriel> http://news.ycombinator.com/item?id=2977449 12:05 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has joined #go-nuts 12:05 < fossil-njv> is AcquireSocket not allowed in init() ? getting "throw: init rescheduling" 12:10 -!- Argue [~Argue@112.201.172.5] has joined #go-nuts 12:12 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 12:17 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 12:18 < exch> Remarkable what a speedup some simple padding can yield. var a [][3]uint16 vs. var a [][4]uint16. Even if index 3 is never used, it's still worth adding. Benchmarks bring time down from 105 ns/op to 60 ns/op just for that change 12:22 -!- franciscosouza [~francisco@187.105.26.180] has joined #go-nuts 12:23 -!- franciscosouza [~francisco@187.105.26.180] has quit [Client Quit] 12:28 < exch> I knowword alignment works, but didn't expect quite such a dramatic increase in performance 12:31 -!- taruti [taruti@ultra.violetti.org] has quit [Ping timeout: 258 seconds] 12:38 -!- schilly [~schilly@boxen.math.washington.edu] has quit [Ping timeout: 240 seconds] 12:38 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts 12:44 -!- ericvh [~Adium@32.97.110.64] has joined #go-nuts 12:46 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 12:52 -!- moraes [~moraes@189.103.177.124] has joined #go-nuts 13:02 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts 13:02 -!- meling [~meling@pico.ux.uis.no] has quit [Remote host closed the connection] 13:03 -!- meling [~meling@pico.ux.uis.no] has joined #go-nuts 13:10 -!- niemeyer [~niemeyer@200-102-220-181.pltce701.dsl.brasiltelecom.net.br] has joined #go-nuts 13:10 < smw> exch, what are you doing? 13:14 -!- cr3 [~cr3@64.34.151.178] has joined #go-nuts 13:15 < cr3> what does the word "iota" stand for? 13:16 < zozoR> is that itch scratching video up on the net yey? 13:16 < zozoR> yet 13:17 < nsf> cr3: greek letter 13:17 -!- hutuworm [~Administr@74.82.1.19] has joined #go-nuts 13:17 < nsf> http://en.wikipedia.org/wiki/Iota 13:19 < tux21b> "it has a value of 10" isnt quite right for go ;) 13:20 < erus`> The name "iota" denotes a pseudo-constant to represent successive integers in the Go programming language. 13:22 -!- Project_2501 [~progettin@82.84.78.83] has joined #go-nuts 13:22 < jessta> itoa, "a very small quantity" 13:24 -!- LightStar3000 [~lightstar@62.231.28.6] has quit [] 13:31 < exch> smw: I'm writing a 16-bit register VM with a custom memory allocator. It kinda needs every bit of performance squeezed out of it 13:31 -!- mattn_jp [~mattn@112-68-95-181f1.hyg1.eonet.ne.jp] has joined #go-nuts 13:32 < smw> exch, cool 13:38 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has joined #go-nuts 13:40 -!- hutuworm1 [~Administr@115.195.81.241] has joined #go-nuts 13:41 < tux21b> moraes, it is possible to emit multiple flash messages in gorilla/session, isn't it? in my opinion, the name "SetFlash()" is a bit misleading. Imho, "AddFlash()" or just "Flash()" might be better 13:42 -!- hutuworm [~Administr@74.82.1.19] has quit [Ping timeout: 260 seconds] 13:43 < moraes> tux21b, indeed. 13:43 < moraes> it it is Flash(), getting should be GetFlashes() (it is Flashes() now) 13:44 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.5] 13:45 < moraes> thought about AddFlash(). but Flash() / GetFlashes() sounds ok, now. 13:45 < tux21b> from effective go: "... but it's neither idiomatic nor necessary to put Get into the getter's name" 13:45 < tux21b> :) 13:45 -!- napsy [~luka@193.2.66.6] has quit [Ping timeout: 260 seconds] 13:46 < tux21b> but of course, "Flash()" and "Flashes()" might be confusing too 13:46 < moraes> yep i know 13:46 < tux21b> thats not easy 0o 13:46 < moraes> i've been breaking that rule 13:46 -!- BizarreCake [~BizarreCa@IGLD-84-228-60-55.inter.net.il] has quit [Remote host closed the connection] 13:47 < moraes> mux doesn't use Set*() because it doesn't have any getters so removing all Set prefixes reduced sizes 13:47 < moraes> also uriel approved it 13:48 < moraes> there're some Go rules that don't work well. 13:48 < moraes> like interface names. 13:48 < moraes> s/rules/conventions 13:52 -!- xyproto [~alexander@77.40.159.131] has quit [Quit: WeeChat 0.3.5] 13:57 -!- mattn_jp [~mattn@112-68-95-181f1.hyg1.eonet.ne.jp] has quit [Quit: Ex-Chat] 14:00 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat] 14:02 < reggna> Is it possible to do something like #define/#ifdef/etc in Go? 14:03 -!- homa_rano [~ede@30-51-226.dynamic.csail.mit.edu] has quit [Remote host closed the connection] 14:06 < valentin> definitly not 14:07 < uriel> 13:48 < moraes> like interface names. 14:08 < uriel> reggna: you could use the C preprocessor with Go, but why on earth would anyone want to do that?!?! 14:08 < uriel> preprocessors are evil 14:08 < uriel> 13:48 < moraes> like interface names. 14:08 < uriel> moraes: what do you mean by this? 14:08 < uriel> w/in88 14:08 < moraes> the -er sufix convention "doesn't scale well" 14:09 -!- adlan [~adlan@110.159.236.17] has joined #go-nuts 14:10 < moraes> should have been a inverted exclamation mark, e.g.: "Encoder¡" 14:11 < moraes> Encoder™ 14:11 < moraes> make use of unicode support in identifiers 14:12 < moraes> Encoder★ 14:13 < moraes> ok, i'll be quiet now. 14:13 -!- CoverSlide [~richard@216.2.249.50] has joined #go-nuts 14:15 -!- kergoth [~kergoth@ip24-251-167-38.ph.ph.cox.net] has joined #go-nuts 14:16 < tux21b> maybe gofmt should start replacing iota with ɩ too :D 14:20 -!- Tv__ [~Tv__@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts 14:35 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has joined #go-nuts 14:35 -!- ronnyy [~quassel@p4FF1C462.dip0.t-ipconnect.de] has joined #go-nuts 14:36 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 14:40 -!- tobik [~tobik@p5DC593C0.dip.t-dialin.net] has quit [Ping timeout: 252 seconds] 14:46 -!- dmg [~dmg@ip56513def.adsl-surfen.hetnet.nl] has quit [Read error: Connection reset by peer] 14:51 < smcquay> f2f: thanks for looking at my code; I can see how if that's the bottle neck how it would scale better with more 'real-world' workloads (i.e. not blocking on random float generation). 14:56 < mkb218> why not ☃? 14:56 < mkb218> oh, the snowman ate my question mark. he must have been hungry 14:57 -!- TheMue [~FMueller@p5DDF4B19.dip.t-dialin.net] has joined #go-nuts 14:58 < jessta> moraes: the -er convention only really applies to single method interfaces 14:58 -!- hutuworm1 [~Administr@115.195.81.241] has quit [Quit: Leaving.] 14:58 < f2f> smcquay: happy to help :) 15:00 < f2f> you could preallocate a sufficient amount of pseudorandoms and serve them from a separate goroutine if you want to eliminate the bottleneck. it won't be perfect, and you can't use wallclock time to measure the program though 15:02 < moraes> ok. 15:03 < mpl> mkb218: your question mark looks fine here. 15:05 < uriel> moraes: I'm still not sure what you mean by 'doesn't scale well' 15:17 -!- jbooth1 [~jay@209.249.216.2] has joined #go-nuts 15:18 -!- dlowe [dlowe@nat/google/x-fjdbyrhjejjcsgad] has joined #go-nuts 15:18 < mkb218> how are projects added to the dashboard? 15:21 -!- ronnyy [~quassel@p4FF1C462.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 15:22 < valentin> uriel : in some cases, following the convention is awkward 15:23 < valentin> e.g. : how do I name an interface with a single function named Filter ? 15:23 < mpl> Filterer! 15:24 < valentin> => awkward indeed 15:24 < mpl> no need to think, method + -er :) 15:25 < mpl> one would argue the func itself should have been named better in the first place ;P 15:25 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 15:26 < mpl> so maybe that's the new convention. name your func while keeping in mind the name they would spawn for an interface ;) 15:26 < valentin> how would i the action of filtering whithout using the verb filter ? 15:26 < jessta> Filterable 15:27 < mpl> jessta: that would be for the interface, right? 15:27 -!- noodles775 [~michael@canonical/launchpad/noodles775] has quit [Quit: leaving] 15:27 < mkb218> it's the 21st century, so just drop the 'e' 15:27 < mkb218> Filtr! 15:29 -!- Bigbear1 [~Cody@res6-185.lakeheadu.ca] has joined #go-nuts 15:29 < mpl> F!l73R 15:30 < mpl> an alternative would be omgFilterLolKthxbai! 15:33 -!- mrsrikanth [~mrsrikant@59.92.44.56] has joined #go-nuts 15:34 -!- Tv__ [~Tv__@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 260 seconds] 15:36 < valentin> don't be rude 15:36 < valentin> omgFilterLolKthxbaiPlease seems more convenient 15:38 -!- tobik [~tobik@p5DC593C0.dip.t-dialin.net] has joined #go-nuts 15:40 < mkb218> but go is an imperative language 15:40 < moraes> mkb218, for the categorized list manually using the form; or goinstall pings the dashboard when stuff is installed 15:40 < moraes> valentin, yeah exactly 15:41 < moraes> Renderer 15:41 < moraes> Rendererer 15:41 < moraes> oh no the method is Render() 15:41 < moraes> so that'd work 15:42 < mkb218> and if the method is Rend() the interface is Render 15:42 < mpl> moraes: as jessta said Renderable for the interface sounds pretty ok. 15:43 < mkb218> hey there's a form. i have a huge blind spot 15:46 < moraes> uriel, i don't like that "Router" sounds interfac-y because of the convention, for example 15:47 < moraes> it doesn't scale because not all words fit and some words become interfac-y. 15:47 < valentin> agreed 15:51 < moraes> i'll create the "GoGoCo Seal of Approval" 15:51 < moraes> Good Go Conventions 15:52 < jessta> moraes: the convention isn't about differentiating between types and interfaces 15:52 < moraes> btw, is'nt it sad that there's no country with tld .go ? =( 15:53 -!- TimKack [~tkack@213.208.236.186] has quit [Quit: TimKack] 15:54 < moraes> jessta, it is about differentiating interfaces from the rest imo 15:54 -!- erus` [~chatzilla@mailgate.ips-international.com] has quit [Quit: ChatZilla 0.9.87 [Firefox 6.0.2/20110902133214]] 15:55 -!- dfr|SF [~dfr|work@c-69-181-71-244.hsd1.ca.comcast.net] has joined #go-nuts 15:57 < jessta> moraes: sort.Interface, hash.Hash, http.File, http.FileSystem 15:57 -!- ShadowIce [~pyoro@HSI-KBW-109-193-121-123.hsi7.kabel-badenwuerttemberg.de] has joined #go-nuts 15:57 -!- ShadowIce [~pyoro@HSI-KBW-109-193-121-123.hsi7.kabel-badenwuerttemberg.de] has quit [Changing host] 15:57 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 15:58 -!- dfr|SF [~dfr|work@c-69-181-71-244.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 15:58 < moraes> cipher.Block 15:58 < jessta> net.Conn 15:58 < mpl> moraes: just wait long enough for Google to buy/build their own island and declare it a country. 15:58 < moraes> uh? 15:58 < mpl> moraes: about .go 15:59 < moraes> ah. :) 15:59 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit [Quit: Leaving] 16:04 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has joined #go-nuts 16:19 -!- Soultaker [~Soultaker@hell.student.utwente.nl] has joined #go-nuts 16:24 < mpl> bleh, there's "xml" writteng everywhere in the background of the GOTO Aarhus page :/ 16:25 < smcquay> f2f: I'm also rethinking the problem; I have a feeling that it might not be as mathematically rigorous, but just as accurate to just define a resolution and subdivide the domain according to goroutine. I'll mess with that and report :) 16:30 -!- dfr|SF [~dfr|work@c-69-181-71-244.hsd1.ca.comcast.net] has joined #go-nuts 16:33 < moraes> i added some testimonials to http://gorilla-web.appspot.com/ 16:33 < moraes> :P 16:36 -!- photron [~photron@port-92-201-32-5.dynamic.qsc.de] has joined #go-nuts 16:38 -!- dfr|SF [~dfr|work@c-69-181-71-244.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 16:38 -!- dfr|SF [~dfr|work@nat/google/x-rjjxnwfpbslusgak] has joined #go-nuts 16:39 < mpl> moraes: anonymous coward got it all wrong, next is of course goatse. 16:40 < valentin> :) 16:41 < mpl> bonus internet points for anyone who can think of a relevant and useful go project called goatse. 16:41 < zozoR> XD 16:42 < valentin> with goatse, writing printer drivers (or any random non-fun-software-project) is not a pain in the ass anymore 16:42 < scyth> anyone interested in spdy implementation and usage other than http? 16:42 < kevlar_work> The Go Artificial Terrain Simulation Explorer. 16:43 < kevlar_work> (this reminds me of #acro. I miss that game) 16:44 -!- thrashr888 [~thrashr88@64.125.143.6] has joined #go-nuts 16:44 < mpl> kevlar_work: I don't want to know what the "artificial terrain" is. 16:46 < valentin> Go Automatic Translation Service Exporter 16:46 < moraes> goatse (to be read "Go At SE") is the Sweden Golang User Group 16:48 < valentin> haha 16:49 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit [Ping timeout: 276 seconds] 16:50 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has quit [Quit: Ex-Chat] 16:52 -!- remy_o [~babar@archlinux/developer/remy-o] has joined #go-nuts 16:55 -!- Argue [~Argue@112.201.172.5] has quit [Quit: Leaving] 16:56 -!- Project_2502 [~progettin@82.84.97.39] has joined #go-nuts 16:56 -!- Project_2501 [~progettin@82.84.78.83] has quit [Disconnected by services] 16:57 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 260 seconds] 16:57 -!- pyrhho [~pyrhho@027bf849.bb.sky.com] has quit [Ping timeout: 252 seconds] 16:57 -!- erus` [~chatzilla@cpc2-gill2-0-0-cust701.basl.cable.virginmedia.com] has joined #go-nuts 17:02 -!- Venom_X [~pjacobs@66.54.185.130] has joined #go-nuts 17:05 < exch> lol 17:08 * exch put a sneaky exploit route in his 16 bit VM 17:08 < exch> No attempt is made to verify the program counter is still in excutable space. One could arbitrarily make it jump into data space and execute shit 17:09 -!- smw [~stephen@unaffiliated/smw] has quit [Ping timeout: 252 seconds] 17:09 < kevlar_work> as long as that's a deliberate decision and not an omission, I consider that perfectly fine :) 17:09 < kevlar_work> how else do people write ldso for your VM? ;-) 17:10 < exch> heh yes it is done deliberately 17:12 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 17:13 -!- clr_ [~colin@2620:0:2820:a8:224:d7ff:fe3e:71b4] has joined #go-nuts 17:23 -!- ccc_ [~macroron@c-98-249-244-254.hsd1.fl.comcast.net] has joined #go-nuts 17:28 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection] 17:28 < f2f> what compels newbies to jump to reflection as the first thing to learn in Go? i guess they must be out of anything normal to write :) 17:29 -!- kergoth__ [~kergoth@ip24-251-167-38.ph.ph.cox.net] has joined #go-nuts 17:31 -!- miker2 [~miker2@pool-71-175-94-30.phlapa.fios.verizon.net] has quit [Quit: Computer has gone to sleep.] 17:32 < jessta> f2f: they are coming from dynamic languages 17:33 < jessta> and if you want to write a generic "framework" you need to use reflection 17:35 < f2f> i'd rather use introspection. that way i can decide that i don't really need to write a framework ;) 17:37 -!- ericvh [~Adium@32.97.110.64] has quit [Quit: Leaving.] 17:38 < jessta> yeah, but the fame you can get from writing a "framework" is far larger than writing anything else 17:38 < jessta> writing a platform that people use means people need you. 17:42 -!- lobo_d_b [~lobo@unaffiliated/juan--d--b/x-561435] has joined #go-nuts 17:44 -!- Bigbear1 [~Cody@res6-185.lakeheadu.ca] has quit [Read error: Connection reset by peer] 17:45 -!- Fish- [~Fish@9fans.fr] has joined #go-nuts 17:45 < f2f> true 17:46 -!- c00w [~colin@2620:0:2820:a8:224:d7ff:fe3e:71b4] has quit [Quit: Ex-Chat] 17:52 -!- qeed [~qeed@adsl-74-235-197-174.mco.bellsouth.net] has joined #go-nuts 17:52 < zozoR> and emails for life :P 17:53 < nsf> jessta: fame is the worst goal to pursue 17:53 < nsf> :D 17:53 < qeed> youtube whores 17:53 < moraes> free tickets to conferences in vegas is the thing to pursue. 17:54 < moraes> hey, one of my first days here in this channel and i was suggested to use reflection. 17:54 < nsf> fuck that shit, absolute knowledge is a good thing to pursue 17:54 < nsf> :D 17:54 < zozoR> :D 17:54 < zozoR> no such thing as absolute knowledge though :D 17:54 < nsf> who cares 17:55 < nsf> damn, this game hooked me up 17:55 < nsf> http://store.steampowered.com/app/17710/ 17:55 < nsf> :( 17:56 -!- dfr|SF [~dfr|work@nat/google/x-rjjxnwfpbslusgak] has quit [Ping timeout: 276 seconds] 17:57 < zozoR> nsf, are you from russia? 17:57 < nsf> yes, I am 17:57 < zozoR> do you press a button on your keyboard to switch to latin letters? 17:57 -!- ancientlore [~ancientlo@ip68-110-227-91.dc.dc.cox.net] has joined #go-nuts 17:58 < nsf> two keys, I use ctrl+shift 17:58 < zozoR> awesome, thanks :D 17:58 < nsf> some people prefer to bind left control and use caps as control 17:58 < nsf> or caps for switching layouts 17:59 < nsf> but I think most people use alt+shift, since it's default on windows 17:59 -!- franciscosouza [~francisco@201.7.186.67] has joined #go-nuts 17:59 < nsf> not sure from where my ctrl+shift habit comes 18:00 < zozoR> ^^ 18:01 < nsf> also input on x11 is fucked up 18:01 < nsf> for example I can't do the switch, leave my key on shift on start typing capital letters 18:01 < nsf> and ctrl+shift+.. hotkeys are impossible :D 18:01 < nsf> I think it's kind of silly 18:02 < zozoR> x11 encourages you to use latin then :P 18:02 -!- Bigbear1 [~Cody@res6-185.lakeheadu.ca] has joined #go-nuts 18:02 < nsf> no, it's ok to use both layouts of course 18:02 < nsf> but it could be better 18:02 < nsf> I know that this a known issue 18:02 < nsf> there were some discussions on the x11 mailing lists 18:02 < nsf> about that 18:03 < nsf> but.. it is as it is 18:04 < nsf> brb 18:04 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.5] 18:07 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 18:09 -!- mrsrikanth [~mrsrikant@59.92.44.56] has quit [Remote host closed the connection] 18:09 < zozoR> well, i kinda want to start learning russian one of these days :D 18:10 < nsf> hehe, good luck 18:10 < zozoR> :D 18:10 -!- tobik [~tobik@p5DC593C0.dip.t-dialin.net] has quit [Ping timeout: 252 seconds] 18:11 < f2f> пусть всегда будет солнце! 18:12 < f2f> sorry, wrong chan ;) 18:13 -!- franciscosouza [~francisco@201.7.186.67] has quit [Quit: franciscosouza] 18:24 -!- meling [~meling@pico.ux.uis.no] has quit [Remote host closed the connection] 18:25 -!- smw [~stephen@unaffiliated/smw] has joined #go-nuts 18:26 -!- tobik [~tobik@p5DC593C0.dip.t-dialin.net] has joined #go-nuts 18:28 -!- franciscosouza [~francisco@201.7.186.67] has joined #go-nuts 18:32 -!- aho [~nya@fuld-590c7dc3.pool.mediaWays.net] has joined #go-nuts 18:40 -!- ccc_ [~macroron@c-98-249-244-254.hsd1.fl.comcast.net] has quit [Quit: leaving] 18:41 -!- ako [~nya@fuld-590c6de4.pool.mediaWays.net] has joined #go-nuts 18:42 -!- itrekkie [c0373727@gateway/web/freenode/ip.192.55.55.39] has joined #go-nuts 18:43 -!- aho [~nya@fuld-590c7dc3.pool.mediaWays.net] has quit [Ping timeout: 260 seconds] 18:49 -!- ericvh [~Adium@cpe-72-177-122-77.austin.res.rr.com] has joined #go-nuts 18:54 < lobo_d_b> any good page to learn go lang ??, blogs, screencasts, good resources ? :P 18:54 < kergoth__> http://golang.org/ 18:55 < f2f> does go have documentation as part of the language? 18:55 < smw> f2f, godoc 18:56 < smw> the entire golang site is actually a copy of godoc running 18:56 < smw> lol 18:56 -!- miker2 [~miker2@pool-71-175-94-30.phlapa.fios.verizon.net] has joined #go-nuts 18:56 < f2f> shht, don't tell the reddits ;) 18:56 * f2f is amusing himself with the Go discussion on /r/programming 18:56 < smw> I keep hearing about reddit... is it a good site? 18:57 < f2f> http://www.reddit.com/r/programming/comments/k9ud6/comparing_go_with_lua/ 18:57 < f2f> it's a cesspool in a goldmine :) 18:57 < erus`> smw: no its full of stupid idiots 18:57 < erus`> but i still go there everyday 18:57 < smw> ... 18:57 < lobo_d_b> xD 18:57 < smw> erus`, compaired to slashdot. Smarter, dumber, the same :-P 18:58 < erus`> overused memes, overly PC pricks, and more - come to reddit 18:58 < f2f> in terms of programming -- dumber than slashdot 18:58 < erus`> dumber crowd 18:58 < smw> ok 18:58 -!- CoverSlide [~richard@216.2.249.50] has quit [Read error: Connection reset by peer] 18:58 < smw> f2f link to stupid go discussion? 18:58 -!- dfr|SF [~dfr|work@nat/google/x-wbbeaqcxatkuybyy] has joined #go-nuts 18:58 -!- gatestone [~gatestone@a91-156-209-75.elisa-laajakaista.fi] has joined #go-nuts 18:59 < smw> f2f, nm, just saw you posted 18:59 < smw> not sure how I missed it 18:59 -!- tjyang [~tjyang@c-71-201-81-103.hsd1.il.comcast.net] has quit [Ping timeout: 276 seconds] 19:00 -!- tjyang [~tjyang@c-71-201-81-103.hsd1.il.comcast.net] has joined #go-nuts 19:00 -!- fabled [~fabled@87-100-230-89.bb.dnainternet.fi] has joined #go-nuts 19:00 -!- dfr|SF [~dfr|work@nat/google/x-wbbeaqcxatkuybyy] has quit [Remote host closed the connection] 19:01 -!- dfr|SF [dfr|work@nat/google/x-upneqyxyeghqqguo] has joined #go-nuts 19:02 -!- erus` [~chatzilla@cpc2-gill2-0-0-cust701.basl.cable.virginmedia.com] has quit [Quit: ChatZilla 0.9.87 [Firefox 6.0.2/20110902133214]] 19:02 < f2f> it's formal language theory vs trolls in that thread. 'but why have (result, error) when you can use the X construct from another language to represent a mutually exclusive err/result pair? 19:02 < f2f> well, in some cases you may have both error and a result' 19:02 < f2f> and i'll get shot down, i'm sure 19:03 < |Craig|> don't readers and writers use both errors and results all the time? 19:05 < Namegduf> Yes 19:05 < f2f> 0xabadc0da just needs to say "laughable, man" to completely fulfill my impression of him: http://www.youtube.com/watch?v=O3_ww66EeN8 19:07 -!- erus` [~chatzilla@cpc2-gill2-0-0-cust701.basl.cable.virginmedia.com] has joined #go-nuts 19:08 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Read error: Connection reset by peer] 19:12 -!- tobik [~tobik@p5DC593C0.dip.t-dialin.net] has quit [Ping timeout: 260 seconds] 19:13 < nsf> .йгше 19:14 < nsf> oops 19:14 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.5] 19:15 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 19:16 -!- jtux_ [~joerg@ip-78-94-89-50.unitymediagroup.de] has joined #go-nuts 19:16 < ancientlore> sort of dumb question - with the new goinstall that looks at tags/branches like go.r59 - does it matter in git if it's a tag or branch? 19:17 -!- valentin [~valentin@darkstar2.fullsix.com] has quit [Remote host closed the connection] 19:22 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts 19:22 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Client Quit] 19:22 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts 19:23 < mpl> ancientlore: git? they also have a git repo now? 19:23 < mpl> oh you mean for 3rd party packages 19:23 < ancientlore> yes 19:23 < ancientlore> so I have to change one to work for r60, but I want to make sure you can goinstall the r59 version 19:24 -!- jtux_ [~joerg@ip-78-94-89-50.unitymediagroup.de] has quit [Quit: Ex-Chat] 19:24 -!- tobik [~tobik@p4FCBFF0D.dip.t-dialin.net] has joined #go-nuts 19:24 < lobo_d_b> r60 is development version ? 19:25 < f2f> no, it's release 19:25 < f2f> based on the latest weekly that worked well. it's going to be static for a month, then r61 will come out 19:25 < lobo_d_b> mmm 19:25 -!- fabled [~fabled@87-100-230-89.bb.dnainternet.fi] has quit [Quit: Ex-Chat] 19:26 < lobo_d_b> lets see 19:26 < ancientlore> this was the goinstall release note for r60: Goinstall now uses a new tag selection scheme. When downloading or updating, goinstall looks for a tag or branch with the "go." prefix that corresponds to the local Go version. For Go release.r58 it looks for go.r58. For weekly.2011-06-03 it looks for go.weekly.2011-06-03. If the specific go.X tag or branch is not found, it chooses the closest earlier version. If an appropriate tag or bran 19:28 < ancientlore> I am not sure whether anyone has tried it yet 19:29 -!- ayo [~nya@fuld-590c6f72.pool.mediaWays.net] has joined #go-nuts 19:31 -!- gatestone [~gatestone@a91-156-209-75.elisa-laajakaista.fi] has quit [Quit: Colloquy for iPod touch - http://colloquy.mobi] 19:32 < lobo_d_b> mmm, I was going to download it by hand, but did a pacman 19:32 < lobo_d_b> -Syu and there it is 19:32 -!- ako [~nya@fuld-590c6de4.pool.mediaWays.net] has quit [Ping timeout: 258 seconds] 19:32 < lobo_d_b> go-1:r60-1 19:34 -!- serialhex [~quassel@99-101-148-183.lightspeed.wepbfl.sbcglobal.net] has quit [Read error: Connection reset by peer] 19:35 -!- lobo_d_b [~lobo@unaffiliated/juan--d--b/x-561435] has quit [Quit: Reconnecting] 19:35 < tux21b> is anyone here who switched from gvim to sublime? i am still not sure if thats what i want... 19:36 -!- lobo_d_b [~lobo@unaffiliated/juan--d--b/x-561435] has joined #go-nuts 19:37 -!- gobeginner [~nwood@84.92.0.53] has left #go-nuts [] 19:37 < ancientlore> free to try, I use sublime now. but I don't use the vi emulation 19:40 < tux21b> yes, those emacs like control sequences are a little bit faster than switching modes. thats actually a big plus, i just need to get used to it again ;) 19:40 < nsf> no, I disagree 19:40 < nsf> well, it sounds like a holywar though 19:40 < nsf> I do editting much faster in vim than in emacs :D 19:40 < nsf> modes rock 19:41 < Tonnerre> Hm, was there something like A instanceof B in Go? 19:41 < nsf> I have a simple example actually :D 19:41 < nsf> but whatever 19:41 < nsf> Tonnerre: there is type assertion 19:41 < nsf> var a X; 19:41 < Tonnerre> nsf: yes but that's hard to put into an if, right? 19:41 < nsf> b, ok := a.(B) 19:42 < nsf> no 19:42 < nsf> if _, ok := a.(B); ok {} 19:42 < Tonnerre> Currently, I have (lots of generated) code like 19:42 < Tonnerre> if result.Authnx, result.Authzx, err = p.handler.Login(args.AuthRequest); err != nil { 19:42 < nsf> means 'if a instanceof B' 19:42 < Tonnerre> And I want it to be: 19:43 < tux21b> i used emacs for about an year, but the last 5 (?) years i used vim only, so i am actually faster in vim now too... but thats just habituation... 19:43 < Tonnerre> if err = p.handler.Login(args.AuthRequest); err != nil && !(err instanceof Authnx) && !(err instanceof Authzx) { { 19:43 < nsf> tux21b: here's the simple example: let's say you do loop unrolling or something, and have lines like this: arr[i+0] = ...; arr[i+1] = ...; etc 19:43 < nsf> Tonnerre: well, do it using multiple lines 19:44 < nsf> or make a function 19:44 < nsf> tux21b: so 19:44 < tux21b> yes, ok. thats easy in vim ;) 19:44 < nsf> tux21b: you write one line than copy it say 5 times 19:44 < Tonnerre> nsf: is there something like typeof()? 19:44 < nsf> then you need to change numbers 19:44 < nsf> in vim it's easy 19:44 < nsf> j (move down) r (replace one char) 1 19:44 < nsf> jr2 jr3 etc. 19:44 < nsf> in emacs it's pain in the ass :D 19:44 < nsf> Tonnerre: no, only a type assertion 19:44 < lobo_d_b> ++ 19:44 < Tonnerre> nsf: hm ok 19:45 < itrekkie> well, there's the reflect package? 19:45 < tux21b> but sublime looks a bit better and might becoming something useful i think. i just havent figured out how to run arbitary shell commands (which are not part of the build config) 19:45 < nsf> Tonnerre: but if you write a lot of code like this, I mean you could use a function 19:45 < itrekkie> reflect.TypeOf(), no? 19:45 < nsf> something like 19:45 -!- alehorst [~alehorst@201.22.30.159.dynamic.adsl.gvt.net.br] has quit [Remote host closed the connection] 19:45 < nsf> ifErrorIsOfThatType(err) 19:46 < nsf> yeah, reflect may work, but it won't help much 19:46 < nsf> because the result of reflect.TypeOf() is a type structure 19:46 < nsf> you can't compare it with type or something 19:46 < nsf> I mean it should be simple 19:46 -!- alehorst [~alehorst@201.22.30.159.dynamic.adsl.gvt.net.br] has joined #go-nuts 19:46 < nsf> if you write a lot of similar stuff - make a function 19:47 < nsf> if you write a lot of generic stuff, in Go there are no generics - make a source code generator 19:47 < nsf> that should solve all the problems :D 19:47 < nsf> although 19:48 -!- Venom_X [~pjacobs@66.54.185.130] has quit [Ping timeout: 276 seconds] 19:48 < nsf> I miss preprocessor a bit 19:48 < nsf> yes it's evil 19:48 < nsf> but sometimes useful :D 19:49 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has joined #go-nuts 19:49 < itrekkie> better to keep things simple :) 19:49 -!- CoverSlide [~richard@216.2.249.50] has joined #go-nuts 19:49 < nsf> yeah 19:50 -!- Ginto8 [~ginto8@pool-71-188-103-55.cmdnnj.east.verizon.net] has quit [Quit: Leaving] 19:50 < itrekkie> has there been any more news about this dart thing? I woke up all excited today, but can't find anything 19:50 -!- franciscosouza [~francisco@201.7.186.67] has quit [Quit: franciscosouza] 19:52 < moraes> read the speculations; there are plenty 19:56 < ancientlore> regarding goinstall, I think the answer is that it only considers tags in hg, git, and brz. the feature isn't implemented for svn, where it alwas pulls the trunk 19:56 < ancientlore> if I'm reading the goinstall code right 19:58 -!- alehorst [~alehorst@201.22.30.159.dynamic.adsl.gvt.net.br] has quit [Quit: Leaving.] 19:58 < ancientlore> unfortunately the issue is moot for goinstall prior to r60 anyhow... 20:04 -!- moraes [~moraes@189.103.177.124] has quit [Quit: Leaving] 20:19 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit [Quit: Leaving] 20:21 -!- itrekkie [c0373727@gateway/web/freenode/ip.192.55.55.39] has quit [Ping timeout: 252 seconds] 20:23 -!- guilty_spark [jsawczuk@ec2-184-73-19-135.compute-1.amazonaws.com] has quit [Read error: Connection reset by peer] 20:24 -!- guilty_spark [~guilty_sp@ec2-184-73-19-135.compute-1.amazonaws.com] has joined #go-nuts 20:25 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Remote host closed the connection] 20:32 -!- Bigbear1 [~Cody@res6-185.lakeheadu.ca] has quit [Read error: Connection reset by peer] 20:33 -!- dfr|SF_ [dfr|work@nat/google/x-texddzoduxtikjdr] has joined #go-nuts 20:34 -!- Bigbear1 [~Cody@res6-185.lakeheadu.ca] has joined #go-nuts 20:34 -!- dfr|SF_ [dfr|work@nat/google/x-texddzoduxtikjdr] has quit [Remote host closed the connection] 20:34 -!- dfr|SF_ [dfr|work@nat/google/x-hxldchrnmznwmwch] has joined #go-nuts 20:35 -!- dfr|SF [dfr|work@nat/google/x-upneqyxyeghqqguo] has quit [Read error: Connection reset by peer] 20:36 -!- cron [cron@190.121.66.145] has joined #go-nuts 20:37 -!- TimKack [~TimKack@e196069.upc-e.chello.nl] has joined #go-nuts 20:38 -!- TimKack [~TimKack@e196069.upc-e.chello.nl] has quit [Client Quit] 20:42 -!- TimKack [~TimKack@e196069.upc-e.chello.nl] has joined #go-nuts 20:42 -!- Guest26973 [cron@190.121.66.145] has quit [Quit: Leaving] 20:43 -!- TimKack [~TimKack@e196069.upc-e.chello.nl] has quit [Remote host closed the connection] 20:44 -!- TimKack [~TimKack@e196069.upc-e.chello.nl] has joined #go-nuts 20:45 -!- Project_2501 [~progettin@dynamic-adsl-94-36-171-91.clienti.tiscali.it] has joined #go-nuts 20:48 -!- Project_2502 [~progettin@82.84.97.39] has quit [Ping timeout: 276 seconds] 20:54 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org] 20:55 -!- Fish- [~Fish@9fans.fr] has quit [Quit: WeeChat 0.3.5] 20:57 -!- kevlar_work [~kevlar@unaffiliated/eko] has quit [Remote host closed the connection] 20:59 -!- kevlar_work [kevlar@unaffiliated/eko] has joined #go-nuts 21:06 -!- hutuworm [~Administr@115.195.81.241] has joined #go-nuts 21:06 -!- TimKack [~TimKack@e196069.upc-e.chello.nl] has quit [Remote host closed the connection] 21:07 -!- afb [~afb@95.209.64.67.bredband.tre.se] has joined #go-nuts 21:07 -!- moraes [~moraes@189.103.177.124] has joined #go-nuts 21:09 -!- jbooth1 [~jay@209.249.216.2] has left #go-nuts [] 21:11 -!- hutuworm [~Administr@115.195.81.241] has quit [Ping timeout: 258 seconds] 21:15 -!- TheMue [~FMueller@p5DDF4B19.dip.t-dialin.net] has quit [Quit: Lost terminal] 21:17 -!- BigBlackDog [~BigBlackD@HSI-KBW-109-192-007-188.hsi6.kabel-badenwuerttemberg.de] has quit [Quit: WeeChat 0.3.6-dev] 21:22 -!- tux21b [~christoph@cpe90-146-162-55.liwest.at] has quit [Read error: Connection reset by peer] 21:24 -!- pothos [~pothos@111-240-167-197.dynamic.hinet.net] has quit [Read error: Connection reset by peer] 21:25 -!- tux21b [~christoph@cpe90-146-162-55.liwest.at] has joined #go-nuts 21:26 -!- pothos_ [~pothos@111-240-170-123.dynamic.hinet.net] has joined #go-nuts 21:26 -!- icebrain [~icebrain@co3-84-90-63-109.netvisao.pt] has quit [Ping timeout: 260 seconds] 21:28 < f2f> "But the ability of a function to return a type that is not the expected type is a _fantastic_ way to handle errors. I tend to think Go threw the baby out with the bathwater here." 21:28 < f2f> i promise, this is the last time i cross-post reddit comments here. 21:29 < f2f> but i thought you may appreciate the humour in the above statement, and the out-of-proportion conclusion 21:29 -!- guilty_spark [~guilty_sp@ec2-184-73-19-135.compute-1.amazonaws.com] has quit [Quit: Leaving] 21:29 -!- pothos [~pothos@111-240-170-123.dynamic.hinet.net] has quit [Read error: Connection reset by peer] 21:29 -!- pothos_ [~pothos@111-240-170-123.dynamic.hinet.net] has joined #go-nuts 21:40 -!- dlowe [dlowe@nat/google/x-fjdbyrhjejjcsgad] has quit [Quit: Leaving.] 21:42 -!- afb [~afb@95.209.64.67.bredband.tre.se] has quit [Remote host closed the connection] 21:53 -!- meling [~meling@134.81-167-41.customer.lyse.net] has joined #go-nuts 21:54 < remy_o> it's weird ow some people wants all languages to include <their most favourite feature> 21:55 -!- hargettp [~hargettp@pool-71-184-176-101.bstnma.east.verizon.net] has joined #go-nuts 21:59 -!- cr3 [~cr3@64.34.151.178] has quit [Quit: leaving] 22:01 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 260 seconds] 22:01 -!- cnuke [~cnuke@najut.org] has quit [Ping timeout: 260 seconds] 22:01 -!- cnuke [~cnuke@najut.org] has joined #go-nuts 22:01 -!- remy_o [~babar@archlinux/developer/remy-o] has quit [Ping timeout: 252 seconds] 22:02 -!- pbgc [~pbgc@bl20-178-21.dsl.telepac.pt] has quit [Quit: Textual IRC Client: http://www.textualapp.com/] 22:03 -!- areece [~areece@GHC16.GHC.ANDREW.CMU.EDU] has joined #go-nuts 22:05 < areece> How do people currently use the standard logging package? 22:05 < qeed> i just use light wrappers around it 22:05 < smw> f2f, nice :-) 22:06 -!- hargettp [~hargettp@pool-71-184-176-101.bstnma.east.verizon.net] has quit [Quit: Linkinus - http://linkinus.com] 22:07 < areece> qeed: how so? 22:07 < areece> Like 22:07 < areece> You wrote your own wrappers for it? 22:07 < qeed> just a one line wrapper 22:07 < qeed> custom formatting basically 22:07 < areece> Or you use the wrapper r suggests: https://groups.google.com/d/msg/golang-nuts/Y1JX8aNbdVM/yHr_bW_FxdkJ 22:08 < areece> Ah. 22:08 < qeed> theyre just one line heh 22:08 < qeed> no use thinking about it 22:08 < areece> Yeah, I guess 22:08 < areece> I was unsatisfied with the lack of support for log levels 22:09 < qeed> thats just a couple of lines more 22:09 < areece> So why isn't it in the standard package? 22:10 -!- vmil86 [~vmil86@88.118.38.213] has quit [Read error: Connection reset by peer] 22:10 -!- hargettp [~hargettp@pool-71-184-176-101.bstnma.east.verizon.net] has joined #go-nuts 22:10 < qeed> i dont know its there are alot of things i want in the standard package 22:11 < chilts> has anyone tried to use gocheck with the new r60 release? I seem to be having trouble getting the tests to work .. it compiles fine 22:11 < chilts> on r59 it was all fine 22:13 -!- fvbommel [~fvbommel_@86.86.15.250] has joined #go-nuts 22:14 < qeed> gocheck doesnt seem to be standard 22:15 -!- niekie [~niek@CAcert/Assurer/niekie] has quit [Ping timeout: 260 seconds] 22:16 -!- kergoth__ [~kergoth@ip24-251-167-38.ph.ph.cox.net] has quit [Remote host closed the connection] 22:18 -!- niekie [~niek@CAcert/Assurer/niekie] has joined #go-nuts 22:19 -!- ako [~nya@fuld-590c7469.pool.mediaWays.net] has joined #go-nuts 22:20 < chilts> qeed: yeah I know, but just wondered if anyone had encountered this 22:21 < chilts> ok, I have fixed one test, now for 21 more 22:22 < chilts> I think the strings from the panic messages have changed, so the checking of various panics are now not working 22:22 < chilts> I should check with niemeyer to make sure this is the right thing to fix 22:22 -!- aho [~nya@fuld-590c6f72.pool.mediaWays.net] has quit [Ping timeout: 260 seconds] 22:23 -!- niekie [~niek@CAcert/Assurer/niekie] has quit [Ping timeout: 260 seconds] 22:31 -!- meling_ [~meling@134.81-167-41.customer.lyse.net] has joined #go-nuts 22:31 -!- meling [~meling@134.81-167-41.customer.lyse.net] has quit [Read error: Connection reset by peer] 22:31 -!- dustyw [~dustyw@c-98-247-248-194.hsd1.wa.comcast.net] has joined #go-nuts 22:32 -!- meling [~meling@134.81-167-41.customer.lyse.net] has joined #go-nuts 22:32 -!- meling_ [~meling@134.81-167-41.customer.lyse.net] has quit [Read error: Connection reset by peer] 22:34 -!- meling [~meling@134.81-167-41.customer.lyse.net] has quit [Read error: Connection reset by peer] 22:34 -!- meling_ [~meling@134.81-167-41.customer.lyse.net] has joined #go-nuts 22:35 -!- meling [~meling@134.81-167-41.customer.lyse.net] has joined #go-nuts 22:35 -!- meling_ [~meling@134.81-167-41.customer.lyse.net] has quit [Read error: Connection reset by peer] 22:36 -!- flaguy48 [~gmallard@user-0c6s350.cable.mindspring.com] has joined #go-nuts 22:45 -!- odoacre [~antonio@218.241.169.34] has quit [Ping timeout: 260 seconds] 22:45 -!- odoacre [~antonio@218.241.169.34] has joined #go-nuts 22:53 -!- marcux [~marco@189.121.104.181] has joined #go-nuts 22:53 -!- marcux [~marco@189.121.104.181] has quit [Client Quit] 22:59 < kevlar_work> areece, log levels mean different things to different people, and what you do with them even more so. Thus, log levels have no place in the standard library. 22:59 -!- thrashr888_ [~thrashr88@64.125.143.6] has joined #go-nuts 23:00 < kevlar_work> I should point out that it's simple to create N loggers with your own prefix string, then you can just say Debug.Logf(...) or whatever. 23:01 < f2f> we're not talking about syslog log levels, right? 23:02 < f2f> just local logging levels? 23:02 -!- thrashr888 [~thrashr88@64.125.143.6] has quit [Read error: Operation timed out] 23:02 < areece> I guess 23:02 < areece> I got really comfortable using the google-glog library this summer 23:03 < kevlar_work> so use log4go 23:03 < areece> I ... 23:03 < kevlar_work> and I still insist that LOG_IF and LOG_EVERY_N are silly. 23:04 < areece> I found LOG_EVERY_N really useful when debugging some map reduces 23:04 < areece> And they sound a lot harder to implement in go 23:04 < exch> For a toy 16 bit VM, how many registers could you possibly need/want? 8 or 16? 23:04 -!- CoverSlide [~richard@216.2.249.50] has quit [Quit: Konnichi-Wa Bitches] 23:04 < exch> 16 just seems a bit excessive 23:05 < areece> LOG_IF is really just a convenient macro for if condition { log } 23:05 < areece> as for log4go, I found myself wanting VLOG 23:05 < kevlar_work> well, since there are no macros in Go, that would be even MORE overhead. 23:06 < areece> kevlar_work: how much overhead? 23:06 < kevlar_work> As for log_every_n, God invented grep and sort and uniq for a reason. 23:06 < chilts> ok, so r60 seems to have moved http.ParseURL to url.Parse ... which makes sense ... I better go fix some tests 23:06 < areece> kevlar_work: I used log every n to avoid creating huge output files. 23:06 < kevlar_work> areece, another boolean value in another function call that must always be executed when the conditional you could've written would've avoided the entire function call 23:07 < areece> kevlar_work: always executed? Couldn't an aggressive compiler whittle it down? 23:07 -!- NiteRain [~NiteRain@c-98-254-236-21.hsd1.fl.comcast.net] has quit [Ping timeout: 258 seconds] 23:07 < kevlar_work> areece, then write a log filter that wraps a normal log filter that drops N out of every M log levels 23:08 < kevlar_work> messages* 23:08 < areece> you mean an io.Writer that drops every N calls to Write? 23:08 < areece> the existing package doesn't really have log filters 23:08 < kevlar_work> areece, I was talking about log4go 23:09 < areece> ah, yeah 23:10 < kevlar_work> you'd just make a SkipLogWriter(lw LogWriter, n, m) function or something. 23:10 < kevlar_work> you could also make one that de-duplicates log messages 23:10 < kevlar_work> also trivially. 23:10 < areece> is log4go thread safe? 23:10 < kevlar_work> and as for LOG_IF, if conditional { fun() } 23:10 < kevlar_work> of course 23:11 < kevlar_work> if cond { fun(...) } will sometimes not evaluate the arguments, where fun(..., cond) will 23:11 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 23:11 < kevlar_work> even if there is an aggressive compiler. 23:11 < kevlar_work> and when you're using variadic arguments, that includes the creation (including allocation) of a []interface{} containing the arguments 23:12 < kevlar_work> so yeah, log_if is silly in go. 23:13 < areece> because LOG_IF would have to be a function call 23:13 < kevlar_work> indeed. 23:13 < areece> whereas in C++ they can fake it with a ternary operator 23:13 < kevlar_work> it's more because of the preprocessor. 23:14 < areece> Yeah. 23:14 -!- xyproto [alexanro@horisont.pvv.ntnu.no] has joined #go-nuts 23:14 < kevlar_work> it's just as inconvenient to write if cond { log(...) } as it is to write cond?log(...):0 23:14 < areece> you also lose the ability to do something like 23:14 < areece> #define CHECK(condition) if (!condition) Log.Write( #condition ) 23:14 < areece> and get string forms of arguments 23:15 < kevlar_work> if you consider that a serious loss, lol... 23:15 -!- xyproto [alexanro@horisont.pvv.ntnu.no] has quit [Quit: WeeChat 0.2.6] 23:15 < areece> Its useful for logging :P 23:15 -!- nekoh [~nekoh@dslb-178-004-079-062.pools.arcor-ip.net] has quit [Quit: nekoh] 23:15 -!- cenuij [~cenuij@141.172.112.78.rev.sfr.net] has joined #go-nuts 23:15 -!- cenuij [~cenuij@141.172.112.78.rev.sfr.net] has quit [Changing host] 23:15 -!- cenuij [~cenuij@base/student/cenuij] has joined #go-nuts 23:15 < kevlar_work> "has been used to make code shorter" != "useful" 23:16 < areece> are you asserting that its not useful? 23:16 < kevlar_work> which is more useful: as output: "len(x)" or "Database query returned zero results" 23:16 -!- miker2 [~miker2@pool-71-175-94-30.phlapa.fios.verizon.net] has quit [Quit: Computer has gone to sleep.] 23:17 < kevlar_work> so yes, I am asserting that it's not useful to blindly print out a conditional when it's false. 23:17 < kevlar_work> this is why I now feel unclean whenever I have to use an ASSERT-based logging framework. 23:17 < areece> one thing that bothers me about the log4go library is how it uses the first value to determine the type of output 23:17 < areece> kevlar_work: but thats a silly example 23:18 < kevlar_work> areece, lol, is it though? 23:18 < areece> my code would produce: "Check failure: len(databaseResults) == 0" 23:18 < areece> if you use a meaningful variable name 23:18 < areece> and nice macros, like those provided by google-glog 23:18 < kevlar_work> if you don't want to use the convenience methods, use Log and Logf 23:18 < areece> you'll get almost reasonable output 23:19 < areece> anyways 23:19 < areece> I also like the idea of using a clusure 23:19 < areece> s/clusure/closure/ 23:19 < kevlar_work> hmm? 23:20 < kevlar_work> Logc? 23:20 < areece> I almost want to see a func Logc( f func () string ) 23:20 < areece> yeah 23:20 < kevlar_work> I have a func Logc() in log4go. 23:20 < areece> ah, yeah :) 23:20 < areece> but no log levels ... 23:20 < kevlar_work> in log4go? 23:20 < kevlar_work> I have nine... 23:21 < areece> sorry, I spoke unclearly 23:21 < kevlar_work> oh, 8. 23:21 < kevlar_work> I started with FINE FINER FINEST but dropped FINER 23:21 < areece> also, I see the level now 23:22 -!- erus` [~chatzilla@cpc2-gill2-0-0-cust701.basl.cable.virginmedia.com] has quit [Remote host closed the connection] 23:23 < areece> hm, have you considered using CHECK or similar? 23:23 < areece> You said that you feel bad when you use and ASSERT based framework. 23:23 < kevlar_work> same reason 23:23 < kevlar_work> they encourage terrible log/debug output 23:24 < kevlar_work> one common CHECK is CHECK(x != NULL) 23:24 < kevlar_work> which almost never tells you the operation that failed or why 23:24 < areece> are you talking about a specific framework? 23:25 < areece> I don't think I would ever use merely a CHECK(x != NULL) 23:25 < kevlar_work> areece, you might be the only one. 23:25 < areece> I mean 23:25 < areece> CHECK_NOT_NULL(meaningfulVariableName) 23:25 < areece> is already a start 23:25 < kevlar_work> now you're getting to the problem with assert frameworks 23:25 < kevlar_work> you have to have a function for every convievable check 23:26 < kevlar_work> ASSERT_EQUAL(a,b) ASSERT_NOT_EQUAL(a,b) ASSERT_LESS_THAN(a,b) ASSERT_LESS_THAN_OR_EQUAL(a,b) 23:26 < areece> sure 23:26 < nsf> :D 23:26 < areece> and google-glog has that 23:26 < f2f> why are we shouting? :) 23:26 < exch> ASSERT_ALMOSTBUTNOTQUITE 23:26 < kevlar_work> areece, I think the problem is that you don't see the problem with those 23:26 < f2f> almostbutnotentirelyunlike 23:26 < kevlar_work> f2f, :D 23:26 < areece> ASSERT_GT(0,port) 23:27 < exch> assert_solarflaresmayhaveflippedsomebitssobecareful() 23:27 < areece> well 23:27 < nsf> I remember in my math lib 23:27 -!- photron [~photron@port-92-201-32-5.dynamic.qsc.de] has quit [Ping timeout: 260 seconds] 23:27 < kevlar_work> I am codenaming all of my current project from h2g2 23:27 < nsf> there was actually 23:27 < areece> assert_gt(port,0) 23:27 < nsf> wait, I'll find it 23:27 -!- icebrain [~icebrain@co3-84-90-63-109.netvisao.pt] has joined #go-nuts 23:27 < nsf> #define FLOATS_ARE_NEARLY_EQUAL(a, b) (fabs((a) - (b)) < MATH_EPSILON) 23:27 < nsf> that :D 23:28 < f2f> when people ask if i'm religious, i tell them h2g2 is my bible :) 23:28 < kevlar_work> :D 23:28 < f2f> it's just as good, and slightly more relevant than any other religious document out there, so why not? plus i can carry a towel 23:29 < kevlar_work> areece, Go would prefer you to print out "func(x,y) = z, want q" rather than "z != q" 23:29 < areece> kevlar_work: you use one character variables names for brevity? 23:30 < kevlar_work> areece, when I'm writing trivial things in IRC. 23:30 < areece> yeah 23:30 < kevlar_work> StripSpaces(" your mom ") = "your mom ", want "your mom" 23:31 < kevlar_work> better? 23:31 < kevlar_work> most assert frameworks would print out "your mom " != "your mom" or StripSpaces(" your mom ") != "your mom" 23:31 < kevlar_work> neither of which are as helpful 23:32 < areece> hrm ... 23:32 < kevlar_work> and these are only the most trivial cases! 23:32 < qeed> yeah there is a reason why go dont have asserts 23:32 < f2f> 'yomomma so big, the assert framework still hasn't finished logging her' 23:33 < kevlar_work> when I'm testing something complicated, I often know that if this fails, something more interesting is probably going on, so I can log that 23:33 < areece> google glog produces: F0909 19:34:15.042140 31903 log_example.cc:29] CHECK_STREQ failed: "HELLO" == capitalize("hello") (HELLO vs. hello) 23:34 < areece> and of course I can add additional details to the message if I wish 23:34 < kevlar_work> Yeah, I think I'd prefer capitalize("hello") = "HELLO", want "hello" 23:34 < areece> thats mostly just formatting 23:34 < kevlar_work> areece, you're completely missing the point though. 23:34 < areece> the point you're trying to make is that they usually produce bad messages 23:34 < areece> CHECK(foo != NULL) 23:35 < areece> will produce a useless message 23:35 < kevlar_work> the point that I am making is that they always produce the SAME messages 23:35 < areece> um, I don't follow that 23:35 < kevlar_work> and that the cognitive load of creating or remembering the specific function to use to get a slightly better message is almost as much as writing the code that you meant 23:36 < kevlar_work> and that's not even considering the fact that assert-based testing frameworks tend to encourage copy/pasted tests 23:36 < kevlar_work> and anyone who argues that copy/paste is a recipe for disaster in any coding situation is lying to you 23:36 < kevlar_work> isn't* a recipe 23:36 < areece> perhaps I haven't seen assert-based frameworks used in the same way as you 23:37 < lobo_d_b> mmm you know a lot :( 23:37 < areece> I'd never had a problem with bad error messages 23:37 < areece> and I'm not sure how they encourage copy pasting 23:38 < areece> but I understand that you try to avoid them 23:38 < areece> anyways, I think I'll use log4go 23:38 < areece> I'll see what I think 23:39 < brandini> go needs a good book like the K&R book C has :) 23:39 < kevlar_work> areece, they encourage copy/paste because ASSERT usually bombs out of that test, so you can't wrap multiple testcases into the same test without skipping some, so you copy/paste, change a bit, and then call it done 23:39 < brandini> not because the docs aren't good, but so I can have something on my shelf! 23:39 < kevlar_work> in Go, you have table-driven tests because that separates the test cases from the testing logic and makes it much easier to add and maintain tests 23:39 < areece> kevlar_work: you should try the google-test framework, it has EXPECT macros that don't bomb :) 23:40 < kevlar_work> areece, I work at Google, and I don't think the C++ testing framework is something to be emulated. 23:40 < areece> kevlar_work: I saw some pretty gnarly code there too 23:40 < kevlar_work> Go tests are easier to read and use 4 functions; C++ tests are harder to read (and the macros are super crazy magical) and use 30+ functions 23:41 < areece> Go tests use magic naming conventions (Test*)? 23:41 < brandini> I want to work at google 23:41 < brandini> google called me one time and I did the 45 minute phone interview and they said no thanks 23:41 < kevlar_work> areece, no, gtest has things like TEST(MyTestName, successful) { ... } 23:41 < areece> I know 23:42 < areece> well, more like 23:42 < kevlar_work> it tries to make it really easy for tests to pass, fail, except, whatever 23:42 < areece> TEST_F() stuff 23:42 < kevlar_work> but it's all too magical, and I've spent more time debugging my tests sometimes than I did on the code it was testing 23:42 < kevlar_work> there are times where the macros hide problems in the test itself, and I wasn't particularly pleased about that. 23:43 < areece> I spent a day debugging my tests for my 10 line class :) 23:43 < brandini> I do that in java all the time 23:43 < kevlar_work> in Go, everything is clear, clean, and obvious. 23:43 < brandini> I've started writing tests for my java stuff in Go 23:43 < kevlar_work> oh god, don't even get me started on spring and those crazy frameworks 23:43 < brandini> :) 23:43 < brandini> this is purely message based 23:43 < brandini> ex em ell 23:44 < kevlar_work> oh look, it's time to go... *runs* 23:44 < areece> I used JUnit and found it mostly reasonable 23:44 < lobo_d_b> I'm reading a pdf that seems to be good, last update was today 23:44 < brandini> lobo_d_b: link? 23:45 < kevlar_work> areece, junit isn't too bad until you get to the super crazy magical stuff that it can do now 23:45 < areece> kevlar_work: In generally, I'd prefer the JUnit style @Test annotation or the GUnit style TEST(funcname) to the go style magic names 23:45 < areece> s/generally/general/ 23:46 < kevlar_work> I fail to see how func TestSomething is worse than Test(Something) 23:46 < lobo_d_b> brandini: git clone http://www.miek.nl/git/gobook.git 23:46 < lobo_d_b> Each night a pdf is build and put online at /files/go. But there are also regular releases that are announced separately. 23:46 < lobo_d_b> brandini: --^ that says the autor 23:46 < areece> magic naming conventions make code really hard to debug 23:46 < areece> TEST( name ) is a common entry point 23:47 < kevlar_work> lobo_d_b, I tend to think that the spec and effective_go are the equivalent of K&R, not that (nor any other, so far) book., 23:47 -!- ako [~nya@fuld-590c7e77.pool.mediaWays.net] has joined #go-nuts 23:47 < areece> the @Test annotation was made so you could name your test whatever you wanted 23:47 < areece> what if I wanted to make a helper method Test(foo) 23:47 < areece> or TestValues() 23:47 < kevlar_work> you would make them non-exported. 23:48 < areece> testValues() 23:48 < areece> -_- 23:48 < kevlar_work> or you would call them something sensible 23:48 < kevlar_work> like compareSlices(a, b) 23:48 < areece> sure 23:48 < kevlar_work> or isValidMessage(a) 23:48 < brandini> kevlar_work: I agree, I just want a paper copy for the bookshelf 23:48 < areece> or VerifyFoo() 23:49 < kevlar_work> or, what I usually do, is have a closure inside the test 23:49 < kevlar_work> that way it can still use t.Errorf and friends. 23:49 < kevlar_work> (without having to pass them) 23:49 -!- aho [~nya@fuld-590c7469.pool.mediaWays.net] has quit [Ping timeout: 260 seconds] 23:49 < brandini> my biggest problem with junit is that you can't use a config in your app as your data source for DB conns, etc 23:49 < kevlar_work> and there is *nothing* magical about the code 23:49 < brandini> that is painful, it was really easy in pylons, django, rails, etc 23:49 < kevlar_work> the only thing magical is that gotest calls Test* functions 23:49 < brandini> likely the same thing in go? 23:50 < kevlar_work> with JUint and other things, there is something magical: you ahve to know that SetUp is called before each method and TearDown is called after each 23:50 < areece> I wasted a week this summer hunting down a bug which ended up being I mispelled a magic naming convention. 23:50 < lobo_d_b> kevlar_work: well, but sometimes someones approach is better for one to learn ... 23:50 < areece> kevlar_work: how is that magical? 23:51 < kevlar_work> areece, it's magical because it gives you the illusion that tests are self-contained 23:51 < areece> how is that *more* magical than gotest calling Test methods? 23:51 < kevlar_work> and often people put tests in the teardown that they want all tests to have 23:52 < areece> kevlar_work: that doesn't seem like correct testing ... 23:52 -!- cabello [~cabello@nat/yahoo/x-nrchebndmcolybyv] has quit [Remote host closed the connection] 23:52 < kevlar_work> lol, you are living in a box, my dear. 23:52 < kevlar_work> or under a rock, or something. 23:53 < kevlar_work> The whole point is that the frameworks allow (I would say encourage) poor corner-cutting 23:53 < areece> I didn't recall anyone at Google doing similar, but maybe my portion of the codebase was cleaner? 23:53 < areece> kevlar_work: ok, there is definitely some truth to that 23:53 < kevlar_work> quality varies widely from developer to developer and project to project in whatever company you're in 23:54 < areece> (thats why you do code reviews ...) 23:54 < kevlar_work> I think the python code around here is worse than the C++, especially tests, but w/e. 23:54 < kevlar_work> code reviews are only as good as the reviewer 23:54 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit: Verlassend] 23:54 < areece> a good framework also makes testing easier, though 23:54 < kevlar_work> and lots of people send their reviews to someone who shares their coding style or who isn't picky. 23:54 < kevlar_work> No! 23:55 < kevlar_work> a good testing framework doesn't make it easier to write tests 23:55 < areece> it doesn't make it easier? :P 23:55 < kevlar_work> a good framework makes it easier for tests to produce useful information when they fail 23:56 < kevlar_work> and easier to inspect if the reason for the failure is not obvious 23:56 < areece> if I modified my statement to "easier to write good tests" you you be happier? 23:56 < areece> s/you/would/ 23:56 < kevlar_work> no, because we clearly disagree on what a "good test" is :P 23:57 < areece> :P I'm not so sure of that, but ok 23:58 < kevlar_work> I think that most testing frameworks try to make it easier to write tests FASTER 23:58 < kevlar_work> instead of focusing on making the tests BETTER. 23:59 < kevlar_work> if you can't lean on things like assert or macros to allow you to write fewer keystrokes, you might be more likely to do things like make a table-driven test, or write a helpful, detailed failure message --- Log closed Sat Sep 10 00:00:14 2011