A few weeks ago I picked up the books A Discipline in Programming and Structured Programming. The first is by E. W. Dijkstra and the second includes a large section written by him. I became interested in these books after reading a few of Dijkstra's other papers and about Donald Knuth's great works. The computer science field could stand to have a bit more formalism in it and less hand-waving about "real-world" tools and methodologies.

Here are some quotes that I found especially good.

Yesterday I was looking at a listing of updates for free software projects. I commented that the package moe could be used as a replacement for nano or zile, that is, when you need to quickly edit files from the command-line.

So today I'm giving it a go. I downloaded moe via the GNU project's FTP server and installed it. The compilation was insanely fast, I think it took less than 10 seconds to get it all built and installed.

Free Software Supporter is a newsletter run by the FSF (Free Software Foundation) and in it they have a section announcing a few software releases from the GNU project. However, they do not seem to provide any description of the projects aside from their name and version.

I was reading a bit about PLATO, a computer system for computer-aided instruction, and it is astonishingly old. It was around in the 70s, the 80s, etc. The language originally used for creating lessons and tutorials was called TUTOR. I've been extremely curious about the language since I first read about it on the weekend and I'm glad to say that I've found the manual.

It can be found here.

Here is a mirror hosted on this web server just in case.

I bet there are a few gems in this manual. History is awesome ;-)
There is a proposal to allow the inclusion of Java applets into Wikipedia to increase interactivity. What this says to me is that the Web is not enough and that it is mainly a document system. Instead, the Wikipedians should build a proper desktop application for viewing Wikipedia articles and then separate it from the Web and HTML. This would allow them to display the information in a variety of forms and fix the flaws of the Web.

The first thing I would add is a way of linking to specific paragraphs or sentences. The second thing I would add is a proper discussion board system and possibly add an IRC chat component. For the chat component, I would also make it easy to paste snippets of the conversations into the discussion board. This is useful because you may have discussed an article with someone and then made changes to it, but everyone else would be unaware of your discussion unless they checked the discussion board and the discussion may have provided a rationale for why you made the change.

Java applets and more interactivity would be a fine addition to Wikipedia, but this is solving the wrong problem.

Web Junk

| | Comments () | TrackBacks (0)

INS and DEL elements re-discovered and used for version control. HTML document's version history kept within itself.

HTML pages as containing structure and storing their contents in separate files. Easier for everyone to deal with and splits up your page into logical pieces.

Update: I found a copy of the essay here but it appears to be a reprint with a different title, “Time To Liberate The Web”. Same content though, so it doesn't matter.

I found an essay by Ted Nelson titled “Way Out Of The Box”, and it's about limitations imposed by technical-minded people on everyone else. It's about the assumptions made when programs and computers are designed.

Here is a particularly good passage that tells us what we sacrifice when we force users to become distinct from programmers,

Suppose they gave you MTV, and in return took away your right to vote? Would you care? Some of us would. That's how I think of today's computer world, beginning with the Macintosh. The Macintosh gave us Fonts, pretty fonts to play with, and graphic arts tools that previously were out of reach, except in the most high-budget realms of advertising and coffeetable book production. Those fonts and graphic arts tools were a great gift.

But nobody seems to have noticed what the Macintosh took away.

It took away THE RIGHT TO PROGRAM.

If you bought an Apple II, you could begin programming it right out of the box. I have friends who bought the Apple II without knowing what programming was, and became professional programmers almost overnight. The system was clean and simple and allowed you to do graphics.

But the Macintosh (and now the Windows PC) are another story. And the story is simple: PROGRAMMING IS ONLY FOR OFFICIAL REGISTERED “DEVELOPERS”.

(Emphasis mine)

So I was studying my marketing textbook and I realized that Free Software has an awful reputation because of bad marketing. The software is, for the most part, technically sound, however the image of it is awful. This then reminded me of EventCal, the Python HTML calendar generator that I wrote a few years ago. I still get emails about it once in a while, even though I'm not actively maintaining.

So instead of studying, I created a quick checklist on what a Free Software website should have in order to be considered helpful by users. I won't post that list here just yet, because I want to write up a few other checklists and notes on marketing.

I've become interested in infographics, those fancy diagrams and charts and illustrations/visualizations of data that make them stick in your mind more easily. Why settle for an ugly chart when you can just adjust the fonts and colours a bit and get something sweeter looking.

I hve been re-arranging my TODO lists using Emacs's Org-Mode and when I realized that it could calculate the exact hours taken for a bunch of tasks, I felt I should explore the rest of the Org-Mode manual and see what else I had been missing out on.

Org-Mode allows you to use relative timers which, it says, are useful for recording notes during a meeting or video viewing. I did not understand exactly how to use the relative timers, but it looks like they are like timestamps. Here's a brief run-down and example on how to use them.