--- Log opened Tue Jul 13 00:00:12 2010 00:01 -!- artefon [~thiago@189.107.212.6] has joined #go-nuts 00:06 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has joined #go-nuts 00:09 -!- adu [~ajr@softbank220043139062.bbtec.net] has joined #go-nuts 00:10 < plexdev> http://is.gd/dpFYS by [Rob Pike] in go/src/pkg/fmt/ -- tweak comment for %#X 00:13 -!- photron [~photron@port-92-201-115-153.dynamic.qsc.de] has quit [Ping timeout: 276 seconds] 00:15 -!- geocalc [~geobsd@lns-bzn-26-82-254-89-236.adsl.proxad.net] has quit [Quit: Lost terminal] 00:17 -!- prip_ [~foo@host163-125-dynamic.36-79-r.retail.telecomitalia.it] has quit [Ping timeout: 260 seconds] 00:17 -!- gnuvince [~vince@70.35.167.149] has quit [Ping timeout: 248 seconds] 00:18 -!- gnuvince_ [~vince@70.35.167.149] has quit [Ping timeout: 240 seconds] 00:27 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 00:27 < plexdev> http://is.gd/dpGLZ by [Andrew Gerrand] in go/misc/dashboard/godashboard/ -- dashboard: use jQuery Autocomplete plugin from Google AJAX Libs API 00:27 < plexdev> http://is.gd/dpGM5 by [Robert Griesemer] in 2 subdirs of go/src/pkg/ -- container/vector: rename Data() -> Copy() 00:31 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit [Ping timeout: 265 seconds] 00:35 -!- mikespook [~mikespook@58.62.5.54] has joined #go-nuts 00:36 -!- prip [~foo@host163-125-dynamic.36-79-r.retail.telecomitalia.it] has joined #go-nuts 00:37 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined #go-nuts 00:39 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts 00:44 < plexdev> http://is.gd/dpHuK by [Andrew Gerrand] in go/src/pkg/websocket/ -- websocket: fix comment indentation 00:44 < plexdev> http://is.gd/dpHuN by [Peter Mundy] in go/src/pkg/os/ -- os: Use TempFile with default TempDir for temp test files 00:44 < plexdev> http://is.gd/dpHv5 by [Russ Cox] in go/src/pkg/debug/proc/ -- fix build 01:01 < plexdev> http://is.gd/dpIpV by [Andrew Gerrand] in go/src/pkg/runtime/tiny/ -- runtime/tiny: style and doc tweaks 01:15 -!- Ginto8 [~ginto8@pool-72-82-235-34.cmdnnj.fios.verizon.net] has joined #go-nuts 01:24 -!- adu [~ajr@softbank220043139062.bbtec.net] has quit [Quit: adu] 01:33 -!- ExtraSpice [~ExtraSpic@88.118.32.225] has quit [Ping timeout: 240 seconds] 01:35 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.2] 01:43 -!- gnuvince [~vince@70.35.166.98] has joined #go-nuts 01:47 -!- binarypie [~binarypie@c-24-6-151-185.hsd1.ca.comcast.net] has joined #go-nuts 01:56 -!- artefon [~thiago@189.107.212.6] has quit [Quit: bye] 02:08 -!- jdp [~gu@24.238.32.162.res-cmts.segr.ptd.net] has joined #go-nuts 02:55 -!- Soultaker [~maks@hell.student.utwente.nl] has joined #go-nuts 03:12 -!- binarypie [~binarypie@c-24-6-151-185.hsd1.ca.comcast.net] has quit [Quit: Lost terminal] 03:15 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit: This computer has gone to sleep] 03:30 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 03:35 < nsf> Ginto8: I've answered your question on the ML, shortly: use runtime.LockOSThread() 03:35 < Ginto8> what for? 03:35 < nsf> OpenGL context is tied to a thread 03:35 < nsf> you can't call it from different threads 03:35 < Ginto8> ok 03:35 < Ginto8> well I'm not 03:35 < nsf> Go multiplexes goroutines onto different threads and that may cause this error 03:35 < Ginto8> I'm calling it from a single thread o.o 03:36 < nsf> if you're not using LockOSThread you can't say for sure 03:36 < Ginto8> do I still have to do that/ 03:36 < Ginto8> well single goroutine 03:36 < nsf> single goroutine doesn't guarantee that it will be executed always on the same thread 03:36 < Ginto8> hm 03:36 < Ginto8> ok so I have to, in one of the calls, use runtime.LockOSThread() 03:37 < Ginto8> sounds good 03:37 < nsf> you have to call runtime.LockOSThread once in the goroutine that calls opengl 03:37 < nsf> see my mandelbrot and gotris examples 03:37 < Ginto8> also does GL need a window before you can load textures? 03:37 < nsf> I just call runtime.LockOSThread in main() once and that's all 03:38 < nsf> I'm not sure about that 03:38 < Ginto8> well I want it out of sight out of mind honestly 03:38 < nsf> it needs working context, and context is being created with the window often 03:38 < Ginto8> so I'm gonna have the window init function do it 03:41 < nsf> well it doesn't matter where you call runtime.LockOSThread until it's all in the same goroutine 03:41 < nsf> just call it before making any opengl calls 03:46 -!- carllerche [~carllerch@208.87.61.203] has joined #go-nuts 03:47 -!- emmanueloga [~emmanuelo@190.247.41.202] has joined #go-nuts 04:00 -!- Pete_27 [~noname@115-64-1-61.static.tpgi.com.au] has quit [Ping timeout: 240 seconds] 04:05 -!- MizardX [~MizardX@unaffiliated/mizardx] has quit [Ping timeout: 276 seconds] 04:15 < Ginto8> is there any way to easily access the contents of a C array? or am I gonna have to do a lot of conversions between unsafe.Pointer and uintptr? 04:16 < nsf> I guess you can convert it to a pointer to a go array and then make a slice from it 04:16 < Ginto8> hmm 04:16 < nsf> never did that, though 04:16 < Ginto8> well that's probly a bad idea 04:20 -!- jhawk28 [~jhawk28@c-069-063-212-182.sd2.redwire.net] has joined #go-nuts 04:23 -!- jhawk28 [~jhawk28@c-069-063-212-182.sd2.redwire.net] has quit [Remote host closed the connection] 04:30 -!- jer [~jtregunna@unaffiliated/jer] has quit [Ping timeout: 276 seconds] 04:33 -!- TR2N [email@89.180.161.235] has left #go-nuts [] 04:36 -!- jer [~jtregunna@unaffiliated/jer] has joined #go-nuts 04:54 -!- ampleyfly [~ampleyfly@h-148-139.A163.priv.bahnhof.se] has quit [Ping timeout: 258 seconds] 04:56 -!- scm [justme@d018229.adsl.hansenet.de] has quit [Read error: Connection reset by peer] 05:01 -!- scm [justme@d039060.adsl.hansenet.de] has joined #go-nuts 05:02 -!- carllerche [~carllerch@208.87.61.203] has quit [Quit: carllerche] 05:05 -!- Eridius [~kevin@unaffiliated/eridius] has quit [Ping timeout: 260 seconds] 05:19 -!- homa_rano [~erice@HATESHELL.MIT.EDU] has quit [Quit: leaving] 05:30 -!- bmizeran_ [~bmizerany@dsl081-064-072.sfo1.dsl.speakeasy.net] has quit [Remote host closed the connection] 05:30 -!- tvw [~tv@e176006156.adsl.alicedsl.de] has joined #go-nuts 05:47 -!- pl3 [~noam@77.126.167.205] has joined #go-nuts 05:53 -!- pl31 [~noam@77.126.127.131] has joined #go-nuts 05:53 -!- pl3 [~noam@77.126.167.205] has quit [Read error: Connection reset by peer] 05:53 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts 05:53 -!- mode/#go-nuts [+v iant] by ChanServ 05:58 -!- htoothrot [~mux@71-8-117-228.dhcp.ftwo.tx.charter.com] has quit [Ping timeout: 264 seconds] 06:00 -!- lmoura [~lmoura@187.78.130.104] has quit [Ping timeout: 265 seconds] 06:01 -!- htoothrot [~mux@71-8-117-228.dhcp.ftwo.tx.charter.com] has joined #go-nuts 06:05 -!- ampleyfly [~ampleyfly@h-148-139.A163.priv.bahnhof.se] has joined #go-nuts 06:07 -!- homa_rano [~erice@hmsvelociraptor.csail.mit.edu] has joined #go-nuts 06:09 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Quit: Leaving.] 06:26 -!- pl31 [~noam@77.126.127.131] has quit [Ping timeout: 246 seconds] 06:30 -!- aho [~nya@fuld-4d00d1f5.pool.mediaWays.net] has quit [Quit: EXEC_over.METHOD_SUBLIMATION] 06:35 -!- htoothrot [~mux@71-8-117-228.dhcp.ftwo.tx.charter.com] has quit [Ping timeout: 260 seconds] 06:36 -!- napsy [~napsy@193.2.66.101] has joined #go-nuts 06:39 -!- htoothrot [~mux@71-8-117-228.dhcp.ftwo.tx.charter.com] has joined #go-nuts 06:46 -!- tvw [~tv@e176006156.adsl.alicedsl.de] has quit [Remote host closed the connection] 06:55 < cw> nsf: you use LockOsThread to avoid opengl having a fit over TLS ? 06:55 -!- tvw [~tv@e176006156.adsl.alicedsl.de] has joined #go-nuts 06:58 < jessta> cw: you do 07:00 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has quit [Quit: KVIrc Equilibrium 4.1.0, revision: 4632, sources date: 20100519, built on: 2010-07-09 07:13:47 UTC http://www.kvirc.net/] 07:03 -!- tvw [~tv@e176006156.adsl.alicedsl.de] has quit [Remote host closed the connection] 07:04 < nsf> LockOSThread is the only way to make OpenGL work correctly when Go's scheduler has more than one thread 07:07 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Ping timeout: 258 seconds] 07:09 -!- jchico [~jchico@cpe-98-14-12-209.nyc.res.rr.com] has quit [Quit: Leaving] 07:12 -!- sladegen [~nemo@unaffiliated/sladegen] has joined #go-nuts 07:21 -!- iant [~iant@62-20-124-50.customer.telia.com] has joined #go-nuts 07:21 -!- mode/#go-nuts [+v iant] by ChanServ 07:25 -!- incluye [~inklewyay@NW-ESR1-74-215-114-218.fuse.net] has quit [Remote host closed the connection] 07:32 -!- ExtraSpice [~ExtraSpic@88.118.32.225] has joined #go-nuts 07:43 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has joined #go-nuts 07:45 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts 07:54 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 08:03 -!- sauerbraten [~sauerbrat@p508CF542.dip.t-dialin.net] has joined #go-nuts 08:13 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed the connection] 08:15 -!- ikaros [~ikaros@drms-4d014bb1.pool.mediaWays.net] has joined #go-nuts 08:23 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.2] 08:25 -!- Tiger_ [~chatzilla@118.126.12.53] has joined #go-nuts 08:41 -!- photron [~photron@port-92-201-47-104.dynamic.qsc.de] has joined #go-nuts 09:07 -!- napsy [~napsy@193.2.66.101] has quit [Quit: leaving] 09:10 -!- Kylarr [Kyle@122-148-63-115.static.dsl.dodo.com.au] has joined #go-nuts 09:10 < Eko> Did the mechanics of CGO linking change? 09:11 < Eko> cgo things that used to link don't appear to do so anymore... 09:11 <+iant> I don't think it changed.... 09:13 -!- wrtp [~rog@92.17.68.115] has joined #go-nuts 09:17 -!- jdp [~gu@24.238.32.162.res-cmts.segr.ptd.net] has quit [Ping timeout: 260 seconds] 09:18 -!- General13372 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined #go-nuts 09:18 < Eko> I'm now getting cryptic messages like: 09:19 < Eko> testsuite/cgotpkg/cgomain: error while loading shared libraries: cgo__home_eko_dev_hosted_gofr__lib_testsuite_cgotpkg_tpkg.so: cannot open shared object file: No such file or directory 09:19 < Eko> and that used to build fine. 09:19 < Eko> (well, build and then *run* fine, that's the error I get when I run it.) 09:21 -!- Project_2501 [~Marvin@82.84.92.36] has joined #go-nuts 09:22 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit [Ping timeout: 252 seconds] 09:25 <+iant> oh yeah, that part did change 09:25 <+iant> I think the library is now expected to be in $GOROOT/pkg/$GOOS_$GOARCH by default 09:26 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has joined #go-nuts 09:30 < Eko> iant: so does it no longer respect GOPKGPATH? 09:30 < Eko> though actually, I think I might have found my issue by looking at the cgo source 09:30 <+iant> I don't know 09:30 < Eko> or at least something that might fix it. 09:32 -!- mikespook [~mikespook@58.62.5.54] has quit [Quit: Leaving.] 09:35 -!- dju [dju@fsf/member/dju] has quit [Ping timeout: 252 seconds] 09:36 -!- ikaros [~ikaros@drms-4d014bb1.pool.mediaWays.net] has quit [Quit: Leave the magic to Houdini] 09:38 < Eko> apparently not. 09:38 < Eko> I thought maybe my CGOPKGPATH wasn't absolute, but I made sure it was and it's still being gross. 09:38 -!- anykey [~anykey@unaffiliated/anykey] has joined #go-nuts 09:42 -!- Kylarr [Kyle@122-148-63-115.static.dsl.dodo.com.au] has quit [] 09:43 < Eko> sigh. It looks like I either have to edfix the dynimport myself, set the LD_LIBRARY_PATH, or submit a CL to give CGO the option of absolutely referencing the file again. 09:46 <+iant> you can pass an option to 6l to put a runtime search path in the binary 09:47 < Eko> aha. 09:52 < Eko> gah, this is taking more brain power than I have this late at night. Time to go to bed... 09:52 < Eko> iant: thanks for the tip, looks like I should be able to make this work. 09:53 -!- Tiger_ [~chatzilla@118.126.12.53] has quit [Quit: quit] 09:58 -!- dju [dju@fsf/member/dju] has joined #go-nuts 09:59 -!- GeoBSD [~geobsd@lns-bzn-26-82-254-89-236.adsl.proxad.net] has joined #go-nuts 10:02 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Quit: WeeChat 0.3.2] 10:06 -!- path[l] [~path@59.162.86.164] has joined #go-nuts 10:11 -!- dju [dju@fsf/member/dju] has quit [Ping timeout: 260 seconds] 10:25 -!- pjm0616 [~user@61.250.113.98] has quit [Ping timeout: 252 seconds] 10:31 -!- pjm0616 [~user@61.250.113.98] has joined #go-nuts 10:39 -!- visof [~visof@unaffiliated/visof] has joined #go-nuts 10:46 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 11:01 -!- [Pete_27] [~noname@115-64-1-61.static.tpgi.com.au] has joined #go-nuts 11:06 -!- surma [~surma@brln-4dba8e42.pool.mediaWays.net] has joined #go-nuts 11:10 -!- nsf [~nsf@jiss.convex.ru] has quit [Ping timeout: 245 seconds] 11:18 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 11:22 -!- rlab [~Miranda@136-187-113-92.pool.ukrtel.net] has joined #go-nuts 11:33 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined #go-nuts 11:55 -!- artefon [~thiago@dhcp29.usuarios.dcc.ufmg.br] has joined #go-nuts 11:55 -!- rlab [~Miranda@136-187-113-92.pool.ukrtel.net] has quit [Read error: Connection reset by peer] 11:59 -!- dju [dju@fsf/member/dju] has joined #go-nuts 12:02 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts 12:04 -!- dju [dju@fsf/member/dju] has quit [Ping timeout: 240 seconds] 12:11 -!- surma [~surma@brln-4dba8e42.pool.mediaWays.net] has left #go-nuts [] 12:14 -!- artefon [~thiago@dhcp29.usuarios.dcc.ufmg.br] has quit [Ping timeout: 240 seconds] 12:15 -!- artefon [~thiago@dhcp29.usuarios.dcc.ufmg.br] has joined #go-nuts 12:18 -!- Xurix [~Luixsia@AToulouse-254-1-67-220.w81-49.abo.wanadoo.fr] has joined #go-nuts 12:27 -!- rp2 [~rp2@dyn068178.nbw.tue.nl] has joined #go-nuts 12:30 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has joined #go-nuts 12:30 -!- Luixsia [~Luixsia@AToulouse-254-1-103-196.w86-207.abo.wanadoo.fr] has joined #go-nuts 12:32 -!- Xurix [~Luixsia@AToulouse-254-1-67-220.w81-49.abo.wanadoo.fr] has quit [Ping timeout: 265 seconds] 12:33 -!- dju [dju@fsf/member/dju] has joined #go-nuts 12:37 -!- crashR [~crasher@codextreme.pck.nerim.net] has joined #go-nuts 12:37 -!- dju_ [dju@fsf/member/dju] has joined #go-nuts 12:38 -!- dju [dju@fsf/member/dju] has quit [Read error: Connection reset by peer] 12:38 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has joined #go-nuts 12:41 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has joined #go-nuts 12:45 -!- agent_orange [~joel@lolnet.org] has quit [Remote host closed the connection] 12:46 -!- Tiger_ [~chatzilla@118.126.12.53] has joined #go-nuts 12:48 -!- franksalim [~frank@adsl-75-61-93-123.dsl.pltn13.sbcglobal.net] has quit [Quit: Ex-Chat] 12:55 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has quit [Ping timeout: 265 seconds] 13:08 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit: This computer has gone to sleep] 13:11 -!- Tiger_ [~chatzilla@118.126.12.53] has quit [Ping timeout: 246 seconds] 13:12 -!- MizardX [~MizardX@unaffiliated/mizardx] has joined #go-nuts 13:14 -!- plainhao [~plainhao@mail.xbiotica.com] has joined #go-nuts 13:22 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]] 13:24 -!- path[l] [~path@59.162.86.164] has joined #go-nuts 13:26 -!- path[l] [~path@59.162.86.164] has quit [Read error: Connection reset by peer] 13:26 -!- path[l] [~path@59.162.86.164] has joined #go-nuts 13:35 -!- lmoura [~lmoura@187.78.130.104] has joined #go-nuts 13:38 -!- adu [~ajr@softbank220043139062.bbtec.net] has joined #go-nuts 13:39 -!- skelterjohn [~jasmuth@c-76-116-181-134.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 13:54 -!- tux21b [~christoph@90.146.60.30] has joined #go-nuts 13:59 -!- rlab [~Miranda@136-187-113-92.pool.ukrtel.net] has joined #go-nuts 14:00 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has joined #go-nuts 14:03 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has quit [Quit: Mac has gone to sleep] 14:06 -!- awidegreen [~quassel@62.176.237.78] has joined #go-nuts 14:07 -!- g0bl1n [~anonymous@a213-22-76-1.cpe.netcabo.pt] has joined #go-nuts 14:08 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]] 14:12 -!- path[l] [~path@122.182.0.38] has joined #go-nuts 14:14 < rsaarelm> Looks like Vector.Iter is gone. So what's the recommended idiom for iterating through a vector? 14:14 < rsaarelm> Explicit index? 14:14 -!- jchico [~jchico@cpe-98-14-12-209.nyc.res.rr.com] has joined #go-nuts 14:14 < rsaarelm> As in "for i := 0; i < vec.Len(); i++ { .. }" 14:17 < vrtical> rsaarelm: gone? 14:17 < rsaarelm> vrtical: Gone. http://github.com/tav/go/commit/a2a4a94e66bcb30489947894908dd94bf4261894 14:19 < rsaarelm> And I'm not seeing the obvious wrongness, I'm using it as the default idiom for iterating my vectors. 14:19 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has quit [Ping timeout: 265 seconds] 14:21 < vrtical> thanks, that's interesting. But yeah, people here have told me that Iter was the easy way to range over a vector. 14:22 < temoto> rsaarelm, no 'i := 0' → obviously wrong way. :) 14:23 < temoto> If seriously, i think that commit is pure wrong. 14:24 < temoto> And no link to "as per discussed with rsc". 14:24 < rsaarelm> Oh, wait. Vectors are just a type alias for arrays, so I can use the builtin array iteration. 14:24 < rsaarelm> Was confused before since it returned indices only if I only had one lvalue. 14:24 < chressie> yes, see the last change in the commit in nntp.go 14:24 < rsaarelm> So "for _, obj := range vec { stuff }" works. 14:25 < jessta> vector.Iter() wasn't great, channels are kind of slow for that purpose 14:25 < rsaarelm> Right. 14:27 < rsaarelm> Ok, that takes care of the manual loops. I also have cases where I'm treating vecs as iterable.Iterables. 14:28 < rsaarelm> So now I'll want a wrapper thing that makes something that does provide the .Iter() there. 14:34 < rsaarelm> I guess I like the iterable interface a bit more than the core Go team. 14:35 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has joined #go-nuts 14:45 -!- deathstr5 [4e5609bb@gateway/web/freenode/ip.78.86.9.187] has joined #go-nuts 14:48 -!- Tiger_ [~chatzilla@118.126.12.53] has joined #go-nuts 14:50 -!- deathstr5 [4e5609bb@gateway/web/freenode/ip.78.86.9.187] has quit [Quit: Page closed] 14:50 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Ping timeout: 258 seconds] 14:51 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed the connection] 15:02 -!- iant [~iant@62-20-124-50.customer.telia.com] has quit [Ping timeout: 258 seconds] 15:06 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has joined #go-nuts 15:09 -!- cmarcelo [~cmarcelo@enlightenment/developer/cmarcelo] has joined #go-nuts 15:10 < sauerbraten> how may i add Go support to gedit? 15:12 < Ginto8> http://go-lang.cat-v.org/text-editors/ 15:12 < Ginto8> look there 15:13 < jchico> which syntax highlighter would you use for gEdit? 15:14 -!- artefon [~thiago@dhcp29.usuarios.dcc.ufmg.br] has quit [Quit: bye] 15:14 -!- wrtp [~rog@92.17.68.115] has quit [Quit: wrtp] 15:14 < jchico> oh nevermind, found it 15:25 -!- incluye [~inklewyay@NW-ESR1-74-215-114-218.fuse.net] has joined #go-nuts 15:34 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has quit [Quit: mxweas] 15:34 -!- Venom_X [~pjacobs@71.21.124.111] has joined #go-nuts 15:35 -!- path[l] [~path@122.182.0.38] has quit [Quit: path[l]] 15:50 < sauerbraten> i can find 3 syntax files there, which one is the best? :D 15:54 < Ginto8> the go.xml or w/e for your editor o.o 15:55 < sauerbraten> i meant i found 3 different go.lang files for gedit ;) i just used the first one now 15:56 < Ginto8> uhm idk 15:56 < Ginto8> that should work 15:58 -!- tvw [~tv@212.79.9.150] has quit [Read error: Operation timed out] 16:00 < sauerbraten> yeah it should thanks anyway 16:01 -!- Robbo_ [~Robbocogs@CPE-124-187-134-193.lns15.ken.bigpond.net.au] has joined #go-nuts 16:02 < Robbo_> yo 16:02 < Robbo_> does go have socket support? 16:02 < Ginto8> what exactly do you mean by "socket"? 16:03 < Ginto8> if you mean network connections, then yes 16:03 < Robbo_> Yeah 16:03 -!- wrtp [~rog@92.17.68.115] has joined #go-nuts 16:03 < Ginto8> look up the package net 16:03 < Robbo_> I guess I am too used to other languages.... don't actually know the correct term 16:03 < Robbo_> Another question 16:03 < Robbo_> I'm on windows 16:04 < Robbo_> What is the best way to run linux so I can have a play? 16:04 < Ginto8> ubuntu 16:04 < Robbo_> Other then dual bot which I will do later 16:04 < Ginto8> oh 16:04 < Robbo_> I mean running it from windows 16:04 < MaybeSo> probably vmware 16:04 < Ginto8> eyah 16:04 < Ginto8> yeah* 16:04 < Robbo_> Waiting for parts and time before dual boot 16:04 < Robbo_> ok 16:04 < Ginto8> why do you need parts? 16:04 < Ginto8> just partition your drive 16:05 < Ginto8> if you have all the necessary stuff backed up you'll be fine 16:05 < Robbo_> oh i mean for my new mobo to arrive 16:05 < Ginto8> oic 16:05 < Ginto8> okey dokey 16:07 < Robbo_> Tryin to get right into go :) 16:07 < jchico> I'm using VirtualBox to run Ubuntu, don't you have to pay for VMware? 16:07 < Robbo_> Lack of stuff on the net so lucky I found this channel 16:07 < Robbo_> I'm on x64 16:07 < Robbo_> Will virtualbox still work? 16:08 < jchico> yeah, I also have an x64 16:08 < jchico> I'm actually running the 32bit version of Ubuntu though 16:08 < Robbo_> sounds good then 16:09 < Robbo_> So anyone here using go for much? 16:09 < jchico> just remember to install the Guest Additions after you install Ubuntu 16:09 < MaybeSo> anyone here run into problems on Linux w/ a Go program that ends up blocking forever on a futex FUTEX_WAIT call? 16:10 < Robbo_> Gonna make an IRC client for my first program using it... well try :p 16:10 < Robbo_> jchico, if I run into problems I'll be sure to annoy 16:10 < jchico> heh ok, you have program in any other languages before? 16:11 < Robbo_> I mean with virtualbox 16:11 < jchico> oh yeah but have you program an IRC client before? 16:11 < Robbo_> The language I won't annoy people until I have spent at least an hour working out what I am doing wrong. In which case I usually ask someone and just from reading my own question I work out the solution 16:11 -!- visof [~visof@unaffiliated/visof] has quit [Ping timeout: 258 seconds] 16:12 < Robbo_> made bots and shit 16:12 < Robbo_> I should be fine with it 16:12 < jessta> MaybeSo: you're using futex calls in GO? 16:12 < MaybeSo> not directly, the underlying Go code is 16:12 < Robbo_> I'm not that good with apps.... I'm a web programmer that wants to work with more powerful languages :p 16:12 < MaybeSo> I suspect something along these lines: http://codereview.appspot.com/218065/diff/1003/7 16:13 < Robbo_> So I know C++ but not that well 16:13 < jessta> MaybeSo: ok, good to know 16:13 < MaybeSo> Robbo: this might be of interest to you as a resource: http://go-lang.cat-v.org/go-code 16:13 < MaybeSo> (see Irc section, go-bot) 16:14 < Robbo_> oh nicv 16:14 < Robbo_> nice 16:14 < Robbo_> thanks 16:14 < jchico> yeah that is nice 16:15 < Robbo_> golang.org is written with go right? 16:15 < MaybeSo> yes it is running a server written in go 16:15 < Robbo_> so can we make our own sites running go? 16:15 < MaybeSo> it is distributed w/ the go dist itself 16:16 < MaybeSo> (godoc) 16:16 * Robbo_ feels noob 16:16 < Robbo_> ok cool 16:16 < Robbo_> does it have mysql support? 16:16 < MaybeSo> Ha, that is in fact what I'm running into futex problems with. I'm using some of the tools from this page: http://go-lang.cat-v.org/pure-go-libs 16:17 -!- aho [~nya@fuld-4d00d23e.pool.mediaWays.net] has joined #go-nuts 16:17 < Robbo_> I wouldn't ask so many questions but being a new language it is hard to find info 16:17 < MaybeSo> GoMySQL seems to mostly work for inline SQL, but using a prepared statement more than once appears to be busted 16:18 < MaybeSo> searching for 'golang' or '"go programming language"' instead of 'go' helps 16:18 < Robbo_> And if I was to get 'good' with go is it something I could fix or is it a more lower end thing? 16:18 < Ginto8> Robbo_, it should also be possible to access sql through a c lib 16:18 < Ginto8> look at cgo 16:19 -!- adu [~ajr@softbank220043139062.bbtec.net] has quit [Quit: adu] 16:20 < MaybeSo> Robbo_: if you were asking about fixing things like GoMySQL the code looks straightforward enough w/re to what it is doing, it's just a matter of knowing the MySQL client/server message routines 16:20 -!- Robbo [~Robbocogs@CPE-124-187-134-193.lns15.ken.bigpond.net.au] has joined #go-nuts 16:20 < MaybeSo> Ginto8: have you had good success using cgo wrapped libraries? 16:20 -!- bechmoul [~joel@lolnet.org] has joined #go-nuts 16:21 -!- path[l] [UPP@120.138.102.50] has joined #go-nuts 16:22 -!- Robbo [~Robbocogs@CPE-124-187-134-193.lns15.ken.bigpond.net.au] has left #go-nuts [] 16:22 -!- Robbo [~Robbocogs@CPE-124-187-134-193.lns15.ken.bigpond.net.au] has joined #go-nuts 16:22 -!- Robbo_ [~Robbocogs@CPE-124-187-134-193.lns15.ken.bigpond.net.au] has quit [Ping timeout: 258 seconds] 16:23 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has joined #go-nuts 16:23 -!- Robbo [~Robbocogs@CPE-124-187-134-193.lns15.ken.bigpond.net.au] has quit [Client Quit] 16:24 -!- Robbo_ [~Robbocogs@CPE-124-187-134-193.lns15.ken.bigpond.net.au] has joined #go-nuts 16:24 < Robbo_> ping 16:25 < Robbo_> ok got virtualbox working 16:26 < Robbo_> never actually tried linux... 16:26 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has joined #go-nuts 16:26 < MaybeSo> have you used other unix based systems? 16:27 < Robbo_> nope 16:27 < Robbo_> been meaning to 16:27 < MaybeSo> ah 16:27 < Robbo_> oh it wants an OS image 16:27 < Robbo_> what OS should I go for? 16:27 < Robbo_> centos or something I have been told is good? 16:28 < MaybeSo> I couldn't say, I use centos and redhat but ubuntu might be even easier for someone new to unix 16:29 < Robbo_> I'll go centos 16:29 < Robbo_> I don't need easy heh 16:30 < jchico> why not? you rather be complicated? :P 16:30 < Ginto8> MaybeSo, what do you mean by "cgo wrapped libraries"? 16:30 < Robbo_> yesm 16:30 < Robbo_> lo 16:30 < Robbo_> l 16:31 < Robbo_> Ok and a question I was going to ask before my net died 16:31 < Robbo_> What does google use for its repos? 16:31 < Ginto8> ubuntu actually has a history of just plain working for me, so I use it 16:31 < Robbo_> On code.google.com 16:31 < Ginto8> Robbo_, why should that matter? 16:31 < Robbo_> Oh I want to know so I can use it 16:31 < Ginto8> a server version of an OS isn't going to be used the same way as a desktop OS 16:32 < Robbo_> Oh 16:32 < Robbo_> Ummm 16:32 < Robbo_> I dunno 16:32 -!- Luixsia [~Luixsia@AToulouse-254-1-103-196.w86-207.abo.wanadoo.fr] has quit [Ping timeout: 252 seconds] 16:32 < Ginto8> just use ubuntu, it's an easy install and should work out of the box 16:32 < Robbo_> I'm just using w/e 16:32 < Robbo_> I know nothing about any of these OS 16:32 < Robbo_> Which is the main problem 16:32 < jchico> yeah when learning something new, try simplicity first. 16:32 -!- artefon [~thiago@189.107.222.110] has joined #go-nuts 16:33 < Robbo_> When I partition I'll go ubuntu 16:33 < Ginto8> if you're new, use ubuntu 16:33 < MaybeSo> Ginto8: I mean using native C libraries within Go, e.g., stuff like http://go-lang.cat-v.org/library-bindings 16:33 < Ginto8> I actually directly access them, those bindings aren't that good 16:33 < Ginto8> but I'm currently using SDL and OpenGL through cgo, and it hasn't been that bad 16:34 < Robbo_> Oh that raises another question 16:34 < Robbo_> Any plans on opengl support for go? 16:34 < Ginto8> my only nuisances are accessing C arrays (using uintptr and unsafe.Pointer) and accessing unions 16:34 < MaybeSo> Ginto8: thanks 16:34 < Ginto8> cuz cgo defines unions as byte arrays, so you have to do an unsafe.Pointer cast 16:35 < Ginto8> aside from that, it's actually a pretty good interface 16:35 < Ginto8> Robbo_, there is opengl support for C 16:35 < Robbo_> So what does code.google use for their repo? 16:35 < Robbo_> git? 16:35 < Ginto8> that's all you need for go 16:35 < Ginto8> nope 16:35 < Ginto8> mercurial 16:35 < Robbo_> ok 16:35 < Ginto8> mercurial is actually very similar to git from what I've seen 16:35 < Ginto8> but w/e 16:36 < Robbo_> I don't know much of either of them 16:36 < Robbo_> I have only had to use svn 16:36 < Robbo_> And hated it ;p 16:36 < Ginto8> basically it's a decentralized version control mechanism 16:36 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has quit [Remote host closed the connection] 16:37 < temoto> Ginto8, http://browsertoolkit.com/fault-tolerance.png 16:37 -!- Xurix [~Luixsia@AToulouse-254-1-5-202.w83-203.abo.wanadoo.fr] has joined #go-nuts 16:37 < Robbo_> So since you guys know a fair amount about Go. Do you see it taking over C++ for things like gaming anytime soon? 16:37 < taruti> no 16:38 < MaybeSo> nor I 16:38 < taruti> Language X replacing language Y will always take a long time 16:38 < jchico> yeah is this language even 1 year old? 16:39 < Robbo_> well 16:39 < Robbo_> do you thnk it has the potential? 16:39 < Robbo_> also do you think it could even handle a game? 16:39 < Robbo_> as in AAA 16:40 < Ginto8> idk, it's performance isn't on par with C 16:40 < Namegduf> Yes. 16:41 < Ginto8> but it would definitely be capable of a good game 16:41 < Ginto8> temoto, lol 16:41 < Ginto8> but quite honestly I think Go is a true modern version of C 16:42 < taruti> Robbo_: game things require good game libraries and developers 16:42 < taruti> even python is suitable for lots of game writing 16:42 < temoto> Robbo_, we plan to take over C++ for things like gaming and databases at 2011Q2. 16:43 < temoto> i know, whole year is not soon enough, but there's a lot of work to do 16:43 < Ginto8> I don't think Go is going to fully take over, but I think it will cause a major paradigm shift, and will probably get a pretty big following 16:43 < Ginto8> because other languages aren't very good with parallelism and working on multicore processors 16:43 < Ginto8> and multicore is the future 16:44 < Robbo_> temoto, you work for google? 16:44 < Robbo_> yeah from what I have spoken to with other people they really like what go does with multi core stuff 16:44 < Ginto8> so I think a lot more languages will be integrating go-like parallelism in the near future 16:44 < Robbo_> I haven't yet had a chance to dive into go though 16:44 < Ginto8> even if go itself doesn't become super popular 16:45 < temoto> Ginto8, "other languages aren't very good with parallelism" is a sound statement. :) 16:45 < Robbo_> Can go replace php? 16:45 < Ginto8> Robbo_, take any chance you get. It will, seriously change how you think about parallelism in general 16:45 < Robbo_> I use php daily 16:45 < Robbo_> So say 16:45 < skelterjohn> go and php have different purposes 16:45 < Robbo_> I made a framework for go 16:45 < Robbo_> To act more like php 16:45 < Robbo_> Would it work? 16:45 < Robbo_> AS in 16:45 -!- sladegen [~nemo@unaffiliated/sladegen] has joined #go-nuts 16:45 < Robbo_> Be web based 16:45 < temoto> Robbo_, no, i'm just kidding at your hm... naive? question. 16:45 < Ginto8> skelterjohn, yes but go can do all kinds of server side stuff 16:46 < Ginto8> yeah go isn't going to "take over" 16:46 < skelterjohn> i know, but it just seems like using a hammer to push a thumb tack 16:46 < skelterjohn> we don't need go for server side scripting 16:46 < Robbo_> Err I don't mean replace sorry 16:46 < skelterjohn> it's nicer to have something like php, or jsp 16:46 < Robbo_> I mean can it replace it for me... not in general 16:46 < skelterjohn> maybe a go-server-pages language 16:46 < Ginto8> but it's definitely gonna have a major impact on any new languages that are developed 16:46 < temoto> Robbo_, you do gaming? 16:47 < Ginto8> Robbo_, yes 16:47 < Robbo_> Yes but not my main thing 16:47 < skelterjohn> Robbo_: the biggest weakness go would have taking over PHP's domain is that there isn't a convenient way to insert large blocks of static text 16:47 < skelterjohn> what appears between <% %> in php or jsp 16:47 < Ginto8> I used C/++ for a while, and I shifted over to go and I've been absolutely loving 16:47 < Ginto8> loving it* 16:47 < Ginto8> skelterjohn, really? 16:47 < Robbo_> skelterjohn, as in echo in php? 16:48 < Ginto8> "<"+text+">" 16:48 < skelterjohn> i could be wrong 16:48 < Ginto8> go has builtin string operations 16:48 < Ginto8> skelterjohn, ^ 16:48 < skelterjohn> you can do all the same things, certainly 16:48 < skelterjohn> but it is less convenient in go 16:48 < Robbo_> A templatting system could easily overcome that 16:48 < Ginto8> hm good point 16:48 < Robbo_> Although 16:48 < Robbo_> It would need an output buffer 16:48 < Ginto8> Robbo_, yes but templating at the moment is a maybe 16:48 < skelterjohn> there is a package for that sort of templating 16:49 < skelterjohn> Ginto8: different kind of templating :) 16:49 < temoto> Robbo_, anyway... "for somebody" answer will always be yes. Since all languages are turing complete bla-bla. But there are some success stories. Like i've rewritten most part of my web crawler worker in 2 days. And stuck with absense of robots.txt parsing library. 16:49 < Ginto8> oh 16:49 < Robbo_> That could be a killer for using websites 16:49 -!- incluye [~inklewyay@NW-ESR1-74-215-114-218.fuse.net] has quit [Remote host closed the connection] 16:49 -!- incluye [~inklewyay@NW-ESR1-74-215-114-218.fuse.net] has joined #go-nuts 16:50 < temoto> I'd say that Go is only a bit more verbose than Python. (Which is whoa hell great for statically typed language) 16:50 < Ginto8> yeah 16:50 < skelterjohn> := makes a lot of things easier 16:50 < Ginto8> go has been rightfully described as C meets python 16:50 < skelterjohn> good operator 16:50 < Ginto8> very good operator 16:50 < Robbo_> Ok for example 16:51 < Robbo_> I work a lot with SMF 16:51 < KirkMcDonald> skelterjohn: I would argue against the need for inserting large blocks of static text. 16:51 < skelterjohn> I'm not a web developer, so I will concede any well founded argument immediately 16:51 < KirkMcDonald> skelterjohn: I much prefer how Python does it, with a seperate templating language. 16:51 < KirkMcDonald> separate* 16:51 < Robbo_> If I was to port it to Go would I see any performance increase and would it be a very hard port when it comes to all the stuff it does directly from apache? 16:52 < skelterjohn> i only pointed out that issue because the only stuff i'd ever done is php or jsp, and years ago at that 16:52 < KirkMcDonald> skelterjohn: Dumb templates are good. 16:53 < Robbo_> Large text blocks with websites would be a downside as I like to output everything I have just with PHP. However, a templating system can be good if I am working on anything open source etc. And if I couldn't do it directly from Go I'm sure it would be fast enough to parse a template and output it 16:53 < skelterjohn> Robbo_: whether or not you'd see a performance increase depends heavily on the quality of the code you're porting from and the quality of the code you're writing, along with the compilers. so it's hard to answer that question 16:53 < Robbo_> Yeha true 16:53 < Robbo_> Yeah* 16:53 < Namegduf> Yes. 16:53 < Namegduf> Go code will generally run faster than PHP 16:53 < Namegduf> PHP is slowass 16:54 < temoto> Robbo_, porting a monster like SMF or Django would take you months if done alone. 16:54 < skelterjohn> well that's certainly true 16:54 -!- mattikus [~mattikus@witty.mcs.anl.gov] has joined #go-nuts 16:54 < Robbo_> temoto, I know, it was in theory 16:54 < skelterjohn> Robbo_: the templating system for go -> http://golang.org/pkg/template/ 16:54 < Robbo_> I might be making a team to make a new forum with some of the old SMF team, so was just wondering 16:54 -!- artefon [~thiago@189.107.222.110] has quit [Ping timeout: 252 seconds] 16:54 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit: Leaving] 16:55 < Namegduf> That's interesting. 16:56 < temoto> Robbo_, in theory it would bring very much performance increase. But if PHP site is written and deployed properly, users shouldn't notice the difference. 16:56 < Robbo_> Yeah 16:57 < temoto> So performance is definitely not the main reason for that. 16:57 < KirkMcDonald> One advantage to a separate templating language is when you have a very large website, with a large number of developers. 16:57 < aho> usually the db is the bottleneck... so php's slowness typically doesn't have much of an impact 16:57 < KirkMcDonald> And, most importantly, web developers which are separate from the other devs. 16:57 < Namegduf> I dunno 16:58 < Robbo_> Well PHP isn't exaclty the best language for organizing code. It's OOP isn't the best 16:58 < Namegduf> Running PHP just serving MediaWiki, I've seen abysmal performance 16:58 < Robbo_> but from what I have seen from Go 16:58 < Namegduf> To the point where when an indexer bot hits, it actually suffers. 16:58 < Robbo_> I don't know how I would structure it tbh 16:58 < Namegduf> Write packages for individual pieces of functionality. 16:58 < MaybeSo> Namegduf: a lot of those system rely very heavily on caching, so a bot tends to throw them off their stride 16:58 < temoto> Namegduf, ...if written and deployed *properly* 16:58 < Namegduf> Have a main package that calls into the utility packages. 16:59 < Namegduf> temoto: Yes, if written and deployed with far more RAM than Go will work happily with 16:59 < Namegduf> And far more than I can afford 16:59 < Namegduf> That is the case 16:59 < Robbo_> I would need to see a descent sized program in Go to understand how I should go about it 16:59 < Venom_X> Robbo_: have you heard of hiphop-php? http://developers.facebook.com/blog/post/358 16:59 < aho> Namegduf, so... have you profiled it? 16:59 < jessta> aho: the db is only the bottle neck if you make it the bottle neck 16:59 < Robbo_> nope 16:59 < Venom_X> check it out 16:59 < Namegduf> aho: No, it isn't a primary interest of mine 17:00 < Robbo_> Looks cool 17:00 < temoto> Namegduf, i don't think that RAM is bottleneck there. But that's a guess on surface. 17:00 < Robbo_> I don't actually have a problem with how fast my sites run 17:00 < Robbo_> Just trying to learn about Go 17:01 < Robbo_> But I will definately bookmark that 17:01 < Ginto8> look at the website 17:01 < Venom_X> oh.. well write something that fits better with GO then 17:01 < Ginto8> you will learn most of the stuff you need 17:01 < Robbo_> I have read a lot of it 17:01 < Robbo_> And videos 17:01 < skelterjohn> writing code is the best way to learn to write code 17:01 < aho> jessta, typically you wont run that much logic in php... basically you just take stuff out of the database, use some templating stuff, and send it to the user 17:01 < aho> e.g. wordpress or drupal sites 17:01 < Robbo_> skelterjohn, waiting for stuff to download so I can write it 17:01 < Robbo_> so in the mean time 17:01 < Robbo_> I'm chatting about it :) 17:02 < Ginto8> skelterjohn, yes but I always like to research what I can use for my code before I write it =P 17:02 < Namegduf> In general, the way I would design a Go program 17:02 < Namegduf> Is not to try to model the problem domain in terms of objects or such crap 17:02 < Namegduf> But merely to break up the job I'm doing into subjobs 17:02 < Ginto8> but in processes 17:02 < Namegduf> And create packages doing self-contained tasks that can be combined to do that job 17:02 < Ginto8> it's a parallel paradigm 17:03 < jchico> yeah Erlang does that pretty well too, but I just hate its syntax... so ugly 17:03 < Robbo_> Hmmm, I really need to play with it before I know what you are talking about :p 17:03 < Ginto8> One of the really good thing about go is the modularity 17:03 < Namegduf> "but in processes" was not my thought, and should be taken separately. 17:03 < Ginto8> so amazingly superior to C/++ 17:03 < Namegduf> I tend to consider that after. 17:03 < Ginto8> hm 17:04 < Namegduf> In terms of how each job can be implemented. 17:04 < Robbo_> Any editors to help me? I have the syntax highlighting in notepad++ working I think 17:04 < Ginto8> ok so procedural paradigm with extra parallelism 17:04 < Ginto8> Robbo_, I use kate 17:04 < KirkMcDonald> vim! 17:04 < Venom_X> emacs 17:04 < Ginto8> vim is good 17:04 < Robbo_> lol screw vim 17:04 < skelterjohn> I use xcode on os x 17:04 < Ginto8> but I like mah gui for coding 17:04 < Robbo_> ok kate it is 17:04 < Ginto8> http://go-lang.cat-v.org/text-editors/ 17:04 < skelterjohn> not really an IDE, but a file organizer 17:04 < skelterjohn> and syntax colorer 17:04 < Ginto8> that's all the editors with syntax highlighting 17:05 < Robbo_> yeah saw that 17:05 < Namegduf> Anyways, my thought is that there's a number of conceptual models you can use, but you should probably not use OO 17:05 < Robbo_> I'm more of an IDE guy :p 17:05 < Robbo_> I want my files listed 17:05 < Namegduf> OO feels to me like a detour from actually solving the problem, in which you rephrase the problem in terms of objects, then solve the new problem, then the language converts it into the real solution. 17:05 < Robbo_> Still 30 mins to download ubuntu 17:05 < Ginto8> Robbo_, kate does that very well 17:05 < Namegduf> The problem is that Go doesn't do the last bit very well 17:06 < Namegduf> I daresay it isn't designed to be used with OO. 17:06 < Ginto8> nope 17:06 < KirkMcDonald> Go is by no means a "traditional" OO language. 17:06 < KirkMcDonald> It has composition and not inheritance. 17:06 < Namegduf> Right. 17:06 < Ginto8> go takes normal OO concepts, sets them on fire and throws them out the window 17:06 < Robbo_> I see Go as similar to JavaScript. They are OOP languages but don't look like it 17:06 < skelterjohn> i find when I write java code i spend too much time organizing class hierarchies 17:06 < Ginto8> and then does things right 17:06 < Robbo_> So people get confused and judgemental 17:06 < Ginto8> Robbo_, go isn't actually OO 17:07 < skelterjohn> now my only stupid efficiency hang up is spending time deciding what to call everything 17:07 < KirkMcDonald> JavaScript is different still, since it's prototype-based. 17:07 < Ginto8> it's somehow unclassifiable 17:07 < Namegduf> Go actually isn't OO at all, I feel, by any traditional view of OO. 17:07 < skelterjohn> go is interface oriented 17:07 < Robbo_> Which is my main problem of getting my head around it 17:07 < Robbo_> I just can't think of how I should struture things 17:07 < Namegduf> It has some ideas that OO might have had, but the differences are at the least big enough you can't just use OO, then expect it to map "but differently". 17:07 < Ginto8> Robbo_, think python duck typing plus better C structs plus overall awesome 17:07 -!- artefon [~thiago@vpn-226.dcc.ufmg.br] has joined #go-nuts 17:07 < skelterjohn> Robbo_: I'd say experiment, but your download probably isn't done yet ;) 17:07 < temoto> Robbo_, write like in C or Pascal. 17:08 < Robbo_> Lol 17:08 < KirkMcDonald> It's not worth talking about "OO", anyway, since the term is not at all defined. 17:08 < Robbo_> So procedurla 17:08 < skelterjohn> well, not really 17:08 < Robbo_> Well really powerful procedural? 17:08 < Namegduf> You can write with a procedural methodology very easily. 17:08 < Namegduf> It "works for me". 17:08 < skelterjohn> i mean, you still have structs with data and methods associated with them. some people call those "objects" 17:08 < Robbo_> Like C right? 17:08 < KirkMcDonald> And you have polymorphism via interfaces. 17:09 < temoto> Robbo_, procedural is a good start, then you'll find other tools like interfaces. 17:09 < skelterjohn> C structs have no methods associated with them 17:09 < Ginto8> Robbo_, it's like taking procedural, sprinkle in a tiny bit of OOP, add duck typing, add goroutines, then mix it all together, bake at 400 degrees for 20 minutes, then enjoy 17:09 < KirkMcDonald> skelterjohn: Unless you fake it. 17:09 < skelterjohn> But yeah, overall I feel it's better to start thinking of it as procedural, and then using an interface when it makes the code simpler 17:09 < Namegduf> KirkMcDonald: It has a bunch of definitions. I think "works in some manner with object modeling" is a fairly minimal theme, and the appropriate one for discussion of program decomposition. 17:09 < Ginto8> it's quite tasty 17:10 < Namegduf> Hmm, that's a good point, actually. 17:10 < skelterjohn> KirkMcDonald: well, turing complete, etc 17:10 < Robbo_> I watched some vids on interfaces 17:10 < KirkMcDonald> skelterjohn: I'm just referring to function pointers. 17:10 < Robbo_> They look very powerful 17:10 < KirkMcDonald> skelterjohn: Manually creating a vtable, etc. 17:10 < skelterjohn> KirkMcDonald: gotcha 17:10 < Namegduf> What I mean is, "Go is not friendly with object modeling as an approach to program decomposition, so I'd suggest not using it." 17:10 < Ginto8> Robbo_, they are 17:10 < skelterjohn> Namegduf: I agree with that statement 17:10 < Ginto8> they are more powerful than batman on their good days 17:11 < Robbo_> Hopefully I will have time to play with it heaps and get used to everything 17:11 < Robbo_> Is there a forum you can discuss all this one? 17:11 < Namegduf> Interfaces are a valuable tool indeed; I'd suggest using them where you've some code that wants to deal with multiple different types similarly. 17:11 < Ginto8> uh well there's a mailing list for problems 17:11 < Namegduf> Or can simply benefit from such. 17:12 < Robbo_> Lol someone make a forum, could be a good investment this early 17:12 < skelterjohn> Robbo_: http://groups.google.com/group/golang-nuts 17:12 < skelterjohn> which is linked on the website 17:13 < skelterjohn> it's the only one that i know of right now, and it's fairly low traffic (~5-10 messages per day) so good luck getting anyone to migrate to a different one 17:13 < Namegduf> Haha 17:13 < Namegduf> I guess it is low traffic now. 17:13 < skelterjohn> everyone is busy writing code 17:13 < Namegduf> It used to be massively busy. 17:13 < skelterjohn> it was never more than 30 or so per day 17:14 < Namegduf> Now we just get the occasional Ruby idiot who wants some features of Go, but really wants to be using Ruby 17:14 < skelterjohn> the "go doesn't have X, like Y does, there for Y > go" posts happen sometimes 17:14 < Namegduf> Suggesting it be made more like Ruby. 17:15 < Robbo_> if you know how to make a nice site and have the time you could make plenty of money out of go 17:15 < Namegduf> Sure, as with most other programming languages 17:15 < Robbo_> when i say know... i mean pro 17:15 < Robbo_> yeah, but other languages aren't new 17:16 < skelterjohn> well, 16637 messages total, since 11/10/09. Been 9 months since then, so that is more than 30 messages per day 17:16 < Robbo_> it is very yound 17:16 < Robbo_> that group will have a LOT of posts when it gets more popular 17:17 < skelterjohn> the posts will also be a lot less interesting, though :) 17:17 < Robbo_> indeed 17:18 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 17:18 -!- Fish [~Fish@9fans.fr] has joined #go-nuts 17:18 < Robbo_> if I get time some time next year and no one else has made a dominent Go site I think I might make it one of my projects 17:19 < Robbo_> simple sites built in php and then slowly port everything to go to showcase its power 17:19 < Robbo_> site* 17:19 < skelterjohn> golang.org is entirely go 17:19 < Robbo_> yeah I know 17:19 < skelterjohn> there is also http://www.gosnippets.org/ which seems neat 17:19 < skelterjohn> and go-lang.cat-v.org 17:19 < temoto> I hate it when people rebuild all tools in language X to advocate it. 17:20 -!- jchico [~jchico@cpe-98-14-12-209.nyc.res.rr.com] has quit [Ping timeout: 241 seconds] 17:20 < skelterjohn> why? it means you can do things in that language without worrying language-to-language interfacing 17:20 < skelterjohn> which is usually a huge pain 17:20 < Robbo_> skelterjohn, anymore go site you know of? 17:20 < skelterjohn> Robbo_: not off the top of my head 17:20 < Robbo_> sites* 17:21 < temoto> skelterjohn, because there is exactly no need to build a website in Go. 17:21 < skelterjohn> define "need" 17:21 < temoto> There are far more sophisticated tools. 17:21 -!- Namegduf [~namegduf@eu.beshir.org] has quit [Quit: Client restart.] 17:21 < Fish> that's probably the problem 17:21 < Robbo_> Why does it need to be a need? 17:21 < Fish> they are sophisticated 17:21 < skelterjohn> go's original purpose (it has extended) was to do parallel server programming 17:21 < skelterjohn> a web server seems quite appropriate for showcasing 17:21 -!- rutkowski [~adrian@078088207115.walbrzych.vectranet.pl] has joined #go-nuts 17:22 < Robbo_> Sometimes people want something and not need it 17:22 -!- Namegduf [~namegduf@eu.beshir.org] has joined #go-nuts 17:22 < skelterjohn> perhaps temoto's point is that certain programs only need to be written once? 17:22 < Robbo_> Not to mention the example I gave. The site written in Go would be a HUGE marketing step 17:22 < temoto> Partly that. 17:23 < skelterjohn> marketing is irrelevant :) 17:23 < Robbo_> Not to me 17:23 < temoto> Partly that putting effort into marketing steps seems awful for me. 17:23 < Robbo_> I make sites to make money 17:23 < Robbo_> There is no other motivation 17:23 < skelterjohn> but creating a well-written webserver in go is sort of a proof-of-concept for "go is useful because it can do interesting things easily" 17:23 -!- boscop_ [~boscop@f055056041.adsl.alicedsl.de] has joined #go-nuts 17:23 < temoto> Robbo_, and people visit them not because they're done in PHP or SMF, but because of their concept. Same here. 17:23 -!- boscop [~boscop@f055064232.adsl.alicedsl.de] has quit [Ping timeout: 276 seconds] 17:23 < Robbo_> And if I was to port one to go I would get hours of experience and then the marketing as well 17:24 < skelterjohn> Robbo_: go is a language. not a web site. 17:24 < Robbo_> My example was about what I would want to do 17:24 < Robbo_> Not what would need to be done 17:24 < Robbo_> I would port it to go for 2 reasons 17:24 < Robbo_> Marketing being the lesser reason 17:24 < Robbo_> The main reason would be learning 17:24 < Robbo_> Learning more about the languages 17:24 < Robbo_> language* 17:25 < Robbo_> I have 'reinvented the wheel' a few times for that reason 17:25 < Robbo_> to learn how it is done 17:25 < Robbo_> It's not about need 17:25 < skelterjohn> i feel like everyone in this conversation is talking about something slightly different 17:26 < Robbo_> I kind of do too :/ 17:26 < Robbo_> I'm half pissed though 17:26 < Robbo_> So I have an excuse! 17:26 < skelterjohn> what time zone are you in? 17:26 < Robbo_> Aussie 17:26 < Robbo_> It's 3.30am here 17:26 < skelterjohn> ok :) 17:27 < skelterjohn> i could have got that from you describing yourself as "pissed" without you being angry about anything, i suppose 17:27 < Namegduf> The critical problem with duck typing is how you factor in moorhens. 17:27 < Robbo_> Oh my bad 17:27 < Robbo_> Forgot about that 17:27 < Robbo_> I'm half drunk?? 17:27 < skelterjohn> no, i understood 17:27 < Robbo_> (doesn't sound as good) 17:27 < skelterjohn> and "I'm half drunk" sounds fine to an american 17:27 < Robbo_> heh 17:28 < Robbo_> I know a few americans etc, I forget to keep my 'slang' to myself 17:28 < skelterjohn> why would you bother? 17:28 < Robbo_> Because it can get confusing with certain people 17:28 < skelterjohn> your slang is just as good as mine 17:29 < skelterjohn> keeping it to yourself just keeps the confusion going 17:29 < Ginto8> yeppers 17:29 -!- jchico [~jchico@cpe-98-14-12-209.nyc.res.rr.com] has joined #go-nuts 17:30 < Robbo_> Hmmm I wonder how long until facebook brings out its email messaging system 17:30 < Robbo_> Attempting to take over gmail 17:30 < skelterjohn> i feel like the takeover is in the opposite direction 17:30 < Robbo_> Oh I have no doubt facebook could 'own' gmail 17:31 < Robbo_> The amount of people that use it 17:31 < Robbo_> I have no friends.... well 2 that I can think of actually that don't use facebook 17:31 < skelterjohn> not sure what you mean by 'own' 17:31 < Robbo_> Ummm 17:31 < Ginto8> uh Robbo_, facebook is owned by google 17:31 < Robbo_> Like if I kill you 17:31 < Robbo_> And I own you 17:31 < Robbo_> from killing you? 17:31 < Robbo_> in a game 17:31 < skelterjohn> Ginto8: facebook is not owned by google... 17:32 < Ginto8> it isn't? 17:32 < sauerbraten> like "OWNED! HAHAHA" ;_) 17:32 < skelterjohn> no 17:32 < Robbo_> nope 17:32 < sauerbraten> ;-) 17:32 < Ginto8> ok I feel retarded now 17:32 < Ginto8> =/ 17:32 < Robbo_> lol 17:32 < Ginto8> w/e 17:32 < Robbo_> if google owned google it would be way differnt 17:32 < sauerbraten> Ginto8: Youtube is owned by Google 17:32 < Ginto8> yeah I know 17:32 < Ginto8> but I heard from someone facebook is owned by google 17:32 < Robbo_> facebook I think is the second most used site over google.com 17:32 < Ginto8> but I guess that person is crazy 17:32 < sauerbraten> Ginto8 and the creators of farmville are owned by google now, too 17:33 < Ginto8> hm 17:33 < Robbo_> download done! 17:33 < Ginto8> interesting 17:33 < Ginto8> now just burn the iso 17:33 < Ginto8> and boot from it 17:33 < Robbo_> noes 17:33 < sauerbraten> What did you load? 17:33 < Robbo_> im going virtual atm 17:33 < Robbo_> partition later 17:33 < Ginto8> btw proof that you can use both OpenGL and SDL with go: 17:33 < Ginto8> http://img709.imageshack.us/img709/109/4002.png 17:33 < skelterjohn> Robbo_: you can also use a live CD 17:34 < skelterjohn> you can boot from the ubuntu install CD and use linux directly from if 17:34 < Robbo_> Ginto8, oh wow 17:34 < skelterjohn> install golang, etc 17:34 < skelterjohn> Ginto8: I'd like you to get that working for os x :\ 17:34 < Ginto8> Robbo_, yeah right now I'm trying to figure out how to get global camera panning to work 17:34 < Robbo_> I am in the process of building a new editor for a game 17:34 < Robbo_> I would like to build it in go if I can render 17:34 < skelterjohn> Ginto8: glTranslatef? :) 17:35 < Ginto8> skelterjohn, it's not that simple 17:35 < Robbo_> But the guy I'm doing it with is anti-google 17:35 < Ginto8> because there's also global rotation 17:35 < Ginto8> and I don't want panning messed up by rotation 17:35 < skelterjohn> then translate before rotating 17:35 < Ginto8> but ysee that creates the issue of the rotation origin not being the center of the screen 17:36 < skelterjohn> err 17:36 < Ginto8> yeah 17:36 < skelterjohn> i'm not so sure we're thinking about the same thing, then 17:36 < Ginto8> uh no we are 17:36 < Ginto8> if you translate 17:36 < Ginto8> then rotate 17:36 < skelterjohn> because the way i am thinking works fine :) i've done it many times 17:36 < Ginto8> it rotates around the translated point 17:37 < Ginto8> hm 17:37 < skelterjohn> yes, which would correspond to the center of your camera 17:37 < Ginto8> I wish 17:37 < Ginto8> for some reason it doesn't 17:37 < skelterjohn> then we aren't thinking exactly the same thing 17:37 < skelterjohn> which is fine - i haven't expressed what i'm thinking completely 17:37 < skelterjohn> irc is a pain for talking math 17:38 < Robbo_> ok so... 17:38 < Robbo_> i get 17:38 < Robbo_> this kernel requires x86-64 cpu, but only detected an i686 CPU. 17:38 < Robbo_> unable to boot 17:38 < Ginto8> do you have a 64 bit comp? 17:38 < sauerbraten> wrong .iso? 17:39 < Robbo_> yes 17:39 < Ginto8> did you set up virtualbox or w/e to be 64 bit? 17:39 < sauerbraten> settings -> 64 17:39 < sauerbraten> bit 17:39 < sauerbraten> ;) 17:39 < Robbo_> pretty sure i did 17:39 < Robbo_> but ill re check 17:39 < sauerbraten> check again, won't hurt 17:39 < skelterjohn> Ginto8: say your world is made up of two boxes. you have a method drawworld() which translates to box 1's location, draws it, and then translates to box 2's location and then draws it. 17:39 < Ginto8> yes? 17:40 < Ginto8> I should rotate before I translate with that for global rotation 17:40 < skelterjohn> if you translate -x, -y where the camera location is x,y , then rotate the camera angle, then call drawworld(), it will work fine 17:40 < skelterjohn> or negative the camera angle, i forget 17:40 < Ginto8> hm 17:40 < Ginto8> well the way I'm doing it 17:40 < Ginto8> it translates to -x,-y 17:40 < skelterjohn> i'm gonna make a pastebin 17:40 < Ginto8> then does it 17:40 < Ginto8> and it fails 17:41 < Ginto8> it rotates around the translated location 17:41 < Ginto8> and kills a kitten 17:41 < Ginto8> =( 17:42 < sauerbraten> poor kitten :/ 17:42 < Ginto8> hm even my zooming is based on the translated origin =( 17:43 < Robbo_> hmmm i cant see any 86 vs 64 options 17:43 < skelterjohn> http://pastebin.com/V695LfAB 17:43 < Ginto8> then dl the 64 bit version 17:43 < skelterjohn> that is what i mean 17:43 < Robbo_> i did 17:43 < Robbo_> i think 17:43 < Robbo_> lol let me check 17:43 < skelterjohn> oh except i forgot to draw the boxes 17:43 < skelterjohn> but you can figure out where that would go 17:43 < Robbo_> yeah it is 17:43 < Robbo_> ubuntu-10.04-desktop-amd64.iso 17:43 < Robbo_> hmm 17:44 < Robbo_> prob not it 17:44 < Robbo_> sigh 17:44 < sauerbraten> Robbo_: i think there is a special VirutalBox-iso of Ubuntu 17:44 < sauerbraten> ;) 17:44 * Robbo_ shouldnt drink and try to run this shit 17:44 < sauerbraten> at least i saw something like that a long time ago 17:44 < Ginto8> the negative rotation is just to make it go clockwise by default right? 17:44 < skelterjohn> Ginto8: not sure what you mean 17:44 < Ginto8> you rotate negatively 17:45 < skelterjohn> dependso n what cameraAngle is 17:45 < Ginto8> is that to make positive go clockwise? 17:45 < skelterjohn> if it is positive, then the rotation will be negative 17:45 < Ginto8> yeah I know 17:45 < Ginto8> but why? 17:45 < skelterjohn> Ginto8: it might not be negative - i can't remember. 17:45 < Ginto8> what's the reason for negation 17:45 < skelterjohn> if it is, for the same reason you translate the negative 17:45 < skelterjohn> but i could be off on a sign or two 17:45 < sauerbraten> Robbo_: mhm seems like there is not 17:45 < skelterjohn> i could look up some code that does this 17:46 < Ginto8> yeah that would have the same issue 17:46 < skelterjohn> actually, no recent game i wrote has a rotating camera, lol 17:46 < Ginto8> it's based on the origin 17:46 -!- wrtp [~rog@92.17.68.115] has quit [Quit: wrtp] 17:47 < Ginto8> translated origin* 17:48 < skelterjohn> rotate before translating, sorry 17:48 < skelterjohn> (just tested) 17:48 < Ginto8> but I want it to move based on the screen 17:48 < skelterjohn> and positive will be counter clockwise 17:48 < sauerbraten> skelterjohn: what games did you write? 17:48 < skelterjohn> sauerbraten: nothing that you'd be able to download and play. just a hobbyist 17:48 < Ginto8> for example translating by (1,0) will move the camera to the right, regardless of rotation 17:49 < sauerbraten> skelterjohn: oj ok 17:49 < Ginto8> I'm gonna have to use the rotation matrix aren't I? 17:49 < sauerbraten> *oh 17:49 < Ginto8> like rotating a vector 17:49 < Ginto8> manually 17:49 < skelterjohn> http://pastebin.com/JsCC1uQ0 17:49 < skelterjohn> that is copied from a game i just ran and tested 17:50 -!- boscop_ [~boscop@f055056041.adsl.alicedsl.de] has quit [Ping timeout: 264 seconds] 17:50 < skelterjohn> if you comment out that line rotating 10 degrees, it will rotate clockwise 17:50 < skelterjohn> and go as if the camera had that position and rotation, etc 17:50 < Ginto8> so can you do something like this? 17:50 < skelterjohn> Ginto8: no you won't have to do it manually - that's what glRotatef function is for - it changes your current transform matrix 17:50 < Ginto8> yeah I know 17:51 < Ginto8> but if you rotate before the translate 17:51 -!- inclooye [~inklewyay@NW-ESR1-74-215-114-218.fuse.net] has joined #go-nuts 17:51 < skelterjohn> (which i am) 17:51 < Ginto8> a translate of (1,0) will move you differently 17:51 < skelterjohn> than if you rotate after? yes certainly. 17:51 < Ginto8> well take a dude in the middle of a play field 17:51 < Ginto8> and you can only see in from a window above 17:52 < Ginto8> and the playfield itself can rotate 17:52 < skelterjohn> then taht would be rotating after the translation 17:52 < Ginto8> moving right from his, rotated perspective will provide a different vector to you,the viewer 17:52 -!- incluye [~inklewyay@NW-ESR1-74-215-114-218.fuse.net] has quit [Ping timeout: 245 seconds] 17:53 < Ginto8> so if you want him to move in a vector (1,0) from your perspective 17:53 < skelterjohn> anyway - the pastebin i copied in here works. honest! 17:53 < Ginto8> not the way I want, unfortunately 17:53 * Ginto8 is a picky bastard 17:53 < skelterjohn> then i'm not sure what you want 17:53 < skelterjohn> what i pasted will move a camera around a static world 17:53 < Ginto8> I'm not either, that's the issue =P 17:54 < skelterjohn> where the translation is in the world's plane, and then the camera spins once it gets there 17:54 < Robbo_> hmmm seems virtualbox doesn't support 64bit 17:55 < Robbo_> round 2 17:55 < skelterjohn> Robbo_: live CD :) 17:55 < skelterjohn> you will lose everything when you reboot (unless you save it onto a different disk), but it's ok for trying stuff 17:55 -!- snearch [~snearch@f053009058.adsl.alicedsl.de] has joined #go-nuts 17:57 < Robbo_> nah im just doing virtual stuff for now 17:57 < Robbo_> until parts arrive 17:57 < Robbo_> then i will partition windows and unix 17:58 < Robbo_> and thinking about a second pc to just be unix 17:58 < Robbo_> might look at prices for that now actually 17:58 < skelterjohn> if it doesn't need to be powerful, you can get some pretty sweet and cheap computers 17:58 < skelterjohn> one of those eeeeee PCs, maybe 18:00 < Robbo_> well its basically the sitaution im in 18:00 < Robbo_> i have my main pc 18:00 < Robbo_> mobo just died 18:00 < Robbo_> so while buying new mobo i bought a better cpu 18:00 < Robbo_> and i am making a media centre for the old man 18:00 < Robbo_> but the gpu i got for it is low profile and doesnt like the case 18:00 < Robbo_> so im thinking 18:01 < Robbo_> get a mini mobo 18:01 -!- artefon [~thiago@vpn-226.dcc.ufmg.br] has quit [Ping timeout: 260 seconds] 18:01 < Robbo_> use it with the media centre cpu 18:01 < Robbo_> then i have a spare mobo + case + some ram maybe 18:01 < Robbo_> so i get a cpu 18:01 < Robbo_> and then.... 18:01 < Robbo_> my main pc needs a goo gpu soon 18:01 < Robbo_> so when i get that 18:01 < Robbo_> i have a spare gpu 18:02 < Robbo_> so i essentially have a small price to pay for a backup pc 18:02 < Robbo_> which can also be a test pc 18:02 < skelterjohn> Just got this (http://www.newegg.com/Product/Product.aspx?Item=N82E16856158009) for a HTPC 18:02 < skelterjohn> it's pretty nice 18:02 < skelterjohn> quiet 18:03 < Robbo_> what you use it for? 18:03 < MaybeSo> see if you can pick up one of these: http://www.seamicro.com/?q=node/38 :D 18:03 -!- wrtp [~rog@92.17.68.115] has joined #go-nuts 18:03 < skelterjohn> hooked it up to my HDTV 18:03 -!- geocalc [~geobsd@lns-bzn-60-82-254-226-156.adsl.proxad.net] has joined #go-nuts 18:03 < skelterjohn> we watch hulu, fancast (comcast's online video service), downloading anime, etc 18:04 < Robbo_> ah ok 18:04 < Robbo_> we dont get that 'free' luxury here 18:04 -!- lmoura [~lmoura@187.78.130.104] has quit [Ping timeout: 265 seconds] 18:04 < skelterjohn> the 2nd one is not free. the 3rd one is as free to you as it is to me. 18:05 -!- rp2 [~rp2@dyn068178.nbw.tue.nl] has left #go-nuts ["-"] 18:05 < skelterjohn> does hulu cost money in australia? 18:05 < Robbo_> just can't use it 18:05 < Robbo_> last time I checked 18:05 < skelterjohn> ah 18:06 < Venom_X> try a proxya 18:06 -!- GeoBSD [~geobsd@lns-bzn-26-82-254-89-236.adsl.proxad.net] has quit [Ping timeout: 276 seconds] 18:06 -!- fenicks1 [~christian@log77-3-82-243-254-112.fbx.proxad.net] has joined #go-nuts 18:06 < skelterjohn> MaybeSo: that computer seems a bit overwhelming for what i need... 18:06 < Robbo_> Venom_X, too slow 18:07 < skelterjohn> what's a proxya 18:07 < Robbo_> faster to just use a torrent or something 18:07 < skelterjohn> proxy 18:07 < skelterjohn> ah 18:07 < Venom_X> proxy* 18:07 < skelterjohn> yeah - all the hulu servers are in not-australia, so it's tough to use 18:08 < Robbo_> They reject us 18:08 < Robbo_> And proxies are slow and annoying 18:08 -!- wrtp [~rog@92.17.68.115] has quit [Client Quit] 18:08 < Robbo_> Easier to just download from somewhere else 18:09 -!- lmoura [~lmoura@187.78.130.104] has joined #go-nuts 18:09 -!- fenicks [~christian@log77-3-82-243-254-112.fbx.proxad.net] has quit [Ping timeout: 264 seconds] 18:09 < skelterjohn> thepiratebay 18:13 < Robbo_> Indeed 18:13 -!- cmarcelo [~cmarcelo@enlightenment/developer/cmarcelo] has quit [Remote host closed the connection] 18:13 < Ginto8> ok can someone give me a good pastebin-like site with go syntax highlighting? 18:14 -!- cmarcelo [~cmarcelo@enlightenment/developer/cmarcelo] has joined #go-nuts 18:14 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts 18:14 -!- mode/#go-nuts [+v iant] by ChanServ 18:15 -!- tvw [~tv@e176006156.adsl.alicedsl.de] has joined #go-nuts 18:16 < skelterjohn> i miss gopaste.org 18:16 < Ginto8> well then can someone help me figure out if there's anything wrong with how I'm doing texture loading: 18:16 < Ginto8> http://pastebin.com/cEUCbH14 18:16 < MaybeSo> I was pointed at http://paste.pocoo.org/ the other day 18:17 -!- gr0gmint [~gr0gmint@87.60.23.38] has joined #go-nuts 18:17 < Ginto8> well then 18:17 < Ginto8> http://paste.pocoo.org/show/237130/ 18:18 < Ginto8> what happens is when the texture gets applied to a quad the quad is completely black 18:18 < Robbo_> man some of that confuses me 18:18 < Robbo_> if r,ok := textures[filename]; ok { 18:18 < skelterjohn> maybe you are applying it to the wrong side of the quad 18:18 < Robbo_> what does the comma mean? 18:18 -!- artefon [~thiago@189.107.180.178] has joined #go-nuts 18:18 < Robbo_> oh 18:18 < Robbo_> nvm 18:18 < Ginto8> Robbo_, it's a multiple assignment in a short declaration 18:18 < Robbo_> lol 18:18 < skelterjohn> Robbo_: r, ok := mapInstance[key] 18:18 < KirkMcDonald> Robbo_: You should read the spec. 18:18 < Ginto8> textures is a map 18:18 < Robbo_> yeah i just realized 18:18 < skelterjohn> ok gets true or false, depending on if the key was in there 18:19 < Robbo_> after i asked 18:19 < Robbo_> i was like oh 18:19 < Robbo_> *feels like moron* 18:19 < Ginto8> OH 18:19 < Ginto8> found the issue 18:19 < Ginto8> I had the default tex coords fucked up 18:19 < Robbo_> Glad to see gl working :) 18:20 -!- rlab_ [~Miranda@24-185-113-92.pool.ukrtel.net] has joined #go-nuts 18:20 < Ginto8> hm 18:20 < Ginto8> seems that OpenGL texture Y coords are weird 18:20 < Ginto8> well then 18:20 * Ginto8 swaps em 18:22 -!- rlab [~Miranda@136-187-113-92.pool.ukrtel.net] has quit [Ping timeout: 258 seconds] 18:23 < Ginto8> and we have texturing! 18:23 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts 18:23 < Ginto8> http://img709.imageshack.us/img709/109/4002.png 18:24 < skelterjohn> i don't see any texturing :) 18:24 < skelterjohn> just vertex shading 18:24 -!- lmoura [~lmoura@187.78.130.104] has quit [Ping timeout: 265 seconds] 18:24 < skelterjohn> wrong link? 18:25 < Ginto8> yeah sorry 18:26 < Ginto8> http://img188.imageshack.us/img188/4859/libgtest004.png 18:26 < Ginto8> upper right one has vertex shading as well 18:27 < skelterjohn> excellent. looks good 18:27 < skelterjohn> i'd love for some opengl package that worked on every platform to become part of the distribution 18:28 < Robbo_> so would I 18:28 < Robbo_> I think that would be something that would bring more people to try out the language 18:28 < Ginto8> I'm probly gonna release libG and libGB 18:29 < skelterjohn> what is the B for? 18:29 < Ginto8> batch 18:29 < KirkMcDonald> I don't necessarily think OpenGL belongs in the standard library. 18:29 < Ginto8> it's gonna have an event driven stuff 18:29 < Ginto8> s/an // 18:29 < Ginto8> and tile/sprite rendering 18:29 -!- snearch [~snearch@f053009058.adsl.alicedsl.de] has quit [Quit: Verlassend] 18:30 -!- boscop [~boscop@f055056041.adsl.alicedsl.de] has joined #go-nuts 18:30 < skelterjohn> KirkMcDonald: maybe not - but *some* easily installable package that opens up opengl without regards to platform 18:30 < skelterjohn> or having to do cgo on your own 18:30 < KirkMcDonald> skelterjohn: Yes. 18:31 < Ginto8> well my lib is based on SDL 18:31 < Ginto8> so it should be cross platform 18:32 < skelterjohn> everything works, in theory :) 18:32 < skelterjohn> it will take some effort to make everything compile easily for everyone 18:32 < skelterjohn> no small task 18:32 < Robbo_> Been working with SDL lately 18:32 < Robbo_> And guichan 18:33 < Robbo_> oh 32bit ub 18:33 < Robbo_> done 18:33 < Robbo_> lets see if this one works... 18:35 -!- tvw [~tv@e176006156.adsl.alicedsl.de] has quit [Ping timeout: 265 seconds] 18:37 -!- Fish [~Fish@9fans.fr] has quit [Ping timeout: 265 seconds] 18:39 -!- mischief [~mischief@unaffiliated/mischief] has quit [Read error: Connection reset by peer] 18:39 -!- mischief [~mischief@unaffiliated/mischief] has joined #go-nuts 18:39 -!- mischief [~mischief@unaffiliated/mischief] has quit [Excess Flood] 18:40 -!- mischief [~mischief@unaffiliated/mischief] has joined #go-nuts 18:40 -!- mischief [~mischief@unaffiliated/mischief] has quit [Excess Flood] 18:40 -!- mischievious [~mischief@unaffiliated/mischief] has joined #go-nuts 18:40 -!- mischievious [~mischief@unaffiliated/mischief] has quit [Excess Flood] 18:41 < Ginto8> it seems that mischieve is causing mischief 18:41 < Ginto8> mischief* 18:42 -!- Fish [~Fish@9fans.fr] has joined #go-nuts 18:43 < Ginto8> hmm... are import's recursive? 18:44 < Ginto8> like, I know C's #include's can then #include other files 18:44 < Ginto8> but can go's imports do that? 18:44 < rsaarelm> Don't think so. 18:44 < Ginto8> okey dokey 18:44 < Ginto8> I didn't think so either, but I wanted to check 18:45 < rsaarelm> If foo imports bar and bar imports baz, you don't get baz in foo. 18:45 < rsaarelm> Like you would with C headers. 18:46 < Ginto8> ok goodie 18:48 < skelterjohn> grading undergrad quizzes and homeworks always depresses me 18:50 -!- mattikus [~mattikus@witty.mcs.anl.gov] has quit [Ping timeout: 240 seconds] 18:52 -!- mattikus [~mattikus@alcfwl136.alcf.anl.gov] has joined #go-nuts 18:53 -!- gid [~gid@220.253-225-62.VIC.netspace.net.au] has joined #go-nuts 18:54 -!- mischievious [~mischief@unaffiliated/mischief] has joined #go-nuts 18:54 -!- mischievious [~mischief@unaffiliated/mischief] has quit [Excess Flood] 18:54 < Robbo_> so im in ubuntu 18:54 < Robbo_> and i just get a command promt 18:54 -!- mischievious [~mischief@unaffiliated/mischief] has joined #go-nuts 18:54 < Robbo_> prompt* 18:54 < skelterjohn> good start 18:54 < skelterjohn> oh with no UI 18:54 < Robbo_> too drunk to know what im doing :D 18:54 -!- carllerche [~carllerch@99.13.242.166] has joined #go-nuts 18:54 < skelterjohn> try "startx" 18:55 < Robbo_> yes 18:55 < Robbo_> a console 18:55 < Robbo_> k 18:55 < Robbo_> getting a shit load of errs 18:55 < Robbo_> errors 18:55 < skelterjohn> k hehe 18:55 < Robbo_> i think something has gone wrong? 18:55 < skelterjohn> i don't know, then 18:56 < Robbo_> ill just wait till i patition and put it straight on my hdd instead of a vm 18:56 -!- gnuvince_ [~vince@70.35.166.126] has joined #go-nuts 18:56 < Robbo_> and hope that works 18:57 < skelterjohn> that generally works fine 18:57 < skelterjohn> in any case - i think #ubuntu is a good place to ask ubuntu questions 18:57 < gid> Hey, I just discovered go, and it looks great... but I'm bothered by the lack of exceptions. Anybody else here have an opinion (either way) in this area? 18:57 < sauerbraten> Robbo_: that's a good idea... maybe you aren't drunk then anymore ;) 18:57 < sauerbraten> Robbo_: and btw it should work 18:57 < Robbo_> lol 18:58 < Robbo_> some time this week i wont be drinking 18:58 < Robbo_> maybe.... 18:58 < plexdev> http://is.gd/dqGWw by [Robert Griesemer] in go/doc/ -- go spec: specify len/cap for nil slices, maps, and channels 18:58 -!- lmoura [~lmoura@187.78.130.104] has joined #go-nuts 18:58 -!- gnuvince [~vince@70.35.166.98] has quit [Ping timeout: 246 seconds] 18:58 < Robbo_> think ill go play some hon before i sleep 18:59 < skelterjohn> gid: exceptions in, for instance, java are just a lazy way to propagate errors. most exceptions that are actually caught somewhere other than the top level are thrown from one level deeper than they're caught 18:59 < skelterjohn> which is really just a strange way of returning an error 19:00 < skelterjohn> for systemic "eveyrthing has gone wrong" type exceptions, panic works fine 19:01 < skelterjohn> passing up an error along with the regular return value is easy in go, since functions can return multiple types 19:01 < gid> skelterjohn: yeah, but that's when they're done wrong, and I've seen lots of java like that. But done right, they can lead to really, really clean code. 19:01 < skelterjohn> it also forces the programmer using that function to either handle the error, or specifically ignore it 19:01 -!- g0bl1n [~anonymous@a213-22-76-1.cpe.netcabo.pt] has quit [Quit: g0bl1n] 19:01 < skelterjohn> i would argue that when it's "done right", it's something you can do easily with error returns 19:01 < gid> Without long chains of err = fn(), err |=fn or chains of ifs etc. etc... 19:02 < skelterjohn> i write functions that often have a return type with multiple values, one of which is "err os.Error" 19:03 < skelterjohn> and when i call other functions, i'll do "if val, err := theFunction(); err != nil { return }" 19:03 < skelterjohn> which will pass that error up to the callee if it occurred 19:04 < gid> I agree you can do it, and I can see that multiple returns help, but it's the sort of code your talking about that can be avoided with the right choice of exceptions. Ok, if you're dealing with lots of system calls you can't, and the multi-return value is an improvement, but in application layers above this level it's usually possible to avoid lots of passing about of error values with the right choice of exceptions, and the code is much clean 19:06 < skelterjohn> there is a cost vs reward issue 19:06 < skelterjohn> i think the main one was what to do about exceptions thrown in other goroutines 19:06 < skelterjohn> and in the end, i believe the dev team decided the benefit wasn't worth the effort 19:06 < skelterjohn> i think there is something in the faq 19:06 < gid> To take an extreme example, compare a good bash script written with set -e and the occasional || die... 19:06 < gid> Ah, I can see that. 19:07 < skelterjohn> http://golang.org/doc/go_lang_faq.html#exceptions 19:07 -!- jchico [~jchico@cpe-98-14-12-209.nyc.res.rr.com] has quit [Quit: Leaving] 19:08 -!- b00m_chef [~watr@216.251.138.130] has joined #go-nuts 19:08 < gid> Actually, given the quality of most of the code I see using exceptions, I can see why you'd want to ditch them too. Except of course IMHO I think I get it right personally, and I would miss them..... (following you link now) 19:10 -!- plainhao [~plainhao@mail.xbiotica.com] has quit [Quit: plainhao] 19:10 < skelterjohn> it's important to realize that the dev team's stance, with regard to features in other languages, is to not ask "is there a reason we can't do this too?", but instead to ask "why should we do this? is there something that can't be done if we don't?" 19:10 < skelterjohn> that is, they need a reason *to* include it, rather than a reason *to not* include it 19:14 < gid> I guess that my argument is that it's not the idiom, it's the poor choice of exceptions that are the problem, and I still believe that exceptions really are a big improvement over passing errors everywhere. I'm basing a lot of this on C++ work with exception-safe cons/destructors and the old (sadly under used) construction is resource acquisition) paradigm.. hmmm.... so there's more to it than just the exceptions I guess. 19:15 < gid> But the "why" for me is "because I can write really clean looking uncluttered code", which I think is a big driver of go. 19:15 < skelterjohn> yeah, i'm more or less with you 19:16 < skelterjohn> but the lack of them does not bother me as much as, say, the lack of generics :) 19:16 -!- yaroslav [~yaroslav@ppp83-237-188-175.pppoe.mtu-net.ru] has joined #go-nuts 19:16 < skelterjohn> no generics means there really are some things i just cannot do efficiently, now 19:16 < skelterjohn> efficiently and safely, that is 19:17 < gid> hehe... my guess is that many people will agree, and they'll eventually arrive. 19:17 < gid> not as hopeful with the exceptions though. 19:17 < skelterjohn> i think that exceptions will remain off the list, yeah 19:18 -!- yaroslav [~yaroslav@ppp83-237-188-175.pppoe.mtu-net.ru] has left #go-nuts [] 19:19 <+iant> well, there is panic/recover 19:20 <+iant> I very much doubt there will be any other form of exceptions 19:21 < gid> Ah well. I'll just have to find something to code and see if the other goodies make up for it! 19:21 < skelterjohn> right - for systemic problems that invalidate long chains of function calls, panic is appropriate. for one step errors that can be dealt with and corrected, returning an error value is appropriate 19:21 < sauerbraten> that was discussed yesterday, too... result: most exception handling is done by returned error codes 19:21 < gid> panic/recover is more like a setjmp/longjump thing? 19:22 < skelterjohn> i don't know...but calling recover() stops a panic from propagating up the call stack 19:23 <+iant> I wouldn't call it setjmp/longjmp, panic does execute deferred functions as it unwinds the stack 19:23 <+iant> that is different from longjmp 19:24 < skelterjohn> oh that's interesting. didn't know that 19:24 < gid> scuse, brb 19:29 -!- awidegreen [~quassel@62.176.237.78] has quit [Remote host closed the connection] 19:31 -!- carllerche [~carllerch@99.13.242.166] has quit [Quit: carllerche] 19:32 < gid> I don't think I'm really going to understand how panic/recover might work to achieve clean code until I've absorbed defer as a control mechanism... 19:32 < gid> might take a bit of poking 19:33 < skelterjohn> absorb meaning something more than reading the definition? 19:33 < skelterjohn> why it's useful, etc? 19:33 < gid> yeah... it looks like a closure that you pop at the end of your function 19:34 < skelterjohn> here is an example that might make it make sense 19:34 < skelterjohn> say i have two functions: openTheFile() and closeTheFile() 19:34 < skelterjohn> i write another function foo() {openTheFile(); defer closeTheFile(); do some other stuff that may or may not panic } 19:35 < skelterjohn> now i know that if foo ever returns, either explicitly through "return;" or a panic occuring somewhere, the file will definitely get closed 19:35 < skelterjohn> or at least, closeTheFile() will get called 19:36 < skelterjohn> so, one of the big problems with C style error handling was having conditions to do all these things for the various contingencies that could happen 19:36 < skelterjohn> now you only have to defer them 19:36 < gid> Ok, so that's like the freeing resources in destructors I mentioned, or sort of like a finally block. That's looking good. 19:36 < skelterjohn> those are both things that have something in common 19:37 < skelterjohn> as in, they cause something to happen when you finish the other stuff 19:38 < gid> well, that's just made me feel quite a bit better about missing exceptions right there 19:38 < skelterjohn> excellent. 19:40 < gid> I'm keen to actually do something, is there a clearinghouse for productive ways to contribute somewhere? 19:41 < skelterjohn> a lot of people ask that question, but it always seems like the wrong question to me 19:41 < skelterjohn> i think the question should be "what kinds of things do i like to do. i'll try it in go!" 19:44 < plexdev> http://is.gd/dqK51 by [Russ Cox] in go/src/pkg/crypto/rand/ -- crypto/rand: add missing Unlock 19:45 < gid> Well, on a home front I'm a gentoo user, and I think that as a package manager, portage is like a big glob of twigs and feathers held together with bird poo. It would be interesting to tackle that; except I strongly suspect pointless. 19:45 < anykey> skelterjohn: I think people are not good at picking things to play around with, and look for what's "needed" in order to make go better, so they'd try a "real" task in go 19:46 < gid> It's the old... if nobody's going to use it, why do it? 19:46 < anykey> skelterjohn: which is why they ask that question to get one handed to them :-) 19:46 < skelterjohn> i suppose 19:46 < skelterjohn> i'm not saying it's not a valid way to approach things. it's just not the way i approach things. 19:46 < gid> the hand of go.. 19:47 < anykey> gid: I'd do something I'd have fun with. If portage scratches your itch, why not do it? 19:49 < skelterjohn> portage sounds like a complex task to learn a language with 19:49 < gid> ... plus: it's got some interesting graph structures, does a fair bit of OS interaction and dealing with shell scripting etc. 19:49 < skelterjohn> i found that it took me a few iterations of projects to get the go style right. assuming i have, at this point 19:49 < gid> ...minus: I'll get BBQ'd not just flamed. 19:50 < anykey> okay, I just wanted to inspire you to look for fun in programming 19:50 < skelterjohn> now i feel like a downer 19:50 < anykey> heh 19:50 < gid> No, you're right, I agree. After all, go really did look like fun, that's why I'm here at all. 19:50 < anykey> hard to get right. 19:50 < skelterjohn> with me, for instance, i'm a grad student doing machine learning 19:51 < skelterjohn> so i wanted to use go for some inference stuff 19:51 < skelterjohn> which requires linear algebra to do efficiently 19:51 < skelterjohn> so i wrote gomatrix 19:51 < anykey> I am mostly lurking here in order to read my irc logs some day and have some use of what has been said 19:51 < skelterjohn> and with the help of a few others, made it into something fairly stable and idiomatic 19:52 < gid> anykey, that's very forward thinking of you 19:52 < sauerbraten> are there methods to get information about the system, like what OS is used and which ind of processor? in python there are those in os-pkg, but i couldn't find them in go's os pkg 19:53 < anykey> I have not been very good at my first try to do something with go, but my boss has authorized me to try go for production work, and if it doesn't work out, fine, but if it does work out, there's more programming going to be allotted to go. 19:53 < gid> skelterjohn, you're holding the maybe this can be of real use card then 19:53 < skelterjohn> yeah - the fact that a good matrix library would be well-used was very good encouragement to work hard on it 19:54 < anykey> skelterjohn: I am a software engineer, schooled in traditional software engineering. go is downright an adventure for me, and I like it (I think.) 19:54 < anykey> it's a fine deviation from other languages. 19:54 < skelterjohn> i like it 19:55 < skelterjohn> i don't bother learning new languages very often 19:55 < skelterjohn> so far it's C/C++, java, python, objective-C (for iPhone game dev) and now Go 19:55 < skelterjohn> and i can write small amounts of code in other languages 19:55 < anykey> I am really looking forward to a new gc for go, because the gcc backend will have gc by then; gcc integration would really be a big selling point for some people I know 19:56 < skelterjohn> but not particularly well 19:56 < skelterjohn> you mean like... gccgo? 19:56 < anykey> yeah 19:56 < skelterjohn> ok, it exists 19:56 < skelterjohn> ? 19:56 < skelterjohn> party time! 19:56 < anykey> it has no garbage collection 19:56 < skelterjohn> ahh 19:57 < anykey> "long running programs are not supported" 19:57 < anykey> it WILL have the new gc, when that's finished. 19:57 < skelterjohn> gc meaning both "go compiler" and "garbage collector" always gets me 19:57 < anykey> there's virtually no way to free memory in gccgo. 19:57 < skelterjohn> and when you say gc and gcc in the same sentence, i assumed compiler 19:57 < anykey> yeah, my bad. 19:57 < anykey> okay. 19:57 < anykey> but I am looking forward to it. 19:58 < skelterjohn> not your fault - i think they should have called it goc instead of gc 19:58 < gid> That's what I thought. I like terse, I'm very tired of the the multicoloured raincoat of C++, python is ugly, java is really long-winded. In fact the language I've liked most in recent years has been C#. So go seems like a breath of fresh air to me. 19:58 -!- rutkowski [~adrian@078088207115.walbrzych.vectranet.pl] has quit [Quit: WeeChat 0.3.3-dev] 19:58 < skelterjohn> yeah - i feel like it's impossible to write java code without a massive tank of an IDE backing you up 19:58 < sauerbraten> has anybody actually read my question? 19:58 < skelterjohn> to write boilerplates and refactor 19:59 -!- rutkowski [~adrian@078088207115.walbrzych.vectranet.pl] has joined #go-nuts 19:59 < skelterjohn> sauerbraten: i don't know the answer to your question 19:59 < gid> Anyway, thx for the discussion guys, I wish you well with your respective projects 19:59 < sauerbraten> ok cause normally i always got an answer within 2 mins :) so now i was a bit confused :D 19:59 < sauerbraten> i'll search the pkg docs 20:01 < sauerbraten> ah os.Hostname() returns the pc's name in a network... that's a beginning 20:01 < anykey> sauerbraten: whoops sorry, I think you might examine whether /proc exists 20:01 -!- bubobibeba [~chatzilla@205.236.184.16] has joined #go-nuts 20:01 < skelterjohn> anykey: that isn't exactly os independent 20:02 < sauerbraten> that's what i wanted to say too 20:02 < sauerbraten> Go runs on win, doesn't it? 20:02 < anykey> no. windows doesnt have proc. but hey, it's a start 20:02 < skelterjohn> os x doesn't, either 20:02 < skelterjohn> go has some windows ports. i think it might be officially supported, now 20:02 < sauerbraten> so if /proc exists, it's most likely a unix/linux system? 20:03 < skelterjohn> sauerbraten: almost certainly. well, i could make such a directory on my computer 20:03 < anykey> in Linux, you can obtain kernel version from /proc/version, and cpu information /proc/cpuinfo. I dunno about others. 20:03 < KirkMcDonald> Windows support is still experimental, as I understand it. 20:03 -!- rutkowski [~adrian@078088207115.walbrzych.vectranet.pl] has quit [Client Quit] 20:03 < sauerbraten> mhm ok 20:03 < KirkMcDonald> (I would not e.g. run a production service written in Go on Windows, yet.) 20:03 < anykey> I haven't used Windows in almost a decade. 20:03 < sauerbraten> let me see what i can do with these info 20:05 < anykey> sauerbraten: if you're gonna write a module that does it, in case it hasn't been done before, you could include that as a form of detection for linux systems. A common struct could still be used, with unknown values for what you don't know. 20:06 < skelterjohn> i don't think it's a good way to detect linux systems. *if* you know it's linux, then you can examine the files in /proc 20:06 < skelterjohn> but if there are files in /proc, it is not necessarily linux 20:06 -!- b00m_chef [~watr@216.251.138.130] has quit [Ping timeout: 260 seconds] 20:06 < sauerbraten> anykey: i'll think about it... atm i just want to get information about the system my program is running on, so not much info, just enoug 20:06 < sauerbraten> h 20:07 < sauerbraten> shouldn't Go itself know on which platform it is installed? 20:07 < skelterjohn> seems reasonably to me :) 20:07 < anykey> yes, umm, the environment vars GOARCH and GOOS are there, but I don't know, I think they are compile-time only 20:08 < skelterjohn> can't depend on env vars either :) 20:08 < anykey> I mean, a machine running your program might not necessarily define them 20:08 < skelterjohn> one thing to keep in mind - the OS and cpu arch are known at compile time 20:08 < skelterjohn> if not at code writing time 20:08 < sauerbraten> yeah right... didn't think about that 20:09 < skelterjohn> not sure how to leverage that knowledge, at the moment 20:09 -!- gr0gmint [~gr0gmint@87.60.23.38] has quit [Quit: leaving] 20:09 < sauerbraten> but a program is normally used ready-to-run, as binary, right? 20:10 < sauerbraten> can someone explain the difference between os.ForkExec() and sxec.Run()? 20:10 < sauerbraten> *exec.Run 20:10 < sauerbraten> *+to mee 20:10 < anykey> is there a ftw() or nftw() in Go? 20:11 < skelterjohn> exec.Run is a function with a receiver type 20:11 < skelterjohn> so you have a Cmd struct 20:11 < KirkMcDonald> skelterjohn: No, it is not. 20:11 < skelterjohn> my bad 20:11 < skelterjohn> you're right 20:11 < KirkMcDonald> skelterjohn: It *returns* a Cmd struct. 20:11 < skelterjohn> it's listed right next to some functions with receiver types, though :) 20:11 < KirkMcDonald> It is effectively the constructor for the Cmd struct. 20:12 < skelterjohn> i wonder why it gets indented under the Cmd struct? 20:12 < skelterjohn> in the godoc 20:12 < KirkMcDonald> exec.Run takes three ints, representing what to do with the standard pipes. 20:12 < KirkMcDonald> os.ForkExec takes a slice of *File objects to represent them. 20:13 < sauerbraten> what a huge difference :D 20:13 < KirkMcDonald> ForkExec returns a pid, exec.Run returns a Cmd object (which contains the pid). 20:14 < sauerbraten> maybe they should be merged? 20:14 < KirkMcDonald> sauerbraten: But it is a big difference! The ints accepted by exec.Run aren't pids, they are supposed to be one of a few predefined constants. 20:14 < KirkMcDonald> sauerbraten: I suspect that one calls the other. 20:14 < KirkMcDonald> (Specifically, I bet that exec.Run calls os.ForkExec.) 20:14 -!- bubobibeba [~chatzilla@205.236.184.16] has quit [Remote host closed the connection] 20:16 < sauerbraten> KirkMcDonald: wouldn't it be easier to make it one method, with a bool parameter with wich you can tell the method how to handle the std pipes? 20:16 -!- artefon [~thiago@189.107.180.178] has quit [Ping timeout: 265 seconds] 20:17 < KirkMcDonald> os.ForkExec is a fairly literal wrapper around the relevant syscalls. 20:18 -!- artefon [~thiago@189.107.180.178] has joined #go-nuts 20:18 < KirkMcDonald> It is useful to have such things. 20:18 < KirkMcDonald> exec.Run is marginally easier to use for many use-cases. 20:18 < sauerbraten> mhm ok, i think you are the more eperienced of us, so i'll believe you :) 20:19 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has quit [Quit: KVIrc Equilibrium 4.1.0, revision: 4632, sources date: 20100519, built on: 2010-07-09 07:13:47 UTC http://www.kvirc.net/] 20:19 < KirkMcDonald> sauerbraten: http://en.wikipedia.org/wiki/Exec_(operating_system) 20:20 < sauerbraten> that's what os.Exec() does, right? 20:20 -!- emmanuel_oga [~emmanuelo@190.247.41.202] has joined #go-nuts 20:20 < KirkMcDonald> Yes. 20:20 < KirkMcDonald> Exec is just a wrapper around that syscall. 20:20 -!- emmanueloga [~emmanuelo@190.247.41.202] has quit [Read error: No route to host] 20:22 < KirkMcDonald> So ForkExec() forks a subprocess, then has the subprocess replace itself with exec(). (Which is the normal way to spawn a subprocess in Unix-like systems.) 20:22 < sauerbraten> ForkExec() is a bit like go(os.Exec(...)) then? 20:23 < sauerbraten> a very little BIT 20:24 < skelterjohn> saying go foo() does not (necessarily spawn a process 20:24 < KirkMcDonald> Sorrrt of. 20:24 < sauerbraten> are their any processes that always run on every unix / linux system? maybe one could get info with the proc pkg then 20:25 < sauerbraten> skelterjohn: oh right... but kind of it's the same 20:25 < skelterjohn> i think the best answer would be to make a package that uses cgo to look these things up 20:25 < KirkMcDonald> When doing a fork/exec, there are also some implications for open file descriptors. 20:25 < KirkMcDonald> src/pkg/syscall/exec.go contains the actual implementation of the ForkExec function. 20:26 < KirkMcDonald> Most of the code is just duplicating fds. 20:28 < KirkMcDonald> The one thing I would do to exec.Run is have it take (say) three interface{} values instead of three ints. 20:28 < skelterjohn> why is that? 20:28 < KirkMcDonald> Then allow you to pass either one of those integer constants, or a *File. 20:28 < skelterjohn> ah 20:28 < skelterjohn> you want a union type 20:29 < KirkMcDonald> Hmm. Not really. 20:29 < sauerbraten> that's what i wanted too :/ 20:29 < sauerbraten> or not >.< 20:29 < KirkMcDonald> At least, not a union in the C sense. 20:29 < skelterjohn> well, you're treating the interface{} as either one of two types. any others would presumably be an error 20:29 < skelterjohn> not type-safe unless you've got built-in union types 20:29 < KirkMcDonald> skelterjohn: Right. Easily done with a type-switch. 20:30 < KirkMcDonald> If you hit the default case, panic(). 20:30 < skelterjohn> eek! 20:30 < Namegduf> Or 20:30 < Arimoto> I recently saw a C++ JSON library that has a Json::Value class with isString, asString, isInt, asInt, isArray, asArray, etc. I was wondering, since Go lacks generics, would something like that be a good approach to supporting basic types in containers without doing typecasts? 20:30 < Namegduf> Don't use an interface{} and circumvent compiletime type safety 20:30 < skelterjohn> i'd rather have the compiler tell me it's wrong, since it's something you can know at compile time 20:30 < Namegduf> Use a proper interface 20:30 < KirkMcDonald> Namegduf: Pfft. You're no fun. 20:30 < KirkMcDonald> Namegduf: That's probably wise. 20:31 < sauerbraten> so at any Go core developer hanging out here: make a platform-independent pkg via that you can gain info about the system running the program! 20:31 < skelterjohn> i think a union type similar to interface would be pretty useful 20:31 < Namegduf> "os" 20:31 < Namegduf> sauerbraten: You could try filing a bug for specific functions to add. 20:32 < Namegduf> And if they're interested, offering a patch. :P 20:32 < KirkMcDonald> All you'd really need is an interface { Fd() int } 20:32 < KirkMcDonald> Well, maybe not. 20:32 < KirkMcDonald> Since os.ForkExec literally wants *File. 20:32 < sauerbraten> lol i am far too bad at programming to offer a patch to them :D it would be useless to them and embarrassing for me :D 20:32 < skelterjohn> yeah 20:32 < KirkMcDonald> Change os.ForkExec to take an interface { Fd() int } ? 20:33 < KirkMcDonald> (Since that's all it does with the *File things you pass to it.) 20:33 -!- carllerche [~carllerch@99.13.242.166] has joined #go-nuts 20:33 < skelterjohn> make a type Fd int 20:33 < Namegduf> I think the idea is that you don't need to use .Fd() manually 20:33 < KirkMcDonald> Then exec.Run can check to see if the value in the interface is one of the predefined constants. 20:33 < skelterjohn> and func (f Fd) Fd() int {return int(f)} 20:33 < skelterjohn> or something 20:34 < KirkMcDonald> Otherwise, pass it to os.ForkExec directly. 20:36 < sauerbraten> gotta go, see you tomorrow maybe :) 20:37 -!- sauerbraten [~sauerbrat@p508CF542.dip.t-dialin.net] has quit [Remote host closed the connection] 20:38 -!- artefon [~thiago@189.107.180.178] has quit [Ping timeout: 245 seconds] 20:39 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has left #go-nuts [] 20:42 -!- iant1 [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts 20:42 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Read error: Connection reset by peer] 20:43 -!- rutkowski [~adrian@078088207115.walbrzych.vectranet.pl] has joined #go-nuts 20:53 -!- rutkowski [~adrian@078088207115.walbrzych.vectranet.pl] has quit [Quit: WeeChat 0.3.3-dev] 20:53 -!- dju_ [dju@fsf/member/dju] has quit [Read error: Connection reset by peer] 20:56 -!- bmizerany [~bmizerany@dsl081-064-072.sfo1.dsl.speakeasy.net] has joined #go-nuts 21:01 -!- dju [dju@fsf/member/dju] has joined #go-nuts 21:01 -!- wrtp [~rog@92.17.72.146] has joined #go-nuts 21:02 -!- iant1 [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Quit: Leaving.] 21:17 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Remote host closed the connection] 21:17 -!- rlab_ [~Miranda@24-185-113-92.pool.ukrtel.net] has quit [Read error: Connection timed out] 21:18 -!- binarypie [~binarypie@adsl-99-50-122-26.dsl.pltn13.sbcglobal.net] has joined #go-nuts 21:18 -!- gid [~gid@220.253-225-62.VIC.netspace.net.au] has quit [Ping timeout: 240 seconds] 21:19 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined #go-nuts 21:22 -!- General13372 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit [Ping timeout: 265 seconds] 21:35 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has joined #go-nuts 21:39 -!- Agon-laptop [~marcel@HSI-KBW-095-208-003-128.hsi5.kabel-badenwuerttemberg.de] has joined #go-nuts 21:40 -!- surma [~surma@95-88-90-24-dynip.superkabel.de] has joined #go-nuts 21:40 -!- surma [~surma@95-88-90-24-dynip.superkabel.de] has left #go-nuts [] 21:42 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has quit [Quit: skelterjohn] 21:48 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has joined #go-nuts 21:52 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has quit [Client Quit] 21:58 -!- eikenberry [~jae@ivanova.zhar.net] has joined #go-nuts 22:01 -!- carllerche [~carllerch@99.13.242.166] has quit [Quit: carllerche] 22:02 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 22:04 -!- Adys_ [~Adys@unaffiliated/adys] has joined #go-nuts 22:05 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined #go-nuts 22:07 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 240 seconds] 22:07 -!- LeNsTR [~quassel@unaffiliated/lenstr] has joined #go-nuts 22:15 -!- LeNsTR [~quassel@unaffiliated/lenstr] has quit [Read error: Connection reset by peer] 22:28 < Ginto8> ok quick question 22:28 < Ginto8> I have type X with method foo() 22:29 < Ginto8> and I have type Y struct { X } 22:29 < Ginto8> and Y has a method foo() 22:29 < Ginto8> and I have a Y blarg 22:29 < Ginto8> calling blarg.foo() calls Y.foo(), and I have to explicitly go blarg.X.foo() to call X.foo() correct? 22:31 -!- LeNsTR [~quassel@unaffiliated/lenstr] has joined #go-nuts 22:34 -!- TR2N [email@89.180.153.197] has joined #go-nuts 22:35 -!- jdp [~gu@24.238.32.162.res-cmts.segr.ptd.net] has joined #go-nuts 22:38 < KirkMcDonald> Yes. 22:39 -!- wrtp [~rog@92.17.72.146] has quit [Quit: wrtp] 22:40 < Ginto8> ok thanks 22:42 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has quit [Quit: Verlassend] 22:47 -!- jdp [~gu@24.238.32.162.res-cmts.segr.ptd.net] has quit [Ping timeout: 240 seconds] 22:48 -!- jdp [~gu@24.238.32.162.res-cmts.segr.ptd.net] has joined #go-nuts 22:49 -!- anykey [~anykey@unaffiliated/anykey] has quit [Quit: leaving] 22:58 -!- jdp [~gu@24.238.32.162.res-cmts.segr.ptd.net] has quit [Ping timeout: 252 seconds] 23:02 -!- inclooye [~inklewyay@NW-ESR1-74-215-114-218.fuse.net] has left #go-nuts [] 23:02 -!- incluye [~inklewyay@NW-ESR1-74-215-114-218.fuse.net] has joined #go-nuts 23:07 -!- franksalim [~frank@adsl-75-61-93-123.dsl.pltn13.sbcglobal.net] has joined #go-nuts 23:09 -!- LeNsTR [~quassel@unaffiliated/lenstr] has quit [Read error: Operation timed out] 23:09 -!- Fish [~Fish@9fans.fr] has quit [Remote host closed the connection] 23:14 -!- mattikus [~mattikus@alcfwl136.alcf.anl.gov] has quit [Quit: mattikus] 23:16 -!- mattikus [~mattikus@witty.mcs.anl.gov] has joined #go-nuts 23:21 -!- mattikus [~mattikus@witty.mcs.anl.gov] has quit [Ping timeout: 258 seconds] 23:26 -!- geocalc [~geobsd@lns-bzn-60-82-254-226-156.adsl.proxad.net] has quit [Quit: Lost terminal] 23:28 -!- LeNsTR [~quassel@unaffiliated/lenstr] has joined #go-nuts 23:30 -!- TR2N` [email@89.180.153.197] has joined #go-nuts 23:35 -!- TR2N [email@89.180.153.197] has quit [Ping timeout: 240 seconds] 23:35 < plexdev> http://is.gd/dqXd3 by [Rob Pike] in go/doc/ -- Go specification: Lock down some details about channels and select: 23:35 -!- mattikus [~mattikus@witty.mcs.anl.gov] has joined #go-nuts 23:36 -!- mattikus [~mattikus@witty.mcs.anl.gov] has quit [Remote host closed the connection] 23:42 -!- jdp [~gu@24.238.32.162.res-cmts.segr.ptd.net] has joined #go-nuts 23:47 -!- [Pete_27] [~noname@115-64-1-61.static.tpgi.com.au] has quit [Ping timeout: 258 seconds] 23:48 -!- [Pete_27] [~noname@115-64-1-61.static.tpgi.com.au] has joined #go-nuts 23:50 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed the connection] 23:50 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has joined #go-nuts 23:51 -!- LeNsTR [~quassel@unaffiliated/lenstr] has quit [Remote host closed the connection] 23:54 -!- Venom_X [~pjacobs@71.21.124.111] has quit [Quit: Venom_X] 23:54 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed the connection] 23:59 -!- Project_2501 [~Marvin@82.84.92.36] has quit [Quit: E se abbasso questa leva che succ...] --- Log closed Wed Jul 14 00:00:12 2010