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

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