April 10, 2007

Moving Time

The hardware that this blog has been on since the start is getting a bit flakey and generally past its prime. It was suffering to such an extent that the blog has been down for the past couple of weeks.    (Q6Z)

I've been saying for a few years that it is time to move the burningchrome.com domain. Now that the hardware is actually failing, I reckon that it is finally time.    (Q70)

I'll probably move things by the end of this month. I'll keep the domain, but probably kill some content. Let me know if there's something here that ought not die.    (Q71)

I don't reckon I want to bother with Movable Type any more. Any recommendations. I'd like something I can hack wiki and purple number integration into with relative ease. I don't want to edit in HTML. Learning something cool would be nice. Any suggestions?    (Q72)

I've started a little framework called belay, based on Joe Gregorio's droppings (despite his advice). Maybe I'll write my own. Just what the world needs, yet another blog engine thing.    (Q73)

Posted by cdent at 05:18 AM | Trackback This | Comments (0) | TrackBack (0) | Technorati cosmos | bl

January 11, 2007

Obligatory iphone post

Iphone is obviously very cool, but I can't help but be a bit disappointed. I wanted to see Apple make a vote for simplicity. I want to see a small phone that is very good at making phone calls.    (Q6A)

While complaining about this with Eric he reminded me of the evolution of the ipod: They went in two directions. They became more featured (pictures, video) in some models but they also became smaller and simpler in some other models (mini, shuffle, nano, shuffle gen 2).    (Q6B)

I can't wait for the shuffle version of the iphone. The barest essentials in the smallest form packaged in that Apple spit and polish.    (Q6C)

Posted by cdent at 04:58 AM | Trackback This | Comments (3) | TrackBack (0) | Technorati cosmos | bl

January 04, 2006

google-based pc

Slashdot is rumor-mongering about a google pc. I can't be bothered to take the time off my busy schedule to actually research what I'm about to speculate about, but here goes:    (PX6)

If I were going to build a cheap google pc, I'd position it for high speed networked folk only, give it a minimal os with very little on disk except for a local cache of various networked stuff. Applications are already out there or in progress (Gmail, reader, etc). The clincher is that data and settings go in google base. Why not? The network finally is the computer. They've got an identity system already.    (PX7)

I figure my atom store will be in google-base soon. And if my busy schedule allowed, my purple numbered nodes or rubeads would be easy to do. oids looks a lot like nids.    (PX8)

Posted by cdent at 01:45 AM | Trackback This | Comments (0) | TrackBack (0) | Technorati cosmos | bl

June 25, 2005

YAPC::NA 2005

I'll be at YAPC::NA in Toronto next week. I've not been to a YAPC before, but I hear they're fun.    (PQ3)

I'll post notes if/as they happen.    (PQ4)

Posted by cdent at 01:09 AM | Trackback This | Comments (0) | TrackBack (0) | Technorati cosmos | bl

May 28, 2005

More Fiddling

Some more progress on my Fiddling. In my efforts to explore, I've completely lost touch with make it work in all browsers. Reports of weirdness appreciated. As I don't have comment submission working yet (see below), try email.    (PNS)

It is now possible to read comments. With javascript on, a comment reading widget shows up midscreen that lets you flip through a sequence of comments. Try my Blaise bashing entry for a sample. Click on "Read Comments". This one works in Safari (I have 2.0) and Firefox. The comments pushed into a hidden div on the page with the MovableType template system. When the page loads, they are found, pushed onto an array, and made available for later onclick action.    (PNT)

There's nothing in place yet for submitting a comment. My plan is a sort of one time comment pad. The form will be generated as needed from the server with fields with meaningless dynamic names. The form will submit to a CGI that has a different name with every go. The CGI will self destruct after submission. Links to retrieve the form will be generated via javascript. etc. etc. Or some subset of that depending on urges. Maybe the good Dr. Surly has some thoughts.    (PNU)

The 'Contextualize' link is now active. In most situations it will produce a div explaining why it is not working for you. If you click it now before you make any of the changes it suggests (or implies) you'll get the drift. If you are using a Mozilla-based browser and you have made the codebase principals changes, clicking the link will cause the URL of the current page to be looked up (via Sarissa) at technorati via their API. The results are returned as RSS then transformed to HTML in the browser using an XSL file located on my server. The output is simple enough that the XSL can handle the three styles of RSS generally floating around.    (PNV)

The Safari developers promise there will be support for XSLTProcesssor real soon now®. I don't yet know about cross domain document retrieval. A bit of a stopper, but if we really want a flexible ajax world, it's a problem that's going to need an easy solution.    (PNW)

Does any of this work in IE?    (PNX)

View source leads to all the javascript and from there to the XSL as well.    (PNY)

Posted by cdent at 09:36 AM | Trackback This | Comments (4) | TrackBack (0) | Technorati cosmos | bl

May 23, 2005

Fiddling

I've decided to give the blog a face lift as preparation for experimenting with some interface changes. I had to get things looking interesting enough to make it worth playing. For now the changes only show up on the front page.    (PMM)

Syndication is killing the showy blog, so this may all be pointless, but I need somewhere to experiment.    (PMN)

Basic ideas are:    (PMO)

  • only have one entry on the front page    (PMP)
  • comments will initially be hidden from view, with a click to show them and to add one, eventually with something ajax, so as to be fully buzzword compliant    (PMQ)
  • the word contextualize will provide information about trackbacks, technorati cosmos, and other methods for finding other things related to this thing, also ajax    (PMR)
  • rather than a blogroll, a sorted list of who I've read recently, based on data farmed out of Netnewswire somehow    (PMS)

Seems to work fine in Firefox and Safari. If it blows up or looks ugly for you, please let me know.    (PMT)

Posted by cdent at 03:31 AM | Trackback This | Comments (0) | TrackBack (0) | Technorati cosmos | bl

May 03, 2005

Apple Amplifier

Meet Automator by Matt Neuburg at TidBITS opens with:    (PK4)

The history of the Mac is paved with Apple's attempts to enable ordinary users to tap the programmable power of their own computers.    (PK5)

They've done this by giving users more granular access to the operations of the tools and applications on the system. Applescript and Automator let people manipulate and assemble simple data and actions in ways that create complex systems.    (PK6)

It's like lego. If you have lots of little pieces of lego you can build all kinds of fancy things that are less limited than what you can build with the bigger blocks of Duplo.    (PK7)

This is the argument that's often been used to explain the superiority of Un*x over Windows; the lack of flexibility and real assistance provided by wizards and Clippy; the value of nanotechnology; and, near and dear, the importance of purple numbers and similar systems.    (PK8)

Apple's use of this model may explain why I've never felt particularly insulted by the company. Granting people usable handles to actions and information is a generous and trusting gesture that hopes and assumes the receiving end is a creative and intelligent person that wants to use their tools in a less dumb fashion. There's extra power here if you want it. Headroom.    (PK9)

Posted by cdent at 01:27 AM | Trackback This | Comments (0) | TrackBack (1) | Technorati cosmos | bl

February 28, 2005

