Older blog entries for graydon (starting at number 77)

the 187 skillz

Been playing with modular monadic interpreters and compilers recently. The monad keeners are really clever: the idea is to separate out "facets" of a language processor (a la action semantics) into separate monads, such that (if you get the liftings right) you can do a modular proof of your rewrite semantics for that facet irrespective of the other facets you may have enabled. This is cool: you can develop a working call/cc system or lambda abstraction or calling convention in isolation, test it out, then just sorta graft it into an existing compiler / interpreter. The math gets a little ghastly but it's miles better than plain denotational semantics.

Monads are one of those things like pointers or closures. You bang your head against them for a year or two, then one day your brain's resistance to the concept just breaks, and in its new broken state they make perfect sense. I've only constructed a UA parser and 2-level interpreter at the moment but the fact that I could do so in a couple pages of haskell is rather amazing. Parsec makes Bison look like a sad joke.

er, um. otherwise I've been on vacation. watched a lot of television, ate a lot of waffles, and read a lot of ACL2 examples. went for walks in the snow with frances, played with baby rissa, slept, perused the various available open cores, listings for FPGA's on PCI cards (and DIMMS!) read up on current leftist media and browsed the libstdc++ design notes.

a weird few weeks of "everything old is new again": playing with computer music synthesis (haskore and its interface to csound), futzing around with proof general, common lisp and most interestingly ACL2, and inspecting the current round of assemblers, JITs, assembler-makers and simulators.

pleasantly surprised by the quality of some of this stuff. after a few months of digging through refuse in freshmeat (not to mention my own src/ dir :) I was getting to really loathe software.

and amidst this mad year, I didn't even notice that dmoz is bigger than yahoo. congrats, dmoz.

big jim!

Suddenly became interested in FPGAs after attending some lectures on high level circuit design and reading up on the free tools for doing EDA. So much to play with...

Fascinating reading from the same professor: a proposal for unification of boolean and number algebras and a formalization of time and space. What impresses me most about this stuff is the attention to simplicity and readability; something unfortunately ignored by far too much literature on formal methods.

ObTalkOrigins: responsible teachers of either Evolutionary Biology or the Book of Genesis should avoid over-extending their subject to a complete theory of origins. Each offers something to chew on, neither is enough to finish the job.

flip a coin

Saddened by the loss of mathworld. I once attempted to mirror it, but eric's atitude was that it was his "property" (never mind that all the material was discovered by others) and that even people acting in the public interest ought not to propagate his writings, so he outright banned any IPs which crawled more than a particular portion of the site.

I've noticed this thread quite a bit recently: academic people are often as reluctant as corporate people to hand over their work to the public without putting strings on it. Such strings run the gamut from "non-commercial use only" to outright denial of useful work. I've tried arguing the point with a few groups making valuable mathematical software, and have been astonished to hear the argument "why should someone else benefit from my work?"

Why on earth is someone in research, in a publicly funded institution of learning, if they do not expect others to benefit from their work? Are they just there to show off, live the life of a poor researcher, grind theoretical axes with their colleagues? It seems a bit silly given the amount of public information is required to get a good education in the first place.

Oh well. We definitely need to replace mathworld; I fear the UberWikis of the world may not adequately support editing mathematical notation inline, and that some sort of blend of HTML renderings and LaTeX source might be in order. Recent positive impressions of Hevea spring to mind. I somehow doubt that MathML will be able to revive itself. Integrating mathematical semantics and mathematical typesetting seems to me like a fool's errand, as people will always be discovering new branches of mathematics, writing software to explore them, and inventing notations to describe them. I would be perfectly happy to visit a page containing a very good Hevea rendering of some explanatory LaTeX, a link to some PARI or Maxima code implementing the concept, and perhaps a "fetch LaTeX/DVI" button.

wen: to dodge the XML issue entirely and focus on the issue of pseudocode, all I can say is that programming language semantics are a lot more complex than you give them credit for. It is not at all trivial to translate "any" language to "any" other, despite our ability to prove the existence of such translations. A translation will range from a simple statement-for-statement rewrite to an unrecognizable mass of supporting code necessary to preserve meaning. In any event, the idiomatic clarity of code written by a human (which is only moderate at the best of times) is likely to vanish, rendering the main purposes of a high level language (communication and maintainability) moot.

