--- Log opened Wed Jun 22 00:00:14 2011
--- Day changed Wed Jun 22 2011
00:00 < kevlar_work> though you can use map[string]struct{} (I personally
think it's ugly)
00:01 < kfmfe04> k - ty
00:02 < str1ngs> kfmfe04: I like to use map[string]bool
00:05 -!- taruti [~taruti@ultra.violetti.org] has joined #go-nuts
00:05 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has joined
00:08 -!- Aperculum [~lauri@kapsi.fi] has joined #go-nuts
00:13 <@adg> uriel: we have something coming this week
00:26 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
00:28 -!- tvw [~tv@e176004201.adsl.alicedsl.de] has quit [Ping timeout: 255
00:36 < kfmfe04> regarding variadic arguments, is there a way to designate
zero or one?  if not, what is the proper way to handle zero or one argument in the
00:37 < kfmfe04> actually, what I really want is a default argument, but
since that's not available, variadic seems like the next best bet
00:37 -!- Tv [~Tv@ip-66-33-206-8.dreamhost.com] has quit [Ping timeout: 255
00:39 < skelterjohn> you can't specify that a variadic require up to a fixed
number of arguments
00:40 < skelterjohn> if you have a complicated argument list, try a struct
containing them all
00:41 < kfmfe04> that's a really good idea - I can have a struct or an
interface as an argument as an alternative to variadic - lemme think about my
problem some more - tyvm
00:44 -!- F [~f@unaffiliated/f] has quit [Ping timeout: 276 seconds]
00:48 -!- nesv [~nick@CPE98fc116ac79e-CM00222d67cb0d.cpe.net.cable.rogers.com] has
joined #go-nuts
00:51 -!- F [~f@pool-96-255-203-102.washdc.fios.verizon.net] has joined #go-nuts
00:51 -!- va3atc [~va3atc@24-246-17-37.cable.teksavvy.com] has quit [Ping timeout:
255 seconds]
00:52 -!- bobbysworld [~bobbyswor@99-20-88-178.lightspeed.austtx.sbcglobal.net]
has quit [Ping timeout: 246 seconds]
00:57 -!- franciscosouza [~francisco@] has joined #go-nuts
00:57 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has joined
00:59 -!- bobbysworld [~bobbyswor@99-20-88-178.lightspeed.austtx.sbcglobal.net]
has joined #go-nuts
01:00 < kfmfe04> just getting a handle on struct embedding - looks like
powerful stuff allowing for very succinct code (relative to most OOP languages) -
01:00 < kevlar_work> kfmfe04, use with care.
01:01 < kfmfe04> any caveats?
01:02 < kevlar_work> it can tempt you to try to retrofit OOP concepts
instead of thinking about the problem "the Go way" (e.g.  the Communicating
Sequential Processes way)
01:03 < skelterjohn> i was never quite sure why "type A { B }" gives A all
of B's methods, but "type A B" does not
01:04 < skelterjohn> err, "type A struct { B }", for the first one
01:08 < kfmfe04> kevlar_work, I appreciate the warning on CSP - ty - reading
up on it now - will try to shift from OOP to CSP
01:11 < kevlar_work> kfmfe04, that was an example of the go way; "the Go
way" is also about using interfaces instead of inheritance
01:11 < skelterjohn> the basic gist is to not spend time worrying about code
structure - just write the code
01:12 < kevlar_work> the CSP is more of how to structure your programs;
interfaces is more about how to think about your data
01:13 -!- robteix_ [~robteix@host243.200-82-125.telecom.net.ar] has joined
01:14 < kfmfe04> the ideas behind CSP appear to be related to functional
programming - almost seems like a special class of functional programming
01:15 < skelterjohn> when i first started idling here, i got confused
sometimes when people talked about constraint satisfaction problem languages
01:16 < kevlar_work> skelterjohn, rofl
01:16 < skelterjohn> i felt like go could do so much more than CSPs
01:18 -!- cafesofie [~cafesofie@ool-18b97779.dyn.optonline.net] has joined
01:23 < kfmfe04> looks like time to stop coding and read Hoare
01:23 -!- bobbysworld [~bobbyswor@99-20-88-178.lightspeed.austtx.sbcglobal.net]
has quit [Quit: bobbysworld]
01:24 < kfmfe04> skelterjohn, are there languages out there that implement
CSP to a deeper extent?  which ones?
01:24 < skelterjohn> no idea
01:24 < skelterjohn> i know almost nothing about the kind of CSP we're
talking about
01:25 < skelterjohn> i was making a joke about CSP meaning more than one
01:26 < kfmfe04> hahaha - ok - just thought if there were purer CSP
languages to play with, it'd be a good learning tool (as an analogy, in the early
days of C++, I found it useful to play with Smalltalk to grasp the uses of OOP
before returning to C++)
01:27 -!- nesv [~nick@CPE98fc116ac79e-CM00222d67cb0d.cpe.net.cable.rogers.com] has
quit [Quit: Ex-Chat]
01:30 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts
01:31 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has joined #go-nuts
01:36 < kfmfe04> hehehe - I like CSP notation - quite clever
01:39 -!- franciscosouza [~francisco@] has quit [Quit: franciscosouza]
01:50 -!- go_newbie [~chatzilla@anlextwls093-032.wl.anl-external.org] has joined
01:51 < go_newbie> Hey there I have a question about the http package
01:51 < go_newbie> how can you take data and pass it around the simple
server class
01:51 < go_newbie> or for that matter how do you dereference a pointer?
01:52 < skelterjohn> same as in C/C++
01:52 < skelterjohn> the * operator
01:52 < skelterjohn> for the last question
01:52 < skelterjohn> for the first question, i don't really understand your
01:54 < go_newbie> I'm building a simple server with the http package using
the listen and serve function
01:54 < go_newbie> you can define a handler but you can only have two
arguments passed into the http.handle function
01:55 -!- franciscosouza [~francisco@] has joined #go-nuts
01:55 < skelterjohn> i see
01:55 < go_newbie> I am trying to store data and pass it around saving the
data from other functions for calculations in the handle functions
01:55 < skelterjohn> two major ways to share data
01:55 < skelterjohn> 1) global vars
01:55 < skelterjohn> 2) closures
01:55 < skelterjohn> though you can think of 1) as a special case of 2)
01:55 < go_newbie> I had read about closures but could not get them to work
correctly because I was not sure when to pass the data
01:56 < skelterjohn> you don't do anything explicit with closures
01:56 < skelterjohn> you just refer to things and it will work
01:56 < go_newbie> I had overloaded the function with a closure but I could
not find where to pass tht data afterward
01:56 < go_newbie> Can I post the short closure I rewrote?
01:57 < go_newbie> func makeHandler(fn func(http.ResponseWriter,
*http.Request, *Request)) http.HandlerFunc {
01:57 < go_newbie> return func(w http.ResponseWriter, r *http.Request) {
01:57 < go_newbie> var req Request
01:57 < go_newbie> fn(w, r, req)
01:57 < skelterjohn> http://pastebin.com/faTPZ8wP
01:57 < go_newbie> }
01:57 < skelterjohn> don't write code in irc
01:57 < skelterjohn> read the topic
01:57 < skelterjohn> i posted an example of using a closure
01:57 -!- kfmfe04 [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has quit
[Quit: kfmfe04]
01:57 < skelterjohn> bar has a closure that incldes the variable x
01:58 < go_newbie> Sorry new to irc.  won't do that again
01:59 -!- kfmfe04 [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has joined
02:01 < go_newbie> I don't fully understand this closure thing
02:01 < go_newbie> So you can say that I can dereference a pointer the say
way in c with the * operator
02:02 < go_newbie> When I do that it throws a problem when creating the var
with the new operator
02:03 < str1ngs> go_newbie: can you paste some code will help
02:03 < str1ngs> go_newbie: using a paste service please
02:03 < kfmfe04> skelterjohn, what is the right way to think about x in your
closure example?
02:03 < go_newbie> sure give me five secs
02:03 < skelterjohn> kfmfe04: what do you mean?  it's an int
02:04 < kfmfe04> it's like a handle to the x on Line 6?
02:04 < go_newbie> http://pastebin.com/j0FPAqz2
02:04 < go_newbie> I posted some here
02:05 < str1ngs> kfmfe04: just think of x as being in scope still
02:05 < str1ngs> kfmfe04: even though its in a function
02:05 < kfmfe04> I mean, is it true that a closure allocates no new
data/memory?  it has to refer to something on the outside?
02:06 < go_newbie> so far call is just a function to handle different calls
02:06 < str1ngs> go_newbie: you mean fn?
02:06 < go_newbie> I thought fn was the function prototype i was trying to
assign to
02:07 < str1ngs> yes I guess so but I dont see that code :P
02:07 < str1ngs> can you give error you are getting?
02:07 < skelterjohn> if something is referred to in a closure, it is put on
the heap rather than the stack
02:07 < skelterjohn> since it can remain in scope after the stack frame is
02:08 < go_newbie> Thats just it, I'm not getting an error but I am trying
to pass that request structure in so that I can use it
02:09 < kfmfe04> ty, skelterjohn, that explanation was v.helpful
02:09 < str1ngs> go_newbie: that looks ok
02:10 < str1ngs> go_newbie: but if there is your first go project.  I might
avoid this way for now
02:10 < go_newbie> well i was not sure how to do it any other way
02:10 -!- keithcascio [~keithcasc@nat/google/x-byviopauslxpawik] has quit [Quit:
02:10 < go_newbie> all i am doing is sending that data structure into the
02:10 < go_newbie> but i can't do that
02:10 < str1ngs> just make handlers
02:10 < go_newbie> that is what the Request structure is
02:11 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has quit [Quit:
02:11 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has quit [Quit: ZZZZZzzzzz]
02:11 < str1ngs> unless you really need /dump?
02:11 < go_newbie> I do for the program I am developing
02:11 < go_newbie> I have one for each call and call is the function they
all convien in so far
02:12 < go_newbie> dump really just persists a json file back to the client
for tracebacks
02:12 < go_newbie> which is why I also asked how to dereference pointers
02:13 < go_newbie> http://pastebin.com/iZt5uh6U
02:14 < go_newbie> here is the full projext I am trying to work out...
02:14 < skelterjohn> your code seems like a reasonable way to do it
02:14 < skelterjohn> err, didn't read the longer version
02:14 < go_newbie> I know.  I just want to find a way to pass that structure
to the calling function
02:14 < go_newbie> haha
02:14 < skelterjohn> (nor do i intend to :) )
02:15 < go_newbie> haha
02:15 < go_newbie> id only focus on the call function and everyting below it
02:15 < str1ngs> go_newbie: Data_store goism is DataStore
02:16 < str1ngs> go_newbie: just a fyi
02:16 < str1ngs> or Datastore
02:16 < go_newbie> I was going to be go correct once it started to work haha
02:17 -!- flaguy48 [~gmallard@user-0c6s350.cable.mindspring.com] has joined
02:17 < str1ngs> thats ok _ still works
02:18 < go_newbie> once i figure out the passing of that request structure
to the call method correctly I should be able to flesh this out more
02:19 < go_newbie> That and get derference the pointers correctly so that I
can json
02:19 -!- dlowe [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has quit [Quit:
02:22 < go_newbie> If anyone is still helping me I just want to say I'll be
back in 5-10 minutes.  Have to take care of someting.
02:22 < go_newbie> Thank you and i'll return
02:23 < str1ngs> still reading :P
02:24 -!- Aperculum [~lauri@kapsi.fi] has quit [Ping timeout: 240 seconds]
02:24 -!- allengeorge_ [~allengeor@c-24-7-17-50.hsd1.ca.comcast.net] has joined
02:25 -!- Aperculum [~lauri@kapsi.fi] has joined #go-nuts
02:26 -!- allengeorge [~allengeor@c-24-7-17-50.hsd1.ca.comcast.net] has quit [Ping
timeout: 240 seconds]
02:26 -!- go_newbie [~chatzilla@anlextwls093-032.wl.anl-external.org] has quit
[Ping timeout: 240 seconds]
02:31 -!- go_newbie [~chatzilla@anlextwls093-032.wl.anl-external.org] has joined
02:31 < go_newbie> okay I'm back
02:31 < go_newbie> sorry about that
02:31 -!- xyproto [~alexander@] has quit [Ping timeout: 240 seconds]
02:33 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Remote host
closed the connection]
02:34 < str1ngs> go_newbie: var req Request
02:34 < str1ngs> go_newbie: I think you probably want req := new(Request)
02:35 -!- xyproto [~alexander@] has joined #go-nuts
02:35 < str1ngs> let recheck though
02:35 < str1ngs> ya pretty sure you want that
02:35 < str1ngs> you declare it but.  you give it no value
02:35 < go_newbie> Ya that was the thing
02:36 < go_newbie> I wasn't sure how initialize it
02:36 < str1ngs> ah ok
02:36 < go_newbie> I wanted to pass leader into it
02:36 < go_newbie> which is of request type
02:36 < str1ngs> you can do composite or use new
02:36 < str1ngs> not sure what you mean by pass leaser
02:36 < str1ngs> leader8
02:37 < str1ngs> gah
02:37 < go_newbie> lol
02:37 < str1ngs> thats sleep time right there bro :P
02:37 < go_newbie> I meant in my main I created a path and a data variables
that are then fed into a leader data structure
02:37 < go_newbie> lol ya
02:38 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has joined
02:38 < go_newbie> so when I call http.Handle the call is made to the call
function that also lets me pass that request structure (leader in this case) into
the funcston
02:38 < str1ngs> ah I see that
02:38 < str1ngs> ya you'll probably need a closure like skelterjohn
02:39 < str1ngs> in which case you might not want makeHandler
02:39 < str1ngs> but I think either work.  but theses nested func types are
02:39 < go_newbie> ya
02:39 < go_newbie> that was my problem
02:40 < str1ngs> thats just me though.  but I would simply it if you can
02:40 < go_newbie> I have been trying lol
02:40 < go_newbie> that was my simplification
02:40 -!- benjack [~benjack@bb119-74-99-26.singnet.com.sg] has joined #go-nuts
02:40 -!- sniper506th [~sniper506@cpe-098-122-081-186.sc.res.rr.com] has joined
02:40 < go_newbie> my other idea was to persist data to a temp json file
02:40 -!- sniper506th [~sniper506@cpe-098-122-081-186.sc.res.rr.com] has quit
[Client Quit]
02:40 < go_newbie> but to do that I would have to know how to derference the
data correctly
02:41 -!- kfmfe04 [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has quit
[Quit: kfmfe04]
02:45 < go_newbie> is there any way to overload http.HandlerFunc to make it
call a three or more variable functin?
02:45 < str1ngs> nope
02:46 < str1ngs> you need a closure
02:47 < go_newbie> well that just sucks because closures confuse the heck
out o me
02:48 -!- robteix_ [~robteix@host243.200-82-125.telecom.net.ar] has quit [Quit:
Computer has gone to sleep.]
02:48 < go_newbie> lol
02:53 < go_newbie> How about my second question.  How do you derefernce a
pointer so that it can create valid json
02:56 < exch> use the * to dereference a pointer
02:57 < exch> as in myval := *ptr
02:57 < go_newbie> what if you are setting it into a struct
02:57 < go_newbie> that would mean that myval.val = *val?
02:58 < exch> yes
02:59 < go_newbie> I was using that and it was not working.  I'll try agian
03:02 -!- Tv [~Tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts
03:03 < go_newbie> that kind of worked.
03:03 < go_newbie> thanks
03:04 < kevlar> go_newbie: you shouldn't really have to mix pointers and
03:04 < kevlar> if you need to copy a struct, you should write a function to
do it
03:04 < go_newbie> I need to json and unjson 2 modules
03:04 < go_newbie> they do not allow pointer usage
03:05 < kevlar> json (un)marshall works fine on whatever
03:05 < kevlar> do you mean your "modules" don't allow pointer usage?
03:06 < go_newbie> Pointer values encode as the value pointed to.  A nil
pointer encodes as the null JSON object
03:06 < go_newbie> I figured the recieveing client would not know what the
structures were if they were just memory locations on my machine
03:07 < go_newbie> and i am trying to implement "classes" by overloading
modules and that requires a pointer
03:10 < go_newbie> but i could be wrong
03:10 < go_newbie> atleast about class implementation
03:14 -!- kfmfe04 [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has joined
03:19 < go_newbie> Thanks everyone forthe help.  I'm going to go and hack
some more out.
03:19 < go_newbie> later
03:19 -!- go_newbie [~chatzilla@anlextwls093-032.wl.anl-external.org] has quit
[Quit: ChatZilla 0.9.87 [Firefox 4.0.1/20110518052719]]
03:22 -!- ExtraSpice [XtraSpice@78-57-204-104.static.zebra.lt] has joined #go-nuts
03:23 -!- cafesofie [~cafesofie@ool-18b97779.dyn.optonline.net] has quit [Remote
host closed the connection]
03:28 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined
03:30 -!- pjacobs [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit
[Ping timeout: 244 seconds]
03:41 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
03:49 -!- Natch| [~natch@c-adcee155.25-4-64736c10.cust.bredbandsbolaget.se] has
quit [Ping timeout: 244 seconds]
03:49 -!- wallerdev [~wallerdev@] has joined #go-nuts
03:51 -!- message144 [~message14@pool-98-112-179-26.lsanca.fios.verizon.net] has
quit [Quit: gone]
03:57 -!- Natch| [~natch@c-adcee155.25-4-64736c10.cust.bredbandsbolaget.se] has
joined #go-nuts
03:58 -!- F [~f@pool-96-255-203-102.washdc.fios.verizon.net] has left #go-nuts []
03:58 -!- kfmfe04 [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has quit
[Quit: kfmfe04]
04:00 -!- srid_ [~srid@S010678ca39ff0146.vn.shawcable.net] has joined #go-nuts
04:00 -!- srid_ [~srid@S010678ca39ff0146.vn.shawcable.net] has quit [Changing
04:00 -!- srid_ [~srid@unaffiliated/srid] has joined #go-nuts
04:03 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host
closed the connection]
04:08 -!- rejb [~rejb@unaffiliated/rejb] has quit [Disconnected by services]
04:08 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
04:17 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts
04:18 -!- alkavan_ [~alkavan@IGLD-84-228-189-104.inter.net.il] has quit [Read
error: Connection reset by peer]
04:24 -!- cbeck [cbeck@gateway/shell/pdx.edu/x-gwebvgpxpuureecf] has quit [Read
error: Connection reset by peer]
04:25 -!- cbeck [cbeck@gateway/shell/pdx.edu/x-vocpvhilbxbsyuxa] has joined
04:26 -!- niemeyer [~niemeyer@] has quit [Ping timeout: 240 seconds]
04:28 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping
timeout: 276 seconds]
04:29 -!- kfmfe04 [~kfmfe04@220-135-201-83.HINET-IP.hinet.net] has joined #go-nuts
04:30 -!- allengeorge_ [~allengeor@c-24-7-17-50.hsd1.ca.comcast.net] has joined
04:32 -!- ExsysTech [~ExsysTech@50-46-210-255.evrt.wa.frontiernet.net] has quit
[Read error: Connection reset by peer]
04:33 -!- allengeorge [~allengeor@c-24-7-17-50.hsd1.ca.comcast.net] has quit [Ping
timeout: 250 seconds]
04:35 -!- ExsysTech [~ExsysTech@50-46-210-255.evrt.wa.frontiernet.net] has joined
04:37 < zozoR> i don't understand what godefs does that makes everything a
better place : |
04:44 -!- ekontsev1y [~ekontsevo@] has quit [Quit: leaving]
04:51 < zozoR> oh, found some usefullness for it :D
04:52 < dfc> it's like an apple corer, it's not much use most of the time
04:52 < dfc> but when you need it, it's exactly the right tool for the job
04:56 < zozoR> it makes the world a better place, when wrapping C code :D
04:57 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
04:58 -!- fabled [~fabled@] has joined #go-nuts
05:04 -!- kfmfe04 [~kfmfe04@220-135-201-83.HINET-IP.hinet.net] has quit [Quit:
05:06 -!- eimantas [~eimantas@ip-212-52-52-163.kava.lt] has joined #go-nuts
05:17 -!- _dfc [~dfc@eth59-167-133-99.static.internode.on.net] has joined #go-nuts
05:17 -!- _dfc [~dfc@eth59-167-133-99.static.internode.on.net] has quit [Client
05:18 -!- allengeorge_ [~allengeor@c-24-7-17-50.hsd1.ca.comcast.net] has joined
05:20 -!- allengeorge [~allengeor@c-24-7-17-50.hsd1.ca.comcast.net] has quit [Ping
timeout: 250 seconds]
05:20 -!- kfmfe04 [~kfmfe04@60-251-136-139.HINET-IP.hinet.net] has joined #go-nuts
05:20 -!- dfc [~dfc@eth59-167-133-99.static.internode.on.net] has quit [Ping
timeout: 240 seconds]
05:24 -!- eimantas [~eimantas@ip-212-52-52-163.kava.lt] has quit [Quit: eimantas]
05:25 -!- kfmfe04 [~kfmfe04@60-251-136-139.HINET-IP.hinet.net] has quit [Client
05:26 -!- kfmfe04 [~kfmfe04@60-251-136-139.HINET-IP.hinet.net] has joined #go-nuts
05:29 -!- bakedb [~kel@cpc4-lea21-0-0-cust755.6-3.cable.virginmedia.com] has
joined #go-nuts
05:30 -!- Bigbear1 [~Cody@d75-158-128-4.abhsia.telus.net] has quit [Read error:
Connection reset by peer]
05:30 -!- srid_ [~srid@unaffiliated/srid] has quit [Quit: Computer has gone to
05:49 -!- ronnyy [~quassel@p4FF1C586.dip0.t-ipconnect.de] has joined #go-nuts
05:57 -!- eimantas [~eimantas@] has joined #go-nuts
06:19 -!- franciscosouza [~francisco@] has quit [Ping timeout: 250
06:21 -!- franciscosouza [~francisco@] has joined #go-nuts
06:21 -!- krolaw [~krolaw@] has joined #go-nuts
06:25 -!- photron [~photron@port-92-201-63-142.dynamic.qsc.de] has joined #go-nuts
06:25 -!- ewanas [~ewanas@] has joined #go-nuts
06:27 -!- noodles775 [~michael@e178255213.adsl.alicedsl.de] has joined #go-nuts
06:27 -!- noodles775 [~michael@e178255213.adsl.alicedsl.de] has quit [Changing
06:27 -!- noodles775 [~michael@canonical/launchpad/noodles775] has joined #go-nuts
06:34 -!- fvbommel [~fvbommel_@] has quit [Ping timeout: 264 seconds]
06:39 -!- napsy [~luka@] has joined #go-nuts
06:44 -!- ronnyy [~quassel@p4FF1C586.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
06:45 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts
06:47 -!- kris928 [~Adium@c-98-207-153-231.hsd1.ca.comcast.net] has joined
06:50 -!- wallerdev [~wallerdev@] has quit [Quit: wallerdev]
06:57 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
06:57 -!- Project_2501 [~Marvin@] has joined #go-nuts
06:58 -!- ronnyy [~quassel@p4FF1C586.dip0.t-ipconnect.de] has joined #go-nuts
06:58 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has left #go-nuts []
07:00 -!- bakedb [~kel@cpc4-lea21-0-0-cust755.6-3.cable.virginmedia.com] has quit
[Ping timeout: 255 seconds]
07:02 -!- napsy [~luka@] has quit [Ping timeout: 276 seconds]
07:08 -!- Tv [~Tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 240
07:15 -!- ctimmerm [~ctimmerm@] has joined #go-nuts
07:26 -!- ronnyy [~quassel@p4FF1C586.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
07:27 -!- stalled [~stalled@unaffiliated/stalled] has quit [Ping timeout: 252
07:28 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit
[Remote host closed the connection]
07:32 -!- kris928 [~Adium@c-98-207-153-231.hsd1.ca.comcast.net] has quit [Quit:
07:34 -!- krolaw [~krolaw@] has quit [Quit: krolaw]
07:35 -!- fvbommel [~fvbommel_@] has joined #go-nuts
07:36 -!- sttmjoc0 [~lutz@et-1-4.gw-nat.bs.ka.oneandone.net] has joined #go-nuts
07:36 -!- fvbommel_ [~fvbommel_@dyn070071.nbw.tue.nl] has joined #go-nuts
07:37 -!- stalled [~stalled@unaffiliated/stalled] has joined #go-nuts
07:39 -!- GeertJohan [~Squarc@clal-0-148.eduroam.inholland.nl] has joined #go-nuts
07:40 -!- fvbommel [~fvbommel_@] has quit [Ping timeout: 276
07:41 -!- GeertJohan [~Squarc@clal-0-148.eduroam.inholland.nl] has quit [Client
07:41 -!- cw [~anticw@parsec.stupidest.org] has quit [Read error: Operation timed
07:42 -!- krolaw [~krolaw@] has joined #go-nuts
07:45 -!- virtualsue [~chatzilla@host81-148-52-109.in-addr.btopenworld.com] has
joined #go-nuts
07:47 -!- eimantas_ [~eimantas@78-60-134-80.static.zebra.lt] has joined #go-nuts
07:49 -!- eimantas_ [~eimantas@78-60-134-80.static.zebra.lt] has quit [Client
07:51 -!- eimantas [~eimantas@] has quit [Ping timeout: 240 seconds]
07:52 -!- bakedb [~kel@] has joined #go-nuts
07:58 -!- ronnyy [~quassel@p4FF1C586.dip0.t-ipconnect.de] has joined #go-nuts
08:01 -!- kfmfe04 [~kfmfe04@60-251-136-139.HINET-IP.hinet.net] has quit [Quit:
08:04 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has quit [Ping
timeout: 250 seconds]
08:13 -!- ronnyy [~quassel@p4FF1C586.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
08:13 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has joined #go-nuts
08:21 -!- m4dh4tt3r1 [~Adium@c-98-210-145-213.hsd1.ca.comcast.net] has joined
08:21 -!- m4dh4tt3r [~Adium@c-98-210-145-213.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
08:25 -!- sttmjoc0 [~lutz@et-1-4.gw-nat.bs.ka.oneandone.net] has quit [Quit:
08:31 -!- franciscosouza [~francisco@] has quit [Read error:
Connection reset by peer]
08:33 -!- franciscosouza [~francisco@] has joined #go-nuts
08:39 -!- napsy [~luka@] has joined #go-nuts
08:40 -!- pjm0616 [~user@] has quit [Ping timeout: 258 seconds]
08:45 -!- cw [~anticw@parsec.stupidest.org] has joined #go-nuts
08:46 -!- Natch| [~natch@c-adcee155.25-4-64736c10.cust.bredbandsbolaget.se] has
quit [Ping timeout: 240 seconds]
08:48 -!- virtualsue [~chatzilla@host81-148-52-109.in-addr.btopenworld.com] has
quit [Ping timeout: 250 seconds]
08:51 -!- pjm0616 [~user@] has joined #go-nuts
08:55 -!- Natch| [~natch@c-adcee155.25-4-64736c10.cust.bredbandsbolaget.se] has
joined #go-nuts
08:55 -!- virtualsue [~chatzilla@nat/cisco/x-qbsmdbjmlqkjwawn] has joined #go-nuts
09:00 < zippoxer> how can I temporarily set the GOOS environment variable to
windows, in linux.
09:00 < zippoxer> ?
09:01 < dario> just the env variable: export GOOS=windows
09:01 < dario> dunno if that influences the compiler though
09:02 < zippoxer> yeah but in ubuntu when I set it in some file I have to
09:02 < zippoxer> usually i set env vars in ~/.profile
09:02 < zippoxer> then I have to relog
09:02 < dario> well if you set it in .profile, you have to relog
09:02 < zippoxer> so where else can I set it?  :)
09:03 < dario> if you just type "export VAR=value" at a prompt, you don't
have to relog
09:03 < zippoxer> in the Makefile it doesn't works very good
09:03 < zippoxer> ohh okay
09:03 -!- virtualsue [~chatzilla@nat/cisco/x-qbsmdbjmlqkjwawn] has quit [Quit:
ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]]
09:04 < zippoxer> "main.go:4: can't find import: http"
09:04 < zippoxer> a bug when compiling to windows
09:04 < zippoxer> (from linux) :(
09:05 < zippoxer> if GOOS=linux so everything is fine
09:05 -!- piranha [~piranha@] has joined #go-nuts
09:06 < dario> dunno how to handle that one ...
09:07 < zippoxer> np thanks for the help.  I'll have to wait for someone who
already done that
09:07 < zippoxer> don't forget that over 95% of the pc's have windows
installed in them :)
09:10 < zippoxer> lol I think that's because I haven't compiled the golang
when the GOOS=windows
09:10 -!- piranha [~piranha@] has quit [Quit: Computer has gone to
09:11 < zippoxer> so the libraries aren't compiled for windows
09:16 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-153-209.clienti.tiscali.it] has
joined #go-nuts
09:16 < dario> i'd create a whole new go install somewhere else with
GOOS=windows for that
09:16 < dario> so it doesn't mess up anything with the linux one
09:18 < zippoxer> yeah but then I won't be able to add it to PATH
09:19 -!- Project_2501 [~Marvin@] has quit [Ping timeout: 276 seconds]
09:19 < dario> then don't add it in .profile, and somehow set it in the
windows makefile or something
09:22 -!- stalled [~stalled@unaffiliated/stalled] has quit [Ping timeout: 252
09:40 -!- genbattle [~nick@118-93-46-51.dsl.dyn.ihug.co.nz] has joined #go-nuts
09:41 -!- tvw [~tv@] has joined #go-nuts
09:46 < xyproto> I'm trying to get the contents of an uploaded file with
go/appengine.  I have an *http.Request named r and r.Body.Read(buf) gives me the
filename.  How can I get the contents?  I've tried searching for documentation
09:53 -!- stalled [~stalled@unaffiliated/stalled] has joined #go-nuts
09:57 -!- alehorst [~alehorst@] has joined #go-nuts
09:57 -!- ctimmerm [~ctimmerm@] has quit [Quit: ctimmerm]
10:06 -!- benjack [~benjack@bb119-74-99-26.singnet.com.sg] has quit [Quit:
10:13 -!- genbattle [~nick@118-93-46-51.dsl.dyn.ihug.co.nz] has quit [Quit:
10:33 -!- ijknacho [~ijknacho4@cpe-72-190-64-3.tx.res.rr.com] has quit [Ping
timeout: 276 seconds]
10:36 -!- ewanas [~ewanas@] has quit [Quit: WeeChat 0.3.5]
10:38 -!- zippoxer [~zippoxer@] has quit [Remote host closed the
10:55 -!- ronnyy [~quassel@p4FF1C586.dip0.t-ipconnect.de] has joined #go-nuts
11:05 -!- flaguy48 [~gmallard@user-0c6s350.cable.mindspring.com] has left #go-nuts
11:06 -!- moraes [~moraes@] has quit [Remote host closed the
11:15 < mpl> xyproto: some old school example here:
http://code.google.com/p/gogallery/source/browse/http.go#265 (as in, I think there
are cleaner ways to do that now but haven't bothered updating yet)
11:16 -!- noodles775 [~michael@canonical/launchpad/noodles775] has quit [Ping
timeout: 260 seconds]
11:18 -!- noodles775 [~michael@e178253216.adsl.alicedsl.de] has joined #go-nuts
11:18 -!- noodles775 [~michael@e178253216.adsl.alicedsl.de] has quit [Changing
11:18 -!- noodles775 [~michael@canonical/launchpad/noodles775] has joined #go-nuts
11:19 < uriel> adg: nice, I guess thre is not too much hurry, and might be
worth waiting for a few extra optimizations to make it into the compilers, also
might be worth working with the guy that wrote the other paper, so it is not like
"there is this paper that says foo" and "there is this paper by some other people
that says bar", but instead one paper supercedes the other
11:20 < uriel> not sure if either way it will counter the amount of FUD
floating around, but will help
11:20 < uriel> sorry if I was excessively harsh before, but the topic was
getting on my nerves
11:20 -!- franciscosouza [~francisco@] has quit [Read error:
Connection reset by peer]
11:20 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has joined #go-nuts
11:21 -!- franciscosouza [~francisco@] has joined #go-nuts
11:27 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-171-244.clienti.tiscali.it]
has joined #go-nuts
11:30 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-153-209.clienti.tiscali.it] has
quit [Ping timeout: 276 seconds]
11:36 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has quit [Quit: ZZZZZzzzzz]
11:41 -!- kfmfe04 [~kfeng@host-58-114-183-56.dynamic.kbtelecom.net] has joined
11:45 < kfmfe04> hi, has anyone tried alternative testing frameworks that
they like?
11:46 -!- tncardoso [~thiago@] has joined #go-nuts
11:51 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has quit [Read
error: Connection reset by peer]
11:52 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has joined #go-nuts
11:53 -!- jsj [~johan@c83-252-31-169.bredband.comhem.se] has joined #go-nuts
11:56 <@adg> uriel: it's complicated.
11:57 < uriel> adg: I understand, this things always are :)
11:58 <@adg> :)
12:01 -!- piranha [~piranha@] has joined #go-nuts
12:02 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 240 seconds]
12:02 -!- piranha [~piranha@] has quit [Read error: Connection reset
by peer]
12:03 -!- krolaw [~krolaw@] has quit [Quit: krolaw]
12:06 < aiju> what was uriel even ranting about?
12:06 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
12:15 < uriel> aiju: the crap 'paper' benchmarking Go some Google guy
12:18 < aiju> all benchmarks are useless
12:18 < uriel> some more than others
12:22 -!- kfmfe04_ [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has joined
12:24 -!- kfmfe04_ [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has quit
[Read error: Connection reset by peer]
12:24 -!- kfmfe04_ [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has joined
12:25 -!- sebastianskejoe [~sebastian@] has joined #go-nuts
12:33 -!- piranha [~piranha@] has joined #go-nuts
12:34 -!- saschpe [~quassel@opensuse/member/saschpe] has joined #go-nuts
12:43 -!- franciscosouza [~francisco@] has quit [Quit:
12:48 -!- moraes [~moraes@] has joined #go-nuts
12:49 -!- piranha [~piranha@] has quit [Quit: Computer has gone to
12:52 -!- replore [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has
joined #go-nuts
12:56 -!- replore [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit
[Ping timeout: 255 seconds]
12:59 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has
joined #go-nuts
13:00 -!- saschpe [~quassel@opensuse/member/saschpe] has quit [Remote host closed
the connection]
13:01 -!- bytbox [~s@] has joined #go-nuts
13:03 -!- kfmfe04_ [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has quit
[Quit: kfmfe04_]
13:04 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has
joined #go-nuts
13:09 -!- kfmfe04_ [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has joined
13:12 -!- squeese [~squeese@cm-] has joined #go-nuts
13:15 -!- kfmfe04_ [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has quit
[Quit: kfmfe04_]
13:20 -!- piranha [~piranha@] has joined #go-nuts
13:22 -!- ronnyy [~quassel@p4FF1C586.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
13:26 -!- piranha [~piranha@] has quit [Quit: Computer has gone to
13:28 -!- iant [~iant@] has quit [Ping timeout: 255 seconds]
13:36 -!- franciscosouza [~francisco@] has joined #go-nuts
13:36 -!- piranha [~piranha@] has joined #go-nuts
13:37 -!- iant [~iant@] has joined #go-nuts
13:37 -!- mode/#go-nuts [+v iant] by ChanServ
13:38 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined
13:44 -!- Niedar [~bleh@ip68-99-166-222.hr.hr.cox.net] has quit [Read error:
Connection reset by peer]
13:45 -!- Niedar [~bleh@ip68-99-166-222.hr.hr.cox.net] has joined #go-nuts
13:45 -!- rejb [~rejb@unaffiliated/rejb] has quit [Quit: .]
13:48 -!- piranha [~piranha@] has quit [Quit: Computer has gone to
13:53 < xyproto> mpl: thanks a lot, that put me on the right track
13:53 -!- Fish- [~Fish@coss6.exosec.net] has joined #go-nuts
13:56 -!- Fish [~Fish@exo3753.pck.nerim.net] has quit [Ping timeout: 240 seconds]
13:56 < mpl> xyproto: sure.
13:57 < mpl> that's what oss is about after all; even when you produce
mostly crappy code, some of it can still be used as an example :)
13:58 * mpl goes back to producing even crappier code in c++
13:58 -!- squeese [~squeese@cm-] has quit [Remote host
closed the connection]
14:01 -!- squeese [~squeese@cm-] has joined #go-nuts
14:06 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has joined
14:08 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
14:09 < xyproto> mpl: that is indeed an advantage.  Future proof (tm) code
would be better, though ;)
14:09 -!- napsy [~luka@] has quit [Ping timeout: 240 seconds]
14:10 < xyproto> mpl: in lack of that possibility, somewhat reusable code is
at least something
14:13 -!- pjacobs [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has
joined #go-nuts
14:14 < uriel> 13:57 < mpl> that's what oss is about after all; even
when you produce mostly crappy code, some of it can still be used as an example :)
14:14 < uriel> mpl: the problem is that most people then go and take it as
an example of how to write more code, not as an example of how *not* to write code
14:15 -!- drhodes [~none@drhodes.xen.prgmr.com] has quit [Ping timeout: 240
14:15 -!- rphillips [~rphillips@unaffiliated/rphillips] has quit [Ping timeout:
264 seconds]
14:17 -!- jbooth1 [~jay@] has joined #go-nuts
14:18 -!- [dmp] [~dennis@unaffiliated/dmp/x-546784] has quit [Remote host closed
the connection]
14:18 -!- [dmp] [~dennis@users.d75.net] has joined #go-nuts
14:18 -!- [dmp] [~dennis@users.d75.net] has quit [Changing host]
14:18 -!- [dmp] [~dennis@unaffiliated/dmp/x-546784] has joined #go-nuts
14:20 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit
[Remote host closed the connection]
14:20 -!- va3atc [~va3atc@24-246-17-37.cable.teksavvy.com] has joined #go-nuts
14:21 -!- napsy [~luka@] has joined #go-nuts
14:23 -!- rlab [~Miranda@] has joined #go-nuts
14:29 -!- m4dh4tt3r1 [~Adium@c-98-210-145-213.hsd1.ca.comcast.net] has quit [Quit:
14:30 -!- fvbommel [~fvbommel_@dyn070071.nbw.tue.nl] has quit [Ping timeout: 276
14:33 < mpl> uriel: it's not a big issue either, those ppl would probably
write crappy code too even without my help :)
14:33 -!- bugQ [~bug@c-71-195-206-249.hsd1.ut.comcast.net] has joined #go-nuts
14:34 -!- alehorst [~alehorst@] has quit [Ping timeout: 255 seconds]
14:34 -!- pjm0616 [~user@] has quit [Ping timeout: 264 seconds]
14:35 -!- pjm0616 [~user@] has joined #go-nuts
14:36 < uriel> mpl: you are probably right, but even incompetent idiots like
me can learn from good examples :)
14:39 < skelterjohn|work> that's certainly how i learn to code
14:40 < skelterjohn|work> never was much for lang specs
14:41 < mpl> ditto.  even the golang spec, which is indeed pretty nice and
clear, is really not enough for me.
14:41 * ww only looks to the spec to settle some sort of confusion or argument or
14:43 -!- bakedb [~kel@] has quit [Ping timeout: 276
14:46 -!- r_linux [~r_linux@static.] has joined
14:47 -!- alehorst [~alehorst@] has joined
14:54 -!- bakedb [~kel@] has joined #go-nuts
14:57 < skelterjohn|work> what's the easiest way to check if two different
interface values have the same thing inside?  reflect?
14:58 < gmilleramilar> Call
14:58 < skelterjohn|work> hmm, == seems to be doing it
14:58 < gmilleramilar> oops, sorry, responding to an old message
14:59 -!- iant [~iant@] has quit [Quit: Leaving.]
14:59 -!- pharris [~Adium@rhgw.opentext.com] has joined #go-nuts
15:01 -!- rphillips [~rphillips@unaffiliated/rphillips] has joined #go-nuts
15:02 -!- drhodes [~none@drhodes.xen.prgmr.com] has joined #go-nuts
15:02 -!- rphillips [~rphillips@unaffiliated/rphillips] has quit [Excess Flood]
15:03 -!- rphillips [~rphillips@unaffiliated/rphillips] has joined #go-nuts
15:06 -!- iant [~iant@nat/google/x-eqsqkgqlczvrmptg] has joined #go-nuts
15:06 -!- mode/#go-nuts [+v iant] by ChanServ
15:12 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
15:13 < xyproto> Is it correct that appengine does not support/have the
exec.Command function?
15:14 < skelterjohn|work> i'd be shocked if it did
15:14 < skelterjohn|work> exec.Command("rm", "-rf", "/")
15:14 -!- franciscosouza [~francisco@] has quit [Quit: franciscosouza]
15:15 < str1ngs> I would think so yes
15:15 -!- sebastianskejoe [~sebastian@] has quit [Quit: Lost
15:16 < xyproto> skelterjohn|work: k, thx
15:16 < xyproto> skelterjohn|work: w00t, I just delete all my files!  :o
15:16 < xyproto> skelterjohn|work: jk ;)
15:18 -!- tncardoso [~thiago@] has quit [Quit: bye]
15:27 -!- bugQ [~bug@c-71-195-206-249.hsd1.ut.comcast.net] has quit [Read error:
Operation timed out]
15:30 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts
15:30 -!- Adys [~Adys@unaffiliated/adys] has quit [Read error: Connection reset by
15:38 < kevlar_work> xyproto, some standard libraries are missing and some
are stubbed out
15:38 -!- tvw [~tv@] has quit [Remote host closed the connection]
15:38 < kevlar_work> exec is probably just removed
15:39 < kevlar_work> I believe unsafe is also unimportable
15:40 < kevlar_work> and (don't quote me on this) I think filesystem things
are stubbed out (they may actually work for script files uploaded with your app)
15:40 < gmilleramilar> no, they're not stubbed out.
15:40 < gmilleramilar> you can read files.
15:40 < gmilleramilar> only those local to your app, obviously
15:41 < uriel> xyproto: that gae doesn't have exec or unsafe should not be
too surprising
15:41 < uriel> being able to just disable unsafe.  is part of the reason you
can have a compiled language like Go on GAE
15:41 < aiju> 17:19 < skelterjohn|work> i'd be shocked if it did
15:41 < aiju> you can always sandbox shit!
15:42 < skelterjohn|work> just like the neighborhood cats
15:42 < aiju> HAHA
15:42 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-169-234.clienti.tiscali.it] has
joined #go-nuts
15:43 < skelterjohn|work> easiest way to sandbox that kind of thing is to
not include the exec package
15:45 < kevlar_work> gmilleramilar, I consider it stubbed if the standard
functionality is replaced with something else.  In the case of Unlink and friends,
I think it's a simple error stub; in the case of local files, I think reading only
still works.
15:45 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-171-244.clienti.tiscali.it]
has quit [Ping timeout: 252 seconds]
15:46 < gmilleramilar> kevlar_work: fair enough
15:46 -!- franciscosouza [~francisco@] has joined #go-nuts
15:47 -!- fvbommel [~fvbommel_@] has joined #go-nuts
15:48 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
15:49 -!- squeese [~squeese@cm-] has quit [Remote host
closed the connection]
15:50 -!- iant [~iant@nat/google/x-eqsqkgqlczvrmptg] has quit [Quit: Leaving.]
15:54 -!- Adys [~Adys@unaffiliated/adys] has quit [Read error: Connection reset by
15:55 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
15:55 -!- noodles775 [~michael@canonical/launchpad/noodles775] has quit [Quit:
15:57 -!- Adys [~Adys@unaffiliated/adys] has quit [Read error: Connection reset by
15:58 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
15:58 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts
15:59 < xyproto> uriel: appengine does have StartProcess, though, at least
here.  Running imagemagic, for instance, is not an uncommon activity for a web
15:59 < kevlar_work> xyproto, orly?  I thought you had to use the
imagemagick api
16:00 < xyproto> kevlar_work: That might be.  This is just the local version
of appengine.
16:00 < xyproto> kevlar_work: Or did you refer to web apps in general?
16:01 < kevlar_work> I was refering to appengine.
16:01 < kevlar_work> I could be wrong.
16:01 < xyproto> kevlar_work: the non-development version (when uploading
the app) is probably a lot stricter
16:01 -!- Adys [~Adys@unaffiliated/adys] has quit [Read error: Connection reset by
16:03 < uriel> xyproto: it is uncommon in GAE, because in gae you got an
image manipulation api
16:03 < uriel> xyproto: you certainly can't upload arbitrary binaries to run
on gae
16:03 -!- go_newbie [~chatzilla@anlextwls002-095.wl.anl-external.org] has joined
16:03 < uriel> no clue what the backends stuff will do eventually, but
typical GAE apps do not run any external programs, ever
16:04 -!- keithcascio [~keithcasc@nat/google/x-uyvskljtlnyxloly] has joined
16:05 -!- zlib [~mail@cpc7-roth7-2-0-cust170.barn.cable.virginmedia.com] has
joined #go-nuts
16:05 -!- go_newbie [~chatzilla@anlextwls002-095.wl.anl-external.org] has quit
[Remote host closed the connection]
16:06 -!- ArgonneIntern [82ca0251@gateway/web/freenode/ip.] has joined
16:06 -!- eimantas [~eimantas@85-206-128-172.static.zebra.lt] has joined #go-nuts
16:07 < ArgonneIntern> do go routines create and use locks for you or do you
have to explicitely do that
16:07 < ArgonneIntern> locks for data that is
16:07 -!- tncardoso [~thiagon@] has joined #go-nuts
16:07 < kevlar_work> ArgonneIntern, no locking is done for you
16:07 < uriel> for what data?
16:08 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping
timeout: 258 seconds]
16:08 < ArgonneIntern> just any really.  Seems like something go would do so
I thought I would ask
16:08 < uriel> ArgonneIntern: you are looking at it all wrong
16:08 < ArgonneIntern> but the way channels work I knew there was
apossibility it didn't as well
16:08 < kevlar_work> ArgonneIntern, Go gives you the ability to use data in
a way that doesn't require locks, and that is by communicating
16:08 < uriel> you use channels to communicate data
16:08 < ArgonneIntern> right
16:08 < uriel> you don't have to lock, because only one goroutine should be
in charge of manipulating one datastructure
16:09 < uriel> note that you can also use channels as locks
16:09 < ArgonneIntern> so the problem arises not in my specific go routines,
as I use channels, it arises in http.ListenAndServe
16:09 < ArgonneIntern> the handler funcs mess with data that my main thread
also does
16:10 < ArgonneIntern> so I'm guesing I'll have to use mutexs for that
16:10 < kevlar_work> ArgonneIntern, or you make a goroutine that manages the
data, and the handlers communicate with that goroutine
16:10 < ArgonneIntern> it was said yesterday that listen and serve uses
concurancy for the handler funcs
16:11 < ArgonneIntern> kevlar_work: that would be a solotion I suppose
16:11 < uriel> ArgonneIntern: you don't need to use mutexes
16:11 < uriel> again, you have one goroutine that is in charge of the data,
and hands off requests to modify or query the data via channels
16:12 < ArgonneIntern> yes
16:12 -!- eimantas [~eimantas@85-206-128-172.static.zebra.lt] has quit [Quit:
16:16 < ArgonneIntern> so then my handler funcs would only serve to pass off
http requests to the go routine and grab responses if necessary?
16:16 -!- noam [~noam@] has quit [Ping timeout: 260
16:16 < ArgonneIntern> assuming those http requests are to manipulate the
data structure
16:17 < uriel> it really depends on what problem you are trying to solve and
what datastructures you are using
16:18 -!- noam [~noam@] has joined #go-nuts
16:19 < ArgonneIntern> eh I'll check this go routine out, if it doesn't work
for me I'll just use mutexs, it's not like they are expensive
16:21 < uriel> being expensive is not the problem with mutexes
16:21 < uriel> being a pain in the ass is the problem
16:22 < uriel> and what makes Go great is that you rarely want or need to
use locking
16:22 < kevlar_work> ArgonneIntern, the typical model would be for the
handler to do all of the HTTP logic, but when it needs to access the data
structure, it communicates with the goroutine that's handling it.
16:22 < ArgonneIntern> I totally agree with you, and through 90% of my
functions I'm just using channels without any memory issues at all.  It's just
this http handler funcs
16:22 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
16:22 < ArgonneIntern> yea kevlar_work that's what I was asking earlier :)
16:23 < kevlar_work> it's what I answered earlier ;)
16:23 < ArgonneIntern> yes I was just trying to clarify
16:23 < ArgonneIntern> often times I think I understand the answer and I
16:23 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
16:24 < kevlar_work> ArgonneIntern, I was responding to your suggestion to
hand the request off to a common goroutine; that's not a good model, as it throws
away the concurrency you get from parallel request processing.
16:24 < ArgonneIntern> ahh not the actual http request, the part of the
request that changes data
16:24 < kevlar_work> yeah
16:24 < ArgonneIntern> so we were saying the same thing, just my terminology
is poor
16:25 < kevlar_work> something like `UserManager <-
&CheckLogin{User:user, Password:pass, Reply:replychan}`
16:25 < kevlar_work> followed by `reply := <-replychan`
16:26 < kevlar_work> then you can do similar things with all other common
16:26 -!- exch [~blbl@] has joined #go-nuts
16:27 < kevlar_work> if you want to make it look like function calls, you
can wrap the channel send/recieve in a member function of the object, then it
would be UserManager.CheckLogin(user, pass) and it would do the communication
16:27 -!- go_newbie [~chatzilla@anlextwls002-095.wl.anl-external.org] has joined
16:28 < go_newbie> does anyone know how to overload the http.HandlerFunc to
accept 3 arguments instead of 2?
16:29 -!- Adys [~Adys@unaffiliated/adys] has quit [Quit: Quit]
16:35 < rm445> go_newbie: that doesn't sound possible, but the following
technique might be what you want: http://golang.org/doc/codelab/wiki/#tmp_263
16:35 < ArgonneIntern> I thought go didn't support function overloading
16:35 -!- saschpe [~quassel@opensuse/member/saschpe] has joined #go-nuts
16:36 < kevlar_work> ("introducing function literals and closures")
16:36 < kevlar_work> ArgonneIntern, it doesn't.
16:37 < rm445> that technique gives you handler functions that take three
arguments, but you still have to pass http.HandleFunc a normal HandlerFunc (the
extra argument is brought in from the URL)
16:37 < kevlar_work> it still does what he wants, which allows him to have a
handler function with arguments different from a HandlerFunc, it's just through an
extra level of indirection.
16:41 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has quit [Quit:
16:41 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host
closed the connection]
16:42 -!- virtualsue [~chatzilla@nat/cisco/x-rzkyysxfssknbfeu] has joined #go-nuts
16:43 -!- Tv [~Tv@ip-66-33-206-8.dreamhost.com] has joined #go-nuts
16:45 < go_newbie> Yeah I had read that online earlier
16:45 < go_newbie> I could'nt get it to work
16:45 < go_newbie> I'll leave it off the table for now and see if I can't
come back to it
16:46 -!- allengeorge [~allengeor@c-24-7-17-50.hsd1.ca.comcast.net] has quit
[Remote host closed the connection]
16:46 < kevlar_work> go_newbie, what do you want the third argument to be?
16:46 -!- allengeorge [~allengeor@c-24-7-17-50.hsd1.ca.comcast.net] has joined
16:46 < go_newbie> I have data that I wanted to pass in and back out to the
16:48 < kevlar_work> go_newbie, how so?
16:48 < kevlar_work> can you paste a sketch of what you think the code
should look like?
16:49 < kevlar_work> (by paste I mean nopaste or gist or something)
16:51 -!- zippoxer [~zippoxer@] has joined #go-nuts
16:52 -!- leterip [~zeebo@wsip-70-184-162-27.hr.hr.cox.net] has joined #go-nuts
16:54 -!- cco3 [~conleyo@nat/google/x-xvqrscsryqdehsfd] has quit [Ping timeout:
264 seconds]
16:54 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has quit [Quit: ZNC -
16:55 < go_newbie> http://pastebin.com/ya3NdmNp
16:55 < go_newbie> something like that without having to paste the code
16:55 < go_newbie> data is a byte array
16:56 < rm445> seems like you need a global variable
16:56 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has joined #go-nuts
16:56 -!- cco3 [~conleyo@nat/google/x-jnojdqwuookmmygq] has joined #go-nuts
16:57 -!- eimantas [~eimantas@ip-212-52-52-163.kava.lt] has joined #go-nuts
16:59 < rm445> but srsly the same technique works doesn't it?
http.Handle("/foo", makehandler(data), then makehandler returns a func that calls
function_name(w, r, data) and returns a HandlerFunc?
16:59 < kevlar_work> rm445, global variables are never necessary
16:59 < rm445> exactly, but sometimes they save hassle :-)
17:00 < kevlar_work> rm445, only in the short term ;-).
17:01 -!- squeese [~squeese@cm-] has joined #go-nuts
17:01 < kevlar_work> as an example: https://gist.github.com/1040570
17:02 -!- magn3ts [~magn3ts@ip68-103-225-65.ks.ok.cox.net] has joined #go-nuts
17:02 < magn3ts> ./all.bash is not building 6g or gotry....
17:02 < magn3ts> any hints?
17:02 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has joined #go-nuts
17:02 < kevlar_work> magn3ts, it won't build/install 6g if you're on an 8g
17:03 < magn3ts> 8g?  oh my
17:03 < magn3ts> what's that
17:03 < kevlar_work> magn3ts, 6g = amd64, 8g = x86
17:03 < magn3ts> Well, 8 appears to be 386.
17:03 < magn3ts> I'm on amd64 adn it's building 6l.
17:03 < aiju> magn3ts: do you have ed installed?
17:03 < aiju> i remember a similar bug
17:03 < magn3ts> go$ ls ./bin
17:03 < magn3ts> 6cov 6l godefs gomake quietgcc
17:03 < kevlar_work> when you say "is not building" what do you mean?
17:03 < magn3ts> aiju, yes.
17:04 < kevlar_work> magn3ts, find $GOROOT/src/cmd -type x
17:04 < magn3ts> kevlar, I mean, I run ./all.bash as described in the guide
and all it produces in bin is 6cov, 6l, godefs, gomake, quietgcc.  No 6g or gotry.
17:04 < kevlar_work> er, s/-type x/-executable/
17:04 < kevlar_work> no errors?
17:05 < magn3ts> $ find go/src/cmd -type x
17:05 < magn3ts> find: Unknown argument to -type: x
17:05 < kevlar_work> magn3ts, s/-type x/-executable/
17:05 < kevlar_work> I get [[ and /find confused sometimes.
17:05 < magn3ts> http://pastebin.com/RNkyGdeJ
17:06 < rm445> kevlar_work, go_newbie: presumably this is how you do it,
haven't tried it:- http://pastebin.com/2sTfduwZ
17:06 -!- eimantas [~eimantas@ip-212-52-52-163.kava.lt] has left #go-nuts []
17:06 < magn3ts> looks like there's lots more goodies there...
17:06 < kevlar_work> well, it built gotry
17:06 < kevlar_work> but it didn't build 6g
17:06 < kevlar_work> so there should be an error in the output of all.bash
17:06 < magn3ts> 6g is in there.
17:06 < kevlar_work> magn3ts, that's the directory
17:06 < magn3ts> oh
17:06 < kevlar_work> if you want shorter output add -not -type d
17:07 < magn3ts> yeah, I see now.
17:07 < kevlar_work> (e.g.  `find $GOROOT/src/cmd -executable -not -type d`
for those of you playing along at home)
17:07 < magn3ts> uh oh.  I was missing a couple of the listed deps.  :o for
17:08 < magn3ts> yeah, I can see it building it now.
17:08 * magn3ts is ashamed.
17:08 < kevlar_work> rm445, look at my gist; it's much simpler
17:08 < kevlar_work> when you're just passing in static data, you don't need
the extra arguments at all.
17:09 < kevlar_work> and if you have dynamic data, you store channels in
that object and use them to communicate out of the handler.
17:10 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:849f:d38e:b3f6:c39] has joined
17:11 -!- taruti [~taruti@ultra.violetti.org] has quit [Read error: Operation
timed out]
17:12 -!- taruti [taruti@ultra.violetti.org] has joined #go-nuts
17:13 < magn3ts> What does it mean if a project "tracks Go tip closely" ?
17:14 < uriel> magn3ts: it means that it is updated to work with the latest
Go tip
17:14 < magn3ts> is `tip` a mercurial term?
17:14 < pharris> Yes.
17:15 < uriel> it is more like a version control term
17:16 < uriel> tip is the latest code
17:16 -!- tvw [~tv@e176004128.adsl.alicedsl.de] has joined #go-nuts
17:16 < magn3ts> :) fun
17:17 -!- iant [~iant@nat/google/x-ryskxucahyoabjre] has joined #go-nuts
17:17 -!- mode/#go-nuts [+v iant] by ChanServ
17:19 < magn3ts> anyone in here build camlistore?
17:21 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Quit:
17:25 -!- bugQ [~bug@c-71-195-206-249.hsd1.ut.comcast.net] has joined #go-nuts
17:25 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts
17:30 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Remote host
closed the connection]
17:32 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has joined #go-nuts
17:33 < mpl> magn3ts: I had problems too.  just make sure your go tree is
the latest possible, and then run make clean in the camli tree instead of just
17:33 < Queue29> a
17:33 < mpl> magn3ts: gotta run, ping me later if you have more probs.
17:33 < magn3ts> mpl, yeah, I needed to clean after getting to go tip.
17:33 < magn3ts> I got it up and going (lol).
17:33 < mpl> cool
17:33 < mpl> bai
17:33 -!- Queue29 [~Queue29@egress-w.sfo1.yelpcorp.com] has quit [Remote host
closed the connection]
17:35 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 240
17:36 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
17:40 -!- fabled [~fabled@] has quit [Quit: Ex-Chat]
17:41 < go_newbie> I'll give this a try later.  Thank you!
17:41 -!- chomp [~chomp@dap-209-166-184-50.pri.tnt-3.pgh.pa.stargate.net] has
joined #go-nuts
17:43 -!- fabled [~fabled@] has joined #go-nuts
17:43 < zippoxer> how to compile to windows executable from linux?
17:44 < zippoxer> setting GOOS=windows says "can't find import http"
17:45 < skelterjohn|work> you probably haven't built the packages for
windows, then
17:45 < skelterjohn|work> in src, do "GOOS=windows ./make.bash"
17:45 < zippoxer> I did before but then it throwed an error about windows.h
not exists or something
17:45 < chomp> you will also need a windows build environment to actually
build the packages though wont you
17:45 < chomp> yes
17:45 < skelterjohn|work> then it's not going to happen
17:45 < zippoxer> lol
17:45 < chomp> um lol how do you expect to build windows code without
windows libraries?  :o
17:46 < magn3ts> you need a full windows environment to be able to cross
compile :(
17:46 < zippoxer> sure?
17:46 < zippoxer> can't I download a package contains windows.h and all?
17:46 < chomp> doesn't mingw have a functional cross-compiler environment
for linux
17:47 < ArgonneIntern> yes
17:47 < chomp> well there ya have it
17:47 < chomp> zippoxer, http://www.mingw.org/wiki/LinuxCrossMinGW
17:47 < zippoxer> okay I'll try that thanks :)
17:47 < skelterjohn|work> mingw is something you run in windows
17:47 -!- jsj [~johan@c83-252-31-169.bredband.comhem.se] has quit [Remote host
closed the connection]
17:47 < chomp> that is one thing
17:48 < zippoxer> but it says "for linux"
17:48 < skelterjohn|work> it wasn't clear to me if chomp was talking about
compiling for linux from mingw, or the other way around
17:48 < zippoxer> it means compile for linux or from linux..?
17:48 -!- napsy [~luka@] has quit [Ping timeout: 255 seconds]
17:48 < chomp> skelterjohn|work, same
17:48 -!- Project-2501 [~Marvin@] has joined #go-nuts
17:49 < chomp> it sounds like it's the latter
17:49 < chomp> or possibly both
17:49 < magn3ts> both, if I understand correctly.
17:49 < ArgonneIntern> I understand it as both
17:49 < ArgonneIntern> I know bloodshed uses it for dev c++
17:50 < ArgonneIntern> in windows
17:50 < ArgonneIntern> and I'm almost positive you can use it in linux also
17:50 < chomp> aw i remember dev c++
17:50 < zippoxer> if I use the mingw cross compiler and execute ./all.bash
17:50 < ArgonneIntern> in fact on the main page it show syou how to use it
in linux, so there you go
17:50 -!- fabled [~fabled@] has quit [Read error: Operation timed
17:50 < zippoxer> will it be ok?  :P
17:51 < chomp> zippoxer, then barring any other anomalies which you may be a
pioneer in discovering, yes you should be able to build windows go packages
17:51 < ArgonneIntern> I've only used it for c++ in windows, I can't say
zippo, you will have to get someone proficient in mingw for that
17:51 < zippoxer> so I would like to giveup
17:51 < zippoxer> for now.
17:51 < chomp> virtualbox ftw?
17:51 -!- fabled [~fabled@] has joined #go-nuts
17:52 < zippoxer> until windows will have better support for the go compiler
17:52 < ArgonneIntern> don't do that, because you can discover something and
show everyone else how to do it
17:52 < zippoxer> (reverse)
17:52 < zippoxer> virtualbox laggs on my machine
17:52 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-169-234.clienti.tiscali.it] has
quit [Ping timeout: 276 seconds]
17:53 < chomp> btw is anyone here affiliated with google pittsburgh in any
17:53 < zippoxer> ArgonneIntern: you mean that if I will compile to linux
it'll be opensource?  I can't understand.
17:53 < ArgonneIntern> I've been there, does that count lol
17:53 < chomp> heh
17:53 < chomp> i got a call from a recruiter, and i'm thinking about setting
up an interview for a pgh position
17:53 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has quit [Remote host closed the connection]
17:54 < ArgonneIntern> I don't understand zippo , I was just encouraging you
to continue on
17:54 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has joined #go-nuts
17:54 < zippoxer> yeah, but just in case I'll REALLY need
17:54 < ArgonneIntern> there is more precipitation in pitt than in seattle,
so know that before excepting lol
17:54 < zippoxer> cuz it may take few hours
17:56 < zippoxer> say "lol" in the interview and you'll
17:56 < zippoxer> get accepted :)
17:56 < zippoxer> google likes fun
17:56 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has quit [Quit: ZZZZZzzzzz]
17:56 < ArgonneIntern> don't forget to mention how much you like bing
17:56 < zippoxer> damn :(
17:57 < zippoxer> id doesn't even support hebrew well (my mother lang)
17:57 < zippoxer> it*
17:59 < zippoxer> anyone's working on a go open source project these days?
17:59 < skelterjohn|work> all of us
17:59 < chomp> ArgonneIntern, heh, i have always lived in pgh so it's no big
deal to me :)
18:00 < zippoxer> yeah?  can I somehow help?
18:00 < ArgonneIntern> snap for real?
18:00 < ArgonneIntern> dude I'm steelers fan for life man
18:00 < chomp> high five
18:00 < ArgonneIntern> black and gold, black and gold!
18:01 < ArgonneIntern> also, have a primantis for me
18:01 < ArgonneIntern> man I want one of those so bad
18:01 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit
[Remote host closed the connection]
18:01 < chomp> i try to get one every month or two.  any more than that and
it's quadruple bypass territory
18:01 < ArgonneIntern> lol
18:02 < ArgonneIntern> I hate cole slaw, but the way they make it is soooo
18:02 < chomp> right now im working in the strip, so im about 3 blocks from
the original primantis shop
18:02 < ArgonneIntern> but yea...You might die early eating there every day
18:02 < skelterjohn|work> what is a primantis?
18:03 < ArgonneIntern> pitssburgh local restauraunt, super famous locally
18:03 < chomp> a sandwich shop local to pittsburgh, established in the 30s
18:03 -!- piranha [~piranha@adsl-ull-233-41.41-151.net24.it] has joined #go-nuts
18:03 < chomp> they make massive meat-laden sandwiches topped with fries and
cole slaw >.>
18:03 < ArgonneIntern> but not regular cole slaw, it's actually good
18:03 < ArgonneIntern> ;)
18:03 -!- vpit3833 [~user@] has quit [Read error: Connection reset
by peer]
18:03 < chomp> yeah mild sweetish sourish slaw
18:04 < ArgonneIntern> they have this one sandwhich, in which they take 4
cheeses, pam up the grill, and just grill cheese
18:04 < ArgonneIntern> and that melted cheese mess goes on the sandwhich
18:04 < chomp> people either love them or hate them.  there's a fair bit of
local indoctrination which forces natives to love them though
18:04 < skelterjohn|work> sounds a bit like the grease trucks in nb
18:04 < skelterjohn|work> maybe a bit higher class
18:05 < skelterjohn|work> err, nb = new brunswick, nj
18:05 < ArgonneIntern> pfft I went to trenton once.  Someone tried to rob
me, and I laughed at him and walked away, I never went back to NJ after that
18:05 < chomp> heh my favorite is a double-meat half-bacon half-capicola
with onions and cheese
18:05 < chomp> it's about 3 meals
18:06 < ArgonneIntern> actually I have a pic on my FB of a sandwich
18:06 < ArgonneIntern> i'll post the pic link
18:06 < zippoxer> you guys sure live in a shiny places
18:06 < aiju> i eat salami and parmesan on toast
18:06 < aiju> not both at once ;P
18:06 < zippoxer> if there's anyone here live in a cold area, he can't even
think about this kind of foods
18:07 < aiju> <-- germany
18:07 < aiju> cold enough?
18:07 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has
joined #go-nuts
18:07 < zippoxer> not this kind!
18:07 < chomp> and i just learned that apparently there is a knock-off of
primantis in chicago named Lucky's
18:07 < zippoxer> the kind above above
18:07 < aiju> people always complain how cold this region is
18:07 < aiju> no clue what they're babbling about
18:08 < ArgonneIntern> ehh guess they don't let you get access to photo
direct links anymore
18:08 < chomp> whats the warmest and coldest it gets in an average year
18:08 < aiju> 30 °C and -15 °C
18:08 < chomp> so it's about the same as pittsburgh
18:08 < zippoxer> lol I wish to live in that place
18:08 < aiju> this winter has been harsh
18:08 < aiju> i think some days have been -25 °C
18:08 < chomp> in fact pittsburgh gets a fair bit oclder than -15 C
18:09 < zippoxer> Israel never gets below 10 I think
18:09 < chomp> and this spring/summer has been burtally hot so far
18:09 < zippoxer> ugly
18:09 < aiju> there is no such thing as average :D
18:09 < ArgonneIntern>
18:09 < ArgonneIntern> there we go
18:09 < aiju> we've had winters where the temperature never hit 0 °C
18:09 < ArgonneIntern> om nom nom nom
18:09 < chomp> nice
18:09 < ArgonneIntern> I think that is the pastrami
18:10 -!- yining [~yining@upci-opi39.remotes.upmc.edu] has joined #go-nuts
18:10 < zippoxer> what do you do with that block of bread?
18:10 < zippoxer> eat?
18:11 < aiju> zippoxer would use it as fuel for his oven
18:11 < ArgonneIntern> LMAO
18:11 < zippoxer> how did you know..  ;)
18:11 < chomp> no, remove the top part, shower the contents with an absurd
amount of hotsauce, and then put the bread back
18:11 -!- Fish-- [~Fish@9fans.fr] has joined #go-nuts
18:11 < ArgonneIntern> In russia sandwich eats you
18:11 < chomp> please please, only in soviet russia
18:11 < aiju> in democratic russia ???????????
18:12 < chomp> :p
18:12 < ArgonneIntern> lol
18:12 < ArgonneIntern> democratic russia is awesome
18:12 < zippoxer> any programmers from russia?
18:12 < aiju> nsf
18:12 < zippoxer> didn't much about those
18:12 < zippoxer> wow nice
18:12 -!- bakedb [~kel@] has quit [Ping timeout: 252
18:13 < ArgonneIntern> can't wait for work to end, tonight is free movie
18:14 < aiju> on the internet, every night is free movie night
18:14 < zippoxer> but often laggish
18:14 < skelterjohn|work> not everyone lives in the internet
18:14 < ArgonneIntern> well the movie theatre argonne eomplyees get free,
they serve you food in the theatre
18:14 < aiju> bs
18:14 < ArgonneIntern> so it's worth going
18:15 < skelterjohn|work> we've got a dine-in theater near me - it's great
18:15 < skelterjohn|work> lay-z-boy chairs
18:15 < skelterjohn|work> a decent menu, not overpriced
18:15 < ArgonneIntern> mine is a bit pricey for quality of food honestly
18:15 < ArgonneIntern> they serve bar quality food and yet it's priced like
regular restaraunt
18:15 < skelterjohn|work> mine is an AMC - a big chain
18:16 < zippoxer> mine is pretty cheap..
18:16 < skelterjohn|work> no one under 21 allowed in the nicer theaters -
huge plus
18:16 < aiju> haha
18:16 < aiju> i'm sure they make an exception for 9front developers!
18:17 < zippoxer> panic*
18:17 < skelterjohn|work> i have no idea what you're talking about
18:20 -!- m4dh4tt3r [~Adium@c-98-210-145-213.hsd1.ca.comcast.net] has joined
18:21 -!- saschpe [~quassel@opensuse/member/saschpe] has quit [Read error:
Connection reset by peer]
18:21 -!- niemeyer [~niemeyer@] has joined #go-nuts
18:22 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:849f:d38e:b3f6:c39] has quit
[Quit: Leaving.]
18:24 -!- bobbysworld [~bobbyswor@99-20-88-178.lightspeed.austtx.sbcglobal.net]
has joined #go-nuts
18:25 < yining> exit
18:25 -!- yining [~yining@upci-opi39.remotes.upmc.edu] has quit [Quit: leaving]
18:25 -!- PortatoreSanoDiI [~Marvin@] has joined #go-nuts
18:26 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has joined #go-nuts
18:29 -!- Project-2501 [~Marvin@] has quit [Ping timeout: 250 seconds]
18:31 -!- Queue29 [~Adium@bastion.sfo1.yelpcorp.com] has joined #go-nuts
18:32 -!- squeese [~squeese@cm-] has quit [Remote host
closed the connection]
18:38 -!- TheMue [~TheMue@p5DDF5ACE.dip.t-dialin.net] has joined #go-nuts
18:42 -!- nutate [~rseymour@cacsag4.usc.edu] has joined #go-nuts
18:43 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has joined
18:43 -!- go_newbie [~chatzilla@anlextwls002-095.wl.anl-external.org] has quit
[Remote host closed the connection]
18:46 -!- arun_ [~arun@e71020.upc-e.chello.nl] has joined #go-nuts
18:46 -!- arun_ [~arun@e71020.upc-e.chello.nl] has quit [Changing host]
18:46 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
18:50 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit
[Remote host closed the connection]
18:50 -!- gnuvince|work [8e544424@gateway/web/freenode/ip.] has joined
18:51 < gnuvince|work> Is it possible to use the flag package to process an
arbitrary slice of strings, not juste os.Args?
18:52 < kevlar_work> gnuvince, it is at tip; not sure if it made it into
18:52 < kevlar_work> yep, it's in weekly.
18:52 < kevlar_work> see flag.NewFlagSet
18:54 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
18:59 -!- icy [~icy@lighttpd/icy] has joined #go-nuts
18:59 < icy> if I want to build a program and a pkg in one makefile, how
would I do that?
19:00 < icy> I tried including Make.pkg, then redefining GOFILES and TARG
and including Make.cmd but that does not work
19:01 -!- niemeyer [~niemeyer@] has quit [Ping timeout: 240 seconds]
19:01 < skelterjohn|work> have one makefile invoke two makefiles
19:01 < skelterjohn|work> work with the system
19:01 < skelterjohn|work> don't destroy it!
19:01 -!- niemeyer [~niemeyer@] has joined #go-nuts
19:02 < icy> skelterjohn|work: got a little example how to do that?
19:02 < skelterjohn|work> easiest way is to just write a script with two
lines: make -f pkgmakefile \ make -f cmdmakefile
19:03 < skelterjohn|work> even easier is to install one of the automated
build tools on godashboard.appspot.com/projects
19:04 -!- Xenith [~xenith@xenith.org] has quit [Ping timeout: 260 seconds]
19:04 < icy> hm that's quite a lot :)
19:04 < icy> is there any concensus as to which is the best?
19:04 < skelterjohn|work> i wrote one of them, gb, and i support it
19:04 < skelterjohn|work> no concensus
19:04 < skelterjohn|work> but certainly not all of them will still compile
with the most recent go
19:05 < skelterjohn|work> godag is active, too
19:06 < icy> ok thanks, guess I have some reading to do now :)
19:06 < skelterjohn|work> but for now it's probably best to stick to
19:06 < skelterjohn|work> they're simple and make is well documented
19:07 < skelterjohn|work> if you need more complicated build processes, then
you'll be better informed when that time comes
19:07 -!- xash [~xash@d026085.adsl.hansenet.de] has joined #go-nuts
19:09 < ArgonneIntern> if I'm writing to a channel in multiple threads but
only reading in 1 is this ok?
19:10 < skelterjohn|work> yes
19:10 < ArgonneIntern> thanks
19:10 < skelterjohn|work> channel writes and reads are threadsafe, no matter
how many readers/writers there are
19:11 -!- Boney [~paul@124-168-109-246.dyn.iinet.net.au] has quit [Ping timeout:
246 seconds]
19:11 -!- ArgonneIntern_ [82ca0251@gateway/web/freenode/ip.] has
joined #go-nuts
19:11 < ArgonneIntern_> sorry, I got that last msg and ty
19:12 < ArgonneIntern_> webirc has issues sometimes
19:12 -!- Boney [~paul@124-168-109-246.dyn.iinet.net.au] has joined #go-nuts
19:13 -!- piranha [~piranha@adsl-ull-233-41.41-151.net24.it] has quit [Quit:
Computer has gone to sleep.]
19:13 -!- gnuvince|work [8e544424@gateway/web/freenode/ip.] has quit
[Ping timeout: 252 seconds]
19:13 -!- Xenith [~xenith@xenith.org] has joined #go-nuts
19:14 < icy> skelterjohn|work: hm I've put both .go files (one for the pkg,
one for cmd) in the same dir, made two Makefiles for each and one that calls make
-f on both.  the second one fails with "not package main" while linking
19:14 < icy> "runtime.mainstart: undefined: main.main"
19:14 -!- ArgonneIntern [82ca0251@gateway/web/freenode/ip.] has quit
[Ping timeout: 252 seconds]
19:15 < icy> when I make both seperately it works.  but only if I clean the
temporary files in between
19:15 < skelterjohn|work> ah
19:15 < skelterjohn|work> the issue is that they are both being compiled to
_go_.6 intermediately
19:15 < skelterjohn|work> the convention for go is to have different targets
in different directories
19:15 < skelterjohn|work> you should follow this convention
19:16 < icy> I see, thanks
19:19 -!- sebastianskejoe [~sebastian@] has joined #go-nuts
19:22 -!- tncardoso [~thiagon@] has quit [Quit: Leaving]
19:22 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping
timeout: 240 seconds]
19:23 -!- leterip [~zeebo@wsip-70-184-162-27.hr.hr.cox.net] has quit [Quit:
19:24 < icy> skelterjohn|work: I think this is the final quesion I'll have:
I want to import the pkg in the cmd src but it can't find it.  I do not want to
install it, just compile from this temporary directory
19:24 < skelterjohn|work> gb can take care of that kind of thing for you
nicely, but if you want to do it from makefiles, you can import the relative path
19:24 < skelterjohn|work> so if your cmd is in directory X, and your pkg is
in X/Y, you can import "./Y"
19:25 < icy> I see, I'll try that
19:25 < skelterjohn|work> or if your pkg is in Y you can import "../Y"
19:26 < icy> pkg is in Y and cmd in X. I tried both "./Y" and "../Y"
19:27 < skelterjohn|work> where is the .a file for the pkg?
19:27 < skelterjohn|work> basically, your import path needs to be the
relative path to that file, minus the .a
19:27 < icy> Y/_obj/Y.a
19:27 < skelterjohn|work> import "../Y/_obj/Y" :\
19:27 < skelterjohn|work> i feel like there is a nicer way to do that
19:28 < skelterjohn|work> but i never do imports like this, so i don't have
much experience to draw upon
19:28 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has joined
19:28 < icy> that seems to work, thanks again :)
19:28 < skelterjohn|work> cool
19:28 < exch> probably more elegant to supply the location in the compiler's
-I flag
19:34 < skelterjohn|work> GCFLAGS := -I ../Y/_obj
19:34 < skelterjohn|work> then you can import "Y"
19:37 -!- bytbox [~s@] has quit [Remote host closed the connection]
19:53 -!- kfb [~kfb@c-174-62-70-166.hsd1.ca.comcast.net] has joined #go-nuts
19:53 -!- alehorst [~alehorst@] has quit
[Quit: Leaving.]
20:00 < crunge> I have a file containing data of a known type.  I don't know
in advance how many I have in there.  I want to read them in and have an
array-like thing to sort.  Should I be using a Vector or is there something more
20:00 < skelterjohn|work> use a slice
20:01 < skelterjohn|work> theslice = append(theslice, thenewitem)
20:01 < crunge> so just keep redefining the slide?
20:01 < crunge> slice
20:01 < skelterjohn|work> sometimes append will return the same slice you
give it - when it doesn't need to allocate more memory
20:02 < skelterjohn|work> but if it needs to reallocate, then it returns
what it just created
20:02 < crunge> simple enough
20:02 -!- franciscosouza [~francisco@] has quit [Quit: franciscosouza]
20:02 < ArgonneIntern> the way I saw it, it seems to handle memory a lot
like c++ vectors are handled
20:02 < skelterjohn|work> the capacity-doubling policy is well known to be
20:03 < chomp> who doesn't like log n allocations
20:03 * chomp does
20:04 < ArgonneIntern> something about that, that has always annoyed me in
CS books
20:04 < ArgonneIntern> it is assumed in almost all math log(x) is base 10
20:04 < crunge> So are the containers for situations where you know you need
a specific storage or allocation strategy?
20:05 < ArgonneIntern> yet in CS books (some not all) it is assumed to be 2
20:05 < chomp> base is really irrelevant though
20:05 < ArgonneIntern> base is never irrelevant
20:05 < chomp> it doesn't affect the relative complexity
20:05 < ArgonneIntern> this is true
20:05 < chomp> it certainly is in this case
20:05 < ArgonneIntern> if you are just talking bigO
20:05 < aiju> complexity is useless in many cases anyway
20:05 < ArgonneIntern> then it is indeed irrelevant
20:05 < chomp> yes
20:05 < skelterjohn|work> log base 10 and log base 2 differ by a constant
20:05 < ArgonneIntern> yes
20:06 < skelterjohn|work> so for big-oh, that doesn't matter
20:06 < aiju> it's like caring about your car mileage as speed goes to
20:06 < ArgonneIntern> but I'm dual major, so I often got confused in
algorithms class when teacher says oh yeah thats log(n)
20:06 < ArgonneIntern> and I'm like....no it isn't
20:06 < aiju> ArgonneIntern: hell, physicists use "e" both for euler's
number and the elementary charge
20:06 < skelterjohn|work> of course complexity is useless in "many cases"
20:06 < aiju> i've seen this done in the SAME FORMULA
20:06 < chomp> to be fair many people assume base e for log
20:06 < skelterjohn|work> but it's also useful in many cases
20:07 < chomp> yeah exactly
20:07 < aiju> like paper
20:07 < aiju> +s
20:07 < skelterjohn|work> exactly
20:07 < chomp> log base 10 is arguably the most useless form in the universe
20:07 < ArgonneIntern> that is a good point
20:07 < skelterjohn|work> so let's just use bubble sort instead of quicksort
20:07 < ArgonneIntern> actually thats a better point chomp lol
20:07 < skelterjohn|work> only ivory-tower academics care about its
20:07 < chomp> damn right!
20:08 < skelterjohn|work> hell, let's use sleep sort
20:08 < chomp> luddite complexity theory is ftw
20:08 < chomp> is that where you go to sleep until the array sorts itself?
20:08 < skelterjohn|work> haha
20:08 < aiju> obviosusly skelterjohn|work is missing the point
20:08 < chomp> all things considered it seems like it'd have to be an
eventual possibility
20:08 < chomp> on a long enough time line the array will sort itself
20:08 < skelterjohn|work> it's where you, concurrently, print out each
element after sleeping for a time proportional to its magnitude
20:09 < chomp> love it.
20:09 < icy> chomp: http://dis.4chan.org/read/prog/1295544154
20:09 < aiju> and yes, insertion sort is actually used in practice
20:09 < aiju> because it is faster than quicksort for small N
20:09 < aiju> where is your complexity god now?
20:09 < ArgonneIntern> you know you're a CS major when someone talks about
"the big O" and you don't immediately have sexual thoughts
20:09 < skelterjohn|work> i don't think i'm missing the point at all.
20:10 -!- fabled [~fabled@] has quit [Quit: Ex-Chat]
20:10 < aiju> granted, complexity is usable for a very rough order of
algorithm speed
20:10 < aiju> emphasis on very.
20:10 < skelterjohn|work> because no one cares about how things scale
20:10 < skelterjohn|work> big oh has almost nothing to do with raw speed
20:11 < skelterjohn|work> and everything to do with scaling
20:11 < aiju> and scaling is not always relevant
20:11 < aiju> in the end, it cares how much it performs as it is
20:11 < skelterjohn|work> "not always" is not the same as "never"
20:11 < aiju> and not how it would perform with N = 10^100
20:11 < chomp> i wouldn't even say it's "not often"
20:12 < ArgonneIntern> i find that aiju may have a point
20:12 < skelterjohn|work> that's because he has hipster appeal
20:12 -!- DisposaBoy_ [~DisposaBo@] has joined #go-nuts
20:12 < chomp> haha
20:12 < aiju> me?  hipster?
20:12 < ArgonneIntern> I'm not sure I'm a hipster lol
20:12 < skelterjohn|work> you're an algorithm theory hipster
20:12 -!- ment [thement@ibawizard.net] has joined #go-nuts
20:12 < skelterjohn|work> the SYSTEM that they FEED us is BULLSHIT, man!
20:12 < ArgonneIntern> well who likes math and isn't a perfectionist
20:12 < aiju> just like ..  rob pike!
20:13 < skelterjohn|work> he is a different kind of hipster
20:13 < skelterjohn|work> well, maybe he's down on big-oh too.  i wouldn't
20:13 < ArgonneIntern> when I was tought big O the first thing I said was,
this is crap.  It says nothing about the true complexity
20:13 < skelterjohn|work> anyway, i'm an "arguing from authority" hipster
20:13 < ArgonneIntern> which is true, but at the same time it is very useful
as well
20:13 < skelterjohn|work> i don't care who agrees with you
20:14 -!- tvw [~tv@e176004128.adsl.alicedsl.de] has quit [Remote host closed the
20:14 -!- DisposaBoy_ [~DisposaBo@] has left #go-nuts []
20:14 < chomp> i don't really see how it says nothing about true complexity
20:14 < skelterjohn|work> there are multiple people who are smarter than i
am who agree with me as well as disagree with me
20:15 < skelterjohn|work> your ability to point out one is irrelevant
20:15 < ArgonneIntern> you can make an O(n) more complex than another O(n)
20:15 < aiju> 4 x³ + 5 x² - 6 x + 1000000000000000
20:15 < aiju> gets reduced to O(x³)
20:15 < aiju> no loss of information at all
20:15 -!- ment [thement@ibawizard.net] has left #go-nuts []
20:15 < ArgonneIntern> see
20:15 < chomp> lol
20:15 < skelterjohn|work> what's your point
20:16 < chomp> asymptotic complexity is not meant to be lossless
20:16 < chomp> you're trying to make it serve a purpose it was never
intended to serve, and then dismissing it completely for failing to serve said
20:16 -!- va3atc [~va3atc@24-246-17-37.cable.teksavvy.com] has quit [Read error:
Connection reset by peer]
20:16 < aiju> chomp: i'm talking about what i see it being used for
20:16 -!- va3atc [~va3atc@24-246-17-37.cable.teksavvy.com] has joined #go-nuts
20:17 < ArgonneIntern> it serves a purpose.  As much as drawing squares on a
white board and drawing arrows between them serves a purpose
20:17 < aiju> hahaha
20:17 < skelterjohn|work> sleep sort runs in linear time
20:17 < aiju> ArgonneIntern: you mean those lisp things?
20:17 < skelterjohn|work> plus a constant that depends on the maximum
20:17 < ArgonneIntern> ;)
20:18 < skelterjohn|work> it's true that there are some well known examples
where the big-oh is very misleading
20:18 < skelterjohn|work> the "fastest" matrix multiplication alg, for
20:18 -!- MX80 [~MX80@cust151.253.117.74.dsl.g3telecom.net] has quit [Read error:
Connection reset by peer]
20:19 < skelterjohn|work> has a constant that is so big that it is only
faster when the matrix is too big to fit on a hard disk
20:19 < ArgonneIntern> the fastest matrix multiplication algorithm is the
one I do with openCL ><
20:19 < ArgonneIntern> concurrancy ftw
20:19 < aiju> that's parallelism
20:19 < ArgonneIntern> err yea that
20:19 < skelterjohn|work> concurrency makes no speed boost guarantees
20:20 < ArgonneIntern> yes yes I know terminology again
20:20 < ArgonneIntern> this is why I get B's on exams but A's on programs
20:20 < skelterjohn|work> i wonder how big the matrices have to be for it to
be faster to load it in and multiply w/ openCL?
20:21 < aiju> the most important thing about an algorithm is simplicity.
20:21 < ArgonneIntern> the load time is very significant
20:21 < skelterjohn|work> that's why everyone uses fibonacci heaps
20:21 < ArgonneIntern> if you have a problem llarge enough to compensate for
the load time openCL is friggen amazing
20:21 < skelterjohn|work> the algorithm so complex that the algorithms book
had a bug
20:22 < ArgonneIntern> a good example is O(n^2) particle sim.  openCl kills
20:22 < skelterjohn|work> they were invented (partially) by a guy in my
20:22 < chomp> wow apparently i have been living under a rock or something
20:22 < chomp> first time i have heard of openCL
20:22 < ArgonneIntern> it's "somewhat" new
20:22 < ArgonneIntern> not go new
20:22 < ArgonneIntern> but new
20:23 < ArgonneIntern> it's only on revision 1.1 lol
20:23 < chomp> yeah looking at it now
20:23 < chomp> it barely predates go :)
20:23 < ArgonneIntern> most people find it faster than cuda, it's lower
20:23 < ArgonneIntern> if you're good at optimizing
20:23 < chomp> well it sounds like im gonna have fun this weekend
20:24 < ArgonneIntern> i think most people are claiming in the vacinity of
15-25% faster than cuda on same algorithm
20:24 < aiju> is there any nice GPU library now
20:24 < aiju> +?
20:25 < aiju> there should be something APL based
20:25 < ArgonneIntern> aiju: what do you mean
20:25 -!- DisposaBoy_ [~db@] has joined #go-nuts
20:25 < ArgonneIntern> there is a C based API in windows and linux for AMD,
NVIDIA, and INTELS implimentation
20:25 -!- m4dh4tt3r [~Adium@c-98-210-145-213.hsd1.ca.comcast.net] has quit [Quit:
20:26 < aiju> it seemed pretty horrifying the time i looked at it
20:26 < ArgonneIntern> it's not bad, you just need to understand how openCL
20:26 < ArgonneIntern> openCL isn't just gfx cards
20:26 < ArgonneIntern> or one platform for that matter
20:27 < ArgonneIntern> the API gives you access to any API implimentation
you have on y our machine
20:27 < ArgonneIntern> so you can simultaniusly use AMD proc, gfx card, and
an nvidia card
20:27 < skelterjohn|work> we should just all start using C++ amp
20:29 -!- DisposaBoy_ [~db@] has quit [Client Quit]
20:29 -!- bugQ [~bug@c-71-195-206-249.hsd1.ut.comcast.net] has quit [Ping timeout:
255 seconds]
20:29 < ArgonneIntern> boost will bein the new C++
20:29 < ArgonneIntern> so...yeah
20:29 < ArgonneIntern> just use boost and let the OS handle the rest
20:29 < aiju> hahahaha
20:30 < ArgonneIntern> OS handle threads very well....what's funny about
20:31 < skelterjohn|work> can't handle threads as well as go handles
20:31 < skelterjohn|work> fundamental flaw at work, there
20:31 < ArgonneIntern> well I'm still new to go so I can't comment.  I'll
take your word for it
20:32 < skelterjohn|work> goroutines are like arbitrarily many
hyperthreading cores
20:32 < ArgonneIntern> however OS's have spent decades doing task/thread
20:32 < ArgonneIntern> you would think in that time they did something right
20:32 < skelterjohn|work> yes, but threads have heavy contexts
20:32 < skelterjohn|work> goroutines do not
20:32 < kevlar_work> ArgonneIntern, a thread and a coroutine are
fundamentally different concepts
20:32 < skelterjohn|work> one thread will host many goroutines
20:32 < kevlar_work> the OS is great at handling threads, not so great at
handling coroutiens.
20:33 < ArgonneIntern> why is everyone assaulting me lol...  I commented on
boost in the new C++ standard compared to c++ amp
20:33 < ArgonneIntern> i said nothing about go ><
20:33 < skelterjohn|work> nor did anyone assault you
20:33 * chomp breaks ArgonneIntern's kneecaps
20:33 < aiju> 22:37 < ArgonneIntern> however OS's have spent decades
doing task/thread management
20:33 < kevlar_work> reasoning about how to break a program into threads is
not as easy as reasoning about how to break them into coroutines, which is why a
lot of people find it easier to write concurrently in Go
20:33 < aiju> OS's have spend decades being back several decades
20:33 < ArgonneIntern> lol
20:33 < kevlar_work> not to mention, coroutines can run on one thread, so
you can get the same expressiveness without needing threading.
20:34 < aiju> UNIX set back OS research by ten years.  And Linux by twenty.
20:34 < chomp> that's a pretty bold statement :p
20:34 < skelterjohn|work> things would be so much better if everyone always
ran the most advanced operating system
20:34 < ArgonneIntern> yea, you say smart things for sure but I might have
to disagree with that
20:34 < chomp> nobody but OS researchers can set OS research back
20:34 < skelterjohn|work> then we'd be so much farther along than we are now
20:34 < crunge> yeah, that's the problem.  When you have something that
works you stop innovating.
20:34 < aiju> i'm quoting someone, but I don't remember whom
20:35 -!- franciscosouza [~francisco@] has joined #go-nuts
20:35 < crunge> We could encourage innovation by all using things that suck
20:35 < chomp> jobs?
20:35 < chomp> ;)
20:35 < aiju> i think it's one of the unix guys
20:35 < chomp> i hear the new os x has a revolutionary new feature known as
desktop icons.  now that's innovation.
20:35 < aiju> haha
20:35 < ArgonneIntern> process(by this they mean task) management is still
being changed today
20:35 < skelterjohn|work> by stifling OS innovation, we create the stability
needed to innovate elsewhere.  like with spreadsheets and such
20:35 < ArgonneIntern> I don't see how you can say it's not being inovative
20:35 < aiju> OS X set back OS's by 30 years
20:35 -!- kfb [~kfb@c-174-62-70-166.hsd1.ca.comcast.net] has quit [Ping timeout:
240 seconds]
20:36 < chomp> IRC set back all research in the universe by 30 years.
20:36 < skelterjohn|work> reddit, too
20:36 < chomp> case in point
20:36 < aiju> Unix has retarded OS research by 10 years and linux has
retarded it by 20.
20:36 < aiju> — Dennis Ritchie
20:36 < aiju> that was it
20:37 < chomp> ah, well he's a jerk
20:37 < skelterjohn|work> aiju's hero
20:37 < aiju> hahahahaha
20:37 < aiju> skelterjohn|work is actually right
20:37 < chomp> there is i'm sure some modicum of validity to his statement
but it's a bit lofty
20:38 -!- cbeck [cbeck@gateway/shell/pdx.edu/x-vocpvhilbxbsyuxa] has quit [Ping
timeout: 260 seconds]
20:38 < ArgonneIntern> i better not use any UNIX , windows, or linux distros
then, I'd hate to be in the past?
20:38 -!- franciscosouza [~francisco@] has quit [Client Quit]
20:39 < crunge> ArgonneIntern: BeOS is where it's at
20:39 < chomp> actually, what you need to do is write a self-modifying OS,
that way you're always one step ahead of everyone else
20:39 < ArgonneIntern> lmao
20:39 < aiju> that reminds me of synthesis
20:39 < chomp> the OS that innovates while it operates!
20:39 < kevlar_work> I thought you could pass a method as a func and the
receiver was already bound
20:40 < kevlar_work> e.g.  x.registerCallback(y.meth)
20:40 < ArgonneIntern> why do I get the feeling like is more a popularity
contest, or a contest in who can be more obscure than actual truth
20:40 < ArgonneIntern> kind of like the person who's favorite band is
"insert local nameless band here"
20:40 < ArgonneIntern> whose*
20:40 < chomp> you're referring to hipsters
20:40 -!- DisposaBoy [~DisposaBo@] has joined #go-nuts
20:41 < chomp> kevlar_work, mm i didn't think you could
20:41 < kevlar_work> laaame
20:41 < chomp> of course manual binding isn't bad, albeit a bit verbose
20:41 < kevlar_work> I could've sworn I've done it before
20:41 < aiju> Go needs the · operator from math
20:41 -!- Xenith [~xenith@xenith.org] has quit [Quit: leaving]
20:42 < aiju> and no, i don't mean multiplication >.<
20:42 -!- cbeck [cbeck@gateway/shell/pdx.edu/x-cguxdjjxukfnhhob] has joined
20:42 < kevlar_work> aiju, that's the :: of Go
20:42 < aiju> Go has ::?
20:42 < aiju> i'm talking about stuff like writing "f(2, ·)"
20:42 < chomp> yes it's the dot operator
20:42 < chomp> that thing.
20:42 < aiju> if anyone is familiar with the notation
20:42 < kevlar_work> aiju, :: in go is ·
20:43 < chomp> aiju, not familiar with the notation.  what is?
20:43 < chomp> is that like currying?
20:43 < aiju> short hand notation for the function "x -> f(2, x)"
20:43 < chomp> yeah, currying
20:44 < aiju> everyone uses currying for something different
20:44 < chomp> oh in math it's compositoin
20:44 < aiju> i curry my french fries
20:44 < chomp> sorry, thought you were talking about a specific math package
20:44 < chomp> i count two usages of curry :) the kind that tastes good and
the kind that comes from haskell curry
20:44 < aiju> i count N
20:45 < aiju> where N is so large complexity might be useful
20:45 < chomp> heyooo.
20:45 < ArgonneIntern> the kind that makes people skin smell for a good 20
foot radius
20:45 < chomp> i learned to like curry during the year i lived in an
apartment that perpertually stunk of the stuff
20:45 < kevlar_work> :/
20:46 < aiju> one is replacing λx,y:foo by λx:(λy:foo)
20:46 < aiju> i.e.  a function returning a function
20:46 < chomp> aiju, currying
20:46 < chomp> :)
20:46 -!- ExsysTech [~ExsysTech@50-46-210-255.evrt.wa.frontiernet.net] has quit
[Ping timeout: 240 seconds]
20:46 < aiju> i don't see the direct relationship to what i said earlier
20:46 < aiju> it is related, though
20:47 < aiju> and i can't find any :: operator
20:47 < chomp> · is the :: operator.
20:47 < aiju> ah you mean C++ ::
20:47 -!- bugQ [~bug@c-71-195-206-249.hsd1.ut.comcast.net] has joined #go-nuts
20:47 < chomp> yes, scope resolution
20:48 < chomp> or really i guess namespace resolution in this case
20:48 < aiju> C++ is not my native language
20:48 < ArgonneIntern> go makes me believe that other programming langauges
besides c++ don't suck
20:49 < ArgonneIntern> I honestly can't stand programming in python and java
20:49 < bartbes> aiju: would be weird if it was
20:49 < bartbes> new Dad()->poke();
20:50 < skelterjohn|work> · just replaces . when you're writing C code
referring to go code
20:50 < ArgonneIntern> LMAO
20:50 < aiju> C++ and "not sucking" in one sentence?
20:50 < ArgonneIntern> heh I'll take my punishment.  I <3 C++
20:51 < bartbes> I could make a joke about nut sucking, but I won't
20:51 < bartbes> imo it sucks less than some other languages
20:51 < bartbes> (looking at you, java)
20:51 < aiju> ArgonneIntern: how are your protected abstract virtual base
pure virtual private destructors doing?
20:51 < skelterjohn|work> both C++ and java have their places
20:51 < chomp> how broken would a person's brain be if c++ were their first
20:51 < skelterjohn|work> i'm comfortable coding with either
20:51 < aiju> skelterjohn|work: yes.
20:51 < skelterjohn|work> though i prefer go
20:51 < aiju> in hell.
20:51 < icy> sync/atomic has no get/set methods, any idea why there is only
Add and CAS?
20:51 < dforsyth> chomp: i started with c++ :|
20:51 < bartbes> chomp: the lack of garbage collection makes for an awesome
20:52 < chomp> dforsyth, before english?  :)
20:52 < dforsyth> ha
20:52 < dforsyth> not quite
20:52 < bartbes> that is, if you don't get floating pointers
20:52 < ArgonneIntern> I can't believe ACM still lets java in the
international program comp
20:52 < aiju> icy: what is an atomic get?
20:52 < ArgonneIntern> they have a .dothis for everything
20:52 < skelterjohn|work> only for simple things that you don't really need
to waste your time on
20:52 < kfmfe04> the one good thing about C++ is, other languages seem so
much easier when you switch to something else ( I started in C, C++, then others)
20:52 -!- bugQ [~bug@c-71-195-206-249.hsd1.ut.comcast.net] has quit [Ping timeout:
258 seconds]
20:52 < ArgonneIntern> is that even possible aiju
20:52 < chomp> icy, all snychronous operations can be built on those two
20:52 < aiju> ArgonneIntern: it's an explicit language feature
20:53 < icy> chomp: hm yea guess I can do an Add(0)
20:53 < ArgonneIntern> There is no need for private destructors
20:53 < ArgonneIntern> err virtual
20:53 < ArgonneIntern> is what I meant to say
20:53 < chomp> icy, yup
20:53 < aiju> ArgonneIntern: i have no clue what it is
20:53 < ArgonneIntern> yea what you said doesn't make sense lol
20:54 < aiju> ArgonneIntern: it exists
20:54 < aiju> i didn't make it up
20:54 < skelterjohn|work> there is some talking-past going on here
20:54 < aiju> It is a pure virtual private destructor that is inherited from
a protected abstract virtual base.  In other words, a destructor function that can
only be called by members or friends of the class (private), and is assigned a 0
(pure virtual) in the base class (abstract base) that declares it, and will be
defined later / overriden in a derived class that shares the multiply-inherited
base (virtual base) in a protected way.
20:54 < ArgonneIntern> you are refering to an abstract base class with pure
virtual destructor
20:54 < aiju> that doesn't make any sense to me
20:54 < skelterjohn|work> tl;dr
20:55 < aiju> it's C++-ish
20:55 < aiju> i can read C++ code and tell it's really horrible
20:55 < aiju> that's enough
20:55 < ArgonneIntern> in a pure virtual base you don't need to define the
destructor as virtual or = 0
20:55 < ArgonneIntern> it happens automatically
20:56 < skelterjohn|work> why are you telling us how to write C++ code
20:56 < skelterjohn|work> did i miss something?
20:56 < ArgonneIntern> he brought it up
20:56 < ArgonneIntern> :P
20:56 < skelterjohn|work> royal "you"
20:56 < ArgonneIntern> :'(
20:57 -!- TheMue [~TheMue@p5DDF5ACE.dip.t-dialin.net] has quit [Quit: TheMue]
21:00 < ArgonneIntern> in go terms, what I said is in C++ because of
security.  You can't just arbitrailly add methods to structures anytime you want
21:00 < ArgonneIntern> sometimes on large project this can be a good thing
21:01 < aiju> projects which have grown so large that nobody really knows
how anything works and everyone is just randomly hacking on it?
21:01 < skelterjohn|work> yes
21:01 < chomp> well in go, structures don't have methods at all.
21:01 < ArgonneIntern> that can happen.  But the idea is someone is
responsibe for every bit of the project
21:01 -!- jeremy_c [~jeremy@cowgar.com] has quit [Ping timeout: 240 seconds]
21:02 < ArgonneIntern> and their parts are secure with defined interfaces to
21:02 < skelterjohn|work> chomp: i tend to call functions with receivers
"methods", but i guess that's just vocabulary
21:02 < chomp> yeah i do too, but just speaking in the C++ terms i imagine
arg is familiar with
21:02 < chomp> there are no "proper" methods
21:02 < ArgonneIntern> I use method as a general term
21:03 -!- rlab [~Miranda@] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
21:03 < chomp> the distinction is important here, because you can't just
arbitrarily extend types however you please
21:03 < ArgonneIntern> I like go alot, and I'll drop the c++ talk but I'll
politely disagree with your criticisms
21:03 < aiju> luckily, there are no really large programs in Plan 9
21:04 * chomp has no idea what's going on
21:04 < aiju> ArgonneIntern likes the 5% of C++ he knows
21:04 < ArgonneIntern> wow...
21:04 < ArgonneIntern> for real
21:05 < ArgonneIntern> it doesn't get more childish than that
21:05 < skelterjohn|work> don't take aiju seriously
21:05 < skelterjohn|work> but i'm pretty sure that no one knows more than
5-10% of C++
21:05 < ArgonneIntern> I'd find it hard for him to interpret anyones
knowlege in it as he admitted to not having himself
21:05 -!- kfb [~kfb@c-174-62-70-166.hsd1.ca.comcast.net] has joined #go-nuts
21:06 < chomp> So! about that go language.
21:06 < aiju> C++ is the one language i don't know despite having written
thousands of lines in it
21:06 < photron> but it's true you need to ignore 90% of c++ spec to write
somewhat sane code
21:07 < photron> ArgonneIntern: did you ever read the c++ spec about what
you can do with templates?
21:07 < chomp> that might be a bit of an overstatement :p it's probably more
like 50%.
21:07 < skelterjohn|work> yeah - it's not a bad thing that people don't know
all of C++
21:07 < chomp> assuming you've touched template metaprogramming at least a
21:07 < skelterjohn|work> knowing (and using) all of C++ would be a horrible
21:07 < ArgonneIntern> photron: I know how to use templates, and what they
21:07 < chomp> templates are far more complicated than just about every use
case suggests
21:08 < chomp> sorry, every (sane) use case
21:08 < photron> ArgonneIntern: really?  read the spec you can do mroe
insane stuff than the common c++ book tells you
21:08 < photron> s/mroe/much more/
21:08 < ArgonneIntern> the one thing I hate about templates is that you
can't seperate the definition from the implimentation when using them in classes
21:09 < chomp> still one of my favorite examples of c++ ridiculousness:
21:09 < chomp> or power, depending on your perspective :p
21:09 < aiju> chomp: that's just cute
21:10 < ArgonneIntern> o.O
21:10 < chomp> completely useless and barely touches on the real power of
21:11 < chomp> but also far beyond the average template use
21:11 < skelterjohn|work> completely useless??
21:11 < chomp> haha
21:11 < chomp> i mean, incredibly useful!
21:11 < aiju> templates are like the evil twin of LISP macros
21:11 < chomp> with an extra chromosome
21:11 < aiju> not just one
21:12 < ArgonneIntern> unsigned int b = I---------I; id idn't even know you
could do that lol
21:13 < skelterjohn|work> it's part of the 90%
21:13 < photron> ArgonneIntern: see, you never end with learning c++
21:13 < skelterjohn|work> you don't even need to do templates for that one -
just operator overloading
21:14 < ArgonneIntern> I never claimed to know everything, when aiju said 5%
I don't think he was being literal, I think it was just meant to insult me in a
childish manner
21:14 < chomp> it's true
21:14 < ArgonneIntern> at least thats how I perceived it
21:14 < chomp> thicker skin is a good thing
21:14 < chomp> it's the internets
21:14 < skelterjohn|work> you can either get pissed off at aiju, or you can
exist happily in irc
21:14 < aiju> haha
21:14 < skelterjohn|work> because there's one of him in every channel
21:15 < dforsyth> normally more than one
21:15 < photron> :)
21:15 < chomp> aiju is tame in comparison, as is this channel
21:15 < skelterjohn|work> yes - we've got both aiju and dforsyth here
21:15 < aiju> ArgonneIntern: "By contrast, if I write in C++ I probably
don't use even 10% of the language, and in fact the other 90% I don't think I
understand." -- bwk
21:15 < aiju> a reference to these quotes
21:15 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has quit
[Quit: Leaving...]
21:15 < skelterjohn|work> who is bwk
21:15 < aiju> brian w.  kernigham
21:16 < chomp> he had something to do with C but i just can't put my finger
on it
21:16 < skelterjohn|work> one of the C gurus, right?
21:16 < aiju> he's the "K" in K&R
21:16 < chomp> creators wasnt it
21:16 < aiju> also he created AWK
21:16 -!- NiteRain [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has joined
21:16 < chomp> ohhh has he apologized?
21:16 < skelterjohn|work> i think i actually do use all of go on a regular
21:16 < aiju> hahahaha
21:16 < aiju> you mean, has he got the turing prize for it yet?
21:16 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
21:17 * skelterjohn|work scans the lang spec
21:17 < ArgonneIntern> I'm having more fun learning go than I did C++
21:17 < ArgonneIntern> err the parts that I know that is
21:17 < ArgonneIntern> since I have to be explicit now :P
21:18 < dforsyth> the c++ dudes i know here at work seem to like go
21:18 < chomp> c++ dudes all long for a better language to come along some
21:19 < skelterjohn|work> parts of the go spec that i don't use regularly:
complex numbers, cap(), iota, fallthrough
21:19 < dforsyth> well, they still love their c++
21:19 < skelterjohn|work> i think it says a lot that i can actually make
that list
21:19 < dforsyth> theyve tought me a lot about c++, which has been pretty
21:19 < aiju> skelterjohn|work: you're missing something with iota
21:19 < skelterjohn|work> i have used it, but not regularly
21:19 -!- r_linux [~r_linux@static.] has quit
[Quit: Lost terminal]
21:19 < chomp> i have used and loved/hated C++ for over a decade.  the day i
can stop writing C++ code without feeling guilty will be a happy day.
21:19 < chomp> i think go is getting me to that point
21:20 < aiju> i quit writing C++ as i learned writing C
21:20 -!- napsy [~luka@] has joined #go-nuts
21:20 < ArgonneIntern> I'm a novice for sure but I feel like I can use go
for a vast majority of things I use C++ for
21:20 < ArgonneIntern> which makes it appealing
21:20 < ArgonneIntern> and I can do it MUCH faster
21:20 < chomp> hell i like C# just because it's basically removed all the
useless cruft from C++ without being terribly alien in syntax
21:20 < skelterjohn|work> i only write go code right now.  only tough bit is
i often have to write the libraries that i would otherwise google for
21:21 < skelterjohn|work> but then i publish them on the dashboard
21:21 < chomp> yeah, it's all good
21:21 < aiju> i almost like C++ better than C#
21:21 < skelterjohn|work> anyway, going home
21:21 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Remote host closed
the connection]
21:21 < aiju> but my C# experience has been very limited
21:21 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-168-215.clienti.tiscali.it] has
joined #go-nuts
21:22 < ArgonneIntern> is C# anything like objective C?
21:22 < aiju> no
21:22 < chomp> finally getting a change set into tip for session control in
syscall.StartProcess, my terminal i/o library can be cleaned up
21:22 < aiju> C# is Microsoft's Java
21:22 < ArgonneIntern> so it's dirty then
21:22 < chomp> that's a dubious analogy
21:22 < aiju> both languages feel similar
21:23 < Tonnerre> You need to read it like an electrotechnician
21:23 < Tonnerre> Then it means C Negated, or C NOT
21:23 -!- kfb [~kfb@c-174-62-70-166.hsd1.ca.comcast.net] has quit []
21:23 -!- KirkMcDonald [~Kirk@python/site-packages/KirkMcDonald] has quit [Ping
timeout: 240 seconds]
21:24 -!- Fish-- [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
21:24 -!- PortatoreSanoDiI [~Marvin@] has quit [Ping timeout: 244
21:24 < chomp> especially with linq, i actually really like c#.  a
functional flavor on top of a c++ish language.
21:25 < chomp> just too bad the platform support is lacking, even with mono
21:25 < Tonnerre> chomp: did you do Objective C yet?
21:25 < chomp> only a handful of times, a few years ago
21:25 < chomp> i wasn't particularly a fan of the conventions i saw, iirc
21:25 < chomp> while conceptually it seemed nice
21:25 < aiju> objective C combines the memory safety of C with the speed of
21:26 < Tonnerre> Well, it's quite objectionable, as the name indicates
21:26 < Tonnerre> But it's a nice brainfuck
21:26 < chomp> heh
21:26 < chomp> i'd rather just write haskell code for that
21:26 < aiju> i'm not a friend of just having language fornicate
21:27 < aiju> paradigms switches every three lines don't make for
particularly readable code
21:27 < chomp> wrong
21:27 < chomp> the right paradigm at the right moment makes everything more
readable imho
21:27 < chomp> of course it is just that, opinion
21:27 < aiju> but I find the maintainability of functional code not really
21:28 < Tonnerre> If Python was a hammer, every problem would be your thumb
21:28 < aiju> Tonnerre: haha
21:28 < ArgonneIntern> lo
21:28 < dforsyth> python is fine as long as people the people who are
writing it really understand it
21:28 < dforsyth> unfortunately this is often not the case
21:28 < aiju> python is fine until the program reaches 1 KLOC
21:29 < Tonnerre> dforsyth: yeah but as far as I know there's only one
21:29 < Tonnerre> n
21:29 < aiju> Tonnerre: there are multiple
21:29 < ArgonneIntern> dforsyth: do you mean understand whats happening
underneath, or just understand the language
21:29 < aiju> and he didn't mean it that way
21:29 < aiju> Tonnerre: cpython, jpython, pypy
21:29 < Tonnerre> Oh right, Jython
21:29 < dforsyth> you can build large applications, but the documentation
that needs to be there is often now there because people dont understand what it
really means to be working in a language like python
21:30 < dforsyth> ArgonneIntern: the language and what it means to start
building something huge with it
21:30 < aiju> the required amounts of LSD should not be underestimated
21:31 -!- GeertJohan [~Squarc@D978EC5D.cm-3-1d.dynamic.ziggo.nl] has joined
21:31 < dforsyth> i work in a python shop and we have a fairly large app,
you can tell that the code has gotten a lot better as people have started to
understand what really needs to be documented for more people to work on it
21:31 < ArgonneIntern> I don't code in python but I thought it was supposed
to be fairly easy to read
21:32 < dforsyth> it is easy to ready, but when there are no types on your
function arguments sometimes its hard to follow whats actually going on :)
21:32 < aiju> no static type checking makes refactoring really fun
21:32 < aiju> i had to refactor my PDP-11 javascript emulator
21:33 < aiju> it's less than 2 KLOC and it was a mess
21:33 < ArgonneIntern> well with go I feel like I don't ever have to learn
that language.  If I want to go true object oriented I can just do some Ruby
21:33 < aiju> if x.nonzero?
21:33 < aiju> ruby's extensive stdlib
21:33 < ArgonneIntern> well it's not python
21:34 < dforsyth> i definately prefer go to python right now
21:34 < ArgonneIntern> I have tried several times to force myself to learn
python, as everyone uses it, it just my brain resists it so hard
21:35 < chomp> i like python for quick and dirty scripts and that's about it
21:35 < aiju> i occasionally use python for fucking with algorithms
21:35 -!- virtualsue [~chatzilla@nat/cisco/x-rzkyysxfssknbfeu] has quit [Ping
timeout: 246 seconds]
21:35 < ArgonneIntern> for instance I'm working on an http interface between
go and a python daemon that uses json files, and I had to learn about dictionaries
and how python deals with json fiels and all that and I just wanted someone else
to do it.
21:36 < ArgonneIntern> I don't see the intuitiveness everyone else does
21:36 < chomp> my biggest problem is the weak typing
21:36 -!- napsy [~luka@] has quit [Ping timeout: 252 seconds]
21:36 < ArgonneIntern> json packages*, sorry, again my terminology sucks
21:36 < chomp> same reason i have issues with js
21:37 < kevlar_work> I hate that I can have a program that runs for 72 hours
and then crashes because of a typo a compiler could've found.
21:37 < kevlar_work> (in Python)
21:37 < chomp> yeah
21:37 < chomp> or maybe you don't find it until you've shipped
21:37 -!- ExtraSpice [XtraSpice@78-57-204-104.static.zebra.lt] has quit [Quit:
21:38 < dforsyth> kevlar_work: write some tests :)
21:38 < ArgonneIntern> well go errors are sometimes kinda non explanitory
21:38 < ArgonneIntern> I love the can't assign x to y
21:38 < ArgonneIntern> doesn't say why at all
21:38 < ArgonneIntern> just says nope, can't do it
21:39 < dforsyth> it generally says something like cant assign *x to x,
21:39 < chomp> if "x" and "y" are two different types then i think it's
pretty explanatory
21:39 < ArgonneIntern> those errors exist, but there is a very general error
that just says can't assign something to something else
21:39 < kfmfe04> anything better than C++ template error messages :P
21:39 < kevlar_work> dforsyth, this was a test.  It used python objects that
were created on-the-fly by the thing under test.
21:39 < ArgonneIntern> and it's not a type problem
21:39 < ArgonneIntern> skelterjohn|work: helped me work through one the
other day
21:40 < ArgonneIntern> if you make a map[something]something and try to
assign map[key] = something, it will toss a can't assign at you
21:40 < kevlar_work> dforsyth, and we actually had a lint-style thing that
would find a lot of problems, but it couldn't find issues with data model crap or
duck typing.
21:40 < ArgonneIntern> I know why now, but from someone who doesn't it's
21:40 < chomp> ArgonneIntern, ah it's if you use the := operator
21:40 < ArgonneIntern> no
21:40 < ArgonneIntern> you need to make map[something]*something
21:40 < chomp> uh ...  huh.
21:40 < ArgonneIntern> oh well yes
21:40 < ArgonneIntern> sorry
21:40 < ArgonneIntern> if I want to replace the entire something
21:41 < ArgonneIntern> but if I want to modifiy one field
21:41 < chomp> oh like map[foo].bar = something
21:41 < ArgonneIntern> yes
21:41 < ArgonneIntern> it tosses "can't assign something to map[foo].bar"
21:41 < ArgonneIntern> with no reasoning lol
21:41 < ArgonneIntern> if it wasn't for skelterjohn|work i would still be
pondering it
21:42 < chomp> it does make sense because map[foo] returns a temporary copy
of the contents of map[foo]...  but yeah an explanation would be nice there :)
21:42 < ArgonneIntern> yes in retrosepct it makes a lot of sense
21:42 < chomp> cannot assign to temporary or somesuch
21:42 < chomp> or it could be like C++ and not give you an error at all
21:42 < ArgonneIntern> seg fault!
21:42 < chomp> just let you toss your assignment into the abyss and have an
aneurysm wondering why
21:43 -!- pjacobs [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit
[Ping timeout: 252 seconds]
21:43 < chomp> nope, no crash.  just no apparent side effect at all!
21:43 < ArgonneIntern> yea the best is when there is clearly an assignment
problem but you own the memory and it lets it go
21:43 < kevlar_work> okay, I have a ton of things (interacting with
processes and files) that are running in essentially infinite loops in their own
goroutines, without any incoming channel operations to synchronize on.  What's the
best way to signal them that it's time to exit the very next time they loop?
Currently, it looks like the easiest way is to wrap a "running" boolean with a
21:43 -!- pjacobs [~pjacobs@] has joined #go-nuts
21:44 < kevlar_work> I tried a synchronous channel in a non-blocking select,
but that didn't seem to work.
21:44 < chomp> kevlar_work, what i've done is use a buffered quit channel
where everyone selects on it and writes back to it when they get the recv
21:44 < chomp> but i seem to remember a utility package that makes this
21:44 < chomp> in the stdlib
21:45 -!- Queue29 [~Adium@bastion.sfo1.yelpcorp.com] has quit [Quit: Leaving.]
21:45 < kevlar_work> they're all separate and don't use the same quit signal
21:45 < chomp> ah
21:46 -!- jbooth1 [~jay@] has left #go-nuts []
21:46 < chomp> um well, how evil would it be to just have a bool for each
21:46 < chomp> i assume there is some context attached to each one?
21:46 -!- kfmfe04 [~kfeng@host-58-114-183-56.dynamic.kbtelecom.net] has quit
[Quit: kfmfe04]
21:46 -!- Queue29 [~Adium@bastion.sfo1.yelpcorp.com] has joined #go-nuts
21:47 < kevlar_work> I tried having a bool in the for loop, but because I'm
in one thread and it's looping, it never leaves that goroutine to pick up the new
21:47 < kevlar_work> or something.
21:47 -!- kfmfe04 [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has joined
21:47 < chomp> who can signal the goroutines to quit
21:47 < kevlar_work> some external event (a method on the object that owns
the looping goroutine)
21:48 < chomp> weird that a simple bool wouldn't work.  i'm confused
21:48 < chomp> are the goroutines actually ever yielding
21:49 < chomp> i mean if they aren't doing any i/o or allocation or
anything, they might not be right?
21:49 < kevlar_work> correct.
21:50 -!- ArgonneIntern [82ca0251@gateway/web/freenode/ip.] has quit
[Ping timeout: 252 seconds]
21:50 < chomp> try calling runtime.Gosched() after each iteration?
21:50 < kevlar_work> didn't seem to work.
21:50 < chomp> ah
21:50 < chomp> missing something here :P
21:50 < kevlar_work> (I suspect that there are enough of them running that
the probability of getting to the one goroutine that's stopping things just hasn't
come up)
21:51 < chomp> that would sound like a scheduling bug though
21:51 < kevlar_work> I suspect it's a bug in my code.
21:51 < kevlar_work> I'm going to go back to the
select-on-synchronous-channel method and see if I can get that working again
21:51 < kevlar_work> it seems like the "right" solution.
21:52 -!- sebastianskejoe [~sebastian@] has quit [Quit: leaving]
21:53 -!- arun_ [~arun@unaffiliated/sindian] has quit [Read error: Connection
reset by peer]
21:53 < chomp> i wonder, do the goroutines get their signals if you use a
blocking select
21:53 < chomp> obviously that breaks other things
21:54 -!- piranha [~piranha@adsl-ull-233-41.41-151.net24.it] has joined #go-nuts
21:55 < chomp> ah well, gotta jet.  good luck
21:55 -!- chomp [~chomp@dap-209-166-184-50.pri.tnt-3.pgh.pa.stargate.net] has quit
[Quit: Leaving]
21:58 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
21:59 -!- piranha [~piranha@adsl-ull-233-41.41-151.net24.it] has quit [Quit:
Computer has gone to sleep.]
22:07 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.]
22:15 < kevlar_work> oh, this is fun.
22:15 < kevlar_work> is there a way to prevent a signal to my process from
hitting my children?
22:15 < Tonnerre> Yes, keep them away from your computer
22:21 -!- KirkMcDonald [~Kirk@python/site-packages/KirkMcDonald] has joined
22:22 -!- gmilleramilar [~gmiller@pool-74-101-133-165.nycmny.fios.verizon.net] has
quit [Quit: Leaving.]
22:24 -!- synx` [~dhorn@unaffiliated/synx/x-4957395] has joined #go-nuts
22:25 -!- Chronicler [~mserrano@99-92-91-37.lightspeed.sntcca.sbcglobal.net] has
joined #go-nuts
22:25 < synx`> mjard you son of a bitch.
22:25 -!- synx` [~dhorn@unaffiliated/synx/x-4957395] has left #go-nuts []
22:25 -!- bugQ [~bug@c-71-195-206-249.hsd1.ut.comcast.net] has joined #go-nuts
22:26 < mjard> :'(
22:26 -!- Adys [~Adys@unaffiliated/adys] has quit [Read error: Connection reset by
22:27 -!- message144 [~message14@pool-98-112-179-26.lsanca.fios.verizon.net] has
joined #go-nuts
22:27 < kevlar_work> :o
22:28 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
22:34 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has quit [Read
error: Operation timed out]
22:43 -!- Xenith [~xenith@2001:470:1:25f::1001] has joined #go-nuts
22:48 -!- MX80 [~MX80@cust151.253.117.74.dsl.g3telecom.net] has joined #go-nuts
22:56 -!- kfmfe04 [~kfmfe04@host-58-114-183-56.dynamic.kbtelecom.net] has quit
[Quit: kfmfe04]
23:04 -!- fvbommel [~fvbommel_@] has quit [Remote host closed the
23:05 -!- zlib [~mail@cpc7-roth7-2-0-cust170.barn.cable.virginmedia.com] has quit
23:09 -!- fvbommel [~fvbommel_@] has joined #go-nuts
23:11 -!- chomp [~chomp@c-67-186-35-69.hsd1.pa.comcast.net] has joined #go-nuts
23:12 -!- photron [~photron@port-92-201-63-142.dynamic.qsc.de] has quit [Ping
timeout: 255 seconds]
23:13 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-168-215.clienti.tiscali.it] has
quit [Quit: E se abbasso questa leva che succ...]
23:18 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has
joined #go-nuts
23:19 -!- Bigbear1 [~Cody@d75-158-128-4.abhsia.telus.net] has joined #go-nuts
23:20 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit
[Remote host closed the connection]
23:20 -!- iant [~iant@nat/google/x-ryskxucahyoabjre] has quit [Ping timeout: 252
23:22 -!- bugQ [~bug@c-71-195-206-249.hsd1.ut.comcast.net] has quit [Ping timeout:
240 seconds]
23:28 -!- bugQ [~bug@c-71-195-206-249.hsd1.ut.comcast.net] has joined #go-nuts
23:30 -!- iant [~iant@] has joined #go-nuts
23:30 -!- mode/#go-nuts [+v iant] by ChanServ
23:34 -!- asldkfjalsdkf [~dan@pool-71-108-246-180.lsanca.dsl-w.verizon.net] has
joined #go-nuts
23:35 -!- xash [~xash@d026085.adsl.hansenet.de] has quit [Quit: Lost terminal]
23:40 -!- ukai_ [~ukai@nat/google/x-mknhsxsrdtjsfcwd] has quit [Ping timeout: 252
23:40 -!- ukai_ [~ukai@nat/google/x-dhxjplmdbuqkyzcl] has joined #go-nuts
23:54 -!- GeertJohan [~Squarc@D978EC5D.cm-3-1d.dynamic.ziggo.nl] has quit [Quit:
--- Log closed Thu Jun 23 00:00:53 2011