Hobby-hacking Eric


monad tutorial, slow darcs

monads tutorial

Fixed one of the flaws in my monads as spacesuits tutorial (well, nuclear waste containers rather) on wikibooks. It was in my definition of the get and put functions where I was accepting an argument too many (and then discarding it). The tricky bit was that using the correct definition of get/put involved introducing the anonymous bind >> operator to the reader. I hope I did it right... I think it's probably clearer anyway that I went ahead and did this... it makes the bit where I explain IO a tiny bit less shaky.

Though this is a wiki, I seem to be in the habit of (1) profusely thanking people who modify the tutorial (2) reverting their change with a plea to read my comments on the discussion page. It's happened three times, already, one with ihope127's replacement of € with |> (which was a reasonable thing for him to do, since € wasn't Haskell, but € is useful because you can think of it as $, but backwards), another time with the get/put thing and a third with the use of the modify function. I really really DO want to collaborate, though (hence the profuse thanks), it's just that I keep disagreeing with what people do to it. I'm not a control freak, really. I hope I'm not, anyway. I mean, I do try to solicit the other party's opinion on matters and try to integrate what s/he thinks into the writing. Hope I'm not turning anybody off from the project.

slow darcs hacking

My darcs development is going soooo slowly. Part of it is because I'm working on it like 15 minutes a day, instead of a few hours, and 15 minutes isn't enough to get you into that state of intense concentration where everything just flows out of your fingers. I'll need to allocate a somewhat larger chunk of weekend to darcs, just so I can keep any promises I made. The other part is that it's kinda boring writing test suites, and I've got a little bit of that to be doing. Need to get a test suite for matching, and one for mv/rmdir testing out the issue154 fix. But I am workin' on it, making little bits of progress here and there.

That's the way it'll have to be I guess... it has occured to me that the only way I'm going to finish my thesis in the allotted 3 years is by working really fricking hard (I've got slightly under 1.5 years to go), so bye-bye hobbies. Oh well, it's been fun and very educational, not that this is goodbye darcsers or anything.


cutting back

I've just sent my issue91 and resubmitted the issue154 patch... wow this goes a lot slower when you're only working in 45 minute increments. I'm going to be radically scaling back on my darcs activity until at least 19 April. Got some paper submission deadlines till then, and I'm basically going into thesis-overdrive. I'm only a 2nd year student, no writing up to do, but I'm going to need to bust ass if I want to emerge from this whole process with my fancy degree and to actually deserve it.

Still have some remaining darcs commitments: the wikibook still has huge gaping holes and I promised David+Juliusz that I'd implement the minimal_context stuff. Not that it would be hard for them to do it, the whole point was that it was easy and (1) they could farm it out (2) this would be a good way for a yellow belt like me to get to know some of the real meat behind darcs. So I still aim to get those done, but other than that, I'm hoping to get focused from here on out.



Got patches in to fix issue154. Zachary Landau pointed out that I had some arguments in a non-conventional order, so I unrecorded and flipped the arguments around. Good thing too. In the process, I spotted a bunch of cases where I was setting the flag to indicate that I was in the working directory, when that clearly was not the case. Being forced to go through this a second time was quite useful for spotting the errors.

Spent today working on help. Wasted a bunch of time trying to refactor some of the command line parsing stuff to use my disambiguate_commands function, but I just kept breaking darcs. Ended up deciding it wasn't worth it. Not really saving that much code, anyway.

Implemented issue91. Easy enough... maybe should have left it to newer developers, reel them in with breadcrumbs exactly the way I got sucked in. I did try to refactor PatchMatch.lhs in the process. It's one of those bad refactors, the kind that makes nice airy looking code and makes it compact and unfriendly. Good refactors, on the other hand, take a bunch of useless verbiage and make it concise. Short and sweet. Hmm... can't really convey this in a non-arbiratry-sounding way.

Whoah! It's past my new good eric bedtime. Need to learn to renounce, leave things for another day. Good night.