Forum OpenACS Q&A: ANN: dotLRN CVS Access Now Available

Collapse
Posted by Arjun Sanyal on
I'm pleased to announce the opening of the dotLRN CVS
tree for anonymous access. Visit
http://dotlrn.openforce.net for new and updated dotLRN
information.

On http://dotlrn.openforce.net you will find:

1. The current status of dotLRN
2. A FAQ with non-technical and technical information
3. Installation instructions

If you have questions or comments about the CVS server
or the installation instructions, post them to
openacs.org or email mailto:cvsmaster@openforce.net

The OF dotLRN team (Ben, Yon, and I) would like to
thank you for your patience and we hope you'll enjoy
dotLRN.

Great job guys! ;o)
Collapse
Posted by John Sequeira on
I've heard that dotLRN is a major, envelope-pushing OpenACS undertaking and know that it is about online courseware,  but I'd  like to know what it actually does.  Is there a web page with something like a bullet-point description of what dotLRN does specifically?

I'd like to ask for screen-shots,  but I'll settle for just knowing what it is 😊.

Collapse
Posted by Andrew Grumet on
Is this the right place to ask about installation problems?  I went through the APM packages install and am running through some basic operations.    Currently I'm seeing an error creating a new department.  The get_type_node_id query is returning no rows because the package_ids are all NULL in dotlrn_community_types.  Did I goof the install?
Collapse
Posted by Tilmann Singer on
(another one who asks if this is the right place to report problems)

On a fresh cvs checkout of both openacs and dotlrn as described in the dotlrn installation instructions, in the apm I first installed all the packages of oacs that are listed in the instructions, and then I tried to load the dotlrn packages, which produced the following errors:

Installing data model for dotLRN 1.0...
Loading data model /web/gum/packages/dotlrn/sql/oracle/dotlrn-create.sql...
SQL*Plus: Release 8.1.7.0.0 - Production on Sun Mar 31 05:21:11 2002
(c) Copyright 2000 Oracle Corporation.  All rights reserved.
Connected to:
Oracle8i Enterprise Edition Release 8.1.7.0.1 - Production
[...]
	   dotlrn_community.url(dotlrn_communities.community_id) as url,
                            *
ERROR at line 13:
ORA-00904: invalid column name
Package created.
No errors.
Warning: Package Body created with compilation errors.
Errors for PACKAGE BODY DOTLRN_CLUB:
LINE/COL ERROR
-------- -----------------------------------------------------------------
20/9	 PL/SQL: Statement ignored
20/22	 PLS-00201: identifier 'DOTLRN_COMMUNITY.NEW' must be declared
52/9	 PLS-00201: identifier 'DOTLRN_COMMUNITY.DELETE' must be declared
52/9	 PL/SQL: Statement ignored

and a bunch of more error messages, all within loading the datamodel of the dotlrn package itself - the other dotlrn-* packages installed without errors. As a result after mounting dotlrn most pages return errors, e.g. creating a new department or club, viewing an existing term, viewing the classes overview ...

I know that I have not restarted the server between installing the oacs packages and the dotlrn packages, but that can't be the reason for these errors, can it?

Collapse
Posted by Yonatan Feldman on
Andrew: something definately went wrong, hard to tell what it was without
more detail. make sure to follow the instructions closesly, especially the
server restarts at the different times during installation.

Tilmann: looks like dotlrn-communities-package-create.sql didn't get run. try
sourcing it by hand and see if that helps. i would try re-installing from scratch
though becuase if that file didn't load it is likely that others didn't either.

Collapse
Posted by Andrew Grumet on
Okay, I got the same errors Tilmann did but wasn't paying attention the first time.  I think the problem is that dotlrn-communities-package-create comes after dotlrn-clubs-create.  So it's time to play the installation order dependency game...
Collapse
Posted by Andrew Grumet on
Had better luck after taking the following steps:
  1. In dotlrn-create.sql, move @dotlrn-communities-package-create.sql up several lines so that it comes right after @dotlrn-communities-create.sql
  2. The previous almost works by itself. One glitch is that the dotlrn_community package still relies on a view that doesn't get defined until later. I did this
    SQL> alter package dotlrn_community compile;
    
    Package altered.
    
    which I think solved the problem. These dependencies could be more clearly ironed out but I'll leave that as an excercise for the student.
