code logs -> 2011 -> Sat, 03 Dec 2011< code.20111202.log - code.20111204.log >
--- Log opened Sat Dec 03 00:00:17 2011
00:11 Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has joined #code
00:18 cpux is now known as cpux[Skyrim]
00:43
< Derakon>
I love being a programmer.
00:43
< Derakon>
I just threw together a quick script to go through the Angband monster list and find monsters who were both invisible and opaque to telepathy.
00:47
< AD[Shell]>
Awesome.
00:49
< Alek>
heh.
00:50
< Alek>
and then you genocided them, right?
00:51
< AD[Shell]>
Genocide doesn't work in Angband as it works in Nethack.
00:52
< Derakon>
Yeah, no.
00:53
< Derakon>
This was more to see what I'd be facing if I went into the dungeon with telepathy but not See Invisible.
00:53
< Derakon>
Since that'd free up a ring slot and really help out my damage.
00:57 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
00:59 cpux|2 [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
00:59 cpux[Skyrim] [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
00:59 cpux|2 is now known as cpux[Skyrim]
01:01 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
01:13 Alek [omegaboot@Nightstar-10752b3e.il.comcast.net] has quit [Client closed the connection]
01:21 Kindamoody[zZz] is now known as Kindamoody
01:22 Alek [omegaboot@Nightstar-10752b3e.il.comcast.net] has joined #code
01:30 You're now known as TheWatcher[T-2]
--- Log closed Sat Dec 03 01:36:36 2011
--- Log opened Sat Dec 03 01:36:48 2011
01:36 TheWatcher[T-2] [chris@Nightstar-3762b576.co.uk] has joined #code
01:36 Irssi: #code: Total of 29 nicks [6 ops, 0 halfops, 0 voices, 23 normal]
01:37 You're now known as TheWatcher[zZzZ]
01:37 Irssi: Join to #code was synced in 52 secs
01:40 Alek [omegaboot@Nightstar-10752b3e.il.comcast.net] has joined #code
02:16 Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
02:24 maoranma [maoranma@Nightstar-3da9206b.pools.spcsdns.net] has quit [[NS] Quit: ]
02:25
< ToxicFrog>
So. Version control.
02:26<~Vornicus> So first one was SVN and I sort of understood SVN except that it made me feel very restricted in the way I structured projects - in that I could not see a reasonable way to restructure them, which I knew I would do a lot.
02:26<~Vornicus> ANd then there were git and mercurial and, um, oh I know there was a third one but I don't remember it
02:26
< ToxicFrog>
bzr?
02:26<~Vornicus> And I couldn't understand how any of those worked. bzr yes.
02:26
< ToxicFrog>
Ok, so, I think there's two fundamental issues with such restructuring.
02:27
< ToxicFrog>
The first is that some VCS actively get in the way of doing that. P4, for example, is so bondage-and-discipline that it will fight that kind of large-scale restructuring every step of the way.
02:28
< gnolam>
In any case, git is out because it's practically Unix-only.
02:28
< ToxicFrog>
The second is that making huge sweeping changes all at once is something that any VCS will choke on to some degree; in particular, merging across such a change basically becomes impossible without heavy manual intervention.
02:28<~Vornicus> And that is what it felt like, so I kept trying to figure out what my system would look like on the large scale and I found I never, ever knew.
02:28
< ToxicFrog>
That said, I'd much rather have a complete project history with occasional merge barriers than no project history at all.
02:29<~Vornicus> RIght, and then I get into my other problem, which is
02:29
< ToxicFrog>
(I suspect the "right" answer here is actually "stop doing that and make lots of small, testable, incremental changes instead", but)
02:30<~Vornicus> I don't know how any other VCSes work at all.
02:30<~Vornicus> And the documentation on them has been unhelpful in getting me to understand.
02:30<~Vornicus> That I don't have anyone else I want to show my code to doesn't help.
02:31
< ToxicFrog>
FWIW, while I found SVN easy to learn, I found it extremely awkward to actually use, and so painful to set up initially that I never actually used it except at school.
02:31
< ToxicFrog>
I didn't start actually versioning my stuff at home until I learned git, which I found much more intuitive and which also has basically no setup overhead.
02:31
< ToxicFrog>
I've heard similar stories from people who went SVN->Hg
02:32
< ToxicFrog>
Although I have not personally used Hg.
02:32
<@Namegduf>
git and hg have, for that scale of use, basically identical workflows.
02:32
<@Namegduf>
Commands have direct equivalents.
02:32 * Namegduf has used both.
02:33
<@Namegduf>
Hg can't branch as well, but for the "versioning stuff at home" case it doesn't matter.
02:33
< ToxicFrog>
Namegduf: I thought Hg placed a much heavier emphasis on clones whereas Git emphasizes named branches?
02:33
<@Namegduf>
Or at least doesn't immediatley matter.
02:33
<@Namegduf>
Well, hg can't branch as well.
02:33
<@Namegduf>
So you'll use clones.
02:33
<@Namegduf>
It can, however, branch.
02:33
< ToxicFrog>
Vornicus: re "not having anyone I want to show my code to" - neither did I when I started this, really!
02:33
<@Namegduf>
So I don't know if it's an intended difference in architecture or just a workaround.
02:34
< ToxicFrog>
Then I realized that having everything versioned in the first place made showing it off a lot easier and suddenly I wanted to show it to more people.
02:37
< ToxicFrog>
If you want to learn git (or DVCS concepts in general) I'd be glad to help, and really, just doing a full commit at the end of each day would at least give you history even if it's not using it "right".
02:43
< McMartin>
I tend to commit way too often.
02:43
< ToxicFrog>
Better than committing too infrequently; you can always squash commits before you push.
02:44
< McMartin>
I have this philosophical objection to log-hacking~
02:44
< McMartin>
Also, I tend to keep the "core" repo in a bare repository and do clones of file:/// URLs, probably as a vestige of SVN attitudes.
02:46
< ToxicFrog>
I only have a philosophical objection to log hacking if the log exists in more than one repo~
02:47
< ToxicFrog>
Well, so do I, except the core repo is hosted on github
02:50
< ToxicFrog>
Back to log hacking - AFAICT, the "best practice" for git is to commit constantly just in case, then rewrite history to tidy it up before it leaves the repo.
02:51
< Alek>
heh.
02:55<~Vornicus> I guess that really covers it for vcs. Now all I need is to, um, pick one.
02:56
< ToxicFrog>
Personally, I'm a big fan of git - I find it very intuitive - but internally it's kind of a mess, which in turn means using it on non-*nix systems is aggravating and the frontend ecology is pretty sparse.
02:56
< ToxicFrog>
AFAICT Hg is the most polished overall, and it's also written in Python which I know you grok.
02:57<~Vornicus> I really really really want windows shell integration.
02:57<~Vornicus> tortoisesvn, I liked it a lot.
02:57
< ToxicFrog>
Hg has that.
02:58
< ToxicFrog>
(git also has that, to be fair, but it's a bitch to set up)
02:58
< ToxicFrog>
(whereas from what I've heard the Hg version Just Works)
02:58<~Vornicus> Sounds like I've got my target
02:58<~Vornicus> Okay.
02:58<~Vornicus> I'll have to play around with it.
02:58<~Vornicus> ...but this makes me wonder about some of my other, um.
02:58<~Vornicus> Hangups.
02:58
< ToxicFrog>
The best analogy I've heard is that Git is MacGyver and Hg is James Bond; git can do basically anything given a paperclip and some string, but is kind of scruffy. Hg isn't as flexible but is a lot more polished.
02:59<~Vornicus> THe only time I've ever used - ever could use, really - build control, was the time I built my catan graphics.
02:59<~Vornicus> You will recall that I used postscript to do this.
03:00
< ToxicFrog>
...why is that the only time you could have used version control?
03:07<~Vornicus> No, this is build control
03:07<~Vornicus> makefiles
03:08<~Vornicus> You may also recall, that when examining the makefile documentation I gibbered in horror, and that I could not figure out how to create the literally hundreds of files I wanted even vaguely semiautomatically.
03:08
< McMartin>
I suggest SCons.
03:09
< ToxicFrog>
Aah.
03:09
< ToxicFrog>
I've been using premake4 of late, which automatically generates makefiles (and other build control files) so that you don't have to. And is much pleasanter to configure than Make.
03:09
< McMartin>
I keep trying to abuse Make in fun ways, but should probably transition to SCons at some point.
03:09
< ToxicFrog>
As a Python person, you may prefer S-Construct, which attacks the same problem in a different way (by replacing Make wholesale)
03:10
< McMartin>
SCons would make Gambit management *much* easier.
03:10
< McMartin>
Especially since there are two kinds of dependencies in Gambit, and they have different implications.
03:11
< gnolam>
Ugh, SCons. I've never found an SCons project that worked.
03:11
< McMartin>
Oh right, and it's actually called S-Construct, huh.
03:11
< McMartin>
gnolam: NSIS
03:11<~Vornicus> But, for instance, I had a single file that would create, when you got down to it, 108 images.
03:11
< celticminstrel>
I actually managed to build Dolphin with it eventually.
03:11
< McMartin>
Or do you mean this the way I do with wx?
03:11 * McMartin had very little trouble with the NSIS build.
03:12 gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [[NS] Quit: Z?]
03:12
< celticminstrel>
I didn't like it though.
03:12 * McMartin takes a moment to once again :smith: at how NSIS is the best of breed for Windows Installers.
03:12<~Vornicus> Sorry, underestimate. 9 * 6 * 3 = 162 images.
03:13
< ToxicFrog>
McMartin: I haven't used lzpack, but it looks like it might be better.
03:13
< ToxicFrog>
Although that is a pretty low bar to clear~
03:14
< McMartin>
A name like "lzpack" makes me deeply suspicious that it is merely a fancy packaging format
03:14
< McMartin>
The main reason NSIS is best of breed is that it is really a way of making sharchives with GUIs.
03:14
< ToxicFrog>
No, it is an actual (Java-based) installer. I've installed lzpack-based stuff before.
03:15
< McMartin>
Mm. "Java-based" is :/
03:15
< McMartin>
NSIS produces a native executable
03:16
< McMartin>
But what I mean is, UQM, for instance, has as a standard installation procedure "check to see if file X exists. If it doesn't, or its MD5 sum is not Y, download URL Z and copy it over to X after ensuring the MD5 sum was Y"
03:17
< McMartin>
If you aren't Turing-complete by design without having to do horrible FFI stuff (like MSI), or if you don't have a decent FFI (like, IIRC, InnoSetup), you aren't even solving the same problem.
03:18
< McMartin>
I'm guessing lzpack's FFI is "execute this method on this Java class", which would be superb but restricts which machines you can hook into.
03:20
< ToxicFrog>
Oh, sorry, it's izPack, not lzPack
03:20
< ToxicFrog>
And...eugh. Looking at the izpack docs, it appears that it's all XML-based.
03:21
< ToxicFrog>
I'm not sure it actually has a Java FFI, although it does appear to have "run this thing from inside the pack as a (pre|post)install step", which doesn't really solve the problem.
03:21
< ToxicFrog>
Times like this I ponder writing a Lua-based NSIS replacement.
03:21<~Vornicus> So so far I'm really not typical with build system stuff
03:21
< ToxicFrog>
Not sure it's worth the pain, though.
03:22
< ToxicFrog>
Vornicus: "hundreds of automatically generated images all depend on a single file" does not strike me as particularly problematic.
03:22
< ToxicFrog>
But then, I haven't been using make for years, and both premake4 and primemover (which I used prior) can programatically generate dependencies.
03:22<~Vornicus> On the one hand, most of the time I don't need it because doing so with the stuff I write needs no such thing. On the /other/ hand, I want to be able to add one thing to a list and have it generate more stuff.
03:23<~Vornicus> ANd that appears to be beyond the basic powers of make.
03:23<~Vornicus> Or far enough out of the way that doing so is a crazy proposition.
03:23<~Vornicus> In rake, this was a single ten-line function.
03:28
< ToxicFrog>
Yeah, this is a not uncommon situation and AFAICT the answer is "use something more sophisticated than Make, like anything"
03:29 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
03:31 cpux|2 [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
03:32 cpux[Skyrim] [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
03:34 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
03:45 cpux|2 is now known as cpux
--- Log closed Sat Dec 03 03:58:10 2011
--- Log opened Sat Dec 03 03:58:19 2011
03:58 TheWatcher[zZzZ] [chris@Nightstar-3762b576.co.uk] has joined #code
03:58 Irssi: #code: Total of 27 nicks [6 ops, 0 halfops, 0 voices, 21 normal]
03:59 Irssi: Join to #code was synced in 46 secs
04:04 cpux is now known as cpux[Skyrim]
04:24 maoranma [maoranma@Nightstar-3da9206b.pools.spcsdns.net] has joined #code
04:46 Kindamoody is now known as Kindamoody|afk
04:55<~Vornicus> In summary: I don't feel like a very good developer because I don't know how to use any of the systems that developers of actual projects use.
05:10 Kindamoody|afk is now known as Kindamoody
05:54 Stalker [Z@2C3C9C.B2A300.F245DE.859909] has quit [Client closed the connection]
05:54 Stalker [Z@2C3C9C.B2A300.F245DE.859909] has joined #code
06:35 cpux[Skyrim] is now known as cpux
06:45 Reivles [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code
06:45 Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds]
06:51 Stalker [Z@2C3C9C.B2A300.F245DE.859909] has quit [Ping timeout: 121 seconds]
07:05 ErikMesoy|sleep is now known as ErikMesoy
07:33
<@jerith>
Vornicus: Use the tools that it makes sense for you to use.
07:41 Kindamoody is now known as Kindamoody|out
07:46 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code
07:47 gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code
07:54 Derakon is now known as Derakon[AFK]
08:21 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
08:35 Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has joined #code
08:54 Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code
08:56 Reivles [orthianz@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds]
08:57 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
10:01 maoranma [maoranma@Nightstar-3da9206b.pools.spcsdns.net] has quit [Ping timeout: 121 seconds]
11:00 * McMartin learns about named let
11:00
< McMartin>
Man, Berkeley lied to us =(
11:00
< McMartin>
Scheme is full of all kinds of great control constructs
11:16 Kindamoody|out is now known as Kindamoody
11:22 You're now known as TheWatcher
11:23 Kindamoody is now known as Kindamoody|DVD
11:24
< TheWatcher>
11:24 * TheWatcher eyes the wikipedia description of Scheme's named let
11:24
< TheWatcher>
... that's about as clear as mud
11:25
< McMartin>
Let me see if I can make a simple version
11:26
< TheWatcher>
Oh, it's okay, I can grok it from the example
11:26
< McMartin>
Basically, I spend a *lot* of time defining internal functions to do iteration via tail-recursion
11:26
< McMartin>
I can refactor all of that to do named let instead.
11:27
< McMartin>
... yeah, looks like I got it
11:27
< McMartin>
(define (fact x) (let loop ((i x) (r 1)) (if (< i 2) r (loop (- i 1) (* r i)))))
11:47
< TheWatcher>
(Still boggles my mind that Quantz was written in that)
11:47
< McMartin>
My parser works! \o/
11:48
< TheWatcher>
wewt
11:48
< McMartin>
401 lines from reading characters from a stream into fully-constructed abstract syntax tree.
11:48
< McMartin>
20 73 607 util.scm
11:48
< McMartin>
160 756 6883 lexer.scm
11:48
< McMartin>
221 948 9612 parser.scm
11:49
< McMartin>
And I bet that I can refactor it to make it shorter with these let loops.
11:49
< McMartin>
Also, quasiquote is frickin' awesome
11:49
< McMartin>
When your only language datatype is also your language's AST, you can specify arbitrarily nested records by basically typing in their pretty-printed form.
11:50
< McMartin>
This is funny because JavaScript looted Scheme like whoa for a lot of its more functional stuff
11:50
< McMartin>
And when you get right down to it, quasiquoting is kind of the Scheme version of JSON >_>
11:52
< McMartin>
Also hilarious: the parser failed my unit tests.
11:52
< McMartin>
That's because it was successfully detecting syntax errors I didn't *mean* to put into them. -_-
13:00 RichardBarrell [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
13:29 Kindamoody|DVD is now known as Kindamoody
14:35 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code
14:49 Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
14:56 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code
15:14 You're now known as TheWatcher[afk]
15:51 Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds]
15:52 Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code
16:02 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
16:08 Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has quit [Client exited]
16:13 cpux is now known as cpux[Skyrim]
16:43 Eri [Eri@Nightstar-3e5deec3.gv.shawcable.net] has quit [Ping timeout: 121 seconds]
16:48 Eri [Eri@Nightstar-3e5deec3.gv.shawcable.net] has joined #code
16:53 Derakon[AFK] is now known as Derakon
17:06 RichardBarrell [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: rebooting]
17:09 maoranma [maoranma@Nightstar-5c92170f.pools.spcsdns.net] has joined #code
17:26 Ling is now known as Shoat
17:39 kwsn is now known as kws-not-here
17:56 ErikMesoy is now known as Crowns
17:58 EvilDarkLord is now known as Shield
17:59 AD[Shell] is now known as Birds
18:23 Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has joined #code
18:59 Kindamoody is now known as Kindamoody[zZz]
19:09 gnolam is now known as quasimodo
19:19 You're now known as TheWatcher
19:39 Derakon [Derakon@Nightstar-f68d7eb4.ca.comcast.net] has quit [Client exited]
20:13 Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
20:30 kws-not-here is now known as kws
20:30 kws is now known as kwsn
21:08 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
21:22 kwsn [kwsn@Nightstar-635d16fc.org] has quit [Ping timeout: 121 seconds]
21:27 kwsn [kwsn@Nightstar-635d16fc.org] has joined #code
21:45 Shoat is now known as Ling
21:45 Shield is now known as EvilDarkLord
21:45 Crowns is now known as ErikMesoy
21:47 Birds is now known as AD[Shell]
21:59 ErikMesoy is now known as ErikMesoy|sleep
22:08 Stalker [Z@2C3C9C.B2A300.F245DE.859909] has joined #code
22:16 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code
22:27 cpux[Skyrim] is now known as cpux
22:33 cpux is now known as cpux[Skyrim]
22:37 Derakon [Derakon@Nightstar-f68d7eb4.ca.comcast.net] has joined #code
22:45 Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has joined #code
--- Log closed Sun Dec 04 00:00:32 2011
code logs -> 2011 -> Sat, 03 Dec 2011< code.20111202.log - code.20111204.log >

[ Latest log file ]