Compiling mdb-tools on Ubuntu 12.04

I recently replaced Linux Mint 13 with Ubuntu 12.04 LTS as the GNU Linux distribution on my dual-boot laptop. One of the first tasks after basic configuration was to install mdb-tools for Maestro development (used to extract data from a Parts&Vendors MS Jet4 database).

Install build dependencies:

$ sudo apt-get install libtool
$ sudo apt-get install automake
$ sudo apt-get install txt2man
$ sudo apt-get install libglib2.0-dev libdb-dev

Clone the mdb-tools GitHub repo:

$ cd ~/src
$ cd src
$ git clone https://github.com/brianb/mdbtools.git mdbtools
$ cd mdbtools

Compile mdb-tools, and install executables and man pages

$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

Rebuild ld cache:

$ sudo ldconfig

Man pages are installed for mdb-tools executables:

  • mdb-array
  • mdb-export
  • mdb-header
  • mdb-hexdump
  • mdb-parsecvs
  • mdb-prop
  • mdb-schema
  • mdb-sql
  • mdb-tables
  • mdb-ver

For more information on mdb-tools:

For more information on why you have to run ldconfig after installing mdb-tools:

 

Calgary Flood

If you follow any mass media news, you’ve probably heard about the flooding in Calgary caused by high water volumes in the Bow and Elbow rivers. The rivers join together in the downtown heart of Calgary, where most businesses were shuttered during the worst of the flooding. However, many residents along the rivers were also significantly impacted with lost homes and property. My family has been exceedingly fortunate, only my son’s and my bicycle routes to work have been affected.

In order to bicycle from our home (on the west side of the Bow) to our work (on the east side), there used to be a choice of five bridges – with commute times ranging from 50 minutes to 2 hours depending on the route and bridge. Today, only one of the bridges remains navigable, but the commute is still less than an hour and a half. The bridges themselves do not appear to have been significantly damaged, but the surrounding landscape and pathways leading to the bridges may be forever altered.

Here is the McKenzie Meadows golf course (close to the south end of Calgary),  5 days after the start of the flood. The photo was taken looking west, with the Bow River and Rocky Mountains in the background.

mackenzie-golf-course-960x198.jpg

Mayan EDMS

I might have mentioned liking the Django web application framework for good documentation and a strong community (there are even books you can buy!). I spent the first two weeks of 2012 learning some Python and working through The Definitive Guide to Django. Developing and testing locally was easy, but I abandoned the effort after another two weeks trying to configure a Python web stack on my FreeBSD server and returned to the pervasive AMP stack because of its simplicity.

However, yesterday I became aware of the Mayan EDMS project after being featured in a recent FLOSS Weekly podcast (hosted by Randal Schwartz of Perl book fame). It’s a really cool EDMS written using the Django framework, and might be suitable as the DMS component in Maestro.

It seems Django/Python documentation has matured since my aborted effort last year, so a new attempt may be more successful (I’ve also approached some local Meetup groups for some help this time). If I can deploy Mayan to my production server I might be switching frameworks (and languages) again. I don’t have much to lose though because I haven’t really deployed any significant Maestro code yet – most recent work has involved sorting out data structures and synchronizing data from external systems, with some re-usable shell/cron scripts for import data and throw-away ATK and Yii code (I didn’t even write the Yii code, it was generated CRUD code).

What makes Mayan EDMS great? Here are the features as listed on the Mayan EDMS project website, plus a couple additions of my own:

  • Electronic signature verification
  • Unlimited document versioning with revert
  • Unlimited user defined metadata
  • Automatic OCR of documents (with distributed OCR processing)
  • GPL3 license (although I’d prefer a BSD-type license)
  • No commercial “premium” version (the open source version isn’t a limited-feature teaser!)
  • Django/Python
  • and many more….
    • Dynamic default values for metadata
    • Filesystem integration
    • User defined document unique identifier and checksum algorithms
    • Local file or server side file uploads
    • Batch upload many documents with the same meta-data
    • Previews for a great deal of image formats, including PDF
    • Full text searching
    • Configurable document grouping
    • Permissions and roles support
    • Multi-page document support
    • Multilingual user interface: English, Spanish, Portuguese (Brazil and Portugal) Russian, Italian, Polish, German, French, Bulgarian and Dutch.
    • Duplicated document search
    • Plugable storage backends
    • Color coded tagging

I’ll post detailed installation instructions on FreeBSD as soon as I’ve got it working.

WordPress and Yii

I’ve now spent some time with cbdb, and thought I’d share getting it running, and my takeaway from reviewing TrackStar and cbdb features (after that, it’s time to check in with Larry and see what tricks CMS is up to). First though are some comments on WordPress.

WordPress

I thought I’d include comments on WordPress, since I’m consolidating my personal content using WordPress.

  • WP has a nice plugin management system, with plugin’s automatically adding themselves into the application’s admin menu structure (or Dashboard).
  • If a WP module uses roles role-based authorization, the roles are managed using the plugin’s menu – or at least that’s how the NextGEN gallery plugin does it. Achievo has a single security profiles system that combines the privileges from each module (i.e. the actions that the role controls access to) onto a single role management page. To be honest, I’ve only ever used the system, but the privileges are grouped by module, and are a combination of basic CRUD actions that can be performed on a business object, with some extras.  My preference is the Achievo approach, with all the permission for a role managed in one place (so far, cbdb’s rbac seems close enough).
  • I like how NextGEN handles image uploading (a choice between a drag and drop interface or an Explorer-style interface fr uploading files, multi-file select in the Explorer-style interface, support for uploading zip image archives, and an upload progress bar). Similar functionality would work for uploading files in Maestro.

cbdb

  • The views generally show raw data, rather than user-oriented information (e.g. type, signed, grade …), and only the create/update form shows user-oriented data (a dropdown selector for Type and Grade, and radio buttons for Signed, Bagged and Collectable). TrackStar polishes things off a bit better in this area.
  • I like that the menu system for cbdb is created early in the development process compared to TrackStar, but the menu colors don’t work for me. I don’t agree that hiding menus a user isn’t authorized to use is good practice, and believe it actually leads to more confusion when users don’t understand why they don’t have have different menus presented, and prefer a static menu (greying-out menus that the user doesn’t have the authority to use, or showing the menu with data but greying-out the Edit or Save button).
  • The calendar wizard to enter dates looks nice, but it’s missing buttons to move between years (although I suspect it can be configured).

TrackStar

  • User management hasn’t been fleshed out as well as in cbdb, in particular not being able to view a list of users associated with a project.