Kwiki::Purple on CPAN

I've finally put Kwiki::Purple on CPAN, along with a few other new or refreshed Kwiki Plugins.    (PF0)

Kwiki-Purple is not yet done, but is far enough along where other people could play with it. If you want to give it a go have a look at    (PF1)

  http://www.burningchrome.com/pwiki/index.cgi?KwikiPurpleInstall    (PF2)

To help with Kwiki-Purple development, I put together a Kwiki-Test module. Traditionally Kwiki Plugins are rather lacking in tests, I hope Kwiki-Test helps change that. tdd++    (PF3)

My stuff at CPAN    (PF4)

Posted by cdent at 08:25 AM | Trackback This | Technorati cosmos | bl

February 25, 2005

Make Me This

Does this exist? Seems like it ought, or at least somebody is thinking about it or working on it.    (PEQ)

I've replaced my laptop, as it was stolen, with a 12" powerbook and a 20" screen. I decided to sacrifice a little speed for more screen and portability. So far it seems like a fair trade. It has, though, exposed a bit a of a hole in the mac market that I think my good friends at apple have the guns to fill.    (PER)

Somewhere in the middlin' days of laptops/notebooks/portables, docks and port replicators were a popular thing. I had one for a while that would sit down on top of a cd drive and some cables. That's all well and good but these days doesn't amount to much. My external hard drive plugs in my screen today.    (PES)

What I want is a dock that actually does something for me. When I drop my powerbook into it, the dock should automatically wake up and some bios like functionality should notify the powerbook to begin a raid rebuild/synch with the dock's one or more drives. At the same time the kernel should be made aware of the additional one to many cpus and gpus contained in the dock.    (PET)

That would be okay, I reckon.    (PEU)

Posted by cdent at 04:38 AM | Trackback This | Technorati cosmos | bl

January 14, 2005

Kwiki-FetchRSS

Another Kwiki plugin released to CPAN. This time based on work by Alex Goller.    (PDL)

Kwiki-FetchRSS? provides a handy way to include an RSS feed within a Kwiki page, with just headlines, or description text as well.    (PDM)

It's on the demo wiki too, which now has a fancy new theme.    (PDN)

Posted by cdent at 08:25 PM | Trackback This | Technorati cosmos | bl

January 11, 2005

Kwiki-Soap

I've just uploaded Kwiki-Soap and Kwiki-Soap-Google to CPAN. They provide an easy and extensible way of accessing SOAP services via a WAFL phrase in Kwiki.    (PDI)

I've put up a demo wiki that includes links to the code.    (PDJ)

PurpleNumbers & Kwiki is coming someday.    (PDK)

Posted by cdent at 05:55 PM | Trackback This | Technorati cosmos | bl

October 31, 2004

Powerbook Wrist Rests

Doing this as a trackback rather than comment as I don't feel like messing with Typekey, required to comment at heyblog, where Andrew asks:    (OS7)

I love my G4 Powerbook, but the edge below the keyboard where I rest my wrists is sharp. If my elbows are below the plane of my hands it gets uncomfortable. Has anyone seen a good solution for this?    (OS8)

I had this problem too. Started with a taller and worse Dell, but is present in the powerbook too. I solved it by taking one of the long (~ 18 inches) flat foam wristpads for desktop keyboards, cutting it in half, cutting 3 inch pieces off either end, and gluing the 3 inch pieces underneath the two six inch pieces to create two things that look vaguely like this when view from the side:    (OS9)

  ------      ------
  ---            ---    (OSA)

These then slot over the lip of the powerbook where your wrists go.    (OSB)

It's ugly and a bit of pain to carry around, but works well.    (OSC)

Posted by cdent at 08:59 AM | Trackback This | Technorati cosmos | bl

October 25, 2004

Comments

I'm tried of dealing with comments spam, despite the useful mt-blacklist. The combination of MT with PurpleWiki's TransClusion makes rebuilding the blog painful, I'm too busy to worry about upgrading to MT 3.whatever, etc etc.    (OR9)

So I've closed comments on entries that are over two weeks old and plan to make a habit of it (easy to do by tweaking the mysql database directly).    (ORA)

If you'd like to comment on something older, please just mail me. There's info for that on every page.    (ORB)

Meanwhile I have half of a PurpleKwiki? working.    (ORC)

Update: More than half working now.    (ORI)

Posted by cdent at 05:10 AM | Trackback This | Technorati cosmos | bl

October 15, 2004

Gmail Invites

I finally checked my gmail account today for the first time in months and I have six invitations to give away. If you would like one, let me know.    (ON2)

I don't use my account. I think they've done a wonderful job, but me like me pine from me powerbook.    (ON3)

