View · Index

Weblog

Filtered by category OpenACS Projects, 41 - 46 of 46 Postings (all, summary)

Community Metrics in OpenACS

Created by Michael Steigman, last modified by Michael Steigman 09 Dec 2009, at 06:09 PM

What can we provide now?


* WIKI

new pages this week
average: new pages per month
page edits this week
average: page edits per month
average: editors per page

* FORUMS

new threads this week
posts this week
average: new threads per month
average: posts per month
average: forum notification subscriptions per month
ratio: posts per thread (monthly?)

example queries:

hub=# select to_char(r.publish_date, 'YYYY-MM') as month, count(*) from cr_items i join cr_revisions r on (i.item_id = r.item_id) where parent_id = '2239905' group by month order by month desc;
  month  | count
---------+-------
 2009-10 |   123
 2009-09 |   394
 2009-08 |   410
 2009-07 |   671
 2009-06 |   158
 2009-05 |     4
 2009-03 |     8
 2009-01 |     4
 2008-12 |    56
(9 rows)

hub=# select to_char(o.creation_date, 'YYYY-MM') as month, count(*) from cr_items i join acs_objects o on (i.item_id = o.object_id) where parent_id = '2239905' group by month order by month desc;
  month  | count
---------+-------
 2009-10 |     2
 2009-09 |    31
 2009-08 |    38
 2009-07 |    71
 2009-06 |    39
 2009-05 |     2
 2009-03 |     4
 2009-01 |     1
 2008-12 |    12
(9 rows)

hub=# select max(count) from (select count(distinct creation_user) as count from cr_items i join cr_revisions r on (i.item_id = r.item_id) join acs_object\
s o on (o.context_id = r.item_id) where parent_id = '2239905' group by i.item_id) a;
 max
-----
   7
(1 row)

hub=# select avg(count) from (select count(distinct creation_user) as count from cr_items i join cr_revisions r on (i.item_id = r.item_id) join acs_object\
s o on (o.context_id = r.item_id) where parent_id = '2239905' group by i.item_id) a;
        avg
--------------------
 1.4900000000000000
(1 row)

hub=# select count(distinct creation_user), i.item_id from cr_items i join cr_revisions r on (i.item_id = r.item_id) join acs_objects o on (o.context_id =\
 r.item_id) where parent_id = '2239905' group by i.item_id;
 count | item_id
-------+---------
     2 | 2239907
     1 | 2240099
     1 | 2240101
     2 | 2240276
     1 | 2240751
     1 | 2240763
     1 | 2240769
     7 | 2240772
     1 | 2248445
     1 | 2249069
     1 | 2249119
     1 | 2249149
...
     2 | 2714595
     1 | 2716420
     1 | 2721530
     1 | 2722191
     2 | 2724344
     1 | 2731842
     1 | 2752093
(200 rows)

What could we provide in the future?


average: # new/departed group members per day/month/year
average: visit length of group members
2 day answer rate for new threads
average: uploads/downloads per month
average: first answer time for threads
ratio: page view per post (lurk)
etc.

Site Wide File Upload

Created by Dave Bauer, last modified by Dave Bauer 02 Nov 2009, at 09:00 PM

Spec for File Management Overhaul on Hub

Michael Steigman (09/25/09) Updated 11/2/2009

User interface mockups

Big Picture

File management in OpenACS is a complicated affair at the moment. There are
several ways to upload and link to files and this has led to duplicate files, broken links
throughout content blocks and “embedded” files in rich text that are difficult to manage
(among many other issues). We are aiming to unify the file upload, linking and
management model and UI across the site, in order to make it simple to upload, update,
share, reference and delete files.

Organization of Files

To help users in a community or on a site collaborate, weʼd like to allow them to
organize and view files in ways that are intuitive. Taking from OS X, Google, Zoho, Windows et.
al., we envision a series of organizational areas in the files UI corresponding to different
filtering criteria.
Places - within a community, default “places” will include all applications and any other
subfolders the admin wishes to include. All users will see these places.
Views - the views area will include some basic views which should cover a lot of
scenarios (search for in OS Xʼs finder) and will expand with custom views created and
saved on the advanced tab.
Favorites (or bookmarks?) - this organizational area will display folders and files in the
personal file area which the user has marked as interesting anywhere on the site.
Shared - implied by the title, this area shows up in the personal file space and shows
files shared by and to you.

Upload and Linking Mechanisms

We want to allow users to link to/attach/upload files to any type of content and present a
consistent UI when doing this. The easiest way to do this would be to provide the same
interface users normally browse by, as OS X does. The WYSIWYG editor will have to
replicate this environment in a plugin setting. Apps that donʼt use the richtext widget
should be able to “include” a version of the browsing interface that allows for single (and
multiple?) file selection.
Much like hard links in Unix, we envision multiple links to each files. The links should be
viewable at the fileʼs canonical location (visible in the mockups). When no more links to
a file exist, the file can be deleted (think callbacks on link removal). Storing a checksum
for the file upon upload so that we can determine if it already exists within the
community would be beneficial.

