Older blog entries for chalst (starting at number 61)

zhaoway asks: why do functional languages have garbage collection? One reason is that that it is awkward to stack allocate closures in a functional language, and becomes impossible if you want to do tail-call elimination. Also if one has an anonymous lambda abstraction, how do you tell the memory manager you have finished with it? It isn't absolutely impossible to have functional languages without garbage collection, though, and Richard Kelsey's Prescheme language (which lies at the heart of the scheme48 system) is such a dialect, though arguably it isn't a full-blown functional language anymore (there are restrictions on the places one may create closures).
23 Jan 2003 (updated 28 Oct 2009 at 12:25 UTC) »
raph, Zaitcev: I pretty much agree with what raph says, and I'm not a pacifist (I supported America's campaign in Afghanistan, despite some misgivings, see my diary from around then). I'm not even sure that I would be opposed to an American campaign against Iraq, since I think the potentially good consequences of removing Saddam Hussein from power might potentially outweigh the badness of what I believe are the Bush administration's reasons for wanting to remove him. Some considerations:
  1. I am strongly pro-Kurdish, a group that the USA effectively betrayed after the Gulf war. I think the probable reason why the elder Bush did not support the insurrection against Hussein then is because of a crucial ally's, the Turkish government's, implacable opposition to the idea of having a Kurdish nation on its southern border. Turkey's reasons for this are unacceptable, as is its treatment of its Kurdish minority, and the USA's behaviour was shameful. I think the Bush administration should be willing to openly criticise Turkey on this issue, even at the risk of losing Turkey's support in a military campaign against Iraq, not least for the reason that the northern Kurdish enclave would be an equally crucial ally of the US.
  2. North Korea is a bigger threat to the USA than Iraq. Iraq's threat lies in the threat it poses to its neighbours, not in any direct threat it poses to the USA or any of its NATO allies (whom the USA must support in the event they are attacked). Even Hussein would not be reckless enough to attack Turkey.
  3. It is true that Hussein might launch an attack against Israel. I do not know what the right strategy is for the USA to take, possibly declaring a temporary (eg. 12-month) NATO-like mutual defence treaty. I think a longer treaty would be unwise, given how reckless and irresponsible Ariel Sharon's government is.
  4. The need to collect more data on Hussein's weapons programme is an ideal opportunity for the USA to let Iraq become less of an urgent issue and tackle the really urgent issue of Noth Korea. It also would allow the USA to criticise Turkey, and repair diplomatic relations a little afterwards.
  5. Bush was foolish to include Iran in his Axis of Evil speech. Iran does not have a credible nuclear weapons programme, nor does it present a real threat to its neighbours. "Militant Islamist" is not the same as "supporter of terrorism". If Bush were to apologise for this, it is not impossible that Iran could become an ally in his campaign against Iraq.
  6. Hussein had nothing to do with the September 11th Al Qaeda attack. This should not need saying, but apparently 60% of Americans believe he did, according to a survey cited in Berlin's Tagesspiegel.

Postscript #1: The Bush tax cut

  • The Communitarian Network (comnet@gwu.edu) asked:
    The Wall Street Journal asks about the Bush Administration's new tax initiatives: "Is [Bush] too eager to cut taxes for the rich? Or are his critics so eager to soak the rich that they'd settle for a smaller economy with less for all?" (1/2/03). Elsewhere, the issue has been framed as a choice between growth and jobs and--class warfare. But one may argue that the most stimulative tax break is one that mainly benefits working class and middle class people--because these groups would spend most if not all of the money gained through a tax cut, while the rich would primarily increase their savings. What do you think?
  • William Niskanen's, chairman of CATO Insitute's, response:
    96% of income taxes are paid by the top half of the income distribution, and over a third are paid by the top 1% of the income distribution. The left has created somewhat of a Catch-22 in this country. The income tax structure is so progressive that only the rich pay any significant income taxes, and then the left opposes any income tax cuts because they benefit only the rich; taking their argument seriously would eliminate tax cuts as a potential policy instrument, even if they would significantly increase economic growth.
My reaction:
  1. Interesting claim by the CATO Institute. Is it true?
  2. I agree with Burkart Holzner's response "The ideologically slanted question posed by the Wall Street Journal is an assertion, not a question at all. It implies that the huge new tax cut is a necessity for economic growth. This is not the case..."
  3. Maybe the communitarian network is interesting for advogatans, be they conservative, republican, social democrat or other, and maybe COMNETians would find raph's work on formal trust metrics interesting?
