|
28feb08
¶
data is king
over booked ¶ My day job has gotten intense, with some pretty extreme over-booking of my time. And you know, it's taking a lot out of me, whether they mean to run me into the ground or not. I'm losing too much context from day to day and week to week, and right now I have all memory for this site paged out to the slowest mental storage I've got. So I've thinking about some kind of stop gap plan to keep this line of thinking running on idle, until more cycles free in a few months. The next section briefly mentions a plan I almost have gelled: a less-is-more plan. (Well more along the lines of "less is better than zero.") toy language ¶ I think I'll do a toy version of my lathe hybrid of Scheme and Smalltalk, with details explained here in depth. This idea will get more apparent soon when I follow through with changes on various pages. But already this much — saying "toy language" — means a lot to many people. Just not you, right? Okay, here's more. As long as I don't have time to do what I want, doing a pidgin language runtime is a useful trifle. Most importantly, it won't take much attention, and I can rattle off bits and pieces in a relaxing way, like whittling wood, when I need to do something harmless to blow off steam. Instead of letting this project atrophy, I'll build up some side support that will be useful later. So what I'm going to do is rev another set (maybe the fifteenth or so I've done in the last fifteen years) of my standard utils, seeing what I can assemble for a minimal Lisp and Smalltalk, but using C++ since that's what I code in professionally. A side purpose (I always have many related reasons for any decision) is documenting useful extremely low level C++ code, probably in third person — mostly from Wil's point of view. What I've been doing up until now is substantially more complex, and that's why I'm having trouble keeping a quorum of related contexts in mind so I can do pieces incrementally. By writing and publishing a toy version of what I'm doing first, I can skip documenting the more complex version later. The relation to the simple toy version should be within distance of good developers figuring out. However, the toy version of lathe will be too simple for anyone who knows languages. Perhaps I'll tell the writing of the whole toy language from scratch as a story. Every line of code could appear in a page with Wil explaining why it appears, with occasional dialog with other characters. It would not seem to be about a programming language for a long time, because it would start with pointer-and-length memory manipulation (that is, iovecs instead of strings as primitives). Maybe later I'll get around to showing how unicode features fall out of octet sequence support. The toy language won't have threads or async processing — won't have lots of stuff. The idea is to make it small: not much more than what one would need to test other code, which is what I think I'll use it for. I'm tired of having shabby test scaffolding in my day job. And the toy language can be used in the test suite for more complete and full language implementations in the future. I like to test based on comparisons of things that ought to be the same. What the toy language can do should generate the same results as the more complex languages later. After a "ring zero" of the toy language, I might add more rings while adding further complexity in the direction of lightweight processes and async messaging. I guess it depends on how long I keep vamping while waiting for more time to think about my fun hobby research. 23feb08
¶
digital pimp
hard at work ¶ Actually, I'm sick. But not as sick as yesterday — I was so sick I couldn't think straight. I could barely play a video game by end of day when I was getting better. I was too ill today to code, so I wrote instead. Check out my new treatise on hashmaps with tombstones. I mentioned it recently, framing it a couple nights ago. Composing fiction made me feel like I wasn't totally useless today. The new page kills many birds with one stone:
The conversation between Wil, Zé, and Ulf happens shortly after Zé introduces Ulf to Wil to discuss a project Koi might fund, which Zé is pitching. Wil's the technical guy, and Ulf is candidate for tech-guy-into-marketing, or whatever the heck Ulf thinks he's doing. (Why do engineers dabble in marketing anyway?) It's my hope someone learns more about hashmaps, and it would be nice not to repeat that kind of conversation in the future. I can point to the page instead. 21feb08
¶
flywheel, shyster and flywheel
down time ¶ For a few days I haven't been doing much but hanging out with my sons after work, playing games and watching (eg) old X Files series DVDs. Other than a day off here and there for emergencies, I've hardly taken time off from work since before last summer, and I worked straight through the holidays. Looks like I might have to put off vacation until this summer. So I'm trying to unwind a little without actually getting time off. I set up a new page for Wil on hashing, but haven't started it yet. While driving to and from work, I'm usually inventing fiction for a couple characters I've only barely mentioned as yet. I find them especially funny, and that's why I haven't hinted anything about them. They have a really good shtick I expect to use a lot of times over the next couple years. story centric ¶ Yes, I've something of a theory about why story telling is an effective way to communicate. It's not just my favorite hammer applied to every problem I now think are nails. A theory started cooking right after I did my 1991 spatial metaphor research showing me arrow primitives, leading to an idea context was dramatically important in grounding messages in the scheme used to decode them. I was led to a frightening (to me) idea that information was never self explanatory — that you always needed a background context used as a key suggesting what was meant by any word or longer phrase. But although this upset me, it also suggested an approach to writing more clearly by controlling context explicitly. You can introduce a context you want before saying something in the hope it keys a reader to quickly disambiguate in a direction you intended. My fiction experiments often explored the power of this labile effect in communication. It was easy to see only the smallest hints are necessary as foreshadowing to telegraph where you were going at any time. I won't belabor this point much since I'm sure you get it. (In fact, this is a mainstay in my general writing technique: I assume you get it before I cover ever nuance.) You can come up with most ideas I had yourself, just by asking, "Where does context come from anyway?" Before I add closing paragraphs, first I want to key you in advance with the phrase episodic memory, so you can start thinking about what role is played by brain mechanisms supporting memory of events in time-ordered experience of what happens to you in story format (cf: episodic memory). I thought a lot about episodic memory in the middle 90's because it helped explain what I intuited about interaction of language and story, and also seemed to explain why fiction in entertainment media was so successful. And if you want to think big, you can also consider the role of literature in culture transmission. Anyway, theories about fiction format to communicate better than otherwise aren't scientific — just plausibly interesting, and close enough to a useful sweet spot in results that it's worth doing even if there's no justification for it. By the end of the 80's I started dabbling in popular game systems as immersive research in mixing entertainment with educational value, looking for patterns in what motivated folks. I was interested in coupling attraction of fads with useful training in skills and knowledge. I had a dreamy, altruistic motive way back then, and I've since banked any passion I had to achieve larger goals in that direction. But I think it won't be too hard to motivate my sons (and maybe some other folks) to learn basic programming skills in pursuit of entertainment, if I can mix tech and fiction in some way that's at least mildly entertaining. If you make a game interesting enough, you can eventually reach a point where you need to program system behavior to make progress. I'm interested in the blurry edges between self expression, socialization, and productive behavior with constructive goals. Future versions of online systems should be able fit participants with multiple roles, with work sustaining and developing the system as part of the mix. 17feb08
¶
cleverly feeble
admission essays ¶ A recent Boston Globe article says College applications can be too good, which made me think about how I helped my ex with her writing in grad school, starting with her application essay to Berkeley, which I hardly touched at all. My biggest suggestion was the scary thing I told her to do at essay's end, where I suggested she do something unpolished emphasizing her strong interest, so she'd stick in the minds of someone reading her essay. After summarizing her reasons for wanting to attend Berkeley, I had her close with, "And that's what I want, want, want." Yeah, that scared her a little. Bet they never saw that before. Good idea or not, she was accepted at Berkeley, so it couldn't have been a lousy gimmick. Motivation and passion always count for a lot: it's seldom a mistake to make desire clear. Note I didn't actually help write her dissertation by drafting prose. But I did something I thought almost as unfair, which was help her reason about the most complex parts of her thesis by suggesting the broadest and most inclusive generalizations that explained structure in what she studied. The source of her insights on relationships between 17th century social structures and the treatment of information in paintings her artist did were due mainly to my suggestions about how social turmoil can be expressed in artistic world view in compositions. I outlined exactly how I thought processing explanations of his environment showed up in the weirder aspects of the artist's paintings. That's not cheating, is it? I was "just a sounding board" and not the author of prose. I just debugged all the kinks in logic and reasoning as you went backwards and forwards over some arguments. But I suspect that's what someone with a doctorate is supposed to do, and it bothers me some. In the future I plan to never help my sons write their admission essays, assuming they want to go to college. (I doubt they'll have a choice, though, since their mother's ego is pretty wrapped up in her degree and she's already pushing them hard in this direction.) I'd like to see them avoid getting in over their heads the way my ex did. And today one can more easily just pursue a line of activity without school and do very well. If they choose to become programmers, they can hardly get a better education than via apprenticeship under me. (Basically I'd be making them rich.) I won't know if they're interested in that for a couple more years. ghost writing ¶ I never cheated in school myself, and I didn't let my high school friends cheat using my answers either. (I was the guy who knew all the answers.) When the other kids came and asked if they could copy my answers, I just said no. Don't you think the teacher would get suspicious if a cluster of friends suddenly got almost perfect scores, except for the one question I got wrong? Duh. In simple cases like this I could avoid the role of patsy, which goes with enabling poor behavior in twits. But in college I didn't say no to my ex when she asked me to write an art history paper for one of her senior year classes. It seemed like an interesting challenge to me, and we were still in the phase of trying to impress one another, so I welcomed an opportunity to show off. I recorded a guest lecture by a visiting Rosalind Krauss and dissected her technique because she'd used some naughty rhetorical tactics in her style. (At one point she put the audience down using a sentence in the form of an opening clause never introducing a proper verb — it was just a long and convoluted sentence fragment, so the audience had to take her message in mind and hold it pending the rest of her thesis, which never appeared. Folks blinked with funny expressions.) I was amused enough by the high grade that I wrote the comments from the professor into my notebook (described here last January) under the 03July1982 entry: A — This is a good paper: I like your frame of mind and also the specific criticisms you level at Krauss. The introduction is extremely well done and represents a step too often omitted from intellectual textual critiques. Vastly superior to your first paper because of your willingness, I expect, to take some chances. In those days my ex wanted me to "teach her to be a jedi" — by which she meant learn to think and process information the way I did, which was characterized by assimilating details other folks believed important, then putting that in a larger context to see what actually mattered. But she stopped believing she could learn by the end of her dissertation — or she no longer cared, or something. Maybe lack of respect from others in her program made her decide to become a baby factory instead of pursuing her career. Certainly the practical difficulty of following up her degree with teaching work in the boonies was an influence. |
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.
16feb08
¶
dark eco
video game school ¶ My two sons are trying to teach me to play video games, starting with Jak 3 on their older Playstation 2 system. I've played several hours now, which is more than I've spent playing video games all the rest of my life. Usually I don't find computer games at all interesting, especially those in the first person shooter (aka FPS) genre, because there's rarely anything intellectually interesting to figure out. All the quick twitch reflex skills pale in interest compared to keeping five juggling balls in the air, for example. So usually video games give me sensory deprivation by occupying my mind without giving stimulation. Jak 3 is much more interesting than most other games I've watched my sons play, though. The open world format encourages exploration, and the simulated physics model has enough realism to avoid looking totally boring. The artwork and story design is also very good, even when I compare it to other kinds of games I've seen over the last twenty years (card games, role-playing games, board games, and mixtures of those). But even with my kind of eye hand coordination, I'm a little old to learn highly time sensitive motor skills on many buttoned input devices with two joysticks. With several years experience under his belt, my sixteen year old son has no trouble moving both joysticks at once (direction of movement and orientation of view) while pressing several buttons all at the same time to jump, spin, fire, and land in exactly the right spot, all at the same time with seamless effect, apparently without thinking. fps tards ¶ Two of my characters, Zé and Wil, refer to folks who like first person shooters as fps-tards, and they needle Ulf — a prospective colleague — over his Quake playing history. In return, when pushed he might call them mud-tards for liking multi-user-dungeon games better. Zé and Wil are interested in a new sort of online system that's part role-playing, part text adventure, part story-telling and socializing venue, and seem to be recruiting a team of folks with complementary interests. Sooner or later I'll have them explain things I used to tell folks in the 90's when I still thought I'd have time to invest in such interests. email diligence ¶ The last day or so I designed email correspondence between Zé and Koi — an odd sort of venture capitalist who wants to fit several different related projects together in a loose federation, hoping for synergy or emergent effects in creative material. Soon I'll need to keep notes to avoid losing some of the backstory; if I keep story elements in my mind alone, some fine detail can slip away, making me make it up on the fly later. That's often good, but loses if have an especially poignant complex idea — I haven't yet though. wil on hashing ¶ Tomorrow I might fictionalize Wil lecturing a junior coder on hashing practice for constant time algorithms even when you're working with populations of only a 100. If you have a bunch of threads all constantly trying to touch a mutexed data structure, linear just isn't fast enough even for N=100, and it makes Wil just want to shake coders who want to write the slow version first and only make it constant time "after profiling", even though the constant time version is just as trivial. I don't find the topic any more engaging than Wil, since it's just as trivial to me. But I need to get in practice of writing boring code stuff from Wil's point of view, because I might do it a lot later. If I make the mistake of letting fiction get interesting, no one will want to tolerate necessary tech drudgery later. (It's the same hashmap technique I use for populations of millions, and it's the best way you can do it. It's not complex — closed hashing with tombstones to avoid rehash on remove — but that doesn't stop folks from arguing about it anyway.) 13feb08
¶
carpet baggers
high and low ¶ Thinking about the high level middle layer didn't go far because it quickly bent back, needing a robust, performant, flexible trusted base that scales more than I usually see in trusted bases. In fact, I usually change existing trusted bases into better ones for a living. Someone has to do it. Anyway, to me this means I'll simply maintain two different lines of inquiry which sometimes interact, whenever one is better than the other. This style of reasoning is actually familiar since — when studying systems based on evidence, with prospects of seeing more evidence — you often maintain best case and worst case scenarios to see how far apart they get: a division that can appear in fictional characters. zeta ¶ Z's ears burned as he uploaded footage from Ike's new fly cam taken today at lunch, so Z assumed someone must just have mentioned his name in a blog — probably Wil trying his hand at creative writing for Koi's tall tales promotion instead of coding for a change. But peeking over Wil's shoulder, Z saw this spill on Wil's screen as he typed:
Z tapped Wil's shoulder and waited with a small smile, strains of Pink Floyd's Dark Side of the Moon getting louder as Wil's headphones came off. "I know, I know," Wil sighed, "You think it's unusable — seems funny to me. I can do better, Zé." Z chided with a wagging finger. "You keep using the fortune cookie joke — it gets old." Wil still looked pleased. "Koi said running jokes tie loose plots, so I want to stock up. You hog the exotic places and odd characters. I'm a gimmick kinda guy." "You just need more faith in your own view," Z advised. "You only seem boring to yourself. Tell one of those weird stories about college, like the one where you climbed a tree and said 'good morning' to passers at any hour. That was high humor for Iowa, wasn't it?" Z needled again. "Easy for you to say," Wil chewed his lip. "Then you'll come out with a floating castle, eerie ambiance, daring mission story, and I'm chopped liver. Let's face it, Zeta, you're the ultimate character yourself." Said in the same way Jim Carey delivers 'ultimate dad' in Lemony Snicket's A Series Of Unfortunate Events. Z snickered. "Well if you do more Clue characters, make sure you throw a horny Leslie Anne Warren in the mix. She was old enough to be my mom when I first saw her in that role," Z noted in wonder. "I can hear movie citations in your voice," Wil teased. "How does a guy from Brasil get to be such an anglophile movie buff, anyway, Zé? It's just wrong." fly cam ¶ Editing footage of Wil talking to coworkers at lunch, Z played with ideas for characters playing up his own foibles, trying to decide which worked better, or played in different tales. It was tempting to use ζ for his own nickname Zeta, or Zelig to turn his own name Zé into a ligature of Z and e, the way aelig names ligature æ. Z found part of the cam record he wanted, then leaned into a fisheyed lens of another tiny "fly" cam, looming large in the desktop view to whisper, "This is a true story." But even though true, it was only interesting enough to sample because Z needed to test out his setup, and because Wil cited a movie. Z was a sucker for movies. Software smoothed jerky footage of the group's walk down the street from the cafeteria. An older engineer named Gav asked Wil if he asked the remote team leader many questions, and Wil said no, because the answer always dried up as quickly as the question could be dismissed as inconsequential. "What do you mean?" asked Wil's manager Che, who meant well but often didn't get every nuance of Wil's explanations. Che tensed up slightly, anticipating a discursive response, since Wil was nothing if not precise. "It's like in Raiders of the Lost Ark," began Wil, as Che spied him incredulously from the corner of his eye. "There's this scene at the end," Wil explained, "where Indiana Jones is trying to get these government guys to tell him who is working on the ark, and they keep saying 'top men' like Jones is nobody. It's like that: all the answers mean I don't need to know the answer." By the end of this Gav is laughing and hardly stops as he tells Che, "That's the first time I've ever heard Raiders of the Lost Ark brought up in an engineering discussion." 10feb08
¶
strobe light
temp scrubbing ¶ I just redacted two quite long updates to rethink a new direction I proposed, and because they implied too much about my thought process, which I never like to flaunt. I expect I'll bring parts back as part of another page, so it's not lost. (It's possible someone found lines of thinking useful in stuff I removed and I hate to deny folks value wherever they find it.) I came up with a thing 1) more interesting to do and, 2) directly related to coding efforts, and both trump fiction these days. It's easy to get carried away with trying to help others think and see better at the expense of one's own fortune or momentum. I'd much rather make tools that can be re-used than bolster the world's supply of fluff prose. You can't execute fluff. path dependent ¶ Sometimes the path one takes to reach an idea provides a lot of context showing why it's useful, so grasping the idea is a little path dependent. A couple different nearly independent trails influenced the notion holding my attention just now. First, I'd been thinking I might one day need to abandon C++ as the bottom of my development stack to implement high level languages, because the C++ folks won't leave it alone. I want to avoid any changes that take C++ too far from just plain old C. So I started thinking I'd want to generate the bottom of the stack from my high level middle written in a high level language. Second, I was on the verge of starting a middle layer in a higher level language — still build atop C++ — because I was losing steam on the C++ bottom of the stack because I wasn't answering any new questions, and I was just turning the crank on earlier plans, letting my focus waver a little. So it was time to start adding a top-down component to the mix, working down from high level language code to the bottom-up code in C++. This would make me ask and answer new questions, staying focused. While I was designing characters for fiction, those two ideas (of separating the bottom of the stack from a high-level language middleware layer) went for a turn around the dance floor, then issued a bulletin to my frontal lobe to make demands. At the moment I'm getting distracted by what I might have the middle layer say, and how it might generate substitute bottom layers. So I'll get back to you with detail later. 03feb08
¶
need no stinkin badges!
story ¶ I added a new story section to this site, beginning with some background and seven year old sample example fiction from treedragon, not that I expect to use that format again. (The background page is an update I first wrote here in the log before deciding it should go there.) I plan to write a very different sort of fiction that looks very little like fiction much of the time, other than using some of the same characters who still threaten each other with violence, but now over programming language details. I was thinking I should start discussing tech details of language runtimes, and using Python PEPs as examples to spur discussion. And I realized I couldn't bear the idea of writing such material in an ordinary way, using first person voice in the usual boring manner. So I added the new story section to lay a little groundwork, so I needn't say much later. unicode ¶ It was interesting to see Paul Graham get crucified over Unicode this last week when the first snapshot of Arc was released. After several tentative mental attempts to start drafting a piece on that topic here, I decided I ought to wait for a dialog format with fictional characters, because more fire power is really needed when you want to banter with obnoxious peanut galleries. Mobs often show peculiarly emotional behavior patterns, with high sensitivity to mockery. Dialog in fiction format is especially well suited to mockery, so if making fun of crowd positions will clarify anything, I'd rather do it that way. |