(This is also an experiment to see how long people will continue asking for them after they are already gone. Something of a trend, I'm told.)    (ON4)

Posted by cdent at 06:11 PM | Trackback This | Technorati cosmos | bl

August 11, 2004

Figures

Water
You are water. You're not really organic; you're
neither acidic nor basic, yet you're an acid
and a base at the same time. You're strong
willed and opinionated, but relaxed and ready
to flow. So while you often seem worthless,
without you, everything would just not work.
People should definitely drink more of you
every day.

Via Bill de hÓra (enzyme) and Danny Ayers (glucose).

I don't know whether to feel good or bad about this. Which sounds right on.

This quiz has an ineffable quality that appeals beyond the usual quizilla dreck. What is it?

(I note that it's a huge pain in the ass writing a blog entry in HTML rather than wiki text.)

Posted by cdent at 08:36 PM | Trackback This | Technorati cosmos | bl

July 14, 2004

Terminal Grumpiness

MacMinute reports on Original Mac team members look at the 'Mac at 20'. Andy Hertzfeld, Jef Raskin, Bill Atkinson and Jerry Manock get together with David Pogue to look back on "20 Years of Innovation". A worthwhile pursuit in general methinks.    (9UV)

Within, though, I find:    (9UW)

Raskin said that Jobs didn't really understand interface design –- and still doesn't. He added that, as he has before, that the Mac OS has gone from "insanely great" to "insanely gross." Raskin said that Mac users are too often having to use the terminal to solve problems. PS    (9UX)

This made me bristle, as I feel differently: Mac OS started out neat but fundamentally encumbered with inefficiencies, hit its height about System 6, took a nose dive with 7 and came in for a three point landing on my desktop with 10.3. What made it right? The availability of the terminal. And if I could get off my butt and do more with it the way AppleScript? is deeply embedded in so much would make it even better.    (9UY)

I find Raskin's comments especially odd because they seem at odd with his goals for THE:    (9UZ)

THE is designed to provide a "better and truly pleasant way for us to interact with a wide range of technology; from computers and PDAs to cell phones and other information appliances," Raskin explains in an online column. "THE is a nucleus to which commands are added. The commands are what you use to do tasks from checking email to rendering video frames. Superficially, this sounds like an operating system to which applications are added, but it is fundamentally different, especially from a human-centered point of view. By adding individual commands rather than whole applications, which sometimes have hundreds or thousands of commands, you can install only what you need and understand." PS    (9V0)

(Having a task rather than application orientation is so totally the way to go.)    (9V1)

Whether justified or not, his complaints about Mac OS sound like the ravings of a grumpy old man.    (9V2)

Posted by cdent at 04:10 AM | Trackback This | Technorati cosmos | bl

June 30, 2004

Metaphors as constraint

danah boyd says blogging is trapped in a metaphor. That made me think the following.    (97E)

I've started thinking of metaphors as limiting rather than freeing structures in the use, design and development of new technologies.    (97F)

They can provide useful points of entry for understanding, but unless shrugged off after the initial entry they can be constraining because consciously and subconsciously we try to match our behaviors with the metaphor.    (97G)

This causes constraints which are present in the "real world" from which the metaphor was taken to be represented in the "artifact world" even when there's no particular limit in place causing the constraint.    (97H)

In some situations, etiquette for example, that's a good thing, but in other cases it's not: for example having "stuff" (including people) in multiple locations breaks many metaphors but there's nothing preventing it and it is certainly advantageous.    (97I)

Posted by cdent at 10:47 PM | Trackback This | Technorati cosmos | bl

June 24, 2004

Any Port in a Storm

For a long time this blog, the wiki, and miscellaneous, other files have been accessible through a lovely bit of complication:    (936)

  • Incoming HTTP requests came in on port 8000 to an old rickety Linux box that was due to be removed ages ago and was so rusty and weird that I dare not touch it. As in ip forwarding was not an option and changing the apache config seemed more than I could bear. And doing special magic for a variety of special friends.    (937)
  • In inetd, netcat proxied port 8000 at that old machine to port 80 on a newer machine. That machine was configured so that any URLs it generated appeared to be for port 8000 on the other machine.    (938)

It was one of those I'll get to that any day now situations that started more than a year and a half ago.    (939)

Last night was finally that day. The newer machine is now out on the boundary, listening on both ports 80 and 8000. If you prefer your urls 5 characters shorter feel free to remove the :8000, things will still work.    (93A)

Things will probably be a bit faster, and now there will actually be useful information in the logs.    (93B)

Posted by cdent at 02:38 PM | Trackback This | Technorati cosmos | bl

May 29, 2004

Atom IDs, permalinks and persistence

It's nice to see MarkPilgrim being relatively clear about the value of persistent and unique ID's in his How to make a good ID in Atom essay.    (7O4)

What's odd, though, is that all of the reasons he cites for why an Atom ID needs to be persistent apply equally well to permalinks, yet he describes many situations where permalinks have failed to be permanent. Further, he goes on to use the data in those permalinks as sources for Atom IDs.    (7O5)

This makes no sense to me.    (7O6)

If you want an identifier to be unique, your safest bet is to use as little meaningful information as possible. This is why primary keys in databases are often auto-incrementing integers.    (7O7)

And if you want something to be a permanent pointer, like a permalink, that means it is a persistent identifier, even though it is considered in the domain of labels. This means, as much as possible, you should strive to make your permalinks behave as identifiers.    (7O8)

In fact identifiers and permanent pointers are essentially the same thing. An identifier is not a resource, it is a pointer to it. It just so happens to be the only reliable pointer to it.    (7O9)

EugeneEricKim and I had a conversation about identifiers on IRC recently in which he, surprisingly, managed to convince me that XRI may be a good source of identifiers for content on the web.    (7OG)

My interest is in using them as PurpleNumbers but they seem to be able to address some of the issues with Atom IDs and permalinks as well. The important trick is that XRI supports both e-names and e-numbers. If I understand things correctly, an e-name is one of several labels for an e-number. An e-name can be resolved to an e-number and then an e-number can be resolved to a possibly moving resource.    (7OH)

I suspect the primary issue with using XRI is implementation. There's no, as far as I can tell, immediate path to making use of the stuff.    (7OI)

To be complete, I was led to Mark's essay from TimBray?'s ongoing entry on identifiers. I mostly agree with Tim given the current constraints of the web. But those constraints are huge.    (7OJ)

The problem is that, as currently used, permalinks are labels that are vulnerable to change. This is because they contain interpretable meaningful information that is dependent on the present day situation. Tim believes his permalinks are permament but what happens when he looses his domain name or (perish the thought) HTTP ceases to exist?    (7OK)

If we claim the permalink is only the file part of the URL, it is insufficiently unique to be considered stable and persistent.    (7OL)

Also, Mark and Tim, what's with the lack of TrackBack or comments? I guess I'll ping them by other means.    (7OM)

Update: Bill de Hora has joined the fray with his usual sensible statements about the way the world is versus how we might like it to be. "The deployed Web works against cool URIs not for them."    (7OP)

Yet another update: DannyAyers joins in, pointing to both Mark and Tim and saying: "Mark’s advice is very well put, but I’d suggest at least that if advice like the following is needed then something in the state of Denmark is edging towards it’s sell-by date[...]"    (826)

Posted by cdent at 05:49 PM | Trackback This | Technorati cosmos | bl

May 14, 2004

World Wide Web 2004

I will be at the 13th International World Wide Web Conference in New York next week.    (4R7)

I hope to blog the interesting bits.    (4R8)

If you're going to be there, let me know.    (4R9)

Posted by cdent at 09:05 PM | Trackback This | Technorati cosmos | bl

April 06, 2004

Adaptive Knowledge Base Development

At the day job we are finally beginning to make plans for developing the next iteration of IndianaUniversity's KnowledgeBase. To gather my thoughts I wrote a little document that brings together some of the thoughts about situated software and software development that have been bouncing around over the last several days.    (3UZ)

Here's the beginning:    (3V0)

This comes at an interesting time in systems development: an awareness of the desirability of unintended uses of systems and reuse of code is growing alongside a growing understanding of the importance of systems that are well suited to the many dimensions of the environment in which they are situated.  T    (3V1)

and the end:    (3V2)

A small pieces Knowledge Base will not and cannot foresee all eventualities but it can be more prepared for them by being adaptable. That adaptability can be achieved by breaking the monolithic service of the existing KB into smaller pieces that act independently but also interoperate. Additional small pieces of situated software acting as front ends to the KB system can meet the needs of emerging groups in an ad-hoc fashion.  T    (3V3)

Whole text.    (3V4)

Update: Thanks to Seb for catching my misattribution of the preface of ''Small Pieces Loosely Joined".    (41G)

Posted by cdent at 06:37 AM | Trackback This | Technorati cosmos | bl

February 17, 2004

Idioms in Development

The following is part of a document I wrote to evangelize the value of layered idiomatic software interfaces to people at work who might be able to encourage this sort of behavior in the future. This versions leaves out some of the specifics of the project (creating a lightweight interface to the Knowledge Base). Much of it is speculative extrapolation and interpolation that needs a tune up. I welcome your tuning comments,    (2UN)

Introduction    (2UO)

Complex systems development is a synthesis of technical understanding, tool and language use, creativity and serendipity. Improved development processes can be achieved by enhancing and amplifying these areas.    (2UP)

Little can be done, by definition, about serendipity. We can make room for it by not overcrowding development schedules, but beyond that luck is luck.    (2UQ)

Creativity results from a synergistic pairing between an individual or team and their environment. People know when they are in the groove: they understand the tasks at hand, they have good tools and they have the skills to do what can be done. Creativity is enhanced by the presence of usable tools which make themselves present-to-hand on initial inspection but quickly become ready-to-hand with use, turning the user into a fluent creator.    (2UR)

This document, in its subtext, describes how tools, when combined, are language; language that can be made more expressive through attention to grammar, idiom and reusability.    (2US)

The SOAP interface to the KnowledgeBase (KB) developed for the Sakai Educational Partners Program demonstrates a style of tool use that may be beneficial to future KB development. The interface:    (2UT)

  • Attempts to be decoupled from the rest of the system.    (2UU)
  • Layers code to expose only that which is necessary, granting an idiomatic interface to behavior.    (2UV)
  • Places control into the hands of the developer and the client system (whether it be local tool or remote client).    (2UW)
  • Provides data in a flexible, but straightforward, standards compliant fashion.    (2UX)

Coupling    (2UY)

When object oriented programming reached the general public it was touted as the solution to many programming ills. At the forefront was the belief that objects, especially their ability to be inheritied, would allow and encourage reuse.    (2UZ)

To a limited degree, especially in closed systems, this has proven to be quite true. However, over large systems, or throughout or between organizations, code reuse has proven a challenge because inheritance is a quite static and all or nothing function.    (2V0)

Inheritance and its partner, complex object hierarchies, sets up a system of tight couplings between objects in a system. Small changes in one area can often imply large changes throughout the system, either to method signatures or data structures.    (2V1)

Loose coupling is spoken of in two fashions: One is the management of strong contracts in code through the use the Interfaces. The other is through the use of separate services, especially web services, to provide an application. While the former is worthy of attention in the KB environment, understanding of such is left as exercise for the reader.    (2V2)

A service based architecture for application development modularizes the various functions of an application into discreet chunks. Each chunk has a set of responsibilities and a well defined public interface that it presents to the rest of the world. Information sent in response to method requests should be as complete as possible and require little to no return to the service for continued operation. This results in an encapsulated environment (much like a robust object model, but on an action rather than object scale) wherein the details of the operation of the service can change without impacting the interface. The boundary between the service and the client is solid, permeable only in controlled and known ways.    (2V3)

Traditional monolithic applications pass information within themselves, with little regard to boundaries between subsystems. If more information is required, a simple dive into the system is all that is required. While this is initially convenient, changes in the details of operation can have cascading effects throughout the system.    (2V4)

Layering    (2V5)

Walking hand in hand with coupling (coupled with coupling) is layering. Layering wraps an existing monolithic code base with interfaces to features that act as services. Code external to the wrapping layers can rely on the stability of the wrapper that hides complexity underneath. The layer itself deals with complexity, providing a simple facade.    (2V6)

Layers play a primary role in the creation of idiom (we use idiom here to mean short turns of phrase in a language which capture a large body of meaning: a shortcut of large expressiveness) because they can be used to create a unified method that aggregates what traditionally have been multiple methods. For example analysis may reveal that the following set of methods is a common thing to do in the KB (for the KB programmers in the audience this is not meant to be accurate):    (2V7)

   my $search = new Search();
   $search->doSearch($query);
   my $docids = getDocuments();
   $docids = cullDomains($docids);
   $docids = cullArchived($docids);
   $docids = cullVisibility($docids, $visibility);
   my @titles;
   foreach my $id (@$docids) {
        push(@titles, Document->new($id)->getTitle()->getTitle());
   }    (2V8)

An idiomatic method of doing the same could be to provide a layer containing a doSearch() method that works as follows:    (2V9)

   %docInfo  = KbIdiom?->doSearch($query);    (2VA)

Idioms in software code are valuable because they perform two, somewhat opposite functions:    (2VB)

  1. They allow one to express a great deal in a small amount of space by hiding complexity in a safe fashion. Safe because the inteface they use is well established. A developer using KbIdiom? can rely on the interface it presents regardless of changes elsewhere in the codebase because 1) KbIdiom? is a contract and 2) doSearch has a grammar which is simple and does not rely on the rest of codebase for its data typings: primitive or relatively primitive types are used. (Consider for example the issues that might occur if $query were a QueryObject? and the signature for constructing a QueryObject? changed.)    (2VC)
  2. Idioms in code also do not prevent access to complexity. A truly flexible language must allow the speaker to get down to the fundamental core of the language to be able to express all that they need. Idioms do not simply detour complexity: they contain it, which means that complexity can be studied, understood, and used, if (and only if) necessary. It is important to emphasize this container notion: Idioms do not replace complexity and the power and flexibility that complexity implies. Complex systems are required for solutions to complex problems. Idioms in code hide, and provide a marker for, complexity, where necessary or valuable.    (2VD)

