Older blog entries for wspace (starting at number 14)

Game programming
What a nice online risk game here. It has an active user community and many of them are having loads of fun. The guy who developed it is even making some money with it. A hackers' dream. From what I can see he uses a lot of HTML tables and he uses the *size* of the Courier font to get those numbers for armies on the right spot on the map. That could be improved upon. CSS and/or SVG is maybe better? And it is probably generated with PHP. That could also be improved upon. How about my favorite language Python.

I think every programming language could benefit from examples like that, to become more popular.

Programming these days

Currently I use Python for 3 projects at work, they are:

  1. A CGI program that functions as a user interface to an XSLT transformation. So users fill in HTML forms and then some XSLT transformation is called, and the result displayed in the users' browser again. Since there is no XSLT support yet in Python, a Java transformation engine from Apache is called.

  2. A CGI program that functions as user interface to a simulation of a telecom application. This will also have webservers written in Python later.

  3. Research into component based programming. I use components written in Python. These components are used in 2.

Note the big CGI part in this. I would love to use something easier to work with, viz. Twisted, but I have to restrict myself to stuff available in the standard Python distributions, and then only the truly portable stuff (meaning no curses and other *n?xonly modules). For the applications the kind of protocol or other technicalities are not important.

XSLT is new for me. I have some prior experience with declarative programming (is that a good name for it?), namely with Prolog, and I used to like Prolog a lot. But my XSLT experienced is getting really spoiled because of the application: it uses XMI, that horrible XML vocabulary from OMG. Right now I am trying to find out how the hell statemachines are supposed to be encoded in XMI. The documentation (their so-called "specification") is a mess and absolutely unreadable. I will be glad when this job is done. And then, when my peace of mind has returned with respect to XML, I want to think about a fun application with XSLT.

Juri Pakaste writes about Bertrand Meyers' OO book and also mentions Dijkstra. I do have some experience with UML in industry and in academics, and I very well recognize the "trying to sell a pile of books and consulting" part Juri writes about. Amusing and amazing, it works for so many "consultants". I was there.

Did you know that the title of the famous "goto considered harmful" article was made up by the editor of a journal? Dijkstra submitted it with another title (mentioned in one of his EWDs, but I can not search those now), and everything was in a rush to finish the journal (or proceedings?) and the editor changed it to Letter to the Editor and then gave it a new title. That editor was Niklaus Wirth, of Pascal fame.

Also: Dijkstra was not a fan of OO, and did not like meaningful variables (in math:-).

More people are mentioning Dijkstra recently: Ken Arnold compares writings by Edsger Dijkstra with writings by Alan Turing with Strunk & White in his hand. Let us not forget that Dijkstra was not a native english speaker, but dutch, like me, and I can tell you that it is really hard sometimes to express yourself well in another language. Still, Ken Arnold has a(nother) writing by Dijkstra on his "topnotch" list. I think that is truly amazing for a dutchman, even if you live for a very long time in the USA.

nuncanada:         Interesting idea "Mathematics is just manipulation of strings". According to the rules of math, that is. A modern version today would maybe be "just manipulation of XML"? You'd need a MATH.DTD for that. That should be feasible. And since mathematics is often unreadable (it is not meant to be), the fact that XML is unreadable is not an extra problem in this case. And then XSLT as a math tool :-) Or am I just suffering from too much imagination again.

But I do not understand precisely what you say next. Why was formalism abandoned after what Kurt Goedel said in 1931? Because they had something better to do now, further research in this new direction, or because it was not interesting anymore (because of what Goedel said)?


Proving code

