--- 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 |