Nexus – Minor Updates

front loader

In the announcement last week about the third release of the nexus alpha, we mentioned that we would focus on minor improvements, refactoring, and content this week.

Here’s an update about what we did today – we pushed two updates to the site – one this morning, and one this evening.

Morning Updates of Nexus

This morning we pushed some bug fixes to the site.

  1. When logging out, immediately after viewing an “off-site” article, the nexus page would immediately navigate to that off-site article and re-load it. This has been fixed. Nexus will now take the user to the main page on logout.
  2. When adding an empty (placeholder) item to a bundle that already had items, at least one of which was already associated with an article, the new item would also be automatically associated with the last article in the list. This has been resolved, and new “empty” items can be added to bundles.
  3. The list of items in a bundle can be re-ordered. Only the creator/owner of a bundle should be able to re-order the items. Any user (even unregistered users) could re-order the items in a bundle. This has been fixed. Now, only the owner of a bundle can re-order the items in it. There is still a low-priority bug in that the “re-ordering handles” are still visible, even when a user is not allowed to re-order a bundle.
  4. When assigning an article to a placeholder item in an existing bundle, there was a rendering error that caused text on the page to be improperly formatted (rendering javascript as raw text). This has been fixed.
  5. The stylesheet for formatting the rich-text editing windows was not being properly referenced, so text within that control was unduly small (even though it was “normal sized” after saving. This was caused by the differences between the dev box (windows) and the server (linux) using different directory mechanisms. This has been resolved.

Afternoon Updates of Nexus

I added four more articles to nexus, focusing on project management.

While adding those articles and validating the bug-fixes from the morning, I concluded that the need for having help documents for users had reached “critical mass.” The easiest implementation of help documents (balancing speed of help-doc creation with time spent to write the code, if any, to display them) requires the site to allow only a single user (me) to be able to add help documents. A role-based authorization approach to this would make it simple, and would also allow me to implement the “delete an article” functionality that we have known was needed for a while.

During the afternoon, I implemented a simple role-based authorization model and made my account an administrator. I also enabled the deletion functionality (which was previously written, but not exposed) for users with the admin role. In the future, this will be easily extensible to a “moderator” role, when the site grows to the point that additional people are needed to help with this. The deletion was implemented such that it suppresses articles that are “deleted” from display and search, instead of literally deleting them from the database. This allows the possibility of future “undelete” capabilities, and also enforces the “unique URL” rule for articles – users will not be able to submit an article that was previously deleted.

Other Activities

I also reviewed the RSS 2.0 specifications for generating a subscribable feed. A standard feed would be straightforward to create, and would work just like the feeds you normally get from blogs or news sites. I also explored the RSS extensions that Google Base has created and the SSE extensions created by Microsoft. Neither offers a compelling technical opportunity for nexus at this time.

I’ve also been studying more Ruby on Rails, to get better at implementation and to be able to identify weaknesses in the current solution.

Next for Nexus

The next step for nexus will be to implement the help-documentation functionality and begin creating goal-directed help documents.

Leave a Reply

Your email address will not be published. Required fields are marked *