--- Log opened Tue Aug 09 00:00:14 2011
--- Day changed Tue Aug 09 2011
00:00 -!- Tv__ [~Tv__@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts
00:03 < Sh4rK> hi!
00:04 < Sh4rK> if I want to write a an opengl binding that doesn't rely on
any c header files/lew/glut etc.. should I use syscalls?
00:04 < Sh4rK> nor c libs
00:07 -!- moraes [~moraes@189.103.188.201] has quit [Ping timeout: 250 seconds]
00:07 < kevlar_work> Sh4rK, I have no idea; I got laughed at last time I
suggested that a graphics library might use syscalls.
00:07 < str1ngs> no you would write it in pure go, and conform to the opengl
spec
00:08 < Sh4rK> str1ngs, I want to use the drivers' implementation, obviously
00:08 < str1ngs> ie nvidia or ati?
00:08 < Sh4rK> yep
00:09 < Sh4rK> for example use opengl32.dll on windows
00:09 < Sh4rK> but nothing else
00:09 < str1ngs> in that case you would have to bind to it with cgo
00:09 < str1ngs> so we are back to where you started.
00:09 < kevlar_work> yeah
00:09 < Sh4rK> why cgo instead of syscalls?
00:09 < str1ngs> its not practially to write it in pure go
00:10 < str1ngs> because opengl32.dll say for nvidia is closed sourced. you
would have to have the hardware spec
00:11 < Sh4rK> i mean call the functions of opengl32.dll with syscalls
00:11 < str1ngs> why when you can use cgo
00:11 -!- mogoh [~mogoh___@ip-95-222-106-192.unitymediagroup.de] has quit [Quit:
Ex-Chat]
00:11 -!- lmnop [none@ppp-70-225-166-42.dsl.chmpil.ameritech.net] has joined
#go-nuts
00:11 < str1ngs> you gain nothing, but useing syscalls
00:11 < str1ngs> and its not portable then
00:11 < Sh4rK> is it faster/more efficient/easier?
00:11 < Sh4rK> using cgo
00:12 < str1ngs> its not easier, how can you even suggest syscalls are
easier.
00:12 < str1ngs> I mean if you want to do it for fun, sure go for it. is it
practical or portable .. no
00:12 < Sh4rK> i mean is cgo easier?
00:12 -!- zhujo01
[jon.zhu@CPE00222d5acb80-CM00222d5acb7d.cpe.net.cable.rogers.com] has quit [Ping
timeout: 255 seconds]
00:13 < str1ngs> yes cgo would be easier
00:13 -!- kamaji [~kamaji@handtomouse.demon.co.uk] has quit [Quit: leaving]
00:13 < Sh4rK> then I'll try with that
00:13 -!- zhujo01
[jon.zhu@CPE00222d5acb80-CM00222d5acb7d.cpe.net.cable.rogers.com] has joined
#go-nuts
00:13 < str1ngs> there is already a opengl go binding, whats wrong with
that?
00:14 < Sh4rK> that it uses other libraries
00:14 < Sh4rK> glew for example
00:14 < Sh4rK> I want to use go as much as possible
00:15 < str1ngs> if you use the bindings you are using go
00:15 < str1ngs> should not matter that the bindings them selves might call
C
00:16 < exch> Yu can always port opengl to Go if you feel up to it. Good
luck with that though :p
00:16 < str1ngs> and it would be software based.
00:16 < Sh4rK> and that would be pointless
00:17 < str1ngs> what would be nice though, is gui framework written in go
00:17 < str1ngs> something based on svg.
00:17 < Sh4rK> why svg?
00:17 < str1ngs> or vector based at the least
00:18 < Sh4rK> so how would I use cgo to bind to a dll, not libraries?
00:19 < Sh4rK> and without using header files
00:19 < str1ngs> on windows dll are libraries
00:19 < str1ngs> you cant
00:19 < str1ngs> the header files define the interface to the dll
00:19 < Sh4rK> but they have additional stuff
00:20 < str1ngs> you cant dlopen in go if thats what you mean.
00:20 -!- chilts [~chilts@184-106-200-232.static.cloud-ips.com] has joined
#go-nuts
00:21 < str1ngs> I guess you could dlopen with cgo. but seems to me you are
better off learning cgo and now C works then avoiding it :P
00:21 < Sh4rK> oh
00:22 < Sh4rK> a completely different thing
00:22 -!- danilo04
[~danilo04@province-wireless-173-84-27-187.dr02.roch.ny.frontiernet.net] has
joined #go-nuts
00:22 < Sh4rK> can I load go modules at run-time somehow?
00:22 < str1ngs> no
00:22 < Sh4rK> to make plugins for example
00:22 < str1ngs> all go 'plackages" are statically built at into the binary
at link time.
00:22 < str1ngs> packages*
00:22 < Sh4rK> then how could I make an extensible program?
00:23 < str1ngs> interfaces
00:23 < str1ngs> but the plugin that provides the interface, need to be
available at build time
00:24 < str1ngs> which is really not a big deal in go. stuff builds in a
eyeblink
00:25 < Sh4rK> yeah, but users of a program usually don't compile it
00:25 < Sh4rK> well, at least on windows :D
00:26 < Sh4rK> it's more common on linux
00:26 < str1ngs> we dont get alot of windows folks around these parts :P
00:26 < str1ngs> but a client server model might be better. go is good at
that.
00:27 < Sh4rK> yeah
00:27 < Sh4rK> that could work
00:27 < Sh4rK> so each plugin is a separate go application
00:27 < str1ngs> right
00:27 < Sh4rK> and runs as a client
00:27 < Sh4rK> cool
00:27 < Sh4rK> thanks for the idea :D
00:27 < str1ngs> that is the unix way.
00:28 < Sh4rK> because I was thinking about doing something like what
eclipse does
00:28 < Sh4rK> in terms of plugins
00:28 < str1ngs> ah for a IDE?
00:30 < Sh4rK> not for an IDE
00:30 < Sh4rK> just the plugins
00:30 < Sh4rK> :)
00:30 < str1ngs> just have your IDE compile the plugins on start up
00:30 < str1ngs> sorry your plugin program
00:31 < Sh4rK> yeah
00:32 < str1ngs> I like the client server model. but that might not work
for everything. depending on what the plugin program does.
00:34 < Sh4rK> so back to opengl, I can use syscalls to directly call into a
dll
00:34 < Sh4rK> right?
00:37 -!- kergoth [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Ping
timeout: 250 seconds]
00:40 -!- ccc1 [~Adium@140.109.98.187] has joined #go-nuts
00:51 -!- raylu [raylu@173-228-31-111.static.sonic.net] has joined #go-nuts
00:56 < Sh4rK> str1ngs, is it possible to create a dll with go?
00:59 -!- bmizerany [~bmizerany@204.14.152.118] has quit [Remote host closed the
connection]
01:05 -!- Sh4rK [~sh4rk@200-159.60-188.cust.bluewin.ch] has quit [Quit: I'm out]
01:16 -!- serialhex [~quassel@99-101-148-183.lightspeed.wepbfl.sbcglobal.net] has
joined #go-nuts
01:19 -!- nekoh [~nekoh@dslb-178-004-029-231.pools.arcor-ip.net] has quit [Quit:
nekoh]
01:19 -!- seb32 [~sebastian@f055194225.adsl.alicedsl.de] has quit [Ping timeout:
252 seconds]
01:31 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has joined
#go-nuts
01:34 -!- shoenig_ [~shoenig@bastion.sfo1.yelpcorp.com] has quit [Remote host
closed the connection]
01:36 -!- danilo04
[~danilo04@province-wireless-173-84-27-187.dr02.roch.ny.frontiernet.net] has quit
[Quit: Leaving]
01:38 -!- Bigbear1 [~Cody@d173-181-33-58.abhsia.telus.net] has joined #go-nuts
01:40 -!- ajstarks [~ajstarks@pool-173-54-115-34.nwrknj.fios.verizon.net] has
joined #go-nuts
01:41 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has quit
[Remote host closed the connection]
01:51 -!- ajstarks [~ajstarks@pool-173-54-115-34.nwrknj.fios.verizon.net] has left
#go-nuts []
01:53 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has quit
[Read error: Operation timed out]
01:53 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
#go-nuts
01:57 -!- robteix [~robteix@host55.190-230-237.telecom.net.ar] has joined #go-nuts
02:15 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 240 seconds]
02:22 < qeed> how do you do something like vsprintf? i tried (f string,
args ...interface{}) and pass that to sprintf but doesnt work
02:22 -!- shoenig [~shoenig@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined
#go-nuts
02:22 < anticw> pass array...
02:23 < qeed> array...? can you show me a code example
02:24 -!- robteix [~robteix@host55.190-230-237.telecom.net.ar] has quit [Quit:
Leaving...]
02:24 < anticw> a := []interface{} {"hi! ", 1,2,3,4}
02:24 < anticw> fmt.Print(a...)
02:26 < anticw> maybe easier to grok as:
02:26 -!- zhujo01
[jon.zhu@CPE00222d5acb80-CM00222d5acb7d.cpe.net.cable.rogers.com] has quit [Ping
timeout: 252 seconds]
02:27 < anticw> a := []interface{} {1,2,3}
02:27 < anticw> fmt.Printf("1st %d 2nd %d 3rd %d", a...)
02:27 < anticw> bbl
02:27 -!- zhujo01
[jon.zhu@CPE00222d5acb80-CM00222d5acb7d.cpe.net.cable.rogers.com] has joined
#go-nuts
02:28 -!- thirsteh [~thirsteh@linuxfordummies/Thirsteh] has quit [Ping timeout:
252 seconds]
02:28 -!- thermal [~thermal@digital.com.au] has quit [Ping timeout: 258 seconds]
02:29 -!- rcrowley [~textual@c-71-202-44-233.hsd1.ca.comcast.net] has joined
#go-nuts
02:34 < qeed> thanks alot
02:34 -!- scyth [~scyth@rots.in.rs] has quit [Ping timeout: 276 seconds]
02:41 -!- keithcascio [~keithcasc@nat/google/x-qbfwjxlnjxgcjwtd] has quit [Quit:
Leaving]
02:53 -!- scyth [~scyth@rots.in.rs] has joined #go-nuts
02:56 -!- thermal [~thermal@digital.com.au] has joined #go-nuts
02:56 -!- Tv__ [~Tv__@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout:
276 seconds]
02:57 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has quit [Quit:
Linkinus - http://linkinus.com]
03:24 -!- zhujo01
[jon.zhu@CPE00222d5acb80-CM00222d5acb7d.cpe.net.cable.rogers.com] has quit [Ping
timeout: 250 seconds]
03:24 -!- zhujo01
[jon.zhu@CPE00222d5acb80-CM00222d5acb7d.cpe.net.cable.rogers.com] has joined
#go-nuts
03:27 -!- Bigbear1 [~Cody@d173-181-33-58.abhsia.telus.net] has quit [Ping timeout:
252 seconds]
03:29 -!- clr_ [~colin@97-112-204-183.frgo.qwest.net] has quit [Ping timeout: 264
seconds]
03:39 -!- JakeyChan [~JakeyChan@116.226.101.244] has joined #go-nuts
03:39 < JakeyChan> hi, can I connect mysql db with go ?
03:39 < anticw> http://go-lang.cat-v.org/
03:39 < anticw> there are links there to bindings
03:40 < anticw> some in pure go ive used and work ok
03:40 < JakeyChan> anticw: thank a lot :)
03:40 < anticw> uriel: you need a bot that matches on /how/
03:42 -!- replore_ [~replore@ntkngw133234.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit
[Remote host closed the connection]
03:43 -!- mcfuzz [~tj1776@c-67-180-244-115.hsd1.ca.comcast.net] has joined
#go-nuts
03:46 -!- Jamra [~Jamra@89-139-62-115.bb.netvision.net.il] has joined #go-nuts
03:47 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has quit [Quit: ZZZZZzzzzz]
03:47 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has joined #go-nuts
03:48 -!- clr_ [~colin@97-112-204-183.frgo.qwest.net] has joined #go-nuts
03:49 -!- qeed [~qeed@adsl-98-85-46-31.mco.bellsouth.net] has quit [Quit: Leaving]
03:49 -!- JakeyChan [~JakeyChan@116.226.101.244] has quit [Ping timeout: 250
seconds]
03:53 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has quit [Ping timeout: 250
seconds]
04:04 -!- JakeyChan
[~JakeyChan@ec2-175-41-238-53.ap-northeast-1.compute.amazonaws.com] has joined
#go-nuts
04:11 -!- rcrowley [~textual@c-71-202-44-233.hsd1.ca.comcast.net] has quit [Quit:
Computer has gone to sleep.]
04:12 -!- pjacobs [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit
[Quit: Leaving]
04:27 -!- JakeyChan
[~JakeyChan@ec2-175-41-238-53.ap-northeast-1.compute.amazonaws.com] has quit [Ping
timeout: 252 seconds]
04:34 -!- Jamra [~Jamra@89-139-62-115.bb.netvision.net.il] has quit [Ping timeout:
255 seconds]
04:38 -!- zhujo01
[jon.zhu@CPE00222d5acb80-CM00222d5acb7d.cpe.net.cable.rogers.com] has quit []
04:41 -!- meling [~meling@100.81-167-33.customer.lyse.net] has quit [Remote host
closed the connection]
04:46 -!- odoacre [~antonio@218.241.169.34] has joined #go-nuts
04:46 -!- JakeyChan [~JakeyChan@116.226.101.244] has joined #go-nuts
05:10 -!- stalled [~stalled@unaffiliated/stalled] has quit [Ping timeout: 252
seconds]
05:13 -!- clr_ [~colin@97-112-204-183.frgo.qwest.net] has quit [Quit: Ex-Chat]
05:16 -!- meling [~meling@152.94.120.233] has joined #go-nuts
05:23 -!- shoenig [~shoenig@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit
[Remote host closed the connection]
05:29 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts
05:31 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping
timeout: 240 seconds]
05:35 -!- 5EXAC59P2 [~kevlar@70-90-168-189-SFBACalifornia.hfc.comcastbusiness.net]
has joined #go-nuts
05:36 -!- kevlar [~kevlar@70-90-168-189-SFBACalifornia.hfc.comcastbusiness.net]
has quit [Changing host]
05:36 -!- kevlar [~kevlar@unaffiliated/eko] has joined #go-nuts
05:38 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has joined
#go-nuts
05:38 -!- frobnitz [~ian@king.bitgnome.net] has quit [Remote host closed the
connection]
05:52 -!- JakeyChan [~JakeyChan@116.226.101.244] has quit [Remote host closed the
connection]
06:09 -!- Guest1234 [~Pestilenc@95.87.216.153] has joined #go-nuts
06:18 -!- replore [~replore@g1-223-25-184-182.bmobile.ne.jp] has joined #go-nuts
06:19 < jlaffaye> morning!
06:27 < zozoR> ^^
06:28 -!- replore [~replore@g1-223-25-184-182.bmobile.ne.jp] has quit [Remote host
closed the connection]
06:29 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts
06:32 -!- noodles775 [~michael@e178253106.adsl.alicedsl.de] has joined #go-nuts
06:32 -!- noodles775 [~michael@e178253106.adsl.alicedsl.de] has quit [Changing
host]
06:32 -!- noodles775 [~michael@canonical/launchpad/noodles775] has joined #go-nuts
06:39 -!- JakeyChan [~JakeyChan@116.226.101.244] has joined #go-nuts
06:45 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
06:55 -!- yogib [~yogib@131.234.59.64] has joined #go-nuts
06:58 -!- meling [~meling@152.94.120.233] has quit [Remote host closed the
connection]
06:58 -!- meling [~meling@pc-0-220.ux.uis.no] has joined #go-nuts
07:04 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal]
07:13 < hokapoka> thought it had been a bit quite for the last 24 hours, had
irssi scrolled!
07:15 < hokapoka> Any suggestions on how to block a goroutine until an
number of reads from unbuffered chans have returned, the number is unknown until
runtime and the reads from the chans might be for another goroutine.
07:17 < hokapoka> Infact the sending chanels are unbuffered, the read chans
aren't.
07:17 -!- Soak [~Mangano@92-89-15-217.reverse.alphalink.fr] has joined #go-nuts
07:21 < hokapoka> The only solution I can see is to use some unique
identifier and for each store a map/slice that has an item for each chan that
needs to be read from. After each read for an indentifier remove the chan from
the slice, until the slice is empty at which point all the reads have completed.
07:26 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
07:29 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has quit [Read
error: Connection reset by peer]
07:29 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has joined
#go-nuts
07:33 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has quit [Quit:
wallerdev]
07:36 -!- stalled [~stalled@unaffiliated/stalled] has joined #go-nuts
07:37 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has quit [Excess
Flood]
07:38 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has quit [Read
error: Connection reset by peer]
07:38 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has joined
#go-nuts
07:40 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has joined #go-nuts
07:42 -!- JakeyChan [~JakeyChan@116.226.101.244] has quit [Quit: ChatZilla 0.9.87
[Firefox 3.6.15/20110303171539]]
07:42 -!- seb32 [~sebastian@g229219141.adsl.alicedsl.de] has joined #go-nuts
07:42 -!- JakeyChan [~JakeyChan@116.226.101.244] has joined #go-nuts
07:44 -!- krolaw [~krolaw@203.100.208.229] has quit [Ping timeout: 250 seconds]
07:48 -!- chadkouse [~Adium@rrcs-74-218-87-242.central.biz.rr.com] has quit [Quit:
Leaving.]
07:59 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
08:10 -!- Jamra [~Jamra@109-186-50-217.bb.netvision.net.il] has joined #go-nuts
08:12 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
08:15 -!- vmil86 [~vmil86@88.118.36.96] has joined #go-nuts
08:15 -!- wrtp [~rog@host-92-30-154-96.as13285.net] has joined #go-nuts
08:17 -!- virtualsue [~chatzilla@nat/cisco/x-ovrewezkkqypauak] has joined #go-nuts
08:29 -!- Jamra [~Jamra@109-186-50-217.bb.netvision.net.il] has quit [Quit: Jamra]
08:40 -!- krolaw [~krolaw@203.100.208.229] has quit [Ping timeout: 250 seconds]
08:40 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has joined
#go-nuts
08:40 -!- Fish [~Fish@exo3753.pck.nerim.net] has quit [Ping timeout: 240 seconds]
08:42 -!- Fish [~Fish@exo3753.pck.nerim.net] has joined #go-nuts
08:57 -!- virtualsue [~chatzilla@nat/cisco/x-ovrewezkkqypauak] has quit [Ping
timeout: 260 seconds]
08:58 -!- photron [~photron@port-92-201-46-248.dynamic.qsc.de] has joined #go-nuts
08:59 < wrtp> Tonnerre: just what it says
08:59 -!- virtualsue [~chatzilla@nat/cisco/x-sowadwsownwacupk] has joined #go-nuts
09:00 < wrtp> sizeof returns uintptr. you can't compare that to an int
without casting it
09:00 < wrtp> oops that was 12 hours aho!
09:00 < wrtp> ago
09:00 < jlaffaye> are you from the past? :)
09:05 -!- virtualsue [~chatzilla@nat/cisco/x-sowadwsownwacupk] has quit [Ping
timeout: 276 seconds]
09:06 -!- Guest1234 [~Pestilenc@95.87.216.153] has quit [Read error: Operation
timed out]
09:07 -!- virtualsue [~chatzilla@nat/cisco/x-xbjcdfomeukxmjgn] has joined #go-nuts
09:14 -!- JakeyChan [~JakeyChan@116.226.101.244] has quit [Ping timeout: 240
seconds]
09:15 -!- Guest1234 [~Pestilenc@95.87.216.153] has joined #go-nuts
09:17 < wrtp> jlaffaye: aren't you?
09:18 -!- noodles775 [~michael@canonical/launchpad/noodles775] has quit [Ping
timeout: 260 seconds]
09:19 -!- JakeyChan [~JakeyChan@116.226.101.244] has joined #go-nuts
09:19 -!- noodles775 [~michael@g229201113.adsl.alicedsl.de] has joined #go-nuts
09:19 -!- noodles775 [~michael@g229201113.adsl.alicedsl.de] has quit [Changing
host]
09:19 -!- noodles775 [~michael@canonical/launchpad/noodles775] has joined #go-nuts
09:21 < Tonnerre> wrtp: yes but I'm getting that while compiling Go. I'm
still trying various branches and tricks but…
09:27 -!- Argue [~Argue@112.201.133.68] has joined #go-nuts
09:36 -!- ccc1 [~Adium@140.109.98.187] has quit [Quit: Leaving.]
09:41 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has joined #go-nuts
09:48 -!- bmizerany [~bmizerany@c-67-180-209-10.hsd1.ca.comcast.net] has joined
#go-nuts
10:03 < Tonnerre> Hm, the test suite also outputs lots of:
10:03 < Tonnerre> > fixedbugs/bug346.go:9: import
/home/tonnerre/src/go-clean/pkg/linux_amd64/os.a: object is [linux amd64
release.r59 9022] expected [linux amd64 ]
10:04 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
10:08 -!- hargettp [~hargettp@pool-71-174-131-129.bstnma.east.verizon.net] has
joined #go-nuts
10:12 < jessta> Tonnerre: got an old version of the compiler in your path
somewhere?
10:12 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has joined
#go-nuts
10:12 -!- bmizerany [~bmizerany@c-67-180-209-10.hsd1.ca.comcast.net] has quit
[Remote host closed the connection]
10:13 < jessta> Tonnerre: old settings for GOROOT,GOBIN etc?
10:15 -!- tvw [~tv@212.79.9.150] has joined #go-nuts
10:17 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: Konversation
terminated!]
10:17 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
10:20 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
10:22 -!- hargettp [~hargettp@pool-71-174-131-129.bstnma.east.verizon.net] has
quit [Remote host closed the connection]
10:22 -!- ronnyy [~quassel@p4FF1C43C.dip0.t-ipconnect.de] has joined #go-nuts
10:22 -!- hargettp [~hargettp@pool-71-174-131-129.bstnma.east.verizon.net] has
joined #go-nuts
10:23 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has quit
[Ping timeout: 240 seconds]
10:31 -!- erus` [~chatzilla@mailgate.ips-international.com] has joined #go-nuts
10:31 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has quit [Remote host
closed the connection]
10:32 -!- JakeyChan [~JakeyChan@116.226.101.244] has quit [Remote host closed the
connection]
10:34 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has joined #go-nuts
10:37 -!- samuell [~samuel@pc2-samuel.uppmax.uu.se] has joined #go-nuts
10:41 < Tonnerre> jessta: oh, hum, very possible
10:45 -!- alehorst [~alehorst@189.58.12.173.dynamic.adsl.gvt.net.br] has joined
#go-nuts
10:55 < Tonnerre> jessta: heh, that fixed it all! Thx!
11:03 -!- astale [~alessandr@nethservice.nethesis.it] has joined #go-nuts
11:06 -!- hargettp [~hargettp@pool-71-174-131-129.bstnma.east.verizon.net] has
quit [Quit: Leaving...]
11:06 -!- astale [~alessandr@nethservice.nethesis.it] has quit [Remote host closed
the connection]
11:09 -!- hargettp [~hargettp@pool-71-174-131-129.bstnma.east.verizon.net] has
joined #go-nuts
11:09 -!- ronnyy [~quassel@p4FF1C43C.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
11:14 -!- sacho [~sacho@90.154.219.54] has quit [Ping timeout: 246 seconds]
11:16 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 276 seconds]
11:17 -!- fvbommel [~fvbommel_@86.86.15.250] has joined #go-nuts
11:18 -!- iant [~iant@209-6-170-85.c3-0.bkl-ubr1.sbo-bkl.ma.cable.rcn.com] has
joined #go-nuts
11:18 -!- mode/#go-nuts [+v iant] by ChanServ
11:20 -!- Boney [~paul@124.168.124.201] has quit [Quit: leaving]
11:20 -!- Boney [~paul@124.168.124.201] has joined #go-nuts
11:25 -!- stalled [~stalled@unaffiliated/stalled] has quit [Ping timeout: 252
seconds]
11:26 -!- iant [~iant@209-6-170-85.c3-0.bkl-ubr1.sbo-bkl.ma.cable.rcn.com] has
quit [Ping timeout: 250 seconds]
11:26 -!- krolaw [~krolaw@203.100.208.229] has quit [Ping timeout: 250 seconds]
11:28 -!- nekoh [~nekoh@dslb-188-107-174-171.pools.arcor-ip.net] has joined
#go-nuts
11:28 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 276 seconds]
11:37 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 276 seconds]
11:38 -!- stalled [~stalled@unaffiliated/stalled] has joined #go-nuts
11:38 -!- tncardoso [~thiago@187.58.6.55] has joined #go-nuts
11:56 < hokapoka> Anyone seen my post on Go nuts group? Dmitry suggests
that sharing a pool of chans could be more expensive than allocating new chans as
they are required. Other than the initial expense and the need to manage the
avaliablity of them is there anyother reason a pool couldbe more expensive?
11:59 -!- hargettp [~hargettp@pool-71-174-131-129.bstnma.east.verizon.net] has
quit [Quit: Leaving...]
11:59 -!- miker2 [~miker2@64.55.31.190] has joined #go-nuts
12:03 < skelterjohn> don't think so
12:03 < skelterjohn> managing availability can easily get more expensive
than just creating new ones
12:04 -!- TheMue [~FMueller@p5DDF7AFD.dip.t-dialin.net] has joined #go-nuts
12:04 < TheMue> re
12:08 < wrtp> hokapoka: i guess it's possible that allocating each time
requires no synchronisation between processors
12:09 < wrtp> hokapoka: whereas a pool requires a mutex
12:12 < hokapoka> Oh yeah, I was concidering using chans to get / return the
resourses, when ever they are request
12:13 < hokapoka> But that's going to end up with the same issues
regardless.
12:13 -!- Jamra [~Jamra@212.143.214.77] has joined #go-nuts
12:15 -!- frobnitz [~ian@king.bitgnome.net] has joined #go-nuts
12:17 -!- Jamra [~Jamra@212.143.214.77] has quit [Ping timeout: 255 seconds]
12:20 -!- nteon [~nteon@ool-4a58e438.dyn.optonline.net] has quit [Ping timeout:
260 seconds]
12:31 -!- seb32 [~sebastian@g229219141.adsl.alicedsl.de] has left #go-nuts
["WeeChat 0.3.5"]
12:32 -!- rphillips [~rphillips@unaffiliated/rphillips] has quit [Quit: ZNC -
http://znc.sourceforge.net]
12:34 -!- rphillips [~rphillips@unaffiliated/rphillips] has joined #go-nuts
12:34 -!- knowmerc1 [~knowmercy@mobile-198-228-224-063.mycingular.net] has joined
#go-nuts
12:39 -!- qeed [~qeed@adsl-98-85-57-153.mco.bellsouth.net] has joined #go-nuts
12:44 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has joined
#go-nuts
12:44 -!- replore_ [~replore@ntkngw133234.kngw.nt.ftth.ppp.infoweb.ne.jp] has
joined #go-nuts
12:47 -!- gridaphobe [~gridaphob@cpe-74-68-151-24.nyc.res.rr.com] has joined
#go-nuts
12:50 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has joined #go-nuts
12:53 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has joined #go-nuts
12:54 -!- rphillips [~rphillips@unaffiliated/rphillips] has quit [Quit: ZNC -
http://znc.sourceforge.net]
12:54 -!- rphillips [~rphillips@unaffiliated/rphillips] has joined #go-nuts
12:57 < qeed> is there any guide on how to split up go sources into seperate
packages, i feel that putting all the src in one package leads to namespace issues
if it grows big enough, but making packages for every helpers functions/data
structure seem like alot of hassle
12:58 < jnwhiteh> I mean, it really comes down to how you want to organise
things
12:58 < jnwhiteh> you can logically separate things out into separate
packages if they have well defined interfaces, independent tests, etc.
12:58 < hokapoka> qeed: I tend to use goinstall now, so you can use folders
to manage the packages, however it will install the packages.
12:58 < jnwhiteh> hokapoka: you can use goinstall to operate locally
12:58 < jnwhiteh> its the best kept secret imo!
12:59 < hokapoka> That a question?
12:59 < jnwhiteh> no!
12:59 < jnwhiteh> You're saying 'it will install the packages'
12:59 < jnwhiteh> but it depends on what you mean by that
12:59 < jnwhiteh> it doesn't put anything into GOROOT if you don't want it
to!
12:59 < qeed> well i tend to code single apps rather than a lib, so i wasnt
sure how to split up packages since what i really want is just all the src files
to operate on one app in the forseeable future
12:59 < qeed> and im not sure how to split it up, in C with file scoping its
alot simpler
13:00 < hokapoka> I use it locally and have suggested to people before but
others have pointed out that it installs the packages too.
13:00 < qeed> at least which parts of the code should go into their own
packages
13:00 < jnwhiteh> I do wish there was some way for us to have a
scoping/privacy mechanism that was smaller than the package
13:00 < jnwhiteh> hokapoka: I'm not sure what they're saying then =/
13:00 < hokapoka> I wasn't aware that you could stop it installing into
GOROOT.
13:01 < jnwhiteh> yes, using GOPATH
13:01 < qeed> any big go project i can look at for inspiration?
13:01 < hokapoka> Personally I don't find it an issue, just install the
package you're working on it'll handle the deps, super simple.
13:02 < hokapoka> jnwhiteh: GOPATH, is what I ment, not GOROOT.
13:02 -!- Jamra [~Jamra@46-116-120-42.bb.netvision.net.il] has joined #go-nuts
13:02 < jnwhiteh> well, depends on what 'install' means
13:02 -!- ccc1 [~Adium@118-166-230-60.dynamic.hinet.net] has joined #go-nuts
13:02 < hokapoka> It installs the package into GOPATH.
13:02 < hokapoka> yeah,
13:02 < jnwhiteh> it no more installs it than any other build method, it
still has to make the libraries!
13:02 < qeed> well the rule is that each package has there own dirs, if i
make a package for all the helpers and data structure it seems kind of a hassle to
make such a src dir with alot of different dirs
13:02 < hokapoka> Exactally, I love using goinstall :)
13:03 < jnwhiteh> qeed: Its really a personal thing, I think
13:03 < jnwhiteh> I don't know that there are any best practices
13:03 < jnwhiteh> Have there been any threads about sub-package
scoping/privacy?
13:03 -!- knowmerc1 [~knowmercy@mobile-198-228-224-063.mycingular.net] has quit
[Ping timeout: 250 seconds]
13:03 < jnwhiteh> because when you use packages for privacy you quickly run
into the circular dependency issue =(
13:03 < qeed> well i dont know a good practice x|
13:04 < jnwhiteh> qeed: you can always break it out into sub-packages in the
future
13:05 -!- knowmerc1 [~knowmercy@mobile-198-228-227-238.mycingular.net] has joined
#go-nuts
13:05 -!- ccc1 [~Adium@118-166-230-60.dynamic.hinet.net] has quit [Client Quit]
13:06 -!- iant [~iant@74.125.60.4] has joined #go-nuts
13:06 -!- mode/#go-nuts [+v iant] by ChanServ
13:06 -!- ccc1 [~Adium@118-166-230-60.dynamic.hinet.net] has joined #go-nuts
13:06 -!- iant1 [~iant@74.125.60.1] has joined #go-nuts
13:07 < hokapoka> jnwhiteh: I aggree to an extend, but I find that it leads
me to more frequently nornmalize my packages into a more appropriate structures.
13:08 < jnwhiteh> but what is appropriate?
13:08 < jnwhiteh> we have lots of issues with this in Chunkymonkey
13:08 < jnwhiteh> trying to get things sorted out
13:09 -!- Soak [~Mangano@92-89-15-217.reverse.alphalink.fr] has quit [Quit: I mine
on BitMinter.com]
13:10 < hokapoka> jnwhiteh: personally I'm happy with it as it is. But the
time I find I've got long Function names that start to annoy me, it's time to do a
bit of house keeping and review the structure.
13:10 < hokapoka> s/But/By
13:10 -!- iant [~iant@74.125.60.4] has quit [Ping timeout: 255 seconds]
13:15 -!- JakeyChan [~JakeyChan@118.132.214.248] has joined #go-nuts
13:16 < skelterjohn> using goinstall for local projects is a pain, imo
13:17 -!- Soak [~Mangano@92-89-15-217.reverse.alphalink.fr] has joined #go-nuts
13:17 -!- yogib [~yogib@131.234.59.64] has quit [Quit: yogib]
13:18 -!- Jamra [~Jamra@46-116-120-42.bb.netvision.net.il] has quit [Ping timeout:
255 seconds]
13:20 < jnwhiteh> skelterjohn: why's that?
13:20 -!- shoenig [~shoenig@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined
#go-nuts
13:20 < skelterjohn> couple things
13:20 < skelterjohn> i don't like using env vars that aren't actually
universal
13:20 < skelterjohn> the "-clean" options is really clean-and-build
13:21 < skelterjohn> it makes me type out the full path of the target i want
to build
13:21 < jnwhiteh> the full relative path
13:21 < skelterjohn> yes
13:21 < skelterjohn> the first thing is subjective, i suppose
13:21 < jnwhiteh> don't get me wrong, its not as good as gb.. but makes
writing a makefile that does the right thing quite trivial
13:21 < skelterjohn> but i feel like it could get out of hand if i had a
whole bunch of different go workspaces
13:21 < jnwhiteh> much better than the old makefile system
13:22 < skelterjohn> ah, have the makefile invoke goinstall?
13:22 < jnwhiteh> indeed
13:22 < skelterjohn> i guess it can set the env var for you
13:22 * mpl still copies makefiles around, no big deal.
13:22 < skelterjohn> i see where you're coming from
13:22 < jnwhiteh> the Make.inc system is broken
13:22 < jnwhiteh> terribly
13:22 < skelterjohn> i wouldn't call it broken
13:22 < jnwhiteh> it just doesn't understand dependencies between commands
and packages
13:23 < skelterjohn> jnwhiteh: you can make it - gb will write makefiles
that do
13:23 < jnwhiteh> I know it does =)
13:23 < skelterjohn> they're the default ones with some extra rules
13:23 < jnwhiteh> I use gb for almost everything
13:23 < skelterjohn> oh :)
13:23 < jnwhiteh> but I think goinstall is quite nice for a source tree as
well
13:23 < skelterjohn> i'll agree that a makefile that invokes goinstall
properly is better than the gb-generated build script/makefiles
13:32 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
13:35 < moraes> 'give it a go' is a terrible name for a go-related website.
yes or no.
13:36 < qeed> i tried building go-gb with r59 9022 and i got some errors
from the latest hg
13:39 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
13:42 < hokapoka> vim & gofmt, has anyone got binding to run gofmt against
an open buffer in vim?
13:42 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has joined #go-nuts
13:44 < f2f> i have one for acme
13:45 < f2f> but :%!gofmt isn't too hard to type
13:45 < f2f> so i haven't bothered for vim
13:45 < hokapoka> ahem, so it is :)
13:45 < hokapoka> thanks f2f
13:48 -!- Sep102 [~Sep102@c-67-170-74-228.hsd1.wa.comcast.net] has joined #go-nuts
13:49 < jnwhiteh> hokapoka: there's one in the standard repo
13:49 < jnwhiteh> Fmt
13:49 < jnwhiteh> there's :Fmt :Import :Drop and :ImportAs
13:49 < jnwhiteh> and :Fmt is significantly better than :%!gofmt
13:49 < jnwhiteh> which can do very very bad things to your buffer
13:49 < f2f> agreed
13:50 < aiju> 15:49 < hokapoka> [15:42:33] vim & gofmt, has anyone got
binding to run gofmt against an open buffer in vim?
13:50 < aiju> :%!gofmt?
13:50 < jnwhiteh> again, that's bad.
13:50 < jnwhiteh> syntax error, boom
13:50 < aiju> don't do that, then
13:50 -!- Sep102_ [~Sep102@c-67-170-74-228.hsd1.wa.comcast.net] has quit [Ping
timeout: 255 seconds]
13:50 < jnwhiteh> there's a reason :Fmt was written
13:51 < f2f> nothing an undo can't fix
13:51 < aiju> undo is cheating
13:51 < f2f> but still, :Fmt is better. when available
13:51 < jnwhiteh> :GundoToggle
13:51 < jnwhiteh> <3
13:51 < jnwhiteh> easily installed with pathogen:
https://github.com/jnwhiteh/vim-golang
13:52 < aiju> wait
13:52 < aiju> you're just advocating your own stuff?
13:52 < jnwhiteh> no.
13:52 < jnwhiteh> I didn't write it
13:52 < hokapoka> heh
13:52 < jnwhiteh> I, however, maintain the github repository mirror of the
vim plugin sub-path
13:52 < jnwhiteh> qq some more aiju =)
13:52 < aiju> "qq"?
13:52 < jnwhiteh> cry
13:52 < jnwhiteh> =)
13:52 < aiju> haha
13:52 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has joined
#go-nuts
13:53 < aiju> i still haven't got together to create my lite-version of vim
13:54 < dlowe> aiju: ed?
13:54 < aiju> hahaha
13:54 < aiju> you're talking to an occasional ed-user
13:55 -!- kergoth [~kergoth@ip24-251-173-232.ph.ph.cox.net] has joined #go-nuts
13:55 < nicka> what does a lite version of vim entail?
13:55 < aiju> less bullshit
13:55 < aiju> currently VIM is like 30 MB
13:56 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has
joined #go-nuts
13:56 < jnwhiteh> umm
13:56 < aiju> i don't need internationalization, syntax highlighting and
spelling
13:56 < jnwhiteh> its 2.9 on my machine
13:56 < aiju> i'm sure i can at least half the size
13:56 < aiju> jnwhiteh: are you sure it's VIM?
13:56 < jnwhiteh> is 3MiB large?
13:57 -!- nteon [~nteon@static-71-183-219-26.nycmny.fios.verizon.net] has joined
#go-nuts
13:57 < aiju> also, what are you measuring?
13:57 < aiju> du -sh /usr/share/vim
13:57 < f2f> is 'vi' a ligter version of vim?
13:57 < aiju> f2f: no, vim is bloated version of vi
13:57 -!- niemeyer [~niemeyer@72-254-17-213.client.stsn.net] has joined #go-nuts
13:57 < jnwhiteh> aiju: /usr/share/vim is 6.0MiB
13:57 < aiju> but really, vi was way first
13:57 < aiju> jnwhiteh: curious. distribution?
13:57 < jnwhiteh> stock mac os x
13:58 < aiju> Syntax highlighting is 4.8 MB alone
13:58 < jnwhiteh> indeed, you can drop those
13:58 < aiju> 5.2 MB in a more recent version!
13:58 < jnwhiteh> but that's 0 code changes required afaik
13:58 < aiju> ya
13:59 < jnwhiteh> I do not need ada autocompletion
13:59 < jnwhiteh> =)
13:59 < aiju> but since i do most of my editing with sam, i never bothered
too much
13:59 < jnwhiteh> but most of that is loaded on demand
13:59 < aiju> I do not need Go autocompletion
13:59 < aiju> (works for any language)
13:59 < jnwhiteh> I enjoy having Go autocompletion
14:00 < jnwhiteh> for the rare instances I need it
14:00 < f2f> you need code folding
14:00 < aiju> f2f: no, i don't
14:00 < jnwhiteh> I've never gotten into folding
14:00 < f2f> yes, you do
14:00 < aiju> i never used code folding voluntarily
14:00 < f2f> and little shades of grey to hint at how much code was folded
14:01 < f2f> and little line numbers to the side, in case you forget
14:01 < dlowe> I can't say I've really seen the utility of folding either
14:01 -!- kamaji [~kamaji@handtomouse.demon.co.uk] has joined #go-nuts
14:01 < f2f> and blinkenkursors
14:01 < aiju> i also need a XML method general-purpose cloud
14:01 < dlowe> and a PONY
14:01 < jnwhiteh> now you're right about that
14:01 < jnwhiteh> My pony speaks only XML
14:01 < aiju> and a asynchronous self-healing package component-oriented
package-oriented table cloud
14:01 < f2f> OMG PONIES!
14:01 < jnwhiteh> and it is the best thing I have
14:01 < f2f> i forgot the ponie
14:01 < f2f> s
14:01 < aiju> damn, i really need to integrate my Enterprise Product Name
Generator into my IRC client
14:01 -!- shoenig [~shoenig@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit
[Remote host closed the connection]
14:02 < dlowe> I have an Enterprise Management Advisor in a bot
14:02 < dlowe> It's critical to company values that dlowe should reach out
to many contextually strong business and then maintain a balance between all 2.0
assessments and all our team building team members.
14:02 < dlowe> Focusing on solutions, dlowe will merge some prioritized,
110% turnkey solution into some win-win synergies.
14:02 < aiju> i need an enterprise code converter
14:03 < aiju> it adds abstract factories and bullshit comments
14:03 < dlowe> Someone should do for enterprise language what was done via
LOLCODE
14:03 < nicka> replace every class with an identical interface +
implementation pair
14:03 < aiju> dlowe: hahahaha
14:03 < f2f> when i sit down to write some code (and it's always when i'm
writing code, for i never have to debug) i need to feel like i'm sitting behind
the console of an a380, ready to make this task my bitch.
14:04 < f2f> how else would i feel like i'm working unless there are two
screens full of apps which frequently update and i'm switching between them
constantly
14:05 < f2f> my editor needs at least 15 windows. that's why xcode is so
popular
14:05 < f2f> or eclipse
14:06 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has joined
#go-nuts
14:06 < dlowe> I'll stick with emacs, thanks.
14:06 < f2f> hehe
14:06 < f2f> the analogy for emacs is the iceberg
14:08 < f2f> sam's analogy is marvin -- the paranoid android. your editor
pal that's fun to be with. you can have a pleasant conversation with sam, but
only for a short period of time before it annoys you rather quickly
14:09 < f2f> acme is an insane asylum -- pleasant pastel colours, some
functionality. but you can never leave :)
14:09 < f2f> vim is just vi improved. enough said :)
14:09 < aiju> vim is the smaller iceberg
14:09 < aiju> actually VIM is larger than some EMACS versions
14:10 < f2f> and vi is smaller. your point being?
14:12 < zozoR>
http://www.kieranhealy.org/blog/archives/2011/07/29/text-editors-in-the-lord-of-the-rings/
14:13 < dlowe> they'
14:14 < dlowe> they're all pretty tiny in modern systems
14:14 < dlowe> well, except Eclipse
14:14 < mpl> zozoR: hehe
14:14 < wrtp> jnwhiteh: you do have a scoping system that's smaller than a
package - methods do that....
14:14 < jnwhiteh> scoping, yes
14:14 < jnwhiteh> privacy, no
14:15 < wrtp> jnwhiteh: within a package we're all friends
14:15 < wrtp> no privacy required :-)
14:15 < jnwhiteh> I think that's a problem =)
14:15 < jnwhiteh> for disciplined development
14:15 < jnwhiteh> hence the desire
14:15 < dlowe> No, that's bondage development
14:15 < dlowe> Discipline comes from within
14:15 < wrtp> you can easily build a tool to strictly enforce things
14:16 < jnwhiteh> Yes, no one is arguing that there aren't other ways to do
it
14:16 < jnwhiteh> that doesn't invalidate this way
14:16 < f2f> anyone used this with go? http://www.sublimetext.com/
14:19 < Soak> http://bash.org/?795779 so true, 2 hours early it's me
><
14:19 < Soak> I have closed the terminal :$
14:20 -!- nicka1 [~nicka@blk-222-42-163.eastlink.ca] has quit [Ping timeout: 264
seconds]
14:21 -!- nicka1 [~lerp@142.176.0.21] has joined #go-nuts
14:21 -!- molto_alfredo [~molto_alf@142.176.0.21] has joined #go-nuts
14:21 -!- astale [~alessandr@nethservice.nethesis.it] has joined #go-nuts
14:22 -!- molto_alfredo1 [~molto_alf@142.176.0.21] has quit [Ping timeout: 260
seconds]
14:22 -!- nicka [~lerp@unaffiliated/nicka] has quit [Ping timeout: 276 seconds]
14:22 -!- pjacobs [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has
joined #go-nuts
14:23 < mpl> Soak: jsyk, :q<enter> will do :)
14:23 -!- jbooth1 [~jay@209.249.216.2] has joined #go-nuts
14:24 < Soak> oh thank you x)
14:26 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has quit [Remote host
closed the connection]
14:27 -!- ancientlore [~ancientlo@12.54.6.218] has joined #go-nuts
14:30 < mpl> np
14:31 -!- saschpe [~quassel@opensuse/member/saschpe] has joined #go-nuts
14:33 -!- ancientlore [~ancientlo@12.54.6.218] has quit [Read error: Connection
reset by peer]
14:34 -!- ancientlore [~ancientlo@12.54.6.218] has joined #go-nuts
14:34 -!- meling [~meling@pc-0-220.ux.uis.no] has quit [Remote host closed the
connection]
14:36 -!- nicka1 [~lerp@142.176.0.21] has quit [Quit: Leaving.]
14:36 -!- nicka [~nicka@142.176.0.21] has joined #go-nuts
14:36 -!- nicka [~nicka@142.176.0.21] has quit [Changing host]
14:36 -!- nicka [~nicka@unaffiliated/nicka] has joined #go-nuts
14:38 -!- ancientlore [~ancientlo@12.54.6.218] has quit [Read error: Connection
reset by peer]
14:38 -!- ancientlore [~ancientlo@12.54.6.218] has joined #go-nuts
14:42 -!- saschpe [~quassel@opensuse/member/saschpe] has quit [Remote host closed
the connection]
14:42 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection]
14:43 -!- shoenig [~shoenig@bastion.sfo1.yelpcorp.com] has joined #go-nuts
14:45 -!- ancientlore [~ancientlo@12.54.6.218] has quit [Quit: ~ Trillian Astra -
www.trillian.im ~]
14:46 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has quit [Ping timeout: 240 seconds]
14:49 -!- knowmerc1 [~knowmercy@mobile-198-228-227-238.mycingular.net] has quit
[Quit: leaving]
14:51 < hokapoka> f2f: IIRC skelterjohn was using it
14:51 -!- wrtp [~rog@host-92-30-154-96.as13285.net] has quit [Ping timeout: 246
seconds]
14:51 < hokapoka> I could be wrong about him, but deffo someone here was
using it with go.
14:52 -!- zhujo01
[jon.zhu@CPE00222d5acb80-CM00222d5acb7d.cpe.net.cable.rogers.com] has joined
#go-nuts
14:54 < skelterjohn|work> what whoo
14:56 < hokapoka> ^^ did you say you're using sublimetext?
14:56 -!- wrtp [~rog@host-92-30-134-53.as13285.net] has joined #go-nuts
14:56 < skelterjohn|work> ah yes
14:56 < skelterjohn|work> i do
14:56 < skelterjohn|work> it's ok
14:56 -!- dfr|mac [~dfr|work@ool-18baf7e7.dyn.optonline.net] has joined #go-nuts
14:56 < skelterjohn|work> i like having a directory tree to click around in
14:56 < wrtp> ah yes, come back for me too
14:57 < wrtp> this is a problem with "the cloud"...
14:58 < skelterjohn|work> wrtp: what are you referring to?
14:59 -!- Guest1234 [~Pestilenc@95.87.216.153] has quit [Quit: WeeChat 0.3.5]
15:00 < wrtp> gmail and, in general, the technique of having a lot of
important data stored on remote computers only
15:16 -!- erus` [~chatzilla@mailgate.ips-international.com] has quit [Quit:
ChatZilla 0.9.87 [Firefox 5.0/20110615151330]]
15:17 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has quit [Quit:
WeeChat 0.3.4]
15:18 -!- iant1 [~iant@74.125.60.1] has quit [Ping timeout: 276 seconds]
15:20 -!- astale [~alessandr@nethservice.nethesis.it] has left #go-nuts []
15:21 -!- dfr|mac [~dfr|work@ool-18baf7e7.dyn.optonline.net] has quit [Remote host
closed the connection]
15:23 -!- moraes [~moraes@189.103.188.201] has quit [Read error: Operation timed
out]
15:24 < mpl> heh, speaking of vi, anyone noticed that j and k work as
shortcuts in g+? :)
15:25 < str1ngs> yes, dont tell the emacs users though.
15:26 < str1ngs> I use vimium though :P
15:26 < zozoR> i use kate
15:26 < zozoR> i wish gocode worked for kate though
15:26 < zozoR> but writing a plugin seems pretty hard : |
15:26 -!- vmil86 [~vmil86@88.118.36.96] has quit [Read error: Connection reset by
peer]
15:27 < str1ngs> $GOROOT/misc/kate
15:27 < str1ngs> profit.
15:27 < zozoR> syntax highlightin != gocode support :3
15:27 < str1ngs> ah gocode
15:28 < zozoR> well, atleast it works for eclipse
15:28 < zozoR> but eclipse is just horrible
15:28 < zozoR> with gb around that is
15:28 < str1ngs> I dont use gocode myself. it is handy though
15:28 < zozoR> it helps spelling right :P
15:28 < zozoR> and exploring packages
15:29 < str1ngs> maybe, I use godoc for that.
15:29 < zozoR> true that
15:29 < zozoR> godoc is awesome
15:29 -!- tncardoso [~thiago@187.58.6.55] has quit [Read error: Connection reset
by peer]
15:38 -!- Cork[home] [Cork@h27n1c1o1042.bredband.skanova.com] has quit [Changing
host]
15:38 -!- Cork[home] [Cork@firefox/community/cork] has joined #go-nuts
15:41 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping
timeout: 250 seconds]
15:43 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts
15:46 -!- fvbommel [~fvbommel_@86.86.15.250] has joined #go-nuts
15:47 -!- pharris [~Adium@rhgw.opentext.com] has joined #go-nuts
15:48 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has quit
[Ping timeout: 252 seconds]
15:52 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has
joined #go-nuts
16:04 -!- Sep102_ [~Sep102@c-67-170-74-228.hsd1.wa.comcast.net] has joined
#go-nuts
16:04 < mpl> heh, gotta love that comment: ! Support for Fastest Fourier
Transform in the West (of Italy)
16:06 -!- nteon [~nteon@static-71-183-219-26.nycmny.fios.verizon.net] has quit
[Read error: Operation timed out]
16:07 -!- Soak [~Mangano@92-89-15-217.reverse.alphalink.fr] has quit [Quit: I mine
on BitMinter.com]
16:07 -!- Sep102 [~Sep102@c-67-170-74-228.hsd1.wa.comcast.net] has quit [Ping
timeout: 240 seconds]
16:10 -!- tncardoso [~thiagon@150.164.2.20] has joined #go-nuts
16:12 -!- hoozleboozle [~Adium@nat/google/x-ukmesjkxuklicupy] has joined #go-nuts
16:13 -!- samuell [~samuel@pc2-samuel.uppmax.uu.se] has quit [Quit: Ex-Chat]
16:14 -!- pjacobs2 [~pjacobs@66.54.185.130] has joined #go-nuts
16:14 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
16:15 -!- pjacobs [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit
[Ping timeout: 255 seconds]
16:18 -!- ShadowIce` [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
16:18 < lmnop> (08:22:58 AM) aiju: (mk is a start [at overcoming the
weaknesses of make], but still troublesome)
16:18 < lmnop> would you elaborate on that? what's wrong with mk?
16:19 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Read error:
Connection reset by peer]
16:19 < aiju> lmnop: it gets awkward with multi-directory projects
16:21 -!- iant [~iant@nat/google/x-zutslnsaszefquhe] has joined #go-nuts
16:21 -!- mode/#go-nuts [+v iant] by ChanServ
16:25 < exch> I do love elian script. Particularly seeing the volution of
my writing throughout the diary is fun. It starts all awkward and becomes
progressively more stylized with every page
16:25 < exch> eep. wrong chan
16:27 < mpl> exch: tell us more anyway ;)
16:27 -!- Kumul [~Kumul@67.224.228.31] has joined #go-nuts
16:27 < exch> http://www.ccelian.com/concepca.html
16:27 -!- ccc1 [~Adium@118-166-230-60.dynamic.hinet.net] has quit [Quit: Leaving.]
16:28 < exch> it's a writing system based on the olden 'Freemason cipher' or
'pigpen cipher'
16:28 < exch> Not really cryptographic, but it keeps the average plebian
from readng my diary
16:28 < exch> You can learn to read/rite it in about 15 minutes flat though
16:28 < exch> Good fun
16:29 < exch> My current style is somewhat like the bottom-left in this
image http://www.ccelian.com/graphics/manual/Image_12.gif
16:29 < mpl> fun
16:30 -!- franciscosouza [~francisco@201.7.186.67] has joined #go-nuts
16:30 < exch> It's brilliant. No need to memorize 26 individual characters.
Just the layout of those 4 grids
16:30 -!- erus` [~chatzilla@cpc2-gill2-0-0-cust701.basl.cable.virginmedia.com] has
joined #go-nuts
16:30 < exch> And the shape of each character can vary greatly without
losing it's meaning
16:31 < aiju> sounds like my handwriting
16:31 < exch> I hope to achieve the letter stacking at some point.
http://www.ccelian.com/graphics/manual/Image_17.gif It looks like a cross between
arabic and klingon
16:32 < aiju> now write in latin
16:32 < exch> Yea I was considering that
16:32 < exch> I'm not even remotely fluent at latin though.
16:33 < exch> not yet anyway
16:34 < zozoR> finaly found the xml plugin thingy for kate.. now to remap
it to work with gocode :D
16:34 -!- tcpNut [~chatzilla@mcswl207.mcs.anl.gov] has joined #go-nuts
16:35 < mpl> exch: looks a bit like elvish as well
16:35 < exch> yea a bit
16:36 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has quit [Quit:
wallerdev]
16:36 < exch> I think you can really make it look like anything you want
without while still keeping it proper Elian script
16:36 < exch> *-without
16:36 < tcpNut> I am trying to implement a socket to connect to a telnet
server to do some simple operations on that server such as request its running
status. I am using the tcp library that is included in the net package to achieve
this. I can create a connection but I cannot get it to read. I was expecting a
login prompt so that i can write the credins and go from there. It works in
python but not in GO
16:36 < f2f> now translate the voytech manuscript :)
16:37 < tcpNut> Any suggestions?
16:37 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has joined
#go-nuts
16:38 < exch> tcpNut: It's probably best to look at some TCP examples in Go.
There's a bunch of cmmunity-made IRC bots around. Those might be handy to start
with
16:39 < f2f> tcpNut: listen+serve is trivial in go. should probably start
with a simple example?
16:39 -!- nteon [~nteon@ool-4a58e438.dyn.optonline.net] has joined #go-nuts
16:39 < tcpNut> I have already done multiple servers with listen and serve
haha
16:39 < exch> http://go-lang.cat-v.org/go-code
16:39 < tcpNut> This is just a small utiltity for a large systems program
16:39 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has quit [Quit:
Computer has gone to sleep.]
16:40 < jessta> tcpNut: you could pastebin an example of what isn't working
16:40 < jessta> tcpNut: or describe what you are doing to read that isn't
working and what about it isn't working as you expct
16:41 < tcpNut> Give me a minute and I will have an example for you
16:44 -!- Soak [Soak@gas45-5-88-182-12-78.fbx.proxad.net] has joined #go-nuts
16:45 -!- tavis_rain [~tavisb@24-104-129.146.hfc.mediarain.com] has joined
#go-nuts
16:46 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has quit
[Quit: Ex-Chat]
16:46 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has joined
#go-nuts
16:46 < tcpNut> http://pastebin.com/7gg6r3Gv
16:47 < tcpNut> I do not do any error checking because I am still testing
how the lib works
16:47 < tcpNut> so all errors are being printed out
16:47 < tcpNut> for the read i get a 0 EOF error
16:48 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has quit [Quit:
wallerdev]
16:49 < f2f> tcpNut: byt := make([]byte, 8192)
16:51 < tcpNut> Ah! i see part of the error... I was initiilzing an empty
byte slice with no initial size
16:51 -!- JakeyChan [~JakeyChan@118.132.214.248] has quit [Remote host closed the
connection]
16:52 < f2f> also, you can use Dial() instead of DialTCP(). when you use
Dial("tcp") it'll return a TCPConn but it behaves the same as a Conn.
16:52 < f2f> get to using interfaces early so your code will be extensible
16:52 < f2f> and you'll only need one dialler instead of many once you put
it into a lib
16:53 -!- nicka1 [~nicka@blk-222-42-163.eastlink.ca] has joined #go-nuts
16:54 < tcpNut> that is good advice. I was using that one first actually
but since it was not working for me I went straight to tcp because thats telnet's
protocol
16:54 < tcpNut> but it still is not working properly
16:54 < tcpNut> it is reading only 3 bytes total and its garbage
16:56 < f2f> paste the new code?
16:57 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has joined
#go-nuts
16:59 < tcpNut> will do so in a few
16:59 -!- gridaphobe [~gridaphob@cpe-74-68-151-24.nyc.res.rr.com] has quit [Quit:
Leaving]
17:03 < tcpNut> http://pastebin.com/qjwGz8cv
17:03 < tcpNut> Still the same error but I took your advice for the
interaces
17:03 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 240 seconds]
17:04 -!- fvbommel [~fvbommel_@86.86.15.250] has joined #go-nuts
17:04 < f2f> what is the error exactly?
17:05 < f2f> i see one thing that's done wrong, and that's a slicing of the
byt buffer:
17:06 < f2f> fmt.Println(err, string(byt[:n])) is correct
17:06 < f2f> as you've only read n bytes
17:08 < f2f> this works for me against ssh (i.e., i see ssh's greeting)
17:09 < tcpNut> okay. Let me try that and I will show you the printed
output in a moment
17:12 < tcpNut> http://pastebin.com/X4uqJPmb
17:12 < tcpNut> The code does'nt match the output exactly but the string
that I am talking about starts at read
17:13 < tcpNut> It should ahve read alot more than 4 bytes
17:14 < tcpNut> * 3 bytes
17:16 < f2f> i can reproduce your error
17:17 < tcpNut> okay. What did you have to do to reproduce it?
17:18 < f2f> find a telnet server :)
17:20 < tcpNut> haha well that is helpful
17:20 < tcpNut> Do you know why it is doing that? or are you just able to
reproduce the error :)
17:20 < f2f> only able to reproduce it.
17:21 < tcpNut> Its odd that it won't read it properly
17:22 < f2f> and that it works fine for ssh
17:22 < ww> you need line buffering for telnet i would think
17:22 < tcpNut> Yeah. I mean i could just write a shell script and have the
OS do it but It would be cool to not have to do that and let the library do it
17:22 < ww> read characters until you hit a \n\r
17:23 < tcpNut> <ww> that may work. But it is only reading 3 bytes.
Is that some sort of weird escape character that is in the middle of a word?
17:23 < f2f> tcpNut, what happens when you do 'ncat radix-pwr1 23'? prints
the same 3 chars
17:23 < tcpNut> <ww>It seems plausable but its just odd that I don't
thing we are getting to that point
17:24 -!- robteix [~robteix@ec2-174-129-247-164.compute-1.amazonaws.com] has
joined #go-nuts
17:24 < aiju> wait
17:25 < ww> f2f: good way to test the theory
17:25 < aiju> tcpNut: do you know about the "telnet protocol"?
17:26 < tcpNut> <aiju>I would assume that I do. Its pretty simple
17:26 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has quit [Remote
host closed the connection]
17:26 -!- Argue [~Argue@112.201.133.68] has quit [Quit: Leaving]
17:26 < tcpNut> <aiju> Unless I am missing an underlying component
17:27 < aiju> it's rather complex actually
17:27 < tcpNut> <f2f> I do get garbage when i run your ncat command
17:27 < aiju> so you just don't implement the telnet protocol
17:28 < tcpNut> <aiju> is there a way then to read off of a socket
that is writing to port 23 that is using the telnet protocol?
17:28 < skelterjohn|work> telnet has a protocol?
17:28 < aiju> tcpNut: implement the telnet protocol
17:28 < aiju> skelterjohn|work: haha
17:28 < aiju> http has a protocol?
17:28 < aiju> although it's a common (and weird) misconception
17:28 < skelterjohn|work> tcpNut: btw when you do "<someone> msg" it
looks like you're quoting them rather than talking to them
17:29 < ww> just don't send \377 and assume the connection is 7bit, for now
17:29 < tcpNut> skelterjohn|work: sorry haha. New to using IRC
17:29 < skelterjohn|work> <tcpNut> skelterjohn|work: sorry haha. New
to using IRC
17:29 < skelterjohn|work> ^ that's what a copy/paste does for me
17:30 < aiju> tcpNut: why do you need telnet?
17:30 < aiju> ah your remote end is telnet
17:30 < tcpNut> I am interfacing with a server that is running telnet
17:30 < tcpNut> exactly
17:30 < aiju> then you need some bits of the protocol
17:31 < ww> actually this brings up something...
17:31 < ww> we have no expect-like library do we with go yet?
17:31 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping
timeout: 255 seconds]
17:31 < aiju> maybe you can remove all the control messages somehow
17:31 < aiju> ww: Read and Write?
17:32 < tcpNut> ww: yeah read and write would pretty much solve that problem
17:32 < ww> aiju: ever so helpful as usual. you are a saint.
17:32 -!- huin [~huin@91.84.179.118] has joined #go-nuts
17:32 < aiju> ww: glad i could help you
17:32 < tcpNut> aiju: how many control messages are sent back from port 23
then?
17:33 < tcpNut> aiju: would those three bits be control messages sent when I
try to connect?
17:33 < aiju> tcpNut: apparently telnet does some sort of option negotiation
17:34 < tcpNut> aiju: nice... options. Is there a way to pad that by using
a write first instead of read that will pad those options into the socket that is
expecting the telnet connection?
17:34 < aiju> pardon, what?
17:35 < aiju> tcpNut: i think the server tells you what options it wants
17:35 < aiju> and you grant or reject the request
17:35 < ww> i don't think the options are necessarily have to be at the
beginning of the connection...
17:35 < tcpNut> aiju: So i need to find out what those options are just to
connect?
17:35 < aiju> http://www.faqs.org/rfcs/rfc854.html
17:36 < aiju> tcpNut: the byte 255 starts a command
17:36 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has joined
#go-nuts
17:36 < ww> try this: send back that three byte thingy over the connection
17:37 < ww> the remote end will treat that as an acknowledgement
17:37 < aiju> that's a bad idea
17:37 < aiju> request is 253/254 and acknowledgement is 251/252
17:38 < ww> actually... you're right, but a different reason
17:38 < ww> just ignore, or nack (is there a nack?)
17:38 < ww> "if a party receives what appears to be a request to enter some
mode it is already in, the request should not be acknowledged."
17:38 < aiju> ww: yeah
17:38 < aiju> 252 is nack
17:38 < ww> so pretend you're already in whatever state it asks you to be in
17:38 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has joined
#go-nuts
17:38 < ww> and cross your fingers, always send nack
17:38 < aiju>
http://thoughtproject.com/Libraries/Telnet/Reference/Options.htm
17:39 < tcpNut> aiju: so basically just send byte 255 in a write and see
what happens
17:39 < aiju> tcpNut: no
17:39 < aiju> tcpNut: print out what you are receiving
17:39 < aiju> and look what it's asking you for
17:39 < ww> ... and then send 252
17:39 < aiju> see that list
17:39 < aiju> ww: c'mon, just look what it's asking for
17:39 < aiju> no need to deny "echo"
17:39 < ww> deny == i am already echoing stop pestering me
17:40 < ww> but yes, lots o' printf
17:40 < aiju> i have no clue how forgiving telnet servers are
17:40 < ww> can't argue with that
17:41 < ww> or... you could not bother messing around with the telnet
protocol and implement expect kinds of things on top of some popen
17:42 < tcpNut> aiju: this is what I am getting: 255 251 1
17:42 < ww> then just spawn /usr/bin/telnet
17:42 < tcpNut> ww: haha I am actually doing that in a shell script. I am
calling expect and then the shell script
17:42 < ww> tcpNut: here' what you do...
17:43 < ww> run tcpdump -X whateverhost port 23
17:43 < ww> telnet to it using the real telnet...
17:43 < ww> see what the real telnet sends in response to that undocumented
option
17:43 < ww> do that
17:43 -!- Fish- [~Fish@9fans.fr] has joined #go-nuts
17:44 -!- moraes [~moraes@189.103.188.201] has quit [Quit: Leaving]
17:45 < ww> s/undocumented/start echo/
17:45 < ww> the 251 is "start"
17:45 < ww> the 1 is "echo"
17:45 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping
timeout: 258 seconds]
17:45 < ww> to which i would be tempted to respond 252 "stop bothering me"
17:47 < tcpNut> ww: that is a good idea. So basically I have to read and
write back a whole lot of acks to do this properly
17:48 < skelterjohn|work> i really thought that telnet had no protocol -
just send and receive characters
17:49 < tcpNut> skelterjohn: that was my thought as well
17:52 < kergoth> options regarding the terminal are negotiated. have to be
careful not to get into an option negotiation loop. it's not that complex a
protocol though really. i remember doing it as a learning exercise in C ages ago,
fun stuff
17:53 < tcpNut> kergoth: I remember doing the same thing years ago. It was
kind of mystical back then and I did'nt think I would have to go back to it
17:53 < kergoth> hehe
17:53 < tcpNut> :)
17:53 -!- Kahvi [5b9b57fc@gateway/web/freenode/ip.91.155.87.252] has joined
#go-nuts
18:00 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has quit [Quit:
Textual IRC Client: http://www.textualapp.com/]
18:00 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has joined
#go-nuts
18:01 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has quit
[Client Quit]
18:01 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has joined
#go-nuts
18:03 -!- dgnorton [~dgnorton@97.65.135.112] has joined #go-nuts
18:04 -!- Kahvi [5b9b57fc@gateway/web/freenode/ip.91.155.87.252] has quit [Ping
timeout: 252 seconds]
18:04 < dgnorton> gomake is a shell script ... recomendations for building
projects on Windows?
18:05 < dgnorton> (other than "switch to *nix" :) )
18:07 -!- meling [~meling@100.81-167-33.customer.lyse.net] has joined #go-nuts
18:07 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has joined #go-nuts
18:08 -!- virtualsue [~chatzilla@nat/cisco/x-xbjcdfomeukxmjgn] has quit [Ping
timeout: 246 seconds]
18:10 < skelterjohn|work> dgnorton: goinstall
(http://golang.org/cmd/goinstall) and gb (http://go-gb.googlecode.com) can build
on windows
18:14 -!- lumos [~lumos@host-92-20-182-193.as13285.net] has joined #go-nuts
18:14 < lumos> hello.
18:14 < lumos> can I please use google go without a garbage collector
18:14 < lumos> instructions needed
18:14 < aiju> no
18:14 < skelterjohn|work> you can turn off the garbage collector
18:14 < aiju> it's simply no - what the fuck
18:14 < skelterjohn|work> but you shouldn't
18:15 < lumos> ok skelter is stuff going to break like the arrays and
slices?
18:15 < lumos> how can i avoid these breakages
18:15 < skelterjohn|work> you can do manual memory management via cgo for
some of the stuff, but it would be complicated
18:15 < aiju> you can't turn off garbage collection without breaking
everything
18:15 < aiju> period
18:15 < skelterjohn|work> and things like variables escaping closures can't
be stopped
18:15 -!- virtualsue [~chatzilla@nat/cisco/x-yomevxlhcrpjcbbg] has joined #go-nuts
18:15 < skelterjohn|work> for that you need the garbage collector
18:15 < lumos> ok but i want to just allocate / delete on the heap
18:15 < skelterjohn|work> why
18:16 < lumos> to make something fast
18:16 < skelterjohn|work> and the garbage collector already does that
18:16 < lumos> ok but that wont work
18:16 < aiju> 1. tune the algorithm
18:16 < aiju> 2. tune some other code
18:16 < lumos> im doing audio
18:16 < lumos> at low latency
18:16 < aiju> 3. write C
18:16 < skelterjohn|work> lumos: you're finding problems before they exist
18:16 < lumos> no there is a problem we run at 0.755 ms
18:16 < Soak> I search the code editor with go syntax, I forget the name,
someone can help me please?
18:17 < lumos> interrupt rate
18:17 < skelterjohn|work> lumos: also see
http://blog.golang.org/2011/06/profiling-go-programs.html
18:17 < lumos> ok obviously this is not a systems programming language
18:17 < skelterjohn|work> you can make garbage collection fast if you write
your program carefully
18:17 < aiju> what the fuck is a systems programming language
18:17 < aiju> it seems to be a term created solely for trolling the shit out
of everyone
18:17 < skelterjohn|work> lumos: the "obvious" thing is that it isn't the
same kind of systems language you are used to
18:17 < lumos> skelter i dont want my thread to be interrupted with the GC
18:18 < skelterjohn|work> goroutines are cooperatively scheduled
18:18 < lumos> it's a rt thread
18:18 < skelterjohn|work> they are never interrupted
18:18 < aiju> skelterjohn|work: GC is independent of this
18:18 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat]
18:18 < skelterjohn|work> is that right? my mistake
18:18 < dlowe> lumos: you know, malloc() can take a long time, too.
Randomly.
18:18 < skelterjohn|work> anyway, read the blog post i linked
18:18 < skelterjohn|work> it's very enlightening
18:19 < lumos> dlowe: i am not mallocing in the middle of my thread
18:19 < skelterjohn|work> being careful about limiting allocations is no
harder than being careful about your own memory management
18:19 < lumos> i only bring malloced memory in through a ringbuffer
18:19 < aiju> lumos: then there is no GC
18:19 < aiju> or so i rememer
18:19 < lumos> and then release it through a ringbuffer
18:19 < lumos> a non-RT thread does the mallocing/freeing
18:19 < skelterjohn|work> i believe GC is triggered when you try to
allocate, yeah
18:20 < lumos> ok so Go cant do this stuff you are telling me to write C?
18:20 < skelterjohn|work> you are ignoring the advice given
18:20 < skelterjohn|work> there is nothing to be done for that.
18:20 < aiju> you can't turn off gc.
18:21 < lumos> which advice skelter, being careful? I don't rely that the
GC won't kick in whenever
18:21 < lumos> because it can change between runtime versions
18:21 < aiju> i have seen audio programs written in awk
18:21 < skelterjohn|work> it won't kick in if you don't allocate - my advice
was to read the blog post that i linked
18:21 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts
18:21 < lumos> I have to allocate
18:21 < skelterjohn|work> but you can control when that will be
18:22 < lumos> There's 2 threads. One that does and one that does not.
18:22 < lumos> in Go they seem to be stuck together
18:22 < skelterjohn|work> you can also be clever about when you allocate and
about reusing memory
18:22 < skelterjohn|work> like it discusses in the article i linked
18:22 < aiju> lumos: GC stops all threads iirc
18:22 < lumos> exactly aiju
18:22 < lumos> skelter does not see that
18:22 < aiju> that's due to the nature of the GC algorithm
18:22 < aiju> it's not easily fixable
18:23 < skelterjohn|work> lumos: i understand perfectly well that the GC
locks the world
18:23 < aiju> a better GC algorithm has been promised
18:23 < skelterjohn|work> but i also understand that you can do what the
linked article does
18:23 < jlaffaye> aiju: and regexp package! :p
18:23 < skelterjohn|work>
http://blog.golang.org/2011/06/profiling-go-programs.html in case it got too far
in the backscroll
18:23 < lumos> OK well I have a user interface thread that has plenty of
allocations and builds data structures, and then i have a RT thread which renders
and plays the data structures which were built in the other thread
18:23 < jlaffaye> skelterjohn|work: :D
18:24 < lumos> so I cant have the global garbage collector regime taking
over and stopping every thread
18:24 < lumos> therefore you dont have a systems programming language
18:24 < skelterjohn|work> you can turn it off and back on
18:24 < lumos> or anything close
18:24 < aiju> HAHAHAHA
18:24 < aiju> for CHRIST'S SAKE
18:24 < lumos> skelter i cant turn it off and back on
18:24 < lumos> the UI allocates
18:24 < aiju> what the fuck is a systems programming language
18:24 < skelterjohn|work> you can turn the GC off and back on
18:24 < aiju> a language with tunable GC?
18:24 < lumos> user causes allocations regularly
18:24 < lumos> the RT must not stop
18:24 < jlaffaye> aiju: I guess its C ;p
18:25 < skelterjohn|work> anyway, you're trying to bend go to do it the way
you do it already, rather than trying to figure out how go might best do it
18:25 < skelterjohn|work> which is valid, if lazy
18:26 < skelterjohn|work> but it doesn't merit blanket statements about what
go can or cannot do
18:26 < lumos> no skelter i am not bending, i am saying there is a simple
reality of dealing with RT threads
18:26 < lumos> how else do you expect to solve this
18:26 < lumos> if your GC stops the world
18:26 < lumos> don't play word games
18:26 < aiju> haha
18:26 < zozoR> go is faster than c++
18:26 < skelterjohn|work> did i mention that you can turn the GC off, and
then back on?
18:26 < skelterjohn|work> zozoR: that's silly =p C++ is as fast as you
program it to be
18:27 < zozoR> you havent seen my test?
18:27 < zozoR> ;D
18:27 < jlaffaye> skelterjohn|work: yup, but you forgot to post the link to
the blog post:)
18:27 < lumos> skelter: did i mention that user causes reallocations in the
UI/Editor thread regularly?
18:27 < zozoR> go does a for loop doing nothing better than C does
18:27 < skelterjohn|work> was it that counting for loop thing?
18:27 < zozoR> yeah
18:27 < lumos> while RT thread must remain steady
18:27 < aiju> "$language is faster than $language" is bullshit
18:27 < skelterjohn|work> lumos: and those won't trigger the GC if the GC is
off
18:27 < lumos> at all times
18:27 < zozoR> ofcourse aiju, thats like saying "perl is faster than perl"
18:27 < skelterjohn|work> lol
18:28 < zozoR> or "C is faster than C"
18:28 < lumos> skelter: then tell it to collect, when?
18:28 < aiju> *sigh*
18:28 < str1ngs> bash is faster then rc! :P
18:28 < zozoR> :D
18:28 < aiju> sure
18:28 < str1ngs> :)
18:28 < aiju> training a monkey on LSD to calculate is faster than bash
18:28 < aiju> I DON'T FUCKING CARE
18:28 < zozoR> Care fucking you?
18:28 -!- chadkouse [~Adium@rrcs-74-218-87-242.central.biz.rr.com] has joined
#go-nuts
18:28 < zozoR> im confused
18:28 < zozoR> : |
18:29 < aiju> lumos: you're not critizing, the language, you're critizing a
current, imperfect implementation
18:29 < aiju> -,
18:29 < lumos> i am criticizing the language directly
18:29 < aiju> no you are not
18:30 < schmichael> lumos: go is relatively new and lacks any sort of thread
prioritization or gc options. if your app requires those then you may want to
consider a different language
18:30 < lumos> the language should offer 100% even representation for both
garbage collected memory, manually allocated memory, GC'd threads, and non-GC
threads, alike
18:30 < lumos> to be a real systems language
18:30 < skelterjohn|work> there's nothing about the language that requires
global locks for GCing
18:30 < schmichael> go seems like an awkward language to build a gui editor
in, but i may have misunderstood your use case
18:30 < skelterjohn|work> and once again the "real systems language"
buzzword
18:30 < aiju> "systems language" is utter crap
18:31 < aiju> also, having a language with both GC and non-GC is a horribly
bad idea
18:31 < schmichael> "GC'd threads and non-GC threads"? what does that mean?
18:31 < aiju> a massive bugfest
18:31 < skelterjohn|work> one of go's nice bits is memory safety
18:31 < lumos> That's just a failure on the part of the designers of the
language to make it not perfectly handle my use case, there's no good scientific
reason why a language can't have all the possibilities of C, and also Go
18:31 < aiju> *sigh*
18:32 -!- russell_h [~russell_h@osuosl/staff/russellh] has quit [Ping timeout: 276
seconds]
18:32 < schmichael> you should probably create that language
18:32 < skelterjohn|work> go is memory safe
18:32 < skelterjohn|work> how could C be memory safe, scientifically?
18:32 < lumos> schmichael: non-Gc threads, as in threads which you have told
the garbage collector not to track
18:32 -!- russell_h [~russell_h@ash.osuosl.org] has joined #go-nuts
18:32 < aiju> lumos: that's not a language feature
18:32 < aiju> it's a runtime feature
18:33 < jlaffaye>
http://laughingsquid.com/comic-flowchart-on-how-to-deal-with-internet-arguments/
18:33 < lumos> skelter: you can have both. For example the unsafe memory
can be handled by a builtin keyword that has the appearance of an object
18:33 < aiju> s/builtin/bullshit/g
18:33 < lumos> through which you safely treat unsafe memory
18:33 < tcpNut> lumos: lol that seems to be how it works
18:33 < skelterjohn|work> lumos: in C everything is unsafe memory
18:34 < skelterjohn|work> you'd need a "safe" keywor
18:34 < skelterjohn|work> d
18:34 < lumos> Sure skelter, that's a creative idea, there's a lot of things
like that
18:34 < skelterjohn|work> it's funny that you'd take that suggestion
seriously
18:34 < f2f> lumos ==
http://hypergogue.net/wp-content/uploads/2010/12/Homer-complex-car.jpg
18:34 < f2f> :p
18:35 < tcpNut> f2f: lol
18:36 < zozoR> the garbage collector isnt that bad now is it : |
18:36 < skelterjohn|work> anyway, it's impossible to have only manual memory
management in go
18:36 < skelterjohn|work> not with memory-safety and closures
18:37 < skelterjohn|work> there are a lot of things that are moved to the
heap implicitly, since they can be referenced after the function as returned
18:37 < Namegduf> lumos: What do you mean, "no scientific reason"?
18:37 -!- microtech [~quassel@96-42-218-124.dhcp.roch.mn.charter.com] has joined
#go-nuts
18:38 < Namegduf> There's perfectly good reasons that those things are bad
in Go, as is, which is what matters. Everything has costs, if only in complexity.
18:38 < skelterjohn|work> also with regular pointers (forgetting about
closures) it's impossible to do perfect analysis of when a pointer may or may not
be used again
18:38 < Namegduf> (And complexity costs are expensive)
18:38 < f2f> go is a failure as far as formal language theory is concerned
:)
18:38 -!- `micro` [~quassel@96-42-218-124.dhcp.roch.mn.charter.com] has quit [Ping
timeout: 276 seconds]
18:39 < Namegduf> f2f: Perhaps, but the people who pretend to be talking
formal language theory for an excuse to insist on featuritis are irritating.
18:39 < zozoR> go gets the job done. go is awesome
18:39 < zozoR> amen
18:39 < zozoR> :3
18:39 < skelterjohn|work> Namegduf: yeah, he's referring to a reddit thread
where someone used the term to do just that
18:40 < f2f> right
18:41 -!- nictuku [~nict@84-72-7-79.dclient.hispeed.ch] has joined #go-nuts
18:41 -!- nictuku [~nict@84-72-7-79.dclient.hispeed.ch] has quit [Changing host]
18:41 -!- nictuku [~nict@unaffiliated/nictuku] has joined #go-nuts
18:41 < skelterjohn|work> lumos: anyway, go is not ideal for RT systems - it
performs the best when there is a lot of IO to balance. it's phenomenal at
switching contexts quickly when io is blocking
18:42 < skelterjohn|work> of course, with IO there are no RT guarantees to
be made, right off the bat
18:42 < skelterjohn|work> networked IO that is
18:42 < aiju> Go has no support for my immutale core firewall API cloud
18:42 < skelterjohn|work> which is go's original target
18:43 < Namegduf> A language doesn't have to meet every possible use case
for everyone in every way to be a good language.
18:43 < zozoR> if you want RT call a chunk of c code with cgo and get over
it?
18:43 < Namegduf> You can play games with the definition of "systems
language", but they're ultimately meaningless.
18:43 < skelterjohn|work> not even a good systems language
18:44 < f2f> define "good" language?
18:44 < skelterjohn|work> it reminds me of a thread in the bug reports for
python, maybe a decade ago. someone going on and on about how since python didn't
have multiple inheritance it couldn't be an object-oriented language
18:44 < lumos> why not just let me a) turn off GC per-thread b) malloc and
free ?
18:44 < aiju> lumos: because neither works
18:44 < aiju> i'm not making this up
18:44 < skelterjohn|work> i don't know that it makes sense to turn off GC
per thread
18:45 < Namegduf> The first one would require memory to be partioned per
thread or something
18:45 < Namegduf> Which it isn't
18:45 < skelterjohn|work> and if you only had manual memory management,
closures would not work
18:45 -!- dmg [~dmg@ip56513def.adsl-surfen.hetnet.nl] has joined #go-nuts
18:45 -!- allengeorge [~allengeor@c-67-180-21-185.hsd1.ca.comcast.net] has joined
#go-nuts
18:45 < zozoR> i didnt know that go had threads
18:45 < Namegduf> And which will have its own costs attached.
18:45 < skelterjohn|work> and they are part of the language (a super useful
one too)
18:45 < Namegduf> malloc and free violates the safety guarantees, which are
a lot of the point of the language.
18:45 < allengeorge> Is there a way I can optimize this code so that I don't
have to have two separate (but almost identical) blocks for TCP/UDP?
18:45 < allengeorge> https://gist.github.com/1134845
18:46 < aiju> allengeorge: io.Reader and io.Writer?
18:46 < Namegduf> It also doesn't work with closures.
18:46 < lumos> Namedguf I don't care if the core of some low latency rt
system is "unsafe"
18:46 < lumos> it's safe as far as the human can ensure
18:46 < lumos> or any help from computer can provide
18:46 < Namegduf> That's fine. Use another language for it.
18:46 < allengeorge> aiju: I'm not sure how IO Reader/Writer would apply in
this case (i.e. connection setup)
18:46 < Namegduf> Go is not targeted at hard realtime systems
18:46 < lumos> that's a bad attitude
18:46 < lumos> Go should be able to do it
18:46 < Namegduf> Why?
18:46 < skelterjohn|work> then turn off the GC, and use malloc and free to
allocate basic structures. you'll have to skip maps and channels though
18:47 < aiju> jesus christ
18:47 < aiju> Go is not a magical device
18:47 < Namegduf> Basically every single one of its goals is in conflict
with it.
18:47 < lumos> Namegdug because you would not use Go to implement a Garbage
collector
18:47 < Namegduf> You can't have safety, you can't have simplicity, you
can't have easy.
18:47 < lumos> that's what a systems language is supposed to be capable of
18:47 < Namegduf> I don't care about the word "systems language".
18:47 < lumos> and I want a systems programming language which is easier
than C++ and has a cleaned up syntax
18:47 < lumos> what I dont want is another language that you would not be
able to write a kernel in
18:47 < aiju> so now
18:48 < skelterjohn|work> lumos: in case you haven't noticed, every time you
state a requirement of what it means to be a "systems language", it's silly
18:48 < aiju> systems programming language == hard RT?
18:48 < aiju> what the fuck are you smoking?
18:48 < lumos> i didn't say Hard RT
18:48 < mkb218> so you want a subset of c++ then
18:48 < lumos> i said a thread which isn't stopped by the GC
18:48 < Namegduf> Hard RT is the only time you'd care about GC pauses
18:48 < aiju> lumos: IT'S NOT A LANGUAGE THING
18:48 < Namegduf> Really
18:48 < aiju> for the TENTH TIME
18:48 < Namegduf> Soft RT is allowed to be a little late on occasion
18:48 < lumos> it's a language thing cause you can't write a kernel in Go
18:48 < zozoR> SOMEONE IS WRONG ON THE INTERNET!
18:48 < aiju> lumos: i wrote a kernel in Go
18:49 < Namegduf> It's true.
18:49 < Namegduf> It was a bit of a pain
18:49 < Namegduf> But it was a kernel
18:49 < skelterjohn|work> really? link?
18:49 < Namegduf> And it was in Go
18:49 < Namegduf> No longer maintained, as it required updating for Go
language internal changes
18:49 < f2f> allengeorge: do not use ResolveTCPAddr, use ResolveAddr with a
Conn interface
18:49 < lumos> well look I would not want to use a kernel written in Go and
imagine trying to do fast video playback and everything when you've got this
global GC stopping all threasd
18:49 < lumos> thats not reasonable
18:49 < skelterjohn|work> sure, but i'm still curious
18:49 < lumos> you have to be able to do what I described
18:49 < aiju> skelterjohn|work: http://code.google.com/p/gofy/source/browse/
18:49 < aiju> it doesn't compile since like february
18:49 < cbeck> No, because that's not what Go is for
18:49 < lumos> controlling the GC per thread basis and doing manual
allocation in order to, for example, implement a memory allocator that a kernel
should have
18:50 < f2f> allengeorge: i.e. use the interface rather than the concrete
implementation
18:50 < Namegduf> Stop talking about GC per thread
18:50 < cbeck> "You can't really write a kernel in perl, so perl is useless"
18:50 < Namegduf> It is not a requirement for anything, it was a potential
solution you came up with.
18:50 < Namegduf> And a bad one.
18:50 < lumos> Clay is a real systems programming language and the syntax is
simple as Go
18:50 < aiju> then fucking use clay
18:50 < aiju> and leave us alone
18:50 < skelterjohn|work> lumos: if you wrote an OS in go, you'd get the
allocator for free since it comes with the go runtime
18:50 < lumos> why is the GC so good?
18:50 < Namegduf> If you haven't and can't answer that question
18:50 < Namegduf> Why are you even suggesting changes to it?
18:51 < Namegduf> If you can't answer that, then how can you evaluate it?
18:51 < Namegduf> But to attempt an answer: The GC provides both safety and
simplicity.
18:51 < skelterjohn|work> does gofy stand for anything besides the obvious?
18:51 < aiju> skelterjohn|work: i claim no credit for the name
18:51 < Namegduf> The "simplicity" provided becomes almost "practicality"
when it comes to heavy goroutine usage
18:51 < aiju> skelterjohn|work: http://gofy.cat-v.org/ official propaganda
page
18:52 < allengeorge> f2f: I don't see ResolveAddr - are you talking about
ResolveIPAddr?
18:52 < Namegduf> As managing memory in a multithreaded applicatoin is a
major PITA
18:52 < skelterjohn|work> oh, i was write about what it meant
18:52 < skelterjohn|work> goodie
18:52 < skelterjohn|work> right
18:52 < skelterjohn|work> jeez
18:53 < jessta> lumos: you can't really write a kernel in C anyway
18:53 < lumos> You don't need GC tracking at all levels, it's redundant.
For example if you implement a Vector class, you don't need the GC to track all of
the elements, you should manually memory allocate and the GC only needs to keep
track of the handle to the vector object, butnot its implementation, because its
implementation will be safe
18:53 < lumos> and designed for speed
18:54 < aiju> lumos: please learn about simplicity and sanity
18:54 < lumos> safe as in symmetrical
18:54 < lumos> with dealloc
18:54 < skelterjohn|work> lumos: yes that is how slices in go work
18:55 < lumos> It doesn't need to keep track of the elements the vector has,
unless it is a vector of a reference type
18:55 < skelterjohn|work> right
18:55 < lumos> i.e. a vector of Int should be untracked
18:55 < aiju> lumos: you can always do 9001 micro optimizations to
EVERYTHING
18:55 < skelterjohn|work> that's... over 9000!
18:56 < Namegduf> My key point is, Go is a perfectly good and wonderfully
simple language. It may not, because it actually focuses on being simple, be
perfect for all use cases. That's expected. Use another language in those cases.
If it doesn't count as a language by your definition, because it doesn't suppose
those use cases, that's not a problem.
18:56 < aiju> if you want software with perfect performance, write assembly
18:56 < tcpNut> skelterjohn: lol
18:56 < Namegduf> If you want a language that does everything for everyone
and whenever something isn't right, tacks on more features for that use case
18:56 < Namegduf> Then you are welcome to use C++
18:56 < Namegduf> But you can't have "works for everything" and "simple,
cleaned up" in one language
18:57 < lumos> aiju that's not a reasonable recommendation for programmers
who need to read 5000 pages of intel optimization manuals in order to do a good
job, when instead rather llvm will do it for you automatically
18:57 < skelterjohn|work> i bet you could create macros and use templates to
compile something that looked very much like go in C++
18:57 < Namegduf> Or, if you can, it doesn't exist and Go isn't it. :P
18:57 < aiju> lumos: read faster, drink more coffee
18:57 < f2f> allengeorge: no, i was wrong, there's no generic 'ResolveAddr'
and Listen for tcp and udp, you're probably as close to norm as possible. see how
'Listen' and 'ListenPacket' are implemented:
18:57 < f2f> http://golang.org/src/pkg/net/dial.go?s=2019:2076#L73
18:58 < skelterjohn|work> wans't nsf working on an LLVM compiler one day?
18:58 < skelterjohn|work> not anymore, obv
18:58 < f2f> no generic interface for tcp and udp listeners
18:58 < ww> have nae seen nsf around here the last while
18:58 < aiju> skelterjohn|work: that was for a different language
18:58 < aiju> ww: yeah
18:58 < aiju> only recently
18:58 < skelterjohn|work> i mean for go - i know he had his toy language too
18:59 < Namegduf> On kernels and stop the world GC:
18:59 < Namegduf> You don't have to have a stop the world GC to have a GC.
18:59 < Namegduf> So you could write a kernel which didn't stop everything
to run GC. You'd just need a better GC.
18:59 < allengeorge> f2f: Thanks - I appreciate the pointer to the code as
well
19:00 < mkb218> i'll stop the world and gc with you
19:00 < aiju> Namegduf: i've been saying this for along time
19:00 < skelterjohn|work> mkb218: :)
19:00 < f2f> mkb218 :)
19:00 < aiju> in soviet russia, world stops you
19:00 < skelterjohn|work> aiju: :(
19:00 < dmg> I'm trying to find cgo documentation, specifically on
marshalling buffers to and fro. I'm trying to write a wrapper for liblzo (a
compression lib)
19:01 < zozoR> marshmellowing
19:01 < skelterjohn|work> dmg: do you just want to pass arrays back and
forth?
19:01 < mkb218> unsafe.Pointer(&(aSlice[0]))
19:01 < skelterjohn|work> i've started a go-wiki page on cgo tricks, but
i've just talked about strings so far
19:01 < skelterjohn|work> but yeah, what mkb218 said
19:01 < dmg> skelter: That looks exactly like what I needed, thanks.
19:02 < skelterjohn|work> heh, yw i guess
19:02 < dmg> I had already found 'GoBytes' by grepping through the source
tree, but I couldn't find anything indicating how to go the other way.
19:02 < f2f> allengeorge: np. sorry about the confusion. Dial() is more
generic, but Listen() is specific. my bad.
19:02 < skelterjohn|work> there is a GoBytes?
19:02 < dmg> I think so.
19:02 < skelterjohn|work> I just knew about GoString and CString
19:02 -!- chadkouse [~Adium@rrcs-74-218-87-242.central.biz.rr.com] has quit [Quit:
Leaving.]
19:02 < skelterjohn|work> is there a CBytes too?
19:02 < f2f> dmg: https://github.com/hwhw/golzo/blob/master/golzo.go ?
19:03 < skelterjohn|work> though it'd just be &theGoBytes[0]
19:03 < allengeorge> f2f: no worries :)
19:03 < dmg> skelterjohn|work: No CBytes, that's what I needed :)
19:03 < dmg> runtime<weirddot>gobytes is defined in runtime.h
19:04 < gnuvince_> Can anyone help me figure out why this code doesn't read
correctly from the buffer? http://www.ideone.com/YNLxZ
19:04 < skelterjohn|work> dmg: can you be more specific about what you want
to do? like "correctly convert an X in go to a Y in C"
19:04 -!- niemeyer [~niemeyer@72-254-17-213.client.stsn.net] has quit [Ping
timeout: 240 seconds]
19:06 < dmg> skelterjohn|work: Basically a []byte into a 'char *'/size_t I
can pass to the compression function, and then convert the "char *output" and new
buffer size back into a slice.
19:06 < skelterjohn|work> do you want the char* to be treated as a string?
19:07 < skelterjohn|work> ie null terminated?
19:07 < dmg> skelterjohn|work: No, it's arbitrary data.
19:07 < dmg> f2f: hrm... I didn't find that when I was googling
19:07 < skelterjohn|work> i'm updating the wiki page with something about
this
19:08 < skelterjohn|work> 5 min
19:08 -!- chadkouse [~Adium@rrcs-74-218-87-242.central.biz.rr.com] has joined
#go-nuts
19:08 < dmg> well, there goes that weekend project...
19:08 < tcpNut> skelterjohn: thanks
19:11 < dmg> ah nope, I'm implementing the Reader and WriterCloser
interfaces..
19:11 < dmg> good, I'll still have something to play with
19:12 < hsoj> anybody using any of the sqlite3 bindings?
19:12 < dmg> hsoj: I used the http://code.google.com/p/gosqlite/ ones
recently
19:13 -!- Kahvi [5b9b57fc@gateway/web/freenode/ip.91.155.87.252] has joined
#go-nuts
19:14 < skelterjohn|work> actually... not completely sure how to do
something
19:14 < skelterjohn|work> you get a *Ctype_int from a C.Foo() call, and you
know it has length n (stored in a variable, not known at compile time)
19:14 < skelterjohn|work> how do you turn that into a slice with the right
capacity?
19:15 < dmg> skelterjohn|work: Isn't that what GoBytes does?
19:16 < dmg> takes a buffer and a length and returns a []bytes ?
19:16 < zozoR> skelterjohn, where is yor wiki page?
19:22 < skelterjohn|work> http://code.google.com/p/go-wiki/w/list
19:22 < skelterjohn|work> dmg: but we want stuff other than []bytes
19:22 < skelterjohn|work> []byte, rather
19:23 < skelterjohn|work> i know how i could write the function to translate
in C
19:23 < skelterjohn|work> but i'd rather do it on the go side
19:23 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
19:24 < f2f> gnuvince, several things are wrong, for one, the ReadWriter is
using different buffers
19:25 < f2f> then err.String() panics because err is nil
19:25 < f2f> and finally i had to flush() to make sure the bytes went out on
a pipe.
19:25 < f2f> this works for me:
19:25 < f2f> http://www.ideone.com/Sxr0q
19:26 < f2f> i'm not sure whether readwriter's behaviour should be as you
expect it. i'm looking at the documentation and it tells me that it simply
redirects reads and writes to the respective reader and writer. i'll have to see
if i can use the same buffer for the two
19:27 -!- pearle [~pearle@blk-224-181-222.eastlink.ca] has joined #go-nuts
19:28 < f2f> yes, this works with just one buffer:
19:28 < f2f> http://www.ideone.com/RAk1B
19:31 -!- virtualsue [~chatzilla@nat/cisco/x-yomevxlhcrpjcbbg] has quit [Ping
timeout: 260 seconds]
19:31 < f2f> i notice ideone.go's pastie is using a pretty old go revision
19:33 -!- Kahvi [5b9b57fc@gateway/web/freenode/ip.91.155.87.252] has quit [Ping
timeout: 252 seconds]
19:33 < hsoj> dmg: has it sufficed for you?
19:35 < dmg> hsoj: Yes, it worked fine. The things I needed to add were a
'last_insert_rowid' function (easy) and turned the fsync pragma off to speed up my
writes.
19:36 < dmg> (I was importing 21 million records and the fsyncs were sqlite3
down way too much)
19:36 < hsoj> hrm
19:36 < dmg> that's not a problem with the go bindings, though, but with
sqlite itself.
19:36 -!- niemeyer [~niemeyer@72-254-17-213.client.stsn.net] has joined #go-nuts
19:36 < dmg> s/sqlite/slowing sqlite/
19:37 -!- chomp [~chomp@dap-209-166-184-50.pri.tnt-3.pgh.pa.stargate.net] has
joined #go-nuts
19:37 -!- virtualsue [~chatzilla@nat/cisco/x-dmpzrdvfdrpetued] has joined #go-nuts
19:38 < hsoj> ah damn, this is a fork of what I've been using
19:38 < cbeck> Anyone using eclipse for go dev? Can you recommend a good
plugin?
19:38 < skelterjohn|work> there is goclipse
19:38 < hsoj> guess I need to only use sqlite for extraction of data
19:38 < skelterjohn|work> but i don't use it
19:38 < hsoj> vim + gocode has been tits
19:38 < skelterjohn|work> though... i am a committer for the goclipse
project, somehow :s
19:39 < hsoj> that w/ my bindings to goenv, I never leave vim
19:39 < nicka> vim+gocode is great
19:39 < skelterjohn|work> only issue is you'd have to use vim
19:39 < cbeck> I've been using go+emacs, which has been just fine
19:39 < hsoj> I love vim
19:39 < hsoj> so that's no problme
19:39 < hsoj> problem*
19:39 < cbeck> But I had to use eclipse for a big project that just ended,
and thought I'd try it
19:40 < nicka> skelterjohn, you mean you GET to use vim
19:40 < skelterjohn|work> i think goclipse has gocode built in somehow...
19:40 < skelterjohn|work> not too clear on that though
19:41 < cbeck> Ahh, ok
19:41 < cbeck> I must have found an old page for goclipse before
19:41 < nicka>
http://code.google.com/p/gofy/source/browse/kernel/syscall.go#64 is this idiomatic
go?
19:42 < cbeck> It said last updated a year ago or so
19:42 < skelterjohn|work> nicka: rofl
19:42 < cbeck> bahahahahaha
19:42 < nicka> it's a very amusing codebase
19:42 < skelterjohn|work> http://code.google.com/p/goclipse/
19:43 < cbeck> skelterjohn|work: Yup, found the right one
19:45 < Halavanja> aiju: Thanks again. I got the telnet portion working
once I got through negoations
19:48 < aiju> are you the same guy as earlier?
19:48 < aiju> thesomething?
19:48 < Halavanja> yeah
19:54 -!- wrtp [~rog@host-92-30-134-53.as13285.net] has quit [Quit: wrtp]
19:58 -!- robteix [~robteix@ec2-174-129-247-164.compute-1.amazonaws.com] has quit
[Quit: Leaving]
19:59 -!- nictuku [~nict@unaffiliated/nictuku] has quit [Quit: .]
19:59 < dgnorton> skelterjohn: so ... goinstall go-gb.googlecode.com/hg/gb?
20:01 -!- allengeorge [~allengeor@c-67-180-21-185.hsd1.ca.comcast.net] has quit
[Quit: allengeorge]
20:04 < dmg> Hmm.. any suggestions on casting between integer types in cgo
when one of them is in a typedef?
20:04 < dmg> cannot use _Ctype_uint(len(b)) (type _Ctype_uint) as type
_Ctypedef_lzo_uint in function argument
20:05 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has joined
#go-nuts
20:05 < qeed> doesnt (C.lzo_uint) work
20:06 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat]
20:06 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has quit [Ping
timeout: 258 seconds]
20:07 < dmg> qeed: ah yes, it does. I was stuck on the syntax due to the
typedef being in there.
20:07 < dmg> thanks
20:07 -!- replore_ [~replore@ntkngw133234.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit
[Remote host closed the connection]
20:08 -!- clr_ [~colin@97-112-204-183.frgo.qwest.net] has joined #go-nuts
20:10 -!- alehorst [~alehorst@189.58.12.173.dynamic.adsl.gvt.net.br] has quit
[Quit: Leaving.]
20:16 -!- alehorst [~alehorst@189.58.12.173.dynamic.adsl.gvt.net.br] has joined
#go-nuts
20:17 -!- kergoth [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Ping
timeout: 255 seconds]
20:20 -!- Fish- [~Fish@9fans.fr] has quit [Quit: WeeChat 0.3.5]
20:22 -!- artefon [~thiago@187.58.6.55] has joined #go-nuts
20:22 -!- tncardoso [~thiagon@150.164.2.20] has quit [Remote host closed the
connection]
20:29 -!- artefon [~thiago@187.58.6.55] has quit [Ping timeout: 255 seconds]
20:29 -!- keithcascio [~keithcasc@nat/google/x-edxntagshzfypehl] has joined
#go-nuts
20:40 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has joined
#go-nuts
20:42 -!- artefon [~thiago@189.115.129.93] has joined #go-nuts
20:45 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Remote host closed
the connection]
20:46 -!- photron [~photron@port-92-201-46-248.dynamic.qsc.de] has quit [Read
error: Operation timed out]
20:47 < Halavanja> is there any way to reset a byte array to all zeros?
20:49 < huin> other than a simple for-loop or making a new one? i doubt it
20:49 < huin> a for-loop seems like quite a sane choice
20:49 < huin> for i := range byteArray { byteArray[i] = 0 }
20:50 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has quit [Remote
host closed the connection]
20:50 < Halavanja> yeah that was what I was thinking of doing I just wanted
to make sure there was no convenience function for it before I went and did that.
20:56 -!- miker2 [~miker2@64.55.31.190] has quit [Ping timeout: 252 seconds]
20:57 < f2f> the convenience function is make([]byte, x) ;)
20:58 < Halavanja> yeah i could just keep remaking the same byte array as
well. I sometimes forget that go is garbage colleted so well haha
21:02 < huin> of course that's a somewhat expensive operation to re-malloc
memory
21:02 < huin> if you don't care about performance then, hey :)
21:06 < Halavanja> Optimal performance is always better but I am just trying
to get a socket read to be correct so I thought of trying to drain the byte array
buffer that way
21:06 < huin> you don't need to clear a buffer to do that
21:06 < huin> e.g:
21:07 < huin> n, err := sock.Read(p)
21:07 < huin> p[:n] is the part of the buffer that contains the just-read
data
21:08 < Halavanja> DOH! that is correct! haha . I can just use that
instead
21:08 < Halavanja> good catch!
21:09 -!- TheMue [~FMueller@p5DDF7AFD.dip.t-dialin.net] has quit [Quit: leaving]
21:09 -!- nteon [~nteon@ool-4a58e438.dyn.optonline.net] has quit [Ping timeout:
260 seconds]
21:10 -!- dmg [~dmg@ip56513def.adsl-surfen.hetnet.nl] has quit [Quit: leaving]
21:20 < skelterjohn> dgnorton: yes
21:21 < skelterjohn> either that or: goinstall
github.com/skelterjohn/go-gb/gb
21:21 < skelterjohn> depending if you want weekly (googlecode version) or
release (github version) compatibility
21:22 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has quit [Quit: Leaving.]
21:23 -!- raylu [raylu@173-228-31-111.static.sonic.net] has quit [Ping timeout:
252 seconds]
21:23 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has quit [Quit:
Textual IRC Client: http://www.textualapp.com/]
21:24 -!- raylu [raylu@173-228-31-111.static.sonic.net] has joined #go-nuts
21:24 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
21:25 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by
peer]
21:29 -!- huin [~huin@91.84.179.118] has quit [Quit: bedtime]
21:32 -!- mkrautz [~mkrautz@poipu/developer/krejler] has quit [Remote host closed
the connection]
21:35 -!- pheuter [18a121d1@gateway/web/freenode/ip.24.161.33.209] has joined
#go-nuts
21:35 < pheuter> How do I make a POST request to an arbitrary url with
params and get the response back ?
21:35 -!- erus` [~chatzilla@cpc2-gill2-0-0-cust701.basl.cable.virginmedia.com] has
quit [Ping timeout: 255 seconds]
21:37 -!- erus` [~chatzilla@cpc2-gill2-0-0-cust701.basl.cable.virginmedia.com] has
joined #go-nuts
21:38 -!- Nisstyre [~nisstyre@infocalypse-net.info] has quit [Ping timeout: 255
seconds]
21:39 -!- fs111 [~fs111@fs111.0x20.be] has quit [Ping timeout: 260 seconds]
21:39 -!- noodles775 [~michael@canonical/launchpad/noodles775] has quit [Quit:
leaving]
21:40 < Halavanja> depending on how you are using the libraries you can send
a client post and check back return codes for status 200, 404 etc
21:40 < pheuter> There is no way to get response as string?
21:40 < f2f> pheuter, http://golang.org/pkg/http/#Client.Post
21:40 < Halavanja> what f2f says
21:42 < pheuter> it calls on a Client pointer, where do i get one?
21:43 < f2f> that's the full documentation page, give it a read
21:44 -!- Halavanja [~chatzilla@mcswl207.mcs.anl.gov] has quit [Quit: ChatZilla
0.9.87 [Firefox 5.0/20110622232440]]
21:44 < f2f> it says that the default client is usable as it is
"new(http.Client)", and also that http.Post() is a wrapper around DefaultClient
21:45 < f2f> so you can use http.Post directly
21:47 < pheuter> ah, i didnt notice that, thank you
21:48 -!- chomp [~chomp@dap-209-166-184-50.pri.tnt-3.pgh.pa.stargate.net] has quit
[Quit: Leaving]
21:49 < pheuter> is it conventional to do make(http.Values) ?
21:49 < f2f> it's indented as if it's a method of Response. confused me
too.
21:49 < pheuter> i'd like to send params along with the post request
21:49 < pheuter> and PostForm takes values
21:50 -!- krolaw [~krolaw@203.100.208.229] has quit [Ping timeout: 250 seconds]
21:51 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts
21:51 < f2f> pheuter, see this example from the test suite:
21:51 < f2f> http://golang.org/src/pkg/http/client_test.go#L113
21:51 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has quit [Quit: ZZZZZzzzzz]
21:53 < f2f> hm. i sent my resume to the guys looking for go programmers a
week ago. didn't hear back. i wonder if i should resend it...
21:53 < pheuter> f2f: thank yoi
21:54 < f2f> pheuter, happy hacking :)
21:54 < pheuter> :)
22:01 -!- nekoh [~nekoh@dslb-188-107-174-171.pools.arcor-ip.net] has quit [Quit:
nekoh]
22:01 -!- artefon [~thiago@189.115.129.93] has quit [Quit: bye]
22:07 -!- franciscosouza [~francisco@201.7.186.67] has quit [Quit: franciscosouza]
22:08 -!- ronnyy [~quassel@p4FF1C43C.dip0.t-ipconnect.de] has joined #go-nuts
22:10 -!- franciscosouza [~francisco@201.7.186.67] has joined #go-nuts
22:11 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has joined
#go-nuts
22:20 -!- nteon [~nteon@ool-4a58e438.dyn.optonline.net] has joined #go-nuts
22:23 < pheuter> ioutil.ReadAll(resp.Body) should return the response body
as a buffer, right?
22:24 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has joined
#go-nuts
22:26 -!- iant [~iant@nat/google/x-zutslnsaszefquhe] has quit [Ping timeout: 264
seconds]
22:29 < exch> func ReadAll(r io.Reader) ([]byte, os.Error)
22:29 -!- erus` [~chatzilla@cpc2-gill2-0-0-cust701.basl.cable.virginmedia.com] has
quit [Quit: ChatZilla 0.9.87 [Firefox 5.0.1/20110707182747]]
22:30 -!- ShadowIce` [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
22:38 -!- replore [~replore@ntkngw133234.kngw.nt.ftth.ppp.infoweb.ne.jp] has
joined #go-nuts
22:39 -!- pheuter [18a121d1@gateway/web/freenode/ip.24.161.33.209] has quit [Quit:
Page closed]
22:47 -!- ronnyy [~quassel@p4FF1C43C.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
22:51 -!- pothos_ [~pothos@111-240-172-223.dynamic.hinet.net] has joined #go-nuts
22:53 -!- pothos [~pothos@111-240-172-223.dynamic.hinet.net] has quit [Ping
timeout: 260 seconds]
22:54 -!- Bigbear1 [~Cody@d173-181-33-58.abhsia.telus.net] has joined #go-nuts
22:56 -!- virtualsue [~chatzilla@nat/cisco/x-dmpzrdvfdrpetued] has quit [Ping
timeout: 246 seconds]
22:59 -!- zhujo01
[jon.zhu@CPE00222d5acb80-CM00222d5acb7d.cpe.net.cable.rogers.com] has quit []
23:01 -!- hargettp [~hargettp@pool-71-174-131-129.bstnma.east.verizon.net] has
joined #go-nuts
23:04 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has quit [Quit:
wallerdev]
23:07 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has joined
#go-nuts
23:08 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
23:08 -!- Bigbear1 [~Cody@d173-181-33-58.abhsia.telus.net] has quit [Ping timeout:
264 seconds]
23:10 -!- pjacobs [~pjacobs@66.54.185.130] has quit [Ping timeout: 260 seconds]
23:10 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.]
23:15 -!- replore [~replore@ntkngw133234.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit
[Read error: Connection reset by peer]
23:15 -!- tavis_rain [~tavisb@24-104-129.146.hfc.mediarain.com] has quit [Read
error: Connection reset by peer]
23:17 -!- Bigbear1 [~Cody@d173-181-33-58.abhsia.telus.net] has joined #go-nuts
23:18 -!- miker2 [~miker2@pool-96-245-224-59.phlapa.fios.verizon.net] has joined
#go-nuts
23:19 -!- c00w [~colin@97-112-204-183.frgo.qwest.net] has quit [Quit: Ex-Chat]
23:23 -!- niemeyer [~niemeyer@72-254-17-213.client.stsn.net] has quit [Ping
timeout: 240 seconds]
23:24 -!- clr_ [~colin@97-112-204-183.frgo.qwest.net] has joined #go-nuts
23:36 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has quit
[Quit: Leaving...]
23:38 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has quit [Quit:
wallerdev]
23:39 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has joined
#go-nuts
23:53 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
23:56 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has quit [Quit:
wallerdev]
23:57 -!- wallerdev [~wallerdev@c-68-60-43-43.hsd1.mi.comcast.net] has joined
#go-nuts
--- Log closed Wed Aug 10 00:00:20 2011