code logs -> 2010 -> Fri, 16 Apr 2010< code.20100415.log - code.20100417.log >
--- Log opened Fri Apr 16 00:00:44 2010
--- Day changed Fri Apr 16 2010
00:00
<@McMartin>
Derakon: My issue was that Ruby claims to have this, despite ???!!??:!!!?? being a valid statement.
00:00
<@McMartin>
Er, expression
00:01
<@McMartin>
And despite having block syntax, which is a completely wack-assed implementation of lambda arguments while pretending they're completely unprecedented but also too obvious to explain
00:01
<@McMartin>
I'm unaware of how the scope is different from a normal callable argument, though; what changes?
00:03 * Derakon heads out
00:03 Derakon [Derakon@Nightstar-1ffd02e6.ucsf.edu] has quit [[NS] Quit: Leaving]
00:11
<@ToxicFrog>
McMartin: Haskell is actually increasingly irritating me, because I really like it but never seem to have any problems that it fits
00:11
<@McMartin>
Yes, that's why it spoils you =(
00:34
<@McMartin>
Hot. The new I7 build is going to have a "publish as web page" option, where it JSON's the z-code and links in the Parchment interpreter
00:51 You're now known as TheWatcher[T-2]
00:53 You're now known as TheWatcher[zZzZ]
01:09 Attilla [Attilla@FBC920.3488E2.03ED7E.3EC87F] has quit [Connection reset by peer]
01:35 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?]
01:49 Orthia [orthianz@Nightstar-c830764f.xnet.co.nz] has joined #code
03:24 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Client closed the connection]
04:17 Searh [Z@26ECB6.A4B64C.298B52.D80DA0] has quit [Ping timeout: 121 seconds]
04:40 Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
04:46 Rhamphoryncus [rhamph@Nightstar-8931f88f.abhsia.telus.net] has quit [Client exited]
05:50 Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds]
06:06 AnnoDomini [annodomini@Nightstar-ef91445b.adsl.tpnet.pl] has joined #code
06:07 mode/#code [+o AnnoDomini] by Reiver
08:25 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code
08:41 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
09:04 GeekSoldier_ [Rob@Nightstar-e86e3e0d.ip.cablemo.net] has joined #code
09:04 GeekSoldier [Rob@Nightstar-e86e3e0d.ip.cablemo.net] has quit [Ping timeout: 121 seconds]
09:39 RichardBarrell [mycatverbs@Nightstar-58acb782.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
09:50 You're now known as TheWatcher
11:34 Orthia [orthianz@Nightstar-c830764f.xnet.co.nz] has quit [Client closed the connection]
11:37 Attilla [Attilla@FBC920.3488E2.03ED7E.3EC87F] has joined #code
11:37 mode/#code [+o Attilla] by Reiver
11:41 Orthia [orthianz@Nightstar-c830764f.xnet.co.nz] has joined #code
11:43 Orthia [orthianz@Nightstar-c830764f.xnet.co.nz] has quit [Client closed the connection]
11:49 Orthia [orthianz@Nightstar-c830764f.xnet.co.nz] has joined #code
12:21 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed]
12:23 AnnoDomini [annodomini@Nightstar-ef91445b.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
12:25 AnnoDomini [annodomini@Nightstar-6be0f4b4.adsl.tpnet.pl] has joined #code
12:25 mode/#code [+o AnnoDomini] by Reiver
12:31 cpux is now known as shade_of_cpux
12:55 GeekSoldier_ is now known as GeekSoldier
13:19 Orth [orthianz@Nightstar-acffacc3.xnet.co.nz] has joined #code
13:22 Orthia [orthianz@Nightstar-c830764f.xnet.co.nz] has quit [Ping timeout: 121 seconds]
14:05 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
14:06
< celticminstrel>
Ugh. What is wrong with this computer? :/
14:10
<@TheWatcher>
Crashity?
14:16
< celticminstrel>
Yep.
14:16
< celticminstrel>
When it goes to sleep it won't wake up.
14:17
< celticminstrel>
Googling suggests that resetting the PRAM and/or SMC might help...
14:19
<@jerith>
Give it more amphetamines?
14:19
< celticminstrel>
<_<
14:35 Rhamphoryncus [rhamph@Nightstar-8931f88f.abhsia.telus.net] has joined #code
14:36 Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
14:46 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [Client exited]
14:48 Orthia [orthianz@Nightstar-7de495fb.xnet.co.nz] has joined #code
14:50 Orth [orthianz@Nightstar-acffacc3.xnet.co.nz] has quit [Ping timeout: 121 seconds]
15:04 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
17:04 Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds]
17:39 Serah [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code
17:45 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: *hums* Can't stay now!]
18:41
< Rhamphoryncus>
Mmmm turing machines. My favourite form of pure programming.
20:09 Taki^ [jwjw@Nightstar-9b459f81.consolidated.net] has joined #code
20:12 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
20:53 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
21:52
< Namegduf>
Hmm, interesting.
21:52
< Namegduf>
http://www.tideland.biz/articles/coding-in-go/build-functions-for-lazy-evaluatio n <-- What do the functional peoples think of this?
21:53
< Namegduf>
I find the use of interface{} a little ugly, it's the Go equivalent of void*
21:54
<@AnnoDomini>
If you point at the void long enough, the void also points at you...
21:54
< Namegduf>
XD
21:56
< Namegduf>
The only real issue I see with it is that there's no way to get anything but a continuous stream out of it.
21:57
< Namegduf>
But that could be fixed by adding a parameter in various places.
21:57
< Namegduf>
I'm wondering what the people with more functional knowledge see as actually deficient, if they can read it.
21:58
< Namegduf>
Aside their lack of commenting.
22:04
<@McMartin>
Sorry, was at lunch
22:04
<@McMartin>
Let me see
22:04
<@AnnoDomini>
I have no functional knowledge.
22:05
<@McMartin>
Mmm. It's been a good while since I've messed with go, but I believe interface{} is a little cleaner than void*
22:05
< Namegduf>
It actually is, mostly because you can unbox safely
22:06
<@McMartin>
It's more "seriously, I don't use this object so it doesn't matter what it is"
22:06
< Namegduf>
Yeah.
22:06
<@McMartin>
It's closer to ML's 'a..
22:06
< Namegduf>
And you can check what type it is when unboxing, which is very nice for Printf
22:06
<@McMartin>
Ah, yeah
22:06
< Namegduf>
This code doesn't do that, though.
22:06 * McMartin did a little of that with binary decoding, IHRC.
22:07
< Namegduf>
I'm not sure what interface{} adds to the raw pointer, but I suspect it's some kind of type ID.
22:07
<@McMartin>
It may only be AST annotations.
22:08
< Namegduf>
Best as I remember, an interface is implemented as a two-part structure containing a pointer to the right function table, and a pointer to the data.
22:08
<@McMartin>
Hm. Yeah, and then the first one would be NULL in this case
22:08
< Namegduf>
But there's special stuff for interface{} where the first part isn't a pointer and doesn't need dereferencing, and the data isn't a pointer if the interface{} is boxing up something that fits in a wordanyway.
22:08
<@McMartin>
Which could be optimizable
22:08
<@McMartin>
Right
22:08
<@McMartin>
That's an implementation detail
22:08
<@McMartin>
It *could be* a void pointer at the end of the day
22:09
< Namegduf>
Yeah.
22:09
<@McMartin>
The only reason you'd want to not unbox it automatically is for uniform reference semantics, say because you're optmizing for code size
22:09
<@McMartin>
But if you're optimizing for code size, you aren't writing in Go, at least not the last time I looked at it. >_<
22:10
< Namegduf>
Hmm.
22:10
<@McMartin>
My Go knowledge is too rusty to make sense of a lot of what's going on here.
22:10
< Namegduf>
Ah.
22:10
<@McMartin>
It *looks* like it's using goroutines to function like Python generators to function like lazily generated infinite lists
22:11
<@McMartin>
In which case, yeah, that's more or less how you'd do it, but it doesn't give you lazy evaluation generally, just generators
22:11
< Namegduf>
Hmm.
22:12
<@McMartin>
You also don't get your full history the way you would with lazily generated infinite lists, but the ability to switch that off is a feature. >_>
22:12
< Namegduf>
You could store it in the magic "state" thing.
22:12
< Namegduf>
Which pretty much is "whatever the eval function feels like storing", so far as I can tell.
22:13
<@McMartin>
Mleh
22:13
<@McMartin>
Like, I'm not sure how you'd use this to compute two mutually recursive functions
22:13
< Namegduf>
Hmm.
22:13
< Namegduf>
That wouldn't work, because they're using goroutines for it.
22:14
<@McMartin>
I have some stuff to deal with right now, but I can dig up some Haskell code in three to five hours to make it a little clearer
22:14
< Namegduf>
I kind of wonder why.
22:14
<@McMartin>
No obvious equivalent to "the pointer to the head of the list"
22:15
< Namegduf>
Hmm?
22:16
<@McMartin>
The subprocess I have thinking about this thinks that's an important difference between the Haskell infinite lists and the goroutine/generator setup.
23:18
<@McMartin>
Hm. Forwarding a PSA: http://sourceforge.net/projects/javara/ is apparently a good cleanup tool if you have a bunch of random Java cruft left on your system
23:27
<@McMartin>
A question, for those of you more familiar with modern software than I: what's a good RCS for home development? I've been meaning to learn git or mercurial but don't know if they're worth the effort for a home LAN, or if one is noticably better than the other.
23:27
<@McMartin>
I have pretty extensive cvs/svn experience.
23:27
<@Vornicus>
Git is entirely localized.
23:27
<@McMartin>
Isn't hg too?
23:27
<@Vornicus>
I don't know about mercurial, but jerith pointed me at git earlier.
23:27
< Namegduf>
Both are localised and quite similar in functionality and behaviour.
23:28
< Namegduf>
I prefer git due to more intelligent merging and reverting.
23:28
<@jerith>
I was pointing you at bzr, actually.
23:28
< Namegduf>
For basic operations, there's usually a 1:1 correspondance between commands.
23:28
<@jerith>
git is less a VCS and more a branch management tool.
23:29
<@jerith>
Similar featuresets, different aims.
23:29
< Namegduf>
Git's equally a VCS *and* more a branch management tool.
23:29
< Namegduf>
Aims for git are pretty much defined as "provide VCS functionality to the Linux kernel", so I'd disagree.
23:30
< Namegduf>
Mercurial is pretty much identical in that respect, though.
23:30
< Namegduf>
Both do branching in similar fashion.
23:30
<@jerith>
Namegduf: A branch management tool is a superset of a VCS.
23:30
< Namegduf>
Maybe, but calling it "less of a VCS" suggests that its less functional when all you want is a VCS
23:30
< Namegduf>
Which isn't really true
23:31
<@jerith>
git's a fantastic tool, but its focus makes it harder to use as a VCS if you're not managing branches.
23:31
< Namegduf>
If you say so.
23:31
< Namegduf>
I would insist that the same applies to Mercurial if so.
23:32
<@jerith>
I've never used hg beyond "acquire some code".
23:33
< Namegduf>
I don't see how git could be simplified for straight VCS use, I'm in the habit of going "git init" "git add" "git commit" and bang for small projects with no other setup, but without knowing the reasoning for saying git is harder to use as a VCS.
23:33
<@jerith>
darcs and bzr have most of the VCS features that git does, but lacke the powerful branch manipulation stuff.
23:33
< Namegduf>
The branch manipulation stuff stays out of my way unless I invoke it, in my experience.
23:34
<@jerith>
Namegduf: I've seen people accidentally create a second branch and then get into a state they can't get out of.
23:34
< Namegduf>
How the hell do you do that
23:34
< Namegduf>
I mean, to create a branch, you need to be using "git branch" in the first place.
23:34
<@jerith>
Well, they can't get out of it because they don't know the tool..
23:35 * jerith shrugs.
23:35
< Namegduf>
Well, okay, or tinkering with very low level stuff you shouldn't be touching and I don't know about, that might be able to cause it.
23:36
<@jerith>
I'd probably like it more if I knew it better, but bzr gives me all I need and I get launchpad's bonuses as well. :-)
23:36
< Namegduf>
What does launchpad do that Gitorious, Github, and Bitbucket (Mercurial's) not, out of interest?
23:37
<@jerith>
Integration.
23:37
< Namegduf>
Integration?
23:37
<@jerith>
Issue tracker, repo, code reviews, etc. all in one package.
23:37
< Namegduf>
Ah.
23:37
< Namegduf>
So similar to Sourceforge, but hopefully less sucky
23:38
<@jerith>
So very, very less sucky.
23:38
<@McMartin>
Hm, it looks v. much like part of my issue is that I really do mostly still want something largely client-server.
23:38
<@McMartin>
Which seems to be what git push is for?
23:39
< Namegduf>
Yeah.
23:39
< Namegduf>
Typical flow for something on a remote server:
23:39
<@jerith>
McMartin: All the dvcs tools will do that.
23:39
< Namegduf>
<git|hg> clone ssh://someplace//path/to/repo repo
23:40
< Namegduf>
Enter repo, make changes... "hg commit" or "git commit -a", "<hg|git> push"
23:41
< Namegduf>
I find it very entertaining how similar the commands are, because Mercurial is praised by some for a really nice interface, while git is described as harder to use but more MacGuyver; my conclusion is that these people liked creating articles with pictures of MacGuyver but had never actually used at least one of the two tools.
23:42
<@jerith>
Namegduf: Notice the extra param to git commit there.
23:42
< Namegduf>
Haha.
23:42
<@McMartin>
Hmm. How's git's interaction with SSH generally and putty specifically?
23:42 * McMartin would like to use a Linux machine with no special packages as a server for the Windows and Mac machines on that LAN.
23:42
< Namegduf>
Windows git runs off Cygwiny-like stuff
23:42
< Namegduf>
But is nicely packagedish
23:43
< Namegduf>
Cloning remote repos over SSH works as expected.
23:43
< Namegduf>
jerith: Yeah, that's true, but makes sense once you get just one step more complex.
23:43
<@jerith>
bzr has sensible defaults for the single-branch case. git has sensible defaults for the multi-branch case.
23:43
< Namegduf>
Er... no.
23:44
<@McMartin>
Hrm.
23:44
< Namegduf>
Git does not do crap all with branches or have you issue any commands relating to branches unless you tell it to explicitly.
23:44 * McMartin pokes at Git's Windows support
23:44
<@McMartin>
This will not integrate well with what I already have installed.
23:44 * jerith shrugs.
23:45
<@jerith>
I'm mostly relaying what I've seen and heard. I really haven't used git enough to have my own opinions.
23:45
< Namegduf>
Seriously, git init/add/commit/pull/push/rm/revert don't even mention branches.
23:46
< Namegduf>
Well, maybe on the side as "branch master" or similar.
23:46 * TheWatcher readsup
23:46
<@TheWatcher>
Have they actually fixed git in cygwin yet?
23:46
< Namegduf>
No idea, I didn't use it "in Cygwin"
23:46
<@McMartin>
All my searching involves finding stuff that implies they've instead half-ported it to MSYS
23:46
<@jerith>
It's less about dealing with them explicitly and more about not assuming that there's only one branch in there.
23:46
< Namegduf>
I think I used http://code.google.com/p/msysgit/
23:46
<@TheWatcher>
Last I attempted to use it, it was hideously broken.
23:47
<@McMartin>
Which implies in turn that it won't, frex, interface with Pageant
23:47
< Namegduf>
I don't believe any commands deal with said assumption/lack thereof.
23:47
< Namegduf>
Everything is done on the current branch, and you don't switch branch unless you use "git branch".
23:47
< Namegduf>
There's an automatic "master" branch by default when a repo is created fresh.
23:48
<@McMartin>
Hg, meanwhile, is Python
23:48
< Namegduf>
I dislike Merc mostly because for some idiotic reason, it's not quite so true on this as git
23:48
< Namegduf>
Reverting via hg backout is done by creating a branch based on the change you're reverting, then a simple undo
23:48
<@jerith>
"revert" does something unexpected on git.
23:48
< Namegduf>
Then merging that new head
23:49
< Namegduf>
jerith: "git revert <commit ID>" does something unexpected?
23:49
<@McMartin>
"unexpected" = "different than svn revert"~
23:49
<@jerith>
Because it assumes you want to revert a commit on a branch, rather than reverting the working directory to the most recent repo version.
23:49
< Namegduf>
Er, what
23:49
< Namegduf>
s/ on a branch//
23:50
< Namegduf>
It assumes you want to "Revert an existing commit"
23:50
<@McMartin>
Yeah. That's not what svn revert menas.
23:50
< Namegduf>
Because that is what its name is.
23:50
<@McMartin>
svn revert means "revert local edits".
23:50
<@McMartin>
Doesn't touch the server.
23:50
<@jerith>
"revert a commit" makes sense for a branch management tool.
23:50
< Namegduf>
I don't know where branch comes into it. I think if you tried to revert a change which wasn't on your current branch, it might bitch at you.
23:51
< Namegduf>
I'm pretty sure "undo this change in history" makes sense for a VCS
23:51
<@jerith>
"revert local edits" makes sense for a VCS.
23:51
< Namegduf>
"revert previous change" also makes sense for a VCS.
23:52
<@jerith>
Namegduf: Absolutely.
23:52
< Namegduf>
This really does sound like "Isn't exactly the same commands and names for them" is being equated to "isn't a valid interface decision for that job"
23:52
<@jerith>
And "previous change" typically means "in the working dir" rather than "committed to the repo".
23:52
< Namegduf>
Why?
23:52
<@McMartin>
Namegduf: This is why I put a tilde on it.
23:52
<@McMartin>
But yes, this is endemic when people bitch about non-POSIX APIs, so I see no reason it should be different here
23:53
< Namegduf>
Not having used SVN or any other VCS before I used git, "git revert" did exactly what I was expecting
23:53
< Namegduf>
And I'd probably find SVN's to be weirdly named; "svn clean" would be something like what I'd expect for a specific command for that.
23:53 shade_of_cpux is now known as cpux
23:54
<@jerith>
svn doesn't have a command for that.
23:54
< Namegduf>
By "that", I was meaning what SVN does for svn revert
23:54
<@McMartin>
Right.
23:54
< Namegduf>
(Git uses... git reset --hard HEAD, which is long because you're blowing away changes, which is considered bad.)
23:54
<@jerith>
You revert by applying a reverse patch and committing a new revision.
23:54
< Namegduf>
Eww.
23:54
< Namegduf>
That's what git does, but it does it for you.
23:54
<@McMartin>
svn is, recall, five years olders than git/hg
23:55
<@McMartin>
And was in turn an iterative refinement of the vastly older CVS, which it improved upon by actually knowing what directories were
23:55
< Namegduf>
Ah.
23:55
<@jerith>
svn's focus is on storing revision history for a linear development path.
23:55
<@McMartin>
CVS, meanwhile, improved on its predecessors by making it possible to have more than one person check out a repo at any given time.
23:55
<@McMartin>
revision control systems are not exactly a rapidly evolving field.
23:55
< Namegduf>
I'm aware that git has a more spread focus.
23:55
<@McMartin>
But svn, cvs, and its predecessor all used largely the same command names for everything.
23:56
<@McMartin>
Which is why redefining "revert" is bucking a many-year tradition, at least.
23:56
<@jerith>
git's focus is on shuffling patches between branches and maintaining different but similar lines of development.
23:56
< Namegduf>
I'd say that git's focus is both.
23:56
<@jerith>
What most people actually want in a VCS is something in the middle.
23:57
< Namegduf>
I've just never observed that to actually hmake the use more complex, because I've never heard an explanation other than "command names are different!"
23:57
< Namegduf>
At least now I understand why people like Mercurial more for the command interface.
23:57
<@McMartin>
Looks like I'll have to do some integration tests.
23:57
< Namegduf>
Because while its reverting is vastly, vastly inferior and involves two commits in history
23:57
< Namegduf>
It calls it "hg backout"
23:57
<@jerith>
git was written for the Linux kernel, which is one of the most complex source trees around.
23:57
<@McMartin>
If Hg can talk to Pageant and msysgit can't, that's pretty much an instantly deciding factor for me
23:58
< Namegduf>
Sounds good.
23:58
<@McMartin>
If msysgit also demands its own copy of msys/mingw, that would be a probable but not *instant* deciding factor.
23:58
<@McMartin>
I'd rather maintain two parallel compiler installs than two parallel SSH authentication installs.
23:59
< Namegduf>
The only annoying difference I've found so far aside the revert/backout difference is "Mercurial's merging feels stupider" and "Mercurial cannot rebase", but rebase is an evil, evil operation anyway
23:59 * ToxicFrog upreads
--- Log closed Sat Apr 17 00:00:00 2010
code logs -> 2010 -> Fri, 16 Apr 2010< code.20100415.log - code.20100417.log >