Is anybody doing something with Proof Carrying Code? Or having experience with it? Where the Code part preferably is in a modern programming language, I would like Python. I have seen some stuff with lisp, Haskell and Prolog, which seem natural choices for something like that, but these languages have too much other problems for me (no GUI modules or can't use it on my Windows laptop or no XML modules or younameit).

15 May 2003 (updated 15 May 2003 at 16:07 UTC) »

With "Calculemus" Dijkstra ended his look at the next 50 years in Computing Science, from 1995 if I am right. I like his writings, and this one too. This one tells us about seeking simplicity amid the chaos and complexity, and about Letting Symbols Do the Work.

He also mentioned programming is as hard or as easy as proving, and that the tasks of programming a procedure and proving a theorem are isomorphic, the same thing.

This makes me think again about formal semantics for programming languages. Would it not be nice when you have written a function and your function is also a proof of its functionality? Dijkstra used the word procedure instead of function because of his Pascal-like background. Today, everybody I know talks about functions instead of procedures. But that typically does not matter: "when building sand castles on the beach, we can ignore the waves but should watch the tide".

Will we learn How to Let the Symbols do Their Work?

14 May 2003 (updated 14 May 2003 at 16:44 UTC) »

  • BlogShares
    I can not put an image button here on Advogato, but what I did yesterday in this diary is enough: I have been able to "Claim" this blog on BlogShares. Now I am studying how to make the most $ with it.

    cbbrowne: You did not put your Advogato blog there?

    Some URLs I visit on a nearly daily basis. Some are registered with BlogShares:

    • Lamda the ultimate Can not buy shares yet for this one; STATUS: Just Added. Not yet indexed. Not available to trade.

    • Effbot Online Bought 1000 shares ($270)

    • Ongoing Bought 50 shares (about $150)

    and some are not:

    Now I have $50 cash left on BlogShares. Fun!

13 May 2003 (updated 14 May 2003 at 08:48 UTC) »

  • A website for popular science
    BBC Science is a very entertaining website, looks good, nice content. Usually the content does not go very deep, but it is still fun because it can point you in the direction of new things you find interesting.

  • The art of blogging
    I find blogging difficult! I mean it is difficult and takes discipline to produce something nearly every day, and that is necessary if you want to call it blogging to my opinion. Otherwise you are just posting a collection of articles on the internet. Nothing wrong with that, but that feels different to me than a blog.
    A fun aspect of writing a blog is that it gives you the idea your ideas are being kept somewhere. It does not matter that nobody reads your blog. Also you have to like writing and you have to like seeing your writings on the internet, and I do. And I want to learn how to improve such writing, but the only way I see how I can do that is by just doing it, and reading other people's blogs. Reading other blogs is also fun, it makes you feel you get to know this person, and the anticipation is fun: How are they doing? I bet they will write about <your worldwide event here>, what do they think about it?

  • Fun on BlogShares

    I found the BlogShares game via cbbrowne here on Advogato. I have to put an image button

    <img src="http://www.blogshares.com/images/blogshares.jpg" alt="Listed on BlogShares" width="117" height="23"/>

    on my blog, this makes me the CEO of this blog. Looks like I can not put an image button here but maybe the BlogShares bot will still see this?? If you read this, and you know how I can put this "image button" on http://www.advogato.org/person/wspace/, please let me know!

  • Formal methods for OO languages?
    First a question: Why would formal semantics for a programming language be useful? The answer (?): I want to be able to proof properties of a program written in that language. To proof things, I want to use mathematics, logic.
    Ideally these properties are stated in the same programming language the program is written in. Is this a good approach? Is the set of programs that can be written *and* "proved" in this way large enough to be useful in the real world?
    And there is the other way around: Given a set of desired properties I would like a program that leads from another set of properties to these desired properties. Would it be possible to automatically generate that program in a modern language like Python?
    What kind of properties? Well, anything you can express in that language!

I am still looking for big real-life examples, applications, whatever, using RDF.

Amazes me that RSS started as RDF but now looks completely different. I would like to see a description of the history of RSS, why things happened as they did.

I read that somebody predicted a 100 years ago that there would be music for the masses, with people listening using one earphone each. Although it was a nice prediction, neither wireless nor loudspeakers occured to him. So much for us trying to predict things. (from a thread on comp.lang.forth).

Dum me, I just found the http://www.advogato.org/diary/ link that everybody uses to add diary entries. Oh well, hacking my own xmlrpc thingie was fun.

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