Re: Roller 4.0 status and code freeze date

2007-03-23 Thread Elias Torres
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

2007-03-23 Thread James M Snell
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

2007-03-23 Thread Elias Torres
+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

2007-03-23 Thread Allen Gilliland
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

2007-03-23 Thread Elias Torres


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

2007-03-23 Thread James M Snell


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