Metadata Requirements

We need to be able to map from link to destination file. Within this link, we need to
capture some information - the object weʼre linking from being the primary bit of
information. If this link were to be an instance of a dedicated object type, it could also be
permissioned (i.e., a proxy). It could also point to a particular revision, which would
enable a learning module to point at a stable revision and prevent teaching material
from moving beneath a module author. These do not need to be part of the initial
implementation but should be considered.

Navigation and Page Requirements

We should provide an generic overview page (detailed in the mockups) that describes
the files attached to a piece of content. We need to be able to generate navigation for
content such as wiki pages or forum posts that include a link to the overview page if files
are attached. We also need a single, permanent page to display information about a file (File View in the
mockups).

Shared Folders

Referece Google Docs Shared Folders Feature http://docs.google.com/support/bin/answer.py?hl=en&answer=158074
Reference Zoho Document Management http://www.zoho.com/online-document-management/share-documents-collaborate.html

Use Cases

Upload File From Subsite/Group Files tab

User clicks "Add File" link or button from "Subsite->Files" page.
User sees upload dialog and chooses a file from their computer to upload.
File is added to subsite default folder.
Creation_user is the uploading user.
Parent_id is the default folder for the subsite.
Permissions are inherited from context_id,  all members of subsite can view this file.
Context_id is the default folder for the subsite.

Upload file as attachment to Forums Message (or wiki page, etc.)

(note forums post workflow is not addressed)
User chooses to attach a file to a forum message.
User sees upload dialog and chooses a file from their computer to upload.
File is added to subsite default folder.
Creation_user is the uploading user.
Parent_id is the related object, ie: forum_message
Permissions are inherited from context_id, all members who can see the forum post can see the attached file.
Context_id is the parent_id.

Attach existing file from subsite folder as attachment to Forums Message (or wiki page, etc.)

User chooses to attach a file to a forum message.
User sees file chooser dialog (embedded filter view of subsite files).
User chooses existing file.
Acs_data_link created between forums_message and the uploaded file.

Upload file to personal folder

User browsers to their "workspace" (blah) and chooses Files.
This shows the My Files view.
User chooses Add File.
File is added to user default folder (child of user object).
Parent_id is the user default folder.
Context_id is the parent_id.
Permissions are inherited from the context_id.
Noone else can see or manage these files except the user.

Attach Existing file from personal folder to a forums message etc.

User chooses to attach file to a forums message.
User sees file chooser dialog (embedded filter view of subsite files).
Somehow the user chooses to list My Files and sees a list of all files this user has created.
Use chooses file from personal folder.
User sees message that they will share this file with the group/subsite/community with a checkbox to acknowlege.
A cr_symlink is created (this is the manifestation of "share" in this case.) in the subsite default folder.
Acs_data_link created between symlink and the forums message.
Permissions, parent_id, context_id of original file do not change!
Parent_id of symlink is default folder.
Context_id of symlink is parent_id.
Permissions are inherited from context_id, all members of the subsite can view the symlink (which resolves to the file) as long as it is being shared (the symlink exists.)


View subsite files

User sees a list of files in the subsite folder or any subfolders, that they have permission to see (by default all of them.)
Shows filename/title, description, updated date/time, tags, creation user???
User sees list of Places (packages in the subsite.) Each place filters files that have acs_data_link to objects owned by that package.
User can search filenames(titles/descriptions/tags) using the Search Within feature. Just like google docs. Does not search file contents??
Clicking on a file name opens it but there should be an obvious place to view file information (permissions, revisions, links)
Clicking on a folder shows files/folders in that folder.
User can sort by name or date (asc/desc options, perhaps arrow next to name/date sort option?)
What do we do with pagination? How does search/sort affect pagination?

Experimental!! Sharing a Folder

User creates a folder or chooses an existing folder to share.
Symlink is created in group or target users folders to the shared folder depending on sharing level.
Permissions are granted on the ORIGINAL folder based on the sharing settings. NOTE: how do we do this without screwing something up? That is the sharers are not allowed to DELETE or ADMIN the original folder. But we want to simplify dealing with the items IN that folder.

Mentorship Program

Created by Ryan Gallimore, last modified by Ryan Gallimore 01 Nov 2008, at 10:35 PM

OpenACS Mentorship Program

The OpenACS Mentorship program connects new developers with experienced mentors to support students in the development of their OpenACS skills.

Our methodology includes the following:

  • minimal time commitment of a mentor to a developer
  • assignments are selected based on a student's interest and skill level, as well as community need, if applicable.
  • mentor and developer meet on a regular basis (e.g weekly) in a chat session or via e-mail to discuss his/her project.
  • creation of improved documentation for new developers.
  • participation from mentors, students and the community in the development of a core OpenACS curriculum.
If you are looking for a mentor or interested in becoming one, please post to the Forums.

 

Prerequisites and Procedures for Migrating to Subversion from CVS

Created by Hamilton Chua, last modified by Torben Brosten 22 Aug 2008, at 08:40 AM

Software

