--- Log opened Sat Jan 08 00:00:01 2011
00:01 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-156-238.clienti.tiscali.it] has
joined #go-nuts
00:01 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-156-238.clienti.tiscali.it] has
quit [Read error: Connection reset by peer]
00:02 -!- Melvar [~melvar@dslb-088-078-150-021.pools.arcor-ip.net] has left
#go-nuts []
00:02 < tylergillies> whats the difference between radix85 and ascii85?
00:03 < tylergillies> s/radix/git/
00:03 < adu> tylergillies: ascii85 begins with A iirc
00:03 < adu> some other base85 start with 0
00:03 <@adg> git:
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~"
00:03 -!- Project_2501 [~Marvin@82.84.98.178] has quit [Ping timeout: 250 seconds]
00:04 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has joined #go-nuts
00:04 -!- jyxent [~jyxent@129.128.191.96] has joined #go-nuts
00:04 < adu> i prefer bases which are a power of 2
00:04 <@adg> basically a different character set
00:04 < adu> i.e.  16, 64
00:04 * adu <3 hexadecimal
00:05 < tylergillies> adu: thnx
00:05 < tylergillies> isn't 85 "more efficient" though since it can encode
more data per character or whatever
00:06 < adu> yes, the higher the number the better
00:06 < adu> base256 is the best, obviously, but in that case it's not
really an encoding at all
00:06 < adu> because it's 100% efficient
00:07 < tylergillies> i have a bigint im trying to make smaller, whats the
best way to do it?  base64 encoded version is still too long, wanting to use an
rsa modulous as identifier
00:07 < adu> tylergillies: use binary
00:07 < tylergillies> i want it to be human readable though
00:07 < adu> tylergillies: i.e.  chose a limb size, like byte/short/int/long
00:07 < tylergillies> for copy/paste
00:07 < adu> oh then hex is the most readable imho
00:08 < adu> base64 just scares me
00:08 < adu> most programmers have an intuitive understanding of dec/hex
numbers
00:08 < tylergillies> but thats pretty long, im trying to keep it short.  i
guess i'll have to sacrifice one or the other
00:08 < adu> then use binary
00:08 < adu> if you want it to be readable, use hex, if you want it to be
short, use base256
00:09 < aiju> use all weird charsof UTF-8 !
00:09 < adu> ya, or base0x10FFFF
00:09 < adu> which is impossible
00:09 < tylergillies> does go support base256?
00:09 < adu> tylergillies: ya, its called bigint
00:09 < tylergillies> oh
00:10 < tylergillies> i thought that was just a long int?
00:11 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
00:11 < tylergillies> oh Int.Format('b')
00:13 -!- Davidian1024 [~Davidian1@173.88.174.84] has joined #go-nuts
00:14 < adu> the only thing I don't like about using base256 in bytestrings
is when they display, they usually display by default in octal, which is even more
wasted space
00:18 -!- ajstarks [~ajstarks@pool-98-109-198-180.nwrknj.fios.verizon.net] has
joined #go-nuts
00:18 -!- niemeyer [~niemeyer@201-40-141-234.pltce701.dsl.brasiltelecom.net.br]
has quit [Ping timeout: 240 seconds]
00:18 -!- ajstarks [~ajstarks@pool-98-109-198-180.nwrknj.fios.verizon.net] has
left #go-nuts []
00:23 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit:
DarthShrine]
00:25 < GilJ> Well, I'm probably doing it wrong, but parsing XML in Go
certainly isn't fun xD
00:25 -!- boscop [~boscop@f055152232.adsl.alicedsl.de] has joined #go-nuts
00:25 -!- vinisterx [~ryan@74-129-202-71.dhcp.insightbb.com] has quit [Quit: Daily
power cycle.]
00:26 < bartbes> parsing XML isn't fun
00:26 < bartbes> that's a general rule
00:26 < aiju> anything just remotely related to XML isn't fun
00:26 < frewsxcv> prasing XML with xpath is uber fun
00:26 < aiju> just like eating nails or chewing glass
00:27 -!- niemeyer [~niemeyer@201-40-141-234.pltce701.dsl.brasiltelecom.net.br]
has joined #go-nuts
00:27 < bartbes> aiju: I'd prefer doing both over manually parsing xml
00:27 < bartbes> (correctly)
00:28 -!- jeffreymcmanus [~jeffreymc@70-36-141-128.dsl.dynamic.sonic.net] has
joined #go-nuts
00:28 < tylergillies> foo.SetString(bar.String(), 256) returns false
00:29 < aiju> bartbes: nobody really parses XML correctly
00:30 < bartbes> one would hope a libexpat does
00:30 < bartbes> for example
00:30 < bartbes> of course one could argue whether there is a correct way ;)
00:30 < aiju> i bet there is some part of the standard they missed
00:33 < bartbes> what standard?
00:33 < aiju> XML
00:33 < bartbes> it
00:33 < bartbes> it's merely a guideline
00:33 < bartbes> :P
00:33 < aiju> WHAAAAT
00:33 < aiju> people keep telling me it is a standard
00:33 < bartbes> come on, no xml format uses the standard
00:33 < aiju> yes, one reason why it's so ridiculous
00:33 < bartbes> (it is formally a standard, it was a joke..)
00:33 < bartbes> I love how html always pretends to be xml
00:34 < bartbes> but fucks up the fundamentals
00:34 < aiju> i love how people always pretend to know XML
00:34 < aiju> but only know 1%
00:35 < tylergillies> json ftw....  ;)
00:35 -!- niemeyer [~niemeyer@201-40-141-234.pltce701.dsl.brasiltelecom.net.br]
has quit [Ping timeout: 240 seconds]
00:35 < bartbes> json sucks as well
00:37 < Xenith> Perhaps, but it seems to be one of the best options
currently :)
00:40 < bartbes> why don't we simply go back to csv?
00:40 < uriel> json is quite damned nice
00:40 < uriel> specially compared to most alternatives
00:40 < uriel> csv is nice too
00:40 < bartbes> it probably has less overhead than any other plaintext
format
00:40 < bartbes> including json, and especially xml
00:40 < uriel> it all depends on whatyou want to store, but in any case, xml
is always the wrong format
00:40 < bartbes> which bloats not just the data, but also the sending and
receiving parties
00:41 < aiju> XML is just wrong
00:41 < bartbes> sql works if it's centralized
00:41 < aiju> SQL works if you wave your hands enough
00:41 -!- Davidian1024 [~Davidian1@173.88.174.84] has quit [Ping timeout: 276
seconds]
00:42 < uriel> SQL works if you are into enough into BDSM
00:42 < bartbes> yup
00:42 < bartbes> gimme that sql
00:42 < bartbes> :P
00:42 -!- tvw [~tv@e176005153.adsl.alicedsl.de] has quit [Remote host closed the
connection]
00:43 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
00:43 < bartbes> well, I mean, it only works if your data actually fits in
its data model
00:43 < bartbes> but other than that it's pretty much fire-and-forget
00:43 -!- jeffreymcmanus [~jeffreymc@70-36-141-128.dsl.dynamic.sonic.net] has left
#go-nuts []
00:44 < aiju> "UNIX has persistent objects, they're called files"
00:44 -!- vinisterx [~ryan@74-129-202-71.dhcp.insightbb.com] has joined #go-nuts
00:50 -!- cafesofie [~cafesofie@dhcp-140-254-204-203.osuwireless.ohio-state.edu]
has quit [Remote host closed the connection]
00:51 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has joined #go-nuts
00:52 -!- salty [~salt@d24-141-238-88.home.cgocable.net] has joined #go-nuts
00:52 -!- crazy2be [~justin@S0106001ac401d400.cg.shawcable.net] has joined
#go-nuts
00:52 -!- cafesofie [~cafesofie@dhcp-140-254-204-203.osuwireless.ohio-state.edu]
has joined #go-nuts
00:53 < salty> hello
00:53 < crazy2be> hello
00:55 < salty> Is this where I can ask a beginner question?
00:56 < crazy2be> sure
00:57 < salty> Ok...  thanks.  Well, I tried to google search, but no
answer.
00:57 < salty> In the docs, there is a HelloServer piece of code.
00:57 < salty> When I try to compile with 8g, I get undefined: http.Conn
00:57 < salty> and cannot convert HelloServer (type func()) to type
http.HandlerFunc
00:58 < crazy2be> you want
00:58 < crazy2be> http.ResponseWriter
00:58 < crazy2be> not http.Conn
00:58 < crazy2be> the API changed somewhere along the way
00:58 < salty> Hmm....  I tried that, but let me try again
01:00 < crazy2be> so your function signature should be
01:00 < salty> Ok works!
01:00 < salty> I tried that though, was sure.
01:00 < crazy2be> oh ok
01:00 < crazy2be> :)
01:00 < crazy2be> can't be a pointer
01:00 < salty> Right.
01:00 < salty> I took out the pointer
01:00 < crazy2be> like your original was *http.Conn
01:01 < salty> exactly
01:02 -!- cafesofie [~cafesofie@dhcp-140-254-204-203.osuwireless.ohio-state.edu]
has quit [Remote host closed the connection]
01:02 < crazy2be> but i had the same issue a couple months ago
01:02 < crazy2be> had to do a find and replace
01:13 -!- thiago__ [~thiago@189.115.126.46] has quit [Read error: Connection reset
by peer]
01:21 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Quit: Leaving]
01:23 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 250 seconds]
01:23 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
01:26 -!- kamaji [~kamaji@cpc2-aztw22-2-0-cust775.aztw.cable.virginmedia.com] has
quit [Ping timeout: 246 seconds]
01:27 -!- kamaji [~kamaji@cpc2-aztw22-2-0-cust775.aztw.cable.virginmedia.com] has
joined #go-nuts
01:28 -!- teejae [~teejae@softbank219185095092.bbtec.net] has joined #go-nuts
01:31 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has joined #go-nuts
01:31 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has quit [Changing host]
01:31 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined
#go-nuts
01:32 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 272 seconds]
01:32 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
01:34 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has quit [Remote
host closed the connection]
01:35 -!- cafesofie [~cafesofie@rnwifi-164-107-92-116.resnet.ohio-state.edu] has
joined #go-nuts
01:42 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 276 seconds]
01:42 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
01:43 -!- cafesofie [~cafesofie@rnwifi-164-107-92-116.resnet.ohio-state.edu] has
quit [Remote host closed the connection]
01:49 -!- cafesofie [~cafesofie@rnwifi-164-107-92-116.resnet.ohio-state.edu] has
joined #go-nuts
01:54 -!- shvntr [~shvntr@116.26.129.248] has joined #go-nuts
02:02 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 265 seconds]
02:02 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
02:08 -!- fenicks [~christian@log77-3-82-243-254-112.fbx.proxad.net] has quit
[Quit: Leaving.]
02:09 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Read error: Operation timed out]
02:09 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
02:22 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 260 seconds]
02:22 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
02:25 -!- bmizerany [~bmizerany@208.66.27.62] has quit [Remote host closed the
connection]
02:26 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined
#go-nuts
02:34 -!- m4dh4tt3r [~Adium@122.166.167.81] has joined #go-nuts
02:34 -!- m4dh4tt3r [~Adium@122.166.167.81] has left #go-nuts []
02:44 -!- Mr_Dark [~dk@poviko.demon.nl] has quit [Read error: Connection reset by
peer]
02:44 -!- Mr_Dark [~dk@poviko.demon.nl] has joined #go-nuts
02:46 -!- foocraft [~dsc@78.101.137.236] has quit [Ping timeout: 240 seconds]
02:50 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
02:51 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
02:55 -!- derferman [~derferman@24-176-188-13.static.reno.nv.charter.com] has quit
[Quit: derferman]
02:55 <@adg> salty: which docs are you referring to?
02:57 * uriel was wondering the same
02:58 <@adg> salty: if they're not the ones at golang.org they may be out of
date
03:01 < salty> I'm referring to everywhere else I gues.
03:01 < salty> I thought I had checked there too, and I thought I had tried
ResponseWriter.
03:01 < salty> oh well...  yes, I just checked and golang has the correct
03:03 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
03:04 -!- exch [~exch@h78233.upc-h.chello.nl] has quit [Read error: Connection
reset by peer]
03:05 <@adg> cool, must making sure :)
03:05 <@adg> s/m/j/
03:10 -!- exch [~exch@h78233.upc-h.chello.nl] has joined #go-nuts
03:10 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
03:10 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
03:11 -!- salty [~salt@d24-141-238-88.home.cgocable.net] has quit [Ping timeout:
255 seconds]
03:12 -!- tokuhiro__ [~tokuhirom@s230.GtokyoFL21.vectant.ne.jp] has quit [Quit:
Tiarra 0.1: SIGTERM received; exit]
03:13 -!- binarypie [~binarypie@c-24-6-151-185.hsd1.ca.comcast.net] has quit
[Remote host closed the connection]
03:14 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 240 seconds]
03:16 -!- boscop_ [~boscop@f055153064.adsl.alicedsl.de] has joined #go-nuts
03:19 -!- boscop [~boscop@f055152232.adsl.alicedsl.de] has quit [Ping timeout: 240
seconds]
03:19 < taruti> Is having a "chan func(*MyDataStructure)" and a loop
executing the functions a good way to handle concurrent access to a data
structure?
03:20 < taruti> or is there a more idiomatic way
03:22 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
03:22 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
03:35 < Eko> taruti: I don't know if it's any more or less idiomatic, but I
have a chan Event, where Event is an interface{}.  Then, I use a type switch on
the event that comes out of the channel, and have a different struct that I pass
in for each kind of thing I want to do (almost all of which have a chan bool for
signaling that it's done processing)
03:37 < Eko> You might make it a chan struct { func(*MyDataStructure)
os.Error; chan os.Error } so the success/failure can be returned back to the
caller (in addition to allowing the caller to ensure completion of the function)
03:39 -!- Scorchin [~Scorchin@host86-147-116-104.range86-147.btcentralplus.com]
has quit [Quit: Scorchin]
03:39 < Eko> the os.Error should probably be sufficient as a return, because
any function literals you make will be able to modify, and thus return, a local
variable if you're simulating a synchronized access.
03:40 < Namegduf> When I was using that approach, I used closures closed
over local variables to get results back.
03:40 < Eko> yep.
03:40 -!- cafesofie [~cafesofie@rnwifi-164-107-92-116.resnet.ohio-state.edu] has
quit [Remote host closed the connection]
03:42 < Eko> I considered using that approach, but I can't remember why I
decided against it.  I think it might've been because I didn't like the thought of
having to change every "accessor" if I ever changed the structure of the data, I
liked having it all in one place.
03:51 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit:
DarthShrine]
03:53 -!- foocraft [~dsc@78.101.137.236] has joined #go-nuts
03:54 < mosva> Morning go-nutcases
03:58 -!- Eridius [~kevin@unaffiliated/eridius] has quit [Ping timeout: 240
seconds]
04:04 -!- micrypt [~micrypt@5ade3e5b.bb.sky.com] has joined #go-nuts
04:05 <@adg> it's the afternoon here ;)
04:06 < taruti> Eko: I just use a closure containing the result-channel that
includes os.Error
04:08 < mosva> Afternoon andrew ;)
04:15 -!- keithcascio [~keithcasc@nat/google/x-ayeweouefeitqwuq] has quit [Quit:
Leaving]
04:25 -!- teejae [~teejae@softbank219185095092.bbtec.net] has quit [Quit: teejae]
04:25 < uriel> interesting: http://code.google.com/p/toy/
04:25 < uriel> adg: I think that is your competition ;)
04:28 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds]
04:29 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping
timeout: 276 seconds]
04:29 -!- iant [~iant@216.239.45.130] has joined #go-nuts
04:29 -!- mode/#go-nuts [+v iant] by ChanServ
04:31 < crazy2be> what is it?
04:33 < uriel> if I got it right, it is a content addressable storage system
04:34 < crazy2be> it seems to have some kind of document functionality that
i don't quite understand
04:34 < crazy2be> likely because it's not entirely implemented
04:35 < crazy2be> but there is some kind of store system too, seems to be
implemented in a client/server model
04:35 < uriel> yea, I haven't figured the whole thing out
04:35 < taruti> uriel: adg has some kind of store system?
04:36 -!- vinisterx [~ryan@74-129-202-71.dhcp.insightbb.com] has quit [Ping
timeout: 240 seconds]
04:36 < uriel> yes, http://github.com/nf/castle
04:37 -!- vinisterx [~ryan@74-129-202-71.dhcp.insightbb.com] has joined #go-nuts
04:38 < taruti> thanks
04:38 < uriel> thank him, he wrote the code :)
04:39 < crazy2be> i don't quite understand the point of a CAS
04:40 < crazy2be> or rather, a CAS system
04:40 < crazy2be> i mean, you're storing it on top of the filesystem anyway
04:40 < crazy2be> so how could it be faster?
04:41 < crazy2be> or would it be a different filesystem type that would be
based on the ideas of CAS?
04:41 < uriel> speed is not the point
04:41 < uriel> although realize that git for example uses a form of CAS
which is part of what allows to be really fast
04:41 < crazy2be> ok, the wikipedia article meantions it quite extensively
04:42 < uriel> see also for example:
http://doc.cat-v.org/plan_9/4th_edition/papers/venti/
04:44 -!- rbrewster [~rbrewster@pool-96-255-165-204.washdc.fios.verizon.net] has
joined #go-nuts
04:44 < rbrewster> Is there anything equivalent to C++ vectors in Go?
04:45 < Namegduf> Slices.
04:45 -!- mosva [~mosva@unaffiliated/mosva] has quit [Read error: Connection reset
by peer]
04:45 -!- mosva [~mosva@unaffiliated/mosva] has joined #go-nuts
04:45 < crazy2be> Namegduf: Can slices be dynamically sized?
04:45 < rbrewster> Slices need an underlying vector, though, right?
04:45 < rbrewster> underlying array*
04:45 < Namegduf> Slices need an underlaying array.
04:46 < KirkMcDonald> rbrewster: When you make() a slice, it will allocate
an array.
04:46 < Namegduf> Slices have a maximum size, but there is the append()
function, which will reallocate the underlying array if it has to, to make it big
enough.
04:46 <+iant> slices can be dynamically sized in the same sense that C++
vectors can be dynamically sized: you can make them bigger when necessary
04:46 < crazy2be> oh, good to know
04:46 < rbrewster> Namegduf: Thanks, good to know.
04:46 < crazy2be> haven't needed that functionality yet
04:47 < crazy2be> but i'm sure i will
04:47 < crazy2be> also, is there a way to sort arrays?  I want to sort
longest string first
04:47 < exch> crazy2be: imlement the sort.Sort interface for your collection
type
04:48 < exch> *implement
04:48 < crazy2be> a sort package!
04:48 < crazy2be> i should of thought of that
04:48 < exch> you can then simply do sort.Sort(mylist)
04:49 < exch> It's as simple as this http://pastie.org/1439329
04:49 -!- derferman [~derferman@24-176-188-13.static.reno.nv.charter.com] has
joined #go-nuts
04:50 * uriel gives a sigh of relief that nobody mentioned container/Vector, lets
hope everyone else have as much good sense to avoid it
04:50 < crazy2be> what is the point of it if arrays have append?
04:50 < Namegduf> Arrays don't have append.
04:50 < exch> exactly
04:50 < Namegduf> Slices do.
04:50 < Namegduf> But yeah.
04:50 < exch> slices do, but still
04:50 < Namegduf> Vector predates append()
04:50 < exch> vector = obsolete
04:51 < Eko> the only thing it has is insert.
04:51 < Eko> but if you need that a lot, use container/list.
04:51 * uriel wishes it was officially marked as obsolete, would save much
headaches
04:51 < Eko> (or your own linked list)
04:51 < Namegduf> append can do it.
04:51 < uriel> and doing insert with append too
04:51 < uriel> Namegduf: exactlyt
04:51 < Namegduf> x = append(x[:i], thing, x[i:])
04:52 < Eko> Namegduf: oh, can you do x = append(x{:n], y, x[n:])?
04:52 < Eko> :P
04:52 < Namegduf> Hmm, good question.
04:52 < crazy2be> exch: Wouldn't the middle one be return len(this[i]) <
len(this[j]) ?
04:52 < Namegduf> I think so!
04:52 < Namegduf> Well, no.
04:52 < Namegduf> Only if it reallocated.
04:52 < Eko> okay, didn't think that would work
04:52 < exch> crazy2be: if you want to filter by string length, then yes
04:52 < Namegduf> You'd have to use copy, then a simple set
04:53 < crazy2be> exch: Awesome!  Thanks
04:53 < Eko> x = append(copy(x{:n]), y, x[n:])?
04:53 < Eko> with a [ instead of a {, of course.
04:53 < Namegduf> Oh, yeah, that'd work.
04:53 < Namegduf> Compiler might not be smart enough to size the copy right
the first time
04:53 < Eko> it kinda defeats the point of append() though.
04:54 < Eko> which is to reuse any unused capacity.
04:54 < Eko> x = append(x[:n]), y, copy(x[n:])) might work better
04:54 < Eko> as the copied slice would be garbage collected.
04:55 < Namegduf> Hmm.
04:56 < Eko> could probably be tested by running it through a loop 10k times
and looking at runtime.MemStats
05:00 -!- vinisterx [~ryan@74-129-202-71.dhcp.insightbb.com] has quit [Ping
timeout: 240 seconds]
05:02 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
05:02 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
05:09 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has quit [Quit:
Leaving.]
05:13 <@adg> uriel: I fixed the Google Code bug ;)
05:13 <@adg> now, off to the beach!
05:13 < uriel> awesome!
05:13 < uriel> enjoy
05:13 < uriel> adg: did you see rob's toy?  or you knew about it already?
05:14 -!- derferman [~derferman@24-176-188-13.static.reno.nv.charter.com] has quit
[Ping timeout: 260 seconds]
05:16 -!- foocraft [~dsc@78.101.137.236] has quit [Quit: Leaving]
05:22 < rbrewster> I want to create a boolean array of size n, and the
compiler is complaining about "var array [n]bool".  Is there a proper way to
declare this array?
05:22 < Namegduf> Use a slice.
05:23 < Namegduf> When creating a slice using make(), the size of the array
allocated can be set at runtime.
05:23 <+iant> array := make([]bool, n)
05:23 < rbrewster> With make([]bool, n), I presume.
05:23 < Namegduf> Arrays have their size as a part of their type and thus
the size is set at the time the type is.
05:37 -!- camnaes [~sean@c-69-255-143-16.hsd1.md.comcast.net] has joined #go-nuts
05:37 < rbrewster> Any idea how the efficiency of slice+append compares to
container.List?
05:44 < KirkMcDonald> I believe that appending to a slice is amortized O(1).
05:44 -!- vinisterx [~ryan@74-129-194-67.dhcp.insightbb.com] has joined #go-nuts
05:45 < rbrewster> Okay, so that's probably the idiomatic way to do this.
05:48 -!- camnaes [~sean@c-69-255-143-16.hsd1.md.comcast.net] has quit [Quit:
camnaes]
05:49 -!- crazy2be [~justin@S0106001ac401d400.cg.shawcable.net] has quit [Ping
timeout: 240 seconds]
05:54 -!- kingfishr [~kingfishr@c-98-207-87-183.hsd1.ca.comcast.net] has quit
[Quit: Leaving]
06:00 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
06:00 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
06:07 < anticw> rbrewster: at least as well, probably quite a bit better in
some cases
06:08 -!- reubenbond [~reubenbon@220-253-10-101.VIC.netspace.net.au] has joined
#go-nuts
06:10 < reubenbond> I wonder if I could have a small bit of help, I do not
understand this compilation error: http://pastebin.com/FfFThft5
06:11 < reubenbond> The compilation error is at the top of the file, it is:
prob3.go:7: invalid operation: n % divisor (type int64 % int) ...  but 'divisor'
is taken from 'range divisors'
06:11 < reubenbond> which is a slice of int64
06:12 < reubenbond> (at least that's what I intended it to be)
06:13 -!- tokuhiro_ [~tokuhirom@s230.GtokyoFL21.vectant.ne.jp] has joined #go-nuts
06:14 < rbrewster> Yeah.
06:14 < rbrewster> range divisors is giving you pairs.
06:14 < rbrewster> You want to say _, divisor := range divisors
06:14 -!- tokuhiro_ [~tokuhirom@s230.GtokyoFL21.vectant.ne.jp] has quit [Remote
host closed the connection]
06:14 -!- tokuhiro_ [~tokuhirom@s230.GtokyoFL21.vectant.ne.jp] has joined #go-nuts
06:15 < reubenbond> oh of course
06:15 < reubenbond> thanks :D
06:16 < reubenbond> Although what is the meaning of that ignored output?
It's the number of values read from the range?
06:17 < rbrewster> (index, value).
06:17 < rbrewster> So it'd be 0, 1, 2, 3, 4, 5, etc.
06:17 < reubenbond> It's probably more common to want the value...  the
common case would be prettier if those were swapped
06:18 < anticw> then it would be odd for maps
06:18 < rbrewster> I imagine it's probably more useful for things like maps.
06:18 < anticw> where it's (k, v)
06:19 < reubenbond> but for arrays, slices, channels...  where typically you
only want the value, it makes more sense.  Whereas in the map case, often you only
care for the value, rarely just the key, but regardless can just swap the order
06:20 < reubenbond> (whoops: channels don't have an index, mistake there)
06:22 < rbrewster> Erm.
06:22 < rbrewster> I think you are misunderstanding the _, v
06:22 < rbrewster> Even if you swapped the order, you would still have to do
v, _
06:23 < rbrewster> "for v, _ := range L" is not a whole lot prettier than
"for _, v := range L".
06:23 < anticw> you can do for idx := range slice
06:23 < rbrewster> Oh?
06:23 < rbrewster> My mistake, then.
06:23 < anticw> sure, it's useful in fact
06:24 < anticw> i might argue more than value
06:24 < anticw> if it's value ...  you can't use that for updating ...  so
if you range a slice to make changes, you need idx for that & value is useless
06:24 < anticw> because it's a copy
06:25 < reubenbond> Yeah, I suppose that's true, but you could use the
multi-value form for updating
06:25 < reubenbond> slice[index] = value+1
06:25 < reubenbond> Thanks for the help :) My program is generating primes
fairly quickly now
06:42 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 255 seconds]
06:42 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
06:51 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
06:51 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
06:52 -!- Boney_ [~paul@124-168-86-230.dyn.iinet.net.au] has joined #go-nuts
06:52 -!- Boney [~paul@124-148-166-171.dyn.iinet.net.au] has quit [Ping timeout:
260 seconds]
06:55 -!- swdunlop [~swdunlop@96.26.45.40] has joined #go-nuts
06:57 < Eko> does make(chan int, 0) make a synchronous channel?
07:01 < anticw> yes
07:01 < anticw> ,0 not needed
07:07 -!- arun [~arun@unaffiliated/sindian] has quit [Ping timeout: 260 seconds]
07:10 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has joined #go-nuts
07:13 -!- arun [~arun@unaffiliated/sindian] has joined #go-nuts
07:14 -!- tensorpudding [~user@99.23.127.179] has quit [Read error: Connection
reset by peer]
07:15 -!- cafesofie [~cafesofie@rnwifi-164-107-92-116.resnet.ohio-state.edu] has
joined #go-nuts
07:17 < rbrewster> Is there a reason that initializing a variable like "s :=
0" requires the := but "var s int = 0" does not?
07:19 < Namegduf> Because := is the syntax for the short, var-less
declaration.
07:19 < anticw> := creates (implies the type) and assigns
07:19 < Namegduf> And var blah blah = 0 is the syntax for the long form.
07:19 < Namegduf> They're different types of syntax.
07:19 < thomaslee> rbrewster: := is for an implicit variable declaration ...
in the latter, you're already explicitly stating that you're declaring a variable
using the "var" keyword.
07:19 < rbrewster> Okay.
07:20 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Read error: Operation timed out]
07:20 < rbrewster> And the implicit declaration is the only one allowed
within a for-loop?
07:20 < Namegduf> No.
07:20 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
07:22 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts
07:22 < anticw> though it is useful there to limit scope, as it is with if
07:31 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 264 seconds]
07:32 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
07:39 < reubenbond> rbrewster, the restriction on the short declaration is
that it's only allowed within a function
07:40 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 272 seconds]
07:40 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
07:43 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
07:46 -!- coldturnip [~COLDTURNI@118-166-65-19.dynamic.hinet.net] has quit [Ping
timeout: 250 seconds]
07:47 -!- illya77 [~illya77@1-92-133-95.pool.ukrtel.net] has joined #go-nuts
07:51 -!- coldturnip [~COLDTURNI@118-166-78-153.dynamic.hinet.net] has joined
#go-nuts
07:51 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 276 seconds]
07:52 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
07:54 < rbrewster> Can anyone point me to a simple example of reading
formatted input from a text file?
07:55 < anticw> define formatted
08:00 -!- nettok [~quassel@200.119.166.253] has quit [Ping timeout: 265 seconds]
08:00 -!- adu [~ajr@c-76-23-82-40.hsd1.in.comcast.net] has quit [Quit: adu]
08:02 < anticw> rbrewster: it depend what you want, but look at Scan, Fields
& Split for breaking this up
08:03 < rbrewster> To be more explicit, I have a 20x20 grid of numbers in a
text file, and I'd like to read them into a 20x20 integer grid.
08:06 < anticw> 20 lines space delimited?
08:07 -!- yihuang [~yihuang@183.17.175.127] has joined #go-nuts
08:07 -!- yihuang [~yihuang@183.17.175.127] has left #go-nuts []
08:08 -!- sacho [~sacho@95-42-85-91.btc-net.bg] has quit [Quit: Ex-Chat]
08:19 < rbrewster> Yes.  Each integer is space-separated, and each line
contains exactly 20 integers.
08:20 < swdunlop> https://gist.github.com/770670
08:21 < anticw> rbrewster: iotuil.ReadFile -> string(...) ->
strings.Split("\n", -1) -> (give lines) for each line strings.Fields()
08:22 < anticw> swdunlop: does Scanf ignore \n ?
08:22 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 276 seconds]
08:22 < anticw> i wasn't sure what it would do at EOL
08:22 < swdunlop> Let me verify; my test missed that.
08:22 < rbrewster> swdunlop: I am having an issue actually getting it to
read from a file.
08:23 < swdunlop> in lieu of fmt.Scan, just use fmt.Fscan, then.
08:23 < rbrewster> I can handle stdin, but cannot get a Reader out of a
filename.
08:23 < anticw> swdunlop: bytebuffer, err := ioutil.ReadFile("someFile")
08:23 < anticw> unless the files are large just do it all in one read and
rip it apart
08:23 < swdunlop> godoc os Open
08:23 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
08:24 < swdunlop> but I like anticw's idea better, really :)
08:24 < anticw> open + read ...  you do lots of syscalls and mucking about
08:24 < swdunlop> I only started running down the rabbit hole because I was
curious how fmt.Scan would handle a slice of integers.
08:24 < swdunlop> answer: it doesn't :)
08:24 < anticw> you can avoid syscalls with a bufio, but even so it's more
complex
08:25 < swdunlop> anticw: any particular reason for avoiding syscalls
08:25 < swdunlop> ?
08:25 < anticw> not really, makes strace ugly :-)
08:26 < anticw> but for large data sets it hurts perf
08:26 < anticw> you really want to read good sized chunks of data at a time,
not a byte or so
08:26 < Namegduf> Is there any way to use thread local storage in Go?
08:26 < anticw> go has no threads
08:26 < anticw> so it's not clear what you mean
08:26 < Namegduf> Goroutine local storage, then
08:27 < Namegduf> I have a horrible synchronisation problem with things
calling into themselves via external hooks
08:27 < anticw> no, just limit the scope
08:27 < Namegduf> That requires adding a "goroutine state" parameter to
pretty much literally every function
08:27 < anticw> external meaning from C ?
08:27 < Namegduf> External meaning in unrelated packages.
08:27 < anticw> if that's the case there is a way to lock goroutines to
threads because of TLS reasons
08:28 < swdunlop>
http://blog.golang.org/2010/07/share-memory-by-communicating.html
08:28 < Namegduf> That's nice and also entirely unhelpful (I didn't even say
I was using mutexes; in this case its a mixture)
08:28 < taruti> Namegduf: passing closures is not an option?
08:28 < Namegduf> taruti: The problem I have in short is that things being
changed can call hooks which can do arbitrary things, including change the same
thing.
08:29 < anticw> change is what?
08:29 < anticw> like a map update?
08:29 < Namegduf> Basically, yeah.
08:29 < Namegduf> Value changes to the structure in question.
08:29 < anticw> use a lock
08:30 < Namegduf> I need to, in order to image the thing reliably, block it
AND wait until all the hooks are called, so I can get a reliable copy of the state
and know that any hooks called after that copy is taken are changes made after it
was taken.
08:30 < anticw> that's what i do
08:30 < Namegduf> The problem is that it'd need to be reentrant.
08:30 < anticw> ouch
08:30 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 272 seconds]
08:31 < Namegduf> The hooks are allowed to call back into the structure.
They must be allowed to run so they can clear out, but "new" changes can't go in
so eventually the queue of hooks to run clears while this code is executing either
with a lock or in a goroutine with access to the structure, it makes no
difference.
08:31 < Namegduf> I can't see a way to do reentrant locks without either a
goroutine ID or goroutine local storage
08:32 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
08:32 -!- salty [~kvirc@d24-141-238-88.home.cgocable.net] has joined #go-nuts
08:33 < anticw> you could hack something up fiarly easily, but it sounds
like the problem should really be expressed differently
08:33 < anticw> hard to say though w/o knowing the code
08:33 < swdunlop> any chance that you can break the concurrency to a
multiple reader / single writer model so you can use an rwlock ?
08:34 < Namegduf> It's not an easy problem to solve.  The basic problem is
that I need to take some state being concurrently modified, with modifications
triggering hooks which can in themselves do modifications, and copy it to a new
process over a network.
08:34 < Namegduf> And then relay changes to that state as they happen.
08:35 < Namegduf> This means that the thing doing the relaying must hook
changes, but it must know which changes are after the original state it sent.
08:36 < anticw> rbrewster: btw, if it's for sure 20 x 20 each time ...  read
+ split -> process would work
08:36 < swdunlop> but you cannot use a channel to notify the observer of
these changes in a sequential fashion?
08:36 < Namegduf> Which means having all the hooks leading to the current
state having already been executed at the time the structure is copied.
08:36 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined
#go-nuts
08:36 < anticw> you dont have to split then split again
08:36 < swdunlop> because the observer may need to produce changes as well?
08:36 < Namegduf> Right.
08:37 < rbrewster> anticw: I'll try both the os.Open()+scanner method and
the read+split method.
08:37 < Namegduf> Observer is outside the package.  It is allowed and in
some cases will want to make changes itself in response to other changes it sees.
08:37 < Namegduf> At present, changes cause a closure to be sent to a hook
runner goroutine, which just spins running hooks, while the current thing carries
on (and either waits for the next request to come in on a channel or the next
thing to acquire the lock; they're equivalent here)
08:38 < anticw> rbrewster: strings.Fields will work on the entire dataset
08:38 < swdunlop> what if you have a process, call it Mutator, that consumes
messages instructing it to perform changes on its opaque state, and N observers
which are informed of changes by the Mutator.  The observers can pass their own
required changes on to the Mutator.
08:39 < Namegduf> Won't work as described there.
08:39 < anticw> try fmt.Printf("%v\n", strings.Fields("1 2 3 \n 4 5 6 \n 7 8
9"))
08:39 < swdunlop> that lets you break it to a rwlock; mutator seizes write
when it does a mutation
08:39 < Namegduf> Unless you use buffered channels, which could work, but
are no change to the current setup.
08:39 < swdunlop> so other threads can observe using read
08:39 < Namegduf> That doesn't solve the problem.
08:40 < Namegduf> Hmm.
08:40 < swdunlop> Because you need a FILO chain for observers to perform
their mutations?
08:40 < Namegduf> Other way around, but no, the problem was that the thing
copying the state is also an observer.
08:40 < Namegduf> And it needs to know which things it observes come after
it copies state.
08:41 < Namegduf> I might have an idea, which is to use that changes are
ordered and have it "call a hook" that just notifies it of when it copied the
state.
08:42 < Namegduf> And quietly ignore itself changes which appear to be
before it got the copy but are before it gets the notification.
08:44 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
08:45 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
08:47 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving]
08:49 < Namegduf> Thanks for talking through it; the solution is a lot
simpler than TLS (or a goroutine equivalent) hacks, and it helped distill it down
to the basic problem.
08:49 < swdunlop> anticw: looks like fmt.Scan does indeed consider \n
whitespace
08:49 < swdunlop> Namegduf: always happy to bash my head against someone
else's problem
08:49 < swdunlop> gives me a break from my own :)
08:51 < swdunlop> added a comment to the gist demonstrating; but reading the
whole file and splitting by '\n' before parsing is more fault tolerant than how I
did it.
08:52 < swdunlop> otherwise a row with 21 items would cause the 21st item to
become the 1st item of the next row and the whole thing would skew
08:52 -!- salty [~kvirc@d24-141-238-88.home.cgocable.net] has quit [Remote host
closed the connection]
08:52 -!- dju [dju@fsf/member/dju] has quit [Quit: Quitte]
08:58 -!- ray` [~user@d205-250-187-155.bchsia.telus.net] has joined #go-nuts
08:59 < rbrewster> How would I go about creating a 2d array of size R by C,
where R and C are only known at runtime.
09:00 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 264 seconds]
09:00 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
09:02 -!- cafesofie [~cafesofie@rnwifi-164-107-92-116.resnet.ohio-state.edu] has
quit [Remote host closed the connection]
09:02 < swdunlop> rbrewster: https://gist.github.com/770701
09:03 < rbrewster> swdunlop: Thanks.  It seems unpleasantly complex, but
that is exactly what I was looking for.
09:03 -!- tvw [~tv@e176001225.adsl.alicedsl.de] has joined #go-nuts
09:03 < swdunlop> essentially, create an array of m slices using
make([][]int,m), then populate that array with slices of n integers.
09:04 -!- photron_ [~photron@port-92-201-104-199.dynamic.qsc.de] has joined
#go-nuts
09:05 < swdunlop> it's not so bad -- once you have made your peace with
slices :)
09:06 < Namegduf> Slices are pretty nice.
09:06 < Namegduf> I like that using them for my hooks is at runtime
equivalent to iterating a block of function pointers in memory.
09:06 < Namegduf> (Plus a length check)
09:06 < Namegduf> They're efficient.
09:07 < swdunlop> agreed; I do a lot of work with protocols at a byte level
09:07 < swdunlop> there are a lot of odd idioms in Go that take a little
time to get used to; like Marshal/Unmarshal
09:10 -!- pjm0616 [~user@110.9.28.187] has joined #go-nuts
09:11 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 246 seconds]
09:11 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
09:11 -!- ray` [~user@d205-250-187-155.bchsia.telus.net] has quit [Quit: ERC
Version 5.3 (IRC client for Emacs)]
09:12 < swdunlop> discovering bytes.Buffer is both an io.Reader and an
io.Writer with obvious semantics was also nice after years of putting up with
Java's nio.Buffer
09:13 -!- rayw [~user@d205-250-187-155.bchsia.telus.net] has joined #go-nuts
09:15 -!- rayw [~user@d205-250-187-155.bchsia.telus.net] has quit [Client Quit]
09:18 -!- vinisterx [~ryan@74-129-194-67.dhcp.insightbb.com] has quit [Quit:
WeeChat 0.3.3]
09:19 -!- ha2py [~user@d205-250-187-155.bchsia.telus.net] has joined #go-nuts
09:20 < ha2py> /
09:20 -!- ha2py [~user@d205-250-187-155.bchsia.telus.net] has quit [Client Quit]
09:21 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 272 seconds]
09:21 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
09:21 -!- developer [~user@d205-250-187-155.bchsia.telus.net] has joined #go-nuts
09:22 -!- developer [~user@d205-250-187-155.bchsia.telus.net] has quit [Client
Quit]
09:24 -!- rayFree [~user@d205-250-187-155.bchsia.telus.net] has joined #go-nuts
09:25 -!- rayFree [~user@d205-250-187-155.bchsia.telus.net] has quit [Client Quit]
09:26 -!- RayLeiWang [~user@d205-250-187-155.bchsia.telus.net] has joined #go-nuts
09:28 < rbrewster> Is there a way to make the compiler ignore unused values
and imports instead of throwing an error?
09:28 < Namegduf> import _ "blah"
09:29 < thomaslee> rbrewster: no compiler flags, if that's what you're
asking.
09:29 < Namegduf> And you can not make unused variables, using _ in place of
a variable when setting stuff to equal function return values.
09:31 < rbrewster> My issue is that I'm writing code, and trying to compile
as I go to catch errors.  A lot of times the compiler will throw an error because
I haven't actually written the code that uses a particular variable.
09:31 < Namegduf> I suggest compiling slightly less frequently.
09:32 < thomaslee> rbrewster: I agree it's annoying, but you learn to live
with it.
09:32 < Namegduf> There's lots of other kinds of errors that happen if you
try to build an incomplete program, so it's just a matter of getting used to
unused variables being one of them, like not having finished writing out an if
statement yet.
09:33 < swdunlop> I find it handy for spotting subtle scoping errors.
09:33 < jumzi> Yeah, and ppl don't commit code that have unused variables
09:33 < Namegduf> Subtle scoping errors are my least favourite Go thing, but
I don't see any ideas to fix them
09:33 < swdunlop> such as if cond { err := func( ) }
09:33 < Namegduf> And I've so far avoided ahving them bite me.
09:34 < swdunlop> spent too much time as a kid using pascal; now that := is
back in my life I misuse it everywhere :)
09:34 < thomaslee> Namegduf what sort of scoping errors are causing you
grief?  I got bitten by return values getting shadowed by use of the := operator
the other day ...
09:35 < Namegduf> thomaslee: That's pretty much it, there's a lot on the
mailing list about it.
09:35 < Namegduf> Possibly the most confusing to some is that if x, err :=
f(); err != nil { ..  } results in x and err being local to the if block
09:36 < Namegduf> I've managed to avoid the issue myself, mostly because
it's consistent with for loops.
09:36 < Namegduf> If x already existed, then you can accidentally not set
it.
09:36 -!- RayLeiWang [~user@d205-250-187-155.bchsia.telus.net] has quit [Ping
timeout: 276 seconds]
09:36 < Namegduf> The unused check would catch it, though.
09:36 < swdunlop> yeah, I've run into the similar y := 1; if cond { x, y :=
func1( ); func2( x ); } y is..
09:37 < thomaslee> Namegduf, I'd be happy enough to see the := syntax go
away & stick with explicit "var" myself.  That would at least make shadowing
easier to see...
09:37 < swdunlop> it's the sort of thing a lint program should be able to
warn about -- multiple bindings of a variable name within a scope
09:37 < thomaslee> although I imagine it would break pretty much every Go
program in existence :)
09:38 < aiju> := is one of the best things in Go
09:38 < swdunlop> if it was var v = expr, that would be fine with me.
09:38 < swdunlop> but going all the way back to only having the current var
forms would be an annoyance
09:38 < thomaslee> aiju, why?
09:39 < thomaslee> I mean, I use it all the time, but I don't particularly
love or loathe it.
09:39 < thomaslee> and I've run into these shadowing issues too.
09:39 < aiju> think of C++ TypeName* foo = new TypeName(); my ass
09:39 < thomaslee> aiju, var foo = new(TypeName)
09:39 < thomaslee> type inference is a separate concern.
09:39 < swdunlop> I like it because it reduces redundancy -- which is a
major complaint about statically typed languages
09:40 < swdunlop> currently, that doesn't match either the current syntax or
previous syntax, AFAIK
09:40 < swdunlop> var form requires a type, doesn't it?
09:40 < aiju> initializing auto variables at the declaration doesn't look
good for me
09:41 < thomaslee> swdunlop, no idea :)
09:41 < thomaslee> just making a point that := isn't solving the Foo foo =
new Foo() problem -- type inference is.
09:41 < swdunlop> I'm a couple revs back in my /opt/go today -- and I'm
staying there :)
09:41 < aiju> and ...  var foo = new(TypeName) looks like ....  JAVASCRIPT
<insert screaming girl sound here>
09:42 < swdunlop> s'okay to look like JavaScript..  just so long as we don't
look like Haskell
09:42 < aiju> (the whole issue seems like bikeshed to me)
09:42 < swdunlop> the := issue is a problem in the Io language, too..
09:42 < thomaslee> aiju, not bikeshedding if it's potentially silently
introducing bugs.  :)
09:43 < aiju> well, one could also just introduce warning/errors for
shadowing
09:43 -!- reubenbond [~reubenbon@220-253-10-101.VIC.netspace.net.au] has quit
[Ping timeout: 276 seconds]
09:44 < swdunlop> yeah; either works well enough for me -- but compiler
warnings be a novelty in Go. :)
09:44 < thomaslee> aiju, yeah, that (errors when shadowing variables) would
be my plan B :)
09:44 < thomaslee> swdunlop, oh don't get me started ...  ;)
09:45 < aiju> personally i find that "unused" error stuff highly annoying --
i'd really rather have a warning for that
09:45 < swdunlop> a coworker described it as "why should you expect warnings
from a language where the only exception is a panic?"
09:45 < thomaslee> aiju, well we can agree on that.  Although I can see the
other side of that argument too.
09:45 < aiju> thomaslee: which is?
09:46 < Namegduf> I found it really annoying playing with mini, not real
stuff
09:46 < Namegduf> This 10k line project I've not seen a non-legitimate
"unused variable" error in a good while.
09:46 < thomaslee> aiju, that unused variables and imports might very well
be bugs.
09:46 < swdunlop> it catches the flip side of the problem -- where you
accidentally created an inner binding and the result of an operation would be
discarded unintentionally
09:46 < Namegduf> I build my C code with -Werror
09:47 < Namegduf> I think that summarises my view on warnings vs errors
09:47 < aiju> introducing errors for anything remotely fishy doesn't seem
like a good idea to me …
09:47 < Namegduf> If something looks wrong to the compiler, odds are it
looks wrong to a human
09:47 < Namegduf> And thus should be clarified.
09:47 -!- gr0gmint [~quassel@87.60.23.38] has joined #go-nuts
09:47 < swdunlop> that's why I thought a golint might be more appropriate
09:47 < Namegduf> If it should be improved, then there's no time like the
present
09:48 < swdunlop> a utility you can either run prior to the compiler..
09:48 < aiju> i'd really be against a golitn
09:48 < aiju> *golint
09:48 < Namegduf> I would like a golint if it operated program-at-once.
09:48 < Namegduf> Which lets it do static analysis the compiler can't.
09:48 < Namegduf> Potentially very powerful static analysis.
09:48 < Namegduf> But I think we already have stuff for that in dev?
09:49 < swdunlop> if you want -Werror like behavior golint foo.go && $gc
foo.go; if you want just warnings; golint foo.go; $gc foo.go; if you are just
tired and want assistance on why is that function isn't working, golint alone.  :)
09:49 * aiju goes back to programming good ol' FORTRAN IV
09:49 < aiju> warning?  no; loops?  haha; type safety?  you must be kidding
09:50 < aiju> :)
09:50 < swdunlop> rrgh; let me know when they get 64-bit ints sorted --
fortran's causing me hives this week :)
09:50 < Namegduf> aiju: If you remove the middle one you could be describing
Python
09:50 < aiju> fortran is a living fossil
09:50 < aiju> Namegduf: yes, i also noticed that
09:50 < aiju> modern scripting languages are VERY reminiscent of 60's
compiled languages :)
09:51 < thomaslee> Namegduf, Python has warnings too ;)
09:51 < aiju> Fortran had potential to evolve into a sane modern language --
but that didn't happen
09:51 < swdunlop> and lint, although I've yet to see lint be more useful for
a new python programmer than tabnanny :)
09:51 < aiju> variable-lengthstrings?  what the fuck might you be talking
about?
09:52 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 276 seconds]
09:52 < aiju> but HEY implement OOP!  must be great!
09:52 < thomaslee> swdunlop, been geeking out on Python for years and this
is the first I've heard of tabnanny ...  learn something new every day :P
09:52 < Namegduf> All the other cool scripting languages are super OOPy and
have no type safety
09:52 < Namegduf> You should totally do the same thing
09:53 < aiju> http://aiju.phicode.de/b/boascript the language of the future
09:53 < swdunlop> thomaslee: it's something you discover really fast the
first time you try to teach it to someone with weird tab settings ;)
09:53 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
09:53 < Namegduf> Haha.
09:53 < Namegduf> That's awesome.
09:53 < thomaslee> "Object-oriented language (actually not)" hah!
09:53 < Namegduf> But using an RDBMS is way too complicated and old
fashioned
09:54 < Namegduf> You need to use an ORM
09:54 < aiju> most features are actual Javascript / Java / Python features
09:54 < aiju> "Bitshift operators somehow slower than arithmetic operators
09:54 < aiju> that one is IE6 inspired :)
09:54 < Namegduf> Cloud support!
09:54 < jumzi> Claut suupport is important!
09:54 < Namegduf> That's exactly what I need!
09:55 < Namegduf> My language must support clouds or Ars Technica says I'm
obsolete
09:55 < Namegduf> Clouds are the future
09:55 < jumzi> And they are fluffy!
09:55 < thomaslee> my cloud isn't fluffy :(
09:55 < jumzi> Mines super fluffy
09:56 < aiju> i'm using cloud computing every day
09:56 < swdunlop> best as I can determine, the origin of the term was when
some PHB looked at a network diagram and said "oh, so all our email is in the
cloud?"
09:56 < jumzi> I'm only using clouds these days
09:56 < aiju> ssh sampi :>
09:56 < aiju> connects me to my cloud
09:56 < Namegduf> My laptop is actually comprised of water vapour
09:56 < Namegduf> With a little ice
09:57 < Namegduf> Does it count as a "cloud" if there's actually a single
machine you're connecting to?
09:57 < aiju> i have no idea what cloud actually means
09:57 < jumzi> It counts as a cloud as long as you wave your arms
09:57 < Namegduf> I don't think it actually means something
09:57 < rbrewster> What is the difference between "var array [10]int" and
"array := new([10]int)"?
09:58 < Namegduf> But I don't think the tech media has figured it out yet
09:58 < aiju> a propos ORM
http://www.abload.de/img/storage_objektmodellsd1j.png …
09:58 < aiju> rbrewster: the first one is a value, the second a pointer
09:58 < Namegduf> ORM: Because you want to use SQL but don't.
09:58 -!- ios_ [~ios@180.191.130.100] has joined #go-nuts
09:58 < aiju> nobody "wants" to use SQL; everything just thinks they want
09:58 < Namegduf> I once had one of the authors of Django explaining the
rationale for his library existing in a lecture
09:58 < rbrewster> aiju: Thanks.
09:58 < thomaslee> cloud = the internets.  they just got bored of "tubes".
and nobody wants to buy tubes.
09:59 < Namegduf> "SQL is hard"
09:59 -!- ios_ [~ios@180.191.130.100] has left #go-nuts []
09:59 < Namegduf> Summarised it.
09:59 < aiju> SELECT COUNT(*) FROM sql_security_leaks WHERE importance =
"critical"; overflows the integers of most machines
10:01 < Namegduf> Django is an ORM + web framework
10:01 < swdunlop> pfft, that's old school..  Everyone knows that redis
injection's where it's at.
10:13 -!- rbrewster [~rbrewster@pool-96-255-165-204.washdc.fios.verizon.net] has
quit [Quit: Leaving]
10:22 -!- dforsyth [~dforsyth@c-76-21-40-117.hsd1.ca.comcast.net] has quit [Quit:
Computer has gone to sleep.]
10:23 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
10:23 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
10:32 -!- Scorchin [~Scorchin@host86-186-244-172.range86-186.btcentralplus.com]
has joined #go-nuts
10:40 -!- salty [~kvirc@d24-141-238-88.home.cgocable.net] has joined #go-nuts
10:40 < salty> hello
10:40 -!- Fish- [~Fish@9fans.fr] has joined #go-nuts
10:40 < mosva> Hello salty
10:41 < salty> Hiy moxva.
10:41 < salty> *mosva
10:41 < salty> I'm wondering if you know of any instructions to create a
static library
10:41 < salty> instead of executable
10:41 -!- Qvist_ [~erik@c-e0c1e455.05-294-6c6b701.cust.bredbandsbolaget.se] has
joined #go-nuts
10:41 < swdunlop> easiest way is to use Make.pkg
10:42 < salty> oh?  ok
10:42 < swdunlop> https://gist.github.com/770585
10:42 < salty> i'll look into that
10:42 < salty> thanks swdunlop
10:43 < swdunlop> no problem :)
10:44 < mosva> thanks swdunlop
10:45 < salty> oh, i think maybe i asked wrong.  umm...
10:46 < swdunlop> to explain in detail, the Makefile uses the standard
Make.inc and Make.pkg included with go to build a set of rules.
10:46 < salty> I'd like a statically linked library.  Ie., if i write a web
server, all the net code
10:47 < swdunlop> did you need a static executable?
10:47 < swdunlop> a standalone program that will run on another machine
without Go installed?
10:48 < salty> I need static, but not executable
10:48 < salty> my main routine is somewhere else
10:48 < swdunlop> hrm; Make.pkg produces a static library but it doesn't
include all the dependencies in that library.
10:49 < salty> If I make a basic web server, the executable is about 3.5 M
10:49 < salty> That's what I want, but as a library I can call
10:49 < salty> no "main" func
10:49 < swdunlop> Call from Go?
10:49 < salty> no, not from Go. From C
10:50 < swdunlop> ah; at this point I'll cravenly run away ;)
10:51 < salty> Ok, thanks for the help ...  just asking about the problem
makes me think at different angles
10:51 < salty> and work arounds
10:51 < swdunlop> no problem :)
10:52 < swdunlop> that's a tricky one, honestly; I've seen quite a bit on
calling C libraries from Go..
10:52 < swdunlop> but not the other way around
10:54 < swdunlop> one problem I see off the bat is that the static libraries
produced by gopack, such as bufio.a, are not the same as gcc and bintools static
libraries.  For example, ar p bufio.a causes a format not recognized error.
10:55 < swdunlop> that would suggest you might have to use Go's 6c compiler,
or gccgo -- either of which I don't know much about.
11:01 -!- fenicks [~christian@log77-3-82-243-254-112.fbx.proxad.net] has joined
#go-nuts
11:02 < fenicks> hello
11:02 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 265 seconds]
11:03 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
11:05 -!- kashia_ [~Kashia@port-92-200-103-145.dynamic.qsc.de] has joined #go-nuts
11:06 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Remote host closed the
connection]
11:07 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts
11:08 -!- Kashia [~Kashia@port-92-200-77-149.dynamic.qsc.de] has quit [Ping
timeout: 276 seconds]
11:09 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
11:10 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Remote host closed the
connection]
11:10 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts
11:20 -!- vinisterx [~ryan@74-129-194-67.dhcp.insightbb.com] has joined #go-nuts
11:20 < mosva> hello fenicks
11:20 -!- noktoborus [~noxless@109.126.26.65] has left #go-nuts ["cat a leak"]
11:21 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 276 seconds]
11:21 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
11:24 -!- mosva|Greeter [~mosva@unaffiliated/mosva] has left #go-nuts []
11:26 -!- micrypt [~micrypt@5ade3e5b.bb.sky.com] has left #go-nuts []
11:31 -!- grouzen [~grouzen@ip23-159.200.109.crimea.com] has quit [Ping timeout:
272 seconds]
11:36 -!- ronnyy [~quassel@drsd-4db3e705.pool.mediaWays.net] has joined #go-nuts
11:51 -!- femtoo [~femto@95-89-248-177-dynip.superkabel.de] has joined #go-nuts
12:01 -!- LuitvD [~me@beigetower/luitvd] has joined #go-nuts
12:01 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 255 seconds]
12:01 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
12:02 -!- wrtp [~rog@92.17.28.181] has joined #go-nuts
12:20 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Read error: Operation timed out]
12:20 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
12:21 < tylergillies> whats the best way to marshal an rsa.PrivateKey?
json/asn1.Marshal fail on the *big.Int
12:21 < aiju> fixing it :P
12:22 < tylergillies> fixing it?
12:22 < tylergillies> oh the int, so breaking apartthe struct and storing
the parts as fixed ints?
12:24 < aiju> no, fix the library
12:25 < tylergillies> oh heh
12:25 < tylergillies> im assuming that means its a bug
12:31 -!- aiju [~aiju@unaffiliated/aiju] has quit [Ping timeout: 265 seconds]
12:32 -!- aiju [~aiju@unaffiliated/aiju] has joined #go-nuts
12:33 < tylergillies> aiju: coi ke'u
12:33 -!- vinisterx [~ryan@74-129-194-67.dhcp.insightbb.com] has quit [Read error:
Connection reset by peer]
12:34 -!- vinisterx [~ryan@74-129-194-67.dhcp.insightbb.com] has joined #go-nuts
12:34 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 260 seconds]
12:34 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
12:42 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
12:42 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
12:42 -!- thomaslee [~thomaslee@124-168-100-150.dyn.iinet.net.au] has quit [Quit:
Leaving]
12:43 -!- creack [~charme_g@163.5.84.215] has quit [Ping timeout: 255 seconds]
12:46 -!- gits [~gits@77.94.219.158] has joined #go-nuts
12:54 -!- snearch [~snearch@f053007006.adsl.alicedsl.de] has joined #go-nuts
12:58 -!- creack [~charme_g@163.5.84.215] has joined #go-nuts
12:59 -!- dforsyth [~dforsyth@c-76-21-40-117.hsd1.ca.comcast.net] has joined
#go-nuts
13:00 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Read error: Operation timed out]
13:00 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
13:00 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
13:03 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
13:04 -!- wrtp [~rog@92.17.28.181] has quit [Ping timeout: 240 seconds]
13:05 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Client Quit]
13:07 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
13:08 -!- ios_ [~ios@180.191.130.2] has joined #go-nuts
13:09 -!- dforsyth [~dforsyth@c-76-21-40-117.hsd1.ca.comcast.net] has quit [Quit:
Computer has gone to sleep.]
13:11 -!- wrtp [~rog@92.17.28.181] has joined #go-nuts
13:13 -!- Qvist_ [~erik@c-e0c1e455.05-294-6c6b701.cust.bredbandsbolaget.se] has
quit [Ping timeout: 264 seconds]
13:14 -!- grouzen [~grouzen@ip21-159.200.109.crimea.com] has joined #go-nuts
13:17 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit:
DarthShrine]
13:22 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 246 seconds]
13:22 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
13:35 -!- tvw [~tv@e176001225.adsl.alicedsl.de] has quit [Remote host closed the
connection]
13:36 -!- Qvist_ [~erik@c-4ccbe455.05-294-6c6b701.cust.bredbandsbolaget.se] has
joined #go-nuts
13:41 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
13:42 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
13:48 -!- nlg [~nlg@c-8bc1e455.02-416-6c6b701.cust.bredbandsbolaget.se] has joined
#go-nuts
13:49 < nlg> What kind of parser is needed to parse go?
13:49 < nlg> im guessing its current parser is lalr
13:50 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Read error: Operation timed out]
13:50 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
13:53 -!- nlg [~nlg@c-8bc1e455.02-416-6c6b701.cust.bredbandsbolaget.se] has quit
[Client Quit]
13:55 -!- andreas_hindborg [~andreas@x1-6-00-1e-2a-29-58-14.k776.webspeed.dk] has
joined #go-nuts
14:01 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 246 seconds]
14:01 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
14:10 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 260 seconds]
14:11 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
14:12 -!- niemeyer [~niemeyer@201-40-141-234.pltce701.dsl.brasiltelecom.net.br]
has joined #go-nuts
14:20 -!- TheMue [~TheMue@p5DDF5CC2.dip.t-dialin.net] has joined #go-nuts
14:26 -!- ronnyy [~quassel@drsd-4db3e705.pool.mediaWays.net] has quit [Remote host
closed the connection]
14:26 -!- ronnyy [~quassel@drsd-4db3e705.pool.mediaWays.net] has joined #go-nuts
14:30 -!- _nil [~aiden@c-24-147-65-44.hsd1.ma.comcast.net] has joined #go-nuts
14:31 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 255 seconds]
14:32 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
14:41 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
14:41 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
14:46 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
14:48 -!- niemeyer [~niemeyer@201-40-141-234.pltce701.dsl.brasiltelecom.net.br]
has quit [Ping timeout: 240 seconds]
14:51 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 272 seconds]
14:52 -!- Wiz126 [~Wiz@24.229.245.72.res-cmts.sm.ptd.net] has quit [Quit: EOF]
14:52 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
14:52 -!- Zoopee [alsbergt@zoopee.org] has joined #go-nuts
14:57 -!- camnaes [~sean@c-69-255-143-16.hsd1.md.comcast.net] has joined #go-nuts
15:05 -!- Qvist_ [~erik@c-4ccbe455.05-294-6c6b701.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
15:08 -!- foocraft [~dsc@78.101.137.236] has joined #go-nuts
15:10 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 260 seconds]
15:11 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
15:24 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
15:25 -!- illya77 [~illya77@1-92-133-95.pool.ukrtel.net] has quit [Quit: illya77]
15:27 -!- niemeyer [~niemeyer@201-40-141-234.pltce701.dsl.brasiltelecom.net.br]
has joined #go-nuts
15:34 -!- ronnyy [~quassel@drsd-4db3e705.pool.mediaWays.net] has quit [Remote host
closed the connection]
15:37 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving]
15:39 -!- salty [~kvirc@d24-141-238-88.home.cgocable.net] has quit [Quit: KVIrc
4.0.2 Insomnia http://www.kvirc.net/]
15:42 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 272 seconds]
15:42 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
15:43 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined
#go-nuts
15:43 -!- ios_ [~ios@180.191.130.2] has quit [Quit: Leaving]
15:44 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
15:45 -!- snearch [~snearch@f053007006.adsl.alicedsl.de] has quit [Quit:
Verlassend]
15:47 -!- nettok [~quassel@200.119.176.229] has joined #go-nuts
15:49 -!- rlab_ [~Miranda@91.200.158.34] has joined #go-nuts
15:50 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 260 seconds]
15:52 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
16:03 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 276 seconds]
16:03 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
16:05 -!- dforsyth [~dforsyth@c-76-21-40-117.hsd1.ca.comcast.net] has joined
#go-nuts
16:07 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts
16:15 < wrtp> nlg: yes.
16:17 -!- shvntr [~shvntr@116.26.129.248] has quit [Read error: Operation timed
out]
16:19 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
16:20 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
16:29 -!- eikenberry [~jae@ivanova.zhar.net] has quit [Ping timeout: 265 seconds]
16:31 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 264 seconds]
16:31 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
16:40 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
16:40 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
16:46 -!- KBme [~KBme@9angled-2-pt.tunnel.tserv5.lon1.ipv6.he.net] has quit [Ping
timeout: 260 seconds]
16:46 -!- eikenberry [~jae@ivanova.zhar.net] has joined #go-nuts
16:51 -!- KBme [~KBme@9angled-2-pt.tunnel.tserv5.lon1.ipv6.he.net] has joined
#go-nuts
16:51 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 246 seconds]
16:51 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
16:52 -!- eikenberry [~jae@ivanova.zhar.net] has quit [Ping timeout: 240 seconds]
16:52 -!- KBme [~KBme@9angled-2-pt.tunnel.tserv5.lon1.ipv6.he.net] has quit [Read
error: Operation timed out]
16:52 -!- KBme [~KBme@9angled-2-pt.tunnel.tserv5.lon1.ipv6.he.net] has joined
#go-nuts
16:52 -!- eikenberry [~jae@ivanova.zhar.net] has joined #go-nuts
16:59 -!- toyoshim [~toyoshim@y168217.dynamic.ppp.asahi-net.or.jp] has quit [Ping
timeout: 255 seconds]
17:01 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 255 seconds]
17:01 -!- toyoshim [~toyoshim@y168217.dynamic.ppp.asahi-net.or.jp] has joined
#go-nuts
17:01 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
17:13 -!- grouzen [~grouzen@ip21-159.200.109.crimea.com] has quit [Ping timeout:
255 seconds]
17:31 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 264 seconds]
17:31 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
17:39 -!- KBme [~KBme@9angled-2-pt.tunnel.tserv5.lon1.ipv6.he.net] has quit [Quit:
KBme kthxbye]
17:39 -!- KBme [~KBme@9angled-2-pt.tunnel.tserv5.lon1.ipv6.he.net] has joined
#go-nuts
17:40 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
17:52 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 265 seconds]
17:52 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
17:58 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Read error:
Connection reset by peer]
17:58 -!- ShadowIce
[~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has joined
#go-nuts
17:58 -!- ShadowIce
[~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has quit
[Changing host]
17:58 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
17:59 -!- grouzen [~grouzen@ip23-159.200.109.crimea.com] has joined #go-nuts
18:09 -!- foocraft [~dsc@78.101.137.236] has quit [Ping timeout: 240 seconds]
18:12 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 246 seconds]
18:13 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
18:13 -!- foocraft [~dsc@78.101.137.236] has joined #go-nuts
18:24 -!- Davidian2024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
18:24 -!- swdunlop [~swdunlop@96.26.45.40] has quit [Quit: Leaving]
18:26 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
18:31 -!- b0tz [~b0tz@unaffiliated/b0tz] has joined #go-nuts
18:33 -!- dju [dju@at.dmz.me] has joined #go-nuts
18:33 -!- dju [dju@at.dmz.me] has quit [Changing host]
18:33 -!- dju [dju@fsf/member/dju] has joined #go-nuts
18:34 -!- camnaes [~sean@c-69-255-143-16.hsd1.md.comcast.net] has quit [Quit: ]
18:35 < b0tz> hi im having a problem with setting up go on a Ubuntu 64bit
box, i get this http://pastebin.com/kU9vZ0Db during the ./all.bash command, after
following previous instructions on the sites tutorial
18:36 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se]
has joined #go-nuts
18:37 -!- Eko [~eko@ppp-70-225-140-127.dsl.ipltin.ameritech.net] has quit [Ping
timeout: 272 seconds]
18:43 -!- mich2000 [~IceChat77@81-224-247-124-no93.tbcn.telia.com] has joined
#go-nuts
18:44 < b0tz> anyone :p
18:46 -!- mich2000 [~IceChat77@81-224-247-124-no93.tbcn.telia.com] has quit
[Client Quit]
18:48 -!- Davidian2024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Read error: Operation timed out]
18:48 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
18:59 -!- gits [~gits@77.94.219.158] has quit [Ping timeout: 260 seconds]
18:59 -!- rickard2 [~rickard@netra.esec.du.se] has quit [Ping timeout: 240
seconds]
18:59 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Ping timeout: 240
seconds]
19:00 -!- rickard2 [~rickard@netra.esec.du.se] has joined #go-nuts
19:00 -!- gits [~gits@77.94.219.158] has joined #go-nuts
19:00 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 265 seconds]
19:02 < wrtp> b0tz: sorry, i don't know
19:02 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
19:03 < b0tz> Darn.  alrighty
19:04 -!- niemeyer [~niemeyer@201-40-141-234.pltce701.dsl.brasiltelecom.net.br]
has quit [Ping timeout: 240 seconds]
19:05 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has joined #go-nuts
19:05 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has quit [Changing host]
19:05 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined
#go-nuts
19:08 -!- mich2000 [~mich2000@81-224-247-124-no93.tbcn.telia.com] has joined
#go-nuts
19:10 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 246 seconds]
19:13 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
19:13 -!- MX80 [~MX80@cust222.253.117.74.dsl.g3telecom.net] has quit [Ping
timeout: 240 seconds]
19:21 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 255 seconds]
19:21 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
19:22 -!- MX80 [~MX80@cust222.253.117.74.dsl.g3telecom.net] has joined #go-nuts
19:24 -!- Netsplit *.net <-> *.split quits: rickard2, vpit3833, nsf, cw,
pothos, KirkMcDonald, Maxdamantus, chressie, Guest55373
19:25 -!- Netsplit over, joins: rickard2, nsf, pothos, vpit3833, cw, Maxdamantus,
KirkMcDonald, chressie, Guest55373
19:25 -!- pothos [~pothos@111-240-168-252.dynamic.hinet.net] has quit [Max SendQ
exceeded]
19:26 -!- pothos [~pothos@111-240-168-252.dynamic.hinet.net] has joined #go-nuts
19:27 -!- mich2000 [~mich2000@81-224-247-124-no93.tbcn.telia.com] has left
#go-nuts []
19:31 -!- b0tz [~b0tz@unaffiliated/b0tz] has quit [Remote host closed the
connection]
19:33 -!- illya77 [~illya77@1-92-133-95.pool.ukrtel.net] has joined #go-nuts
19:34 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout:
619 seconds]
19:34 -!- enherit [~enherit@75.92.111.122] has joined #go-nuts
19:37 -!- crazy2be [~justin@S0106001ac401d400.cg.shawcable.net] has joined
#go-nuts
19:42 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 255 seconds]
19:42 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
19:51 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
19:51 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Read error: Operation timed out]
19:52 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
19:59 -!- swdunlop [~swdunlop@96.26.45.40] has joined #go-nuts
20:00 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
20:00 -!- Project_2501 [~Marvin@82.84.78.253] has joined #go-nuts
20:00 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
20:00 -!- toyoshim_ [~toyoshim@y168217.dynamic.ppp.asahi-net.or.jp] has joined
#go-nuts
20:00 -!- enherit [~enherit@75.92.111.122] has quit [Ping timeout: 260 seconds]
20:01 -!- toyoshim [~toyoshim@y168217.dynamic.ppp.asahi-net.or.jp] has quit [Ping
timeout: 255 seconds]
20:01 -!- femtooo [~femto@95-89-248-177-dynip.superkabel.de] has joined #go-nuts
20:04 -!- femtoo [~femto@95-89-248-177-dynip.superkabel.de] has quit [Ping
timeout: 240 seconds]
20:06 -!- grouzen [~grouzen@ip23-159.200.109.crimea.com] has quit [Ping timeout:
240 seconds]
20:07 -!- kvarley [~kevin@unaffiliated/kvarley] has joined #go-nuts
20:07 < kvarley> Is it possible to program go in eclipse?
20:07 -!- grouzen [~grouzen@ip23-159.200.109.crimea.com] has joined #go-nuts
20:09 < kvarley> nvm go it with a quick google searcch
20:09 < TheMue> http://sourceforge.net/projects/goeclipseplugin/
20:09 < TheMue> but vim is a better choice
20:10 < aiju> manually flipping hard disk bits with a magnetized needle is a
better choise
20:10 < kvarley> TheMue: Thanks, I like the setup with eclipse that I can
program and launch applcations from the same window with the run button
20:11 < kvarley> Stupid question: Can go handle gtk guis?
20:11 < aiju> hopefully not
20:11 < kvarley> aiju: Qt?
20:11 < aiju> not that one either
20:12 < kvarley> Can it have GUI's?
20:12 < TheMue> http://godashboard.appspot.com/package
20:12 < aiju> http://go-lang.cat-v.org/library-bindings
20:12 < aiju> actually there are GTK bindings
20:13 < kvarley> Thank you, I was draw in by Google's work with Android so
gotta give Go a try now :)
20:13 < aiju> 21:11 < kvarley> TheMue: Thanks, I like the setup with
eclipse that I can program and launch applcations from the same window with the
run button
20:13 < aiju> almost any editors i know has that feature
20:14 < kvarley> aiju: Ok, I thought Vim was just a text editor
20:14 < aiju> "just a text editor"
20:14 < TheMue> yep, I handle projects, builds and unit tests with vim
20:14 < kvarley> aiju: I since have realised it's much more than that
20:15 < kvarley> TheMue: Have you made any gui apps?
20:15 < kvarley> *gui based
20:15 < aiju> kvarley: the only "editor" i know without such a feature is
notepad
20:15 < TheMue> kvarley: No, I'm doing WUI apps
20:15 < TheMue> server side programming
20:15 < kvarley> TheMue: Oh ok, interesting.
20:16 < aiju> keeping away from GUI programming is usually a good idea …
20:16 < TheMue> hehe, yep
20:16 < kvarley> aiju: With go?
20:16 < aiju> kvarley: with any language
20:16 < TheMue> with any language
20:17 < TheMue> aiju: h5
20:17 < kvarley> Oh ok lol,
20:17 < aiju> i'm sick of Windows where everything has a damn GUI
20:17 < kvarley> Me too, hence why I left
20:17 < TheMue> most companies switch more and more to web-based apps
20:18 < TheMue> simply the role-out after updates is by far simpler
20:19 < aiju> TheMue: but that one usually includes XML :)
20:19 < TheMue> it's a pure pain to upgrade native applications in large
companies
20:20 < TheMue> ok, xml also can be a hell
20:21 < aiju> s/can be/is always/
20:21 < aiju> the funny thing is nobody actual uses XML, rather what they
think it is
20:22 < TheMue> *sigh* I only wanted to give it a chance
20:23 < TheMue> but you're right, it's used too often and too bloated
20:23 < aiju> XML is not worth being given a chance
20:24 < TheMue> i prefer my own sml
20:24 < TheMue> simple markup language the lisp way
20:25 < TheMue> {foo {bar 1} {yadda Bla bla bla}}
20:25 < TheMue> no addributes
20:25 < TheMue> tags only a to z, 0 to 9, and -
20:30 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
20:30 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
21:00 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
21:00 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
21:01 -!- femtoo [~femto@95-89-248-177-dynip.superkabel.de] has joined #go-nuts
21:05 -!- femtooo [~femto@95-89-248-177-dynip.superkabel.de] has quit [Ping
timeout: 255 seconds]
21:05 -!- tensorpudding [~user@99.23.127.179] has joined #go-nuts
21:19 -!- rlab_ [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
21:21 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
21:21 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
21:25 -!- illya77 [~illya77@1-92-133-95.pool.ukrtel.net] has quit [Quit: illya77]
21:31 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 260 seconds]
21:31 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
21:33 -!- wrtp [~rog@92.17.28.181] has quit [Ping timeout: 240 seconds]
21:33 -!- Wiz126 [Wiz@h29.117.232.68.ip.windstream.net] has joined #go-nuts
21:39 -!- wrtp [~rog@92.17.28.181] has joined #go-nuts
21:41 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
21:42 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
21:43 -!- kvarley [~kevin@unaffiliated/kvarley] has quit [Quit: Leaving.]
21:50 -!- chressie [~chressie@dreggn.in-ulm.de] has quit [Ping timeout: 240
seconds]
21:50 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 246 seconds]
21:51 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
21:54 -!- wrtp [~rog@92.17.28.181] has quit [Read error: Connection reset by peer]
21:54 -!- wrtp [~rog@92.17.28.181] has joined #go-nuts
21:55 -!- chressie [~chressie@dreggn.in-ulm.de] has joined #go-nuts
21:59 -!- rbrewster [~rbrewster@pool-96-255-165-204.washdc.fios.verizon.net] has
joined #go-nuts
22:08 -!- sav [~lsd@jagat.xored.org] has quit [Excess Flood]
22:10 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 240 seconds]
22:10 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
22:21 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 255 seconds]
22:21 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
22:27 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
22:30 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Quit: Morten.  Desu~]
22:39 -!- TheMue [~TheMue@p5DDF5CC2.dip.t-dialin.net] has quit [Quit: TheMue]
22:46 -!- cafesofie [~cafesofie@rnwifi-164-107-93-12.resnet.ohio-state.edu] has
joined #go-nuts
22:51 -!- Fish- [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
22:52 -!- teejae [~teejae@softbank219185095092.bbtec.net] has joined #go-nuts
22:53 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 255 seconds]
22:53 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
23:02 -!- femtoo [~femto@95-89-248-177-dynip.superkabel.de] has quit [Ping
timeout: 240 seconds]
23:15 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
23:19 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se]
has quit [Remote host closed the connection]
23:24 < vsmatck> I like that saying, "XML is like violence.  If it's not
working your're not using enough of it."
23:29 -!- cafesofie [~cafesofie@rnwifi-164-107-93-12.resnet.ohio-state.edu] has
quit [Remote host closed the connection]
23:29 <@adg> uriel: what toy?
23:35 -!- binarypie [~binarypie@c-24-130-113-34.hsd1.ca.comcast.net] has joined
#go-nuts
23:38 < vsmatck> It's all key value pairs.  How you do it is a matter of
trading human readability for space efficiency I think.
23:42 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Ping timeout: 250 seconds]
23:43 -!- cafesofie [~cafesofie@rnwifi-164-107-93-12.resnet.ohio-state.edu] has
joined #go-nuts
23:44 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has joined
#go-nuts
23:44 -!- wrtp [~rog@92.17.28.181] has quit [Quit: wrtp]
23:44 -!- foocraft [~dsc@78.101.137.236] has quit [Quit: Leaving]
23:45 < mpl> hey.  is there an easy way for a program to find out where the
binary that started it is?
23:45 < aiju> mpl: argv[0]?
23:45 < aiju> or what do you mean?
23:45 <@adg> os.Args[0] relative to the CWD I guess
23:46 < swdunlop> mpl: not with accuracy, due to how execve works.
23:46 < mpl> adg: that's what I thought, but I'm not sure that would work in
all cases
23:46 <@adg> as swdunlop says, it probably won't
23:47 < mpl> for example, if I started that program with a middle click in
acme
23:47 < mpl> I'm afraid CWD will be set to where acme was launched from.
23:47 < swdunlop> using os.Args[0] combined with the PATH environment
variable will get you there 85% of the time
23:47 < mpl> swdunlop: yeah, but that's boring ;)
23:47 < mpl> so I was hoping we already had something for that.
23:47 < swdunlop> and the remaining times: complain at the user.  ;)
23:47 <@adg> not really, no
23:48 < swdunlop> it's a common unix issue; see man 2 execve
23:48 < mpl> yeah.
23:48 < mpl> I'll go the boring way then, thx.
23:48 <@adg> if you want a more exciting way, just pick a binary at random
;)
23:48 < mpl> haha
23:49 < swdunlop> http://golang.org/pkg/exec/
23:49 < swdunlop> exec.LookPath can help -- some.
23:49 < aiju> can't you do /proc?
23:49 -!- sav [~lsd@jagat.xored.org] has joined #go-nuts
23:49 -!- sav [~lsd@jagat.xored.org] has quit [Excess Flood]
23:49 < mpl> swdunlop: sweet!
23:49 -!- Davidian1024 [~Davidian1@cpe-173-88-163-203.neo.res.rr.com] has quit
[Read error: Operation timed out]
23:49 < aiju> /proc/$pid/cmdline or so
23:49 < mpl> aiju: yeah.  but is there /proc on mac?  (no idea)
23:50 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
23:50 < aiju> hasn't /proc been around since BSD times?  (dunno)
23:50 < swdunlop> aiju: yeah, forgot about that one :)
23:50 < aiju> i'm pretty sure there is /proc on mac
23:50 < aiju> i wouldn't be so sure about HP-UX or shit
23:50 < swdunlop> well, lets you get past the remaining 10% of use cases
where the user doing something weird is on Linux.
23:50 -!- niemeyer [~niemeyer@201-40-141-234.pltce701.dsl.brasiltelecom.net.br]
has joined #go-nuts
23:51 < mpl> aiju: well, I don't think acme's on HP-UX and it's an acme
program I'm writing, so I don't really care about that platform ;)
23:51 < swdunlop> and the remaining 5% on os x and windows?  that's the
least of your problems on those platforms ;)
23:53 < anticw> swdunlop: yeah, after querying i checked and pointed out \n
is just more white space, so a variant of what you suggested would work fine
23:53 -!- crazy2be [~justin@S0106001ac401d400.cg.shawcable.net] has quit [Ping
timeout: 240 seconds]
23:54 < swdunlop> yeah, but I still prefer your suggestion of reading a line
at a time and splitting; better validation
23:55 < anticw> well, ReadFile & Split/Fields is pretty easy ...  depends if
you need to skip lines with # comments or whatever
23:55 < swdunlop> but the discussion did kick off a round of writing an
s-expression unmarshal function :)
23:55 < anticw> i tend to use json to store data right now because im lazy
and it works well
23:55 < anticw> kids calling, bbl
23:55 -!- foocraft [~dsc@78.101.137.236] has joined #go-nuts
23:59 -!- zav [~lsd@189001130056.usr.predialnet.com.br] has joined #go-nuts
--- Log closed Sun Jan 09 00:00:01 2011