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

--- Log opened Mon Jul 12 00:00:12 2010
00:06 < zerofluid> I make a new slice with var zerocoins = make([]int, 8)
and then want a copy of it.  Unfortunately it appears zerocoins = coins just
provides a reference to coins
00:07 < zerofluid> is there an easy way to copy a slice?
00:07 < Namegduf> I think copy() exists.
00:07 < zerofluid> that would be funny
00:09 < EthanG> slices uses references, arrays are copied
00:10 < zerofluid> cool - found it in the docs
00:11 < zerofluid> / The copy function is predeclared and works for any
slice type.
00:11 < zerofluid> been using the slides and guessing the rest - probably
should read a little more before bothering you guys, but it appears to be a slow
day...  thanks
00:12 < KirkMcDonald> The first thing I did when I heard about Go was read
the spec.
00:12 < KirkMcDonald> It's not that long, and it is eminently readable.
00:13 < EthanG> yeah, the spec's much nicer than python's already
00:14 < KirkMcDonald> Python has more going on, I think.
00:15 < EthanG> yeah, it's a more complex syntax.  the spec used to be kinda
readable though...
00:15 < KirkMcDonald> Python is also much older.
00:15 < KirkMcDonald> It's had more time to accrue documentation.
00:15 -!- emmanueloga [~emmanuelo@190.247.41.202] has quit [Quit: WeeChat
0.3.3-dev]
00:16 < EthanG> yeah...
00:16 < zerofluid> hey - the docs have been great - I can be accused of not
reading everything before I started
00:16 < zerofluid> but when I finally find what I need ...  they've been
good
00:17 -!- jA_cOp [~yakobu@unaffiliated/ja-cop/x-9478493] has quit [Quit: Leaving]
00:17 -!- emmanueloga [~emmanuelo@190.247.41.202] has joined #go-nuts
00:23 -!- TR2N [email@89.180.179.16] has quit [Ping timeout: 264 seconds]
00:24 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts
00:24 -!- X-Scale [email@89-180-212-78.net.novis.pt] has joined #go-nuts
00:30 -!- mikespook [~mikespook@219.137.235.116] has joined #go-nuts
00:34 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
00:41 -!- gduffy [~greg@67.207.134.177] has joined #go-nuts
00:42 -!- zerofluid [~zerofluid@ip24-56-54-185.ph.ph.cox.net] has quit [Quit:
Leaving]
01:16 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed
the connection]
01:22 -!- trustin [~trustin@redhat/jboss/trustin] has joined #go-nuts
01:22 -!- rogue780 [~rogue780@c-68-34-234-213.hsd1.md.comcast.net] has joined
#go-nuts
01:24 < rogue780> I'm looking for a lightweight editor for
programming/learning go.  Any suggesttions?  Preferably something easy to use.
Doesn't have to be graphical, but if it is, keep in mind that I'm running lxde.
Thanks
01:25 < Ginto8> kate
01:25 < Ginto8> you can run it under lxde
01:25 < EthanG> acme ;)
01:25 < Namegduf> vim
01:25 < Ginto8> I'm running it under awesome
01:25 < Ginto8> also gedit/vim
01:25 < Ginto8> or gvim
01:25 < Ginto8> gvim is probly the most lightweight graphical one
01:26 < EthanG> lol
01:26 < Ginto8> acme is probly the lightest of the nongraphical
01:26 < Ginto8> idk tho
01:26 * Ginto8 hasn't really used it
01:27 < EthanG> it's graphical, in the sense that you use the mouse
01:27 < Ginto8> yeah and it's in X
01:27 < EthanG> no syntax hilighting though
01:27 < Ginto8> wait you mean acme?
01:28 < Ginto8> cuz I thrive on syntax highlighting and auto-indentation
01:28 < Ginto8> so I really wouldn't use it
01:28 < EthanG> *nods*
01:33 < nsf> geany, scite
01:33 < nsf> (easy to use editors)
01:33 < nsf> but I would recommend vim or emacs
01:33 < jessta> nano is easy to use
01:34 < nsf> although once you've learn vim or emacs you'll stay vimer or
emacser forever
01:34 < nsf> for example I'm a vimer and I know that vim sucks, but just I
can't use anything else )
01:34 < nsf> s/just I/I just/
01:35 < Ginto8> vim sucks?
01:35 < rogue780> does kate do syntax highlighting?  I'm a fan of syntax
highlighting.
01:35 < Ginto8> kate can do syntax highlighting
01:35 < Ginto8> if you set it up with the go.xm
01:35 < Ginto8> go.xml*
01:36 < nsf> Ginto8: yep, in terms of extensibility, emacs is much better
(flymake, debuggers support, etc.)
01:36 < rogue780> I've mostly done development in Eclipse over the years,
but recently I've found I don't use most of its features so I want something
lightweight and just easy to use
01:36 < Ginto8> well emacs is the smallest OS ever made so =/
01:36 < Ginto8> rogue780, vim or kate
01:36 < rogue780> emacs confused the crap out of me
01:36 < Ginto8> gedit's okay, but kate is superior
01:36 < rogue780> i think i'll try kate.  be back in a bit
01:36 < EthanG> smallest????  :D
01:37 < nsf> emacs is horrible in a sense that you need to program lisp in
order to use it
01:37 < nsf> whether in vim you can just set basic options and go on
01:37 < Ginto8> ok it's a moderately sized OS
01:37 -!- aho [~nya@f051073049.adsl.alicedsl.de] has quit [Read error: Connection
reset by peer]
01:37 < Ginto8> yeah vim is so useful
01:37 < Ginto8> go in, edit, leave and done
01:37 < nsf> but I'm currently working on a Go completion for vim
01:37 < Ginto8> vim is my quick-edit thing
01:37 < nsf> and vim scripting is horrible :D
01:38 < Ginto8> vim is my utility for when I need to edit something quickly
and easily
01:38 < Ginto8> I use an X text editor otherwise (kate atm)
01:38 -!- aho [~nya@f051073049.adsl.alicedsl.de] has joined #go-nuts
01:38 < EthanG> mm, vim starts up nice & quick, so much so that I still used
it a lot when emacs was my main editor, but I never touched the scripting.
01:40 < nsf> does anyone know is it possible to interact with extern app in
vim script (like 'subprocess' module in python), currently I use python support in
vim for that, but not everyone has vim with python support compiled-in
01:40 < nsf> ?
01:41 < nsf> I guess it's a wrong place to ask
01:41 < nsf> ugh..  I'll just dig manual more deeply
01:41 * nsf is answering his own questions again
01:42 -!- rogue780 [~rogue780@c-68-34-234-213.hsd1.md.comcast.net] has quit [Read
error: Connection reset by peer]
01:42 -!- rhelmer [~rhelmer@adsl-69-107-80-157.dsl.pltn13.pacbell.net] has quit
[Quit: rhelmer]
01:44 -!- rogue780 [~rogue780@c-68-34-234-213.hsd1.md.comcast.net] has joined
#go-nuts
01:47 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.2]
01:59 < rogue780> ok...so to install kate, it's in the kdesdk package...took
me forever to find it
02:01 -!- EthanG [~ethan@sourcemage/guru/eekee] has left #go-nuts []
02:01 < rogue780> hmmm...takes about 5 seconds for a drop-down menu to open.
maybe I should go vim...but it's a bit complicated and i'm retarded
02:02 < Ginto8> gedit
02:02 < Ginto8> gedit's good and simple, tho kate is better
02:03 < rogue780> does gedit have go syntax highlighting?  I'm sorry for all
these noob questions...but, well, i'm a bit of a noob
02:03 < Ginto8> yeah
02:03 < Ginto8> rogue780, http://go-lang.cat-v.org/text-editors/
02:06 -!- rhelmer [~rhelmer@adsl-69-107-89-49.dsl.pltn13.pacbell.net] has joined
#go-nuts
02:14 < rogue780> Ginto8, thanks.  im heading to bed now.  tomorrow i will
hopefully get go installed and all that.  my goal is to make a database cacher
initially.  made one in java, but i really really really hate the java langauge
02:14 < Ginto8> yeah the overuse of OOP really annoys me =P
02:16 < rogue780> indeed
02:16 < rogue780> anyway, off to bed
02:17 -!- rogue780 [~rogue780@c-68-34-234-213.hsd1.md.comcast.net] has quit [Quit:
Leaving]
02:18 -!- rhelmer [~rhelmer@adsl-69-107-89-49.dsl.pltn13.pacbell.net] has quit
[Quit: rhelmer]
02:27 -!- KinOfCain [~KinOfCain@rrcs-64-183-61-2.west.biz.rr.com] has quit [Remote
host closed the connection]
02:28 -!- nf [~nf@124-168-168-17.dyn.iinet.net.au] has quit [Read error:
Connection reset by peer]
02:28 -!- nf [~nf@203-158-40-182.dyn.iinet.net.au] has joined #go-nuts
02:31 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
02:36 -!- rhelmer [~rhelmer@adsl-69-107-89-49.dsl.pltn13.pacbell.net] has joined
#go-nuts
02:37 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
#go-nuts
02:41 < jer> object oriented programming isn't inherently a problem.  the
focus on objects instead of messages is the problem
02:41 < jer> objects are a side product of what you should be focusing on,
the messages themselves.  focus on the messages, you're not limited to one kind of
object -- some opaque structure
02:53 -!- emmanueloga [~emmanuelo@190.247.41.202] has quit [Quit: WeeChat
0.3.3-dev]
03:00 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds]
03:12 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit:
This computer has gone to sleep]
03:15 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has quit [Ping
timeout: 240 seconds]
03:30 -!- agent_orange [~joel@lolnet.org] has quit [Read error: Connection reset
by peer]
03:32 -!- mpl [~mpl@213.251.175.204] has quit [Ping timeout: 260 seconds]
03:33 -!- korfuri [~korfuri@eth0.korfuri.fr] has quit [Ping timeout: 276 seconds]
03:33 -!- danderson [~dave@atlas.natulte.net] has quit [Ping timeout: 276 seconds]
03:36 -!- ShadowIce` [pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
03:39 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has quit [Ping timeout:
240 seconds]
03:56 -!- jchico [~jchico@cpe-98-14-12-209.nyc.res.rr.com] has quit [Remote host
closed the connection]
03:59 -!- agent_orange [~joel@lolnet.org] has joined #go-nuts
04:05 -!- mpl [~mpl@213.251.175.204] has joined #go-nuts
04:05 -!- korfuri [~korfuri@eth0.korfuri.fr] has joined #go-nuts
04:08 -!- danderson [~dave@atlas.natulte.net] has joined #go-nuts
04:08 -!- mode/#go-nuts [+v danderson] by ChanServ
04:08 -!- emmanueloga [~emmanuelo@190.247.41.202] has joined #go-nuts
04:10 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has joined #go-nuts
04:14 -!- Tiger_ [~chatzilla@118.126.12.54] has quit [Quit: quit]
04:17 -!- yashi [~yashi@dns1.atmark-techno.com] has joined #go-nuts
04:20 -!- ssb [~ssb@213.167.39.150] has quit [Read error: Operation timed out]
04:20 -!- Davidian1024 [~Davidian1@cpe-98-27-192-193.neo.res.rr.com] has quit
[Read error: Operation timed out]
04:20 -!- ssb [~ssb@213.167.39.150] has joined #go-nuts
04:20 -!- Davidian1024 [~Davidian1@cpe-98-27-192-193.neo.res.rr.com] has joined
#go-nuts
04:20 -!- mikespook [~mikespook@219.137.235.116] has quit [Ping timeout: 252
seconds]
04:20 -!- Zoopee [alsbergt@192.117.108.58] has quit [Ping timeout: 252 seconds]
04:21 -!- TR2N` [email@89.180.212.78] has joined #go-nuts
04:21 -!- mikespook [~mikespook@219.137.235.116] has joined #go-nuts
04:21 -!- Zoopee [alsbergt@zoopee.org] has joined #go-nuts
04:22 -!- X-Scale [email@89-180-212-78.net.novis.pt] has quit [Ping timeout: 276
seconds]
04:23 -!- rhelmer_ [~rhelmer@adsl-69-107-89-49.dsl.pltn13.pacbell.net] has joined
#go-nuts
04:25 -!- rhelmer [~rhelmer@adsl-69-107-89-49.dsl.pltn13.pacbell.net] has quit
[Ping timeout: 264 seconds]
04:30 -!- MizardX [~MizardX@unaffiliated/mizardx] has quit [Read error: Connection
reset by peer]
04:30 -!- MizardX [~MizardX@unaffiliated/mizardx] has joined #go-nuts
04:32 -!- dju [dju@fsf/member/dju] has quit [Quit: Quitte]
04:51 -!- agent_orange [~joel@lolnet.org] has quit [Read error: Connection reset
by peer]
04:51 -!- agent_orange [~joel@lolnet.org] has joined #go-nuts
04:53 -!- emmanueloga [~emmanuelo@190.247.41.202] has quit [Quit: WeeChat
0.3.3-dev]
04:54 -!- monokrome [~monokrome@monokro.me] has left #go-nuts []
04:56 -!- MizardX [~MizardX@unaffiliated/mizardx] has quit [Ping timeout: 260
seconds]
04:56 -!- agent_orange [~joel@lolnet.org] has quit [Ping timeout: 240 seconds]
04:56 -!- korfuri [~korfuri@eth0.korfuri.fr] has quit [Ping timeout: 240 seconds]
04:57 -!- mpl [~mpl@213.251.175.204] has quit [Ping timeout: 260 seconds]
04:58 -!- danderson [~dave@atlas.natulte.net] has quit [Ping timeout: 260 seconds]
04:58 -!- scm [justme@d039124.adsl.hansenet.de] has quit [Ping timeout: 248
seconds]
05:00 -!- scm [justme@d018229.adsl.hansenet.de] has joined #go-nuts
05:10 -!- NfNitLoop [~bip@2001:470:b9cc:beef::1] has quit [Read error: Operation
timed out]
05:15 -!- korfuri [~korfuri@eth0.korfuri.fr] has joined #go-nuts
05:15 -!- mpl [~mpl@smgl.fr.eu.org] has joined #go-nuts
05:15 -!- agent_orange [~joel@lolnet.org] has joined #go-nuts
05:16 -!- kmeyer [~konrad@fedora/kmeyer] has quit [Read error: Operation timed
out]
05:16 -!- NfNitLoop [~bip@2001:470:b9cc:beef::1] has joined #go-nuts
05:16 -!- danderson [~dave@atlas.natulte.net] has joined #go-nuts
05:16 -!- mode/#go-nuts [+v danderson] by ChanServ
05:17 -!- eikenberry [~jae@ivanova.zhar.net] has quit [Quit: End of line.]
05:19 -!- kmeyer [~konrad@dante03.u.washington.edu] has joined #go-nuts
05:19 -!- kmeyer [~konrad@dante03.u.washington.edu] has quit [Changing host]
05:19 -!- kmeyer [~konrad@fedora/kmeyer] has joined #go-nuts
05:21 < Eko> nf: Is there an RSS/Atom feed for your blog?  I can't seem to
find one.
05:22 -!- mikespook [~mikespook@219.137.235.116] has quit [Ping timeout: 265
seconds]
05:22 < nf> http://nf.id.au/rss.xml
05:22 < nf> weird, you're the second one who has failed to find it
05:22 < nf> it's in the right-hand sidebar on the front page
05:23 < str1ngs> nf: I have a funny story about your mytools package
05:23 -!- mikespook [~mikespook@58.62.5.54] has joined #go-nuts
05:23 < str1ngs> I ran across it at github.  and I thought I found someones
stash.  until I just noticed the one function.  which I thought was odd.
05:24 < str1ngs> then I ran across your screencast and I had a good chuckle
05:24 < nf> lol
05:24 < nf> i actually thought that might happen
05:24 < str1ngs> was great
05:24 < nf> i should have called it "my indispensible stash of useful
functions"
05:24 < nf> i'm about to add something more to that
05:25 < str1ngs> I thought I had found someone stash of go goodies
05:27 < Eko> nf: d'oh.  It's in that webpage no-man's land between what you
can see when it loads and the bottom of the page when people are done reading the
content
05:27 < Eko> thanks though ;)
05:27 < nf> ;) i don't know why it's not in the html <head> tag
05:27 < nf> stupid posterous
05:28 < Eko> yeah, I usually just copy/paste the main URL into Google Reader
and it figures it out for me via the <link> or whatever
05:28 < Eko> apparently posterous is above that.
05:30 -!- thomas_b [~thomasb@cm-84.215.37.40.getinternet.no] has joined #go-nuts
05:31 -!- jesusaur [jesusaur@firefly.cat.pdx.edu] has joined #go-nuts
05:31 < nf> wow, reader didn't do that?  tsk tsk
05:31 < nf> i will attempt to fix my site's stylesheet
05:35 < Boney> I had this same experience wrt google reader.
05:35 < Boney> Eko: I think I'm the other person that nf said couldn't find
the rss feed.
05:38 -!- Netsplit *.net <-> *.split quits: trustin, ssb, jesusaurus,
gduffy, jsharkey
05:42 -!- Netsplit *.net <-> *.split quits: preflex, gnuvince_, Yappo__
05:49 < Eko> Boney: I guess we're too dependent on Google's intelligence ;)
05:50 < Eko> I, for instance, am usually at a complete loss to find
something if I can't find the magic words on Google and Wikipedia yields no
results, lol
05:52 -!- jhawk28 [~jhawk28@c-069-063-212-182.sd2.redwire.net] has joined #go-nuts
05:53 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has joined #go-nuts
06:08 -!- jhawk28 [~jhawk28@c-069-063-212-182.sd2.redwire.net] has quit [Remote
host closed the connection]
06:12 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has joined
#go-nuts
06:14 -!- Project_2501 [~Marvin@82.84.95.155] has joined #go-nuts
06:14 -!- talin [daghenri@caracal.stud.ntnu.no] has joined #go-nuts
06:17 * Project_2501 is back!  o.o
06:20 < talin> hello.  what is the go implementation written in?
06:20 < Archwyrm> talin: C and some asm.
06:20 < talin> i see.  thank you
06:29 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts
06:45 -!- incluye [~inklewyay@NW-ESR1-74-215-114-218.fuse.net] has quit [Remote
host closed the connection]
06:51 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has joined #go-nuts
06:52 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit:
Leaving]
07:00 -!- rlab [~Miranda@98-170-113-92.pool.ukrtel.net] has joined #go-nuts
07:12 -!- crashR [~crasher@codextreme.pck.nerim.net] has joined #go-nuts
07:18 -!- TR2N [email@89.180.212.78] has left #go-nuts []
07:24 -!- ExtraSpice [~ExtraSpic@88.118.32.225] has joined #go-nuts
07:26 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has quit [Quit:
KVIrc Equilibrium 4.1.0, revision: 4632, sources date: 20100519, built on:
2010-07-09 07:13:47 UTC http://www.kvirc.net/]
07:31 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-151-49.clienti.tiscali.it] has
joined #go-nuts
07:34 -!- Project_2501 [~Marvin@82.84.95.155] has quit [Ping timeout: 276 seconds]
07:39 -!- ssb [~ssb@213.167.39.150] has joined #go-nuts
07:39 -!- trustin [~trustin@redhat/jboss/trustin] has joined #go-nuts
07:39 -!- gduffy [~greg@67.207.134.177] has joined #go-nuts
07:39 -!- jsharkey [jsharkey@208.43.219.52] has joined #go-nuts
07:41 -!- iant [~iant@62-20-124-50.customer.telia.com] has joined #go-nuts
07:41 -!- mode/#go-nuts [+v iant] by ChanServ
07:41 -!- talin [daghenri@caracal.stud.ntnu.no] has left #go-nuts []
07:44 -!- mduft [~mduft@193.186.16.254] has joined #go-nuts
07:44 -!- gnuvince_ [~vince@70.35.167.149] has joined #go-nuts
07:44 -!- Yappo__ [~yappo@221x243x122x124.ap221.ftth.ucom.ne.jp] has joined
#go-nuts
07:44 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
07:45 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has quit [Ping
timeout: 264 seconds]
07:46 -!- tav [~tav@2001:0:53aa:64c:0:3ffb:abf2:d6bb] has quit [Quit: tav]
07:46 -!- temoto [~temoto@81.19.90.136] has joined #go-nuts
07:55 -!- ikaros [~ikaros@drms-4d015414.pool.mediaWays.net] has joined #go-nuts
08:00 -!- bmizerany [~bmizerany@c-24-6-37-113.hsd1.ca.comcast.net] has quit
[Remote host closed the connection]
08:02 < nsf> var date, ok = iface.(*Date)
08:02 < nsf> is it legal at global scope?
08:02 < nsf> compiler gives a very strange error on that
08:03 < nsf> http://codepad.org/YetdiAjH
08:03 < nsf> looks like that
08:03 <+iant> nsf: that is definitely a compiler bug, please report it
08:03 < nsf> ok
08:03 <+iant> the declaration ought to be valid at global scope, but even if
it isn't the compiler should not crash like that
08:04 < nsf> i see
08:04 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed
the connection]
08:07 -!- mduft [~mduft@193.186.16.254] has quit [Remote host closed the
connection]
08:09 < nsf> http://code.google.com/p/go/issues/detail?id=915
08:09 < nsf> done
08:10 < nsf> implementing a type inference in a Go completion project is
kind of funny :D
08:10 -!- mduft [~mduft@gentoo/developer/mduft] has joined #go-nuts
08:11 < nsf> dark corners of the language come up pretty often :D
08:12 < nsf> also, a question
08:12 < nsf> it looks like in Go this kind of function definition is legal:
08:12 < nsf> func MyFunc(value struct { a, b, c int }) { ...  }
08:12 < nsf> but how should I call this function?
08:12 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
08:13 < KirkMcDonald> With something that is assignment-compatible with that
struct.,
08:13 < nsf> or struct with the same signature will be simply assignable to
this?
08:13 < nsf> ah, yes..  thanks
08:13 < nsf> I see :)
08:13 < KirkMcDonald> http://golang.org/doc/go_spec.html#Assignability
08:14 < nsf> yes, yes, I saw that, just haven't considered this option for
some reason
08:20 -!- noodll [~james@users.vu.union.edu] has left #go-nuts []
08:26 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Quit: WeeChat
0.3.2]
08:26 -!- ikaros [~ikaros@drms-4d015414.pool.mediaWays.net] has quit [Quit: Leave
the magic to Houdini]
08:26 -!- ExtraSpice [~ExtraSpic@88.118.32.225] has quit [Quit: Leaving]
08:28 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
08:47 -!- jA_cOp [~yakobu@unaffiliated/ja-cop/x-9478493] has joined #go-nuts
08:49 -!- ExtraSpice [~ExtraSpic@88.118.32.225] has joined #go-nuts
08:57 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 252
seconds]
09:07 -!- rlab [~Miranda@98-170-113-92.pool.ukrtel.net] has quit [Quit: Miranda
IM! Smaller, Faster, Easier.  http://miranda-im.org]
09:08 -!- rhelmer_ [~rhelmer@adsl-69-107-89-49.dsl.pltn13.pacbell.net] has quit
[Ping timeout: 264 seconds]
09:15 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
09:19 -!- General13372 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined
#go-nuts
09:22 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit
[Ping timeout: 260 seconds]
09:29 -!- Fish-Work [~Fish@86.65.182.207] has quit [Ping timeout: 264 seconds]
09:29 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 240 seconds]
09:34 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
09:40 -!- mikespook [~mikespook@58.62.5.54] has quit [Quit: Leaving.]
09:45 -!- aho [~nya@f051073049.adsl.alicedsl.de] has quit [Ping timeout: 265
seconds]
09:55 -!- sauerbraten [~sauerbrat@p508CF30B.dip.t-dialin.net] has joined #go-nuts
10:10 -!- visof [~visof@unaffiliated/visof] has joined #go-nuts
10:10 -!- rbraley [~rbraley@ip72-222-128-78.ph.ph.cox.net] has quit [Read error:
Connection reset by peer]
10:16 -!- jdp [~gu@24.238.32.162.res-cmts.segr.ptd.net] has quit []
10:16 -!- mduft [~mduft@gentoo/developer/mduft] has quit [Quit: Leaving]
10:47 -!- mduft [~mduft@gentoo/developer/mduft] has joined #go-nuts
10:59 -!- Soultaker [~maks@hell.student.utwente.nl] has quit [Read error:
Connection reset by peer]
11:12 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 265
seconds]
11:17 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.2]
11:18 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has joined
#go-nuts
11:18 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]]
11:24 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
11:35 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]]
11:37 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
11:38 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts
11:43 -!- GeoBSD [~geobsd@lns-bzn-33-82-252-55-34.adsl.proxad.net] has joined
#go-nuts
11:48 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has quit [Quit:
KVIrc Equilibrium 4.1.0, revision: 4632, sources date: 20100519, built on:
2010-07-09 07:13:47 UTC http://www.kvirc.net/]
12:11 -!- Fish-Work [~Fish@86.65.182.207] has joined #go-nuts
12:22 -!- tvw [~tv@e176000205.adsl.alicedsl.de] has joined #go-nuts
12:23 -!- MizardX [~MizardX@unaffiliated/mizardx] has joined #go-nuts
12:25 -!- anykey [~anykey@unaffiliated/anykey] has joined #go-nuts
12:50 -!- taruti [taruti@aoi.yi.org] has joined #go-nuts
12:52 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
12:52 -!- Shyde [~Shyde^^@HSI-KBW-078-043-070-132.hsi4.kabel-badenwuerttemberg.de]
has joined #go-nuts
12:53 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]]
13:05 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Ping timeout: 265
seconds]
13:08 -!- napsy_ [~napsy@193.2.66.101] has joined #go-nuts
13:11 -!- sladegen [~nemo@unaffiliated/sladegen] has joined #go-nuts
13:16 -!- rlab [~Miranda@98-170-113-92.pool.ukrtel.net] has joined #go-nuts
13:16 -!- tvw [~tv@e176000205.adsl.alicedsl.de] has quit [Ping timeout: 265
seconds]
13:18 -!- path[l] [~path@122.182.0.38] has joined #go-nuts
13:28 -!- skelterjohn [~jasmuth@c-76-116-181-134.hsd1.nj.comcast.net] has joined
#go-nuts
13:28 -!- artefon [~thiago@189.107.226.217] has joined #go-nuts
13:28 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
#go-nuts
13:33 -!- i__ [~none@nkvd.ath.cx] has quit [Changing host]
13:33 -!- i__ [~none@unaffiliated/i--/x-3618442] has joined #go-nuts
13:43 < nsf> http://nsf.github.com/images/gocode3.png <- type inference
in action :D
13:44 < jessta> cool
13:45 -!- skelterjohn [~jasmuth@c-76-116-181-134.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
13:45 < nsf> but there are still a lot of work to be done
13:45 < nsf> :(
13:46 < nsf> the next big step is local variables
13:48 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit:
This computer has gone to sleep]
13:54 -!- Robbo_ [~Robbocogs@CPE-124-179-73-25.lns5.cht.bigpond.net.au] has joined
#go-nuts
13:59 * anykey is torn between "Go needs more work" and "Hey, let's use this for
productive coding at the job".  Can anyone offer some insight?
14:00 -!- incluye [~inklewyay@NW-ESR1-74-215-114-218.fuse.net] has joined #go-nuts
14:01 < nsf> anykey: both are true :)
14:01 < nsf> I mean it certainly can be used for productive coding
14:01 < nsf> and it needs more work
14:01 < nsf> :)
14:02 < nsf> compiler and runtime is getting more and more stable
14:02 < nsf> but a lot of libraries and tools are still missing
14:02 < anykey> yeah, I am more concerned about oracle database connectivity
14:02 < anykey> yes, missing libraries.
14:03 < anykey> I have not found documentation about go's FFI and how to use
it.  Is there any?
14:03 < anykey> But I have only been looking into Go sice Sunday morning
14:03 -!- kanru [~kanru@61-228-163-199.dynamic.hinet.net] has joined #go-nuts
14:03 < nsf> there are few examples of interfacing with C in GOROOT/misc/cgo
14:04 < anykey> ah, the distribution.  good idea.
14:04 < anykey> They must've done it somehow after all.
14:05 < anykey> umm
14:05 < anykey> that seems...  almost easy.
14:06 < nsf> it is straightforward
14:06 < nsf> and ugly
14:06 < nsf> :)
14:07 < temoto> nsf, whoa, russian vim
14:07 < nsf> :D
14:08 < temoto> nsf, how can i get that thing too?
14:08 < nsf> temoto: as soon as it will be release, it's in the early
development stage for now
14:08 < nsf> a lot of things messy and everything is changing very fast
14:08 < nsf> are messy*
14:09 -!- tvw [~tv@e176000205.adsl.alicedsl.de] has joined #go-nuts
14:09 < nsf> I'll probably a drop a message on the ML when it's ready
14:09 -!- Robbo_ [~Robbocogs@CPE-124-179-73-25.lns5.cht.bigpond.net.au] has left
#go-nuts []
14:09 < temoto> nsf, thanks.
14:10 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has joined #go-nuts
14:10 -!- plainhao [~plainhao@mail.xbiotica.com] has joined #go-nuts
14:23 -!- tvw [~tv@e176000205.adsl.alicedsl.de] has quit [Ping timeout: 265
seconds]
14:28 -!- rlab [~Miranda@98-170-113-92.pool.ukrtel.net] has quit [Read error:
Connection reset by peer]
14:45 < sauerbraten> is there a .pdf-version of the standard go tutorial
(http://golang.org/doc/go_tutorial.html) ?
14:45 -!- awidegreen [~quassel@62.176.237.78] has joined #go-nuts
14:50 -!- Yoann512 [~yoann512@nyx.sheraf.net] has joined #go-nuts
14:51 -!- Yoann512 [~yoann512@nyx.sheraf.net] has left #go-nuts []
14:53 -!- napsy_ [~napsy@193.2.66.101] has quit [Quit: leaving]
14:54 < temoto> sauerbraten, there's $GOROOT/doc/GoCourseDay{1,2,3}.pdf
<- very good introductional reading.
14:54 < sauerbraten> mhm k should i first read the normal tut or the pdfs?
14:57 -!- tav [~tav@2001:0:53aa:64c:0:3ffb:abf2:d6bb] has joined #go-nuts
14:58 -!- visof [~visof@unaffiliated/visof] has quit [Quit: Leaving]
14:59 * anykey wonders why there isn't a "Go Book" at all.
15:00 < MizardX> Go isn't old enough for any author to have finished a book
about it.
15:00 < sauerbraten> anykey: i've seen at amazon.de that there will be one
in german in november :)
15:01 < sauerbraten> anykey:
http://www.amazon.com/Go-Programming-John-P-Baugh/dp/1453636676/ref=sr_1_1?ie=UTF8&s=books&qid=1278947125&sr=8-1
15:01 < sauerbraten> also one in english
15:02 -!- ampleyfly [~ampleyfly@h-148-139.A163.priv.bahnhof.se] has quit [Ping
timeout: 276 seconds]
15:02 < anykey> whew, thanks :-)
15:04 < anykey> they really should pick a better searchable name for this
language.  Every time I search for something, I get a ton of hits unrelated.
"golang" helps a bit, but some things don't show up...
15:05 < sauerbraten> i just searched for "go programming" ;-)
15:06 < sauerbraten> can someone explain the echo.go programm in
$GOBIN/doc/progs a little bit?  the NArgs part confuses me...
15:06 < anykey> heh, I tried "go language".
15:06 < sauerbraten> maybe better in private chat, that will be less
embarrassing for me :/
15:07 -!- iant [~iant@62-20-124-50.customer.telia.com] has quit [Read error:
Operation timed out]
15:08 < sauerbraten> forget it i got it now...  -.-
15:09 < plexdev> http://is.gd/dpbgv by [Ian Lance Taylor] in
go/test/fixedbugs/ -- Test case that gccgo fails (crashes rather than printing
error).
15:17 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.]
15:19 < sauerbraten> map in go = dictionary in python?
15:19 -!- artefon [~thiago@189.107.226.217] has quit [Quit: bye]
15:27 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has joined
#go-nuts
15:30 < anykey> not entirely.  The type on the "left hand side" must be
non-struct, iirc
15:30 < anykey> that's because a mapped type must implement ==, and structs
don't.
15:31 < anykey> at least I remember reading that last nicht, very late, so
it might be outdated.
15:31 < anykey> s/nicht/night
15:35 < sauerbraten> ok thanks...  btw you are right:
$GOBIN/doc/go_lang_faq.html#builtin_maps
15:38 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed
the connection]
15:42 -!- kanru [~kanru@61-228-163-199.dynamic.hinet.net] has quit [Ping timeout:
240 seconds]
15:45 < temoto> anykey, python dict put restrictions on keys too.
16:06 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts
16:11 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has quit [Quit:
RobertLJ]
16:11 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has joined
#go-nuts
16:13 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has joined #go-nuts
16:14 -!- Venom_X [~pjacobs@71.21.124.111] has joined #go-nuts
16:14 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
16:21 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has quit [Ping
timeout: 265 seconds]
16:29 -!- path[l] [~path@122.182.0.38] has quit [Quit: path[l]]
16:31 < Ginto8> what does this runtime error mean?
16:31 < Ginto8> panic: runtime error: SIGNONE: no trap
16:34 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
16:37 -!- ampleyfl1 [~ampleyfly@h-148-139.A163.priv.bahnhof.se] has joined
#go-nuts
16:38 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
16:44 -!- Adys [~Adys@unaffiliated/adys] has quit [Quit: I ♥ Unicode]
16:52 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
16:53 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]]
16:54 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has quit [Quit: Mac
has gone to sleep]
16:54 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has joined #go-nuts
16:54 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has quit [Client
Quit]
16:55 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
17:01 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 240 seconds]
17:03 -!- Maxdamantus [~m@203-97-238-106.cable.telstraclear.net] has quit [Ping
timeout: 276 seconds]
17:08 -!- skelterjohn [~jasmuth@c-76-116-181-134.hsd1.nj.comcast.net] has joined
#go-nuts
17:08 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Ping timeout: 258
seconds]
17:09 -!- sladegen [~nemo@unaffiliated/sladegen] has joined #go-nuts
17:10 -!- Maxdamantus [~m@203-97-238-106.cable.telstraclear.net] has joined
#go-nuts
17:11 < temoto> Ginto8, i believe that's exactly the same as pressing Ctrl+\
(sends SIGQUIT) and seeing panic: runtime error: SIGQUIT: ...
17:12 < Ginto8> well what sends SIGNONE?
17:12 < Ginto8> and what does it mean by "no trap"?
17:14 < temoto> Ginto8, "no trap" ought to be a text signal description,
like SIGHUP: "terminal line hangup"
17:14 < temoto> so it's not Go specific
17:14 < Ginto8> hmm
17:15 < temoto> Googling for SIGNONE was surprisingly hard, here's what i
got:
http://docs.google.com/viewer?a=v&q=cache:TIyzD-TqD7sJ:www.redbooks.ibm.com/redpapers/pdfs/redp4059.pdf+signone+unix+signal&hl=en&gl=ru&pid=bl&srcid=ADGEEShh9Sp9-Rm4CK6HSvqGPhliUKqHFtOM6Bj_G422cLF8mVyK1hoNDUIF9CtCvyQDzzfR_xKbcX33Zjm6jAKTfa7zDo40TVlNw53NMs0mxSJzmVK_75yCWclEbGjnX6nCRp_W-mBJ&sig=AHIEtbTakY4hDjEbabZ7vCIf_vo-C8PAtQ
17:15 < temoto> ouch
17:15 < temoto> > Signals -1,0, OUTOFMEMORY and SIGNONE are the memory
signals (see Example 1 on page 8).  If you see one of these signals, go to “Out of
memory error” on page 14.
17:15 < Ginto8> o.o
17:17 < Ginto8> could this be a go bug?
17:17 < temoto> While this
http://xoomer.virgilio.it/infinity77/wxPython/Widgets/wx.Process.html tells that
wx.SIGNONE = 0 —> verify if the process exists under Unix
17:17 < Ginto8> hm
17:17 < Ginto8> very confusing
17:17 < Ginto8> I saw it as a go bug in some version
17:17 < Ginto8> then it got fixed by a new revision
17:18 < temoto> Well if you asked could this be a Perl or GCC bug, i'd tend
to no, but considering Go youth, why not.
17:18 < temoto> Very confusing, indeed.
17:19 < temoto> Ginto8, can you reproduce it?
17:19 < Ginto8> well IDK where the bug happens
17:20 < anykey> temoto: really?  ok, I didn't know that.  I remember using
Python dicts with all sorts of stuff.
17:20 < Ginto8> it shows the current goroutines and what they're doing, but
all I know about the error is that it's caused by a sigpanic() call
17:20 -!- TR2N [email@89.180.161.235] has joined #go-nuts
17:21 < temoto> anykey, with all sorts of immutable hashable stuff as keys.
17:22 < Ginto8> one interesting thing I noticed tho is that in all of the
goroutines they're calling syscalls
17:22 < temoto> Ginto8, could you share the code that causes it?
17:22 < anykey> temoto: that's probably true.  However, I didn't experience
that as restrictive.  Okay.
17:22 < Ginto8> temoto, yeah but it's a few hundred lines and probly crappy
overall
17:22 < Ginto8> one sec
17:23 < temoto> Ginto8, prev.  bug was related to garbage collector.
17:23 < Ginto8> yeah
17:23 < Ginto8> it sounds like it
17:23 < Ginto8> I'm not sure you really want my code
17:23 < Ginto8> it's ugly
17:24 < Ginto8> but here's the full error readout:
17:24 < Ginto8> http://pastebin.com/3NAdV7ex
17:24 < Ginto8> it might also have something to do with cgo
17:24 < Ginto8> =/
17:28 < NfNitLoop> Hrmm, the docs say that Map keys have to imlpement
equality.  (==).  How does an interface implement equality?  (I've tried searching
through docs, but haven't found the relevant bits.) Is it operator==() like in C?
17:28 < NfNitLoop> (er, C++)
17:28 < Ginto8> nope
17:29 < Ginto8> you can't use interfaces or structs as keys
17:29 < Ginto8> and you can't overload operators
17:29 < NfNitLoop> "The key can be of any type for which the equality
operator is defined, such as integers, floats, strings, pointers, and interfaces"
17:29 < NfNitLoop> http://golang.org/doc/effective_go.html
17:29 < NfNitLoop> is that wrong, then?
17:29 < Ginto8> hmmm
17:29 < Ginto8> idk
17:29 < Ginto8> check the docs
17:30 < NfNitLoop> ...  those are the docs.
17:30 < Ginto8> effective go != docs
17:30 < Ginto8> docs == docs
17:30 < Ginto8> http://golang.org/doc/go_spec.html
17:30 < Ginto8> spec == docs
17:30 < NfNitLoop> Mmm, tautologies.
17:31 < temoto> Ginto8, that's a sacred knowledge.  I would expect effective
go to be full blown part of docs.
17:31 < NfNitLoop> I'll read more of the spec.
17:31 < NfNitLoop> but my initial search through it for "operator" and "=="
didn't find relevant bits.
17:31 < NfNitLoop> temoto: Yeah, me too.
17:32 < temoto> NfNitLoop, that's because Go has no operator overloading.
17:32 < NfNitLoop> I mean, it's right there on golang.com, even *before* the
language spec.
17:32 < NfNitLoop> temoto: That's good, IMO.
17:32 < Ginto8> yep
17:32 < NfNitLoop> temoto: then I'm a bit confused how a map key would
"implement equality" as an interface.
17:33 < temoto> NfNitLoop, for example, Equals method.
17:33 < temoto> like in Java, y'kno
17:33 < Ginto8> yeah but for a map key?
17:33 < NfNitLoop> right, but the docs don't seem to define what the
"equality" interface might be.
17:34 < NfNitLoop> from the spec: "If the key type is an interface type,
these comparison operators must be defined for the dynamic key values"
17:34 < NfNitLoop> dynamic key values?
17:34 < temoto> I don't know what's equality interface is, either.  :(
17:34 < Ginto8> NfNitLoop, oh that
17:34 < Ginto8> basically it has o be an integer, float, string, pointer, or
an interface containing one of those things
17:34 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has joined #go-nuts
17:34 < Ginto8> to*
17:35 -!- rlab [~Miranda@98-170-113-92.pool.ukrtel.net] has joined #go-nuts
17:35 < NfNitLoop> I thought interfaces only contained methods?
17:35 < NfNitLoop> Ooooooh.
17:35 < temoto> NfNitLoop, did you get it?
17:36 < temoto> because i didn't
17:36 < Ginto8> an interface is basically a pointer with a specified method
set
17:36 < NfNitLoop> maybe.  So if I have type X interface {}; type Y int;
17:36 < Ginto8> yep
17:36 < Ginto8> that's it
17:36 < NfNitLoop> I could put y into a map [X] string; ?
17:36 < Ginto8> as the key
17:36 < Ginto8> yes
17:36 < NfNitLoop> right.
17:37 < NfNitLoop> weird.
17:37 < NfNitLoop> but some other X...
17:37 < Ginto8> I know
17:37 < NfNitLoop> which wasn't implemented by a primitive type...
17:37 < Ginto8> it's....  odd
17:37 < NfNitLoop> wouldn't go.
17:37 < KirkMcDonald> We were talking about this the other day...
17:37 < temoto> Wait, those two statements unrelated yet.
17:37 < KirkMcDonald> Say the language defines a type Hashable interface {
Equals() bool; Hash() int }
17:38 < KirkMcDonald> Well, Equals(Hashable) bool
17:38 < KirkMcDonald> Or...  something.
17:38 < homa_rano> I don't think the language can support Equals in an
interface without some generics
17:39 < temoto> KirkMcDonald, so the question is, does the language actually
defines such interface?
17:39 < NfNitLoop> homa_rano: Java did.  Everything was just passed as
Object.  :/
17:39 < KirkMcDonald> temoto: Oh, it doesn't.
17:39 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit:
Leaving]
17:39 < temoto> KirkMcDonald, so what are dynamic key values then?
17:39 < KirkMcDonald> I'm just thinking out loud about how you could define
your own hashing behavior.
17:40 < Ginto8> I think right now we're just floundering as we try to find
the answer to an impossible question
17:40 -!- scm [justme@d018229.adsl.hansenet.de] has quit [Ping timeout: 240
seconds]
17:40 < NfNitLoop> impossible?
17:40 < KirkMcDonald> Oh, I see.
17:40 < skelterjohn> what about go makes it impossible to have an interface
{ Hash() int; Equals(other Hashable) bool }?
17:40 < Ginto8> nothing
17:41 < Ginto8> we're just trying to find a way to have a map with a struct
as a key
17:41 < Ginto8> which is, by definition, impossible
17:41 < skelterjohn> if you mean the primitive map type, yes
17:41 < Ginto8> yep
17:41 < KirkMcDonald> This interface concerns me because you will basically
always have to do a type assertion inside of the implementation of Equals.
17:42 < skelterjohn> KirkMcDonald: yep.  something with generics would
presumably be faster
17:42 < Ginto8> well if you have a hash function that also uses type
information to generate the hash, you don't have to
17:43 < skelterjohn> you'd still have to unpack teh struct to compare its
internals
17:43 < skelterjohn> even if you knew for sure that the type was correct
17:43 < KirkMcDonald> Anyway, the phrase "dynamic key values" refers to the
fact that the values inside of an interface{} are of a dynamic type.
17:43 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]]
17:44 < skelterjohn> where does the phrase "dynamic key values" occur?
forgive me for joining the conversation late
17:44 < KirkMcDonald> http://golang.org/doc/go_spec.html#Map_types
17:44 < KirkMcDonald> " If the key type is an interface type, these
comparison operators must be defined for the dynamic key values; failure will
cause a run-time panic."
17:44 < skelterjohn> right.  so having an interface{} that happens to
contain an int is fine
17:44 < skelterjohn> but a random struct is not
17:44 -!- scm [justme@d018229.adsl.hansenet.de] has joined #go-nuts
17:45 < KirkMcDonald> As in: m := make(map[interface{}]bool); m["foo"] =
true; m[12] = true // uh oh
17:45 < skelterjohn> that too
17:45 < Ginto8> hm yeah
17:46 < skelterjohn> introducing some form of generics to the language would
open up a world of useful 3rd party libraries
17:46 < Ginto8> yeah
17:46 < skelterjohn> many of which would be containers of various sorts
17:46 < Ginto8> well there is gotgo
17:47 < Ginto8> which is a pretty good form of them
17:47 < skelterjohn> i suggested in the mailing list that gotgo could be
incorporated into goinstall, for an effective way to do many types of generics
17:47 < skelterjohn> but i got shot down
17:48 < Ginto8> that would be awesome
17:48 < skelterjohn> the main reason cited was that it would not allow
generics to have local types as parameters
17:49 < skelterjohn> for instance, cannot have
Matrix<Matrix<float64>>
17:49 < KirkMcDonald> I've pointed the Go devs at D's implementation of
generics.
17:49 < KirkMcDonald> Which I like quite a bit.
17:49 < Ginto8> well you could have it be partially integrated in goinstall
17:49 < KirkMcDonald> (Well, not generics, but templates.)
17:49 < Ginto8> and also install the generic form
17:49 < Ginto8> so that you can then also specify types
17:49 < KirkMcDonald> (Whether having full-blown templates is preferable to
generics is another matter.)
17:50 < skelterjohn> ok - how about this - your matrix package takes as a
parameter the type T
17:50 < skelterjohn> and within it you want a Matrix<Matrix<T>>
17:50 < skelterjohn> which passes Matrix<T> to a sub-import
17:50 < Ginto8> okay
17:50 < skelterjohn> which wants a
Matrix<Matrix<Matrix<T>>>
17:50 < skelterjohn> etc
17:50 < skelterjohn> well that's a silly example anyway
17:50 < Ginto8> huh?
17:51 < skelterjohn> i'm having trouble reconstructing the argument,
unfortunately
17:51 < Ginto8> a matrix<T> wants a
matrix<matrix<matrix<T>>>?
17:51 < skelterjohn> it was a silly example because that would have an
infinite recursiion no matter how you did it
17:51 < skelterjohn> skip the thought, please.
17:51 < skelterjohn> :)
17:52 < Ginto8> ok
17:53 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has joined
#go-nuts
17:53 < KirkMcDonald> The D concept of templates does a couple of things
right.
17:54 < KirkMcDonald> Or maybe it is more correct to say that C++ got some
things wrong, and D avoids those mistakes.
17:56 < skelterjohn> how does D work?
17:57 < Ginto8> C++ got a number of things wrong
17:57 < KirkMcDonald> First, forget what you know about C++ templates.  :-)
17:57 < Ginto8> D has templates and generics
17:57 < KirkMcDonald> In D, a template is a namespace.
17:57 -!- tvw [~tv@e176000205.adsl.alicedsl.de] has joined #go-nuts
17:57 < Ginto8> a const namespace
17:57 < KirkMcDonald> Ginto8: The "generics" are just syntactic sugar for
templates.
17:57 -!- jchico [~jchico@cpe-98-14-12-209.nyc.res.rr.com] has joined #go-nuts
17:57 < Ginto8> good point
17:58 < KirkMcDonald> Ginto8: "Const"?
17:58 < KirkMcDonald> Anyway.
17:58 < Ginto8> well the values don't change once the template exists do
they?
17:58 < KirkMcDonald> A template without anything in it might look like:
template Foo(T) {}
17:58 -!- path[l] [~path@122.182.0.38] has joined #go-nuts
17:59 < KirkMcDonald> Ginto8: Depends on which values you're talking about.
17:59 < KirkMcDonald> Ginto8: Template parameters are compile-time
constants.
17:59 < KirkMcDonald> Ginto8: But a template can contain any declarations,
including non-const variable declarations.
17:59 < Ginto8> oh
17:59 < Ginto8> THAT I didn't know
17:59 < Ginto8> ok then thanks for clarifying
17:59 -!- path[l] [~path@122.182.0.38] has quit [Client Quit]
18:00 < KirkMcDonald> So, in the example above, Foo is the name of the
template, and T is a (type) parameter.
18:00 < Ginto8> yeah
18:00 -!- snearch [~snearch@f053006172.adsl.alicedsl.de] has joined #go-nuts
18:00 < KirkMcDonald> Inside the curly braces, you can put any declarations.
Variables, functions, classes, other types, and other templates.
18:01 < KirkMcDonald> And you can put any number of declarations.
18:01 < temoto> I think it could be said in two words that generics/template
is a program with types as first class values.  With all bonuses derived from this
definition.
18:01 < KirkMcDonald> temoto: Not just types, but also compile-time values.
18:01 < KirkMcDonald> D permits floats and strings as template parameters.
18:02 < temoto> KirkMcDonald, you mean literals?
18:02 < KirkMcDonald> Yes.
18:02 < KirkMcDonald> And compile-time string manipulation can be useful.
18:02 < temoto> Yeah, operating on literals is useful at times.
18:03 < KirkMcDonald> (Since you can slice or concatenate two compile-time
string values and get another compile-time value.)
18:03 < KirkMcDonald> (Which permits all manner of wackiness.)
18:04 < Ginto8> yeah
18:04 < KirkMcDonald> Anyway.  Take this template: template Foo(T) { class
Foo { T t; } }
18:04 < temoto> The downside is that no matter how languages sugars it,
effectively compilation is a two-step process, which means that final output is
now two steps away from what you wrote.
18:04 < KirkMcDonald> There we have a parameterized class.
18:04 < KirkMcDonald> Normally, you'd refer to the class as, say:
Foo!(int).Foo
18:05 < KirkMcDonald> The !() is D's syntax for instantiating a template.
18:05 < temoto> whoa explicit instantiation
18:05 < KirkMcDonald> The .Foo is there because the Foo class is inside the
Foo template (which is a namespace, remember).
18:05 -!- geocalc [~geobsd@lns-bzn-26-82-254-89-236.adsl.proxad.net] has joined
#go-nuts
18:06 < KirkMcDonald> But D has a special case where, if a template contains
exactly one declaration, and that declaration has the same name as the template,
you can refer to that declaration implicitly.
18:06 -!- GeoBSD [~geobsd@lns-bzn-33-82-252-55-34.adsl.proxad.net] has quit [Ping
timeout: 260 seconds]
18:06 < KirkMcDonald> So Foo!(int) can be used to refer to the class.
18:06 < KirkMcDonald> And then on top of this, there is some syntactic
sugar: class Foo(T) { T t; }
18:06 < KirkMcDonald> Which is equivalent to the template I mentioned above.
18:07 < temoto> Which is "just parametrized type".
18:07 < KirkMcDonald> Similarly for functions: void bar(T)(T t) {}
18:08 < KirkMcDonald> With functions, there is Implicit Function Template
Instantiation, which means that it will infer the template parameters from the
types of the arguments.
18:08 < KirkMcDonald> bar(12); // works
18:08 < KirkMcDonald> bar!(int)(12); // equivalent
18:09 < temoto> Very nice.  (except for tons of parens syntax) I thought
that D is much worse than this.
18:09 < KirkMcDonald> D does a couple things right.
18:09 < KirkMcDonald> Templates are one of them.
18:09 < KirkMcDonald> delegates are another.
18:09 < temoto> Delegates as in lambdas?
18:09 < KirkMcDonald> Dynamic arrays (very similar to Go's slices) are a
third.
18:10 < KirkMcDonald> temoto: Not exactly.
18:10 < Ginto8> temoto, delegates as in closures or bound method pointers
18:10 < KirkMcDonald> So there are function pointers, and there are
delegates.
18:10 < KirkMcDonald> A delegate is just a struct containing a function
pointer and a context pointer.
18:11 < KirkMcDonald> They are used for both closures, and for bound method
pointers.
18:11 -!- monteslu [~monteslu@ip68-109-175-168.ph.ph.cox.net] has quit [Remote
host closed the connection]
18:11 < temoto> Ginto8, for some reason i used to concatenate meanings of
'lambda' and 'closure'.  Maybe because i haven't seen a language where anonymous
functions aren't closures.
18:11 < Ginto8> hm
18:11 < Ginto8> okay
18:12 < KirkMcDonald> temoto: Astonishingly, D1.0's closures are "weak"
closures.
18:12 < KirkMcDonald> Meaning that when they reference variables from the
enclosing function's stack frame, those references are only valid so long as the
frame is valid.
18:12 < KirkMcDonald> So you can pass them down the call stack, but not up
the call stack.
18:13 < KirkMcDonald> (D2 fixes this, but I don't think anyone uses D2.)
18:14 < KirkMcDonald> The advantage, I guess, is that this makes them very,
very cheap.  But they can be ever so dangerous.
18:14 < KirkMcDonald> Which is a pity, because it manages to have such a
nice syntax for them.
18:14 < temoto> KirkMcDonald, and by saying that D does lambdas right, you
mean D2 then?
18:14 < KirkMcDonald> temoto: I said it did *delegates* right.
18:14 < KirkMcDonald> As in, the type to which lambdas are assigned.
18:15 < KirkMcDonald> The syntax for a lambda is just some code inside of
curly braces, e.g.: f({ writefln("hello world"); }); // pass this anonymous
function to f()
18:16 < KirkMcDonald> Where f might be: void f(void delegate() dg) { dg(); }
18:16 < temoto> Well, in a strictly typed language any function is supposed
to be typed, so lambda should have a well defined type...  i don't see anything
'done right' more than it could be done.
18:17 < KirkMcDonald> temoto: The trick is that the 'delegate' types can
also act as pointers to bound methods.
18:17 < KirkMcDonald> temoto: It is very much like the 'func' types in Go.
18:17 < Ginto8> yeah cuz func types can actually reference methods
18:18 < Ginto8> func(T, params...)
18:18 < Ginto8> right?
18:18 < temoto> KirkMcDonald, okay, i guess it needs strong C++ background
to value that sort of thing which is just given in languages i used.
18:18 < KirkMcDonald> temoto: Right.  C++ is hopeless when it comes to
callbacks-with-context.
18:18 < Ginto8> yeah C++ isn't very good with that sorta thing
18:19 < KirkMcDonald> If you're lucky, you'll get a template where you can
pass any callable type.
18:19 < KirkMcDonald> If you're not, you'll get a void set_callback(void
(*fn)(void*), void *ptr)
18:20 < KirkMcDonald> And if you're really unlucky you'll just get a
function pointer and a wish for good luck.
18:20 -!- path[l] [~path@120.138.102.50] has joined #go-nuts
18:21 -!- jackman [~jackman@c-24-21-216-140.hsd1.or.comcast.net] has quit [Quit:
leaving]
18:22 < temoto> And still D overcomplicate things (for my opinion).
Delegates, bound methods...  It could be: there is a function, there is type.
Compose them any way you like.  End of story.  Like in Go and a bunch of other
languages.
18:22 -!- qIIp [~qIIp@134.29.57.71] has joined #go-nuts
18:24 < Ginto8> temoto, I agree
18:25 < KirkMcDonald> I am not sure how this is overcomplicating matters.
18:25 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has joined
#go-nuts
18:25 < Ginto8> well I think it's just that we prefer just func() types
18:25 < KirkMcDonald> The one complication is that there are distinct
function-pointer and delegate types.
18:26 < KirkMcDonald> But delegates are about 100% more useful.
18:26 < Ginto8> yeah that's what he's talkin bout
18:27 < plexdev> http://is.gd/dpmXX by [Micah Stetson] in go/src/pkg/json/
-- json: Add HTMLEscape
18:27 -!- artefon [~thiagon@150.164.2.20] has quit [Ping timeout: 240 seconds]
18:27 < temoto> Yeah, there are people talking about delegates and there are
people doing useful work.  :)
18:32 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts
18:39 -!- dju [dju@fsf/member/dju] has joined #go-nuts
18:42 -!- aho [~nya@fuld-4d00d1f5.pool.mediaWays.net] has joined #go-nuts
18:42 -!- dju [dju@fsf/member/dju] has quit [Max SendQ exceeded]
18:43 -!- dju [dju@fsf/member/dju] has joined #go-nuts
18:45 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts
18:47 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has quit [Quit:
mxweas]
18:49 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has joined
#go-nuts
18:51 -!- path[l] [~path@120.138.102.50] has quit [Quit: path[l]]
18:54 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts
18:54 -!- mode/#go-nuts [+v iant] by ChanServ
18:54 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Ping timeout: 258
seconds]
18:55 -!- sladegen [~nemo@unaffiliated/sladegen] has joined #go-nuts
18:59 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts
19:01 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has joined
#go-nuts
19:04 -!- iant1 [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts
19:04 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Read error:
Connection reset by peer]
19:06 -!- tav_ [~tav@84.13.41.68] has joined #go-nuts
19:06 < anykey> I can't believe it.  This is the fastest response to a
proposal EVER received.  My boss approves the usage of Go.
19:07 -!- tav [~tav@2001:0:53aa:64c:0:3ffb:abf2:d6bb] has quit [Remote host closed
the connection]
19:08 < plexdev> http://is.gd/dppn2 by [Charles L. Dorian] in
go/src/pkg/math/ -- math: amd64 version of log
19:14 -!- snearch [~snearch@f053006172.adsl.alicedsl.de] has quit [Quit:
Verlassend]
19:21 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has quit [Quit:
hcatlin]
19:25 -!- path[l] [UPP@120.138.102.50] has joined #go-nuts
19:26 -!- path[l] [UPP@120.138.102.50] has quit [Client Quit]
19:28 -!- plainhao [~plainhao@mail.xbiotica.com] has quit [Quit: plainhao]
19:32 -!- iant1 [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Ping timeout:
258 seconds]
19:36 -!- artefon [~thiagon@150.164.2.20] has quit [Ping timeout: 252 seconds]
19:37 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts
19:37 -!- rhelmer [~rhelmer@adsl-69-107-64-67.dsl.pltn13.pacbell.net] has joined
#go-nuts
19:40 -!- Xurix [~Luixsia@AToulouse-254-1-67-220.w81-49.abo.wanadoo.fr] has joined
#go-nuts
19:41 -!- rhelmer [~rhelmer@adsl-69-107-64-67.dsl.pltn13.pacbell.net] has quit
[Client Quit]
19:42 -!- rhelmer [~rhelmer@adsl-69-107-64-67.dsl.pltn13.pacbell.net] has joined
#go-nuts
19:42 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts
19:42 -!- mode/#go-nuts [+v iant] by ChanServ
19:44 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has quit [Quit:
KVIrc Equilibrium 4.1.0, revision: 4632, sources date: 20100519, built on:
2010-07-09 07:13:47 UTC http://www.kvirc.net/]
19:46 -!- qIIp [~qIIp@134.29.57.71] has quit [Quit: leaving]
19:46 -!- iant1 [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts
19:48 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Ping timeout:
260 seconds]
19:48 -!- mode/#go-nuts [+v iant1] by ChanServ
19:49 -!- mbarkhau [~koloss@dslb-088-068-251-010.pools.arcor-ip.net] has joined
#go-nuts
19:50 -!- mbarkhau [~koloss@dslb-088-068-251-010.pools.arcor-ip.net] has quit
[Client Quit]
19:52 -!- rhelmer [~rhelmer@adsl-69-107-64-67.dsl.pltn13.pacbell.net] has quit
[Ping timeout: 240 seconds]
19:55 -!- sauerbraten [~sauerbrat@p508CF30B.dip.t-dialin.net] has quit [Ping
timeout: 265 seconds]
19:56 -!- artefon [~thiagon@150.164.2.20] has quit [Quit: Leaving]
19:57 -!- photron [~photron@port-92-201-115-153.dynamic.qsc.de] has joined
#go-nuts
20:04 -!- anticw [~anticw@c-67-169-41-113.hsd1.ca.comcast.net] has quit [Quit:
Lost terminal]
20:04 -!- anticw [~anticw@c-67-169-41-113.hsd1.ca.comcast.net] has joined #go-nuts
20:11 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has left
#go-nuts []
20:21 -!- iant1 [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts
20:21 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Read error:
Connection reset by peer]
20:26 < plexdev> http://is.gd/dpu2b by [Vinu Rajashekhar] in
go/test/fixedbugs/ -- test/fixedbugs/bug243.go: instead of closing stdout,
20:33 -!- slashus2 [~slashus2@m0e0e36d0.tmodns.net] has joined #go-nuts
20:37 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-151-49.clienti.tiscali.it] has
left #go-nuts []
20:50 -!- iant1 [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Quit:
Leaving.]
20:58 -!- tvw [~tv@e176000205.adsl.alicedsl.de] has quit [Remote host closed the
connection]
20:59 < plexdev> http://is.gd/dpvTb by [Robert Griesemer] in 2 subdirs of
go/src/pkg/ -- container/vector: remove Iter() from interface
21:02 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has quit
[Ping timeout: 265 seconds]
21:04 -!- bmizerany [~bmizerany@dsl081-064-072.sfo1.dsl.speakeasy.net] has joined
#go-nuts
21:10 < anykey> go sure is undergoing a lot of changes in little time.
21:10 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has joined
#go-nuts
21:11 < anykey> the version within my distribution has a "fmt" package that
doesn't know Scanf.
21:15 -!- rlab [~Miranda@98-170-113-92.pool.ukrtel.net] has quit [Read error:
Connection reset by peer]
21:19 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined
#go-nuts
21:19 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Remote host closed the
connection]
21:22 -!- General13372 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit
[Ping timeout: 265 seconds]
21:24 -!- ShadowIce` [pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
21:31 -!- slashus2 [~slashus2@m0e0e36d0.tmodns.net] has quit [Ping timeout: 240
seconds]
21:35 -!- Shyde [~Shyde^^@HSI-KBW-078-043-070-132.hsi4.kabel-badenwuerttemberg.de]
has quit [Quit: Shyde]
21:36 -!- scm [justme@d018229.adsl.hansenet.de] has quit [Remote host closed the
connection]
21:42 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.2]
21:43 -!- Ginto8 [~ginto8@pool-72-82-235-34.cmdnnj.fios.verizon.net] has quit
[Ping timeout: 265 seconds]
21:49 -!- awidegreen [~quassel@62.176.237.78] has quit [Read error: Connection
reset by peer]
21:59 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has quit
[Remote host closed the connection]
22:01 < plexdev> http://is.gd/dpzs0 by [Robert Griesemer] in
go/test/fixedbugs/ -- fix build
22:07 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has joined
#go-nuts
22:14 -!- Xurix [~Luixsia@AToulouse-254-1-67-220.w81-49.abo.wanadoo.fr] has quit
[Quit: Leaving]
22:16 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout:
612 seconds]
22:25 -!- bmizeran_ [~bmizerany@dsl081-064-072.sfo1.dsl.speakeasy.net] has joined
#go-nuts
22:26 -!- bmizerany [~bmizerany@dsl081-064-072.sfo1.dsl.speakeasy.net] has quit
[Ping timeout: 245 seconds]
22:28 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
22:28 -!- scm [~svencm@78.31.65.29] has joined #go-nuts
22:33 -!- scm [~svencm@78.31.65.29] has quit [Ping timeout: 240 seconds]
22:33 -!- scm [~svencm@78.31.65.29] has joined #go-nuts
22:34 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts
22:38 -!- scm [~svencm@78.31.65.29] has quit [Client Quit]
22:44 -!- Fish [~Fish@9fans.fr] has quit [Remote host closed the connection]
22:45 -!- scm [justme@d018229.adsl.hansenet.de] has joined #go-nuts
22:55 -!- Venom_X [~pjacobs@71.21.124.111] has quit [Quit: Venom_X]
22:56 -!- anykey [~anykey@unaffiliated/anykey] has quit [Quit: leaving]
22:58 -!- sakirious [~saki@c-98-223-212-96.hsd1.il.comcast.net] has quit [Quit:
leaving]
23:00 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit:
Leaving]
23:04 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed
the connection]
23:05 -!- [Pete_27] [~noname@115-64-1-61.static.tpgi.com.au] has joined #go-nuts
23:19 < plexdev> http://is.gd/dpDxl by [Robert Griesemer] in go/src/pkg/big/
-- big: added a few missing functions:
23:19 -!- boscop [~boscop@f055064232.adsl.alicedsl.de] has joined #go-nuts
23:31 -!- crashR [~crasher@codextreme.pck.nerim.net] has quit [Quit: (◣_◢)
BigBrowser is watching ⓎⓄⓊ]
23:36 < plexdev> http://is.gd/dpEny by [Andrew Gerrand] in go/src/pkg/http/
-- http: fix ParseURL to handle //relative_path properly
23:36 < plexdev> http://is.gd/dpEnA by [Rob Pike] in go/src/cmd/gc/ -- add
missing argument to usage message.
23:36 < plexdev> http://is.gd/dpEnI by [Peter Mundy] in 4 subdirs of
go/src/pkg/ -- crypto/rand for Windows
23:50 -!- Pete_27 [~noname@115-64-1-61.static.tpgi.com.au] has joined #go-nuts
23:50 -!- [Pete_27] [~noname@115-64-1-61.static.tpgi.com.au] has quit [Read error:
Connection reset by peer]
23:51 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
#go-nuts
23:53 < plexdev> http://is.gd/dpFam by [Russ Cox] in
go/src/pkg/encoding/pem/ -- pem: print \n after 1 header line too
23:53 -!- scm [justme@d018229.adsl.hansenet.de] has quit [Remote host closed the
connection]
23:57 -!- scm [justme@d018229.adsl.hansenet.de] has joined #go-nuts
--- Log closed Tue Jul 13 00:00:12 2010