Postscript #2:Certifications, Centres, and Policies
Here is a simple idea, that I think might do a lot to improve the advogato trust metric. First, three definitions:
  1. A certification is an assertion by an individual that a person, or an abstract entity, possesses a named property. This generalises the existing definition used on Advogato;
  2. A policy is a list of criteria that a set of certifications may or may not satisfy. A individual's certifications are said to be in conformance with a policy when these criteria are satisfied.
  3. A centre is an abstraction that consists of a list of trusted individuals, and a policy. Centres may be used to generate trust metrics, and a web of certifications may contain many centres. The name centre is drawn from some of Christopher Alexander's post-patterns writings.

Examples of centres: a centre to represent those unfairly excluded from the main advogato centre, for whatever reason.

Useful certifications:

  • person' certification's conform to policy P;
  • Account A1 on H1 and account A2 on H2 belong to the same person.
I talked about Advogato's experiment with formal trust-metrics with my wife a few days ago. She like the idea a lot, and mentioned an interesting idea of the evolutionary biologist Robin Dunbar, who in his book "Grooming, Gossip and the Evolution of Language" argues that the adaptive function of language is that it allows people to gossip, which gives us much better ways of knowing who in a large group is trustworthy or not; to sloganise: gossip makes large social groups possible.
21 Jan 2003 (updated 21 Jan 2003 at 18:00 UTC) »

First answer, to question #3: mglazer rated all of their diary entries at 1; incidentally he also rated the diary entries of ladypine, moshez, shlomif, nixnut, and ChrisMcDonough at 10. Congratulations to bgeiger who got it. I think it is reasonable to assume that mglazer is not interested in reading any criticism of his anti-arab hate campaign.

Second answer, to question #1: Bohemian Hall and Park is the place. Thanks to wlach who gave me the lead so I could find it using google.

19 Jan 2003 (updated 21 Jan 2003 at 17:11 UTC) »

Three questions:

  1. I have heard that there is a German-style Biergarten in New York, but I was not been able to find it on my last two visits there. Would anyone know how to find the address of the place?
  2. I'm assembling a list of what I think are the seminal high-level programming languages, the languages that were based on truly radical ideas about how to make computers do what you want, rather than just adding layers upon existing languages. So far I have:
    FORTRAN, LISP, Algol 60, CPL, GPM, PROLOG, the UNIX shell, APL, Forth, Janus, Smalltalk, Scheme, ML, FP, Occam, Elephant 2k.

    Does anyone think these are not right, or have other suggestions for this list?

  3. What did auspex, zenalot, lmjohns3, tk, rasmus, whytheluckystiff, graydon, RossBurton, ciphergoth, sad, bratsche, NoWhereMan, seanc, kwoo, magsilva, zhaoway, davidw, davidu, vab, badvogato, sisob, mikl, Bram, amars, dmerrill, kilmo, Cantanker, daniels, async, Stevey, mibus, aes, chakie, ajh, logic, TheCorruptor, bjf, yeupou, Uche, chalst, thomasvs, deekayen, MichaelCrawford, bgeiger, Uraeus, purcell, nymia, kbreit, chipx86, Archit, dyork, BenFrantzDale, raph, mjcox, vorlon, kai, movement, bytesplit, crhodes, ncm, Mondragon, lyb, Jordi, mwh, and garym have in common on the 17th January? ...answer here </ol>

Postscript This diary entry:

  • has generated a lot of interest: sad, mwh, bjf, lmjohns3, kwoo, aes, dyork, and, of course bgeiger have all weighed in.
  • renders horribly on konqueror and dillo, but lynx can cope with it. Apparently the krufty parsers in many browsers can't handle anchor reference points nested within lists...
18 Jan 2003 (updated 21 Jan 2003 at 11:53 UTC) »
I've recently been thinking about getting languages to talk to each other, mostly in the context of the LISP family, and have been struck by how difficult it is to give clear, language independent, information in a program text about what language you are writing in, and what coding conventions you are using. I've thought of a simple device to correct this, a "dialect" directive, that could easily be integrated into any programming language. Here are a few examples to illustrate what I am talking about:
For C:
#dialect C gnu-cpp linux-style

For python:
dialect python lexical-scope indent-4-spaces

For the LISP family:
(dialect scheme
case-sensitive-ids scheme48-package multiline-comments)

