Archive

Archive for October, 2007

New in D6 Platform: Service Oriented Architecture (SOA)

October 26, 2007 doquent 5 comments

A new D6 feature that has generated great buzz is SOA using Documentum Foundation Services (DFS). It may take quite some time to write detailed posts about DFS and SOA in D6. However, I can get you started with a good overview at CMSWiRE. Enjoy!

Book Review: Moodle by William H. Rice IV

October 26, 2007 doquent Leave a comment
Moodle Book This is a review of the book – Moodle: E-Learning Course Development by William H. Rice IV. Click on the cover image to see the publisher page for the book. The book is published by PACKT Publishing – an active supporter of open-source projects.

Disclaimers / Disclosures

  1. This review represents my independent opinion.
  2. No one has solicited this review. Specifically, I have not been paid by the author or Moodle for this review.
  3. The publisher has provided me with a free copy of the book for writing this review.

Approach

This review does not attempt to provide information about Moodle outside the context of the book. The review focuses on what the book offers, what it does well, and where it could have done better. Content outline and information about the author is present on the publisher’s page for the book.

Review

Earlier this year, I was searching for a free tool for creating and publishing quizzes or tests online. At that time I tried several tools and finally settled on Question Tools for my simple need (Question Tools is a full-featured suite but I only needed to use the core functionality). Later when I encountered Moodle I was very impressed with what it had to offer. A little bit later I learned about this book and I couldn’t wait to get my hands on it. It is almost becoming a habit now – if I read a book I want to share a review with others.

The book uses version 1.4.4 (the current stable release is 1.8.3) but most of the information in the book is still relevant. Certainly the wisdom shared in the book about using the features is not tied to a particular version!

I would describe this book in one sentence as a handy guide filled with illustrations and practical advice that reflects the author’s experience both with teaching/learning and with writing (he has also authored couple of other books). It is pertinent to mention what this book is not – it is not a regurgitation of the online manual and documentation so you would be ill-advised to ignore the product documentation when implementing Moodle.

The stated goal of the book is to help the reader enhance teaching using Moodle as a tool. It also aims to help the reader make the most of Moodle features for creating an engaging online learning experience. The book emphasizes creating “learning experiences” rather than “courses”. The chapters in the book are stitched together using a common thread of sample content about foraging and wilderness skills (obvious personal interests of the author).

The book starts with an outline for planning and implementing a Moodle solution. This outline provides a good perspective since it is easy to get lost in the details of the product features. Then he shares the Moodle experience from an end user’s perspective using a sample site. Next follows advice on installation and configuration options. Once the site is ready categories and courses can be created. The meat of the book is about creating course material, which is explained over three chapters – Static Course Material, Interactive Course Material, and Social Course Material. The social features are really the strength of Moodle for creating a unique learning experience; these features include chat, forum, glossary, wiki, and workshop. The last three chapters offer valuable advice that goes well beyond the description of feature capabilities. Welcoming You Students provides advice on options for creating first impressions and customizing the look and feel depending on your needs and the purpose of your site. Features for Teachers covers the features that are most used by teachers and are most relevant to them. The final chapter addresses managing modules for additional features and discusses some of the key administration tasks. The book concludes with a handy checklist for planning and implementing a Moodle site.

So what do I think of this book? In my opinion, this is a great book for various reasons – it offers valuable advice about implementing Moodle which goes well beyond describing what the product can do. It has a friendly tone and is richly illustrated. When 236 pages contain all those illustrations, it won’t be a burden to run through the book. One way to make good use of the book is to breeze through it, focusing on the implementation advice. Then come back and use it as a reference when you are ready to get your hands dirty.

In a book review, I always try to include suggestions that could improve the book but I struggled in this case and I will leave it at that.

Conclusion

This is a great book packed with practical advice about creating a learning experience with Moodle. Use the book early to plan out your site implementation. Use the book in conjunction with the product documentation when setting up your Moodle site. Finally, use this book to make suitable configuration choices for your needs since, with Moodle, choices you have aplenty!

