Rand Anderson blogs
about Iron Lute and his preferred outliner Leo:
Seems he's aware of Leo (my
outliner of choice) but wants an outliner that allows the use of the
outline structure for all content (as opposed to having a body for
free text associated with each tree node, as Leo does).
I want to be able to discuss Iron Lute's planned license in a posting
in response to somebody's blog here, but first I need to discuss
it. So here are the licensing plans I have for Iron Lute. I'm very
interested in feedback on this.
I'd would like Iron Lute to be open source, likely GPL with
explicit exclusion of plug-ins (i.e., you are explicitly allowed to
create new Node Types, etc., and release them under any license you
like). (This is not quite the LGPL because you still can not
take Iron Lute and build another application around it; limiting as I
will means you can "connect" Iron Lute to your application but that
you can not just pick up Iron Lute and make it be your
application.) But that depends on the usage and support pattern it
If nobody uses it and nobody helps me with it, then eventually,
I'll stop supporting it. (No surprise there.) I'll keep it online and
quite possibly continue using it in my own personal projects, but
unless somebody else shows an interest, no public sign of development
(Truthfully, call me arrogant but I do not consider this likely. I
think there's a definate niche in the Open Source world for what I am
creating here, partially because of the lack of an outlining widget
that I mentioned in my original post.)
If I get significant contributions from other developers and other
people (including documentation, help, community helping each other
out a lot, etc.), I'll make it the aforementioned limited GPL. The
threshold for this is "if I had to remove all contributions other then
mine to date, how painful would that be?" If it can be done swiftly
and painlessly, then I may go to the third option.
The third option is "a lot of people use it and like it, but nobody
is helping with the development". In that case I'll do an analysis,
and either stop development, or try to take it commercial, depending
I'm thinking of a cut-off date of a year after the initial "stable"
release, which would be some months after the first public release, of
course, so we're talking about at least a year and a half window,
I'd like to say up front that I want this to be open
source. I want to experience new features of Iron Lute that I didn't
have to write myself. However, I do not want to tie my hands by
committing to a license "come hell or high water"; the condition above
is not intended as a "loophole I can jump through" so much as a way of
pointing out that two pages of docs and a node type do not
constitute "significant contributions" in the sense I am
mentioning. Believe me, I will err on the side of "open source" if
anybody gives me the chance.
So, what license this is released under is at least partially up to
I will make this commitment though: I will not pull the rug out
from underneath you. Should I end up going commercial, the last "free"
version will be clearly marked, never crippled, and will never
expire. You just won't get updates and improvements.
In my previous post, I concentrated on extending our data model to
handle multiple data sources cleanly and transparently. However, we
now have a conceptual contradiction in our data model. To this point,
the data model we've built still assumes it is a tree, which means we
can use the tree-optimized algorithms for things like counting
children. But if a document transcludes something that transcludes the
original, we can have a cycle, which means there is a path starting
with a node in the original, going through the transcluded document,
and ending up back at the original node. Most tree-based algorithms
respond to this situation by infinitely looping, which manifests itself
as a hard lock-up, which is generally considered a negative by
In my previous post, I discussed what I believe is the outline data
structure in current use by outliners, and why they are inadequate for
my purposes. I discussed why transclusion doesn't work very well under
that model (an algorithm can sort of hack transclusion on top of the
tree, but it's not "real" enough), and the difficulties of replacing
some of the tree concepts when you have a full graph. Today's post
covers the "transclusion" issue.
It happens to me without fail.
I have three computers in this house. One is a headless machine that runs Radio Userland, providing my news aggregator and this weblog, and nothing else. One is a Linux desktop machine that Windows literally refuses to run on. One is a laptop that runs primarily Linux but has Windows only because it came that way. Thus, only two usuable machines.
Whenever I take one of the machines down for heavy duty maintenence, secure in the knowlege the other one can easily pick up the slack, BAM one of the hard drives in the other machine comes crashing down, taking down both of them at once.
This has happened to me without fail the last three times that I've done something major to one of the systems. This time, I was working the desktop machine over and so my laptop hard drive failed.
Now, I've learned a little something about keeping my vital files intact when hard drives go down, so the real damage was negligible; the usual cruft you pick up in your home directory that is probably better off gone, some cookies out of my browser. Iron Lute itself suffered no damage, as I had in fact just hours before the hard drive crashed sync'ed up the workspace with another machine's hard drive.
If you haven't backed up in a while, please do so, right now. You never know when those critical files will be on a hard drive that simply refuses to work.
I've been fighting this all week and I'm finally almost in a working state now; the laptop is doing some last updating but otherwise things are in good shape.
This explains why I haven't posted anything to my Iron Lute section. Since I've actually written ahead on that, I will now post last Monday's post today, and will resume tommorow as if nothing happened. I'm also thinking of "jumping ahead" and posting on something that I'm doing right now, talking about "what is an XML tag?", but we'll see how that goes today; I'm just about to tackle that problem so I don't know that the solution I have in my head (and have had in my head for most of this week now... frustration frustration frustration) will work.
Thank you for your (aggregator software's) patience.
|<- Future Posts||Past Posts ->|