Older blog entries for slaught (starting at number 7)

Meat Space has kept me away from coding. There is a problem yet to be solved. Wonder if I can solve it with code?

Trying to evaluate literate programming tools. The @ escape sequences just doesn't feel right. Not sure why. The question is what should the main work file be? Should it be a documentation file? Should it be a source code file? Should it just be something different? The traditional LP tools make the work file a documentation file. Some of the piss-poor recent additions make it the source file. I suppose I shouldn't complain since people are documenting better thanks to the javadoc,doc++,et al. No I think I will complain. ocaml has a web tool. It uses comments like the latter. But it doesn't have the same forced order as Java or C++. So it say why have a separate file when the main reason for LP is solved by the language? Except its not solved. Enter .ml and .mli files. I guess they missed just the one day of class. But they do raise the important question should the work file just be source code so tools can better understand it?

Which reminds of #line from C. If C has a plus side #line would be it. Apparently ocaml has #line capabilities but I missed it.

So what is important in LP? In no particular order.

  • flexible order of elaboration
  • automatic support for browsing. Indexing. Cross-Reference
  • typeset documentation, especially diagrams and mathematics
  • Pretty printing code.

A tool might be made from ctags, a2ps, vim/emacs syntax highlight, LXR and compiler generated cross refs(eg NetRexx).

While rummaging for LP stuff found some UI language stuff...maybe. Toward a Calculus of Signatures. I'll have to finish reading it to see if it really relates.

Deadly Sins. While based on compiler writing they apply to all programs. Learn it, Live it, Love it.

Wow! I just thought of a good p2p application. Poker! Card Games. File sharing is weak. But Games. Now there is a fun app. No more central server bullshit. Any of the games would work. Warcraft. Civ. I'm slow on the whole p2p thing. Mainly cause I´m not into music or movies.

Lets steal more ideas.

Hypertext indexing for literate programs
Even simple hypertext browsers like Netscape or Internet Explorer can make a literate program dramatically easier to understand. Unfortunately, all existing literate-programming tools assume they are indexing and cross-referencing a single document. This project is to develop inter-document cross-reference tools

Accurate cross-reference for literate programs
The Noweb literate-programming tool currently uses an approximate algorithm to compute cross-reference information. The project is to figure out how the Noweb framework can be changed to provide for completely accurate cross-reference information, and to develop one or more accurate cross-reference tools. There are many front ends that might be adapted for cross reference, supporting languages like Java (Sun javacc), C (lcc front end), C++ (Edison Design Group front end), Standard ML (Moscow ML front end or ML Kit), and Modula-3 (Compaq SRC front end).

Pretty printer generation
Pretty printing technology is well developed, but it is not well realized in flexible software. This project is to adapt existing pretty printing technology so it can work with any programming language and in a variety of contexts, including standalone ASCII pretty printer, literate-programming tool, and PostScript or FrameMaker. As a bonus, one might consider extending TeX with support for pretty printing.

Just weave together lxr, noweb, a2ps and latex? to solve those problems. I can't think of where to get the cross-reference code. But I don't fully understand the problem.

Need to reorganize this into something coherent.

28 Jul 2002 (updated 30 Jul 2002 at 04:39 UTC) »

journal/diary clients

I got to thinking about my two "diary" clients. One for lj and one for here. The code base is almost identical due to the features I want. I wondered more out loud about what I really want out of these projects. I was thinking about a writing notebook tool. A tool to keep all my journal entries, articles, comments, replies and other correspondence in one place. I complex tool with all the different protocols and web sites but the idea is the same. There is either a new entry or a reply to an existing entry. Then there is some option meta data about the entry. For example, subject. This of course makes me think about a email client. Then I am back at lifestreams. hmm. The idea was cool. Always best to steal great ideas then come up with half-ass ideas of your own. So there is something here. Not sure what it is. Does XML-RPC have a discovery feature? My system won't be based around time ordering. Thus I side step lifestreams? Need to check on patents.


What is the best way for me to use this site? I got an account here because async's diary got mentioned for his questions on how to do research. I thought if I got an account I might be able to talk to him. I find his question very interesting. I looked into the same think about six-eight months ago. I hope he has better luck than me.

But I wasted about a month trying to reimplement the wheel in scheme. My first try at a advogato client was in scheme. The XML-RPC client library is very nice. Its user interface borders on perfection. Alas I am lacking in skill to debug the scheme code. So after wasting a month of time I sat down and reworked existing code. Should have done that earlier. What was I thinking? It was an excuse to play with scheme. But I actually wanted the tool to do work. Dilemma. Need to develop a testing mechanism for the clients. The current system works somewhat but is lacking. I need a way to reliably run error conditions. iBus had a wonderful tool for this. I think it was iBus? Its not free software so am I allowed to mention it?

So back to the question. What I am going to do here? I write alot of technical design and critiques. Does this have a place here? I don't want to bore people or be outside of the mission statement. I'm also weary of the critiques starting flame wars with the unwashed masses. Being a developer site I think this might be minimized but you can never tell. Also there is the attitude of put up or shutup but that goes to the roots of criticism. Do technical designs belong? Most of my technical writings are future design ideas for future projects or modifications of existing products. I think these fit with the mission statement. While not software they are part of the principle of shared knowledge and ideas.

Meta questions

Where is the FAQ?
How do you change your password for this site?

kbreit: lj does have XML-RPC interface. It doesn't have a direct link from the home page. I think someday someone will, finally, get irritated and fix that but doubtful. But the post interface is easier than the XML-RPC. Advogato's interface is nice and simple. But lj does have more features.
lj's XML-RPC protocol docs

Well it works now. I broke down and wrote it in perl. I retrofitted the lj client. The basic functionality is what I wanted so I just ripped out the lj specific stuff and stuck in XML-RPC with advogato info. Lj has an XML-RPC interface. I am sure I can do something to remove the dependencies. Unfortunately XMLRPC::Lite has a poor error handling interface. When an error occurs its hard to tell what it is, much less recover.

The upside to the reuse is I get my editor, spell checking, postponing and offline all for free. Free meaning 6 hours.


I've been trying to get my client code to work. The previous entries were tests. It worked except the xmlrpc library returned an error to my client. Since scheme is new to me I'm having difficult debuging it. The XML-RPC scheme interface is too cool. I refuse to use the perl library. The ocaml might be interesting. Does modula-3 have one? have to look it up later.

Why can't you delete entries?

18 Jul 2002 (updated 26 Jul 2002 at 04:37 UTC) »
18 Jul 2002 (updated 26 Jul 2002 at 04:29 UTC) »

This is my first entry. Testing the client code. Does it handle & ampersands ok?

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!