--- Log opened Thu Jul 07 00:00:54 2011 00:01 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping timeout: 276 seconds] 00:02 -!- bugQ [~bug@c-71-195-207-34.hsd1.ut.comcast.net] has joined #go-nuts 00:07 -!- sav [~lsd@peirce.xored.org] has quit [Read error: Connection reset by peer] 00:09 -!- sav [~lsd@peirce.xored.org] has joined #go-nuts 00:12 -!- sav [~lsd@peirce.xored.org] has quit [Read error: Connection reset by peer] 00:12 < magn3ts> Wow. 00:12 < magn3ts> I thought the email was harsh 00:12 -!- opt [~opt@174.3.227.184] has joined #go-nuts 00:12 < magn3ts> But your reddit rage is a bit out of whack. 00:14 < Namegduf> Not really. 00:14 < magn3ts> did you even click on the link? There are no comments on reddit. 00:14 < magn3ts> That was just an article that *got* submitted to the golang subreddit. 00:14 < Namegduf> I wasn't talking about that link. 00:15 < magn3ts> o_0 00:15 < Namegduf> The Go subreddit is relatively sensible because barely anyone uses it outside the Go community 00:15 < Namegduf> Which is relatively expected, I think. 00:16 < magn3ts> sure, and many of the large subreddits are full of enough people that its floated far back towards the median internet intelligence/maturity, but comparing it to any other news site seems unfair, especially given the amount of control you have over what you see. 00:16 < Namegduf> What, suggesting that it's comparable to the rest of the Internet is "unfair"? 00:17 < magn3ts> ""basically news website commenters with better spelling and vastly overinflated egos, for the most part. Why does anyone, ever mention their views?"" 00:17 < magn3ts> yes. I think that's a categorically unfair dismissal. 00:17 < Namegduf> And I think that's thinking they're better than they are. 00:17 < Namegduf> Did you see what I said about the rating system? 00:18 -!- franciscosouza [~francisco@187.105.22.148] has joined #go-nuts 00:18 < Namegduf> Often the worst posts, in terms of factual accuracy, are the highly rated ones. 00:18 -!- iant [~iant@67.218.104.187] has quit [Ping timeout: 255 seconds] 00:18 < Namegduf> Or at least they aren't a lot better. 00:18 < magn3ts> Don't subscribe to those subreddits then, or accept that you have to filter a bit on top of it? 00:19 < Namegduf> I don't use Reddit, period. It pisses me off every time I get linked to a thread there. 00:19 -!- sav [~lsd@peirce.xored.org] has joined #go-nuts 00:19 -!- Nisstyre [~nisstyre@infocalypse-net.info] has quit [Ping timeout: 255 seconds] 00:19 < magn3ts> Yeah, I can tell. 00:19 < Namegduf> I read through and find nothing but uninformed gibbering, with particularly detailed uninformed posts getting higher ratings. 00:20 < magn3ts> Usually the more angry people are about reddit, the more I assume that they only get linked there or subscribe only to the default subreddits, or don't view comment threads by "best" where they usually correct inaccuracies, etc 00:20 < magn3ts> LOL 00:21 -!- brad_ [~brad@cpe-098-026-120-155.nc.res.rr.com] has quit [Ping timeout: 255 seconds] 00:21 < Namegduf> At any rate, no, I don't think considering Reddit posts in general the same as any other news site, but generally thinking more of themselves, incorrect. 00:22 -!- sav [~lsd@peirce.xored.org] has quit [Read error: Connection reset by peer] 00:22 < magn3ts> The simple presence of voting and threading and sorting comments by different criteria make the entire atmosphere different than news sites comment systems. 00:22 < Namegduf> Different, yes, better, no. 00:22 < magn3ts> They naturally encourage conversation that allows for back and forth and resolution in ways that threadless comments can't. 00:22 < Namegduf> Threading is nice, yes. 00:23 < magn3ts> reddit's average worst post is as bad as the average good post on a news site. I can say that easily. I know when I see an article on reddit, the comments will give me a wide range of differing opinions with people calling out facts or making their own assertions. I think reddit does themselves a disservice by selecting "top" as the comment sort rather than "best". I hear these complaints a lot before people change their sort prefernce. 00:24 -!- sav [~lsd@peirce.xored.org] has joined #go-nuts 00:25 < magn3ts> Anyway, I'll just say that a small amount of effort (desub from the big reddits, sub to smaller more focused ones) can improve the experience, and I've yet to find a good replacement for it. I've discovered artists, other sharing sites, deals, programming tips and lots of other things that I don't know where else I'd have seen them. 00:25 < magn3ts> I don't need to be some awkward reddit advocate off topic in a channel where I like a relaxed friendly atmosphere. I'm just sad your experiences have been poor. :[ 00:27 -!- sav [~lsd@peirce.xored.org] has quit [Read error: Connection reset by peer] 00:28 < skelterjohn> it's a direct reaction to the (silly, in my opinion) go-bashing lately 00:29 < skelterjohn> i think this is the case in general - whenever (insert wide-field aggregator here) has a thread on (something you know a lot about), the results are disappointing 00:29 < skelterjohn> whenever there is a machine learning thread on slashdot - beware 00:29 < skelterjohn> 95% of the comments are drivel 00:29 -!- sav [~lsd@peirce.xored.org] has joined #go-nuts 00:29 < skelterjohn> and i'm not even counting the "i for one welcome our skynet overlords" stuff 00:29 < Namegduf> I stopped following there a good while ago, the comments just stopped being interesting. 00:30 < skelterjohn> but things that masquerade as informed 00:30 < Namegduf> Especially threads mentioning Google, Apple, Sony, Oracle, Microsoft, Nintendo, or, well, let's say "any company of recent news interest". 00:30 < Namegduf> Yeah, that. 00:31 < magn3ts> I guess I don't mind the noise, I brush through it quickly. 00:32 < skelterjohn> when it's not something you care about, it's easy to ignore noise :) 00:32 < skelterjohn> but when these doofuses talk about go, it's tougher 00:32 < uriel> http://www.reddit.com/r/programming/comments/ii3yb/now_we_get_to_the_annoying_aspects_of_go/c23zxk4?context=3 00:32 < Namegduf> Noise I can ignore, but things claiming to be informed, highly rated as informed, and utterly wrong annoy me, and after hitting a few and going through the effort of reading them I quickly get tired of trying to find anything of value. Also too annoyed to be interested anymore. 00:32 < uriel> -5 already? *sigh* 00:32 -!- sav [~lsd@peirce.xored.org] has quit [Read error: Connection reset by peer] 00:33 < skelterjohn> heh, yeah 00:33 < skelterjohn> i don't recall being offensive, off-topic or misleading 00:33 < Namegduf> "In every other language with objects" 00:33 < Namegduf> Stop right there, dude 00:33 < Namegduf> Man, see, this is the kind of crap that annoys me 00:33 < magn3ts> Oh wow. 00:34 < Namegduf> The basic *premise* is wrong from the first *clause* of the first sentence 00:34 < magn3ts> I hadn't seen these comments, last time I looked there were 0. 00:34 < skelterjohn> but it's bikeshed garbage 00:34 < Namegduf> ANd it has 34 goddamn points 00:34 < magn3ts> comment karma will drive you insane. 00:34 < skelterjohn> i don't care about poor karma, but now my post is hidden by defaul 00:34 < skelterjohn> t 00:34 < magn3ts> I could deliver a new phone to someone in /r/Android and people would still find a reason to crucify me. 00:35 < magn3ts> skelterjohn, I forget that, I have mine set as low as it lets me for hiding. 00:35 -!- brad_ [~brad@cpe-098-026-120-155.nc.res.rr.com] has joined #go-nuts 00:35 -!- iant [~iant@216.239.45.130] has joined #go-nuts 00:35 -!- mode/#go-nuts [+v iant] by ChanServ 00:35 < skelterjohn> Namegduf: I felt that merely quoting "every other language with objects" would be enough to make him seem silly, but I forgot about the rule regarding "subtlety" and "the internet" 00:37 < Namegduf> You assumed that the reader would know what they were reading about, but as demonstrated by the guy's rating... 00:37 < skelterjohn> i made a number of poor assumptions :) 00:38 < magn3ts> I wonder if this in particular had anything to do with the Google-association 00:38 < Namegduf> I've seen a lot of that. 00:38 < magn3ts> people like to hate big things or think they're smart enough to get to call Google "incompetent" 00:38 < skelterjohn> both good and bad things came from that 00:38 < Namegduf> Good: PR 00:38 < skelterjohn> for instance, i would never have noticed if it weren't a google product 00:39 * magn3ts nods 00:39 < str1ngs> magn3ts: yes people confuse go authors with google . 00:39 < skelterjohn> whether you consider that a good thing or a bad thing is up for grabs! 00:39 < Namegduf> Bad: People think it's an attempt to steal their credit card details 00:39 < Namegduf> For, well 00:39 < Namegduf> Some reason 00:39 < magn3ts> Yes, I have read 4 or 5 incoherent ramblings about why Google+ is evil because Google offers a wide range of products. 00:40 < magn3ts> Mind that it's up to the user to choose to or not to use them. Or that they have generally easy ways of exporting and deleting said data. 00:40 < Namegduf> Or the noticable lack of vendor lock-in. 00:40 < Namegduf> Or, well, the point of comparison. 00:40 < Namegduf> I mean it's Facebook. Facebook. 00:40 < KirkMcDonald> I for one welcome our Google+ overlords. 00:41 < KirkMcDonald> (Do you see what I did there.) 00:41 < Namegduf> (No, please explain.) 00:41 < Namegduf> (:P) 00:41 < magn3ts> I can't tell if you're serious, heh. 00:41 < Namegduf> I'm not. 00:41 < bmizerany> has anyone successfully gotten syscall.Select working on a network fd? 00:42 < Namegduf> bmizerany: Just to check: You know that if you block a goroutine on a read/write using the net package, it will only keep one blocked thread, using epoll() or the OS-specific equivalent behind the scenes for you? 00:43 < Namegduf> (I can't help with your specific issue) 00:45 < bmizerany> Namegduf: I'm aware. I'm working with jbarham's pgsql.go wrapper. I've added LISTEN/NOTIFY support. To to PQnotifies() correctly, you call PQconsumeinput() when there is data ready on the socket. I have the fd but am unsuccessful at getting select() working to know when the right time to call consumeinput is. 00:45 < Namegduf> Ah, okay. I just figured I'd check. 00:46 < bmizerany> Namegduf: yeah. np. thx for asking. I didn't make that clear. 00:47 < bmizerany> I really only care about darwin and linux. I think the only blocker is not having FD_SET/FD_ZERO. I've googled around but can't find their implementations for either. 00:49 < magn3ts> I'm worried that I won't be able to use winpcap in windows with go, but I don't know enough to know if I can or not. 00:58 < kevlar_work> magn3ts, I would hazard a guess that even if you can, it won't be easy. 00:58 < magn3ts> :[ 00:59 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has joined #go-nuts 01:01 -!- sav [~lsd@peirce.xored.org] has joined #go-nuts 01:01 -!- iant [~iant@216.239.45.130] has quit [Ping timeout: 240 seconds] 01:03 -!- kinofcain [~KinOfCain@h-64-105-141-42.snvacaid.static.covad.net] has quit [Quit: kinofcain] 01:04 -!- franciscosouza [~francisco@187.105.22.148] has quit [Read error: Connection reset by peer] 01:05 -!- franciscosouza [~francisco@187.105.22.148] has joined #go-nuts 01:08 -!- |Craig| [~|Craig|@71-217-17-63.tukw.qwest.net] has joined #go-nuts 01:08 -!- |Craig| [~|Craig|@71-217-17-63.tukw.qwest.net] has quit [Changing host] 01:08 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 01:13 -!- franciscosouza [~francisco@187.105.22.148] has quit [Read error: Connection reset by peer] 01:14 -!- noam [~noam@87.69.42.61.cable.012.net.il] has quit [Ping timeout: 240 seconds] 01:14 -!- franciscosouza [~francisco@187.105.22.148] has joined #go-nuts 01:15 -!- cafesofie [~cafesofie@ool-18b97779.dyn.optonline.net] has joined #go-nuts 01:16 -!- nteon [~nteon@c-98-210-195-105.hsd1.ca.comcast.net] has quit [Read error: Operation timed out] 01:22 -!- kaichenxyz [~kaichenxy@115.196.136.71] has joined #go-nuts 01:22 -!- kaichenxyz [~kaichenxy@115.196.136.71] has quit [Remote host closed the connection] 01:22 -!- kaichenxyz [~kaichenxy@li261-87.members.linode.com] has joined #go-nuts 01:32 -!- ccc1 [~Adium@140.109.98.187] has joined #go-nuts 01:38 -!- squeese_ [~squeese@cm-84.209.17.156.getinternet.no] has quit [Remote host closed the connection] 01:39 -!- xash [~xash@d064106.adsl.hansenet.de] has joined #go-nuts 01:41 -!- sav [~lsd@peirce.xored.org] has quit [Read error: Connection reset by peer] 01:44 -!- Boney [~paul@124-148-153-94.dyn.iinet.net.au] has quit [Quit: leaving] 01:44 -!- sav [~lsd@peirce.xored.org] has joined #go-nuts 01:45 -!- Boney [~paul@124-148-153-94.dyn.iinet.net.au] has joined #go-nuts 01:45 -!- bmizerany [~bmizerany@204.14.152.118] has quit [Remote host closed the connection] 01:55 -!- nteon [~nteon@c-98-210-195-105.hsd1.ca.comcast.net] has joined #go-nuts 01:56 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has quit [Quit: WeeChat 0.3.0] 01:59 -!- dlowe1 [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has joined #go-nuts 02:00 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has joined #go-nuts 02:03 -!- _andre [~andre@186.215.9.60] has joined #go-nuts 02:04 < _andre> hi 02:04 < _andre> is there a way to cast an unsafe.Pointer to []byte? 02:04 < Namegduf> Only to *[]byte 02:05 < Namegduf> An unsafe.Pointer is a thing the size of a pointer 02:05 < Namegduf> []byte is bigger than a pointer 02:05 < Namegduf> Such a cast makes little sense 02:06 < Namegduf> I guess you could cast a *unsafe.Pointer to a []byte, of course, it just wouldn't work very well. 02:06 < Namegduf> Er, to a *[]byte 02:06 < Namegduf> And thus access an unsafe.Pointer's address as if it was the address of a []byte 02:06 < Namegduf> It just would, well, crash. 02:09 < _andre> so i guess you can do C-style things like write(fd, &somestruct, len) 02:09 < _andre> i'd have to create a []byte from somestruct manually 02:10 -!- kergoth` [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Read error: Connection reset by peer] 02:10 < _andre> right? 02:11 < _andre> erm 02:12 < _andre> you can't do* 02:12 < nteon> well []byte is a slice, if you want an array it has to be sized, right? 02:12 < nteon> i put that statement forth as a question :) 02:14 < _andre> well in C write(2) accepts a void* as the second argument so you can give it the address of anything and it'll be treated as an array of bytes 02:15 < _andre> i was wondering if there's a way in go to cast a value of any type (or its address) to a byte slice so that i could pass it to, say, syscall.Write directly 02:19 < nteon> _andre: right, but a slice isn't a pointer to an array of bytes. its a struct with 3 fields: a pointer to the array, a size and a capacity 02:20 < nteon> _andre: beyond that, I'm not sure. I haven't played with Cgo yet 02:26 -!- dfr|mac [~dfr|work@nat/google/x-ircbqfhpnfaabole] has quit [Remote host closed the connection] 02:35 < dforsyth> _andre: encoding/binary? 02:35 < dforsyth> func Write(w io.Writer, order ByteOrder, data interface{}) os.Error 02:37 < dforsyth> it might not be powerful enough, though? you could also try encoding it gob or json, though 02:37 < Namegduf> _andre: You can 02:37 < Namegduf> It's terribly illadvised, thoguh 02:37 < Namegduf> *though 02:37 -!- niemeyer__ [~niemeyer@201.25.35.2] has quit [Ping timeout: 240 seconds] 02:38 < Namegduf> encoding/binary is a MUCH better idea and will handle endianness issues for you, along with struct padding issues. 02:38 < Namegduf> If you want to, what you need to do is create an area the size of a []byte, put the appropriate data in it, including a pointer to the data to write, its size, and so forth 02:38 < Namegduf> And then take a pointer to that block, and convert it to a pointer to []byte. 02:39 < Namegduf> But really, encoding/binary is a much better idea. 02:39 < _andre> oh 02:39 < _andre> i wasn't aware of that 02:39 < Namegduf> A []byte isn't a block of bytes, or a pointer to one; it's a little struct which CONTAINS such a pointer alongside size information 02:39 < _andre> of encoding/binary, i mean 02:40 < _andre> i was doing all the bit-shifting myself :| 02:41 -!- xash [~xash@d064106.adsl.hansenet.de] has quit [Read error: Operation timed out] 02:42 -!- dlowe1 [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has quit [Quit: *poof*] 02:45 -!- Stiletto [7f000001@69.195.144.4] has quit [Ping timeout: 252 seconds] 02:54 -!- hsoj [~josh@66.54.185.139] has quit [Read error: Operation timed out] 02:56 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has quit [Quit: WeeChat 0.3.0] 02:57 -!- icey [u2593@gateway/web/irccloud.com/x-apkzldlslrypswjs] has left #go-nuts [] 03:02 -!- bugQ [~bug@c-71-195-207-34.hsd1.ut.comcast.net] has quit [Remote host closed the connection] 03:13 < skelterjohn> if you want to turn a slice into a C-style array, pass the address of the first element 03:18 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts 03:20 < _andre> i got it to work with encoding/binary 03:20 < _andre> though i wish there was a way to actually return the byte slice instead of use the writer interface 03:22 -!- niekie [~niek@CAcert/Assurer/niekie] has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.] 03:25 -!- niekie [~niek@CAcert/Assurer/niekie] has joined #go-nuts 03:30 -!- foocraft [~ewanas@89.211.175.239] has joined #go-nuts 03:41 < nteon> is there a contains function for slices? func contains([]interface{}, interface{}) bool 03:41 < nteon> its not hard to implement... 03:48 -!- keithcascio [~keithcasc@nat/google/x-ynmnhukbgbqmgtls] has quit [Quit: Leaving] 04:01 < |Craig|> nteon: that won't run on slices of anything but interface{} if you implement it 04:05 -!- rejb [~rejb@unaffiliated/rejb] has quit [Disconnected by services] 04:05 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts 04:08 -!- _andre [~andre@186.215.9.60] has quit [Quit: leaving] 04:11 -!- shvntr [~shvntr@113.84.94.185] has joined #go-nuts 04:22 -!- sav [~lsd@peirce.xored.org] has quit [Read error: Connection reset by peer] 04:28 -!- kergoth [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Quit: Computer has gone to sleep.] 04:28 -!- shvntr [~shvntr@113.84.94.185] has quit [Ping timeout: 260 seconds] 04:30 -!- shvntr [~shvntr@113.84.94.185] has joined #go-nuts 04:32 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has quit [Quit: ZZZZZzzzzz] 04:33 -!- wallerdev [~wallerdev@72.44.102.30] has quit [Quit: wallerdev] 04:37 -!- grai [~grai@38.70.70.115.static.exetel.com.au] has joined #go-nuts 04:41 -!- Skola [~bas@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has joined #go-nuts 04:48 -!- foocraft [~ewanas@89.211.175.239] has quit [Quit: if you're going....to san. fran. cisco!!!] 04:50 -!- markcol [~markcol@74.125.59.1] has quit [Quit: markcol] 04:54 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:f548:ebf4:72f4:826e] has joined #go-nuts 04:56 -!- shvntr [~shvntr@113.84.94.185] has quit [Quit: leaving] 04:57 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 276 seconds] 05:00 < jessta> nteon: that code tells me that you've incorrectly understood interfaces in Go. I recommend you re-read the spec. 05:02 -!- moraes [~moraes@189.103.188.201] has quit [Ping timeout: 246 seconds] 05:02 < magn3ts> Is it at all possible to write a "generic" contains for slices? 05:03 < magn3ts> well, not in the style of append(), as it's built in and compiler supported. :/ 05:11 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts 05:17 < jessta> magn3ts: sure, func contains(interface{},interface{}) 05:18 < jessta> umm...func contains(slice interface{}, element interface{}) 05:18 < magn3ts> I understand that a slice also implements the empty interface, but I don't understand why taking a slice of empty interfaces would be wrong. 05:19 < jessta> it's not wrong, it's just not want you actually want to do if you want a generic slice 05:19 < jessta> because it's not a generic slice, it's a slice of interface{} 05:20 -!- vmil86 [~vmil86@88.118.37.245] has joined #go-nuts 05:20 < magn3ts> so the meaning of "interface{}" becomes more, explicit or rigid when expressed as part of a slice type? 05:20 < jessta> nope, it's the same as it's always been 05:21 < jessta> but you can't pass a []int to a function expecting a []interface{} 05:22 < magn3ts> The way I'm thinking about this is, they're both slices, OK. The function expects the slice to contain interface{}. int implements interface{} so it must be okay. 05:23 < jessta> and that's the common confusion that comes from misunderstanding interfaces 05:23 * magn3ts is reading the go_spec#Interface_types 05:24 < jessta> interface{} is a completely different data structure to int 05:24 -!- Nisstyre [~nisstyre@infocalypse-net.info] has joined #go-nuts 05:24 -!- Nisstyre [~nisstyre@infocalypse-net.info] has quit [Excess Flood] 05:25 < magn3ts> sure 05:26 < jessta> the confusion is created because Go doesn't require you to explcitly convert to an interface type 05:26 < magn3ts> "Two slice types are identical if they have identical element types." 05:27 < jessta> yep, and int is not an interface{} 05:27 < magn3ts> jessta, :s yes that is part of my confusion. 05:27 -!- Nisstyre [~nisstyre@infocalypse-net.info] has joined #go-nuts 05:27 < magn3ts> I see. 05:27 < jessta> but int can be converted to an interface{} 05:28 < magn3ts> but not automatically when comparing slice-types for function calling 05:28 < jessta> it's easy,cheap and predictable with one type, but with a slice you'd need to allocate 05:29 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts 05:29 -!- mode/#go-nuts [+v iant] by ChanServ 05:30 < jessta> imagine you're passing an []int with len() = 10000 to a func that takes a []interface and it automatically converted for you 05:30 -!- smw [~stephen@unaffiliated/smw] has joined #go-nuts 05:32 < jessta> that would be an allocate of 80KB and a complete copy of the array just to make that function call. 05:32 < magn3ts> I hadn't considered that. 05:33 < jessta> and then you'd probably have to copy it back for the results to be useful anyway 05:33 < magn3ts> Yeah. Thanks for talking through that, I appreciate it. Thinking about the allocation and the automatic flexibility of interfaces makes a lot more sense as I ponder it more now 05:34 < jessta> magn3ts: http://research.swtch.com/2009/12/go-data-structures-interfaces.html 05:34 < magn3ts> Oooh. Oh my. Thanks. 05:41 -!- cafesofie [~cafesofie@ool-18b97779.dyn.optonline.net] has quit [Remote host closed the connection] 05:47 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host closed the connection] 05:48 -!- photron [~photron@port-92-201-67-130.dynamic.qsc.de] has joined #go-nuts 05:52 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has joined #go-nuts 05:58 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-167-112.clienti.tiscali.it] has joined #go-nuts 05:59 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping timeout: 240 seconds] 06:00 -!- iant [~iant@216.239.45.130] has joined #go-nuts 06:00 -!- mode/#go-nuts [+v iant] by ChanServ 06:03 -!- squeese [~squeese@244.14.213.193.static.cust.telenor.com] has joined #go-nuts 06:15 -!- dreadlorde [~dreadlord@c-68-42-82-10.hsd1.mi.comcast.net] has quit [Ping timeout: 276 seconds] 06:20 -!- madari [madari@idm.irc-galleria.net] has quit [Quit: leaving] 06:21 -!- madari [madari@idm.irc-galleria.net] has joined #go-nuts 06:23 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:f548:ebf4:72f4:826e] has quit [Remote host closed the connection] 06:23 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:f548:ebf4:72f4:826e] has joined #go-nuts 06:26 -!- yogib [~yogib@131.234.59.64] has joined #go-nuts 06:27 < nteon> heh, I missed that discussion it seems 06:30 < nteon> jessta: I understand that function wont work with []int, but my immediate need was for []string 06:30 < nteon> for a generic contains() the language would need generics 06:30 < nteon> or compile time support like append 06:30 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 06:31 < zozoR> Is there any blogs or docs lying around the net that critizises go (and knows what he/she is talking about) ? 06:31 < zozoR> are there any* 06:31 < zozoR> or is it is .. 06:35 < jessta> nteon: you can do it with reflection 06:36 < jessta> it just won't be compile time type safe 06:38 -!- kaichenxyz [~kaichenxy@li261-87.members.linode.com] has quit [Quit: kaichenxyz] 06:39 < nteon> jessta: good point 06:39 < nteon> compile-time safety is one of the things I love about go 06:45 -!- squeese [~squeese@244.14.213.193.static.cust.telenor.com] has quit [Remote host closed the connection] 06:50 -!- kytibe [~kytibe@212.174.109.55] has quit [Read error: Connection reset by peer] 06:51 -!- GS [~gsv@108-61-238-49.southernonline.net] has joined #go-nuts 06:51 -!- kytibe [~kytibe@212.174.109.55] has joined #go-nuts 06:55 -!- grai [~grai@38.70.70.115.static.exetel.com.au] has quit [Read error: Connection reset by peer] 07:00 -!- grai [~grai@38.70.70.115.static.exetel.com.au] has joined #go-nuts 07:03 -!- neshaug [~oyvind@213.239.108.5] has quit [Quit: leaving] 07:04 -!- neshaug [~oyvind@213.239.108.5] has joined #go-nuts 07:05 -!- fvbommel [~fvbommel_@86.86.15.250] has joined #go-nuts 07:19 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|] 07:20 -!- ronnyy [~quassel@p4FF1C5F3.dip0.t-ipconnect.de] has joined #go-nuts 07:21 -!- ronnyy [~quassel@p4FF1C5F3.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 07:21 -!- nteon [~nteon@c-98-210-195-105.hsd1.ca.comcast.net] has quit [Quit: leaving] 07:23 -!- ronnyy [~quassel@p4FF1C5F3.dip0.t-ipconnect.de] has joined #go-nuts 07:24 -!- Gertm [~Gertm@178-119-230-147.access.telenet.be] has left #go-nuts ["C-x C-k"] 07:30 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has quit [Read error: Connection reset by peer] 07:31 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has joined #go-nuts 07:35 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has joined #go-nuts 07:38 -!- Kahvi [~Kahvi@a91-152-177-58.elisa-laajakaista.fi] has joined #go-nuts 07:38 -!- mikespook [~mikespook@119.131.233.11] has joined #go-nuts 07:47 -!- Kahvi [~Kahvi@a91-152-177-58.elisa-laajakaista.fi] has quit [Quit: Lähdössä] 07:52 -!- smw [~stephen@unaffiliated/smw] has quit [Ping timeout: 264 seconds] 07:54 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts 07:54 < zozoR> lol, a guy with PhD in computer science says that the different use of new and make is the most horrible thing in go 07:54 < zozoR> :D 07:57 < str1ngs> who cares 07:58 < zozoR> i just like how the most horrific part of go for him, is kinda lame 07:58 < jessta> zozoR: lol, like how c++ has new and malloc() 07:58 -!- message144 [~message14@cpe-75-83-155-145.socal.res.rr.com] has quit [Remote host closed the connection] 07:58 < zozoR> and then he whines about the missing generics.. who needs them 08:00 < jessta> generics would be nice, if they can be done in a way that doesn't make code impossible to read 08:03 -!- erus` [~chatzilla@mailgate.ips-international.com] has joined #go-nuts 08:04 < erus`> Can I unmarshal a map[string] interface{} into a struct? 08:05 < zozoR> dunno, try? 08:06 < str1ngs> erus`: does it really have to be an interface? I'm assuming yes but best to ask. 08:07 < erus`> str1ngs: first I unmarshal some json 08:07 < erus`> but the fields are dynamic 08:07 < erus`> so i have to unmarshal into interface {} 08:07 < str1ngs> dynamic in they change or they dont always exist? 08:08 < erus`> dynamic types :( 08:08 < str1ngs> are the types the same though? like Person Animals kinda thing? 08:08 < erus`> like "error" could be nil or an object with members 08:09 < erus`> well nil or a map 08:09 < str1ngs> hmm 08:10 < str1ngs> I think you can only do this using reflection 08:11 < erus`> is there no built in way to read a map[string] interface{} into a struct? 08:11 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 08:12 < str1ngs> that I know, but I question the json 08:12 < str1ngs> normally you have a good idea what you are getting so you just make a struct that matches the json 08:17 < erus`> the bitcoin json rpc protocol returns a { responce: object error: object } 08:18 < erus`> and the responce will be nil if an error 08:18 < erus`> or the error will be nil if not an error 08:18 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has quit [Quit: Slant] 08:19 < str1ngs> it alwasy returns like that? 08:20 < str1ngs> erus`: it might be easier if you paste service the json. ie io.Copy(os.Stderr,res.Body) 08:20 < str1ngs> assumeing its a body closer 08:20 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has quit [Ping timeout: 240 seconds] 08:21 < erus`> whats a paste service? 08:21 < str1ngs> see /topic 08:21 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 276 seconds] 08:21 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has joined #go-nuts 08:22 -!- vmil86 [~vmil86@88.118.37.245] has quit [Ping timeout: 276 seconds] 08:22 < erus`> oh paste bin 08:23 -!- fvbommel [~fvbommel_@86.86.15.250] has joined #go-nuts 08:24 < erus`> str1ngs: the problem is that the "result" is nested in the json 08:25 < erus`> and i will not know it until i read the first level 08:25 < erus`> then it gets really messy with losts of different structs for each type of result 08:26 < str1ngs> yes but I'm sure the Call is not the same 08:26 < str1ngs> or Get 08:27 < str1ngs> GetFoo is going to return a Foo object 08:28 < str1ngs> also Decode can handle nested json if you provide the types for them 08:28 < erus`> oh i forgot to mential i cannot use any rpc package 08:29 < erus`> i have to send http requests myself 08:29 < str1ngs> yes which is a Get 08:29 < erus`> so i read the body and try to parse the json from that 08:29 < str1ngs> yes paste the Json from one get 08:30 < erus`> ok 08:30 < erus`> an error or no error? 08:30 < str1ngs> should not matter 08:30 < str1ngs> since you can provide fields for both and test them. 08:30 < str1ngs> you just need to match them though 08:31 < erus`> {"result":null,"error":{"code":-32601,"message":"Method not found"},"id":""} 08:31 < str1ngs> ok so make a struct like this 08:32 < str1ngs> type Foo struct { Error jError } 08:32 < str1ngs> the make a jError struct with Code int Message string 08:32 < str1ngs> you can add Id string to Foo 08:33 < erus`> str1ngs: yeah i have that 08:33 < str1ngs> Result we'll have to figure out 08:33 < erus`> the issue is when i have 20 or so different formats for results 08:33 < str1ngs> right but the Methods should dictate the result 08:33 < erus`> i have to make 20 structs for results AND 20 structs for the { result, error } base struct 08:34 < str1ngs> ie GetUsers Result user 08:34 < str1ngs> erus`: no you just need to 20 structs 08:34 < erus`> you have two there 08:35 < erus`> for reading 1 case 08:35 < str1ngs> no Error is common to all 08:35 < str1ngs> result changes but thats based on the method. and you want structs either way 08:36 < erus`> ah i dont need my base one then 08:36 < erus`> i can just check error 08:36 < erus`> that works :D 08:36 < str1ngs> right because Error is common 08:36 -!- vmil86 [~vmil86@78.57.227.12] has joined #go-nuts 08:36 < str1ngs> anyways odds are you wont need them all. I like to cherry pick 08:37 < str1ngs> either Methods or Fields 08:41 < str1ngs> erus`: https://github.com/str1ngs/go-bitly/blob/master/bitly.go here's also better example of nested json 08:55 -!- genbattle [~nick@203-173-255-36.dsl.dyn.ihug.co.nz] has joined #go-nuts 08:56 -!- GeertJohan [~geertjoha@s51478c91.adsl.wanadoo.nl] has joined #go-nuts 08:58 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has joined #go-nuts 08:58 < GeertJohan> good morning ;) 09:01 -!- tylerl [~tylerl@unaffiliated/tylerl] has joined #go-nuts 09:02 < tylerl> whats the current version number for 6g? 09:03 < str1ngs> r58 09:03 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has joined #go-nuts 09:03 < tylerl> OK. so I've got "6g version release.r58 7666" -- that's should be pretty up-to-date, rigth? 09:04 < str1ngs> for the most part yes 09:04 < tylerl> Hm. I'm getting "not enough arguments in call to os.Open" when i try to compile https://github.com/miekg/godns 09:05 < tylerl> i presumed install was out-of-date 09:05 < str1ngs> might be the other way round 09:05 < vsmatck> Open got changed semi-recently. 09:05 < str1ngs> can you paste the line in question? 09:05 < tylerl> file, err := os.Open(conf) 09:06 < tylerl> where conf is string 09:06 < str1ngs> seems right 09:06 -!- GilJ [~GilJ@zeus.ugent.be] has quit [Quit: leaving] 09:06 < str1ngs> $ which 6g <- run that 09:06 -!- GilJ [~GilJ@zeus.ugent.be] has joined #go-nuts 09:06 < tylerl> ~/go/bin/6g <-- seems right 09:07 < str1ngs> godoc os Open 09:07 < str1ngs> func Open(name string) (file *File, err Error) 09:07 < str1ngs> should look like that 09:07 < tylerl> func Open(name string, flag int, perm uint32) (file *File, err Error) 09:07 < tylerl> soo... newer, or older? 09:08 < str1ngs> thats older 09:08 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 09:08 < tylerl> i ran hg pull to update, then make.bash and "make.bash install" 09:08 < tylerl> is there another step? 09:09 < str1ngs> hg pull -u 09:09 < str1ngs> or hg pull; hg update 09:10 < str1ngs> 6g version release.r58 7666 seems like a bug 09:11 < tylerl> now it's 6g version weekly.2011-06-23 9006 09:11 < tylerl> grr. now I get goto BadType jumps into block starting at msg.go:295 09:12 < str1ngs> hg check out release 09:12 < str1ngs> err hg checkout release 09:13 < tylerl> and then hg update? 09:13 < tylerl> (hg isn't my strong suit) 09:13 < str1ngs> I dont think you need update with checkout 09:13 < str1ngs> its not mine either :P 09:13 < str1ngs> 580 files updated, 0 files merged, 13 files removed, 0 files unresolved 09:14 < tylerl> 6g version release.r58 8731 09:14 < str1ngs> always read the status line. I find it helps 09:14 < tylerl> which status line? 09:14 -!- ronnyy [~quassel@p4FF1C5F3.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 09:14 < str1ngs> on checkout pull update 09:14 < tylerl> build works now. thanks 09:14 < str1ngs> np 09:16 < tylerl> and time for bed. night 09:17 < str1ngs> tylerl: ... goto bed 09:18 -!- tylerl [~tylerl@unaffiliated/tylerl] has quit [Quit: leaving] 09:19 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has quit [Ping timeout: 255 seconds] 09:20 -!- virtualsue [~chatzilla@nat/cisco/x-zqdxkrrxifishasi] has joined #go-nuts 09:26 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts 09:26 -!- zippoxer [~zippoxer@109.67.202.163] has joined #go-nuts 09:27 < zippoxer> If anyone has good answer to give: http://stackoverflow.com/questions/6605051/performance-focused-desktop-program-ruby-or-go 09:28 < zippoxer> not my question, but people there don't understand few important things. 09:31 < str1ngs> the answer is try it 09:32 < str1ngs> asking for opinions is never good on the internet. 09:32 < str1ngs> if performance is #1 issue. he should not even think about ruby 09:33 < str1ngs> but that just my opinion :P 09:37 < zozoR> anyone in here who works on the go-sdl project? 09:40 < erus`> can someone try this for me please 09:40 < erus`> https://github.com/tm1rbrt/bitcoinrpc 09:40 < erus`> just run the example 09:41 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has joined #go-nuts 09:53 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat] 09:56 < erus`> does EOF mean socket closed? 09:56 < str1ngs> could be ya 09:57 < str1ngs> erus`: you probably dont even need all of that 09:58 -!- rlab [~Miranda@238-89-95-178.pool.ukrtel.net] has joined #go-nuts 09:58 < str1ngs> ie client = new(http.Client); res,_ := client.Get("http://foo.com"); io.Copy(os.Stderr,res.Body) 09:59 < str1ngs> I would probably not use raw connections. because the client does a better job of it 10:00 < str1ngs> The Client's Transport typically has internal state (cached 10:00 < str1ngs> TCP connections), so Clients should be reused instead of created as 10:00 < str1ngs> needed. Clients are safe for concurrent use by multiple goroutines. 10:01 < str1ngs> ie I tend to use a client that is global scope. since it caches like that and you can use keep-alive 10:13 -!- foocraft [~ewanas@89.211.210.198] has joined #go-nuts 10:14 -!- vmil86 [~vmil86@78.57.227.12] has quit [Remote host closed the connection] 10:32 -!- Slant [~scott@124-168-94-71.dyn.iinet.net.au] has quit [Quit: Slant] 10:37 < erus`> i cant use client.Get 10:37 < erus`> i need authentication 10:39 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 246 seconds] 10:39 < erus`> and its a POST 10:40 -!- hcatlin [~hcatlin@host86-163-247-252.range86-163.btcentralplus.com] has joined #go-nuts 10:40 -!- hcatlin [~hcatlin@host86-163-247-252.range86-163.btcentralplus.com] has quit [Changing host] 10:40 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has joined #go-nuts 10:43 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts 10:44 -!- genbattle [~nick@203-173-255-36.dsl.dyn.ihug.co.nz] has quit [Quit: Leaving] 10:54 < zozoR> is there a way of contacting a user on Github without registering? 10:54 < zozoR> I made some new bindings to go-sdl and i kinda want the main guy to have it 10:55 < str1ngs> must github fols work with pull requests 10:55 < str1ngs> most* 10:55 < str1ngs> does not take much to register 10:55 -!- rlab [~Miranda@238-89-95-178.pool.ukrtel.net] has quit [Read error: Connection timed out] 10:55 < zozoR> i am 100% new to these hg, github, svn thingies 10:56 -!- ccc1 [~Adium@140.109.98.187] has quit [Quit: Leaving.] 10:56 < zozoR> well, might as well sign up 10:56 < str1ngs> the other option is look for ML .. maybe post patches 10:58 < zozoR> ^^ 10:58 < zozoR> im just gonna read all the help stuff then 10:59 < str1ngs> if you are working with a github project easy to fork and go from there. 11:00 < zozoR> i'd rather he put my code in his work so i doesnt get all forky :P 11:00 < zozoR> thats my first thought atleast 11:00 < str1ngs> if you are new to git http://progit.org/ 11:01 < zozoR> thanks 11:02 < str1ngs> and man git of course 11:02 < str1ngs> sorry I dont have resources for hg etc 11:02 < zozoR> well i dont care for hg right now 11:02 < zozoR> just want to add my stuff and maybe put my game on git for the hell of it 11:02 < str1ngs> hg is still good, dont count it out. probably easier to start with 11:04 < str1ngs> zozoR: I'm not sure why the call them forks on github. they are actually clones 11:04 < str1ngs> I guess they thought fork sounded cool or something 11:04 < zozoR> i think it will make sense when im done reading the help page 11:05 -!- vmil86 [~vmil86@78.57.227.12] has joined #go-nuts 11:05 < str1ngs> ya dont confuse fork with hey I'm forking your project, and doing my own thing 11:05 < str1ngs> it has a different context on github 11:08 < zozoR> there is a guy who forked the sdl library, and kinda made his own version of it : 11:08 < zozoR> :P 11:10 < str1ngs> it happens sometimes for the betters. xorg .. cough 11:10 < zozoR> :3 11:11 < zozoR> it looks rather complicated to get started using these subversion systems >.< 11:13 < str1ngs> hg and git are comparable. subversion not so much 11:26 -!- gnuvince|work [8e544424@gateway/web/freenode/ip.142.84.68.36] has joined #go-nuts 11:29 -!- rlab [~Miranda@238-89-95-178.pool.ukrtel.net] has joined #go-nuts 11:40 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 11:44 -!- tncardoso [~thiagon@150.164.2.20] has joined #go-nuts 11:56 -!- dforsyth [~dforsyth@ec2-50-18-22-230.us-west-1.compute.amazonaws.com] has quit [Ping timeout: 250 seconds] 12:00 -!- ronnyy [~quassel@p4FF1C5F3.dip0.t-ipconnect.de] has joined #go-nuts 12:01 -!- moraes [~moraes@189.103.188.201] has quit [Ping timeout: 276 seconds] 12:12 -!- vikstrom [~vikstrom@stockholm.ardendo.se] has joined #go-nuts 12:12 -!- franciscosouza [~francisco@187.105.22.148] has quit [Quit: franciscosouza] 12:18 -!- rlab [~Miranda@238-89-95-178.pool.ukrtel.net] has quit [Read error: Connection timed out] 12:19 -!- ccc1 [~Adium@114-45-84-113.dynamic.hinet.net] has joined #go-nuts 12:20 -!- ccc1 [~Adium@114-45-84-113.dynamic.hinet.net] has quit [Client Quit] 12:23 -!- Alpha_Cluster [~quassel@thief-pool2-121-125.mncable.net] has quit [Ping timeout: 240 seconds] 12:34 -!- foocraft [~ewanas@89.211.210.198] has quit [Ping timeout: 276 seconds] 12:37 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has joined #go-nuts 12:39 -!- ronnyy [~quassel@p4FF1C5F3.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 12:40 -!- Adys_ [~Adys@unaffiliated/adys] has joined #go-nuts 12:40 < zozoR> a while back unsafe.SizeOf was changed so it returned uintptr instead of int 12:41 < zozoR> but in my godoc unsafe i see it returns int 12:41 < zozoR> am i doing something wrong : | 12:41 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has quit [Ping timeout: 240 seconds] 12:42 < zozoR> i run r58 release btw 12:42 < zozoR> gc 12:42 < zozoR> :3 12:43 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 258 seconds] 12:56 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com] has quit [Quit: "Wait... what?!"] 12:56 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has joined #go-nuts 12:57 -!- dlowe1 [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has joined #go-nuts 12:58 -!- foocraft [~ewanas@89.211.209.117] has joined #go-nuts 12:59 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com] has joined #go-nuts 12:59 < skelterjohn> zozoR: file an issue 12:59 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com] has quit [Client Quit] 12:59 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com] has joined #go-nuts 13:02 -!- Dr_Who [~tgall_foo@linaro/tgall-foo] has joined #go-nuts 13:03 < skelterjohn> and yeah - the way you contribute to a project on github is to fork, fix, and pull-request 13:03 -!- Slant [~scott@ppp118-209-153-219.lns20.mel6.internode.on.net] has joined #go-nuts 13:04 -!- Slant [~scott@ppp118-209-153-219.lns20.mel6.internode.on.net] has quit [Client Quit] 13:04 -!- niemeyer [~niemeyer@201-25-35-2.pltce701.dsl.brasiltelecom.net.br] has joined #go-nuts 13:05 < zozoR> :) 13:05 < zozoR> well, after i forked it, i could not get it work 13:05 -!- bthomson [~bthomson@c-68-33-5-232.hsd1.va.comcast.net] has quit [Read error: Operation timed out] 13:05 < zozoR> so i updated my compiler 13:05 < zozoR> and nothing works again :D 13:08 -!- robteix [~robteix@192.55.54.36] has joined #go-nuts 13:10 -!- Slant [~scott@ppp118-209-153-219.lns20.mel6.internode.on.net] has joined #go-nuts 13:12 < zozoR> jesus now nothing works : | 13:13 -!- pharris [~Adium@rhgw.opentext.com] has joined #go-nuts 13:14 -!- rlab [~Miranda@238-89-95-178.pool.ukrtel.net] has joined #go-nuts 13:20 < gmilleramilar> This is not a troll: why does the language need the new operator when it appears to cause confusion and there are alternatives like &Foo{}. In my ~30000 lines of code, I don't use it at all... 13:21 < Namegduf> &Foo{} is a "convenience hack", Pike says. 13:21 < gmilleramilar> ah. 13:21 < Namegduf> If you want a strict, why is it unavoidable, answer, then it is "&Foo{} only works for composite types" 13:22 < Namegduf> But in general &Foo{} is a shortcut for initialisation and new() is the basic memory allocation function. 13:22 < gmilleramilar> but they do the same thing, right? 13:23 < Namegduf> Yes. 13:23 < Namegduf> &Foo{} is limited to composite types, though. 13:24 < gmilleramilar> right, but you can take the address of any variable and it will do an allocation. 13:24 < Namegduf> These are most of the things you want to create a pointer to an initialised one of, though. 13:24 < Namegduf> No. 13:24 < Namegduf> If you create a variable, it will do an allocation. 13:24 < gmilleramilar> s/an allocation/a heap allocation/ 13:24 < Namegduf> If an address is taken anywhere, the place the variable is created will be on the heap. 13:24 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has quit [Read error: Connection reset by peer] 13:25 < Namegduf> The allocation will always only happen once, at the place the variable is declared. 13:25 -!- franciscosouza [~francisco@201.19.106.131] has joined #go-nuts 13:25 < Namegduf> Taking an address somewhere else just sets how the compiler allocates it at that point. 13:25 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has joined #go-nuts 13:25 < gmilleramilar> I don't think that means my statement is wrong 13:26 < Namegduf> Well, if you take the address of something in an inner loop, that's not an allocation. 13:26 < Namegduf> Performance implications and whatnot. Also relevant to where the goroutine can yield. 13:26 < Namegduf> You can take the address of an arbitrart variable, yes. 13:27 < gmilleramilar> agreed, but I don't think I said that. regardless, my initial point stands: there are other ways to do these things, and 'new' causes confusion. 13:28 < Namegduf> The confusion exists just as much for these "other ways". 13:28 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has joined #go-nuts 13:28 < Namegduf> They're equivalent. 13:28 -!- bthomson [~bthomson@c-68-33-5-232.hsd1.va.comcast.net] has joined #go-nuts 13:28 < Namegduf> And it isn't caused by new existing, it's caused by people not being aware of things they need to be aware of. 13:28 < gmilleramilar> I don't think that's true, because &Foo{} (for example) means nothing to C coders. 13:29 < Namegduf> Neither does "new". 13:29 < Namegduf> You may be thinking C++. 13:29 < gmilleramilar> s/C/C++/ 13:29 < Namegduf> That's not the bulk of any real confusion. It's just a point used by silly people to complain. 13:29 < Namegduf> When they're looking for complaints. 13:30 < gmilleramilar> I agree these people are silly, but they are still confused 13:30 < Namegduf> No, not usually. 13:30 < Namegduf> There are confused people, who are confused about something else, and there are people writing Why Go Sucks posts, who are just looking for complaints. 13:30 < Namegduf> The latter are the group who complain about new(). 13:30 < Namegduf> It's not a real problem in writing Go code. 13:32 < exch> complaints and rants get better ratings 13:32 < Namegduf> I find it far more confusing to have allocation be solely via two separate forms of literal syntax, depending on the type, due to a lack of an explicit allocation function. 13:32 -!- leterip [~textual@ip72-218-115-129.hr.hr.cox.net] has joined #go-nuts 13:33 < gmilleramilar> Namegduf: so you use new frequently? 13:33 < Namegduf> Yes. I use it in preference to &Foo{} 13:33 < leterip> hey guys. say i have a TCPConn in another goroutine. is there a way to block until that TCPConn is closed without using another synchronization thing like a channel? 13:33 < leterip> also i have a reference to it 13:34 -!- ccc1 [~Adium@114-45-84-113.dynamic.hinet.net] has joined #go-nuts 13:35 < Namegduf> The stdlib also uses "new" a lot 13:35 < Namegduf> Based on a quick grep 13:36 < gmilleramilar> yeah, I'm not saying that it's not used, but I guess we'll agree to disagree on whether it causes confusion for newbs. 13:36 < gmilleramilar> thanks for the chat, gotta go work. 13:36 < leterip> an example of my question: http://pastie.org/2177611 13:37 < zippoxer> but using &Foo{} you can specify values for Foo's variables. 13:38 < Namegduf> Yes, that's what it's for. 13:39 < zippoxer> and array elements and map items 13:39 * Namegduf simply doesn't share the opinion that things would be friendly for newbies if the only explanation of memory allocation in the spec was "Taking the address of a composite literal (§Address operators) generates a pointer to a unique instance of the literal's value." 13:40 < Namegduf> Somewhere in the middle of "Composite literals" 13:40 < gmilleramilar> I didn't actually say that, but if you want the last word, it's yours. 13:40 < Namegduf> I wasn't talking to you 13:40 -!- bthomson [~bthomson@c-68-33-5-232.hsd1.va.comcast.net] has quit [Ping timeout: 240 seconds] 13:41 < zippoxer> but you are now. 13:41 < zippoxer> kidding ;) 13:42 -!- rlab [~Miranda@238-89-95-178.pool.ukrtel.net] has quit [Read error: Connection timed out] 13:43 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has joined #go-nuts 13:44 -!- kergoth_ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has joined #go-nuts 13:44 -!- ancientlore [~ancientlo@63.76.22.10] has joined #go-nuts 13:49 -!- markcol [~markcol@c-71-231-198-105.hsd1.wa.comcast.net] has joined #go-nuts 13:49 -!- bthomson [~bthomson@c-68-33-5-232.hsd1.va.comcast.net] has joined #go-nuts 13:50 < GS> I am writing to a file using gob. On reading the file iam getting a nill Rec object .see http://pastie.org/2177670. 13:50 < GS> any help? 13:55 -!- markcol [~markcol@c-71-231-198-105.hsd1.wa.comcast.net] has quit [Remote host closed the connection] 13:55 -!- markcol [~markcol@216.239.45.130] has joined #go-nuts 13:57 -!- hsoj [~Adium@96.47.210.2] has joined #go-nuts 13:57 -!- Project-2501 [~Marvin@82.84.69.10] has joined #go-nuts 13:57 < hsoj> any reason I would be getting "can't find import: C"? 13:58 < hsoj> google isn't returning anything pointing me in the right direction 13:58 < exch> hsoj: Any file that has 'import "C"' should be ompiled by cgo, not by the regular go compilers. 13:58 < hsoj> ah 13:58 < exch> add it to the the CGOFILES var in the Makefile instead of GOFILES 13:59 < exch> "C" is not an actual package. it's a special case name recognized by cgo 13:59 < hsoj> gotcha 13:59 < hsoj> makes sense 13:59 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-167-112.clienti.tiscali.it] has quit [Read error: Operation timed out] 14:00 < hsoj> ty for saving me the time for hunting that one =) 14:00 < exch> heh np 14:02 -!- wjlroe [u1877@gateway/web/irccloud.com/x-nennfrfnglfonejy] has left #go-nuts [] 14:07 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat] 14:08 -!- JimPeak [~lejimpeak@modemcable213.208-160-184.mc.videotron.ca] has joined #go-nuts 14:10 -!- molto_alfredo [~molto_alf@142.176.0.21] has joined #go-nuts 14:11 -!- markcol [~markcol@216.239.45.130] has quit [Quit: markcol] 14:12 -!- franciscosouza [~francisco@201.19.106.131] has quit [Quit: franciscosouza] 14:13 < skelterjohn|work> wow - the make/new thread exploded 14:14 < nicka1> Can I get the link? 14:14 < Namegduf> Rabble rabble rabble. 14:14 < Namegduf> And yes, it did. 14:14 < Namegduf> Usually I stay out of them but I think the word "inconsistency" gets to me too much. 14:15 < skelterjohn|work> what's your google groups name? 14:16 < skelterjohn|work> nicka1: https://groups.google.com/d/topic/golang-nuts/sn7xrYBr16c/discussion 14:17 < pharris> See also: http://code.google.com/p/go/source/detail?r=8818ac606e92 14:17 < nicka1> Thanks 14:17 < skelterjohn|work> haha :) 14:18 < Namegduf> skelterjohn|work: namegduf@gmail.com 14:18 < skelterjohn|work> you post to the go-nuts group under that? 14:18 < skelterjohn|work> i don't htink i've seen it 14:19 < Namegduf> On occasion. 14:19 < Namegduf> On this case it was to complain about people complaining about reference types in the built-ins 14:19 < Namegduf> By pointing out that reference types exist amongst user-defined types, and knowing whether a type is one or not is a general problem shared in all languages. 14:20 -!- hsoj_ [~josh@66.54.185.139] has joined #go-nuts 14:20 < skelterjohn|work> -10 on my redit post 14:22 -!- franciscosouza [~francisco@201.19.106.131] has joined #go-nuts 14:24 -!- _nil [~ct@c-67-189-251-116.hsd1.ct.comcast.net] has joined #go-nuts 14:25 -!- _nil [~ct@c-67-189-251-116.hsd1.ct.comcast.net] has quit [Client Quit] 14:25 -!- ct_ [~ct@c-67-189-251-116.hsd1.ct.comcast.net] has joined #go-nuts 14:27 -!- franciscosouza [~francisco@201.19.106.131] has quit [Quit: franciscosouza] 14:28 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts 14:36 < kergoth_> skelterjohn|work: <3 gb 14:36 < skelterjohn|work> :) 14:38 < JimPeak> About gb: I have 4 directories. 1 is a package compiled to .a, the 3 others meant to be executables, although they're compiled to .a library files. Each of the three dirs contains a single Go source file containing a main function, referring (successfully) to the first dir target. Does the packages have to be named 'main' to be recognized as runnable by gb? Or did I miss something ? 14:39 < Namegduf> I think it does in general. 14:39 < Namegduf> I'm prety sure the way Go works is to invoke main.main() 14:39 < Namegduf> *pretty 14:40 < skelterjohn|work> yes to everything said 14:40 < JimPeak> Ok, thanks a lot 14:41 < JimPeak> and great tool btw 14:41 < skelterjohn|work> gb will treat a source directory as a runnable target if all source files within have package main 14:41 < skelterjohn|work> thanks 14:41 -!- jbooth1 [~jay@209.249.216.2] has joined #go-nuts 14:41 < skelterjohn|work> if the package has one source file that isn't main, it will treat it as a package and ignore those other sources - sometimes people put in little example programs that should be ignored 14:42 < skelterjohn|work> also gb ignores the package "documentation" 14:42 < skelterjohn|work> i had to learn all sorts of conventions that i have no use for outside writing gb 14:43 -!- foocraft_ [~ewanas@89.211.136.69] has joined #go-nuts 14:43 -!- Project_2501 [~Marvin@82.84.89.83] has joined #go-nuts 14:44 < zippoxer> you wrote gb firstly for yourself? 14:44 < skelterjohn|work> yes 14:45 < skelterjohn|work> i have a set of about 20 packages that work together for my research, with interdependencies, and i had a build.sh script to invoke the makefiles in order 14:45 < skelterjohn|work> to make sure it linked properly 14:45 < skelterjohn|work> took forever 14:46 < JimPeak> time saver for makefile idiot like me, after years of .net 14:46 -!- Project-2501 [~Marvin@82.84.69.10] has quit [Ping timeout: 258 seconds] 14:46 < skelterjohn|work> goinstall can do similar things these days (it couldn't when i wrote gb), but i find gb easier to use 14:46 -!- foocraft [~ewanas@89.211.209.117] has quit [Ping timeout: 240 seconds] 14:46 < kergoth_> i'm a buildsystem guy, actually, live and breathe makefiles and stuff, but its still a time saver not having to keep a template package around. just get straight to the code 14:47 < skelterjohn|work> i'm biased, obviously 14:47 < zippoxer> i guess cgo support made gb so complicated? 14:47 < skelterjohn|work> is gb that complicated? what do you mean? 14:47 < zippoxer> i mean big :P 14:47 < zippoxer> the code is not just few lines 14:47 < zippoxer> as i once tought a build tool should be. 14:48 < zippoxer> thought* 14:48 < skelterjohn|work> gb does a lot of extra stuff that you probably don't need 14:48 < skelterjohn|work> each of those extra bits needs some source 14:48 < skelterjohn|work> the cgo part wasn't that bad 14:48 < zippoxer> oh 14:48 < skelterjohn|work> just cgo.go 14:49 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #go-nuts 14:49 -!- GeertJohan [~geertjoha@s51478c91.adsl.wanadoo.nl] has quit [Quit: Leaving.] 14:50 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts 14:53 -!- Tv__ [~Tv__@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts 14:54 -!- Project-2501 [~Marvin@82.84.68.158] has joined #go-nuts 14:54 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts 14:55 -!- kfmfe04 [~kfeng@114-32-57-164.HINET-IP.hinet.net] has quit [Quit: WeeChat 0.3.0] 14:56 -!- franciscosouza [~francisco@201.19.106.131] has joined #go-nuts 14:57 -!- Project_2501 [~Marvin@82.84.89.83] has quit [Read error: Operation timed out] 14:59 -!- Slant [~scott@ppp118-209-153-219.lns20.mel6.internode.on.net] has quit [Quit: Slant] 15:00 -!- Project_2501 [~Marvin@82.84.71.4] has joined #go-nuts 15:02 -!- ronnyy [~quassel@p4FF1C5F3.dip0.t-ipconnect.de] has joined #go-nuts 15:03 -!- Project-2501 [~Marvin@82.84.68.158] has quit [Ping timeout: 240 seconds] 15:05 < jnwhiteh> skelterjohn|work: got my tool working: http://paste.pocoo.org/show/432326/ 15:05 < skelterjohn|work> remind me what you were doing? 15:05 < skelterjohn|work> something about finding everything of the right type 15:06 -!- Project-2501 [~Marvin@82.84.88.64] has joined #go-nuts 15:07 -!- Tv__ [~Tv__@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 240 seconds] 15:08 -!- pjacobs [~pjacobs@66.54.185.133] has joined #go-nuts 15:09 -!- hargettp_ [~hargettp_@dhcp-161.mirrorimage.net] has joined #go-nuts 15:09 -!- hargettp_ [~hargettp_@dhcp-161.mirrorimage.net] has left #go-nuts [] 15:09 -!- leterip [~textual@ip72-218-115-129.hr.hr.cox.net] has quit [Read error: Operation timed out] 15:09 -!- Project_2501 [~Marvin@82.84.71.4] has quit [Ping timeout: 240 seconds] 15:10 < jnwhiteh> skelterjohn|work: yeah 15:10 < jnwhiteh> so that's given me all instances where I touch a Superblock type 15:11 -!- sacho [~sacho@87-126-7-117.btc-net.bg] has quit [Ping timeout: 240 seconds] 15:11 < skelterjohn|work> oh and it's to do with your genetic programming stuff, right? 15:12 -!- Natch [~natch@178.73.217.178] has joined #go-nuts 15:12 -!- Natch| [~natch@178.73.220.205] has quit [Ping timeout: 260 seconds] 15:12 < jnwhiteh> no, actually, has to do with verifying mutexes 15:12 -!- hsoj [~Adium@96.47.210.2] has left #go-nuts [] 15:13 < skelterjohn|work> oh interesting 15:13 < kergoth_> minixfs? 15:13 < kergoth_> ah, right 15:13 < skelterjohn|work> at a recent conference I spoke to a guy whose lab did stuff to verify that race conditions wouldn't occur 15:14 < skelterjohn|work> basically, trying to order mutex operations in such a way that behavior became undefined 15:15 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-174-75.clienti.tiscali.it] has joined #go-nuts 15:15 -!- AndyP [~andyp@ubuntu/member/andyp] has quit [Quit: leaving] 15:17 -!- sacho [~sacho@87.126.39.0] has joined #go-nuts 15:17 -!- Project-2501 [~Marvin@82.84.88.64] has quit [Ping timeout: 240 seconds] 15:19 -!- rlab [~Miranda@238-89-95-178.pool.ukrtel.net] has joined #go-nuts 15:19 -!- ccc1 [~Adium@114-45-84-113.dynamic.hinet.net] has quit [Quit: Leaving.] 15:24 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-163-171.clienti.tiscali.it] has joined #go-nuts 15:25 -!- franciscosouza [~francisco@201.19.106.131] has quit [Quit: franciscosouza] 15:26 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has joined #go-nuts 15:26 -!- leterip [~textual@ip72-218-115-129.hr.hr.cox.net] has joined #go-nuts 15:26 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has left #go-nuts [] 15:27 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-174-75.clienti.tiscali.it] has quit [Read error: Operation timed out] 15:28 < erus`> https://github.com/tm1rbrt/bitcoinrpc :D 15:28 < erus`> how do i tell go not to put a semi colon at the end of a line? 15:30 < skelterjohn|work> you make it not end with an identifier 15:30 < skelterjohn|work> or some other things - i don't remember the rule exactly 15:30 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-166-119.clienti.tiscali.it] has joined #go-nuts 15:30 < erus`> a := \n b 15:30 < skelterjohn|work> don't do that 15:30 < erus`> i want that to work 15:30 < skelterjohn|work> i don't think there is a way to do that 15:30 < leterip> dont fight gofmt 15:31 < erus`> one of my lines goes over 80 chars :'( 15:31 < kergoth_> so? 15:31 < skelterjohn|work> there are places to split it other than after the = 15:31 < leterip> this isnt python 15:31 < kergoth_> there are people who care about the 80 char boundary nowadays? 15:31 < kergoth_> i can't remember the last time i used a window less than 112 chars wide, myself 15:31 < erus`> yeah i like more than one window horizontaly 15:31 < kergoth_> so do i 15:32 < skelterjohn|work> erus`: pastebin the line that's too long 15:32 < erus`> really... 15:32 < erus`> pastebin one line 15:32 < skelterjohn|work> it's really long 15:32 < skelterjohn|work> apparently 15:32 < erus`> 82 chars 15:32 < erus`> well 85 15:32 < skelterjohn|work> use your judgement 15:32 < erus`> blankTestRequest := `{"jsonrpc": "1.0", "id":"", "method": "help", "params": [] }` 15:32 -!- dforsyth [~dforsyth@ec2-50-18-22-230.us-west-1.compute.amazonaws.com] has joined #go-nuts 15:33 < skelterjohn|work> oh it's a string 15:33 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-163-171.clienti.tiscali.it] has quit [Ping timeout: 246 seconds] 15:33 < skelterjohn|work> http://pastebin.com/eKLk2rhP 15:34 < erus`> thanks skelterjohn. also the other day i had a function that was longer than 80 lines 15:34 < erus`> char* 15:34 < skelterjohn|work> or http://pastebin.com/1r7k9PsN 15:34 < skelterjohn|work> that seems like a poorly named function 15:36 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-154-131.clienti.tiscali.it] has joined #go-nuts 15:36 < erus`> it was the arguements and return type 15:37 < erus`> and i couldnt split them across lines 15:38 -!- erus` [~chatzilla@mailgate.ips-international.com] has quit [Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]] 15:39 -!- rael_wiki [~chatzilla@unaffiliated/rael-wiki/x-8420294] has joined #go-nuts 15:39 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-166-119.clienti.tiscali.it] has quit [Ping timeout: 264 seconds] 15:44 < rael_wiki> hello everybody 15:44 < skelterjohn|work> hi 15:45 < zippoxer> hello 15:45 < rael_wiki> is there anywhere a deeper description of the netchan package? I read this one http://golang.org/pkg/netchan/ but I just don't know where to start. A rapid google search didn't lead me anywhere... 15:46 < skelterjohn|work> what's going wrong? 15:46 < skelterjohn|work> are you trying to figure out how to use it, or do you want a better understanding of how its implemented? 15:47 < rael_wiki> mainly I want to figure out how to use it 15:47 -!- Project_2501 [~Marvin@82.84.99.160] has joined #go-nuts 15:47 < rael_wiki> then I may be interested in the implementation too 15:47 < skelterjohn|work> i bet there are some _test.go files in the netchan package that you can take a look at 15:48 < kergoth_> there was a thread on the mailing list just like last week with someone asking for an example 15:48 < kergoth_> which someone provided 15:48 < kergoth_> search the google group 15:49 < rael_wiki> skelterjohn|work: where can I find the _test.go files? 15:49 < zippoxer> http://golang.org/src/pkg/netchan/ 15:49 < rael_wiki> kergoth_: thanks I'm going to check it 15:49 < rael_wiki> zippoxer: thanks 15:50 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has quit [Remote host closed the connection] 15:50 < zippoxer> np 15:50 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-154-131.clienti.tiscali.it] has quit [Ping timeout: 240 seconds] 15:51 -!- Skola [~bas@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has quit [Ping timeout: 260 seconds] 15:51 < kergoth_> rael_wiki: https://groups.google.com/forum/#!topic/golang-nuts/DohxeVIP5M4 is the thread i mentioned 15:51 * kergoth_ should really use google groups more, the new interface is lovely 15:51 < skelterjohn|work> has it switched to be the default, now? 15:51 < skelterjohn|work> i've been using it for a while 15:52 < rael_wiki> kergoth_: thanks a lot 15:52 < kergoth_> not sure, i switched to it the other day 15:52 < kergoth_> rael_wiki: np 15:53 -!- Skola [~bas@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has joined #go-nuts 15:53 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has joined #go-nuts 15:53 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-148-201.clienti.tiscali.it] has joined #go-nuts 15:54 -!- rlab [~Miranda@238-89-95-178.pool.ukrtel.net] has quit [Ping timeout: 240 seconds] 15:55 -!- yogib [~yogib@131.234.59.64] has quit [Quit: yogib] 15:55 -!- kergoth_ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Read error: Connection reset by peer] 15:56 < Skola> anybody know a published other than pragprog that let's you buy programming-related ebooks with paypal? 15:57 < Skola> publisher* 15:57 -!- Project_2501 [~Marvin@82.84.99.160] has quit [Ping timeout: 276 seconds] 15:58 < zippoxer> stupidest stackoverflow answer i've ever seen: http://stackoverflow.com/questions/6605051/performance-focused-desktop-program-ruby-or-go/6609376#6609376 15:58 < zippoxer> how stupid one can be? 15:58 -!- ronnyy [~quassel@p4FF1C5F3.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 15:59 < Skola> what is stupid about it? 16:00 < Skola> to me not the idea of comparing go with ruby for performance 16:00 < Skola> but for wanting to do image manip with ruby 16:00 < zippoxer> "A desktop program should be written in Python." - that's just a taste of stupidness. 16:00 -!- kergoth_ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has joined #go-nuts 16:00 < zippoxer> ohh and more: "I can't imagine how writing it in C or Go will make it visibly faster given that all your GUI libraries will be in C anyway." 16:01 < Skola> lol 16:01 < Skola> yeah that's hilarious 16:01 < zippoxer> and the man understands in the programming area, that's the sad part. 16:01 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-148-201.clienti.tiscali.it] has quit [Ping timeout: 250 seconds] 16:02 < Skola> he's interested in system programming, or so it says in his bio 16:03 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has quit [Read error: Connection reset by peer] 16:03 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has joined #go-nuts 16:04 -!- photron [~photron@port-92-201-67-130.dynamic.qsc.de] has quit [Ping timeout: 240 seconds] 16:05 < zozoR> well i can agree to some point, that most desktop programs might as well be written in python 16:06 < zippoxer> he said "should". 16:06 < zozoR> GUI is like, import gui gui.PleaseDoThisForMe() 16:06 < zozoR> and then you have nice gui 16:06 < zippoxer> and most desktop programs are written in C++ :\ 16:06 < zippoxer> yeah pretty much the same in most langs if you use a designer. 16:07 < zozoR> true :P 16:07 < zozoR> itll be awesome when go can wrap C++ stuff :D 16:07 < zippoxer> can't it? :P 16:07 < zozoR> nope 16:07 < zozoR> only c 16:07 < zippoxer> omg? :\ 16:08 < zippoxer> i thought cgo is.. 16:08 < zozoR> is C 16:08 < zozoR> >.> 16:08 < zippoxer> :\ 16:08 < zozoR> D: 16:08 < zozoR> why would people make GTK library instead of Qt? because GTK is in C and Qt C++ :P 16:08 < Namegduf> Go can wrap C++ stuff 16:08 < Namegduf> Using SWIG 16:08 < zippoxer> lol so you have to write a C wrapper to C++ or what? 16:08 < Namegduf> I believe so, anyway. 16:09 < Namegduf> Go to C to C++ can also work, yeah. 16:09 -!- cmike_ [~mcrosby@adsl-99-75-50-144.dsl.bltnin.sbcglobal.net] has joined #go-nuts 16:09 < zozoR> roflcopter 16:09 * Namegduf doesn't like Qt for the startup times. 16:10 < Namegduf> A guy who knows more about Qt than me blames the Linux linker for not being able to handle the massive number of symbols their use of templates generates 16:10 < Namegduf> (At speed) 16:10 < zozoR> why cant it all be loaded into the ram and no startup time 16:10 < Namegduf> Dynamic linking requires runtime linking 16:10 < Namegduf> Well, linking at startup. 16:11 < Namegduf> 's just the way it works. 16:11 < kergoth_> Linkers & Loaders by John R. Levine is a pretty good book on the subject 16:11 < Namegduf> Thanks for the recommendation. 16:12 * Namegduf doesn't know much about the area, really 16:12 < zozoR> :/ dynamic linking is bad xD 16:12 < kergoth_> not particularly 16:13 < Namegduf> I agree, really. The introduction of errors is really unusual nowadays 16:13 < Namegduf> Due to package management and whatnot 16:13 < kergoth_> we've seen the perils of excessive static linking when zlib had its security problems, linux distros had to scramble 16:13 < kergoth_> heh 16:13 < Namegduf> kergoth_: I don't think "have to issue a rebuild, update many packages" is that much more onerous than "update the zlib package" 16:14 < Namegduf> I mean, obviously there's an advantage there, but I don't think it's worth the complexity of dynamic linking in a system. 16:14 -!- cmike_ [~mcrosby@adsl-99-75-50-144.dsl.bltnin.sbcglobal.net] has quit [Quit: cmike_] 16:14 < Namegduf> Even without sending only changes rather than whole new packages, which is something package management right now is bad at. 16:14 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host closed the connection] 16:15 < Namegduf> I wouldn't call it a peril, anyway. 16:15 < kergoth_> first, not all distro buildsystems are as capable as i think you hope they are : 16:15 < Namegduf> The current processes are optimised for dynamic linking, yes. 16:15 < Namegduf> I don't think it's fair to factor that into the comparison. They can change. 16:16 < kergoth_> space is a concern as well, particularly in embedded systems 16:16 < Namegduf> Ehh. 16:16 * kergoth_ lives and breathes embedded linux 16:16 < Namegduf> I'll take your word for it, then, that it's significant there. 16:16 < Namegduf> I'm not convinced it's that big a win on typical machines, though. 16:17 < Namegduf> There's been lots of comparisons of little utility programs proving similar. 16:17 < Namegduf> And busybox seems to like static, although building everything into one binary is sort of cheating 16:17 < kergoth_> a typical embedded linux system needs a hell of a lot more than busybox nowadays 16:17 -!- bmizerany [~bmizerany@204.14.152.118] has joined #go-nuts 16:17 < kergoth_> particularly ones with displays 16:21 -!- GS [~gsv@108-61-238-49.southernonline.net] has quit [Remote host closed the connection] 16:28 -!- dlowe1 [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has quit [Quit: *poof*] 16:29 -!- erus` [~chatzilla@host86-162-245-90.range86-162.btcentralplus.com] has joined #go-nuts 16:30 -!- virtualsue [~chatzilla@nat/cisco/x-zqdxkrrxifishasi] has quit [Quit: ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]] 16:32 -!- chanwit [~chanwit@49.48.84.3] has joined #go-nuts 16:32 -!- yogib [~kaiser@dslb-188-100-015-022.pools.arcor-ip.net] has joined #go-nuts 16:34 -!- erus` [~chatzilla@host86-162-245-90.range86-162.btcentralplus.com] has quit [Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]] 16:34 -!- lucian [~lucian@78-86-217-168.zone2.bethere.co.uk] has joined #go-nuts 16:34 -!- erus` [~chatzilla@host86-162-245-90.range86-162.btcentralplus.com] has joined #go-nuts 16:35 -!- chanwit [~chanwit@49.48.84.3] has quit [Client Quit] 16:36 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 16:37 -!- chanwit [~chanwit@49.48.84.3] has joined #go-nuts 16:42 -!- smw [~stephen@unaffiliated/smw] has joined #go-nuts 16:43 -!- meling [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has quit [Remote host closed the connection] 16:44 -!- tncardoso [~thiagon@150.164.2.20] has quit [Quit: Leaving] 16:44 -!- cmike_ [~mcrosby@99.75.50.144] has joined #go-nuts 16:50 -!- rlab [~Miranda@147-6-113-92.pool.ukrtel.net] has joined #go-nuts 17:00 -!- meling [~meling@cse-dhcp-10-91.ucsd.edu] has joined #go-nuts 17:00 -!- awidegreen [~quassel@h-170-226.a212.priv.bahnhof.se] has joined #go-nuts 17:01 < jessta> kergoth_: dynamically linked libraries tend to be large to avoid the overhead of loading multiple small libraries at run time. This means that a program is unlikely to use all the functionality of a library it's linking to. 17:02 < kergoth_> true. you can get around that on systems with fixed content through tools that analyze what's used and trim the shared libraries to match, though 17:03 < skelterjohn|work> sounds complicated 17:03 < kergoth_> not really that different from what the linker can do at build time, just after the fact. agreed, though :) 17:03 < jessta> kergoth_: since you're doing that you could also create static binries to match 17:04 < kergoth_> you could, but it depends on the use case. using shared libraries, i could use the same binary packages to construct multiple filesystems without rebuilding, one of which is fixed, one of which is not, and supports installation of further packages down the line 17:05 < kergoth_> build times get far from trivial when you're building entire linux distributions, unfortunately 17:05 < jessta> which is the ideal case for dynamic linking to function as advertised 17:08 -!- chanwit [~chanwit@49.48.84.3] has quit [Quit: Leaving.] 17:09 < jessta> if you build everything yourself and know what programs work with what version of what libraries and ship that then it will work 17:09 < kergoth_> if you break abi compatibility, bump the minor version, and therefore the soname. not that difficult. some upstreams, admittedly, don't know a damn thing about proper versioning, unfortunately 17:10 -!- pyrhho [~pyrhho@host-92-27-75-48.static.as13285.net] has quit [Quit: pyrhho] 17:13 -!- photron [~photron@port-92-201-67-130.dynamic.qsc.de] has joined #go-nuts 17:13 -!- photron_ [~photron@port-92-201-67-130.dynamic.qsc.de] has joined #go-nuts 17:13 -!- photron_ [~photron@port-92-201-67-130.dynamic.qsc.de] has quit [Remote host closed the connection] 17:14 < jessta> yeah, and that's the problem. Once you start having to deal with other projects they eventually screw it up breaking things unexpectedly and causing support nightmares 17:15 -!- robteix [~robteix@192.55.54.36] has quit [Quit: Leaving] 17:16 < jessta> which is why commerical software tends to ship it's own version the std libs 17:16 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:f548:ebf4:72f4:826e] has quit [Ping timeout: 255 seconds] 17:17 < kergoth_> yeah, true. trying to ship portable binaries is a gigantic pain in the ass 17:17 < skelterjohn|work> except with go 17:17 < kergoth_> the lsb tools are supposed to help with that, but the tools suck 17:17 * kergoth_ nods 17:17 < jessta> especially in the case of Go where the std lib is changing constantly 17:17 * kergoth_ has pretty much given up on linux machines as desktops, only uses them for development 17:17 -!- franciscosouza [~francisco@201.19.106.131] has joined #go-nuts 17:18 < jessta> imagine dynamically linking to a library under constant dev 17:18 < leterip> is there a way to block until a net.TCPConn is closed? http://pastie.org/2177611 is what im trying to achieve 17:18 < leterip> i guess i could pass in a channel too but i'd like to not have to do that 17:18 < jessta> leterip: you could read from it 17:19 < leterip> jessta but i can't risk SomeHelper not getting all the data from it 17:19 < leterip> it reads too 17:19 < jessta> so why have a goroutine 17:19 < jessta> ? 17:19 < pharris> You could SomeHelper (without go) and then go // maybe more stuff after you conn.Close. 17:20 < leterip> its a contrived example 17:20 < jessta> ok, use a channel 17:20 < leterip> id just like to have the functionality of blocking until a TCPConn is closed or finished or whatever 17:21 < skelterjohn|work> put something in between the connection and the helper 17:21 < skelterjohn|work> whenever the something reads, it passes the data along. when it finds the EOF, it sends a message to whatever is listening 17:21 -!- tav [~tav@2.99.78.223] has joined #go-nuts 17:21 < leterip> yeah theres easy ways to do it with channels and stuff 17:22 < leterip> i guess thats really the only way to go about it 17:22 < skelterjohn|work> communication between goroutines is best done with channels 17:22 < skelterjohn|work> it's simple that way 17:23 < leterip> it's surprising that net.TCPConn's dont have some function to check if the connection is still active though 17:23 < leterip> there has to be some api 17:23 < leterip> i guess i should look at the internals to see what happens when you try to Write() after it's Close()'d 17:24 -!- rlab [~Miranda@147-6-113-92.pool.ukrtel.net] has quit [Read error: Connection reset by peer] 17:25 < leterip> it just checks to make sure it != nil and it.fd != nil, both of which are internal :( 17:26 < erus`> anyone using bitcoin in here? 17:26 < leterip> jessta you could be correct. i can try to read into an empty slice and if it returns os.EINVAL it's closed 17:26 -!- ronnyy [~quassel@p4FF1C5F3.dip0.t-ipconnect.de] has joined #go-nuts 17:28 < jessta> leterip: I don't think you can actually tell anything about a file descripter unless you try to interact with it 17:29 < leterip> yeah but the way TCPConn wraps the file descriptor lets me do that. it seems terribly hackish so im probably just going to refractor somewhere instead 17:30 -!- dgnorton [~dgnorton@97.65.135.112] has joined #go-nuts 17:30 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:10c2:ac95:cd31:168d] has joined #go-nuts 17:31 -!- Skola [~bas@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has quit [Ping timeout: 258 seconds] 17:32 -!- franciscosouza [~francisco@201.19.106.131] has quit [Quit: franciscosouza] 17:35 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection] 17:35 < dgnorton> Is there a way to set the console cursor position in go? 17:35 < aiju> yes 17:35 < aiju> but why would you do that 17:35 -!- franciscosouza [~francisco@201.19.106.131] has joined #go-nuts 17:35 < kergoth_> heh, probably just want a curses library if you're messing with that sort of thing 17:35 < dgnorton> aiju: to update the same line? 17:36 < aiju> dgnorton: you can use \r to go back to the beginning of the line 17:36 < kergoth_> couldn't you just emit a \r? 17:36 < kergoth_> aiju: :) 17:37 < dgnorton> is there a curses lib for go? 17:37 < aiju> probably 17:38 < skelterjohn|work> godashboard.appspot.com/project 17:38 < skelterjohn|work> most 3rd party go libraries are listed there 17:38 < skelterjohn|work> if one isn't, it's the author's fault 17:38 -!- Fish- [~Fish@9fans.fr] has joined #go-nuts 17:39 < dgnorton> thanks 17:44 -!- robteix [~robteix@nat/intel/x-mtouxqyafanodbya] has joined #go-nuts 17:50 -!- Skola [~bas@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has joined #go-nuts 17:51 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #go-nuts 17:57 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection] 17:57 -!- Project_2501 [~Marvin@82.84.65.60] has joined #go-nuts 18:05 -!- tav [~tav@2.99.78.223] has quit [Ping timeout: 255 seconds] 18:05 < kergoth_> i always forget where to put the ... 18:06 < kergoth_> keep having to check the docs 18:06 < kergoth_> someday it'll sink in, i hope 18:06 < aiju> write it on your hand 18:06 < kergoth_> hehe 18:06 -!- rael_wiki [~chatzilla@unaffiliated/rael-wiki/x-8420294] has quit [Quit: ChatZilla 0.9.87 [Firefox 7.0a1/20110705030811]] 18:06 -!- ronnyy [~quassel@p4FF1C5F3.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 18:07 -!- slicslak [~slicslack@S010600212966ae5b.ed.shawcable.net] has quit [Quit: Leaving] 18:09 -!- rlab [~Miranda@95-210-95-178.pool.ukrtel.net] has joined #go-nuts 18:10 -!- ronnyy [~quassel@p4FF1C5F3.dip0.t-ipconnect.de] has joined #go-nuts 18:11 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection] 18:18 -!- r_linux [~r_linux@static.200.198.180.250.datacenter1.com.br] has joined #go-nuts 18:21 -!- saschpe [~quassel@opensuse/member/saschpe] has joined #go-nuts 18:25 -!- tav [~tav@92.20.95.247] has joined #go-nuts 18:35 < zozoR> kergoth_, ...T input T... output :D remember it like that 18:36 < kergoth_> thanks, that might help :) 18:36 -!- leterip [~textual@ip72-218-115-129.hr.hr.cox.net] has quit [Quit: Leaving...] 18:39 < skelterjohn|work> ...Type, or Value... 18:39 < zozoR> ...T... schizophrenia 18:42 < aiju> just guess 18:42 < aiju> you'll be right 50% of the time 18:45 < Namegduf> Type follows name, ... is in place of a name. operators on a value follow the value, ... sort-of operates on a value. 18:45 < Namegduf> That's the way I remember it, anyway. 18:48 < skelterjohn|work> i'm not much for mnemonics 18:48 < skelterjohn|work> i just do it wrong until i do it right 18:51 -!- lucian [~lucian@78-86-217-168.zone2.bethere.co.uk] has quit [Remote host closed the connection] 18:52 -!- unit3 [~Unit3@76.77.91.41] has joined #go-nuts 18:53 -!- ronnyy [~quassel@p4FF1C5F3.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 18:53 -!- Barbarossa [~max@rfc2324.org] has quit [Ping timeout: 246 seconds] 18:54 < unit3> Hey, does flag support alternate short and long forms for flags like other languages' option parsers do? or is there a more powerful option parser that people recommend? 18:54 < aiju> thank god no 18:54 -!- keithcascio [~keithcasc@nat/google/x-hludphcsactpneag] has joined #go-nuts 18:56 -!- franciscosouza [~francisco@201.19.106.131] has quit [Quit: franciscosouza] 18:56 < unit3> errr... I find that response confusing. Care to elaborate? :) 18:57 < kevlar_work> unit3, "flag" only supports [-]-option[[=][value]] 18:58 < kevlar_work> goopt supports getopt-like flags if you need that, but you probably don't. 18:58 < aiju> i don't see the point in complicating your flag syntax to the point of it doing turing complete 18:58 < skelterjohn|work> try goargcfg.googlecode.com 18:59 < unit3> aiju: I'm not looking for that. Just sometimes it's nice to have both a short and long form of a flag. that's really all I'm after. 18:59 -!- moraes [~moraes@189.103.188.201] has quit [Ping timeout: 246 seconds] 18:59 < skelterjohn|work> though, goargcfg is probably not what you want 18:59 < aiju> well, i don't see the point 18:59 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 18:59 < kevlar_work> unit3, it turns out that it's often best to have common options be short and easy-to-remember and other arguments be long and clear 18:59 -!- Jessica_Lily [~Jessica@unaffiliated/xray7224] has quit [Ping timeout: 250 seconds] 19:00 < unit3> kevlar_work: that's fair. I was mostly just curious if I'd missed something obvious in the flag package. 19:01 < unit3> I've seen situations where the obvious short flag for different options ends up being the same letter, so having more descriptive long options in addition ends up being helpful. however, I'm not nearly at that point yet. ;) 19:01 < kevlar_work> you'll find that the stdlib packages are mercifully terse and relatively inflexible in- and of themselves 19:02 < kevlar_work> but they tend to provide you with what you need to build up more complicated functionality with a minimum of headache. 19:02 < unit3> Yeah, I'm seeing that. It definitely makes it easier to learn and use the standard libs though, so I generally appreciate it. 19:02 < unit3> for sure. 19:02 < aiju> the stdlib is nice, simple and sane 19:02 < kevlar_work> the easiest way to do aliases is to, before you call flag.Parse, edit os.Args and switch "-s" to "--silent" 19:02 < aiju> that's how i'd phrase it 19:03 < kevlar_work> but caveat emptor; that can cause some unexpected things to happen. 19:03 < unit3> kevlar_work: oh yeah, that's simple and sensible. good suggestion. like I said, I don't need it yet, but I was curious. 19:04 < skelterjohn|work> you can tell the flag package to parse an arbitrary []string, can't you? 19:04 < kevlar_work> one thing I love about the flag package is that any package compiled into your program can define command-line flags :D 19:04 < skelterjohn|work> so you can make a copy, do your replacements, and not screw anything else up 19:04 < aiju> kevlar_work: good grief 19:04 < aiju> kevlar_work: this sounds like an invitation to Xlib insanity 19:04 < skelterjohn|work> yeah i'm gonna go out on a limb and *not* like that :) 19:04 < kevlar_work> hehehehe. 19:04 < aiju> i think kdelib does it to 19:04 < aiju> *too 19:05 < kevlar_work> sarcasm in text works so well. 19:05 < aiju> life is too short to know all X11 options 19:05 < kevlar_work> rofl. 19:05 < kevlar_work> but in all honesty, I do like that I can define flags in global scope in each file of my main package if necessary 19:06 < kevlar_work> I don't typically leave them there if they go live, but it's nice for one-off flags during debugging and for if e.g. you want to include cpu profiling flags in a separate file and just remove that file in the makefile when you build for deployment. 19:07 < unit3> My other question is, what about flags like -v, where you don't want an argument, you just want it to do something internally when the flag is set. Is that something else that's not really handled by the flag package? 19:07 < aiju> kevlar_work: i'm not criticising the feature, even 19:07 < aiju> kevlar_work: sure sounds handy 19:07 < unit3> or am I just missing the obvious way to do it? :) 19:07 < skelterjohn|work> flag.Args() will skip the flags and just give you the args 19:07 < aiju> unit3: boolean flag 19:08 < skelterjohn|work> oh 19:08 < skelterjohn|work> yes 19:08 < skelterjohn|work> if you want an answer to your actual "question" 19:08 < unit3> haha 19:08 < aiju> he might want an answer to his questions 19:08 < aiju> amazing. 19:09 < unit3> meh, a lot of this is just curiosity, I'm enjoying the discussion too. ;) 19:09 < skelterjohn|work> generally i feel that people will be better off listening to what i have to say than to what they want to hear :) 19:09 < unit3> so, do you just do flag.Bool("v", false, "verbosity), and then it'll set it to true if flag is present? 19:09 < skelterjohn|work> yes 19:09 < unit3> perfect. 19:12 -!- rlab [~Miranda@95-210-95-178.pool.ukrtel.net] has quit [Read error: Connection reset by peer] 19:13 -!- magn3ts [~magn3ts@ip68-103-225-65.ks.ok.cox.net] has quit [Read error: Connection reset by peer] 19:13 -!- tncardoso [~thiago@189.59.128.192.dynamic.adsl.gvt.net.br] has joined #go-nuts 19:14 -!- gnuvince|work [8e544424@gateway/web/freenode/ip.142.84.68.36] has quit [Quit: Page closed] 19:20 -!- Adys_ [~Adys@unaffiliated/adys] has quit [Ping timeout: 240 seconds] 19:21 < kergoth_> hmm, okay, if a type has non-public members, callers from other packages have to refer to them only via pointers, correct? otherwise it tries to construct it implicitly and yells loudly 19:22 < skelterjohn|work> yes 19:22 < kergoth_> okay, figured that was the case after some experimentation, but wanted to be certain. thanks 19:24 < zozoR> oh didnt know that, neat 19:26 -!- serverhorror [~martin@krlh-5f721ee4.pool.mediaWays.net] has joined #go-nuts 19:27 < nicka1> Are there any docs/books for Go other than the documentation on go-lang.org? 19:28 < nicka1> I didn't know about that little gotcha either 19:28 < serverhorror> http://www.amazon.com/Go-Programming-John-P-Baugh/dp/1453636676 19:29 < skelterjohn|work> unfortunately any book about go is bound to be outdated by the time you finish reading it 19:30 < aiju> i haven't seen a good go book yet 19:30 < nicka1> That is what I read, just curious 19:31 < skelterjohn|work> the reviews for that book on amazon are pretty harsh 19:32 < serverhorror> are there any packages that will let me use some messaging middleware. I've seen discussions about AMQP on the mailing list but I haven't found a nice combination of "install server and don't care anymore"+"install package and just use it". I don't really care about the kind of messaging I just want to be able to receive message with other languages...hence AMQP is the first that comes to my mind 19:32 < aiju> messaging middleware as in dbus? 19:32 < serverhorror> yes but networked. dbus is for a single host only afaik 19:34 < jessta> dbus has networking, but nobody seems to use it 19:35 < uriel> dbus has everything 19:35 < uriel> and does nothing 19:36 < jessta> serverhorror: there are zeromq bindings 19:36 -!- Kahvi [~Kahvi@a91-152-177-58.elisa-laajakaista.fi] has joined #go-nuts 19:38 < serverhorror> I'm looking at github.com/alecthomas/gozmq now 19:41 < zozoR> when people critisize Go, what are they attacking? 19:42 < aiju> not enough OOP bloat 19:42 < aiju> no generics 19:42 < skelterjohn|work> their own fallibility 19:42 < KirkMcDonald> No exceptions. 19:42 < aiju> garbage collection 19:42 < skelterjohn|work> people want it to be the language they're used to using with different syntax 19:42 < skelterjohn|work> instead of a different language 19:42 < KirkMcDonald> And the consequent manual error handling. 19:42 < aiju> too fast compile times 19:42 < aiju> no time to play doom during compiles 19:43 < nicka1> Don't they usually complain about new and make? 19:43 < aiju> hahahaha 19:43 < zozoR> seriously, who whines about that 19:43 < aiju> i thought serious complaints 19:43 < zozoR> i should slap them 19:43 < skelterjohn|work> heh 19:43 -!- dfr|mac [~dfr|work@nat/google/x-qlirzrxzzxyknpki] has joined #go-nuts 19:43 < serverhorror> you can't load stuff at runtime so a plugin system isn't possible where you just drop stuff in some directory 19:43 < skelterjohn|work> (yet) 19:43 -!- sebastianskejoe [~sebastian@188.114.142.217] has joined #go-nuts 19:43 < zozoR> why the yet? 19:43 < skelterjohn|work> because it may happen one day? 19:43 -!- dfr|mac [~dfr|work@nat/google/x-qlirzrxzzxyknpki] has quit [Remote host closed the connection] 19:43 < jessta> skelterjohn|work: they want the same syntax too, but they want their language to be new and from Google 19:44 < smw> jessta, they want it to be just like [insert language here] except compiled, really fast, and magically concurrent. 19:45 < zozoR> so basicly: no methodoverloading/polymorphisme, no generics, garbage collection and no runtime loading of stuff -- that is what the dont like? 19:45 < aiju> favourite languages: python, ruby 19:45 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has left #go-nuts [] 19:45 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has joined #go-nuts 19:45 < aiju> zozoR: and the syntax 19:45 < zozoR> what, the syntax is awesome? 19:45 < aiju> well 19:45 < exch> They all love Go, except the bits that are like Go 19:45 < aiju> people complain about it 19:45 < jessta> people don't like {} 19:46 < aiju> people don't like Go being reversed to C 19:46 < smw> aiju, what does that mean? 19:46 < aiju> var i int 19:46 < aiju> as opposed to int i; 19:46 < Namegduf> Pascal-style variable declarations 19:46 < smw> aiju, oh yea, stuff like that still ticks me off 19:46 < Namegduf> Not something that matters as a metric of language quality 19:46 < skelterjohn|work> "go being reversed to C" does not mean that, fyi 19:46 < skelterjohn|work> maybe a german-ism 19:46 < smw> aiju, there are too many things they do that it looks like they did just to be different... 19:47 < dlowe> I'd be more interested in what you have to complain about Go, aiju 19:47 < aiju> skelterjohn|work: not really 19:47 < aiju> hhaa 19:47 < Namegduf> smw: There's a decent explanation of why they did variable declarations that way. 19:47 < zozoR> the C spiral 19:47 < zozoR> :D 19:47 < dlowe> unless it's a perfect gem of flawless quality 19:47 < serverhorror> If I had one thing to choose, I'd like the pkg docs to be more linked, like "interface foo this is implemented by: bar, baz" (and the other way around, mentioning all the interfaces something implements) 19:47 < smw> Namegduf, interesting. I would love to here it :-). 19:47 < skelterjohn|work> serverhorror: that has come up - but it would be misleading 19:47 < Namegduf> smw: In short, declarations in C are supposed to look like the way variables are used. This is utterly mad for complex types. 19:48 < Namegduf> Especially function pointers and whatnot. 19:48 < Namegduf> The C spiral and whatnot in how to read them. 19:48 < aiju> the most complex C type i've ever used in a real program was 19:48 -!- cmike_ [~mcrosby@99.75.50.144] has quit [Quit: cmike_] 19:48 < aiju> void (*array[10])(); 19:48 < Namegduf> smw: Go, instead, didn't try for that. 19:49 < skelterjohn|work> aiju: function pointers? 19:49 < aiju> skelterjohn|work: yeah 19:49 < skelterjohn|work> oh wait, that's a function pointer? 19:49 < serverhorror> skelterjohn: how is that misleading? 19:49 < skelterjohn|work> i was saying that a funciton pointer might look more complicated 19:49 < aiju> it's an array of ten function pointers 19:49 < skelterjohn|work> lol 19:49 < aiju> [10]func() in Go 19:49 < skelterjohn|work> serverhorror: because something can satisfy an interface without meaning to 19:50 < skelterjohn|work> and using it where that interface is expected would be wrong 19:50 < zozoR> (which is awesome) 19:50 -!- pjacobs [~pjacobs@66.54.185.133] has quit [Read error: Connection reset by peer] 19:50 < Namegduf> smw: The Go rules are nice and simple and easy to read for even composite types, while C's... are pretty awful. 19:50 -!- pjacobs [~pjacobs@66.54.185.133] has joined #go-nuts 19:51 < smw> Namegduf, ok. One thing I really like go is that I can read the spec :-) 19:51 < Namegduf> Go's also handle pointers more sensibly 19:51 < serverhorror> skelterjohn: hmmm isn't implementing an interface "by accident" a feature of go -- of course by accident shouldn't be the rule but if it does the API is out there anyway so people will use it 19:52 < Namegduf> In C, the * goes before the variable name, so int* x, y; won't do what you expect. 19:52 < smw> Namegduf, right, it handles pointers by hiding them 19:52 < Namegduf> ...no? 19:52 < Namegduf> Go doesn't hide pointers at all. 19:52 < aiju> Go pointers are nice 19:52 < smw> It hides them in unsafe... 19:52 < aiju> not as powerful as C pointers 19:52 < Namegduf> No, it doesn't. 19:52 < aiju> and not as fucking retarded as C# references 19:52 < zozoR> xD 19:52 < Namegduf> Pointers are a first-class, perfectly normal, quite commonly used type of types. 19:52 < smw> ok 19:52 < Namegduf> Unsafe is just the only way to convert one pointer to another. 19:52 < Namegduf> Unsafely. 19:52 < smw> got it 19:53 < aiju> i miss C pointer arithmetic, but it's not something i can seriously criticize 19:53 < Namegduf> In Go, "var x, y *int" will do what it looks like 19:53 -!- JimPeak [~lejimpeak@modemcable213.208-160-184.mc.videotron.ca] has left #go-nuts [] 19:53 < Namegduf> In C, "int* x, y;" will not, because part of the type is specified in how each identifier is written. 19:53 < Namegduf> And * is one of those parts. 19:53 < zozoR> why isnt the start part of the int in C 19:54 < aiju> Namegduf: tbh i make use of that quite often 19:54 < skelterjohn|work> type A B; aBPointer = (*B)(anAPointer) works fine, doesn't it? 19:54 < aiju> char c, *p; 19:54 < Namegduf> skelterjohn|work: No 19:54 < Namegduf> Oh, wait. 19:54 < Namegduf> That might. 19:54 < skelterjohn|work> :) 19:55 < exch> it will 19:55 < skelterjohn|work> but if it were type A { B } i think that would not work 19:55 < Namegduf> smw: Can I suggest trying out writing some Go programs if you want to learn about the language? 19:55 < aiju> is type A { B } even valid syntax 19:55 < Namegduf> Yes 19:55 < skelterjohn|work> +struct 19:55 < Namegduf> Er, with that added, yeah. 19:56 < aiju> there should be a newsletter 19:56 < aiju> with all changes to the go spec 19:56 < smw> Namegduf, I have made small stuff. Still have not come up with a project :-P 19:56 < zozoR> smw, do eulerprojects, the first 10 problems with go 19:56 < zozoR> and concurrency 19:56 < zozoR> then you can do the basics :D 19:57 < smw> I can do the basics 19:57 < smw> well, maybe not with concurrency :-P 19:57 < aiju> concurrency is difficult to master 19:57 < smw> yes 19:58 < zozoR> i wish i could figure out concurrency 19:58 < skelterjohn|work> helps you get currency 19:59 < zozoR> yeah -.- 19:59 * Namegduf is still trying to wrap his head around distributed system design 19:59 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat] 19:59 < kevlar_work> I've been writing Go for over a year and I still find better ways to do concurrency. 20:00 < zozoR> then channels? 20:00 < zozoR> than* 20:00 < Namegduf> I think he means "design patterns" 20:00 < Namegduf> With channels. 20:00 < zozoR> meh, i dont get it for now 20:00 < kevlar_work> yeah, better and better design patterns, better and better ways to design programs to be concurrent and readable, etc 20:00 < aiju> "design patterns" 20:01 < smw> I found python concurrency easier to get my head around than go :-P. Of course, that was only for simple job queues, nothing major. 20:01 < aiju> "design patterns" are concepts used by people who can't learn by any method except memorization, so in place of actual programming ability, they memorize "patterns" and throw each one in sequence at a problem until it works 20:01 < aiju> — Dark_Shikari 20:01 < smw> aiju, I completely disagree. 20:01 < skelterjohn|work> let's all make factories. 20:02 < aiju> no, factory factory interface creators 20:02 < smw> aiju, design patterns make code more readable... sometimes 20:02 < aiju> don't you mean idioms? 20:02 < smw> aiju, aren't design patterns just idioms on a larger scale? 20:03 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Read error: Connection reset by peer] 20:03 < jnwhiteh> kevlar_work: such as? 20:05 < smw> aiju, I expect a program which does NNTP and one which does SMTP to have approximately the same API, correct? 20:05 < smw> aiju, there may be small differences, but you would expect connecting + authentication to work about the same way 20:05 < aiju> this is an entirely different issue 20:05 < Namegduf> That doesn't relate to design patterns, which are classes of approaches to implementation, not API. 20:05 < smw> ok 20:05 < Namegduf> And the answer is "only if one of the two authors saw the other's work" 20:06 < smw> I meant you would want that to be the case :-). Not that you would expect it. 20:07 < aiju> i get my news via UUCP over a 28.8k modem line 20:07 < aiju> no clue what you mean 20:09 < Namegduf> Design patterns are loose ideas about how to make certain categories of thing, second order tools typically gotten from experience in solving problems. I think that they shouldn't be treated as either solutions or building blocks to solutions outright, and most people who are fans of using them to solve problems typically abuse them as such. 20:09 < Namegduf> Many things published as "design patterns" are designed to be used that way. 20:09 < skelterjohn|work> a class I TA'd seemed to treat them like that 20:09 < skelterjohn|work> it was very frustrating 20:10 < skelterjohn|work> i didn't really know how to teach it in a meaningful way 20:10 < Namegduf> The result is needlessly pointlessly overcomplex systems due to generic designs glued together and built into a huge thing to do the job instead of a single, sensible design. 20:10 < aiju> most of design patterns seems to be OOP crap 20:10 < aiju> like "abstract factories" 20:10 < aiju> or "singletons" (hahahaha) 20:10 < Namegduf> Ick, I'd forgotten that class of design pattern. 20:10 < skelterjohn|work> the only problem with the "singleton" pattern is someone thought it needed a name and an explanation 20:11 -!- huin [~huin@91.85.188.1] has joined #go-nuts 20:11 < Namegduf> Design "patterns" which are actually just suggestions on how to work around a problem in a bigger design 20:11 < Namegduf> Via adding more design on top. 20:11 < aiju> skelterjohn|work: no, the pattern is idiotic 20:11 < Namegduf> i.e. factories. 20:11 < aiju> global variables are evil 20:11 < skelterjohn|work> you never want to have exactly one shared instance of something? 20:11 < aiju> just take a class and make all that shit static inside 20:11 < Namegduf> They CAN be right, usually they aren't. 20:11 < aiju> perfect! 20:11 < aiju> skelterjohn|work: that's not a singleton 20:12 < skelterjohn|work> that's what i thought a singleton was 20:12 < aiju> int x; // EVIL GLOBAL VARIABLE 20:12 < aiju> class Foo { static int x; } // GOOD SINGLETON 20:12 < skelterjohn|work> that is a caricature of a poor way to implement singletons 20:12 < ment> i made up my own design patterns 20:12 < ment> my favorite is "steal someone else's code" pattern 20:12 < aiju> well, that's how they thought it to me 20:12 < Namegduf> aiju has a point 20:12 < aiju> *taught 20:13 < skelterjohn|work> your school sucks 20:13 < Namegduf> Singletons share all the typical negative qualities of global variables 20:13 < aiju> skelterjohn|work: haha 20:13 < Namegduf> It's just that global variables used in a controlled way are not that evil 20:13 < aiju> skelterjohn|work: read it on wikipedia 20:13 < aiju> IT'S EVEN WORSE THERE 20:13 < smw> ment, not very original. Not even a new name :-P 20:13 < skelterjohn|work> wikipedia is not a good resource for programming advice 20:13 < aiju> you have a private instance of a class 20:13 < aiju> and then have a static method 20:13 < crunge> global variables ~= goto 20:13 < aiju> to get an instance of it 20:13 < Namegduf> That sounds about right. 20:14 < aiju> global variables are okay in small programs 20:14 < crunge> to the processor, all variables are global and all jumps are goto 20:14 < aiju> crunge: bs 20:14 < Namegduf> To the processor, variables don't exist. 20:14 < crunge> the problem is when developers don't understand what the processor is doing 20:14 < skelterjohn|work> aiju: then presumably you could pass it to something that needs an interface it implements 20:14 -!- pjacobs [~pjacobs@66.54.185.133] has quit [Quit: Leaving] 20:14 < skelterjohn|work> which you couldn't do it if were a bunch of global/static var/methods 20:14 < crunge> variable/value in/referenced by a register 20:15 < Namegduf> Or by a location in memory 20:16 < Namegduf> I think the comparison isn't too interesting anyway, because they're both so entirely different the problems of each don't really connect. 20:16 < aiju> or by adding a value to a register 20:16 < aiju> and taking that as an address 20:16 < Namegduf> Any similarity in the results of their use is purely coincidental. 20:16 < aiju> don't try to put processor addressing modes into a scheme 20:17 < crunge> what they share is the notion that they're inherently wrong and that developers are incapable of using them correctly 20:17 < aiju> global variables aren't inherently wrong 20:17 < unit3> well, there are some things that, statistically, people seem incapable of using correctly. at least if buffer overflow attacks against "modern" c/c++ apps are any indication. ;) 20:18 < unit3> but yet, global variables are fine, IMO. 20:18 -!- fenicks [~fenicks@log77-3-82-243-254-112.fbx.proxad.net] has joined #go-nuts 20:18 < unit3> erm s/yet/yes/, rather. 20:18 < aiju> tiny programs i write have shitloads of global variables 20:18 < aiju> if you design programs that they may eventually reach 1 million lines 20:18 < crunge> unit3: kind of a poor example. How many times do you hear about an application not being vulnerable to buffer overflows? 20:18 < aiju> you will end up with an overcomplicated design 20:18 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts 20:18 < skelterjohn|work> crunge: when it's written in go 20:19 < unit3> heh 20:19 < unit3> exactly. 20:19 < unit3> sometimes language safety features are a good idea. 20:19 < aiju> unit3: cat(1) has no buffer overflow vulnerability 20:19 < skelterjohn|work> haha 20:19 < skelterjohn|work> i'd hope not 20:19 < unit3> hahaha 20:19 < aiju> i'm tired of program nowadays meaning 1 billion line overcomplicated mess 20:19 < aiju> what happened to UNIX style? 20:19 < crunge> I'm totally with you. And doesn't go give you the ability with unsafe? 20:19 < skelterjohn|work> aiju: floods the $PATH space 20:19 < aiju> crunge: terreo unsafe et donas ferrentem 20:19 < crunge> aiju: they don't teach that in java classes 20:20 < skelterjohn|work> crunge: you can do anything with unsafe, including buffer overflow stuff 20:20 < skelterjohn|work> but at least you have to try 20:20 < unit3> indeed. 20:20 < unit3> I like safe by default, force it if you know what you're doing. 20:20 < skelterjohn|work> aiju: translation? 20:20 < aiju> grep unsafe *.go && echo "you're fired" | mail programmer 20:20 < aiju> skelterjohn|work: "i fear unsafe even if it brings presents" 20:21 < skelterjohn|work> ok... 20:21 < crunge> Yes. That's the unix way. Require a -f to delete unwritable files, but give you the option to do so 20:21 < skelterjohn|work> fun saying 20:21 < skelterjohn|work> ? 20:21 < aiju> parody of "terreo danaos et donas ferrentes" 20:21 < skelterjohn|work> what's danaos? 20:21 < aiju> "i fear the greeks even if they bring presents" 20:21 < skelterjohn|work> ah 20:21 -!- zcram [~zcram@77-233-85-18.cdma.dyn.kou.ee] has joined #go-nuts 20:21 < aiju> reference to the trojan war 20:21 < skelterjohn|work> i got that 20:21 < skelterjohn|work> just not the .. latin? 20:22 < crunge> we're all saying the same thing. Certain things are easy to screw up and it's a good idea to discourage those things but important to permit them. 20:22 < unit3> indeed. 20:23 < skelterjohn|work> i bet it's hard to write buffer overflow bugs with java, too 20:23 -!- pjacobs [~pjacobs@66.54.185.130] has joined #go-nuts 20:23 < unit3> it is. but then you have to write java. 20:23 < skelterjohn|work> downsides to everything 20:23 < unit3> heheheh 20:23 < aiju> i haven't found a buffer overflow in my code yet 20:24 < aiju> but i'm probably not exercising heavy enough, lol 20:24 < skelterjohn|work> i wrote java for a long while... it's a relief to not have to create so much boilerplate for everything... or to be able to code outside of an IDE 20:24 -!- kergoth_ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Remote host closed the connection] 20:24 < unit3> for sure. 20:24 < erus`> reminds me of haskell 20:24 < unit3> especially with many other languages getting a lot better at being cross platform, java is way down on my list of choices these days. 20:25 < aiju> java is not good at cross platform 20:25 < unit3> no. it's not. 20:25 < aiju> java portability is a motherfucking joke 20:25 < erus`> aiju: not really 20:26 < erus`> look at minecraft 20:26 < erus`> one codebase 20:26 < aiju> it runs on how many operating systems 20:26 < aiju> three? 20:26 < aiju> oh wait four, solaris 20:26 < erus`> yeah 20:26 < unit3> so the four people care about then. ;) 20:26 < aiju> it runs on how many architectures? 20:26 < erus`> 2 20:26 < skelterjohn|work> this is the server or the client? 20:26 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has quit [Quit: Leaving.] 20:26 < erus`> aiju: the vm is opensource 20:26 < aiju> i meant java 20:26 < erus`> people are free to port it 20:26 < aiju> haha 20:26 < skelterjohn|work> that sort of defeats the purpose 20:27 < aiju> i can compile plain ANSI C on virtually any machine in existence 20:27 < skelterjohn|work> java, in theory, should be able to be compiled once and then run on all the different platforms 20:27 < erus`> not on windows 20:27 < skelterjohn|work> since it runs in a VM 20:27 < erus`> without cygwin 20:27 < aiju> Dis code runs on a variety of architectures and systems 20:27 < aiju> erus`: uh huh? 20:27 -!- pjacobs [~pjacobs@66.54.185.130] has quit [Ping timeout: 255 seconds] 20:27 < aiju> erus`: i said ANSI, not POSIX 20:28 < erus`> yeah but how do you ship your C code? 20:28 < unit3> you can, but it doesn't behave exactly the same across platforms, and ANSI C by itself is almost useless. 20:28 < erus`> with makefiles? 20:28 < zozoR> crosscompiling :3 20:28 < erus`> and then fill them with posix stuff like everyone else 20:28 < aiju> i have written C code which runs on the same architectures as minecraft and it was not particularly annoying 20:29 < Husio> is strings.SplitN new function or it's gone in hg version? 20:29 < unit3> heh, I'd find it annoying, but I find C annoying in general. 20:29 < aiju> and still 20:29 < skelterjohn|work> Husio: new as of a few weeks ago 20:29 < aiju> 22:33 < aiju> Dis code runs on a variety of architectures and systems 20:29 < crunge> graphics and sound are what make it a bear 20:29 < Husio> skelterjohn|work: thanks 20:29 < aiju> java is way beyond its potential 20:29 < aiju> crunge: SDL 20:30 < skelterjohn|work> Husio: SplitN does what Split used to do, Split now is like calling SplitN with -1 as the max (meaning as many as possible) 20:30 < crunge> aiju: anecdotal, but why don't people use it for everything? 20:30 < skelterjohn|work> SDL has problems 20:31 < skelterjohn|work> #define main _SDL_MAIN 20:31 < skelterjohn|work> for one 20:31 < aiju> SDL is a mess, yes 20:31 -!- saschpe [~quassel@opensuse/member/saschpe] has quit [Remote host closed the connection] 20:31 < aiju> but it does its job 20:31 < crunge> s/SDL/Java/ 20:31 < unit3> heheh 20:31 < aiju> except that java doesn't work 20:31 < erus`> try building sdl on windows 20:31 < skelterjohn|work> no thanks 20:32 < aiju> erus`: it's not much worse than using eclipse 20:32 < skelterjohn|work> that's an odd comparison 20:32 < skelterjohn|work> "building SDL on windows is like using eclipse" 20:32 < crunge> "it's at least sligthly better than concious amputation" 20:32 < erus`> both painful i guess... 20:32 < erus`> thats why i like haskell and go 20:33 < erus`> but some librarys still use make and stuff :( 20:33 < aiju> what's wrong with make 20:33 < crunge> Java has a very specific and very important domain 20:33 < erus`> i like C++ but linking and stuff is such a pain 20:33 < aiju> hahahahaha 20:33 < aiju> erus`: which 10% of it? 20:33 < erus`> do you use windows ever? 20:33 < aiju> erus`: at work 20:33 < aiju> and to play games 20:34 < erus`> 99% of open source C/C++ uses makefiles fill of uname and other *nix only stuff 20:34 < erus`> cmake is crap 20:34 < molto_alfredo> what is a build system that is not crap 20:34 < erus`> visual studio... dont even get me started 20:34 < aiju> make 20:35 < aiju> most stuff can be compiled with 20:35 < erus`> after building boost for mingw you get boost-system_mingw_20123123.a 20:35 < aiju> gcc -DSOMEFLAGS *.c 20:35 < erus`> so you have to make a makefile for every different setup 20:35 < aiju> erus`: boost is a fucking gigantic messy clusterfuck 20:35 < crunge> programming is hard :( 20:35 < erus`> modules are nicer 20:36 < aiju> it takes HOURS to compile 2000 lines of boost code on a machine of mine 20:36 < skelterjohn|work> molto_alfredo: gb 20:36 < erus`> programming is the easy bit :P 20:36 < aiju> and i'm not even exaggerating 20:36 < aiju> C++ compilers are one of the few programs which make the machine look 1000 times slower 20:36 < erus`> aiju: it took me all day to build boost at work 20:36 < erus`> i was sword fighting on chairs 20:36 < aiju> hahaha 20:36 < erus`> im not even a programmer by trade 20:36 < aiju> i troll on IRC during compile times 20:37 < zozoR> Go reduces your troll time then :D 20:37 < aiju> hahaha 20:37 < aiju> zozoR: i'd be finished after half a day 20:37 < aiju> it would largely increase it 20:37 < zozoR> true 20:37 < zozoR> : | 20:38 < aiju> i have some C# code which should be fast 20:38 < aiju> but is slow as fuck 20:38 < aiju> and i can't use a profiler because the MSVS profiler requires at least premium 20:38 < aiju> tomorrow will be fun 20:38 < zozoR> lol 20:38 < aiju> i suspect C# list faggotry, i'll just reintroduce good ol' manual doubly linked lists 20:39 < zozoR> use slices! :D 20:39 < aiju> but C# references are so fucking AAARGH 20:39 < zozoR> why? arent they just.. references? 20:39 < aiju> they are implicit, which annoys the fuck out of a C programmer like me 20:39 < zozoR> ah 20:39 < erus`> aiju: explain 20:39 < zozoR> yea, it is kinda annoyting 20:40 < aiju> erus`: there are no objects, only pointers to objects, basically 20:40 < aiju> so for something ridiculously simple like a pair of numbers 20:40 < aiju> you have to write annoying boilerplate Clone() methods 20:40 < zozoR> xD 20:40 < erus`> well yeah 20:40 < erus`> its just like java 20:40 < aiju> you can't return multiple values 20:41 -!- pjacobs [~pjacobs@66.54.185.133] has joined #go-nuts 20:41 < erus`> try f# though i've heard good thing 20:41 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has joined #go-nuts 20:41 < skelterjohn|work> isn't there a keyword to make something a value rather than a reference? 20:41 < aiju> there are no fucking pointers 20:41 < aiju> skelterjohn|work: cool, i hope so 20:41 < skelterjohn|work> i forget what it was - i did a game project using C# about a year ago 20:41 < skelterjohn|work> and for the collision stuff i had to do this 20:41 < skelterjohn|work> to make it not retarded 20:41 < aiju> erus`: i'm not touching .NET voluntarily 20:42 < zozoR> why dont you have a job as a C programmer instead 20:42 < aiju> erus`: F# looks like microsoft haskell 20:43 < erus`> its ocaml.net 20:43 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:10c2:ac95:cd31:168d] has quit [Quit: Leaving.] 20:43 < zozoR> i'd want to hit aiju if i sat next to him at work while he was coding C# 20:43 < zozoR> : | 20:43 < erus`> but with built in async stuff 20:43 < aiju> zozoR: haha 20:43 < aiju> zozoR: it's just for three weeks 20:44 < zozoR> i imagin you to be like that unreal tournament kid 20:44 < aiju> hahahahha 20:44 < erus`> lol 20:44 < zozoR> "I JUST WANT A FUCKING POINT!?=!" xD 20:44 < aiju> no, i'm restraining myself 20:44 < zozoR> pointer* 20:44 < aiju> i'm not even complaining about it 20:44 < zozoR> lies, what do you call this :P 20:44 < skelterjohn|work> informing you of his misgivings 20:44 < aiju> zozoR: IRC and RL are two pairs of shoes 20:44 < zozoR> :3 20:45 < zozoR> i dont mind, i love when you bash languages 20:45 < aiju> haha 20:47 < aiju> actually, the worst thing i'm dealing with is drawing shit using CSS 20:47 < zozoR> why are you doing that 20:47 < zozoR> programmers cant draw 20:47 < skelterjohn|work> artists can't draw using CSS 20:47 < zozoR> "webdesigners" can 20:48 < skelterjohn|work> don't know why you'd want to... 20:48 < skelterjohn|work> CSS is a clusterfuck that i briefly tried to learn, but i gave up 20:48 < skelterjohn|work> i am just not meant to work on web front-ends 20:48 < skelterjohn|work> back-ends, maybe if i need the money 20:48 < erus`> skelterjohn just keep it simple 20:48 < skelterjohn|work> front-end, i'm hopeless 20:48 < skelterjohn|work> i was trying SO HARD to keep it simple 20:48 < erus`> nice faded logo in the bottom right 20:48 < erus`> some curves 20:48 < erus`> job done 20:49 < skelterjohn|work> but what i wanted was inherently complex 20:49 < skelterjohn|work> i was trying to make a web-based go IDE 20:49 -!- Fish- [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the Fish] 20:49 < aiju> working on web shit is fucking annoying 20:49 < aiju> i pity anyone who does this for prolonged amounts of time 20:49 < erus`> aiju: it can be very rewarding 20:50 < skelterjohn|work> i honestly feel that CSS is the worst possible way to specify layouts 20:50 < erus`> people have instant access to your work 20:50 < skelterjohn|work> i don't think i could come up with a worse way on purpose 20:50 < aiju> skelterjohn|work: yeah, CSS is a horrible unorthogonal mess which every browsers interprets differentlz 20:50 < aiju> *y 20:50 < aiju> basically you keep throwing attributes until it works 20:50 < zozoR> to do web, you'd have to know javascript, css, html and some backend language 20:51 < skelterjohn|work> that's what i ended up doing 20:51 < skelterjohn|work> and i gave up 20:51 < zozoR> is frustrating 20:51 < aiju> http://aiju.de/up/Capture.PNG 20:51 < aiju> my results 20:51 < aiju> includes shitloads of hacks 20:51 < skelterjohn|work> i have no idea what that is 20:51 < zozoR> what is that? 20:51 < aiju> queue at an airport 20:52 < zozoR> : | 20:52 < erus`> you should do traffic lights next 20:52 < aiju> haha 20:53 < erus`> anyway we have canvas now 20:54 < erus`> webpages are gonna be big annoying fullscreen canvases like back when people used to make websites in flash 20:55 < skelterjohn|work> *whimper* 20:55 < zozoR> wouldnt crying be more apropriate? 20:55 < skelterjohn|work> i'm a man 20:55 < skelterjohn|work> i don't cry 20:55 < skelterjohn|work> i just whimper and moan pathetically 20:55 < skelterjohn|work> i hate flash sites 20:55 < zozoR> flash sites hate you too 20:56 < skelterjohn|work> flash sites hate your face 20:56 < brandini> swf to html5 20:57 < zozoR> no difference.. 20:57 < skelterjohn|work> it's not the tech that bothers me - it's the result 20:57 < zozoR> exactly 20:57 < brandini> games on computers are pure win! 20:58 < zozoR> compared to? 20:58 < zozoR> board games? 20:58 < aiju> websites in flash are generally not worth visiting 20:58 < erus`> chess is the best game :) 21:00 -!- robteix [~robteix@nat/intel/x-mtouxqyafanodbya] has quit [Ping timeout: 255 seconds] 21:01 < zozoR> is it normal to have meaningless encapsulation in java? 21:01 < skelterjohn|work> yes 21:01 < skelterjohn|work> you can forget the "in java" part 21:01 < brandini> any object you create will extend some other object 21:01 < brandini> whether you need to or not :) 21:02 < zozoR> is just, i am reading about boilerplate coding on wikipedia 21:02 < zozoR> and it notes under some code 21:02 < zozoR> "see, if we made these two variables public, we didnt have to have 4 methods on this class, BUT THAT WOULD BREAK ENCAPSULATION!" 21:03 < zozoR> and i think, are people seriously doing that out in the real world? 21:03 < zozoR> why?? 21:04 < erus`> in the real world people fuck stuff up 21:04 < erus`> thats why each time that handles part of a system will make it as hard as possible to break their part 21:04 < erus`> so they dont get in shit 21:04 < erus`> hence getter, setters etc etc 21:05 < erus`> where time = team 21:05 < zozoR> that makes no sense 21:05 < zozoR> they code 40% more lines of code.. to make sure they dont fuck up? thats just stupid 21:05 < unit3> that's corporate "best practices". 21:05 < crunge> That's the niche Java fills 21:06 < erus`> to make sure the people interfacing with their code cant use it in a way that they didnt foresee 21:06 < skelterjohn|work> it's more like you add more code to make sure other people don't fuck up 21:06 < skelterjohn|work> i don't see this as a bad thing 21:06 < zcram> people fuck up. always. 21:06 < crunge> it helps reduce the damage caused by hiring the cheapest programmers you could find. 21:06 < zozoR> it makes sense if you are to validate your data 21:07 < skelterjohn|work> also, an inadvertently exposed part of your system might be used by someone from the outside - you change it (without changing the actual API) and they start complaining cause their shit stopped work 21:07 < zozoR> but if you only set and get (without anything else), why not just use public instead of private 21:07 < skelterjohn|work> working 21:07 < skelterjohn|work> this used to happen a lot with OSes 21:07 < skelterjohn|work> probably still does 21:07 < zozoR> :/ 21:08 < zozoR> well i suppose it has its good points then 21:10 -!- r_linux [~r_linux@static.200.198.180.250.datacenter1.com.br] has quit [Quit: Lost terminal] 21:11 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.] 21:13 -!- unit3 [~Unit3@76.77.91.41] has left #go-nuts ["Leaving"] 21:14 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Remote host closed the connection] 21:15 < |Craig|> forcing access through accessor methods allows you to change how the data is stored (recomputed when requested) in the future, and possibly take action when it changes. The lack of ability to do those things without changing the API if you use public properties directly could be considered a language deficiency (its not an issue in all languages) 21:16 -!- Kumul [~Kumul@adsl-207-204-167-196.prtc.net] has joined #go-nuts 21:16 < skelterjohn|work> C#, objC have standard ways to do it 21:16 -!- mkb218 [~mkb@pool-96-233-4-238.bstnma.east.verizon.net] has quit [Read error: Operation timed out] 21:16 < skelterjohn|work> for example 21:16 < skelterjohn|work> i feel that go is lower level than those languages are, though, and writing out the methods is fine 21:18 -!- mkb218 [~mkb@pool-96-233-4-238.bstnma.east.verizon.net] has joined #go-nuts 21:26 -!- foocraft [~ewanas@89.211.136.69] has quit [Quit: if you're going....to san. fran. cisco!!!] 21:34 -!- kritic [~kritic@dynamic-216-211-120-165.tbaytel.net] has joined #go-nuts 21:35 < erus`> well go exposes interfaces for this stuff right 21:35 -!- jsj [~johan@78-70-253-105-no149.tbcn.telia.com] has joined #go-nuts 21:35 -!- huin [~huin@91.85.188.1] has quit [Quit: bedtime] 21:37 -!- photron [~photron@port-92-201-67-130.dynamic.qsc.de] has quit [Read error: Operation timed out] 21:38 -!- kergoth_ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has joined #go-nuts 21:40 -!- sebastianskejoe [~sebastian@188.114.142.217] has quit [Ping timeout: 260 seconds] 21:47 -!- kergoth_ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has quit [Read error: Connection reset by peer] 21:49 < Namegduf> I think it's less of an issue with larger modules, as seen in Go 21:50 < Namegduf> Usually when modules are package-sized, not class sized, accessors and setters become requests and setting of abstract properties, rather than an obvious single field, and don't exist in too large numbers. 21:50 < Namegduf> That's what I think, anyway. 21:52 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit: Verlassend] 21:57 -!- tncardoso [~thiago@189.59.128.192.dynamic.adsl.gvt.net.br] has quit [Quit: bye] 21:57 -!- erus`_ [~chatzilla@host86-162-228-176.range86-162.btcentralplus.com] has joined #go-nuts 21:58 -!- sniper506th [~sniper506@rrcs-70-61-192-18.midsouth.biz.rr.com] has quit [Quit: Leaving...] 21:59 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts 21:59 -!- erus` [~chatzilla@host86-162-245-90.range86-162.btcentralplus.com] has quit [Ping timeout: 250 seconds] 22:00 < angasule> hi, is there a better way of initialising a bool array to true than doing: for pos := range arrayVar { arrayVar[pos] = true } ? 22:01 < exch> nope. bools are always initialized to false 22:02 < angasule> oh, ok, just wondering :-) 22:02 < kevlar_work> agh, reflect.DeepEqual is giving me headaches 22:02 < kevlar_work> param["obj"] = map[string] interface { }{"k":"v", "n":42}, want map[string] interface { }{"k":"v", "n":42} 22:02 < kevlar_work> wtf. 22:03 < kevlar_work> looks pretty dang DeepEqual to me. 22:04 < kevlar_work> oh psh, it's because json decodes {"n":42} as {"n":float64(42)} 22:08 < angasule> I grabbed a D example I found somewhere and translated into Go, if anyone cares to take a look (it's a short program, 27 lines) http://pastebin.com/zEA9mNbT 22:08 -!- dorzey [~dorzey@host109-149-2-36.range109-149.btcentralplus.com] has joined #go-nuts 22:10 -!- nicka1 [~lerp@142.176.0.21] has quit [Quit: Leaving.] 22:11 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping timeout: 255 seconds] 22:16 -!- meling [~meling@cse-dhcp-10-91.ucsd.edu] has quit [Remote host closed the connection] 22:17 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts 22:19 -!- kergoth_ [~kergoth@ip24-251-173-232.ph.ph.cox.net] has joined #go-nuts 22:21 -!- Skola [~bas@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has quit [Ping timeout: 240 seconds] 22:21 -!- awidegreen [~quassel@h-170-226.a212.priv.bahnhof.se] has quit [Ping timeout: 240 seconds] 22:26 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 260 seconds] 22:28 -!- Kahvi [~Kahvi@a91-152-177-58.elisa-laajakaista.fi] has quit [Ping timeout: 276 seconds] 22:28 -!- Kahvi [~Kahvi@a91-152-177-58.elisa-laajakaista.fi] has joined #go-nuts 22:37 -!- dorzey [~dorzey@host109-149-2-36.range109-149.btcentralplus.com] has quit [Quit: Leaving.] 22:37 -!- Project_2501 [~Marvin@82.84.65.60] has quit [Quit: E se abbasso questa leva che succ...] 22:39 -!- jbooth1 [~jay@209.249.216.2] has left #go-nuts [] 22:40 -!- nicka [~nicka@unaffiliated/nicka] has joined #go-nuts 22:46 -!- iant [~iant@216.239.45.130] has quit [Ping timeout: 258 seconds] 22:52 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has quit [Ping timeout: 258 seconds] 22:53 -!- Wiz126 [Wiz@h229.120.232.68.dynamic.ip.windstream.net] has joined #go-nuts 22:55 -!- meling [~meling@99-10-121-218.lightspeed.sndgca.sbcglobal.net] has joined #go-nuts 22:55 -!- moraes [~moraes@189.103.188.201] has joined #go-nuts 22:58 -!- Kami_ [~kami@unaffiliated/kami-/x-9078513] has quit [Ping timeout: 276 seconds] 22:58 -!- noam [~noam@87.69.42.61.cable.012.net.il] has joined #go-nuts 23:03 -!- rael_wiki [~chatzilla@unaffiliated/rael-wiki/x-8420294] has joined #go-nuts 23:07 -!- lechienkitu [~lechienki@80.214.8.9] has joined #go-nuts 23:08 -!- Kahvi [~Kahvi@a91-152-177-58.elisa-laajakaista.fi] has quit [Quit: Lähdössä] 23:09 -!- lechienkitu [~lechienki@80.214.8.9] has left #go-nuts ["Where go I ?"] 23:11 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #go-nuts 23:11 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has quit [Quit: twolfe18] 23:13 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has joined #go-nuts 23:25 -!- lurcio_ [~lurcio_@itsnotnormal.plus.com] has joined #go-nuts 23:29 -!- lurcio_ [~lurcio_@itsnotnormal.plus.com] has quit [Client Quit] 23:34 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 276 seconds] 23:37 -!- cafesofie [~cafesofie@ool-18b97779.dyn.optonline.net] has joined #go-nuts 23:38 -!- kingless [~kingless@108-65-61-54.lightspeed.rlghnc.sbcglobal.net] has joined #go-nuts 23:39 -!- l00t [~i-i3id3r_@189.105.5.37] has quit [Remote host closed the connection] 23:40 -!- kritic [~kritic@dynamic-216-211-120-165.tbaytel.net] has quit [Quit: WeeChat 0.3.5] 23:42 -!- ancientlore [~ancientlo@63.76.22.10] has quit [Quit: ~ Trillian Astra - www.trillian.im ~] 23:48 -!- vmil86 [~vmil86@78.57.227.12] has quit [Remote host closed the connection] 23:49 -!- twolfe18 [~twolfe18@c-71-61-180-11.hsd1.pa.comcast.net] has quit [Quit: twolfe18] 23:51 -!- pjacobs [~pjacobs@66.54.185.133] has quit [Quit: Leaving] 23:51 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection] 23:56 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Read error: Connection reset by peer] 23:57 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts --- Log closed Fri Jul 08 00:00:44 2011