Subversion will be used for version control. The source code will be maintained inside a subversion repository.

The Apache HTTP server will be used to allow remote users to access the repository.  There are other server options for subversion, however, apache provides the following benefits that maybe important to OpenACS.

  • Network traffic can be encrypted via SSL and HTTP(S).
  • Full Apache logging.
  • Numerous authentication systems integrated with Apache
  • No need to create system accounts for users
cvs2svn is a script that reads an existing CVS repository and creates an equivalent subversion repository.

Optional Software

SvnMerge.py for tracking merges between branches. (http://www.orcaware.com/svn/wiki/Svnmerge.py)

Svn2log to generate changelogs. (http://www.core.com.pl/svn2log/)

ViewVC will be used to view the code in the repository. (http://viewvc.tigris.org/)

Experienced users on linux can use the svn command line client to checkout, update and commit code , or a graphical interface like TkSVN (http://www.twobarleycorns.net/tkcvs.html), while users on windows can use tortoisesvn (http://tortoisesvn.tigris.org/).

Outline of Actions for Repository Transition

  • Run cvs2svn on a copy of OpenACS CVS repository. (This will take a while depending on how much data is in the CVS repository)
    • There will most likely be errors reported in some of the history files. When I ran a test there were references in the history file to revisions that don't exist in the repository. The history file can be edited to remove the invalid entry. Then cvs2svn needs to be run again until all these problems are fixed.
    • The error message will have a long traceback of python code then end in someting like:
    • KeyError: '1.12.2.2' The beginning of the error message will tell you which file it stopped at. Edit the file and remove entries for the revision in the KeyError message.
    • Fix error in commitinfo,v delete revision info for 1.1
    • New error message
      • Done
        ----- pass 2 (CollateSymbolsPass) -----
        Checking for blocked exclusions...
        Checking for forced tags with commits...
        Done
        ----- pass 3 (ResyncRevsPass) -----
        Re-synchronizing CVS revision timestamps...
        ERROR: Key 198L not found within items currently accessible.


  • Install Apache with HTTP Auth.
  • Setup ViewVC
  • Point Apache and ViewVC to the new SVN repository converted from SVN
  • Create users who can access the repository on Apache
  • Rewrite Release documentation for SVN https://openacs.org/doc/releasing-openacs-core.html

Outline of Actions for openacs.org Instance

Logo

Created by Stefan Sobernig, last modified by Stefan Sobernig 06 Aug 2008, at 02:33 PM

oacs-for-debian.png
NameContent TypeLast ModifiedBy UserSize (Bytes)
oacs-for-debian.pngimage/png2008-08-06 14:33:21+02Stefan Sobernig10990

Package Testing Process

Created by Robert Taylor, last modified by Torben Brosten 31 Dec 2006, at 08:36 AM

Here are my initial thoughts about standardizing testing of OACS packages:

Testing Servers - all testing is to be done on OACS testing servers found here: http://strauss.gast.it.uc3m.es/

Testing Platform - we are going to start testing the Postgres packages to start with.  Testing for Oracle will be added depending on the outcome of the discussion on Oracle support.

Testing Process:

  1. installation testing - does a package install cleanly
  2. automated testing - a request has been made to perform automated testing on all packages and create a short list of pass/fail values
  3. uninstall - does a package uninstall cleanly
  4. feature testing - test all features in a package and record breakage.  We should look at using SELENIUM extrension for Firefox, it allows for recording of things you click on a page.

Packages Being Skipped - it has been mentioned that we should skip the testing of the .LRN packages, at least at first.  Any comments on this?

Package Pages - right now we want to keep it simple, one page per package.  It is all we need to get started.  Each page will have the following items:

  1. Autogenerated - Package info at the top of the page
  2. Autogenerated - Bug list pulled in from bug tracker.  Code for this is already created, will be submitted to CVS soon.
  3. Manual Editing - A simple table showing pass/fail for automated testing (step 2. of TESTING PROCESS)
  4. Manual Editing - Details about steps 1, 3, and 4 of the TESTING PROCESS.

Volunteers:

  1. Robert Taylor (my self)
  2. Iuri Sampaio (thanks for the quick vote in previous thread!)
  3. Hamilton Chua - selenium programming and testing (thanks, this is very cool!)
  4. ... ??? ... sign up, you know you want to! 

Any thoughts are welcome on these points, the general concensus seems to be, don't spend too much time over engineering the process but get some testing done.

More testing references:

Testing with Selenium

en:testing-with-tclwebtest


Previous Page
previous December 2024
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4

Popular tags

17 , 5.10 , 5.10.0 , 5.10.1 , 5.9.0 , 5.9.1 , ad_form , ADP , ajax , aolserver , asynchronous , bgdelivery , bootstrap , bugtracker , CentOS , COMET , compatibility , CSP , CSRF , cvs , debian , docker , docker-compose , emacs , engineering-standards , exec , fedora , FreeBSD , guidelines , host-node-map
No registered users in community xowiki
in last 30 minutes
Contributors

OpenACS.org