I have a lot more functionality to look at now.

Anyone else trying this: you need to get a working ACS installed before installing the dotLRN packages. For error recovery, you can save yourself some hassle by creating an export dmp file after all the needed non-dotLRN packages are installed (caveat: due to some Oracle voodoo I never quite understood, imp'ing ACS4 views tends to be messy, though easily fixed by re-defining the failed views). Finally, note from the dotLRN instructions that you have to restart the server twice, once immediately after the dotLRN packages have been installed, and a second time immediately after mounting dotLRN into the site map. Kinda brings back memories of Win98, don't it ;).

Collapse
Posted by Andrew Grumet on
By the way, thanks Yon for the suggestion and thanks to the dotLRN folks for sharing their work!
Collapse
Posted by mark dalrymple on
If you own your oracle install (like it's on your development machine or something like that), you can avoid the imp/exp headache by taking a cold backup of all your .dbf files and your control files.  (shut down the database cleanly - not shutdown abort!), copy the various .dbf and control files to another directory.  You don't need to copy the entire gigantic oracle install)  If you decide that Serious Damage was done by running a script, you can blow away all of the dorked files and replace them with your backups.
Collapse
Posted by Dave Bauer on
In my install I am seeing this error when I try to browse to the dotlrn directory:

<pre>invalid command name "permission::permission_p"

</pre>

There does not seem to be a permission namespace defined anywhere.

I can get to the classes and community pages so I will explore there.

Collapse
Posted by Michael Feldstein on
OK, we've been able to do the following:

- Create a department
- Create a subject
- Create a term
- Create a class
- Create a community

The trouble is that when I go into the class or community, there's
nothing there. I don't get error messages; you just get blank
pages. Basically, within a class I get a row of links for "Class
Home," "Calendar," "File Storage," "Survey," and "Control Panel."
Then right below that I get an identical row of links. These are
basically the same regardless of which link I follow. When I go to
the admin page for the portals, there are no portlets to add. So it
looks like dotLRN doesn't know that the portlets are there.

Collapse
Posted by Ben Adida on
Hi all,

It looks like we introduced a last minute dependency bug in the
loading of the dotLRN data model. I've just fixed this and
committed the changes. I suspect that the bug might also be
causing your applet failure problem, Michael. Try updating CVS
and reloading the system now. I've just tested a from-scratch
install. No error messages and all applets seem to be working.

As for restarting dotLRN: technically, once you have OpenACS
installed, you can install the dotLRN packages, mount dotLRN
under /dotlrn, and then restart only once. We'll try to come up with
a nice/robust method for doing all of the initialization without
restarting, but what we're effectively doing here is patching a
missing feature in OpenACS: some kind of hook for custom
actions to be performed once a package is added. Since we
don't have this hook, it's extremely difficult to *cleanly* initialize
the dotLRN environment... thus the restart.

Collapse
Posted by Michael Feldstein on
Ben, your use of the word "applet" has me curious. Is this Java?
If so, what was the rationale behind using it? If not, what makes
it an "applet"? (Sorry if these are somewhat naive questions.)
Collapse
Posted by Ben Adida on
This has nothing to do with Java. A dotLRN applet is a small dotLRN application. Like dotLRN bboards. Or dotLRN FAQs. The term "applet" is the most correct semantically, but we understand the potential confusion with Java. The other potential term is "module." Would that be less confusing?
Another issue is that we don't want to confuse dotLRN modules with OpenACS modules/packges.
Collapse
Posted by Michael Feldstein on
I would suggest that we stick with the consistent use of of
OpenACS terminology and add appropriate modifiers. For
example, an OpenACS package that has been given a wrapper
to work with dotLRN could be called a "dot-LRN-enabled"
package. In contrast, dotLRN package that has no
corresponding generic OpenACS version could be called a
"dotLRN-specific" package or perhaps simply a "dotLRN"
package. (I could imagine there being dotLRN-specific service
contracts as well.)
Collapse
Posted by Don Baccus on
Applet's fine, common usage isn't restricted to the Java world.  The little thingies you add to your KDE taskbar are called "applets" for instance, and KDE/QT are both written in C++.

