Mounting TrueCrypt Ext2/Ext3/Ext4 Volume on Mac: Read Only Success

Some time ago, I wrote Mounting TrueCrypt Ext3 Volume on Mac: Fail wherein I state that TrueCrypt volumes created in Linux and formatted to Ext3 can't be mounted on a Mac.  In the comments, DrTebi helpfully pointed out that it does work if I had used the correct software versions.  That was 1.5 years ago, and it's time to revisit the issue.

The truth is, it does work, but I could only get it to work in read-only mode.  The software you'll need to install are, in this order:
  1. OSXFUSE (2.6.0 at time of writing).  This is the successor to MacFUSE, which is no longer maintained and should be considered outdated.  Make sure to install the MacFUSE compatibility layer when installing OSXFUSE (you may have to choose this explicitly under custom install within the installer).
  2. Fuse-ext2 (0.0.7 at time of writing).  More Fuse-ext2 documentation is available.
  3. TrueCrypt (7.1a at the time of writing).  Make sure to not install MacFUSE within the TrueCrypt installer by un-selecting it explicitly under custom install within the installer.
And that's it.  TrueCrypt on Macs won't create Ext2/3/4 volumes, but it will on Linux.  And when you bring those volumes to the Mac, you can mount it with read-only access.

But if you do require read and write access, I've read that the commercial product, Paragon ExtFS for Mac OS X, will do that for you.


Spotlight indexing gone wild on Mac OS X because of faulty SMART Notebook mdimporter

For various reasons, my Mac had to completely redo its Spotlight index.  But it was taking far longer than I expected, chewing up a lot of hard disk bandwidth (and keeping my laptop fan on all night).  That's not good.

I investigate with Activity Monitor and find that mdworker32 is doing a lot of work.  That's the program that, in the background, builds up the Spotlight index so you could search for file names and contents.  It relies on various Spotlight plugins (mdimporter) that lets third-party programs define how its own files is to be indexed by the whole Spotlight system.

Opening up the Console program lets me see all the log files that's been generated lately, including a lot of mdworker32 crash logs.  Each of which finger the com.smarttech.notebook.mdimporter plugin as the crashing culprit.  It even helpfully identified its location: /Applications/SMART Technologies/Notebook.app/Contents/Library/Spotlight/SMART Notebook.mdimporter.

Completely removing the /Applications/SMART Technologies/Notebook.app/Contents/Library/Spotlight folder fixed the problem.

It turns out that whenever Spotlight indexing encountered a SMART Notebook file, it tried to use the SMART Notebook.mdimporter plugin, which promptly crashed, triggering mdworker32 to relaunch to keep indexing.  Of course, the SMART Notebook.mdimporter plugin kept crashing mdworker32, so Spotlight indexing was taking forever and getting nowhere fast.

This fix does mean that Spotlight can't do a content-based search into SMART Notebook files.  Of course, it still couldn't even without the fix given that the mdimporter pluging wasn't working to begin with.  Maybe my SMART Notebook is old; it's version 11.0.811.1.


TrueCrypt on Mac installs old version of FUSE: use OSXFUSE instead

Not much more to say than that TrueCrypt up to and including version 7.1a for Macs installs an old version of FUSE, namely MacFUSE.  Instead, you should use OSXFUSE instead.

This really only applies if you intend to use FUSE for other applications or purposes besides TrueCrypt, and those other applications requires a newer version of FUSE than provided by the old MacFUSE.  If all you use FUSE for is TrueCrypt, then don't worry about it; TrueCrypt works fine with the old MacFUSE.

OSXFUSE (2.6.0 at time of writing) is the successor to MacFUSE, which is no longer maintained and should be considered outdated.

Make sure to install the MacFUSE compatibility layer when installing OSXFUSE (you may have to choose this explicitly under custom install within the installer).

Also make sure to not install MacFUSE within the TrueCrypt installer by un-selecting it explicitly under custom install within the installer.  If TrueCrypt was originally installed with MacFUSE, just download the MacFUSE installer separately, and use the uninstaller within the installation disk image.


Stop SMART Board Tools from starting on Login on Mac OS X

