The Ligature Dev Diary

 Updates regarding the development of the Ligature auto-linking storytelling software. Covers assorted errata as well as most changes.

See the new posts or look at old ones, or grab the RSS feed.

RSS bugs fixed

2009 May 14, 23:17. Permalink.
I fixed an RSS bug across both Writer's Block and Ligature that made feed links faulty if the installation was in a subdirectory.

Just download the installation .zip again and replace you existing rss.php with the new copy.

Another damn hotfix

2009 May 2, 19:50. Permalink.
I just found a bug that only surfaced when you didn’t specify a story to show whenever someone hadn’t visited Ligature before. Of course the way these things work is that I never had the option disabled, and Ligature shipped with the option disabled by default.

Just download the whole ligature-current.zip archive again and replace only your index.php (that’s the root index file, not the one in your admin/ folder). I've also coded it so that Ligature won't write any cookies to your users’ browsers unless you specify that new users should see a particular page.

Next and Previous links

2009 Apr 30, 6:01. Permalink.
I've added Next and Previous links to the story.htm template. I just stuck it into the Ligature 1.5 download, so if you've already upgraded, just download it again and replace your index.php and admin/control.php files. In admin/control.php you'll find four new options for controlling the way your Next and Previous links will appear. Use {URL} in place of an actual URL in your link code when editing these options:
<a href="{URL}">

To actually make the links show up, just add {PREV} or {NEXT} to your story.htm template where you want the links to appear.

Wildcards

2009 Apr 26, 16:54. Permalink.
I don't know why I didn't wildcard the noun search before. I long suspected that there was a bug in the autogenerate links function, and it finally surfaced last night when a word that I knew had a story wouldn't autolink to it. The problem was created by the regex I used: noun\|? would not find |noun|. Easily fixed with \|?noun\|?.

1.5 released

2009 Apr 26, 6:01. Permalink.
In preparation for the launch of Gradually, But With Love (domain is still clearing), I've released Ligature 1.5 which fixes some small bugs and adds some new features, the most awesome being that you can hide text from Ligature's autolink parser now!

If you want to add some other content like a blog post or something under a story, but don't want Ligature to search it for nouns, or to autolink it, you wrap it in an Exclusion tag like so:

This is visible (!))) but this is hidden! (!)))

Ligature will leave the text that's between those tags completely alone.

One month after

2009 Mar 31, 4:44. Permalink.
It's been a month now since I launched Ligature for public use. I am happy that I haven't thought of anything else I need to add ever since, and that is the way it should be.

The Ligature Project (the writing project) is on blocks, and instead I am now working on One-Sentence Stories.

Manual is up

2009 Feb 9, 3:18. Permalink.
The Ligature Online Manual is now up. The STS in the URL is for Story-Telling Software.

I’ve also redesigned the Ligature Project’s page. It’s a man lying on concrete; even more story-related than the last redesign.

RSS and refinements

2009 Feb 5, 2:16. Permalink.
RSS feed was fixed. There was a WHERE condition in the SQL that shouldn’t have been there.

I’ve also allowed Ligature to recognise standard extensions of words aside from regular plurals: ing, d, ed. Now you can make gerunds and Ligature will know what to link! Breaded to bread, front to fronting, etc.

It’s nice that I’ve been able to identify and rectify these and other issues as I find them, instead of when it’s already out in the hands of end-users. Writer's Block was definitely a study in embarassment, with I think the first three releases being plagued by bugs and shortcomings because WB had such a giant scope, and I was a young kid who was impatient to start writing already.

Combinatorial explosion

2009 Feb 1, 2:01. Permalink.
There’s a term I use in game design and programming, it’s a cooler-sounding version of exponential growth. It’s called combinatorial explosion, which does a much better job, I think, of explaining itself.

Let’s say you have a note in your game, cool. You can read it, you can drop it, you can give it to people. Now add a lighter. The note burns, right? Does the player keep the ashes? Now add a bottle of water. Can you soak the paper in water? Will it light if it’s wet? What if you light it, and then douse the flames? Can the bottle be melted? Where does the water go?

Ad infinitum. The combination of each object (or feature) creates an explosion of consequences that must be addressed.

In terms of Ligature, the explosion occurs not only when a reader clicks on links to read new stories, which may lead them to reconsider or reorder what has already been read, but on the author’s side too, every time a new story is written. The nouns from that new story are added to the Pending list, and the list quickly explodes into a giant wall of words.

To date I have written twelve stories. To date I have 111 Pending nouns ready for use. This means just less than ten nouns per story, and I haven’t created any custom nouns yet.

The explosion would quickly make the Pending list unmanageable. It would be difficult to create a consistent interlinking of stories when there are so many words that need to be addressed.

So tonight I’ll need to start making the list sort in order of importance. In this case, the importance of a noun increases the more times it is used in stories. A name, say, would be more important than a toothbrush, because presumably you’d be using the name in more stories than you would mention a toothbrush. By sorting in order of importance, the author is able to create as many cross-links as possible with every story.

Later that night! Wow, that was too easy. I’m waiting to see what horrible crippling bug must have been introduced.

All programming finished

2009 Jan 24, 4:30. Permalink.
Today all production programming has well and truly finished. No more bug testing, no more fiddling with regex. What's left is to add features and functions where I need them.

It is, I think, as it always will be.

See the new posts or look at old ones, or grab the RSS feed.