I'd rather avoid inventing OpenACS-specific jargon to describe things that the existing technical vocabulary covers.

"packages" are called packages because they functionally do what folks would expect a package to do.  Do we assume that packages are written in Ada?  I don't ... nor do I assume an applet's written in Java.

Collapse
Posted by Jade Rubick on
Mark, would you mind posting in a separate thread how you do your cold backups? Maybe even post your scripts? That would help me out a great deal! I'm currently backing up the entire ora8 directory..
Collapse
Posted by Jonathan Ellis on
I like Michael's naming suggestion...  just as "Windows" automatically means "MS Windows" to most people, "applet" has come to mean "java applet."
Collapse
Posted by Ben Adida on
The mapping of a dotLRN concept to an OpenACS concept is
tempting.. but not altogether correct. A dotLRN applet may well
consist of many OpenACS packages. In fact, the layer of
abstraction is one level up. Using an OpenACS term may well be
more confusing.....
Collapse
Posted by Michael Feldstein on
I guess the naming question is related to who has to know what
the thing is. If the people who have to understand what a dotLRN
"applet" is are relatively clueful developers, then it makes sense
to go with the technically correct, generic term of "applet."
However, if you're talking about a somewhat broader audience
who might jump to conclusions based on the Java association
(as I did), then I would think "module," "bundle," or even just
"application" might be less confusing.
Collapse
Posted by Rich Graves on
This is very nice. Thanks! I told some folks just this morning that I didn't think we'd have anything ready to "demo" to advocate a summer dotLRN project but I might have been wrong.

It installed exactly according to the directions in one hour.

I created departments, terms, a subject and course, tried the art deco theme, added a threaded bboard, posted an article and a followup, got an ORA-01740 (missing double-quote?) error clicking on Control Panel as instutor for my course, but then went and looked at other things, went back and got no error at the same URL. Weird.

Let me know if you want more details, I'm guessing no on irreproducible errors on an alpha.

[01/Apr/2002:20:59:23][2665.3076][-conn0-] Error: GET 
/dotlrn/classes/History/HIST_150B/HIST_150B/one-community-portal-template 
 ora8.c:3660:ora_tcl_command: error in `OCIStmtPrepare ()': Error 
while trying to retrieve text for error ORA-01740
 
SQL:
select count(*) as num_regions
from portal_supported_regions
where layout_id = :layout_id"
 
    while executing
"ns_ora 0or1row nsdb0 {
select count(*) as num_regions
from portal_supported_regions
where layout_id = :layout_id"
}"
etc. I'll hold onto the error-log for a bit in case anyone cares.

I can see why you're interested in shortening the urls/breadcrumbs. 😊

Collapse
Posted by Arjun Sanyal on
Dave: the permission namespace is in acs-tcl/tcl/acs-permissions-procs.tcl

Rich: Glad to hear you've had some success. I don't remember seeing that error before... Send the log snippet to mailto:dotlrn@openforce.net and I'll take a look at it.

Collapse
Posted by Arjun Sanyal on
Rich: I don't think you need to send the log now. :) I just applied a patch to the xql file that Andrew Grumet sent us yesterday. cvs update and it should be working.
Collapse
Posted by Rich Graves on
Arjun: Yes, a cvs update fixed portal management.

Other problems I've noticed:

The rest of sloan-bboard seems to work, but both

/dotlrn/classes/History/HIST_150B/HIST_150B/forums/message-delete?forum_id=4939&message_id=4940

and

/dotlrn/classes/History/HIST_150B/HIST_150B/forums/message-mail?forum_id=4939&message_id=4940

die with

No script or template found for page 
'/web/dotlrn/packages/sloan-bboard/www/simple-message'
    while executing
"error "No script or template found for page '$__adp_stub'""
    (procedure "template::adp_parse" line 67)
    invoked from within
"template::adp_parse [template::util::url_to_file "simple-message" 
"$__adp_stub"] [list author "$quote(full_name)" title "[Fwd by 
${sender_email}] $q..."
    invoked from within
"append __adp_output [template::adp_parse 
[template::util::url_to_file "simple-message" "$__adp_stub"] [list 
author "$quote(full_name)" title "[Fwd by..."
    ("uplevel" body line 38)
    invoked from within
"uplevel {
          set __adp_output ""


    #
    #  Copyright (C) 2001, 2002 OpenForce, Inc.
    #
    #  This file is part of dotLRN.
    #
    #  do..."
    (procedure 
"template::code::adp::/web/dotlrn/packages/sloan-bboard/www/m..." 
line 2)
Also, this is probably a generic openacs installation/documentation bug, but
Request Errormkdir 
("/web/dotlrn/content-repository-content-files/50") failed:  no such 
file or directory
    while executing
"ns_mkdir [cr_fs_path]$path"
    (procedure "cr_create_content_file_path" line 13)
    invoked from within
"cr_create_content_file_path $item_id $revision_id"
    (procedure "cr_create_content_file" line 3)
    invoked from within
"cr_create_content_file $file_id $revision_id $local_filename"
    (procedure "bboard_attach_file" line 24)
    invoked from within
"bboard_attach_file -message_id $message_id -file_id $file_id  
-short_filename $base_filename -local_filename $full_filename 
-mime_type $guessed_file_t..."
    invoked from within
"if { $file_ext == "jpeg" || $file_ext == "jpg" || $file_ext == 
"gif" } {
        set image_size [bboard_image_size $file_ext $upload_file]
Upon creating the base content-repository-content-files directory and resubmitting the request, I get
Request Errorora8.c:3908:ora_tcl_command: error in `OCIStmtExecute 
()': ORA-01745: invalid host/bind variable name