The rest of the document goes into specifics on how the created tools help to achieve the desired decoupling and layering and the implications this has for implementing future services. I can provide some details on these things, upon requent.    (2VE)

Posted by cdent at 06:16 AM | Trackback This | Technorati cosmos | bl

February 13, 2004

Port 80 syndication

Apparently some folks are unable to reach syndication files (LiveJournal? folk, for example) on this server with their aggregators because of it all living on port 8000 and some tools (LiveJournal?, for example) not being willing to use "non-standard" ports. My good buddy Stan cooked up a nice little script that will proxy syndication requests through the soon to be doomed firewall box.    (2QF)

will retrieve my RSS 2.0 full feed. If some other format is desired, please let me know.    (2QH)

Posted by cdent at 02:35 PM | Trackback This | Technorati cosmos | bl

January 24, 2004

RSS Adjustment

Since I've added a comments feed I've decided to take the number of comments out of the titles of the entry based feeds: RSS 2.0 full feed, RSS 0.9? partial and RSS 1.0 partial.    (2IW)

I had put them in there because I like being able to track conversations and at the time didn't know how to do a comments feed. The unfortunate side effect of the numbers is that aggregators see the article anew with every comment.    (2IX)

If this messes someone up, let me know.    (2IY)

Posted by cdent at 03:06 AM | Trackback This | Technorati cosmos | bl

January 04, 2004

Comments Feed

I've added a comments RSS feed based on the information found at Reverend Jim's.    (2GC)

It would make me happy if everyone to whom I subscribed had one of these. It makes tracking conversations far easier and it's the conversation that this blogging stuff is all about, yeah? It may creep along slowly, but it is a dialogue of many parties, expanding what we know.    (2GD)

The URL for the feed is    (2GE)

  http://www.burningchrome.com:8000/~cdent/mt/comments.xml    (2GF)

and you can also find it down in the bottom of the sidebar with the other feeds.    (2GG)

Posted by cdent at 11:49 PM | Trackback This | Technorati cosmos | bl

January 03, 2004

Search Box

I've add a new search form field over in the search box on the right. The first box is the same as the old: it runs the traditional MovableType blog search. The other box points to the search function on the wiki uses the modular searching I just completed for PurpleWiki:    (2FO)

