Monday, October 31, 2011

Content Repository API for Java a.k.a. JCR

Acknowledgement and disclaimer
I used Wikipedia to do my research. And then, I added my own interpretation.

What is a Content Repository and why is it needed?
While Content Management Systems (CMS) stores users' content and allow people to access (read) it, there are few functions/features a CMS should provide for maintenance, query, version management, import, export, etc. Now that there are so many CMS around, people (involved in managing CMS) started asking whether a CMS provides these features. So, it has become more of a compliance issue.

These "Content Repository" features made into separate product (Example: Apache Jackrabbit). Some CMS(s) now delegate this "Content Repository" function to separate components (Example: Hippo CMS and Magnolia).

Java's implementation of Content Repository
"Content Repository API for Java", or JCR is Java's implementation of Content Repository. It has been developed via JSR-170 and JSR-283. The main Java packages are javax.jcr.

JCR has certain features:

  • Export and import via XML
  • Query by SQL and DOM
  • Associate types, attributes and values to each document


Implementation of JCR

  • Apache Jackrabbit is reference and open-source implementation of JCR.
  • Content Repository Extreme (CRX) is commercial JCR implementation.
  • Alfresco has CMS that offers JSR-170 API.
  • etc.



CMS using JCR

  • Hippo CMS and Magnolia use Apache Jackrabbit, and can switch to other JSR-170 implementation.
  • Oracle Beehive supports JSR-170.
  • etc.


Reference:


Monday, October 24, 2011

Introduction to Databases by db-class.org

Stanford University is offering a few free courses - Artificial Intelligence, Machine Language and Introduction to Databases. I signed up for the database course; link is here http://www.db-class.org/course/class/index.

I have taken this course before in college. However, it gives me an opportunity to refresh the ideas; so it feels great.

So far, I have finished Relational Algebra (RA), XML, DTD. I will have to cover XSD, SQL and few other topics.

For RA, the site has a simple workbench for the exercises. It is backed by a SQLLite installation. The expressions have to be written in a certain way and it does not support all aspects of RA, but that is not a problem. I am looking for a full-fledged open source tool.

There were two exercises on DTD and XSD. It forced me to write some DTD and it was helpful to shove the learning into the memory.

I will post the relevant links here later on.

References:

  • TBD
  • TBD

Android OS on VirtualBox

Out of curiosity, today I goggled about installing Android OS on VirtualBox. And, I found something. There is a port of Android OS (v2.3?) called LiveAndroid. It is distributed in LiveUSB and LiveISO format. Anyway, I installed following a blog post (TBD: Put the link here); it was very easy.

Few notes about the installation:

  • I didn't need any username/password to install - simply because it is an OS targeted for phone, where I  usually don't enter any credentials.
  • While running the Android OS, I did not see any mouse. It made sense - simply because it is an OS targeted for phone, where I  usually don't have a mouse.
References:
  1. TBD
  2. TBD