TODO List - Features

Error message

  • Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /var/www/pied-piper.ermarian.net/includes/common.inc).
  • Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2405 of /var/www/pied-piper.ermarian.net/includes/menu.inc).
Several features that are begging to be added:

Search engine.



Advanced market research has led me to believe you want it, where advanced market research = you people mentioning it in the first post whenever I post something about PPP on Spiderweb.

Well, there are several different approaches to a search engine.

1. "Trust me, I know what you're looking for." The Google-esque approach is to have a full-text index and a simple single search field. If it's there, you might find it eventually. Otherwise, adjust your query.

2. Advanced search options - only search posts written by member #x on Sundays between 2003-07-11 and 2003-09-11 in General topics less than 100 posts old. The search is easy to perform in SQL, but it's a bugger to write the form and use it.

3. "Regeks? What is this Regeks?" Depend on infinite CPU time and user competence.

4. "Search as you type". This is seen in Thunderbird and iTunes (as well as other media players). The idea, here, is not in *actually* searching as you type, but in looking for a full match of your entire text inside the post, instead of relying on a keyword index.

If you have a very good idea of what you're looking for (a verbatim quote), this is powerful. It is also a lot more CPU-intensive, and also doesn't provide ranking of matches like the keyword approach does.

5. "Just look for *.html" Allowing and requiring wildcards in a search query is less tricky than it might seem, but it's essentially approach 4 with better options. As the archive grows in volume and popularity, it will bring the server to its knees.

6. "Type SQL here." Less stupid than it might seem. I can grant select privileges on the post table to a certain user.

However, "SELECT * FROM ppp_posts JOIN ppp_posts JOIN ppp_posts JOIN ppp_posts;" (result: 150,000^4 rows) is about as effective as "DROP DATABASE ppp;" in terms of sabotage, if less permanent in consequences. And all it takes for the former is one very stupid person.

Tagging



Some topics are tricky to look for if you only know roughly what they were about. Tagging would offer users to assign short one-word labels to a topic that makes them easier to find.

Commenting



How often I've wished I could post in a topic again. Of course, with an archive this big, commenting at a single thread deep inside it is bound to draw no attention at all.

Export



Now that I have the posts in a well-formatted, easily parsed form in the database, I could look at all the ways they could be displayed.

- printer-friendly text/html, black on white with only the text flow.

- text/plain. I can't see where this would be necessary, but it could be useful and is easy to implement.

- application/pdf. I am still testing various ways to generate PDF output from within PHP. Not as hard as it seems.

- application/xml. I wonder if the makers of Bulletin Boards ever sat down to compose a standard for the migration of posts between forums. I doubt it - in a market already filled with hundreds of them, making your own usually takes a mindset that includes "my board is the only one you'll ever need anyway". Where is the export function for ezboard, where for UBB or Invision?

A lot could be done here with a simple document type for the data common to most boards.

<Topic id="">
<Title><![CHARDATA]!></Title>
<Author><![CHARDATA]!></Author>
<DateCreated><![CHARDATA]!></DateCreated>
<Post id="">
<Author><![CHARDATA]!></Author>
<DateCreated><![CHARDATA]!></DateCreated>
<DateUpdated><![CHARDATA]!></DateUpdated>
<Content><![CHARDATA]!></Content>
</Post>
</Topic>


- "Email a friend". I'm grasping at straws by now, but it might be useful.