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

--- 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