I don't use the SMART Board that often, so I don't like having the Board Tools program (that's the vertical side bar that floats on top of everything after you have SMART Board programs installed) starting up every single time I log in to my computer (Mac OS X).

The critical information I found from Tyler Grusendorf's blog post on the same issue, but I don't think it's necessary to do all the steps he proposes.  Just delete the com.smarttech.boardtools.plist file from the /Library/LaunchAgents folder and that's it.  It worked for me.  :)


Firefox lost my saved tabs due to hidden user Library Preference folder on Mac OS X 10.6.8

The symptom is odd enough.  You let Firefox upgrade itself, and upon reopening, you lose all your saved tabs and bookmarks.  Is it Firefox screwing up and losing all your saved tabs after an upgrade?  Or is it because you're on Mac OS X 10.6.8 with an encrypted home folder?

For reasons I know not, Mac OS X can split your home Library folder into two pieces (on Mac OS X 10.6.8 with an encrypted home folder).  Supposing your username is hsimpson, then one of your Library folders (the usual one) is inside the encrypted home folder, in the usual ~/Library.  The other one is in /Users/.hsimpson.

Best way to tell if Firefox is using the wrong Library folder is to open the Firefox profile manager.  Go to the Terminal, and type in something like:

/Applications/Firefox.app/Contents/MacOS/firefox-bin --profilemanager

Of course, firefox-bin is the actual executable on a Mac, hidden inside the Firefox.app application bundle (really just a special folder).  With the profile manager open, hovering the mouse over a profile name will display the directory path to where the profile is stored.

You may have to do some experimentation to figure out which is the "true" profile folder with the most up to date tabs and bookmarks (I suggest you backup all potential profile folders), but with some experimentation, you should be able to point Firefox back to using the correct profile folder.

I would know: I've had to do this more than a few times.


Clojure Data Analysis Cookbook - a Book Review

Like yogthos, I was recently asked to review Clojure Data Analysis Cookbook.  With Incanter, data analysis has been one of the "selling points" of Clojure as a practical language.  A practical lisp for practical data analysis.

(Edit 2016: a second edition is available!)

The book is very example oriented, basically being a collection of code recipes for accomplishing apparently common tasks for data analysis.  It gives you recipes to go from taking raw data in the form of CSV, JSON, or whatever, to making an Incanter dataset, to doing analysis on those datasets (e.g. clustering the data by using a self-organizing map), to saving, viewing, or charting the resultant data.  Each recipe is accompanied by brief explanations, and cross-references to other related recipes in the book.

Each recipe is more or less self-contained, without much in building on top of previous recipes.  It makes the book more "random access".  It's less a book to read through cover to cover, and more of a handy reference to use by full-text searching for key terms, clicking on the relevant topic in the table of contents, or by looking up terms in the index.  It's definitely a book I'd rather have as a PDF ebook so that I can access it anywhere in the world, and so I can do full-text search in.

Having said that, you can tell whether a book was made to be seriously used as a reference or not by looking at its index.  There are 10 pages of indices, equivalent to about 3.2% of the number of pages previous to the index.  This counts as a book to be seriously used as a reference.

As a reference book, it's great for people who have already a familiarity with Clojure (and better yet, Incanter) in general.  If you don't know Clojure, this book won't teach it to you.  If you don't know Incanter, you can pick it up from this book if you're a fast learner (don't expect a lot of hand holding in learning Incanter though).

Similarly, I'd say you had best be familiar with how to do data analysis as a discipline in itself.  If you don't know whether to do clustering or regression, or whether to use a SOM or K-means, this book won't teach it to you.

Also, as a reference book, it is not comprehensive.  For example, as far as neural networks go, it only includes self-organizing maps.  There are no other kinds mentioned.  If you want another kind of neural network, you best know where to look for another Java or Clojure library.

Even with all those caveats, I'd still say this is a pretty decent book.  Why?  Because if you have some familiarity of Clojure, played around with Incanter for a bit to learn that library, have taken a class or two of data analysis in university, and aren't expecting a lot of hand holding from the book, then this book is a great guide to start you off on the road to doing data analysis with Clojure, Incanter, Weka, OpenCL, Cascalog, etc.