for the other novice haskellers in the audience:

haskell supports equational reasoning, which means that the meaning of a program is not changed if you substitute a symbol for its definition, or vice-versa. this is something which I had only sort of appreciated the importance of, insofar as it lets you do neat stuff with fold and map. of course it goes much deeper than that, but I never knew how much.

The algebra of programming is a beautiful introduction (by the algebra of programming research group in oxford) to the advantage of equational reasoning about programs. it develops just enough category theory to frame functional programming in, and presents a purely equational, pen-and-paper approach to deriving programs which solve combinatorial optimization problems.

conventional program "design" (whiteboards full of boxes and arrows) looks rediculous when shadowed by the results in this book. after proving the validity of a given set of transformations which are legal in an equational reasoning framework, problem definitions are simply rewritten as code which solves the problem. it's eerie; the sort of stuff you always hoped would be possible but seemed to lie forever beyond the normal material on algorithms.

cmm: assume for argument's sake reproduction rate in canada was steady self-replacement and in india it was a yearly doubling function. furthermore assume the canadians make up C worth of the current world population P, and indians I worth of it.

pick some year in the future, N. the world population, if canadians continue to reproduce, is (2^N)*IP + CP. if canadians halt their reproduction, the world population is (2^N)*IP. this is less. it's still lots, but it's less.

lilo is implying that if we stake out our territory we can lock the problems of india inside india and keep north america underpopulated. this assumes both that indians are culturally incapable of change, and that north americans are doing a better custodial job with the continent than indians would. I don't believe either of those sentiments to be true.

furthermore the whole line of reasoning reeks of fatalism. if something can be done in the near and medium term, it is the best we are capable of and we should not shy away from it simply because in some possible future our work may be erased. everyone dies eventually, but we do not kill ourselves because of that knowledge.

lilo: you know what, never mind. I don't actually care enough about political systems to pick apart a libertarian "everyone is educated and wise, so we need no government" scenario. all I suggested is that we do less stuff. don't take the suggestion to be a declaration of fascist policy-making. it's a suggestion, like "you should cut your hair" or "you should try this pudding". if you don't agree with the reasoning, fine. the pudding tastes bad to you. enjoy your lifestyle.


you might not want to encourage people whose culture and economic state leads them to reproduce less, to stop reproducing completely. Thus leaving the world to people who have no such reproductive limits.

you compound zaitcev's absurdity with further absurdity. reason with me here: it doesn't make the more-rapidly-reproducing people reproduce more if we go away. the issue is plainly that there are too many people. making fewer people, even if they are the ones whose breeding rates are lower, still makes for fewer people overall. now. in the future. whatever.

Hehe, like I need to respond to ad hominem word-association arguments like "hard core creepy" and "free market cheerleader." Propaganda technique is just silly. ;)
grep -i '\(power-seeker\|marxist\|silly\|religious\)' lilo-diary.txt > pot-calling-kettle-black.txt

it turns out that the people who provide the choices are, again, small groups of people who enjoy wielding power. Just the opposite of the sort of people who can be trusted with power. I'm generally in favor of educating people to think for themselves and letting them do so. The results may not agree with my prejudices, but they should be a lot more stable and useful than those of the current system, in which the voter is treated like a child.

just to clarify, so I know exactly what argument you're proposing in amongst the whitticisms and generalizations: do you think we should have any laws? any legal system, law enforcement, legislature, judiciary?

Oh, yes, extinction. All of those species do seem to be extinct, along with the many other species you'll find in the billions of years of fossil record.

no, not billions of years of fossil records. dozens of years of current watching. watching habitats get re-allocated to human use, and everything that lived there vanishing, and knowing we're the cause.

28 Oct 2000 (updated 28 Oct 2000 at 04:22 UTC) »
hands off my car. vroom, vroom!