SQL: 
      
        update cr_revisions
        set filename = :filename,
            content_length =  !>>>!size
        where revision_id = :revision_id
      
      
    while executing
"ns_ora dml nsdb0 {
      
        update cr_revisions
        set filename = :filename,
            content_length = :size
        where revision_id = :revision_id
      
      ..."
    ("uplevel" body line 1)
    invoked from within
"uplevel $ulevel [list ns_ora $type $db $sql] $args"
    invoked from within
"db_exec dml nsdb0 
dbqd.sloan-bboard.tcl.bboard-procs.bboard_attach_file.set_content_size 
{}"
    ("eval" body line 1)
    invoked from within
"eval [list db_exec $command $db $full_statement_name $sql] 
$lob_argv"
    invoked from within
"if { $lob_argc == 1 } {
            # Bind :1, :2, ..., :n as LOBs (where n = [llength 
$lob_argv])
            set bind_vars [list]
            for { set i 1 } { $i <= [ll..."
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $code_block "
    invoked from within
"db_with_handle db {
        if { $lob_argc == 1 } {
            # Bind :1, :2, ..., :n as LOBs (where n = [llength 
$lob_argv])
            set bind_vars [list]
            for { ..."
    (procedure "db_dml" line 35)
    invoked from within
"db_dml set_content_size """
    (procedure "bboard_attach_file" line 27)
    invoked from within
"bboard_attach_file -message_id $message_id -file_id $file_id  
-short_filename $base_filename -local_filename $full_filename 
-mime_type $guessed_file_t..."
    invoked from within
"if { $file_ext == "jpeg" || $file_ext == "jpg" || $file_ext == 
"gif" } {
        set image_size [bboard_image_size $file_ext $upload_file]
        set width [lindex..."
    ("uplevel" body line 6)
    invoked from within
"uplevel 1 $transaction_code "
    (procedure "db_transaction" line 1)
    invoked from within
"db_transaction {

    # check for and add MIME types missing from cr mime types table
    bboard_check_and_register_mime_type $guessed_file_type

    ..."
    ("uplevel" body line 66)
    invoked from within
"uplevel {
          #
#  Copyright (C) 2001, 2002 OpenForce, Inc.
#
#  This file is part of dotLRN.
#
#  dotLRN is free software; you can redistribute it..."
    (procedure 
"code::tcl::/web/dotlrn/packages/sloan-bboard/www/message-att..." 
line 2)
Collapse
Posted by Rich Graves on
Usability annoyance:

In Classic ACES, the administrator's portal had "edit" buttons on
all the portlets they were allowed to edit. With the dotLRN alpha
you have to click through the Control Panel to do any of those
operations.

Collapse
Posted by Ben Adida on
Rich, click through on the ACES edit icons a bit more. If it's
anything like SloanSpace v1, you'll find some errors, because
the edit buttons appear where they shouldn't.

It's actually not super simple to provide edit capabilities right
there in a modular way. We're working on it...

Collapse
Posted by Tilmann Singer on
After updating dotlrn packages to the latest CVS versions they installed without errors, but I am seeing the same situation as Michael - a more or less empty community page that only contains two rows of links. Michael - did you find the reason for this?

I suspect that maybe I did not properly update all acs-core files to their newest versions. Now I am somehow reluctant to reinstall oracle oacs from scratch again - since my development machine crawls when it has to run oracle and I only wanted to take a look at the current functionality of dotlrn ... asking for a publicly available demo installation is propably a bit early, but I guess I'll ask anyway - does anybody have a successful dotlrn installation online? It'd be great for those of us that just want an initial glimpse of what dotlrn is going to be ...

Collapse
Posted by Arjun Sanyal on
Tilmann and Michael: Can you look in the server log to see if the
portlets are being executed when you hit the page? You should see bboard, calendar, faq queries, etc. Check for errors in the log well.
Collapse
Posted by Matthew Burke on
It's probably not what is meant by "laziness is one of the cardinal virtues of programmers" but I second the motion for a public demo site.  I would like to get a feel for dotLRN but right now I don't have a machine available on which to put Oracle.
Collapse
Posted by Caroline Meeks on
Dear Matt and Tilmann and any other "lazy programmers" out there,

<p>
Sloan has agreed to let us provide access for developers to our staging server.  Please be aware.

<p>
<ol>
<li>    This is a staging server undergoing active development. Things will sometimes be broken.
<li>    The datamodel is not yet stable. This means occasionally and without warning all data, including your entire account, will be wiped.
<li>    This is intended for developers who want to get a quick feel for dotLRN or compare thier instalation with a working installation, it is not a polished marketing site.
</ol>

If you would like an account please go to.
<p>

<a href=http://helice.mit.edu:8080>http://helice.mit.edu:8080</a>

Sign up for a new account. You will receive a reassuring message that the administrator has been informed of your request. Unfortunately, this feature is not yet turned on. However, I will try to check the pending list daily and approve people.
<p>
If you have problems please notify me directly at <a href=mailto:mailto:cmeeks@mit.edu>mailto:cmeeks@mit.edu</a>.  You can also report bugs to me and I will put them on the Sloan Project ticket tracker.  We have a long list of known bugs and Open Force is working through them one module at a time.

<p>
Thank you for your interest and patience in this project.
<p>
Caroline

Collapse
Posted by Don Baccus on
Hey, Caroline, that's great.  I've registered myself ... I think having this site up will encourage folks to drop by and try things out.  And find bugs.
Collapse
Posted by Michael Feldstein on
Arjun, sorry for taking so long to get back to you. No, the portlets
are not being executed, and no, there are no errors reported in
the error log.
Collapse
Posted by Arjun Sanyal on
Michael: I haven't seen this issue, but here are some things to check: Update all of openacs and dotlrn from CVS. Make sure that you are a dotlrn user (/dotlrn/admin/users), make you can see the membership page for the community (../yourcommunity/members). If you can see that page, make yourself a member or admin. Once you are a member or admin, you _should_ see the class/communities's portal. If all fails, you can register at http://helice.mit.edu:8080 for the time being

Everybody: I will be updating the dotlrn installation doc by next tuesday. I'll post when I do so.

Collapse
Posted by Tilmann Singer on
I justed wanted to thank you for setting up that demo installation of dotlrn. That's a great opportunity to check out its features, without going through the troubles of installing.