Monday, October 10, 2011

Install Ubuntu 11.04 on Lenovo C205 All-in-one PC

Recently I bought myself a low-cost Lenovo C205 All-In-One for home use, and quickly came to hate the Windows 7 Starter version it came installed with. So, I tried to run Ubuntu 11.04 (Natty Narwhal) on it, only to find that graphics support would not work out of the box.

So, looking around, I cobbled together these instructions; I'm posting them hoping it might help out others in a similar situation:

1. Start out by grabbing the Ubuntu Alternate Install ISO disc and burning it to a CD. This provides a text-based install that will get us a running Ubuntu terminal from where we'll be able to install the graphics drivers to get the full-blown Ubuntu.

2. Install Ubuntu!

2. After you finish installation, you should now boot into text mode. If you don't force text mode, you will just get a black screen, or a garbled GUI.

You force text mode by: using the Grub menu (purple screen) that shows up when restarting your computer. Select Ubuntu from the menu, then hit the e key and add the word text to the end of that line. Once you do that, hit b to continue on to booting.

After booting completes, hit CTRL-ALT-F1, and log in using the username/password you gave during installation at the prompt.

3. Once you're logged in, fetch and install the proper drivers. I used some of the steps outlined in Of course you need a working Internet connection to do this.

Note: Last I checked, the ATI Catalyst driver version was 11.7; some of the following won't work if for some reason the driver version has changed.

Run the following commands one by one.
sudo apt-get install -y dkms

cd ~; mkdir catalyst11.7; cd catalyst11.7


chmod +x

sudo sh ./ --extract ati

cd ati

sudo ./ 8.881 --buildpkg Ubuntu/natty

cd ..

rm -rf ati

sudo dpkg -i fglrx*.deb

sudo aticonfig --initial -f

sudo aticonfig --input=/etc/X11/xorg.conf --tls=1

After running all of the above commands, you have to reboot:

sudo reboot

Now, let the normal boot sequence start and lo an behold, graphics should now work! Yay!

Friday, September 30, 2011

Experimenting with Kinect for education

We've had a Kinect at the Center for the last few weeks. Sadly, we've not been able to spend that much time with it (and is also not on the top of our priorities), but clearly see there are a lot of possibilities.

To me it seems that, in regards to educational purposes, Kinect will help out by engaging learners; forcing them to move just fires up some of those lazy neurons. By itself, this clearly brings an advantage to whatever app you hook it up to.

Imagine playing a math game with mouse clicks, vs. a Kinect-based game where you wave your arms, turn, crouch or jump to acheive goals. I think the latter might make reaching learning goals easier than the former. Of course, research has to be done =)

That aside, just getting the thing to work hasn't been that hard; basically there are several libraries out there that form the basic drivers on which developers can build on. The libraries seem pretty stable and work fine, but there aren't too many downloadable examples (or we're having a hard time finding them).

In future posts I plan to offer some updates documenting some of the stuff we've found. Some topics might be:
  • low-level SDKs or libraries that talk to Kinect
  • development stacks (from drivers to graphics/game framework) for Windows, Mac and/or Linux
  • ideas of real-world educational applications to build with Kinect (or showcasing existing ones)
For now, we've covered some of the basics:
  • Windows: installed the available OpenNI + NITE + SensorKinect binaries. On top of that, FAAST. This allowed us to emulate key presses through Kinect gestures. Thus, we can now have Kinect Tetris, Kinect Doom, etc. Interactive but not that innovative =)
  • Linux (Ubuntu): this was a tad harder. Some bits are available as downloadable binaries (and only then for Ubuntu 10.10), but most other require getting a bunch of libraries and then compiling. Not horrific, but not quite straightforward either.  End result: we're a step behind the work on Windows: just the skeleton tracking on some of the sample demos, no app control yet.
  • Mac: coming soon.
Why are we doing this?
I have to say this whole experience is interesting: I have almost zero experience developing native applications on any platform, which is our target audience exactly--students and teachers who want to build things, but need a kickstart (which we would like to provide).

Our goal isn't clearly defined at the moment, but we are confident this (like other technologies we work with) is a tool that will improve learning, or enable different ways of doing so. That might be an obvious statement to make, but part of our job is to actually test and prove it to be so.

And, I'd be lying if I didn't say I'm also having fun. Gladly, that's a part of my job too.

Wednesday, September 28, 2011

New OAI-PMH harvesting application: OAIConnect

Some months ago, I was hired to work on a web application that would grab metadata records from different document repositories (mainly in universities) and join them into a central catalog. This application should:
  • work with OAI-PMH repositories such as DSpace
  • provide faceted search of the harvested items
  • use open source products
  • be itself released as an open source product
The application was to be installed, and used by actual people in a project to harvest educational materials for a research project. That site is available at