lilo: whether arabs and indians produce more people is irrelevant to my issue with zaitcev's retort, which is why I paraphrased. I'm questioning his reasoning, which is that the underdeveloped countries' production of more people compensates for a north american choosing not to reproduce. this derives from fatalism at best, random assignment of causality at worst. one could just as well say that even if they have 10 babies, I can "compensate" by not having one of my own (since north americans consume so much more per capita). the concept of compensation is not actually present; neither of us causes the other to reproduce or not. the conviction that one should reproduce less (or consume less) stands completely aside from matters of who else is doing what else simultaneously, and nobody gets anything accomplished if they focus on the things "everyone else is doing".

furthermore, you suggest that I would have people serve the concerns of society, rather than the society serve the concerns of people, as though this is an all-or-nothing situation. what then are laws? do they serve us, or do we serve them? could it be... both? could it be that they represent decisions which do concern us, but which can only be instituted at a social, systemic level?

oh wait.. "public policy is going to have to give way to the preferences of the public"... that is hard-core creepy. are you actually enough of a free-market cheerleader that you'd do away with public policy? scrap painstakingly agreed-upon law, human rights, safety and standards and just abandon the process of public discourse? have you given this much thought? it has pretty serious implications.

lastly, associating ecological claims with the second coming of christ and the belief in chain mail is just bad science. chain mail and the messiah are falsifiable; species extinction rates and habitat encroachment are not. try it. try finding a living monk seal or laughing owl or atlantic walrus or prairie grizzly bear. you won't.

27 Oct 2000 (updated 27 Oct 2000 at 18:43 UTC) »

if I do good thing, bad people compensate. therefore bad state is inevitable. therefore I should do bad thing.

hmm.. and I foolishly thought california has power shortages because individual californians use too much power. I apologize for dragging ivory-tower things like numbers and causality into the equation. please return to blaming your problems on arabs and indians.

lilo: but a change of opinion is all that's needed to fix the problem, and massive shifts of opinion do happen. they happen with the presence of convincing arguments. the fallacy many people presently make is that a citizen's only concern anymore should be with the fulfilling of their own wants, as opposed to the social process of arguing, establishing and enshrining beliefs (including the belief not to be subject to a particular law) as legal means to social ends. these arguments cannot be based in terms of individual wants by definition: if all we were discussing was satisfying your "want" to get to work in comfort and style, of course everyone would support your position of buying a car. but we're not: there's a social issue at stake and it's the issue of the expiration of the natural world. this issue, like the broad issues of national security, economic stability and social welfare, demands addressing in the terms that concern it. in particular, it demands analysis of causes of environmental degradation and (consensual) application of control mechanisms to achieve the broader end of preservation. california has been particularly effective in their application of this concept to cars, far more so than my own province.

your comparison between "concern for social issues" and "desire to assume control over others" is perhaps well historically motivated, but the two matters are not always the same. many people who make arguments about social issues are concerned about social issues, as issues, and are only interested in arguing a point insofar as the point seems important; whether the point gains them "power" is frequently a non-issue.

the general systemic cause I was pointing out, and continue to believe lies at the heart of our systemic problem here, is that we are convinced of the necessity of increasing the rate of economic activity for its own sake. computers are a non-issue; they are another surface effect of this systemic cause, like paper, like television, like sneakers and croutons and steel belted tires. they're all effects, mere symptoms, of the conviction that maximized economic activity is an end in and of itself, rather than a mere means to satisfying needs.

this is an issue which only becomes more important to discuss as the species becomes more powerful. how important is it to increase the rate of production and consumption, even if everyone's needs are already met? I would venture the answer "not at all", but the discussion has already been derailed into discussing why paper is better/worse than PDAs. never mind that point, one is surely better than the other but we still have too many of both.

lilo my comments have nothing to do with marxism or the ability to feed others, nor the flush of ecstasy people get when their cell phone goes ring-a-ding-ding or they spend an hour surfing on their cordless laptop from the comfort of their car.

I'm suggesting we take all the energy we pour into everything and reduce it. a lot. because the energy we pour into doing things, just things in general (even "good" things) is so excessive that the ecological result is bad. superbad. we're so dead it's not funny.

it's embarassing to read people here argue that because you like something, it makes it good to do it. that not only flattens the rich mental life of morals, ethics, duties, goals and beliefs to a single "stimulus/response" continuum, but it assumes complete inability to reason about cause and effect, or any timescale other than the present.

for a free software group, this is really sad.

68 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!