hendrikboom's Journal
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 20 most recent journal entries recorded in
hendrikboom's LiveJournal:
[ << Previous 20 ]
| Saturday, November 14th, 2009 | | 8:55 pm |
| | Sunday, September 20th, 2009 | | 7:22 pm |
| | Wednesday, September 9th, 2009 | | 8:50 pm |
Distributed revision of word-processor files
Distributed version control systems are more-or-less incompatible with word processors, at least with the current crop of file formats. A DVCS's main job is merging sets of changes that were made independently, possibly at opposite ends of the Earth. They tend to analyze changes in terms of insertion, deletion, and replacement of lines. But lines are what's not significant in natural-language text, which flows from one line to another like water in a river. And word-processors usually encode the text into some kind of binary file, where the newline characters the DVCS uses are missing. And the new XML ODT files, even if you uncompress them, aren't particularly helpful, because all their syntax consists of matching brackets of different kinds. When Betty edits a b c d e f g h i j to a b <i> c d e f </i> g h i j and George turns it into a b c d <b> e f g h </b> i j instead, the result of merging the two sets of changes gives us a b <i> c d <b> e f </i< g h </b> i j. which is syntactically invalid XML, and can therefor no longer be edited in the word processor. The users cannot fix the bad merge. But there are other data representations which may not have these problems, such as infix operators (perhaps with priorities to make sure paragraphs are inside sections and not vice versa). Merging may not always give the right answer, but it will give results that are syntactically valid and therefore can be edited further. So I ask: Is there some way of accomplishing the things word processors do entirely with infix operators? -- hendrik | | Saturday, August 22nd, 2009 | | 12:08 pm |
Another verse to Suzanne
Going through old junk, I just found something I've been looking for for decades. It's another verse to Suzanne, allegedly sung by Leonard Cohen at a Mariposa Folk Festival long ago and transcribed by someone who was there. It's labeled "3/", so presumably it goes after the second verse and before the usual third verse. For all I know my copy may be the only one in the world ... of course it won't be once I post it here. -- hendrik 3/ All my friends are fast asleep In places that are high and deep; Their bodies torn on crosses Their visions meant to leap; And in between their dreams They hate the company they keep. Nancy lies in London grass. And Tom in Marco Polo's pass, Peter slowly dips his toes In bathtubs filled with Turkish snows. Leonard hasn't been the same Since he wandered from his name, And Alphie(Robert) always loves to tell How he became invisible at last. And you want to travel with them, And you want to travel blind, And you think you'll maybe trust them For they've touched your perfect body With their minds. | | Friday, August 7th, 2009 | | 11:00 pm |
Melissa auf der Maur at Worldcon
Tonight I got to attend a film -- no, a concert -- no, that's not right either, a presentation of Melissa auf der Maur's new multimedia offering, OOOM, Out Of Our Minds. Not the whole thing, just pieces. I got to see the film, which was first presented at Sundance. During breaks in the film (it seems the Palais de Congress has a hard time playing a DVD or Blu-ray disk without equipment failures) she explained what it was like to collaborate with a film-maker. Then she performed a few of her songs. She had no band with her, so she sang, accompanying herself on bass guitar. She said she had never performed without a band before, but the result was overwhelming. I can imagine that the sound would be fuller. smoother, more rounded with a band, but I can only expect it would lose the single-minded intensity it gained from being a one-woman show. More of this stuff will apparently be shown in performances on the coming months, and the entire multimedia package (including a comic book) will be released early next year. I will be awaiting it. I hope some of her truly solo performances will be included, because I would be sorry not to hear them again. -- hendrik | | Wednesday, July 8th, 2009 | | 2:19 pm |
ls is huge
hendrik@lovesong:~$ ls -l /bin/ls -rwxr-xr-x 1 root root 92312 2008-04-04 10:22 /bin/ls hendrik@lovesong:~$ 92K. I remember the day when I could use ls on a 48K PDP-11. That was total memory, including the OS, code space, static data space, and writable data space. Processes could be swapped, but weren't paged, so that really was all the (virtual or real) RAM it could use. Today's ls wouldn't even fit on that machine 30 years ago. We had entire C compilers that could run on that machine. And generate code that would fit on it, too. What has happened to software? What could ls possibly be doing that takes 92K of code? Not to mention four shared libraries! hendrik@lovesong:~$ objdump -x /bin/ls | grep NEEDED
NEEDED librt.so.1
NEEDED libselinux.so.1
NEEDED libacl.so.1
NEEDED libc.so.6
hendrik@lovesong:~$ | | Monday, July 6th, 2009 | | 12:33 pm |
I've just started reading The City & The City by China Miéville. Let me recommend it, based only on the four chapters I've already read. I was told the not to read any of the reviews, but to read the book first. having read only four chapters so far, I don't think I will be able to give away significant spoilers; I can't reveal what I don't know. Nonetheless, I'll be careful here. It's a police procedural, in an unusual environment. It's meticulously detailed and believable, and that's one of its real strengths. It's also quite strange, in directions not usually explored in science fiction or fantasy, and that is its other strength. So far, at least. I expect more of the author, based on what I've read so far. I suspect the underlying concept may well be as impossible to describe without spoiling the book as the one in Cryptozoic. So I won't. -- hendrik | | Friday, June 19th, 2009 | | 9:54 pm |
It looks very much that I'll be going to Readercon. The only thing left is to arrange transportation. I'm leaning toward driving, but am concerned about the possibility of highway hypnosis. | | Sunday, May 10th, 2009 | | 11:01 pm |
When you discover a plot hole in your novel, be sure to look through and see what's on the other side. | | Wednesday, May 6th, 2009 | | 10:49 pm |
Silverspar Purged Account Deleted
This journal has been deleted and purged.
I'm going to miss you. Sometimes cheerful, sometimes angry, sometimes miserable, but always insightful. If you ever see this, please let me know how you're doing. Private message, or email, or look me up in the Montreal phone book. My profile has my real addresses, and I use my real name online. -- hendrik Current Mood: melancholy | | Friday, March 6th, 2009 | | 6:51 pm |
| | Tuesday, January 13th, 2009 | | 10:09 am |
| | Friday, December 5th, 2008 | | 11:43 am |
| | Thursday, November 20th, 2008 | | 11:00 pm |
| | Wednesday, October 29th, 2008 | | 4:45 pm |
Here's a meme that's going around, and one I can get behind: Copy this sentence into your livejournal if you're in a heterosexual marriage/relationship (or if you think you might be someday), and you don't want it "protected" by the bigots who think that gay marriage hurts it somehow. | | Monday, October 20th, 2008 | | 11:24 pm |
New year's resolution.
Of all the new Year's resolutions I've ever made, this year's has been the hardest to keep. The things that have to be done a little at a time on a regular basis, like ten minutes a day -- Do them.What kinds of things? Things like reviewing Japanese vocabulary. Ten minutes a day is enough to keep one learning. Spending five hours in a single block memorizing is not as effective as if those five hours are spread out ten minutes a day over a month. I'm just failing completely on this one. I'll may have to reresolve it next year. I think it's important. -- hendrik | | Friday, September 19th, 2008 | | 7:53 pm |
The day the world was not destroyed
about a decade or so ago, someone in the Russian defense system decided that although their electronics were indicating a massive nuclear attack by the Americans, he reported to his superiors that there was nothing special going on. And so the world was spared. Now this was a specific person on a specific day, and it is now celebrated as a day named after him. Does anyone remember the actual date and who this guy is? I seem to remember it's at the end of September of the start of October. | | Monday, August 25th, 2008 | | 8:34 pm |
Let me quote Hermann Weyl: The continuum of real numbers has retained its ancient prerogative in physics for the expression of physical measurements, but it can justly be maintained that the essence of the new Heisenberg-Schrödinger-Dirac quantum mechanics is to be found in the fact that there is associated with each physical system a set of quantities, constituting a non-commutative algebra in the technical mathematical sense, the elements of which are the physical quantities themselves. (1928) Now as far as I can tell, this is the idea behind the noncommutative geometries the mathematicians among quantum-mechanical researchers have been excited about recently. What puzzles me is that it seems to have taken seven or eight decades to get to the point that people are taking this seriously. Could it be that operators like -i hbar d/dx don't fit physicists' physical intuition, but real numbers too? I've had an idea like that myself, too, about ten years ago, but have not the technical facility and background knowledge to develop it -- that the operator representing momentum that is the real physical quantity, and that the real-numbers eigenvalues that we "measure" are just momentary glimpses into a deeper reality. Isn't the idea that real numbers are the results of measurements also an experimental falsehood? All the experimental results I've ever seen have been rational numbers. Why assume that the actual physical values we can only measure approximately are real? Why not assume they're members of a noncommutative algebra? | | Friday, August 15th, 2008 | | 11:20 pm |
Day 15: clover.
To get something to grow in my front lawn so that the rain doesn't wash all the ground away, I planted clover a week or two ago. Now there are little green dots showing up in the bare patches. They're pretty. They're growing where the grass won't. But within some of the bare patches, the clover seeds have been washed to one side by the rain before they took root. I may have to reseed those spots and hope. Last year, the rain here has occasionally been intense enough to wash some of the grass out of the ground. I'm hoping clover will reduce the impact of the drops a little better, and that it has better roots. We will see. | | Tuesday, August 12th, 2008 | | 2:00 pm |
use of Janus (August writing, day 11)
I was asked, what am I doing with Janus? It's the intermediate code generated by my Algol 68 compiler. There's a SNOBOL program that doesn't quite translate it into 360 assembler (I say "doesn't quite" because I'm sure there are still bugs to get out. The compiler only correctly ran a part of the Algol 68 test suite, and I would be very surprised if none of the deficiencies were in the Janus translator.) So I have two approaches -- translate Janus to machine code (probably a new translator). or -- bypass Janus and translate the Algol 68 parse tree to machine code (what I was doing originally before compilation limits in the compiler I was using to compile Algol 68 H forced me to break things up and use and intermediate code.) In combination with that choice, there's a choice of a local code generator -- there are a few now that I could use, I'm thinking of LLVM and C--, but there are probably more. There I have another choice -- to use one or the other, or neither and, say, generate assembler myself. The questions are: which is likely to be more work, and which is likely to generate better code. Since Janus can be compiled on a line-by-line basis with very little context (after all, it can be done by the STAGE2 macro processor), it is feasible to compile straight to assembler, the usual process for compilers on Unix. But debugging assembler is *hard*. (thought: it might not be so bad now that the world has usable debuggers). LLVM provides a fair amount of (optional) syntactic and semantic checking on the intermediate code, which I suspect will deal with most of the idiot-level bugs (and mst bugs are at that level.) I could: parse JANUS and do pattern-matching on the parse tree to recognize stuff and generate code accordingly. I could do that parsing and matching easily enough in C, or in Scheme. I perverted one thing in Janus -- the nesting of procedures. Janus doesn't do it. The code I generate does. The reason is that when I reach a procedure body in the normal tree-walk of code generation, the internal data structure in the compiler is just right for processing the nested procedure. To move the generated code out of the enclosing procedure would have been awkward, given the poor facilities available at the time for managing large text buffers. 400K memories were rare, and hard to get even if available; putting them in temporary files to be reprocessed later would have been awkward too, given OS/360's style of file access. But this is no problem now. Gigabyte memories are becoming the norm. What a difference a few decades has made! So it's perfectly feasible to implement text buffers in C, and let Algol W generate code into them. I've already got most of the API for that, except that it writes it all into a file instead. If I can manage to do something with the new varying-length strings Glyn has put into his Algol W compiler, it'll become even cleaner (the existing way I handle strings to be written to object code is to enclose the actual text in another inner layer of quotes to avoid the fixed-length-string restrictions of Algol W). If I use Janus as intermediate code, even if I choose to translate it into LLVM, I won't have a problem with interfacing Algol W with C++, which might or might not go smoothly. Instead of assembler, I might be able to access a kind of low-level code generator I threw together a few years ago to generate code directly into memory for immediate execution. Leave that for later, if ever -- gdb doesn't understand this kind of code. Does LLVM even have the kind of data structures Pascal and Janus use, with variants and such? If it does, are the ways of initializing them well-defined? Or is it just a matter of hoping future changes wont break what happens to have been implemented? |
[ << Previous 20 ]
|