Last week I released the code to the public as OAIConnect. The application can be installed by anyone who can meet some basic requirements (Apache, MySQL and PHP). The application is built on top of Drupal and a host of freely available modules (plus some custom glue), so you can basically extend, restyle and reconfigure it to your liking.


Starting page:

Sample record:

Friday, November 12, 2010

Millennium Integration module for Drupal 2.0 screenshots

Here are some screenshots from the 2.0 version of the Drupal Millennium Integration module in action.

These records were imported from a live library catalog. This example is using the Fusion theme.
Teasers for nodes with imported records.
A full node view. The Table of Contents section below is provided by the optional (included) Millennium Enrichment module which brings in data from the Library of Congress at import time. All the information would be in Drupal's full text index and thus is searchable.
This node shows an embedded Google Book Search reader. It only shows when the item actually has a preview or full view in Google Book Search.
This is a wall of books from the included Views integration. This example uses the Garland theme.

You can easily do manual or automatic batch imports in a variety of ways; this screenshot shows an example.

Here are some of the configuration/settings screens.
General settings and sources. The module can handle several OPACs simultaneously.

Read more over at the Millennium Integration module project page.

Wednesday, September 15, 2010

Remove empty space above tabs in Firefox 4 beta 6 title bar

These instructions for Firefox 4 beta 5/6.
  1. Find your userChrome folder inside your Profile folder: to find your profile folder, see:

  2. Find the "chrome" folder and open it.

  3. Edit userChrome.css

  4. Add this snippet to that file:
    @namespace url(;
    /* Note: assumes app button is visible (menu bar disabled) */
    /* Move tabs up to titlebar */
    #main-window[sizemode="maximized"] #navigator-toolbox[tabsontop="true"] #TabsToolbar {
        padding-left: 112px !important;
        padding-right: 112px !important;
    #main-window[sizemode="normal"] #navigator-toolbox[tabsontop="true"] #TabsToolbar {
        padding-left: 112px !important;
        padding-right: 109px !important;
    /* Move the menubar above the tabs so it moves the tab bar down when activated */
    #main-window[sizemode="maximized"] #navigator-toolbox[tabsontop="true"] #toolbar-menubar {
        margin: -19px 0px 3px 112px !important;
    #main-window[sizemode="normal"] #navigator-toolbox[tabsontop="true"] #toolbar-menubar {
        margin: -24px 0px 3px 112px !important;
    /* Curved corners when tabs-on-top and normal window */
    #main-window[sizemode="normal"] #navigator-toolbox[tabsontop="true"] #nav-bar {
        -moz-border-radius-topleft: 5px !important;
        -moz-border-radius-topright: 5px !important;
    (taken from

  5. Restart Firefox.

Friday, September 10, 2010

Usage of library Drupal modules

Edit: Failed to include (my own) HILCC module. How embarassing.

Out of curiosity, I did a quick sampling of usage stats (according to of different library-related Drupal modules. I left out some that didn't have usage information or are not hosted on D.O. and of course, didn't count many other modules useful to libraries (like Apache Solr, booking modules, etc.)

These stats also reflect only those sites that have module update tracking turned on; it'd be a good question to ask Drupal library service providers what's their best practice on that.

Usage statistics for EZProxy

Usage statistics for SOPAC

Usage statistics for The eXtensible Catalog (XC) Drupal Toolkit

Usage statistics for Millennium OPAC Integration

Usage statistics for Cite

Usage statistics for DigitalNZ API

Usage statistics for MARC

Usage statistics for OAI-PMH Module

Usage statistics for Library

Usage statistics for OAI2 for CCK

Usage statistics for Book Post

Usage statistics for HILCC Taxonomy autotag

Monday, February 22, 2010

Friday, February 19, 2010

How to hide a Drupal-in-a-subdirectory installation in GoDaddy

Say you have a Drupal installation for testing purposes inside a subdirectory in your hosting account, like so:

and you want to make that installation replace/take over your site's home at:

The .htaccess file in your document root needs some changing, as well as the base_url in your settings.php file.

For the full instructions, read on at

Friday, January 22, 2010

Drupal tip: Adding "number of results" message to your View

Quick Drupal tip for Views 2. You can add some PHP code in your header or footer to display the amount of total results AND the number displayed in the page (if you're using paged results) using this tip:

Thanks to matteo.boria and kingandy for figuring it out!

Monday, October 12, 2009

Adding RSS feeds to Drupal's Apache Solr Search module

(Drupal 6.x branches only!)

It's actually embarrassingly simple:

1. Install and enable the OpenSearch Feed module.

That's it! To test, try a launching a search; an "XML" button will appear next to the "Search" button on all Apache Solr Search results pages.

By the way, this makes your site OpenSearch-compliant, meaning that IE7+, Firefox and others will auto-detect your search engine and let you add it to your browser's "Quick Search" bar.