Re: Roller 4.0 status and code freeze date
I have two proposals I have not written up yet... - Search (this is a substantial amount of work, but I have many pieces tested out, just needs write up and review) - Minor tweaks here and there to better support reverse proxies ( revise response headers, etc) -Elias 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
Re: Roller 4.0 status and code freeze date
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) 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. 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. 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. 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
Re: Roller 4.0 status and code freeze date
+1 ;) -Elias 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) 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. 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. 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. Proposal 6: Atom Threading Extensions support We have added support for the Atom Threading Extensions (RFC 4685) to the Atom feeds
Re: Roller 4.0 status and code freeze date
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
Re: Roller 4.0 status and code freeze date
Allen Gilliland wrote: [snip] 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. I think the purpose to allow all users to rate your entry, sort of like tagging your entries. Therefore we need multiple rows per entry. -Elias
Re: Roller 4.0 status and code freeze date
Allen Gilliland wrote: 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 ... [snip] 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 rating table tracks each rating per user and the time of the rating. create table roller_weblogentry_rating ( entryid varchar(48) not null, userid varchar(48) not null, ratetime timestamp not null default current timestamp, rating smallint not null default 0, primary key (entryid,userid) ); This allows us to easily track the number of ratings for an entry, allow users to modify their ratings, ensure that users cannot game the system by rating an entry more than once, etc. 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 ... Yes, this is good. Let me stew on this a bit more and see if I can come up with something good. [snip] 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. In our implementation it sits just off the home page. We have a tabbed interface where one of the options is My Activity. The way it is implemented, it could appear either in the authoring UI or homepage theme. [snip] 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. Ok, I missed that completely. Thanks. 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. Not necessarily for 4.0. Things like the threading extension and bidi support are very easy. I can submit patches for those for 4.0 quite easily. Most of this has already been implemented but, like the RatingServlet, can likely be implemented better. It is not likely that all these can get done in time for the 4.0 release. - James