|
demos
Lately I write demos under thorn with a todo list using C++ under a BriarPig mu-babel license. The run and hex demos were done on 13apr2008; crc on 14apr2008; buf on 20apr2008; in on 27apr2008; this menu links all demos: mu: toy, peg, imm, tag, box, symbol, token, number, bigint, class, method, reader, writer, eval, env, vm, gc, world, pcode, compiler, asm, lathe, lisp, smalltalk, design, weight, jar, card, harp, debug, profile thorn: todo, names, iovec, assert, log, run, hex, crc, buf, in, out, quote, escape, compare, file, deck, cow, arc, blob, tree, slice, rand, time, stat, heap, node, primes, page, book, pile, stack, atomic, lock, mutex, thread, map, list, iter, ctype 13apr08
¶
incremental progress
hump ¶ I just put up the new run and hex demos today. Finishing the run demo was a big hump to get over because it's one of my longest api's and several of the demos are actually one or another part of the api for pointer plus length memory operations. Writing run took several hours — about three times what I'd normally expect for that much text. Extra time was caused by many things: editing, linking other pages, and writing new sample code. So I wrote the newest hex page in about an hour to prove it can be done, so I don't worry the rest will take forever. Still it seems like I'm spending too much time writing demos, so I'm contemplating a drop in quality to get them done faster. Maybe I should think of all this as an experiment in lowering quality in code descriptions, so when I get to writing about a toy language under mu I already have good conventions for bare minimum treatment of source code. Even better would be learning to write worse-is-better code for the toy language, so there's less of it and less to document. I hope pressure to document causes me to write less code. At the very least, I hope the bar for complexity comes down when pushed by need to describe. After weekends like this one, I sometimes wish I would finally kick back and coast through a few years of easy living instead of being so driven by things I want to do. Why don't I just play more? 09apr08
¶
demolition derby
banter ¶ (This dialog comes from the finished iovec demo. I worked on it late each of the last two nights. This material's just slightly amusing nonsense. The useful dialog follows this one in the demo.) "So what did you think?" Wil asked Dex at demo's end. "Well," Dex sniffed, "I'm a little offended you didn't ask what I thought earlier, when I could have helped." "Help do what?" asked Wil, genuinely puzzled. "Um, you know, help suggest a better api," Dex shrugged. "To clean up the ungainly parts, I suppose," Wil suggested. "No," Dex laughed, "when it comes to iovecs, I like the traditional approach, which is painfully awkward, as you know." "Okay, you mean like, 'Grr, I love to write in C, so gimme those naked C iovecs without any objects — I can take it like a man.' Something like that?" offered Wil. "Heh," Dex grinned, "yeah, basically." "Why am I not surprised?" Wil monotoned. "You just don't get it," Dex explained. "The idea is to show how smart you are by doing everything the hard way. When you use objects you must overdo it; and in low level C stuff you must not use objects at all. But you're using objects the right amount — which is wrong if you want to grandstand like I always do." "So what's your point?" Wil prompted. "My point is slices are creepy," Dex replied. "That's a change in subject," Wil objected. "Yes," Dex agreed. "But I didn't think you'd call me on it. It's very rude of you to notice when I evade questions with random topic swerves like that. It's better when you just go defensive like I wanted." "Okay," Wil joked, "I'll try to remember." "I hope you don't expect me to use your iovec slices for stack buffer i/o to avoid buffer overflow problems," Dex said. "I wouldn't dream of it," Wil pretended. "I know how much you enjoy those buffer overflow fire drills." "I'm just kidding," Dex joshed. "Humor me, but don't overdo it since my dumb remarks reverberate a little." A short silence descended as Wil waited to see if Dex had anything else to say, while Dex looked around to see whether anyone was around. Maybe he looked for Ira. Nope, no police around. "I was thinking," Dex proposed slowly, "maybe you should rework all this as a large and exhaustively thorough i/o framework because that would be cool and gnarly and establish your chops." "Not interested," Wil shrugged. "Not interested in chops?!" Dex asked incredulously. "No, I have chops," Wil countered. "I don't care about establishing them. Bor-r-ring. Also, I don't need a framework." Dex snorted. "Yeah, right," he disagreed. "We all need frameworks. You're naked without one. What would people say?" "Oh, who cares?" Wil dismissed. "Other stuff in þ might look more like a framework. Seems like a disadvantage, though." "You overdo heresy a little," Dex complained. "Useful stuff should look like part of a language," Wil continued. "Not like a suit of armor shielding you from being involved." "You even mention English long bow versus knight's armor again, and I'm outa here," Dex warned. "Tempting," Wil noted, "but too easy. Framework sounds too rigid and I'm into really lightweight stuff. I only want enough form to avoid errors, but not so much that attention is channeled without flexible options remaining visible. I don't have a key metaphor." Dex raised his hands and made scare quotes with his fingers. "'The medium is the message,'" Dex suggested archly. "Or 'design patterns über alles' slogans," Wil said. "Blah, blah, blah," Dex agreed against form. Wil winced. "Don't say that," Wil wished. "I hate that phrase." "I feel a cliché phrase binge coming on," Dex warned. Wil stuck his fingers in his ears and waited, peeking. Dex looked up and mimed whistling until Wil stopped. "So what do you call your method?" Dex asked finally. "No name yet," Wil shrugged. "I'll think about it." |
Entries appear in reverse chronological order.
Content here is permanent: Each entry has a permalink
(¶) to
the long-lived persistent copy here. Clearly, to link
anything, you'd best link the permanent copy.
06apr08
¶
massconomy
grinder ¶ "How's the literate programming coming, Wil?" Zé asked with a wry and knowing smile. Apparently he thought hard work was funny — maybe one reason his temperament suited coding. "Uh," Wil started slowly, not quite free from a line of thought. "Yeah, it's coming along great. Still in the iovec demo, but much closer to completion now." "I read your last draft," Ulf interrupted with a puzzled look. "It doesn't look as trivial as you made it sound earlier. Are you sure this is necessary? Why not just go on to the toy language stuff? That sounds like more fun." "I write servers," Wil explained slowly. "And I need efficient i/o, even when I write a server in a toy language. The toy language has to do what appears in the iovec demo, among other things, or it's not going to be any use to me." Ulf screwed up his face and asked, "How is low level bit twiddling stuff in C and C++ going to play a central role in a high level dynamic language? Even a toy language?" Wil spoke even slower, as if Ulf was a child. "Touching data — reading, writing, hashing, comparing, etc — is the expensive part of systems and should occur in good C++ so performance is high. Decision making, on the other hand — control flow like async events and continuations — has very little impact, in contrast. It can and should be done in high level languages. But high level decisions must work with low level code on its own terms." "I wouldn't do it that way," Ulf dismissed. "It looks too hard." "But," Zé broke in finally, "Wil is a smarter than you, Ulf, and it's not a problem for him. Me either, for that matter, but I'm obsessed with other things." "You genius posers make me tired," Ulf sneered. "Always acting like stuff is easy. If it's so easy, why is Wil spending so much time on it? And why isn't the iovec demo done?" "Not that it's any of your business," Wil soothed, "but I've been reconstructing a complex test that will appear in another demo, and it uses a lot of little supporting pieces. More than anything else I want folks to understand what the tests mean." "But why?" Ulf asked, then looked at Zé. "Do you get this part?" "Wil wants folks to grasp why the code works," Zé explained. "Getting code to work is easy. Getting other folks to work with it is hard, and they might not. Usually they just revolt." Suddenly Wil giggled and dry washed his hands like a mad scientist. "Peasants swarm the castle with torches and pitchforks," Wil complained. "Nobody appreciates a good reanimation." Ulf rolled his eyes and turned to Zé. "Change of subject," Ulf said briskly. "What's up with Koi?" "Green light if we take Finch," Zé replied shortly. "No, no, no!" Ulf croaked while making fists, raising them to his temples. "That crazy bitch! Drives me nuts!" "Maybe that's what Koi wants," Zé laughed. "Ooh, poor choice of words," Wil noticed at once. "Know what she'll do if she gets that off tapes? Can you get her a copy, Zé?" "No," Ulf warned Zé sternly. "We're a team. Stick together?" "Well," Wil mused, "we actually like her. And you're a jerk." Ulf looked glum — but being odd man out was old news. "It's my project," Zé reminded them. "I'm going to say yes. Ulf, no moaning! But don't forget the most important thing." "Which is?" asked Ulf. He must have forgotten already. "Don't look into her eyes," Wil coached. Zé was nodding. |