<< Back to Steve's mod_virgule page
Google Summer of Code
See the mod_virgule project page for Google SoC 2007 ideas
mod_virgule ToDo list
There have been a lot of suggestions, feature requests, and bug reports lately. To try to keep track of them, I'm consolidating them all on this page. I've divided them into two categories: maintenance (bugs, performance, etc) and features.
I think our main goal should be to move mod_virgule toward being a general-purpose, high-performance, Web 2.0 enabled, community website manager for Apache. There are still several outstanding items that prevent the average user from simply downloading and installing mod_virgule on a modern Linux distro without modifying the C code. These items are marked with an asterisk (*).
If there's a feature you'd like to see added to mod_virgule or a bug you think needs to be fixed, let me know and I'll add it to the list.
mod_virgule ToDo list - updated 2008 April 15
Crossed out items have been completed in the current version
Bugs and other maintenance
- Get source into a subversion archive
- * Load config at initialization rather than on every hit
- * Need paging mechanism for person page
- segfaults caused by function name collisions
- Random file loss
- UTF-8 encoding segfaults in trust metric
- Hits on non-existent user accounts should return 404 so search engines will stop asking
- Hits on non-existent diary entries should return 404 so search engines will stop asking
- Hits on non-existent project entries should return 404 so search engines will stop asking
- Update all XML templates to raw="yes" page mode
- Tmetric cache should be loaded once per Apache child rather than once per hit
- * Make "Suggest a story" use admin email from config.xml
- * Make "Forgot password" from: use admin email from config.xml
- Forgot password form should record IP and info of requester
- Blog edit post function should preserve feed tags in syndicated entries
- Prevent link spam on person pages (anchors removed)
- Prevent link spam in blog pages by observers (no follows added)
- /tmetric returns 1+MB that cron sends to /dev/null
- Diary ranking causes heavy performance hit
- Clean up cruft in tmetric.c virgule_tmetric_get()
- rating.c rating_crank_all() should use tmetric cache
- Update readme: /css dir needs to be in VirgulePass directive
- Aggregator should store unique IDs for feed items
- Time storage and manipulation needs to use a normalized format
- Normalize timestamps generated for RSS feeds to UTC (virgule_diary_rss_export and rss_render_from_xml)
- Add a time/date stamp to certifications
- Group /tmetric/, /foo.html, and other admin pages into /admin/ path
- Nightly account maintenance to repair or report cert anomolies in profiles
- Entity handling of URLs is broken for diary.xml links (e.g. /person/schoen/diary.xml)
- CSS clears needed to prevent floated image overlaps in recentlog
- "extra junk" warning should be replaced with proper 404 pages
- profile FOAF link should not be included on profiles of untrusted users
- profile RSS link should not be included on profiles of untrusted users
- autodiscovery rel links for FOAF should not be included for untrusted users
- autodiscovery rel links for blog should not be included for untrusted users
- local blog feed URL should return a 404 for untrusted users
- profile FOAF URL should return a 404 for untrusted users
- autodiscovery rel links for blog should not be included for users with no posts
- local blog feed URL should return a 404 for blog with no posts
- Signup process should not allow password = username
- mod_virgule segfaults (down to about 1 per 8k hits in my version)
- A distinct file area is needed for page templates to simplify theming
- segfaults caused by memory allocation issues (mostly fixed in my version)
- Update blog post HTML; include user-specific classes like planet sites
- When multiple sitemap tags per page are used, only one is rendered
- clean diary rankings for deleted users from files in /eigen/local
- Need nofollow relations on all observer links
- FOAF should not include mbox_sha1sum when there's no email address
- Determine if virgule_iso_to_time_t can be replaced by virgule_virgule_to_time_t
- Need safer, more complete handling of POSTs (see code in mod_perl)
- Pages should be served as UTF-8 (partially fixed in my version)
- Forms need to require UTF-8 data (partially fixed in my version)
- Forms generated from schemas lack input type fields. Fixing this may be non-trivial
- Some of the nice_ functions corrupt UTF-8 encoded strings
- Improve HTML sanitisation
- Trust metric processing impacts site performance (improved in my version)
- Accidental double posting is possible in article replies (maybe fixed now?)
- Combine redundent code used in various recent* functions?
- Update readme: document URLs (e.g. /foo.html, /tmetric/, etc.)
- Change all xmlDoc->xmlRootNode to xmlDocGetRootElement(xmlDoc)
- Check all usages of xmlNewChild() vs xmlNewTextChild()
- virgule_add_recent max values should be configurable
- Normalize code comments to doxygen format
- Wrap="hard" in blog textarea makes posting preformatted code difficult
- Replace haphazard URL usage with a consistent scheme throughout site
- Login should autorefresh to the account page (or someplace)
- GPL/Apache License issues (need exception clause like mod_spin or switch to GPL V3)
- Rewrite comment/reply code to allow more flexible use (e.g. on blog posts or profiles)
- Rewrite of project code; needs to be scalable, searchable, configurable
- virgule_acct_dbkey needs specifiable subpool to prevent memory leaks
- use standard APR hash functions instead of hashtable.c?
- virgule_diary_[store|update]_feed_item() should purge nasty HTML (ads, scripts, etc.)
- autodiscovery rel links for aggregated blogs should point to original blog feed
- local blog feed link should return a 404 for aggregated blogs
- add alternate code for builds where APR_HAS_THREADS 0 (see mod_spin.c for example)
- The hard-coded data schemas should be replaced with configurable XML files
- Stanardize the blog permalink character (currently »)
- Non-standard user names should be properly escaped or quoted in graph.dot output
Features requested
- * Apache 2.x support
- * libxml2 support
- * Replace hard-coded article pages with user-configurable XML template
- * Add site admin email to config.xml
- * Replace hard-coded diary pages with user-configurable XML template
- * Replace hard-coded person pages with user-configurable XML template
- * Replace hard-coded project pages with user-configurable XML template
- * Replace hard-coded page header with user-configurable XML template
- Allow users to populate their diary FROM an RSS/Atom feed
- Add RSS parser
- Add RDF Site Summary parser
- Add Atom parser?
- Add a general purpose file/rss include tag
- Add database delete functions
- Need a 'delete user account' function
- Add account creation date to user profiles
- Move all RSS feeds to v2.0
- Add FOAF file to profile pages
- Add some user/cert stats
- Articles should editable by author for limited time
- Add social bookmarking links to articles
- Add configurable list of story editors (needed for robots.net)
- Generalize social bookmarking code for use in blogs, profiles, and projects
- Visual indication of new certs on user profile
- List of article postings in user profile
- Add static URLs for blog entries
- Add trust ratings to FOAF using Group Class
- Add user profile field(s) for specifying an RDF ID (re:TimBL)
- Add owl:sameAs tag to FOAF based on alternate RDF ID(s)
- Add OpenID client/server support
- Generate Atom feeds
- Add "user" relationship for projects
- Consider "former developer" (or "former" modifier) relationship for projects
- Generate DOAP RDF files for native projects
- Sync remotely hosted projects to remote DOAP files when available
- Add iCal parser
- Add general event ping framework
- Add technorati ping for article page and blogs
- Add google ping
- Add PingtheSemanticWeb.com ping for FOAF, DOAP, and blogs
- Add a delete diary entry feature for users
- Add a story queue where editors can pre-post stories
- Add an XML tag to render a nice table of cert levels and meanings
- Add a more/older link to recentlog (see planet lisp for ideas)
- Add code to allow use of SQL database
- Add comment/reply link to blog postings
- Users should be able to change their password
- Users should be able to change their username
- Users should be able to configure their time zone
- Field for GPG public key on user account page
- Field for GPG signature (needed to sign FOAF file)
- Fields for IM IDs on account profile
- Fields for GEO location and map widget on profile
- Add RSS feed for recentlog
- Replies should editable by author for limited time
- Add tags for article and blog postings (xFolk? rel-tag? wordnet/wordnet-rdf? other standards?)
- Add support for machine tags (e.g. geo:) (see machinetags.org)
- Email verification for signup process?
- Trusted users should be allowed to post anonymous replies
- RDF dump of user data (see ESW Wiki for examples)
- Who's online box (should be easy, we have the data already)
- Article/Blog import/export using Open Document Format (ODT) XML format?
- Logging of XML-RPC requests
- Reveal email addresses to certified users?
- Need file-based cache for infrequently updated pages
- Make aggregator smart enough not to ignore unchanged feeds
- Add an aggregator error reporting mechanism for broken feeds
- Add tag to render acceptable HTML, remove hard-coded calls
- Date index of past blog entries on user profile pages
- Tag clouds for user profile pages
- Add active user definition to config file
- Add active user stat to user stats
- Archive user stats
- Global maintenance flag that displays a "down for maint" page
- Look for ways of converting syndicated relative URLs to absolute
Advogato-specific tasks
|