Pluggable search modules that uses a nice simple object model to all wiki searches to spread out from the wiki to other system. Thanks to David Fannin for the inspiration to do this. This part is woefully undocumented, ask me if you have trouble, several Config changes are needed. Modules can be made for anything that you can figure out a way to search from Perl. Modules are included for:  T    (2FP)

If you enter a search term there, it will search the wiki, the blog entries, MyArts, and get the first ten results from google.    (2FQ)

Update: I've also changed the configuration so that Nid numbers show up. This makes TransClusion easier.    (2FR)

Posted by cdent at 06:33 PM | Trackback This | Technorati cosmos | bl

December 05, 2003

Purple Hymn

PeterJones has composed a hymn for the church of purple    (20U)

  Church of Purple Hymn:    (20V)
  "Purple links all around my text,
  Lately things just don't seem so vexed,
  Acting happy and I now know why,
  'Scuse me, while I transclude the sky." # 
      by Jimmy Hotlinx. #    (20W)

This is perfect.    (20X)

Unfortunately like so many things in the PurpleNumbers universe, if you get it already this gives you a comfortable feeling of understanding. If you don't already get it, I bet this just makes you go "huh?".    (20Y)

How to fix that?    (20Z)

Posted by cdent at 11:12 PM | Trackback This | Technorati cosmos | bl

August 24, 2003

The Email is Falling!

Adam Curry, in Email is Dead, Long Live Email!, declares email broken:    (JT)

Let's face it, email has become unuseable, the latest worm to strike is likely only the tip of the iceberg we're about to collide with. I've never liked the metaphore of an 'inbox', certainly not one that fills up and can't accurately be filtered.    (JU)

At this point I'm willing to try anything that will keep my personal communication channels functioning with the least amount of hassle and zero static.    (JV)

Oh, I bent my wookie. Please.    (JW)

Adam then goes on to suggest private RSS subscriptions for communication between individuals.    (JX)

Some of us rode through that worm "strike" with nary a concern (if we can answer the why of that, then we will have the real answer to the problem). Spam and other unwanted email is certainly a problem, but hardly a reason to jump out of the plane in search of yet another way to bastardize a protocol (RSS) already trying to do too much.    (JY)

Once we get everyone lined up in our little subscriptions, let's then invite them over to our gated communities where they will have to provide a secret key to get in the gate at the front of the neighborhood. Oh sure, you can get the filtered-for-decency and market acceptance public newsfeed outside the gates but don't try coming inside for a real conversation and cup of tea unless you've been granted an audience and proper introductions. "Mr. Curry, there's a Mr. Dent to see you." "Never heard of him, tell him to check the news."    (JZ)

No thanks (I found the Curry posting via TeledyN).    (K0)

Posted by cdent at 06:49 PM | Trackback This | Technorati cosmos | bl

August 22, 2003

PurpleBlog

I'm going to try a little experiment.    (JK)

Now that PurpleWiki has reached some degree of stability, it makes sense to create a demonstration site for the PurplePlugin that allows people to experiment with what I've been enjoying for a few months.    (JL)

So...I've created a MovableType / PurpleWiki combo that can be used by other people in two ways:    (JM)

  1. There is a test blog where people can create entries that use the plugin.    (JN)
  2. I can host blogs, if it doesn't use up too many resources, on this server that can use the plugin.    (JO)