For Java:
/** ...
* @dialect java sun-codeconv gcj-code

I think having a reasonably coherent, cross-language, machine readable set of conventions for indicating the dialect of a source text is useful, particularly for allowing syntax-directed editors to reliably determine how to format program text, and to figure what identifiers are introduced and how they are used.

An issue is: should dialect directives extend the language? My opinion is they should, since they could be used to influence the semantics of the program, but they should be permitted to occur in comments, so ensuring backwards compatibility.

Another issue concerns UNIX #! directives; see SRFI 22: Running Scheme Scripts on Unix for some discussion of important issues here.

I'd like to write an advogato article about this, probably in a couple of weeks time, but I have to hammer down a few ideas first. In the meantime I am interested in any comments or references to similar ideas.

Withdrew my certification of robocoder as apprentice due to his (cynical|confused) certification of mglazer as master.

solovay: Welcome to advogato!

mglazer: Hypothetical question -- Would you feel any regret for your anti-arab invective if you heard that it motivated a vicious hate crime against innocent arabs?

28 Dec 2002 (updated 29 Dec 2002 at 08:49 UTC) »
Stressful month:
The month so far from my last diary entry has been the most stressful month of a year with many stressful months: I feel relieved just to have enough space and emotional energy to be typing this diary entry. To give a taste of my month: on or around the 17th me and my wife were challenged by four thugs on the U1 Berlin underground line, one of who kicked me in the eye, sending me to hospital for two days. That was the second most stressful event of this month... I'm much better now, and am satisfied to say the police have a very good chance of catching them: there are three eye-witnesses, and the police (who have been great; the Berlin police have a not entirely undeserved bad reputation in Germany) want me to come in and look at photos.

Web based proof exchange systems:
I am still very enthusiastic about raph's work here, although I am disappointed he has used python for the implementation. Apart from that, I think raph's writings show excellent taste and insight. What I think he has got right:

  • Metamath is probably the simplest system good enough to do the job. I don't think Hilbert systems are the best possible systems from a proof theoretic point of view, but the problem with the more sophisticated frameworks is that none of them are yet ``the right thing'';
  • Definitions are the hardest thing to get right in a Hilbert system based framework, and I think here is the place where it is easiest to criticise metamath. Raph seems to have a pretty good grasp of the issues here, which are riddled with subtleties, and doesn't seem bound by doing things the way the experts have always done them, which ensures that his work will be interesting whether or not it is successful.

There have been lots of interesting comments appearing on recentlog, but I've not had a chance to write any responses. I'll try to do this in the next few weeks.

Great post!

Nice series of articles on windows and its free rivals. Just a little point: just because POSIX specifies a file system that doesn't support interesting permissions models doesn't mean that linux and FreeBSD can't: both of the have VFS layers that allow them to do just this sort of thing.

Wishing all advogatans a Happy New Year!

3 Dec 2002 (updated 3 Dec 2002 at 12:25 UTC) »
dan: Alan Cox's diary, November the 27th, "strange lisp people turn up from Oxford" -- that wouldn't be you by any chance, would it?

Can you put a price on heroism?

Yes! And you can manage it sensibly or wastefully too! I've been growing irritated with the Economist over recent years (since the departure of Rupert Pennant-Rea, I think...), and I hardly buy it anymore, but the occasional article like this one keeps me checking the website...

25 Nov 2002 (updated 25 Nov 2002 at 23:13 UTC) »

There's an article by Thierry Coquand, A new paradox in type theory that gives a good explanation of Reynold's argument that polymorphism is not set-theoretic. I think this goes some way towards making important ideas about the nature of the polymorphic lambda-calculus accessible purely through online references, though a lot of important references are from the 70s and 80s and would benefit from good online summaries. I'd be grateful to hear of more references. BTW mail sent to cas@janeway.inf.tu-dresden.de will get to me, I'm quite happy that my main email address has been lost from the internet, since I don't have to spend so much time deleting spam...

jameson: Were you in Thomas Streicher's group when you were at Darmstadt? Who are you working with at Boulder? Despite my reservations, Girard's book is already something of a classic: I don't think you would have any problems convincing the librarian to try to get a copy.

Postscript: The last `Communications of the ACM' issue has as it main focus an event that I think will prove to be of great importance to computer science: The ACM has rejected licensing of software engineers essentially because code construction is not a normal engineering task. Interesting also in this light is Phil Greenspun's article reflecting on management at Ars Digita. Conclusions? I don't think software will *ever* be a `normal' engineering discipline, the way that civil engineering is today. I do think that the `Wild West' nature of the disipline will not last, however, because I think that in the next <n> decades it will become feasible to construct large systems that are proven to satisfy a formal specification.

52 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!