Categories: Moodle Tags: , , , ,

Import Database from Oracle Dump

October 18, 2007 doquent 1 comment

This post is probably too elementary and simplistic for anyone with Oracle administration experience. However, developers who normally don’t perform administration tasks may find it handy for setting up a DEV Oracle database.

Suppose you need to import an Oracle dump file for creating a local database copy for development purposes. The following steps can be used as a guideline.

  1. Prerequisites:
    1. Oracle database server software has been installed.
    2. An Oracle instance (say orcl) has been set up.
  2. Create a tablespace for the imported the data and associate a user with it. It can be accomplished with a script along the lines of the following. Replace the italicized tablespace name and user name/password with your own values. You can also change the database file path. Run this script when connected as SYSDBA.
    set echo on
    spool c:\temp\orcl.log
    CREATE TABLESPACE MY_TABLESPACE DATAFILE
    'C:\oracle\product\10.2.0\oradata\orcl\MY_TABLESPACE.DBF' SIZE 512M REUSE;
    ALTER DATABASE DATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\MY_TABLESPACE.DBF'
    AUTOEXTEND ON NEXT 256M MAXSIZE 2048M;
    GRANT CONNECT TO myuser IDENTIFIED BY myuserpassword;
    GRANT CREATE ANY VIEW,RESOURCE,UNLIMITED TABLESPACE to
    myuser;
    ALTER USER myuser DEFAULT TABLESPACE MY_TABLESPACE
    TEMPORARY TABLESPACE TEMP;
    GRANT select_catalog_role TO myuser;
    spool off
    disconnect;
    exit;
  3. Import the dump file using the command-line utility present in the bin folder, e.g. C:\oracle\product\10.2.0\db_1\BIN. The command line would look like,
    imp myuser/myuserpassword@ORCL file=c:\temp\mydb.dmp full=yes log=c:\temp\imp.log
Categories: Etc Tags: , , , , ,

Startx fails on Cygwin

October 11, 2007 doquent 3 comments

Cygwin is commonly used as a tool for running X server on Windows when graphical applications running on UNIX/Linux need to be accessed from Windows. This is a common need when Documentum products need to be installed on UNIX/Linux remotely from a Windows workstation.

Sometimes, one runs into a problem when startx fails on Cygwin. This may happen intermittently or consistently. Look at the messages carefully. When the message showed error number 487 and fork() failed, the following steps have helped to resolve the issue for me:

  1. Close all Cygwin programs.
  2. Run bin/ash.exe under Cygwin installation. On the shell prompt run the following commands
    1. /bin/rebaseall
    2. exit
  3. Start Cygwin/bash
  4. startx

I found this tip here.

Categories: Etc Tags: , , , , , ,

New in D6 Platform: LDAP Integration Enhancements

October 4, 2007 doquent 1 comment

Documentum can use an LDAP directory as a source of users and groups as well as a server for authenticating users. D6 has enhanced the capabilities for using LDAP servers with Documentum in the following ways:

Support for Additional LDAP Vendors

In version 5.3 Content Server supported the following LDAP servers:

  • Microsoft Windows Server 2003 Active Directory
  • Oracle Internet Directory
  • Sun Java System Directory Server

D6 extends the LDAP support to the following servers:

  • IBM Tivoli Directory Server
  • Novell eDirectory
  • Microsoft ADAM (Active Directory Application Mode)

Robust LDAP Authentication

D6 makes LDAP authentication support more robust by adding the ability to retry connection attempts and the ability to use secondary LDAP servers for failover, when the primary LDAP server is not available. These capabilities are described later.

Flexible LDAP Attribute Mapping

D6 also enhances the flexibility in using LDAP as a source for users and groups by enabling mapping of multiple LDAP attributes to one property and the ability to use expressions to define the mapped value. This new capability is also described below.

