The open source bargain

The bargain is a little different with other programmers, but for non-programmers who use open source, here’s the deal we make:

  1. The programmer writes something and releases it.
  2. The users use it, and report bugs.

Pretty simple, eh? By that I don’t mean “report bugs, and then ceaselessly complain about them and insist that they be fixed or the program will die and the programmer will go straight to hell,” but, say I release a plugin for previous and next in category links, which I only look at while I’m testing and constantly rebuilding. If you actually use it, and look at the results, then you are responsible for noticing that if you post entries in categories A, B, B, B, A, then of course the first A entry doesn’t get rebuilt when you save the second one, so the first one doesn’t get a “next entry” link built until the next time you rebuild either that entry, or the whole blog, and you are responsible for telling me about that stupid bug.

Now, if only I could find someone to make responsible for figuring out how to fix it. Bleah, it’s going to need an MT3.0-only hook on MT::Placement->save(), to dig out the previous-in-category entry and rebuild it. Bleah.

Quick straw-poll of the zero users of the plugin who are likely to read this: do you actually want the current weird behavior, where an entry that has the category as a secondary category gets included, so you change from navigating through the A entries to navigating through the B entries when you hit one with A as primary and B as secondary? Right now I have a new version that defaults to primary only, and does secondary only if you ask for <MTEntryPreviousInCategory secondary="1">, but if nobody actually wants secondary, rebuilding would be easier if I leave it out entirely.


Comment by Pete Prodoehl #
2004-06-05 04:46:34

Obviously the best option is the ’Mozilla option’ where you create a huge number of preferences for the user to set to control all of the possible behavior.

You can choose to create a UI for this, or make them edit some obscure text file…

Then in the next version you’ll hide the whole prefs thing because the average user would be confused by it, but make it possible to control via extensions/plugins/command line wanking…

Problem solved!

Comment by Matt #
2004-06-05 10:50:01

To be the ”Mozilla option” it would have to be equally funky on all platforms so Phil needs to make it work for WordPress, Drupal, Textpattern, Nucleus, and dotClear. And PHP-Nuke, because everything works with PHP-Nuke.

Comment by Phil Ringnalda #
2004-06-05 11:01:28

Can my PHP-Nuke option be totally insecure, able to be set by anyone anywhere with at least a cellphone? I’d also like it to have an option to dump out the password file, and delete the whole site.

The not-so-funny thing is, I have considered an option. MT3 lets you have options for plugins, by inserting a config link on the main page, that goes to a .cgi, that can then use half a dozen .pms, including MT::PluginData, to store a single boolean, that you can then query every single time you rebuild a page. Thinking about it gives me a real Seamonkey feeling.

Comment by chaos #
2004-06-17 14:24:06

Have you looked at Lummox Jr’s Rebuild plugin? It seems like it would do exactly what is needed. Unfortunately, when I tried to use it together with this plugin, I got this error: Error in <MTRebuildEntry> tag: An id argument or entry context is required in <MTRebuildEntry>.
My perl knowledge is pretty much nonexistent, so I don’t know if getting an entry context would even be possible, but if it is, that seems like it would work.

Comment by chaos #
2004-06-18 02:33:35

Well, I don’t know if it’s the best way, but I combined Stepan Riha’s TagInvoke plugin with the Rebuild plugin, and that seems to work fine. I’m still not sure why Rebuild doesn’t seem to find context, but if it works, I’m not going to complain.

Name (required)
E-mail (required - never shown publicly)
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <del datetime="" cite=""> <dd> <dl> <dt> <em> <i> <ins datetime="" cite=""> <kbd> <li> <ol> <p> <pre> <q cite=""> <samp> <strong> <sub> <sup> <ul> in your comment.