Both options are linked to a shared purplewiki (not much there yet, you can change that, it's a wiki after all).    (JP)

What's most interesting, to me, about the second option is that the content that is generated in all the hosted blogs and the associated Wiki is available for TransClusion because they will all be using the same PurpleNumber sequence generator (assuming the blogs opt to use the PurplePlugin).    (JQ)

Let me know if you want to give either of these options a try.    (JR)

Posted by cdent at 01:26 AM | Trackback This | Technorati cosmos | bl

August 17, 2003

PurpleWiki 0.9 Released

I'm pleased to announce the availability of the long awaited PurpleWiki version 0.9.    (0001HW)

PurpleWiki is a WikiWikiWeb? implementation derived from UseModWiki that adds several features and modularizes the code for easier development. Some of the features include:    (0001HX)

  • Purple numbers, a system that allows fine-grained linking to content elements in a web page.    (0001HY)
  • A flexible parser that supports pluggable output formats and use by other tools. Plugins for use with the MovableType and Bloxsom weblog tools are included.    (0001HZ)
  • RSS feeds of recent changes.    (0001I0)
  • TransClusion of content between pages managed by the parser (within and without the wiki).    (0001I1)

The release includes extensive code cleanup, refactoring and documentation.    (0001I2)

Access to the release, documentation, and development information can be found at http://www.blueoxen.org/tools/purplewiki/    (0001I3)

The distribution package itself: http://www.blueoxen.org/tools/purplewiki/purplewiki-0.9.tar.gz    (0001I4)

The fun usefulness that is PurpleWiki is better experienced than explained. Follow the links below for some samples:    (0001I5)

EugeneEricKim's blog, using the PurpleWiki Bloxsom plugin:    (0001I8)

  http://www.eekim.com/blog/    (0001I9)

There are announce, user and developer mailing lists for PurpleWiki. Find more information about these at:    (0001IA)

  http://purplewiki.blueoxen.net/cgi-bin/wiki.pl?MailingLists    (0001IB)
Posted by cdent at 08:31 PM | Trackback This | Technorati cosmos | bl

July 22, 2003

MEGO

Some moons ago, colleagues somewhere in the support organization of the university I was working for started using the term MEGO: My Eyes Glaze(d) Over. A term used when describing the effect of tedious documentation or perhaps a meeting trapped in a whirlpool of repetition.    (0001D3)

I and my trusty blog habit have been abed with a near terminal case of MEGO. In an effort to address the sludge I've slashed my RSS subscriptions down to something a bit more manageable. Will this help? I don't know. The hope is that the veil will soon lift and once more I'll feel engaged, non-drowsy and ready to subscribe.    (0001D4)

Elsewhere in the news:    (0001D5)

  • It's satisfying to pull grape vines out of trees and bushes, but it can make you kinda dirty.    (0001D6)
  • My mother declares the-maybe-a-cherry-tree tree a decorative crabapple of some kind.    (0001D7)
  • The other crabapple tree is sick.    (0001D8)
  • Cataract Falls, in Indiana, has a distinctly un-Indiana feel to it. Simply because they are big (for Indiana).    (0001D9)
  • I think the executive branch of the of the US Government should resign, or better yet maybe they would consider sepaku?    (0001DA)
Posted by cdent at 12:22 AM | Trackback This | Technorati cosmos | bl

July 14, 2003

RSS 2.0 Comments Feed Template

Can somebody (the LazyWeb? mayhaps?) point me to a nice clean template for creating an RSS 2.0 Feed of (all of) my comments? I've found several but they are all a bit different and I'm feeling lazy.    (0001D2)

Posted by cdent at 05:21 PM | Trackback This | Technorati cosmos | bl

July 03, 2003

RSS 2.0 Full Feed

I've added an additional RSS feed. This one is RSS 2.0 and provides full content in HTML parsed to link the PurpleNumbers back to the archive page. It also correctly links the parsed WikiWords back to the attached wiki.    (00019W)

I'm not sure where I fall on the debate between full and partial feeds, but I thought I would provide this to see what happens.    (00019X)

Posted by cdent at 02:46 AM | Trackback This | Technorati cosmos | bl

PurplePlugin Testing

Apparently it's been some days since I've made a posting about PurpleNumbers, PurpleWiki and the PurplePlugin. None show up on the front page. Shock. Horror.    (00019U)

This is a test of a bug fix. PurpleWiki 0.2 (soon to be renamed to 0.9) is stable and works marvelously.    (00019V)

Posted by cdent at 01:19 AM | Trackback This | Technorati cosmos | bl

June 15, 2003

PurpleWiki/PurplePlugin pre-release

After far longer than expected, version 0.2 of PurpleWiki, including a PurplePlugin for MovableType is available for pre-official-release download.    (00017E)

This version adds support for:    (00017F)

Be warned: this release is not yet well tested and not all the features have been fully documented. This pre-release is being made to seek feedback to clean things up for the official release. There will be changes between this release and the official release. That said, I'm currently using this version here, and on a test WikiBlog.    (00017N)

If you would like to try it out, read PurpleWikiInstructions and PurplePluginInstructions. The download link is there, along with step by step installation instructions.    (00017O)

If you have any questions feel free to contact me, leave a comment here, or leave comments in the wiki.    (00017P)

Posted by cdent at 04:52 AM | Trackback This | Technorati cosmos | bl

June 14, 2003

Purple Plugin Closer

Nearly there.    (00014I)

What's left:    (00014J)

  • Some unitialized value warnings when entering new posts or new comments (testing for those is the real reason for this post).    (00014K)
  • Three remaining global variables that ought to be killed.    (00014L)
  • Installation docs.    (00014M)
  • Use docs.    (00014N)
  • Test cases for the database classes.    (00014O)

See PurplePlugin for more.    (00014P)

Posted by cdent at 06:20 PM | Trackback This | Technorati cosmos | bl

June 11, 2003

Purple Number Paradigms

Tom Coates comments on how the small revolution of permalinks brought about a paradigm shift in personal publishing. He makes several points on the value of a permalink that map directly onto the value of a PurpleNumber:    (000137)

  • Both a PermaLink and a PurpleNumber "make it possible for people to link to something with a higher level of granularity than just the page".    (000138)
  • Both inflict "more clutter on the weblog-page" that people get used to and provide what amounts to a nice cognitive handle.    (000139)
  • Clicking on both doesn't "take you anywhere" but allows you to make a reference.    (00013A)
  • Both provide a method for making a highly specific gesture, potentially encouraging discussion.    (00013B)
  • Both provide a method for building bridges between content.    (00013C)

The value of the increased granularity of access provided by permalinks suggests, but does not guarantee, that the even greater level of granularity provided by PurpleNumbers will be valuable as well. It certainly has been for me.    (00013D)

(The PurplePlugin should be ready for testing by stalwarts sometime this week, a solution to the config problem is in the works. If you want to help with the testing, have a MovableType blog of the 2.6 or greater variety, and can install Perl modules, let me know.)    (00013E)

Posted by cdent at 05:51 PM | Trackback This | Technorati cosmos | bl

June 06, 2003

Purple Number Placement

Mike asked some questions in the comments to Purple Number Identity that boil down to why put the link at the end of the paragraph:    (00011I)

1. if the purple number functions as an inline anchor, shoudn't they precede rather than follow the graf to which they cling, so that the physical placement of the link is transparent to the location of the target? Perhaps not, but I'm asking.  T    (00011J)

There are a few different reasons why the purple number follows its graf, none of which are conclusive, but frequent use seems to like them there:    (00011K)

  • I find them less visually jarring at the end of the paragraph where they don't interrupt the flow of the reading quite as much. PurpleSlurple has used links at the start of lines, so there is a good place to look for comparison.    (00011L)
  • I find them more useful at the end because that is when I want them. Imagine the flow of action when reading: I'm reading along and read a paragraph to which I'd like to make a reference. I don't know this until I've read the paragraph and lo, there at the end is my tool for helping with that reference.    (00011M)
  • Having the anchor at the start of the paragraph and the link at the end makes parsing for TransClusion a good deal easier than it would be otherwise.    (00011N)

2. if the visible link preceded the graf, you might have the opportunity to use a traditional typographic sigil, such as a paragraph marker (¶), or section marker (§), or even combinations thereof based on CSS/XML  T    (00011O)

Part of the reason the purple numbers are done in their tasteful lavender style is to minimize their intrusion in the content.    (00011P)

Using section or graf markers might make sense in combination with hiearchical or section IDs but not as much with NIDs.    (00011Q)

Hiearchical IDs are designed to label ordered sections of a document. The second header is always the second header because it is second. NIDs indicate the content not the order. If you change around the order of the text, the NID goes with its original text.    (00011R)

Consider a non-NID example with poetry. I've written some poetry that for reasons beyond my understanding you like so you've made a reference to it. You read the first version:    (00011S)

  Lo, I was dead, speared by truth (01)
  Spread fast among the yearning (02)    (00011T)

You wonder what that second line means so you send me some email referencing purple number 02. Later I change my mind a bit and reorder:    (00011U)

  Spread fast among the yearning (01)
  I was dead, speared by truth (02)    (00011V)

When you wrote your email your HID pointed to "Spread fast among the yearning". When I read the email it pointed to "I was dead, speared by truth".    (00011W)

Using NIDs would have the second version like this:    (00011X)

  Spread fast among the yearning (02)
  I was dead, speared by truth (01)    (00011Y)

There is discussion of implementing both HIDs and NIDs in future versions of PurpleWiki. If we do, it is possible that HIDs would go at the start of the line. HIDs are very handy for printed documents, or other sitations where a human readable and speakable identifier is valuable, even if it might change between revisions.    (00011Z)

Posted by cdent at 06:34 AM | Trackback This | Technorati cosmos | bl

June 05, 2003

Purple Number Identity

I sat down tonight to write something about PurpleNumbers, as I have several things I need to write for the 0.2 release of PurpleWiki. This is what came out. It fills a different, but similar, purpose to the coolness draft.    (000103)

What is a purple number?    (000104)

A purple number is an identifier unique to a document or set of documents used to indicate and provide direct access to segments of content in a document.    (000105)

In practice a purple number identifies structural elements in a document such as headers, list items and paragraphs. When a new document is created or content is added to an existing document, the document is parsed to add identifiers where they are not already present. When a document is processed for presentation (usually, but not always, to HTML) these identifiers are used to create anchors and links in the document that can be used for later reference.    (000106)

Purple number identifiers are known, for reasons of history, as node identifiers, or 'NIDs' for short.    (000107)

In simple implementations NIDs are unique per document and may be generated per page, perhaps as a series of integers. More complex implementations create NIDs that are unique across a domain of documents. These NIDs are generated from a central sequencing source or service that provides the next available NID. If NIDs are paired with document identifiers (usually URLs) to create an index, references may be made by NID alone (some uses for this are described below).    (000108)

When a document that has been processed to add NIDs is presented as HTML, the NIDs are shown as links (<a href>) to named anchors (<a name>) within a stable URL for the current document. In some current implementations these links are shown in a purple color (thus the name).    (000109)

If the identifiers used are human readable (short, sensible), there are benefits to displaying the identifier as the text of the link: reference can be made to the identified segment of content in speech. When the identifiers are more complex a single character, such as the '#' popularized as a permanent link in some weblogs, has proven to work well.    (00010A)

Current purple number implementations process text, wiki formatted text, or HTML to either specially formatted wiki text or HTML. The resulting wiki text or HTML embeds text containing the NIDs for each segment of the document. When HTML or wiki text that contains NIDs is reprocessed that text which has already been assigned a NID keeps it's existing NID and that text which is new gets the next NIDs provided by the sequencing service. If content is deleted, NIDs must not be reused as references to NIDs must be allowed to go stale when content is removed.    (00010B)

HTML presentations of content with purple numbers adjusts the content in two ways to provide two different functions: the href provides the text of the URL that can be copied to make reference from other environments; the named anchor provides the location to which that reference points. The value of the name attribute of the anchor is the NID.    (00010C)

When NIDs for a set of documents are created from the same central source and the NIDs are paired with the URLs of the document in which they are to be presented the resulting index can be used to remotely make reference to content by NID alone. This has several benefits:    (00010D)

  • Simplified URLs can be used to refer to content.    (00010E)
  • By updating the index, content addressed by NID can remain addressable even when moved to a new URL.    (00010F)
  • Content can be referenced and retrieved by NID and then easily parsed out of its context by NID. This allows for transclusion (include by reference rather than copy) of content from one document in another.    (00010G)

There are several existing implementations of purple numbers. Some examples are:    (00010H)

PurpleWiki    (00010I)
A descendant of UseModWiki that supports purple numbers. Version 0.1 with support for document based NIDs has been released. Version 0.2 with multi-document NIDs, document authoring features (metadata management), more modular code and transclusion support is being developed. Update 2003/06/02: PurpleWiki 0.9.2, faster, better stronger, has been released to CPAN.    (00010J)
PurplePlugin    (00010K)
A MovableType plugin that uses PurpleWiki 0.2 to format entries with purple numbers, to support transclusions and to provide WikiBlog functionality to MovableType.    (00010L)
Mhonarc purple plugin    (00010M)
An addition to the mhonarc mail archiving system that provides purple numbers on mail messages. source, demo.    (00010N)
Purple ZWiki    (00010O)
Modifications to ZWiki to support purple numbers. demo.    (00010P)
PurpleSlurple    (000111)
A proxy system that adds purple numbers to existing HTML documents anywhere on the net.    (000112)
Purple    (000113)
A processing system for creating documents with purple numbers. source    (000114)

See also: PurpleNumbers, PurpleWiki, PurplePlugin, TransClusion and the rest of the geek-glaxon category.    (00010Q)

Posted by cdent at 08:26 AM | Trackback This | Technorati cosmos | bl

May 30, 2003

Pure Purple Plugin Testing

Until now the code for doing the PurpleNumbers on this blog involved some hacks down inside lib/MT. This made for some nastiness for trying thigns out. I've made some adjustments to make it all work from a plugin. This is a test of that. My fingers are crossed.    (0000VB)

It's working, at least so far.    (0000VC)

Posted by cdent at 11:28 PM | Trackback This | Technorati cosmos | bl

May 29, 2003

purple transclusion proxying

Putting this here because I want to remember it for later.    (0000UD)

Now that I have the blog and wiki doing TransClusion, I want it in my email. I often want to reuse content from the email I send and the email I receive.    (0000UE)

A hacky way to do this, using the hacky way that TransClusion is curerntly done would be to deliver all email to a modified mhonarc archive that purples messages using the same sequence genrator as the blog and wiki. Outgoing messages could be filtered either through the PurpleWiki parser or a simple text filter that would expand transclusion tags.    (0000UF)

At first glance this may seem a bit bogus as the archive content never changes: why transclude instead of copy. Well, for starters it gives you easy access back to the original content.    (0000UG)

And having purple numbers on all of one's mail would be handy.    (0000UH)

I'm to the point now where I'm hesitant to write something if it isn't getting purple numbers.    (0000UI)

Posted by cdent at 08:28 PM | Trackback This | Technorati cosmos | bl

May 21, 2003

PurpleWiki Transclusion Test

The next indented paragraph should be a transclusion from elsewhere on this blog.    (0000QA)

A primary goal is to get this stuff more out there and for that I could do with help and advice from anyone who happens to be reading this. If you are familiar with PurpleNumbers and have some comments about them, please leave them here. If you see them, but just don't get it, let me know, as that's valuable too. If you have suggestions on how to build some bridges with other developers to integrate Purple ideas into their tools, that would be good too.  T    (0000QB)

By transclusion I mean that text is there by reference, not by copy. If the remote text is changed (and the blog rebuilt) the text will change here too.    (0000QC)

If you click on the purple 'T' you'll go to the original, in context.    (0000QD)

If this still doesn't make sense, here is the content of this entry in the database, before I added this paragraph, and word wrapped for readability.    (0000QI)

Posted by cdent at 09:00 AM | Trackback This | Technorati cosmos | bl

April 24, 2003

PurpleWiki MovableType update

In a recent comment on an early entry about integrating PurpleWiki and MovableType, Danny Ayers asks about what sort of progress has been made. Here are some rough notes on what's up.    (0000GM)

The original goal was to create handles (PurpleNumbers) for granular addressing to paragraphs in blog entries. That's done and works just fine. The little purple hash marks that follow each structural section of this entry are href's pointing to named anchors within the text. You can copy and paste the URL under the # and make direct reference.    (0000GN)

Because the system is using the PurpleWiki parser to create the PurpleNumbers there are a few bonus features:    (0000GO)

  • Wiki formatting such as lists    (0000GP)
  • Wiki words such as FrontPage are parsed and point to a configured wiki    (0000GQ)

Thus far I have been unable to make this stuff work as a pure Text Formatting plugin for MovableType. This is because the plugins run each time an entry is formatted for output. The PurpleNumbers I'm using are domain unique ids that are created at the time the referenced text is created and stay with the text after that. The computation to create the numbers must be done before the text is saved into the data store. Ben Trott has provided a suggestion for how to override MT::Entry::save() outside the distributed code but I've not had time to mess with that, so these features require a patch down inside lib/MT. So, saving the text as PurpleWiki is not a plugin, but the presentation (the wiki to html translation) is.    (0000GR)

Further complicating the picture is the fact that my current development version of PurpleWiki is far off the current 0.1 release and not well packaged. My changes include:    (0000GS)

Sequence based purple number generation    (0000GT)
This allows for PurpleNumbers that are unique across a given domain and provides the basis for lots of future fun.    (0000GU)
Explicit naming of the URL that forms the base for the named anchor    (0000GV)
This was necessary for MovableType to ensure the PurpleNumbers point to the permalink.    (0000GW)
Support SpaceCGI    (0000GX)
Very rudimentary support for human and machine readable fake/manual TransClusion. Follow SpaceCGI for more info and a demonstration.    (0000GY)

That's the stuff that's being used on this blog.    (0000GZ)

Also in the works is a graph-based data storage mechanism for Wiki pages and other systems that use the PurpleWiki parser. The goal of that work is to implement true transclusions in wiki pages. It's fairly close at this point but I need some serious HeadSpace to get it to all come together and that hasn't been available lately. In the meantime I've considered hacking the mechanism that SpaceCGI uses into the PurpleWiki viewer code.    (0000H0)

In related news: TomMunnecke noticed on the collab list that MovableType comments don't get PurpleNumbers. I'd like to do this. I'll need to create a save() in MT::Comment and do in it what I've done in MT::Entry. The only issue with that is that it is an all or nothing sort of thing: people leaving comments will be leaving them in PurpleWiki style. That could result in some interesting formatting.    (0000H1)

In somewhat less related news: I also have in the works a text formatting plugin that automatically generates haiku from the text in an entry and sticks it on the end. Queer Barney wants to use it, so I tried it in an earlier posting. It's working but needs to have the better syllable detection method turned on (there are two) and it needs to be packaged. Packaging is always the hardest part for me.    (0000H2)

Posted by cdent at 07:23 AM | Trackback This | Technorati cosmos | bl

March 03, 2003

Helping Out Queer Barney

Barney has some code he wrote that he needs to test.

Article I.
Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances.

Article II.
A well regulated Militia, being necessary to the security of a free State, the right of the people to keep and bear Arms, shall not be infringed.

Article III.
No Soldier shall, in time of peace be quartered in any house, without the consent of the Owner, nor in time of war, but in a manner to be prescribed by law.

Article IV.
The right of the people to be secure in their persons, houses, papers, and effects, against unreasonable searches and seizures, shall not be violated, and no Warrants shall issue, but upon probable cause, supported by Oath or affirmation, and particularly describing the place to be searched, and the persons or things to be seized.

Article V.
No person shall be held to answer for a capital, or otherwise infamous crime, unless on a presentment or indictment of a Grand Jury, except in cases arising in the land or naval forces, or in the Militia, when in actual service in time of War or public danger; nor shall any person be subject for the same offence to be twice put in jeopardy of life or limb; nor shall be compelled in any criminal case to be a witness against himself, nor be deprived of life, liberty, or property, without due process of law; nor shall private property be taken for public use, without just compensation.

Article VI.
In all criminal prosecutions, the accused shall enjoy the right to a speedy and public trial, by an impartial jury of the State and district wherein the crime shall have been committed, which district shall have been previously ascertained by law, and to be informed of the nature and cause of the accusation; to be confronted with the witnesses against him; to have compulsory process for obtaining witnesses in his favor, and to have the Assistance of Counsel for his defence.

Article VII.
In Suits at common law, where the value in controversy shall exceed twenty dollars, the right of trial by jury shall be preserved, and no fact tried by a jury, shall be otherwise re-examined in any Court of the United States, than according to the rules of the common law.

Article VIII.
Excessive bail shall not be required, nor excessive fines imposed, nor cruel and unusual punishments inflicted.

Article IX.
The enumeration in the Constitution, of certain rights, shall not be construed to deny or disparage others retained by the people.

Article X.
The powers not delegated to the United States by the Constitution, nor prohibited by it to the States, are reserved to the States respectively, or to the people.

Article VIII
nor be deprived of life
papers, and effects
Posted by cdent at 04:37 AM | Trackback This | Technorati cosmos | bl

February 14, 2003

2.6 upgrade purplewiki test

Posted by cdent at 06:37 AM | Trackback This | Technorati cosmos | bl

February 10, 2003

Wiki and Purple Numbering for Movable Type

Inspired by the Wiki plugin at 0xDECAFBAD I've done the first steps of a dirty integration between PurpleWiki and MovableType.    (00003S)

I had hoped that I would be able to use Movable Type's plugin scheme but in the end I got confused and messed up, so I'm seeking feedback.    (00003T)

PurpleWiki is a modification of UseModWiki to support Collab:PurpleNumbers (the marks that should be on the end of each of the structural units of this entry). The marks identify addressable sections of content for more effective referencing and will eventually help transclusion.    (00003U)

Source for the parser is available at blueoxen.org. Source for the Movable Type changes are swirling around on my disk trying to settle down. Happy to share upon request.    (00003V)

Instead of using the plugins I made changes in MT::Entry::save() and MT::Template::Context::_hdlr_entry_body():    (00003W)

  • save() has been modified to take the entry text, parses it to a PurpleWiki::Tree format, adds the purple numbers on nodes without them, serializes the tree as 'wikitext' and saves it. The purple numbers are unique for an established domain. If you look at some of the other PurpleWiki parsed entries in this blog (see the trackbacks) you'll see the numbers are distinct. Eventually it will be possible to have just a domain and a purple number and get stuff via a straightforward retrieval mechanism.    (00003X)
  • _hdlr_entry_body() has been modified to, if the text contains purple number tags, to parse the wikitext format back to a PurpleWiki::Tree and from there into wikihtml. This does the formatting and also parses for WikiWords. When I was doing some testing with this portion using a filter plugin I ran into trouble because the test had already had some htmlification done to it before I had a chance to pass it to the parser.    (00003Y)

What I would like to know from anyone who cares to answer: Can I move these functions into plugins, or am I stuck in the bowels of MT? If you don't know the answer but know how to find out, that would be helpful too. Thanks.    (00003Z)

Posted by cdent at 11:33 PM | Trackback This | Technorati cosmos | bl

January 20, 2003

Getting rid of folders

0xDECAFBAD: I second that sacrilege

and

L.M. Orchard commits filesystem sacrilege

L.M. Orchard and Jon Udell talk about how hierarcy in file systems doesn't work for them. They want metadata rich datastores with persistable searches, and fast and dynamic interlinking.

This is the religion that drives KnownSpace. See some of it in Gregory Rawlins' orginal docs (a bit old), on the primary website, and as an application Helium (on which I happened to work).

KnownSpace suffers a bit from being more vision than action, but there's a lot there and the vision is good.

One of the major features planned in Helium (an email navigator) was persistable searches of the Pool. The Pool has no built in hierarchy, it is a collection of Entities, some of which happen to be the parts of email messages, some which could be saved searches which amount to very a general method of arbitrarily constraining the view of the Pool.

Posted by cdent at 05:10 PM | Trackback This | Technorati cosmos | bl

January 12, 2003

nostalgia

Rubix Cube

Flash dealy that will do the rubix cube or let you.

Fancy

Posted by cdent at 10:33 PM | Trackback This | Technorati cosmos | bl