Robust LDAP Authentication

In D6, it is possible to configure secondary, failover LDAP servers for any primary LDAP server used for authentication. A primary LDAP server is one that the Content Server initially resolves for authenticating a user. Each primary LDAP server can have one or more failover LDAP directory servers for authentication. Content Server uses the failover LDAP servers if the LDAP server initially chosen for authentication is not available.

An LDAP configuration object represents an LDAP server that Content Server can use for authentication (or for user/group synchronization). The failover behavior is controlled by the following two properties in the LDAP config object:

  • failover_ldap_config_ids – lists the object IDs of the secondary LDAP server config objects for the primary server represented by this LDAP config object
  • failover_use_interval – defines the duration for which Content Server will continue to use a failover server for authentication before attempting again to contact the primary LDAP server. This enables restoration of normal operation once the primary LDAP server becomes available again

When Content Server chooses an LDAP server to authenticate a user, it retries connection to the LDAP server via multiple attempts if the connection attempt fails.

The retry_count property of the ldap config object specifies the number of times Content Server will attempt to contact the chosen LDAP server.

If all of these attempts fail and there are secondary, failover LDAP servers configured for the primary LDAP server, Content Server attempts to use one of those servers. If there are no failover LDAP servers configured or if the user cannot be authenticated using a failover server, user authentication fails.

Having seen the new features in LDAP configuration, we can now understand the overall failover behavior in the authentication process.

  1. The primary LDAP server becomes unavailable.
  2. Content Server receives an authentication request and attempts to bind to the primary LDAP server. The connection attempt fails. Content Server makes as many total attempts as specified in the
    retry_count property of the LDAP config object of the primary LDAP server.
  3. Content Server attempts to contact the secondary LDAP directory
    servers in the order that they are configured in failover_ldap_config_ids. Once Content Server successfully binds to a secondary LDAP directory server, it continues to use that server for any subsequent attempts for authentication. Once the duration of time configured in the failover_use_interval property has elapsed, Content Server attempts to contact the primary LDAP directory server for user authentication.
  4. If the secondary LDAP directory server is unavailable or becomes unavailable within the specified use interval, Content Server contacts the remaining secondary LDAP directory servers, per the order listed in failover_ldap_config_ids.Content Server only contacts the secondary LDAP directory servers that are configured for the primary LDAP directory server; it will not contact the LDAP servers listed in the failover_ldap_config_ids property of the secondary servers.
  5. If all attempts to contact the secondary LDAP directory servers fail, Content Server contacts the primary LDAP server again. If all LDAP servers are unavailable, user authentication fails.

Limitations

  • An LDAP server created as a secondary server can only be designated as the failover server for one LDAP server. You cannot use the same LDAP server as a failover server for multiple LDAP servers.
  • LDAP failover is supported for user authentication only. LDAP failover is not supported for user or group synchronization or on-demand user synchronization.

Attribute Mapping for User/Group Synchronization

D6 adds the ability to map multiple LDAP attributes to one property in Documentum and the ability to use expressions to define the mapped value.

Content Server uses attribute mapping to populate user/group object properties when these users or groups are synchronized from an LDAP server. The mapping is specified in the LDAP config object. LDAP entry attributes can be mapped to system or user-defined properties.

For example, the LDAP user attribute homepage can be mapped to a custom user property called web_page. More commonly, the LDAP attributes givenname and sn (surname) are mapped to the dm_user.user_name property.

Multiple LDAP properties can be combined into a single repository property using an expression. For example, the following expression uses the LDAP attributes sn and givenname to generate a user_address (email) value:

${givenname#1}${sn}@company.com

In this example, John Doe’s email address will become JDoe@company.com.

The #1 (= substring of length 1 from left) picks the first letter of the string value.

Property values set through mappings to LDAP attributes may only be changed either through the LDAP entry (by making the change in LDAP that gets synchronized to the repository) or by a user with Superuser privileges.