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

--- Log opened Sat Apr 16 00:00:15 2011
--- Day changed Sat Apr 16 2011
00:00 -!- vpit3833 [~user@CPE-58-160-37-24.phzl1.ken.bigpond.net.au] has quit
[Quit: ERC Version 5.3 (IRC client for Emacs)]
00:04 -!- m4dh4tt3r1 [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has quit [Quit:
Leaving.]
00:05 -!- dj2 [~dj2@CPE001f5b35feb4-CM0014048e0344.cpe.net.cable.rogers.com] has
joined #go-nuts
00:09 -!- go^lang [~newblue@119.121.240.213] has joined #go-nuts
00:09 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
00:16 -!- gzmask [~ray@corwin.cat.uregina.ca] has left #go-nuts []
00:28 -!- espeed [~espeed@63.246.231.57] has quit [Ping timeout: 246 seconds]
00:32 -!- iant [~iant@66.109.104.109] has joined #go-nuts
00:32 -!- mode/#go-nuts [+v iant] by ChanServ
00:34 -!- espeed [~espeed@63.246.231.57] has joined #go-nuts
00:37 -!- fenicks [~fenicks@log77-3-82-243-254-112.fbx.proxad.net] has quit [Ping
timeout: 264 seconds]
00:44 -!- boscop [~boscop@g230111102.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
00:44 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit
[Ping timeout: 260 seconds]
00:49 -!- Jantire [~Jantire@c-71-202-156-84.hsd1.ca.comcast.net] has joined
#go-nuts
00:49 < Jantire> Would go be a better choice than node.js for a tcp
listener?
00:55 < uriel> what is 'a tcp listener'?
00:59 -!- Jantire [~Jantire@c-71-202-156-84.hsd1.ca.comcast.net] has left #go-nuts
["Leaving"]
01:05 < scyth> hm, that would be an interesting comparation
01:06 < scyth> he probably meant speed/scaling/resource consumption
01:07 -!- joelkronander
[~joelkrona@c-bf2fe253.617-1-64736c22.cust.bredbandsbolaget.se] has quit [Quit:
joelkronander]
01:10 -!- m4dh4tt3r [~Adium@14.sub-75-208-154.myvzw.com] has joined #go-nuts
01:12 -!- nettok [~quassel@200.119.151.131] has joined #go-nuts
01:19 -!- tux21b [~tux21b@pyhost.srv.tux21b.org] has joined #go-nuts
01:24 < tux21b> hi, i am not able to execute any go applications (such like
the hello world example).  neither release nor tip is working.  Anyway, the go
compiler compiled fine and all tests (except 2 known) passed, compilation of
helloworld.go worked too, but when i execute it, i get "throw: runtime: SysReserve
returned unaligned address"
01:26 -!- boscop [~boscop@g227148016.adsl.alicedsl.de] has joined #go-nuts
01:29 < edsrzf> tux21b: What OS and architecture are you running?
01:31 < tux21b> linux 2.6.35.11-83.fc14.i686, fedora 14, Intel(R) Atom(TM)
CPU N270 (32 bit).  so nothing special i guess...
01:36 < tux21b> the last time i was playing with go was 7 months ago, but it
was on the same system and everything was working without any problems
01:38 < tux21b> i can provide my executable of the helloworld prog and a
core file if you think that might help
01:38 -!- m4dh4tt3r [~Adium@14.sub-75-208-154.myvzw.com] has quit [Ping timeout:
276 seconds]
01:40 < edsrzf> My first guess would've been some kind of mismatch between
your libraries, compiler, and linker, but the linker should detect those problems.
01:56 -!- bpalmer [~user@unaffiliated/bpalmer] has joined #go-nuts
01:59 -!- boscop [~boscop@g227148016.adsl.alicedsl.de] has quit [Ping timeout: 250
seconds]
02:04 -!- ssb [~ssb@213.167.39.150] has quit [Ping timeout: 276 seconds]
02:05 -!- ssb [~ssb@213.167.39.150] has joined #go-nuts
02:05 -!- ekontsevoy [~ekontsevo@209.20.66.251] has quit [Remote host closed the
connection]
02:05 -!- ekontsevoy [~ekontsevo@209.20.66.251] has joined #go-nuts
02:07 -!- iant [~iant@66.109.104.109] has quit [Quit: Leaving.]
02:08 -!- gtaylor [~gtaylor@64-139-83-121-Nashville.hfc.comcastbusiness.net] has
joined #go-nuts
02:12 -!- katakuna [~pie@kjal.demon.co.uk] has quit [Ping timeout: 250 seconds]
02:16 -!- aho [~nya@fuld-590c74f4.pool.mediaWays.net] has quit [Quit:
EXEC_over.METHOD_SUBLIMATION]
02:22 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has quit [Remote
host closed the connection]
02:25 -!- edsrzf_ [~chickench@122-61-221-144.jetstream.xtra.co.nz] has joined
#go-nuts
02:26 -!- edsrzf [~chickench@122-61-221-144.jetstream.xtra.co.nz] has quit [Ping
timeout: 240 seconds]
02:32 -!- boscop [~boscop@g227148016.adsl.alicedsl.de] has joined #go-nuts
02:35 -!- matti_ [~mumboww@c-24-6-22-101.hsd1.ca.comcast.net] has joined #go-nuts
02:37 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts
02:37 -!- gtaylor [~gtaylor@64-139-83-121-Nashville.hfc.comcastbusiness.net] has
quit [Quit: gtaylor]
02:37 -!- fmoo [~Adium@66.220.144.74] has quit [Quit: Leaving.]
02:45 -!- edsrzf_ [~chickench@122-61-221-144.jetstream.xtra.co.nz] has joined
#go-nuts
02:45 -!- edsrzf [~chickench@122-61-221-144.jetstream.xtra.co.nz] has quit [Ping
timeout: 260 seconds]
02:57 -!- kr [~Keith@204.14.152.118] has quit [Quit: WeeChat 0.3.2]
03:01 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has joined
#go-nuts
03:20 -!- dga [~dga@MOO.CMCL.CS.CMU.EDU] has joined #go-nuts
03:22 < dga> Hi, Lazywebs - my go has gotten rusty in the last year.  Am I
correct in assuming that there's no easy way to create "something new that behaves
like a slice" (this sounds suspiciously like operator overloading, which is how
I've implemented it in C++).  ie, to be concrete, I want to pass something that's
not actually an array of bytes to the suffix array code and have it "just work".
But under the hood, a[5], e.g., is actually derived from b[5]+c[5] or som
03:25 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts
03:25 -!- mode/#go-nuts [+v iant] by ChanServ
03:26 < dga> From looking at the suffixarray.go code, I'm guessing my best
option is to change all instances of data[...] to call
data.dga_range_function(...), but that seems somehow inelegant.
03:29 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Ping timeout: 276 seconds]
03:32 -!- ezys [~ezys@c-67-161-85-212.hsd1.wa.comcast.net] has joined #go-nuts
03:33 < jessta_> dga: nope, you can't do that
03:33 < vsmatck> There's no operator overloading.  I think some go
programmers say this is to eliminate context awareness needed to understand code
by others which uses operator overloading.
03:36 < dga> I know there's no overloading; I was curious if there's another
way to view this.  e.g., viewing [...] as an interface that could be provided, or
by sneaking under the covers somehow.  Alas.  So, barring that:
03:36 < vsmatck> Allowing a user to define an operator is operator
overloading.
03:37 < vsmatck> Seems like there's not much trickery allowed in go
otherwise.  Not even macros to abuse.
03:37 < vsmatck> heh
03:38 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping
timeout: 246 seconds]
03:38 -!- iant [~iant@216.239.45.130] has joined #go-nuts
03:38 -!- mode/#go-nuts [+v iant] by ChanServ
03:38 < ezys> Apply preprocessor to taste
03:38 < dga> Fair.  Perhaps the real argument is why slice operations aren't
simply syntactic sugar for a function call that *can* be provided as an interface.
:-)
03:39 < vsmatck> That's calling operator overloading by another name.
03:40 < vsmatck> That gets back to some Go people not liking context
dependent code.  Code where you can't understand it just by looking at it.
03:41 < dga> So given that what I want to do is impossible (roughly,
sneakily hand a compressed array to suffixarray.go and have it "just work") --
would it be similarly indigestable to change suffixarray.go to take an object that
supports ReaderAt?  It'd definitely be slower if you had to wrap your []bytes in a
random reader wrapper.  But more flexible.
03:43 < skelterjohn> there is no reason to have special syntax to do what
you're talking about
03:43 < skelterjohn> just define an interface
03:43 < vsmatck> It probably would be a little slower.  However, slices are
real lightweight so it wouldn't be too bad.
03:44 < vsmatck> Most people would dismiss the difference but I know a C++
programmer wouldn't.  :)
03:46 < dga> skelter: The reason I ask is because using such an interface
requires changing the existing pkg code.  I was trying to figure out if there was
a way to avoid doing so.  It also, as vsm notes, imposes a bit of overhead to the
entire package -- in effect, suffixarray is specialized for slices.  I'd be
de-specializing it.
03:46 < skelterjohn> the overhead is the compiler's job :)
03:48 < uriel> vsmatck: making what is basically array indexing into a
function call would be really surprising
03:48 < uriel> vsmatck: if you want a method/function, what is wrong with
using a method/function?
03:49 < vsmatck> uriel: I agree.
03:49 < uriel> the main problem with data.dga_range_fnction(...) is that the
name choosen for the method is not very concise
03:49 < skelterjohn> i should put skelterjohn in all of my function names
from now on
03:49 < skelterjohn> skelterjohn_parallel_matrix_multiply
03:49 < uriel> skelterjohn: haha
03:49 < vsmatck> dga: Do you have templates in mind?  Go is less flexible
than C++ in that regard.
03:50 < dga> uriel: Apologies for not being clear -- I was just throwing up
an example.  There are more obvious existing interfaces to use -- namely ReadAt
03:50 -!- jyxent [~jyxent@129.128.191.96] has quit [Read error: Operation timed
out]
03:50 -!- MX80 [~MX80@cust151.253.117.74.dsl.g3telecom.net] has quit [Read error:
Operation timed out]
03:50 -!- jyxent [~jyxent@129.128.191.96] has joined #go-nuts
03:52 -!- wchicken [~chicken@c-24-7-112-207.hsd1.ca.comcast.net] has quit [Ping
timeout: 246 seconds]
03:52 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has quit [Ping
timeout: 246 seconds]
03:53 -!- wchicken [~chicken@24.7.112.207] has joined #go-nuts
03:53 < dga> I didn't really have anything specific in mind.  I'm mostly
curious what the "best" (for some definition) way is to do what I want.  The
context of this: I have a suffix array-based application in C++ that I'm porting
to Go partly for fun and partly because I have in mind some extensions to it
that're getting annoying in C++.  I was hoping to use/improve the existing suffix
array code instead of continuing to maintain my own.  But mine's weird, because it
i
03:53 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has joined
#go-nuts
03:53 -!- MX80 [~MX80@cust151.253.117.74.dsl.g3telecom.net] has joined #go-nuts
03:54 < skelterjohn> curse the 255 char cap
03:54 < dga> doh.  where'd that get cut?
03:54 < skelterjohn> what does it mean for an application to be "array
based"?
03:54 < dga> suffix array.
03:55 < uriel> dga: 'But mine's werid, because it i'
03:55 < dga> ...  But mine's weird, because it indexes data that's
bit-packed into a dense array.  I handle that in C++ by overloading [] to unpack
on demand.
03:55 < skelterjohn> what does it mean for an application to be "suffix
array based"?
03:56 < dga> The core of the application performs searches in a few hundred
megabytes of text using a suffix array index.
03:56 < skelterjohn> what is a suffix array index?
03:56 < dga> see index/suffixarray.go
03:57 < skelterjohn> hmm
03:57 < skelterjohn> i'm not really in a state of mind to read code doc
right now
03:57 < dga> it's an efficient index that supports arbitrary substring
searches on a text corpus.  Uses roughly a 32-bit integer for every character of
text (4x blowup in size), but in log(n) steps you can find all occurrances of
whatever input search you're looking for.
03:57 < skelterjohn> just got back from dinner with the wife and friends
O:-)
03:57 < skelterjohn> ah, thanks
03:57 < dga> suffix arrays do not mix well with a few glasses of wine, as a
warning.  :)
03:58 < dga> But they're a damn clever indexing mechanism for the situations
where you need them.
03:59 < skelterjohn> cool
03:59 < skelterjohn> i think i'm going to go pass out
04:00 -!- ezys [~ezys@c-67-161-85-212.hsd1.wa.comcast.net] has quit [Quit: WeeChat
0.3.3]
04:01 < dga> Unsurprisingly, their inventor (Udi Manber) is now at Google.
One of the better implementations of suffix array construction code is from Sean
Quinlan and Sean Doward ...  both now at Google.  :p
04:01 < dga> and on that note...  I think I'll now go beg forgiveness for
working on a friday night.  Thanks for the advice, all.
04:06 -!- ezys [~ezys@c-67-161-85-212.hsd1.wa.comcast.net] has joined #go-nuts
04:07 < uriel> Sean Quinlan and Sean Doward worked with russ cox and rob
pike at Bell Labs on plan9
04:07 < dga> nod
04:07 < uriel> dga: might be worth asking them to work on something for Go
;)
04:09 < dga> (uriel: I was proobably being a bit oblique; I actually meant
for my comments to explain why I believe Go has a nice implementation of suffix
arrays that I'd like to replace my own crappy, painful-to-debug code with...)
04:09 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has quit [Quit:
Leaving]
04:12 -!- ezys [~ezys@c-67-161-85-212.hsd1.wa.comcast.net] has quit [Quit: WeeChat
0.3.3]
04:21 <@adg> dga: the suffixarray package is all gri
04:22 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 246 seconds]
04:27 -!- ezys [~ezys@c-67-161-85-212.hsd1.wa.comcast.net] has joined #go-nuts
04:28 -!- tensai_cirno [~cirno@79.104.4.91] has joined #go-nuts
04:29 -!- photron [~photron@port-92-201-69-164.dynamic.qsc.de] has joined #go-nuts
04:30 -!- dga [~dga@MOO.CMCL.CS.CMU.EDU] has quit [Quit: Lost terminal]
04:31 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw]
04:47 -!- nixness [~dsc@78.100.161.104] has quit [Ping timeout: 258 seconds]
04:47 -!- foocraft [~dsc@78.100.161.104] has quit [Ping timeout: 246 seconds]
05:02 -!- ezys [~ezys@c-67-161-85-212.hsd1.wa.comcast.net] has quit [Quit: WeeChat
0.3.3]
05:04 -!- fmoo [~Adium@c-76-102-41-101.hsd1.ca.comcast.net] has joined #go-nuts
05:04 -!- brett [~brett@rdnzl.net] has joined #go-nuts
05:09 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
05:14 -!- vsayer [~vivek@2001:470:1f04:1a6b:21a:6bff:fe35:d2a5] has quit [Ping
timeout: 260 seconds]
05:16 -!- tensai_cirno [~cirno@79.104.4.91] has quit [Quit: Leaving]
05:27 -!- keithcascio [~keithcasc@nat/google/x-msbffqjmgitnlwwz] has quit [Quit:
Leaving]
05:27 -!- ezys [~ezys@c-67-161-85-212.hsd1.wa.comcast.net] has joined #go-nuts
05:29 -!- eikenberry [~jae@68.118.117.234] has quit [Quit: End of line.]
05:35 -!- vsayer [~vivek@c-67-170-236-166.hsd1.ca.comcast.net] has joined #go-nuts
05:41 -!- niemeyer_unaway
[~niemeyer@189-10-155-52.pltce701.dsl.brasiltelecom.net.br] has quit [Ping
timeout: 240 seconds]
05:41 -!- bpalmer [~user@unaffiliated/bpalmer] has quit [Ping timeout: 260
seconds]
05:43 -!- nettok [~quassel@200.119.151.131] has quit [Remote host closed the
connection]
05:43 -!- krutcha1 [~krutcha@S010600045a27676a.vs.shawcable.net] has joined
#go-nuts
05:43 -!- bpalmer [~user@unaffiliated/bpalmer] has joined #go-nuts
05:50 -!- crodjer [~rohanjain@203.110.240.205] has quit [Ping timeout: 240
seconds]
05:57 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts
06:00 -!- dchest [~dchest@109.228.79.14] has joined #go-nuts
06:01 -!- Eko [~eko@unaffiliated/eko] has left #go-nuts ["Leaving"]
06:25 -!- saturnfive [~saturnfiv@210.74.155.131] has joined #go-nuts
06:28 -!- cafesofie [~cafesofie@ool-4a5a6ee5.dyn.optonline.net] has quit [Remote
host closed the connection]
06:31 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
06:32 -!- scyth [~scyth@rots.in.rs] has quit [Ping timeout: 258 seconds]
06:32 -!- scyth [~scyth@rots.in.rs] has joined #go-nuts
06:47 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has joined
#go-nuts
06:50 -!- fmoo [~Adium@c-76-102-41-101.hsd1.ca.comcast.net] has quit [Quit:
Leaving.]
06:54 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving]
06:57 -!- jgonzalez [~jgonzalez@173-14-137-134-NewEngland.hfc.comcastbusiness.net]
has joined #go-nuts
07:08 -!- zimsim [~simon@87.72.77.195] has joined #go-nuts
07:08 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by
peer]
07:09 -!- manveru [~manveru@b08s28ur.corenetworks.net] has quit [Remote host
closed the connection]
07:10 -!- krutcha1 [~krutcha@S010600045a27676a.vs.shawcable.net] has quit [Quit:
Leaving]
07:11 -!- manveru [~manveru@b08s28ur.corenetworks.net] has joined #go-nuts
07:17 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts
07:17 -!- randfur [~androirc@58.145.148.59] has joined #go-nuts
07:20 -!- jgonzalez [~jgonzalez@173-14-137-134-NewEngland.hfc.comcastbusiness.net]
has quit [Quit: Leaving]
07:25 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
07:27 -!- huin [~huin@91.85.185.181] has joined #go-nuts
07:40 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has quit [Quit:
This computer has gone to sleep]
07:43 -!- Project_2501 [~Marvin@82.84.94.192] has joined #go-nuts
07:44 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
07:45 -!- ShadowIce
[~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has joined
#go-nuts
07:45 -!- ShadowIce
[~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has quit
[Changing host]
07:45 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
07:50 -!- randfur [~androirc@58.145.148.59] has quit [Ping timeout: 240 seconds]
07:56 -!- dchest [~dchest@109.228.79.14] has quit [Quit: dchest]
08:02 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
08:09 -!- dchest [~dchest@109.228.79.14] has joined #go-nuts
08:13 -!- ezys [~ezys@c-67-161-85-212.hsd1.wa.comcast.net] has quit [Quit: reboot]
08:27 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has joined
#go-nuts
08:29 -!- virtualsue [~chatzilla@nat/cisco/x-ffeukhuehwsznieo] has joined #go-nuts
08:38 -!- virtualsue [~chatzilla@nat/cisco/x-ffeukhuehwsznieo] has quit [Ping
timeout: 240 seconds]
08:59 < plexdev> http://is.gd/xXCMO4 by [Dmitry Chestnykh] in
go/misc/goplay/ -- misc/goplay: fix Tab and Shift+Enter in Firefox.
09:11 -!- foocraft [~dsc@78.101.196.112] has joined #go-nuts
09:20 -!- saturnfive [~saturnfiv@210.74.155.131] has quit [Read error: Connection
reset by peer]
09:24 -!- matti_ [~mumboww@c-24-6-22-101.hsd1.ca.comcast.net] has left #go-nuts []
09:44 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
09:56 -!- femtoo [~femto@95-89-249-242-dynip.superkabel.de] has joined #go-nuts
09:57 -!- go^lang [~newblue@119.121.240.213] has quit [Read error: Connection
timed out]
09:58 -!- go^lang [~newblue@119.121.240.213] has joined #go-nuts
10:01 -!- femtooo [~femto@95-89-249-242-dynip.superkabel.de] has joined #go-nuts
10:02 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
10:02 -!- shvntr [~shvntr@116.26.132.70] has joined #go-nuts
10:04 -!- femtoo [~femto@95-89-249-242-dynip.superkabel.de] has quit [Ping
timeout: 246 seconds]
10:05 -!- joelkronander
[~joelkrona@c-bf2fe253.617-1-64736c22.cust.bredbandsbolaget.se] has joined
#go-nuts
10:31 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
10:57 -!- saati [~bjb@marvin.harmless.hu] has left #go-nuts []
11:08 -!- dju [dju@fsf/member/dju] has joined #go-nuts
11:24 -!- tensai_cirno [~cirno@195.91.156.2] has joined #go-nuts
11:29 -!- tensai_cirno [~cirno@195.91.156.2] has quit [Quit: Leaving]
11:52 -!- zozoR [~Morten@56344480.rev.stofanet.dk] has joined #go-nuts
11:58 -!- nixness [~dsc@89.211.128.121] has joined #go-nuts
11:59 -!- edsrzf [~chickench@122-61-221-144.jetstream.xtra.co.nz] has quit [Remote
host closed the connection]
12:01 -!- foocraft [~dsc@78.101.196.112] has quit [Ping timeout: 250 seconds]
12:08 -!- huin [~huin@91.85.185.181] has quit [Quit: brb]
12:08 -!- huin [~huin@91.85.185.181] has joined #go-nuts
12:11 -!- Project_2501 [~Marvin@82.84.94.192] has quit [Read error: Operation
timed out]
12:13 -!- Project_2501 [~Marvin@82.84.90.52] has joined #go-nuts
12:15 -!- zimsim [~simon@87.72.77.195] has quit [Read error: Connection reset by
peer]
12:17 -!- photron [~photron@port-92-201-69-164.dynamic.qsc.de] has quit [Ping
timeout: 240 seconds]
12:18 -!- shvntr [~shvntr@116.26.132.70] has quit [Quit: leaving]
12:24 -!- foocraft [~dsc@78.101.179.198] has joined #go-nuts
12:27 -!- nixness [~dsc@89.211.128.121] has quit [Ping timeout: 250 seconds]
12:29 -!- zimsim [~simon@87.72.77.195] has joined #go-nuts
13:06 < taruti> Is there a nice way of enlarging a []byte efficiently?
13:06 < Namegduf> append()
13:07 < Namegduf> Copying it to a bigger thing is the best you can do.
13:07 < taruti> b = append(b, make([]byte, 10240)...) does not seem very
efficient
13:07 < Namegduf> You *can't* enlarge things in memory efficiently.
13:07 -!- hopso [58734516@gateway/web/freenode/ip.88.115.69.22] has joined
#go-nuts
13:07 < nsf> the only efficient way to enlarge array is to preallocate it
13:07 < Namegduf> Because there's other stuff in memory around it.
13:08 < nsf> taruti: make and copy will work
13:08 < taruti> just wondering whether there is a idiomatic way to avoid the
double-allocation
13:08 < Namegduf> Allocate it once, at the size you want it.
13:08 < Namegduf> If you need to resize it bigger, you have to reallocate.
That's inherent in the way contiguous data structures work.
13:09 < nsf> taruti: newa := make([]byte, 0, 100500); copy(newb, b);
13:09 < str1ngs> taruti: or use bytes.Buffer
13:09 < nsf> oops
13:09 < nsf> newa := make([]byte, 0, 100500); copy(newa, a);
13:09 < nsf> but whatever
13:09 < taruti> nsf, ok, I'll do that way
13:10 < nsf> although
13:10 < nsf> maybe you need to use length
13:10 < nsf> instead of capacity
13:10 < nsf> newa := make([]byte, 100500); copy(newa, a);
13:10 < nsf> like that
13:10 < nsf> ah, no
13:10 < nsf> newa := make([]byte, len(a), 100500); copy(newa, a);
13:10 < nsf> :)
13:10 < nsf> anyways..
13:13 -!- TheMue [~TheMue@p5DDF6E5B.dip.t-dialin.net] has joined #go-nuts
13:13 -!- crodjer [~rohanjain@203.110.240.205] has quit [Quit: Leaving]
13:14 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
13:17 -!- tvw [~tv@e176005213.adsl.alicedsl.de] has joined #go-nuts
13:18 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts
13:19 -!- coud [~coud@81.25.16.87] has joined #go-nuts
13:19 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has joined
#go-nuts
13:25 -!- Scorchin [~Scorchin@host86-160-233-247.range86-160.btcentralplus.com]
has joined #go-nuts
13:30 < hopso> Why on earth does F-Secure think ld.exe is a malicious?
13:30 -!- coudX [~coud@81.25.16.87] has joined #go-nuts
13:30 -!- coudX [~coud@81.25.16.87] has quit [Read error: Connection reset by
peer]
13:30 -!- coud [~coud@81.25.16.87] has quit [Read error: Connection reset by peer]
13:31 -!- coudX [~coud@81.25.16.87] has joined #go-nuts
13:33 < taruti> Has anyone written a nice library for parsing binary data
that supports length-prefixed-fields?
13:34 -!- coudX [~coud@81.25.16.87] has quit [Read error: Connection reset by
peer]
13:37 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has joined
#go-nuts
13:42 -!- joelkronander
[~joelkrona@c-bf2fe253.617-1-64736c22.cust.bredbandsbolaget.se] has quit [Quit:
joelkronander]
13:44 -!- joelkronander [~joelkrona@83.226.47.191] has joined #go-nuts
13:50 < nsf> taruti: you can use Go's gob, it's a binary format
13:50 < nsf> and it can serialize arrays and slices
13:51 -!- niemeyer_unaway
[~niemeyer@189-10-155-52.pltce701.dsl.brasiltelecom.net.br] has joined #go-nuts
13:51 < nsf> or I know a C library, which does serialization just fine,
called 'tpl'
13:58 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has quit [Quit:
Leaving.]
14:00 -!- crodjer [~rohanjain@203.110.240.205] has quit [Quit: Leaving]
14:02 -!- Fish [~Fish@sat78-8-88-174-225-4.fbx.proxad.net] has joined #go-nuts
14:02 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts
14:08 -!- coudX [~coud@81.25.16.87] has joined #go-nuts
14:16 -!- nixness [~dsc@89.211.154.142] has joined #go-nuts
14:18 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 264 seconds]
14:18 -!- foocraft [~dsc@78.101.179.198] has quit [Ping timeout: 250 seconds]
14:23 -!- wtfness [~dsc@89.211.73.236] has joined #go-nuts
14:26 -!- nixness [~dsc@89.211.154.142] has quit [Ping timeout: 260 seconds]
14:28 -!- crodjer [~rohanjain@203.110.240.205] has quit [Quit: Leaving]
14:28 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts
14:30 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-156-243.clienti.tiscali.it] has
joined #go-nuts
14:33 -!- Project_2501 [~Marvin@82.84.90.52] has quit [Ping timeout: 252 seconds]
14:36 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
14:37 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw]
14:43 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
14:51 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has quit [Remote
host closed the connection]
14:53 -!- unofficialmvp [~dev@94.62.164.227] has joined #go-nuts
14:53 -!- nsf [~nsf@jiss.convex.ru] has quit [Read error: Operation timed out]
14:54 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
15:04 -!- unofficialmvp [~dev@94.62.164.227] has left #go-nuts []
15:04 -!- GutenLinux [~chatzilla@122.242.168.132] has quit [Remote host closed the
connection]
15:09 < exch> yay.  Can now bind Go functions to be called from a script.
15:11 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
15:15 -!- nixness [~dsc@78.101.168.111] has joined #go-nuts
15:16 -!- tvw [~tv@e176005213.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
15:18 -!- foocraft [~dsc@89.211.73.236] has quit [Ping timeout: 248 seconds]
15:18 < niemeyer> exch: How so?
15:19 < exch> cos I made it to do so
15:21 -!- virtualsue [~chatzilla@nat/cisco/x-sbhokjwoxgpptbkg] has joined #go-nuts
15:24 < ww> anyone used this spdy package and knows how it works?
15:29 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts
15:29 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw]
15:29 < hopso> I only know it's some ind of augmented http protocol.
15:30 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
15:38 -!- virtualsue [~chatzilla@nat/cisco/x-sbhokjwoxgpptbkg] has quit [Ping
timeout: 240 seconds]
15:39 < str1ngs> exch: kitten?
15:39 < str1ngs> ww: not yet but I did clone it
15:40 < exch> str1ngs: yes
15:40 < str1ngs> exch: dude that rocks.  I'll check it out.
15:40 -!- crodjer [~rohanjain@203.110.240.205] has quit [Remote host closed the
connection]
15:40 < str1ngs> exch: have you seen the eval package?
15:41 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 252 seconds]
15:42 < exch> haven't tried it myself, but I understand there are some
limitations to that
15:43 < str1ngs> I think kitten is more what I was looking for
15:43 < str1ngs> mainly binding fucntions in script form
15:43 < str1ngs> functions* even
15:44 < exch> If you like esoteric stuff like Factor :)
15:44 < ww> ok, some progress...
15:45 -!- wtfness [~dsc@89.211.181.225] has joined #go-nuts
15:45 < ww> if you run chrome with --use-spdy=no-ssl it will try to connect
to the spdy port (8181 in my case)
15:45 < ww> and now...  it just hangs with no response from the server...
15:47 -!- Fish [~Fish@sat78-8-88-174-225-4.fbx.proxad.net] has quit [Remote host
closed the connection]
15:47 < ww> i also wonder how one of the assumptions they talk about on the
spdy page will work in my application - that headers like Accept need to be sent
only once at the start of the session...  which in my case is most definitely not
true
15:47 < ww> but first...  to try to get it to give a response...  any
response...
15:47 -!- nixness [~dsc@78.101.168.111] has quit [Ping timeout: 240 seconds]
15:49 < dforsyth> ha, i was thinking about writing a spdy package
15:49 < dforsyth> sweet
15:50 < ww> a spdy command line client would be very useful for debugging...
15:51 < ww> like some patches for curl or a go curl clone or something...
15:51 * ww actually hates web browsers
15:53 < str1ngs> I have a rough go curl client that I have been working on
15:53 < str1ngs> but its not hard to debug the http headers
15:53 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
#go-nuts
15:54 < ww> wow...  if you actually inspect the spdy state
chrome://net-internals/#spdy...  chrome calls home a lot to google...
15:54 < ww> bloody spyware
15:54 < str1ngs> lol
15:56 < ww> actually though...  a good c library for spdy client would be
more useful than a go one...
15:56 < ww> i could see lots-of-things-that-aren't-web-browsers that do
repeated http calls (like api clients) using it
15:57 -!- nettok [~quassel@200.119.185.91] has joined #go-nuts
15:58 < ww> obviously a go client package would be very useful too - i think
brad fitzpatrick is working on one from what i have read
15:58 -!- go^lang [~newblue@119.121.240.213] has quit [Ping timeout: 246 seconds]
15:58 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts
15:58 < str1ngs> Segmentation fault yes!
15:59 * ww congratulates str1ngs
15:59 < ww> did you make go segfault without using cgo or unsafe?
16:00 < str1ngs> chromium
16:01 < dforsyth> do i want to go see rms speak today?
16:02 < ww> dforsyth: why not?
16:02 -!- hopso [58734516@gateway/web/freenode/ip.88.115.69.22] has quit [Ping
timeout: 252 seconds]
16:03 < dforsyth> have any of you guys every gone to a talk by him?
16:03 < dforsyth> is it worth the time?
16:03 < str1ngs> ww: hmm I got it to connect thanks to the no-ssl but I
think my handle is wrong
16:04 < ww> dforsyth: if you haven't, definitely.  and if you know a good
chinese restaurant, suggest it afterwards
16:04 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Ping timeout: 246 seconds]
16:08 < dforsyth> i guess that gives me a reason to head downtown, too
16:08 < ww> panic: interface conversion: *spdy.serverStream is not
http.Hijacker: missing method Hijack
16:08 < str1ngs> ww: https://gist.github.com/923231
16:08 < str1ngs> ww: add a index.html
16:09 < str1ngs> that just serves ./ as root.  I need to figure out how to
do routed handles
16:09 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-156-243.clienti.tiscali.it] has
quit [Quit: E se abbasso questa leva che succ...]
16:10 < ww> str1ngs: i've got a couple of flavours of routed handlers for
you...  need to move them to their own generic handler package
16:10 < str1ngs> ww: I ment in the context of http package
16:10 -!- wtfness [~dsc@89.211.181.225] has quit [Ping timeout: 240 seconds]
16:11 < ww> yes,
https://bitbucket.org/ww/gold/src/f149c088ee56/deref/autoneg.go#cl-45
16:11 < str1ngs> I think I left io in there you dont need it
16:12 < ww> sure...  but does that example serve normal http too?  let's
see...
16:12 < ww> DOS alert -- try making a non-spdy request to the spdy port...
16:12 < ww> it just waits and waits...
16:13 < ww> e.g.  telnet localhost 8181
16:13 < ww> GET / HTTP/1.0
16:13 < ww> no protocol error...
16:14 < ww> and those flags to chrome, --use-spdy=no-ssl seem to make it try
to use spdy for everything...  so i can't see the bbc, for example...
16:16 < str1ngs> I noticed that ot
16:16 < str1ngs> to*
16:16 -!- go^lang [~newblue@119.121.240.213] has joined #go-nuts
16:16 < str1ngs> so probably best to server with tls
16:18 < ww> aha...  i see why i got that panic...
16:18 < ww> i have a special /sparql path that reverse-proxies to a sparql
service (sparql is a query language for rdf, you use it to talk to the database)
16:19 < ww> and the reverse proxy hijacks the connection...  which it cannot
do with spdy
16:24 -!- wtfness [~dsc@89.211.215.228] has joined #go-nuts
16:26 -!- katakuna [pie@kjal.demon.co.uk] has joined #go-nuts
16:27 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
16:30 < ww> https://bitbucket.org/ww/gold/changeset/e6cc56f0eb38
16:30 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
16:34 -!- angasule [~angasule@190.2.33.49] has quit [Remote host closed the
connection]
16:36 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
16:40 < str1ngs> ww: have you seen https://github.com/petar/GoReverseProxy
16:40 < str1ngs> dont think that will help this though
16:41 < ww> str1ngs: yes, that may have been where i ripped some code from
16:41 < dforsyth> everytime i see mail about mongo drivers, i cant believe
no one has named their project mon.go
16:41 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts
16:43 < str1ngs> ww: oh man the way you worded that to funny
16:43 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw]
16:43 < ww> ?
16:43 < str1ngs> seems like you were not sure if you did or not
16:44 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
16:44 < ww> i'm not sure
16:45 < ww> i know i saw it when i was looking how to do a reverse proxy...
but may have used or modified something from somewhere else
16:45 < ww> actually, i noted it in the source file:
16:46 < ww> // copied with slight modifications from
16:46 < ww> // https://github.com/cthom06/go-rproxy/blob/master/proxy.go
16:46 < str1ngs> ah
16:52 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
#go-nuts
16:57 < skelterjohn> morning
16:59 < ww> heya skelterjohn
17:01 -!- niemeyer [~niemeyer@189-10-155-52.pltce701.dsl.brasiltelecom.net.br] has
quit [Ping timeout: 240 seconds]
17:02 -!- niemeyer [~niemeyer@189-30-249-127.pltce701.dsl.brasiltelecom.net.br]
has joined #go-nuts
17:03 -!- niekie [~niek@CAcert/Assurer/niekie] has quit [Read error: Operation
timed out]
17:05 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Remote host closed the
connection]
17:06 -!- crazy2be [~crazy2be@d209-89-248-73.abhsia.telus.net] has joined #go-nuts
17:07 -!- boscop [~boscop@g227148016.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
17:08 -!- boscop [~boscop@f055210242.adsl.alicedsl.de] has joined #go-nuts
17:14 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw]
17:15 -!- angasule [~angasule@190.2.33.49] has quit [Remote host closed the
connection]
17:17 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
17:18 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
17:20 -!- unhygienix [~unhygieni@host81-159-208-247.range81-159.btcentralplus.com]
has joined #go-nuts
17:21 -!- napsy [~luka@APN-122-53-214-gprs.simobil.net] has joined #go-nuts
17:26 -!- napsy [~luka@APN-122-53-214-gprs.simobil.net] has quit [Ping timeout:
276 seconds]
17:27 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts
17:31 -!- ExtraSpice [XtraSpice@88.118.35.153] has joined #go-nuts
17:31 -!- Chopinn [~Chopin@ti0018a380-dhcp0864.bb.online.no] has joined #go-nuts
17:31 -!- unhygienix [~unhygieni@host81-159-208-247.range81-159.btcentralplus.com]
has quit [Quit: unhygienix]
17:35 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Remote host closed the
connection]
17:40 -!- dju_ [dju@fsf/member/dju] has joined #go-nuts
17:43 -!- dju [dju@fsf/member/dju] has quit [Ping timeout: 260 seconds]
17:46 < crazy2be> what do people here use for IPC?
17:48 < vsmatck> rpc or netchan
17:49 < aiju> pipes
17:50 < vsmatck> aiju: :)
17:51 < crazy2be> aiju: Well, i'm trying to communicate with a deamon, so
i'm not sure how that would work
17:52 < crazy2be> basically a service management system
17:52 -!- niekie [~niek@CAcert/Assurer/niekie] has joined #go-nuts
17:53 < vsmatck> It would by nice to have something like ruby God in go.
17:53 < aiju> it would be nice to have something like /srv in Linux
17:56 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
17:56 -!- zimsim [~simon@87.72.77.195] has quit [Read error: Operation timed out]
17:57 < skelterjohn> what is ruby God?
17:57 < vsmatck> It monitors a process and restarts it if it dies.  It has a
nice configuration file and deals with stuff like flapping.
17:59 < skelterjohn> sounds like something you need in a language where it's
hard to prevent things from crashing
17:59 < crazy2be> lol
18:00 < aiju> doesn't at all like a language specific thing
18:00 < vsmatck> Well, go is better but I'd still use something like God.
18:00 < aiju> +sound
18:00 < aiju> more like something a daemon should take care of
18:00 < vsmatck> yeah, linux distributions have similar things built in.  I
know debian does.
18:01 < crazy2be> like upstart you mean?
18:02 < crazy2be> i suppose i could adapt upstart to my needs, but that
seems way more code than i need...
18:02 < str1ngs> systemd
18:03 < vsmatck> Like right now.  Go applications leak memory.  If a
regression like that got introduced I might not see it and my web application
would crash.  Just a safegaurd for stuff like that.
18:03 < skelterjohn> go apps leak memory?
18:03 < skelterjohn> i know they don't give it back ever
18:03 < skelterjohn> but they reuse what they took
18:04 < vsmatck> Currently godoc and my program eat more memory until the OS
kills them.  I could have a God like applications which would monitor memory use
and restart them.
18:04 < crazy2be> well i have one app that leaks massive memory
18:04 < crazy2be> allocating tons of data structures
18:04 < skelterjohn> godoc is "workng as intended" indexing all the
documentation and source
18:04 < vsmatck> Something wrong with the GC. In the bug it appears that it
crashes for most people.  On my system it just leaks fast.
18:04 < skelterjohn> it spend about 90 seconds
18:04 < skelterjohn> and grabs about .5gb of memory
18:05 < skelterjohn> but then internally releases it
18:05 < skelterjohn> i filed an issue about it but they said i should mind
my own business
18:05 < skelterjohn> i mean "working as intended"
18:05 < skelterjohn> you can disable it with -maxresults=0 or some such
nonsense
18:05 < vsmatck> oh!
18:06 * vsmatck tests
18:06 < skelterjohn> i might have misspelled maxresults, just so you know
18:06 < skelterjohn> but it's something like that
18:06 < skelterjohn> if you want a nice low mem version of godoc, use nsf's
18:06 < str1ngs> something like http://golang.org/pkg/debug/proc/
18:07 < nsf> gortfm doesn't have a server side at all
18:07 < skelterjohn> right
18:07 < skelterjohn> that's why it's low memory :)
18:07 < nsf> it's just a static generator of js rich html documents
18:07 < skelterjohn> the server runs very quickly.
18:07 < vsmatck> If this is normal behavior for godoc there must be other
problems with my program that cause it to go crazy.
18:08 < vsmatck> yep, 464mb and it stopped taking more memory.
18:08 < skelterjohn> and it will "report" its using only 150mb
18:08 < skelterjohn> but the other 300 is just sitting there inside the go
runtime
18:08 < ww> "just in case"
18:09 < skelterjohn> :)
18:09 < ww> actually i don't mind that it does that, except it makes it
really difficult to detect memory leaks in code that calls through cgo
18:10 < skelterjohn> i don't mind either, i just think that godoc should not
do this
18:10 < skelterjohn> forces me to not run local servers...  i mean, 1/4 my
available memory?
18:10 < skelterjohn> no thanks
18:10 < ww> yeah, i turned it off also...
18:11 < skelterjohn> but i like rtfm.  i can easily jump from package to
package
18:11 < skelterjohn> with godoc i'd find myself opening 15 different windows
for all the different packages i was using
18:12 < nsf> http://nsf.github.com/go/
18:12 < nsf> link
18:12 < nsf> ;)
18:12 < skelterjohn> i should fork gortfm and push back a fix i had to do, i
think
18:12 < nsf> you should
18:12 < skelterjohn> but the fix i did is the "wrong" way to do it
18:12 < nsf> I'm not developing it anymore
18:12 < skelterjohn> i just check to see if a target begins with "-n " and
if so, trim it
18:13 < nsf> hehe
18:13 < nsf> yeah, I won't accept a fix like that
18:13 < nsf> there must be a reason for this "-n "
18:13 < nsf> :(
18:13 < skelterjohn> right, and i didn't feel like delving deep enough to
figure out what that reason was
18:14 -!- zimsim [~simon@87.72.77.195] has joined #go-nuts
18:18 -!- coudX [~coud@81.25.16.87] has quit [Read error: Connection reset by
peer]
18:22 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-156-243.clienti.tiscali.it] has
joined #go-nuts
18:45 -!- nixness [~dsc@89.211.215.228] has joined #go-nuts
18:51 -!- Fish [~Fish@bus77-2-82-244-150-190.fbx.proxad.net] has joined #go-nuts
18:51 -!- nixness [~dsc@89.211.215.228] has quit [Quit: Leaving]
18:51 -!- rlab [~Miranda@71-249-113-92.pool.ukrtel.net] has joined #go-nuts
18:55 -!- nixness [~dsc@89.211.215.228] has joined #go-nuts
19:05 -!- eaburns [~eaburns@c-24-62-248-129.hsd1.nh.comcast.net] has joined
#go-nuts
19:05 -!- eaburns [~eaburns@c-24-62-248-129.hsd1.nh.comcast.net] has left #go-nuts
[]
19:10 -!- angasule [~angasule@190.2.33.49] has quit [Remote host closed the
connection]
19:12 -!- go^lang [~newblue@119.121.240.213] has quit [Ping timeout: 246 seconds]
19:15 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-159-115.clienti.tiscali.it] has
joined #go-nuts
19:18 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-156-243.clienti.tiscali.it] has
quit [Ping timeout: 250 seconds]
19:20 -!- niemeyer [~niemeyer@189-30-249-127.pltce701.dsl.brasiltelecom.net.br]
has quit [Ping timeout: 240 seconds]
19:25 < crazy2be> hmm how do you actually *use* debug/proc?
19:26 < crazy2be> it just seems to be a collection of types
19:26 < crazy2be> but i've no idea how to get my hands on one of the types
19:26 < crazy2be> lol
19:26 < str1ngs> attach to a process
19:26 < str1ngs> with a pid
19:26 < crazy2be> ah
19:26 < crazy2be> stops all threads tho
19:27 < crazy2be> so i have to do
19:27 < str1ngs> might need to Continue
19:27 < str1ngs> but that seems strange
19:27 < crazy2be> process, err := proc.Attach(pid); process.Continue()
19:27 < str1ngs> I have not used it myself
19:27 < crazy2be> yeah it does
19:27 < crazy2be> but it's in the debug package
19:27 < crazy2be> so within that context it makes sence
19:27 < str1ngs> true
19:28 < str1ngs> there is the other signal stuff but I think this is more
what you are looking for.
19:29 < crazy2be> hmm rpc seems like a strange solution for ipc on the same
machine
19:29 < str1ngs> ya
19:29 < crazy2be> i have to choose a port and have a listener
19:29 -!- go^lang [~newblue@119.121.240.213] has joined #go-nuts
19:29 < crazy2be> and if i have lots of children that i'm communicating
with, it could be a pain
19:30 < crazy2be> there should be a way to have piped files
19:30 < crazy2be> essentally buffers held in memory
19:30 < str1ngs> there are pipes
19:30 < str1ngs> exec.Run
19:30 < str1ngs> for example
19:30 < crazy2be> yes but
19:30 < crazy2be> hm
19:30 < crazy2be> i want to be able to store that pipe somewhere on the
filesystem, and pick it up again later
19:31 < str1ngs> fifo ?
19:31 < str1ngs> or more like a socket?
19:31 < crazy2be> hm
19:31 < crazy2be> reading about named pipes
19:31 < crazy2be> sockets always seemed wierd to me
19:32 < str1ngs> I use pipes alot but that for simple stuff really
19:32 < crazy2be> ah named pipes are cool
19:34 < crazy2be> sockets seem overly compicated
19:34 -!- boomtopper
[~boomtoppe@cpc12-nrte22-2-0-cust249.8-4.cable.virginmedia.com] has joined
#go-nuts
19:35 < str1ngs> ya think you might want a fifo then
19:36 -!- Innominate [~sirrobin@cpe-076-182-074-143.nc.res.rr.com] has quit [Quit:
Caught signal 15, Terminated]
19:39 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-159-115.clienti.tiscali.it] has
quit [Ping timeout: 276 seconds]
19:40 -!- nixness [~dsc@89.211.215.228] has quit [Ping timeout: 248 seconds]
19:46 -!- Innominate [~sirrobin@cpe-076-182-074-143.nc.res.rr.com] has joined
#go-nuts
19:48 -!- Scorchin [~Scorchin@host86-160-233-247.range86-160.btcentralplus.com]
has quit [Quit: Scorchin]
19:49 < skelterjohn> anyone use xcode 4?
19:49 < skelterjohn> it seems to have forgotten about go files since i
upgrade just now
19:50 -!- edsrzf [~chickench@122-61-221-144.jetstream.xtra.co.nz] has joined
#go-nuts
20:02 -!- ExtraSpice [XtraSpice@88.118.35.153] has quit [Remote host closed the
connection]
20:04 -!- pothos [~pothos@111-240-172-98.dynamic.hinet.net] has quit [Read error:
Operation timed out]
20:04 -!- pothos_ [~pothos@111-240-167-237.dynamic.hinet.net] has joined #go-nuts
20:06 -!- skammer [~skammer@ppp95-165-187-230.pppoe.spdop.ru] has joined #go-nuts
20:11 -!- skammer [~skammer@ppp95-165-187-230.pppoe.spdop.ru] has quit [Remote
host closed the connection]
20:11 -!- skammer [~skammer@ppp95-165-187-230.pppoe.spdop.ru] has joined #go-nuts
20:12 -!- skammer [~skammer@ppp95-165-187-230.pppoe.spdop.ru] has left #go-nuts []
20:18 -!- femtooo [~femto@95-89-249-242-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
20:23 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has quit [Ping
timeout: 260 seconds]
20:32 -!- zozoR [~Morten@56344480.rev.stofanet.dk] has quit [Remote host closed
the connection]
20:34 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has joined
#go-nuts
20:36 < dforsyth> skelterjohn: so much stuff has changed, it doesnt surprise
me if go support it borked
20:46 -!- tobier [~tobier@c-1e9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
quit [Read error: Operation timed out]
20:47 -!- tobier [~tobier@c-1e9de055.712-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
20:48 < crazy2be> hmm can you have a two-way connection with a named pipe?
20:51 -!- rlab [~Miranda@71-249-113-92.pool.ukrtel.net] has quit [Quit: Miranda
IM! Smaller, Faster, Easier.  http://miranda-im.org]
20:54 -!- virtualsue [~chatzilla@nat/cisco/x-painlddpxrzxmkib] has joined #go-nuts
21:01 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has quit [Remote
host closed the connection]
21:04 -!- Fish [~Fish@bus77-2-82-244-150-190.fbx.proxad.net] has quit [Quit: So
Long, and Thanks for All the Fish]
21:11 -!- tgall_foo [~tgall@206.9.88.154] has quit [Ping timeout: 276 seconds]
21:12 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has quit [Remote
host closed the connection]
21:13 -!- Scorchin [~Scorchin@host86-160-233-247.range86-160.btcentralplus.com]
has joined #go-nuts
21:16 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has joined
#go-nuts
21:18 -!- krutcha1 [~krutcha@S010600045a27676a.vs.shawcable.net] has joined
#go-nuts
21:20 < crazy2be> :O
21:20 < crazy2be> rpc/jsonrpc should do what i want
21:20 < crazy2be> i was going to write it myself
21:20 < crazy2be> but it seems to be already written
21:20 < crazy2be> and should work on a named pipe rather than a http
connection
21:26 -!- TheMue [~TheMue@p5DDF6E5B.dip.t-dialin.net] has quit [Quit: TheMue]
21:36 -!- virtualsue [~chatzilla@nat/cisco/x-painlddpxrzxmkib] has quit [Quit:
ChatZilla 0.9.86.1 [Firefox 4.0/20110318052756]]
21:37 -!- zimsim [~simon@87.72.77.195] has quit [Quit: /dev/null]
21:42 -!- nixness [~dsc@78.100.176.127] has joined #go-nuts
21:44 < krutcha1> what's the typical strategy to farm say X tasks out to X
goroutines, then wait till all X have completed before moving forward?  a 'join'
behavior
21:45 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined
#go-nuts
21:45 < taruti> there is waitgroup
21:45 -!- foocraft [~dsc@89.211.215.228] has quit [Ping timeout: 240 seconds]
21:46 < krutcha1> oh?  I haven't hard of that one
21:46 < krutcha1> no hits on the specification page or effective go page
21:46 < krutcha1> is that a package ?
21:47 < aiju> yeah
21:47 < aiju> i mean no
21:47 < aiju> it's in a package
21:47 < aiju> i think it's in sync
21:47 < krutcha1> ah yeah I see it
21:47 < uriel> what is wrong with just using select?
21:47 < uriel> or maybe I'm not understanding the problem
21:48 < krutcha1> doesn't select just take whatever is offering data?
21:48 < skelterjohn> a common thing to do is to give each of these tasks a
"doneChan"
21:48 < skelterjohn> when they're done they each send something on doneChan
21:48 < skelterjohn> and to sync you read from doneChan X times
21:48 < aiju> i don't think select is even appropriate here
21:48 < uriel> actually, donou don't even need select
21:48 < skelterjohn> but a waitgroup is fine
21:48 < uriel> aiju: yea, you are right
21:49 < aiju> waitgroup is the fancy way
21:49 -!- niemeyer [~niemeyer@189-30-249-127.pltce701.dsl.brasiltelecom.net.br]
has joined #go-nuts
21:49 < krutcha1> yeah doing it manually with a bunch of channels seems like
a lot of scaffolding just to wait for some goroutines though
21:49 < uriel> not sure how waitgroup works, but giving each goroutine a
'done' channel, count how many messages come down that channel, when it is equal
the number of goroutines, you are done
21:49 < skelterjohn> waitgroup is more flexible
21:49 < skelterjohn> keeps track of the number of tasks so you don't have to
21:49 < uriel> krutcha1: you only need one channel
21:49 < aiju> uriel: this is probably just the implementation of waitgroup
21:50 < uriel> skelterjohn: an int keeps track of the number of tasks quite
fine I think
21:50 < aiju> oh no
21:50 < skelterjohn> right
21:50 < aiju> waitgroup is full of mutex bullshit
21:50 < skelterjohn> i'm not saying it's hard
21:50 < skelterjohn> i'm saying that waitgroup does it
21:50 < uriel> aiju: I'm guessing as much, but seems simple enough that I'm
not sure what the interface to waitgroup is, but seems like it might be just as
simple to do it yourself
21:50 < uriel> waitgroup uses mutexes?  yuck
21:50 < taruti> Is there any implementation of diffie-hellman in Go?
21:51 < uriel> taruti: check the crypto package, is quite complete I think
21:51 < krutcha1> looks like it might be just a counting semaphore or
something
21:51 < krutcha1> you call wg.Add(1) for each goroutine, and wg.Done() in
each goroutine to decrement
21:51 < krutcha1> then call Wait() and it falls through when the count hits
0 or something
21:52 * uriel thinks wg++ is still simpler than wg.Add(1)
21:52 < taruti> uriel: maybe I'm blind and don't see it there
21:52 < uriel> and then have wgd++ for each thing coming down the done chan
21:52 < uriel> when wgd == wg, you are done
21:53 < aiju> uriel: you don't need two, just decrement and check for zero
21:53 < aiju> just a variable and a channel
21:53 < uriel> aiju: ah, good point, even easier
21:53 < aiju> i had expected that to be the implementation of waitgroup
21:53 < uriel> really, what can get simpler than a fucking int counter and a
channel?
21:54 < krutcha1> thats about as simple as it gets, but waitgroup doesn't
use a channel even
21:54 < aiju> krutcha1: yeah, it uses a fucking mutex and a fucking
semaphore
21:54 < uriel> well, waitgroup probably has to be more 'general' and deal
with being a transparent/opaque/whatever interface, and other shit, one more
reason that kind of stuff is trivial using channels
21:55 < aiju> uriel: i think waitgroup requires less context switches
21:55 < uriel> I'm sure there are cases when waitgroup makes sense, but I
doubt they are very common
21:55 < aiju> that's the one only advantage
21:55 < uriel> aiju: could be, doubt it matters
21:55 < aiju> i can imagine it to matter, if you do lots of shit in lots of
threads
21:56 < uriel> how many context switches could you have with the channels
model?  not more than one per goroutine, and if what the goroutines do is
minimally expensive, that makes it quite irrelevant
21:56 < uriel> (and still doubt that much is needed)
21:56 < krutcha1> I don't mind how waitgroup appears to be implemented,
looks like it could use a timeout though
21:56 < aiju> uriel: you have two context switches with channels every time
some task finishes
21:56 < aiju> and only one with waitgroup
21:57 < aiju> not to say it actually matters in most applications
21:57 -!- Kunkka [~kristian@mivacukor.lha.sgsnet.se] has quit [Quit: leaving]
21:58 -!- boomtopper
[~boomtoppe@cpc12-nrte22-2-0-cust249.8-4.cable.virginmedia.com] has quit [Ping
timeout: 250 seconds]
21:58 < crazy2be> hmm when and why did they change os.Open()?
21:58 < exch> in the last weekly
21:59 < aiju> what happened to it?
21:59 < uriel> it was mentioned in the release notes
21:59 < crazy2be> it's now os.Open(name)
21:59 < uriel> it was simplified
21:59 < str1ngs> the change is for the better imo
21:59 < aiju> huh golang.org is not yet updated
21:59 < uriel> common case is simpler, uncommon case is just as complicated
as before, sounds like a win to me
22:00 < str1ngs> godoc os File
22:00 < uriel> aiju: that is quite sad
22:00 < vsmatck> I'm betting golang.org is updated to releases.
22:00 < str1ngs> err os Open
22:00 < vsmatck> Not weeklys.  Not sure tho.  Just a guess.
22:00 < uriel> adg: ping?  are golang.org docs only updated for 'release'?
22:00 < uriel> vsmatck: heh, was guessing the same, lets see what adg says
22:01 < ww> uriel: heya: you mentioned you wanted to talk about okf a while
back...
22:01 < uriel> although golang.org does have the docs for tip too
22:01 < crazy2be> hmm i suppose it's a nicer interface, but i really don't
want to have to change all my code...
22:01 < uriel> ww: yes, but not yet, in a few weeks/months ;P
22:01 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.4]
22:01 < ww> ok...  what part of the world are you in, btw?
22:01 < aiju> so how the fuck do you open files for writing?
22:01 < uriel> right now San Francisco
22:02 < aiju> os.Create?
22:02 < str1ngs> godoc os OpenFile
22:02 < ww> was going to mention http://okfn.org/okcon/ -- but a bit far
from sf
22:02 < aiju> *sigh* i love updating code
22:03 < str1ngs> aiju: Create works to
22:03 < crazy2be> hmm what happened to os.O_CREAT?
22:03 < krutcha1> does gofix implement the api changes per weekly?
22:03 < str1ngs> crazy2be: its now O_CREATE
22:04 < crazy2be> ah, that's much better
22:04 < crazy2be> +1 for that change
22:05 < aiju> hehe
22:05 < aiju> reminds me of Ken Thompson once being asked what he would
change if would redo Unix
22:05 < aiju> "i would have spelled creat(2) with an e"
22:05 < aiju> +he
22:09 < rm445> last time I looked Go had both O_CREAT and O_CREATE, did that
change?
22:09 < ampleyfly> go is not unix
22:09 < str1ngs> rm445: yes it changed
22:12 < crazy2be> i didn't know they added O_CREATE
22:13 < crazy2be> and O_CREAT really annoyed me
22:13 < crazy2be> but i had just gotten used to it
22:13 < crazy2be> :p
22:13 < crazy2be> also what is the functional difference between + and |?
22:13 < crazy2be> for masks
22:13 < rm445> carry
22:13 < aiju> crazy2be: 1+1 and 1|1
22:13 < aiju> check it out ;P
22:14 -!- huin [~huin@91.85.185.181] has quit [Quit: leaving]
22:14 < crazy2be> hmm gotry won't do 1|1
22:15 < crazy2be> ah nvm it wsa bash
22:15 < crazy2be> but for a flag, say os.O_CREATE+os.O_RDONLY, is there any
difference between + and |?
22:15 < aiju> no
22:15 < aiju> unless you have one twice
22:15 < crazy2be> huh
22:15 < aiju> in which case hells open with + and nothing happens with |
22:16 < aiju> os.O_CREATE | os.O_CREATE == os.O_CREATE
22:16 < aiju> os.O_CREATE + os.O_CREATE == ???
22:16 < crazy2be> because i had some old code that used + for the flags
22:16 < crazy2be> and i was confused by my own coding
22:16 < rm445> don't ever use +, you will just annoy anyone who looks at
your code.
22:16 < aiju> haha
22:16 < rm445> hah, including yourself :-)
22:17 < crazy2be> this is kinda annoying tho, i have 19 modules i have to
update to use the new call :/
22:17 < crazy2be> ah well
22:18 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-dxztkkwxzwrqkqwj]
has quit [Ping timeout: 276 seconds]
22:18 < aiju> well, you have to keep coders busy
22:18 < aiju> or they start implementing "features"
22:18 < vsmatck> I don't much mind so long as the new library code is
better.  The reflect updates burned 2 hours of my time but resulted in better
code.
22:18 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-zgyvzvdgacficgjz]
has joined #go-nuts
22:18 < crazy2be> vsmatck: that's true, but this is a minor improvement if
anything
22:19 < crazy2be> they could have just done Open() as it was, then
OpenFile() using the new syntax
22:20 < crazy2be> hmm they removed RemoteAddr() from http.ResonseWriter
22:21 < str1ngs> crazy2be: use gofix no?
22:21 < aiju> gofix seems suspicious
22:22 < str1ngs> how so?
22:23 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has quit [Ping timeout: 276 seconds]
22:32 -!- Transformer [~Transform@ool-4a59e397.dyn.optonline.net] has joined
#go-nuts
22:34 -!- Transformer [~Transform@ool-4a59e397.dyn.optonline.net] has quit [Excess
Flood]
22:37 < crazy2be> why does os.Create() make a file with 0666 permissions by
default?
22:37 < crazy2be> doesn't that mean writable by all users?
22:37 < str1ngs> hmm should be 644 no?
22:37 < crazy2be> yeah that's what i would think
22:37 < exch> I generally even go with 0600
22:37 < exch> but i'm a bit paranoid that way
22:38 < aiju> ehm
22:38 < aiju> there is umask
22:38 < str1ngs> does it use umask though?
22:38 < aiju> 0666 ends up as 0644
22:38 < crazy2be> what is that?
22:38 < aiju> everything uses umask
22:38 < aiju> crazy2be: goddamn google it or whatever
22:38 < crazy2be> lol
22:38 < crazy2be> i've heard of it, but never was entirely sure how it
worked or what it did
22:38 < aiju> or just umask(2)
22:39 < crazy2be> its /etc/umask or something
22:39 < aiju> no
22:39 -!- go^lang [~newblue@119.121.240.213] has quit [Read error: Connection
timed out]
22:39 < aiju> umask is per process
22:39 < aiju> just read the damn manpage
22:39 -!- go^lang [~newblue@119.121.240.213] has joined #go-nuts
22:39 < exch> pff who reads those anymore?
22:39 < aiju> or the info page if you are that way inclined
22:40 < crazy2be> huh
22:40 < crazy2be> that's useful to know
22:40 < crazy2be> hmm they removed SetHeader
22:45 < crazy2be> hrm
22:46 < crazy2be> why am i getting deamon.go:25: undefined: syscall.Mkfifo
22:46 < crazy2be> it exists in the release version, as well as the weekly i
am currently using
22:47 -!- dchest [~dchest@109.228.79.14] has quit [Quit: dchest]
23:00 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
23:07 -!- scyth [~scyth@rots.in.rs] has quit [Quit: Leaving]
23:11 < crazy2be> named pipes are AWESOME
23:12 < crazy2be> but they do seem to be uni-directional
23:12 < crazy2be> easy enough to make two, i suppose
23:12 < crazy2be> and, actually, that makes sence
23:17 < uriel> 22:17 < crazy2be> this is kinda annoying tho, i have 19
modules i have to update to use the new call :/
23:17 < uriel> crazy2be: didn't read up on gofix?
23:17 < crazy2be> i used that after someone suggested it
23:17 < crazy2be> didn't know it existed
23:18 < uriel> http://blog.golang.org/2011/04/introducing-gofix.html
23:20 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
23:21 < aiju> that does gofmt on your code, right?
23:22 < crazy2be> wow gofix is awesome
23:23 < kevlar> indeed
23:23 < kevlar> it's soon going to make its way to the top of my list of
"awesome Go features"
23:24 < aiju> gofmt adds 40 lines to my code haha
23:24 -!- scyth [~scyth@rots.in.rs] has joined #go-nuts
23:25 < crazy2be> gofix, gofmt, awesome standard library, and the forced
naming conventions are all my favoriate things about go :)
23:25 < crazy2be> i used to hate having to update go code every time
something changed
23:25 < aiju> startx-ay*dBondDistance
23:26 < aiju> ^-- yuck
23:26 < aiju> personally i find gofmt reducing code readability
23:30 < crazy2be> aiju: Was that output by gofmt?
23:30 < kevlar> crazy2be: it removes whitespace in formulas
23:30 < crazy2be> huh
23:30 < crazy2be> gofix added whitespace for me
23:31 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit
[Ping timeout: 252 seconds]
23:33 < aiju> it also adds newlines to "if foo { bar }"
23:35 < crazy2be> aiju: That's usually good, imo
23:35 < aiju> i disagree
23:35 -!- scyth [~scyth@rots.in.rs] has quit [Quit: Leaving]
23:35 < aiju> if err != nil { Error(err.String()) }
23:35 < aiju> i have five of these in one function
23:35 < crazy2be> yes
23:35 < crazy2be> i have them all over
23:36 < crazy2be> what's your point?
23:36 < crazy2be> i write them as
23:36 < crazy2be> if err != nil {
23:36 < crazy2be> return err
23:36 < aiju> well, i find them much nicer to read than the "long" form
23:36 < crazy2be> }
23:36 < crazy2be> somewhat
23:37 < crazy2be> tradeoff between horizontal width and number of lines
23:37 < aiju> i'm not working on punch cards
23:37 -!- Scorchin [~Scorchin@host86-160-233-247.range86-160.btcentralplus.com]
has quit [Quit: Scorchin]
23:37 < aiju> and even those had 80 columns
23:38 < crazy2be> yes, but code with long lines gets progressively harder to
read, imo
23:38 < aiju> so does code with short lines
23:39 < aiju> there's an optimum somewhere in between
23:39 < crazy2be> yeah, you have the same issue in typography
23:40 < crazy2be> i like to write my latex documents with [twocolumn]
23:40 < aiju> eek
23:40 < crazy2be> so it's also persional perference :P
23:40 < aiju> i dislike twocolumn texts
23:50 < vsmatck> Seems like two column is the standard for a lot of CS
journals.
23:51 < aiju> another reason not to use it
23:51 < crazy2be> lol
23:51 < vsmatck> ?
23:54 -!- Transformer [~Transform@ool-4a59e397.dyn.optonline.net] has joined
#go-nuts
23:54 -!- scyth [~scyth@rots.in.rs] has joined #go-nuts
23:55 < crazy2be> well if i use one column, all of the equations end up with
a load of empty space
23:57 -!- Transformer [~Transform@ool-4a59e397.dyn.optonline.net] has left
#go-nuts []
--- Log closed Sun Apr 17 00:00:34 2011