I think all of these sound interesting and I definitely think you should
write up proposals for them so we can talk about them more. A couple
specific comments inline below ...
James M Snell wrote:
There are a number of proposals that I would like to make. Being that I
haven't submitted any proposals in the past, I'm not 100% sure how to go
about doing it. Here are the basics. Whether these are for 4.0 or not
is definitely not critical.
Proposal 1: Entry ratings and "Featured Posts"
Every entry has a five star rating that, together with the total
comment count and a random weighting is used to generate a listing
of "Featured Posts" that are displayed on the homepage. A date
range for posts considered can be set (e.g. posts from the last
week, last two weeks, last month, etc). The maximum number of
posts that can be featured is 30 (our homepage only shows 4).
The selection of featured posts changes every time the method
is called and is largely non-deterministic. Entries with the
highest ratings and comment counts have a greater chance of
being featured.
The implementation is fairly simple.
* New DB table called roller_weblogentry_rating
* New getRating/setRating on WeblogEntryData
* WeblogManager has new saveWeblogEntryRating and
getWeblogEntryRating methods
* RatingServlet processes the requests for setting
and rendering the five star ratings (ajax)
* weblog.vm macro injects the code necessary to
render the ratings
* Additions to roller.js to process the ratings
(ajax)
This is definitely an idea we would be interested in, but out of
curiosity, why wouldn't a rating be a direct attribute of an entry
rather than an association? It seems that way you wouldn't need a new
table, just a new column.
The other thing is the RatingServlet. If the purpose of that servlet is
to return some kind of computer consumable output then I think the
better approach would be to create something like a JsonServlet and make
part of that servlet capable of getting entries by rating. I know that
one of the things I definitely think we should add to Roller is some
ways to make weblog content come out in more formats than just html &
xml (atom & rss). So if we had a JsonServlet which allowed you to get
at all the normal data about a weblog directly then that would fulfill
this need and provide more options to Roller users/developers who want
to create more tools for weblogs using ajax. i.e. something like ...
/<weblog>/json/entries/rating/5
/<weblog>/json/entries/category/myCat
/<weblog>/json/entries?size=10
/<weblog>/json/comments/entry/<anchor>
Those urls would return json content for 5 start entries, entries in
category 'myCat', 10 most recent entries, and comments from an entry
respectively.
Proposal 2: "My Activity" Page
In the previous IBM blogging environment, we had two views that
listed comments to my posts and follow-ups to my comments on
other posts, respectively. In the current version, I have merged
these into a single view that shows all comments to all entries
that I have either posted or commented on. An ActivityServlet
mapped to .../roller-ui/activity serves the page which is rendered
using an _Activity.vm template in the default homepage blog theme.
Currently, the page requires authentication to determine the
identity of the requesting user so their "watched threads" can
be selected. A feed showing this data is also available.
Sounds good, but is the real purpose of this to go on the homepage or
somewhere in the authoring UI? since you are required to be logged in
it seems like this could just be in the authoring UI and displayed on
(or just off of) the main menu when you login.
Proposal 3: StatisticsManager
I have implemented a new StatisticsManager component that provides
a number of extended features that can be surfaced in a variety of
ways.
* Count of total entries, users, websites, tags, new
entries/comments/websites today/this week.
* Breakdown of users per email domain (we use this to
track the geographic diversity of our blogging environment)
* Charting the growth of the system over time
* number of entries per day, cumulative entries
* number of comments per day, cumulative comments
* number of tags per day, cumulative tags
* number of websites created per day, cumulative sites
* Charting the "decay" (rate of abandonment) of the system
* Retrieving a list of tags similar to a given tag
(sql: tag like '%{tag}%')
* Retrieving a list of tags related to a given tag
(tags used frequently with {tag})
* Retrieving a list of users who frequently use a given tag
("tag experts")
* Retrieving a list of users who frequently comment on a given
users entries
* Retrieving a list of blogs that frequently use the same tags
as a given blog
A new statistics servlet mapped to .../roller-ui/statistics
uses a _Statistics.vm template in the default homepage theme
to render the stats. Our current implementation uses the Dojo
charting implementation to render the various graphs.
Similar tags, related tags and "tag experts" are displayed in the
sidebar when viewing entries for a given tag
The listing of frequent commenters shows up in the "My Activity"
page (Proposal 2 above)
A listing of related blogs can show up in the sidebar of a blog.
A listing of related entries can show up in the sidebar of a blog
entry page.
Proposal 4: User and Blog Search
In addition to searching posts, we have enabled the ability to search
for blogs and users based on variety of criteria. I have not yet
fully ported this over from our old environment to our new
Roller 3/Lotus connections impl but the basic idea is to extend the
search indexer to support creating Lucene indexes for blogs and users.
Ideally, the user indexer would be capable of optionally pulling in
index data from external sources (e.g. an LDAP registry). The type
of searches we want to enable include finding all blogs for users
within a given geography, or corporate division, or department, etc.
Again, this has not yet been fully implemented.
definitely something we should support.
Proposal 5: Language Filtering
This has not yet been implemented, but we would like the ability to
filtering the home page listing of entries by language.
this should already be working, if you go to /<frontpage blog>/<lang> it
should return entries from just that language.
Proposal 6: Atom Threading Extensions support
We have added support for the Atom Threading Extensions (RFC 4685)
to the Atom feeds produced (entry and comment feeds)
Proposal 7: Atom Bidi Attribute support
We have added support for the draft Atom Bidi Attribute specification
for entries that are marked as "Right-to-Left"... e.g.,
<entry dir="rtl">
...
</entry>
That's it for now. For most of these, we would need to execute a code
grant. Before I start that process, however, I need to know if y'all
are interested in these.
That's a lot of proposals, are you really going to try doing all of them
for 4.0? The best thing is probably to just pick the ones you feel sure
you'll be able to complete in the next month or so and focus on those.
-- Allen
- James
Dave wrote:
I just updated the Roller 4.0 proposal page and linked to all
proposals and JIRA issues that are related to the release. Please take
a look and make sure your proposals and issues are represented
correctly. Did I leave anything off the list?
I'd like to set a code-freeze date for Roller 4.0 or at least get an
idea of when we'll have a chance of frost. I know how hard that can be
with competing priorities, legal holdups and such but it would be
wonderful if we could sync up enough to all be testing around the same
time.
So committers: Can you estimate when your 4.0 work will be feature
complete?
I think I can be done by mid to late April.
- Dave