Base 2.3

Base 2.3 is now available to download, for both web and App Store users.

This update contains a range of changes, with highlights including a new visual pragma editor and line numbers displayed in data tables. For users outside the App Store it is also signed ready for Gatekeeper in Mountain Lion.

A full list of changes can be read in the release notes

Base 2.3 can be downloaded from the product page or from the Mac App Store.
As always, if you’ve found a bug or have a question, please do get in touch.

Base 2.2.1

Base 2.2.1 is now available to download, for both web and App Store users.

This is a bug fix update, taking care of some problems with data filters, CSV importing and the table editor. A full list of changes can be read in the release notes

Base 2.2.1 can be downloaded from the product page or from the Mac App Store.
As always, if you’ve found a bug or have a question, please do get in touch.

Base 2.2

Base 2.2 is now available to download, for both web and App Store users.

Browsing table data has been tweaked so that BLOB data fields are now displayed as a clip icon instead of garbled text. Double-clicking on a BLOB icon will show an editor sheet, pre-loaded with a viewer suitable for that data. It knows the different between text and images and will also attempt to discover the correct file extension for any other data you may throw at it.

Editing table data has also been made easier with the addition of some keyboard shortcuts. These are:

  • Add row: ⌘ + (command and plus)
  • Delete row: ← (backspace)
  • Previous page: ⌘ ⤎ (command and left arrow)
  • Next page: ⌘ ⤏ (command and right arrow)

 

There is also an invisible but significant change in this update. The code for parsing table schemas has been rewritten to give greatly increased speed when viewing or editing complex schemas. It also results in far fewer display errors when inspecting tables.

A full list of changes can be read in the release notes

Base 2.2 can be downloaded from the product page or from the Mac App Store.
As always, if you’ve found a bug or have a question, please do get in touch.

Base 2.1.1

Base 2.1.1 is now available to download, for both web and App Store users.

This is primarily a bug fix release, with details available in the changelog. It does add support for full-screen mode on Lion, as well as explicit support for files with the extension .sqlite.

Base 2.1.1 can be downloaded from the product page or from the Mac App Store.
As always, if you’ve found a bug or have a question, please do get in touch.

Base 2.1

Base 2.1 is now available to download, for both web and App Store users.

The full list list of enhancements & fixes is available from the changelog, though there is one item I’d like to mention in more detail here.

Something which I have received many emails about is that NULL values in tables are hard to distinguish from any other text. Being able to set the display string goes some way to fixing this, but doesn’t quite go far enough.

Base 2.1 now provides the option of displaying a placeholder graphic for cells with a NULL value. Now it’s easy to skim a table and see where the NULLs are, without having to hunt through pages of homogenous text. Here’s a contrived example to illustrate:

Sample table with NULL placeholders

Base 2.1 can be downloaded from the product page or from the Mac App Store.
As always, if you’ve found a bug or have a question, please do get in touch.

Mac Quarantine Event Database

After all the fuss surrounding the iPhone location log, you may be interested to know that there is a file on Macs running Snow Leopard or higher that keeps a record of files you’ve downloaded. This record is not purged when you clear Safari downloads, caches or even reset Safari completely.

 

The Short & Simple Summary
Launch Services is a hidden bit of OS X which helps apps open files. When you double-click on a file, Launch Services is the bit which decides which app to open. For files downloaded from the internet, it also sets a little warning flag to check with the user whether it’s OK to open the file. Once you’ve told the computer the file is safe, the Quarantine flag is removed from the file. However, it is not removed from a database which tracks all of these warning flags.

The Quarantine Events database contains URLs of downloaded files or mail addresses and subjects for saved attachments, along with a few other bits of information. For my computer, there were saved events from 4 year old emails!

This database file is located at: ~/Library/Preferences/com.apple.LaunchServices.QuarantineEvents. You can open the file with Base, or another SQLite editor if you prefer.

 

An Example Of What Happens When You Download A File

We’ll run through a quick example of what happens with the Quarantine when you download an application from the internet. You can skip this section if you’re not interested.

In this example, I’ll use Base as the test download, since it can open the Quarantine event database.

  1. Download Base from this link and unzip it, but do not launch it yet
  2. Open the Terminal and run the following command: xattr -l ~/Downloads/Base.app
  3. Take a look at the results of that command. There will be a line starting with “com.apple.quarantine”. This is what we’re interested in.
  4. Run the app. You should get a warning like this: Untrusted App Alert
  5. Allow the app to run by clicking “Open”
  6. Go back to the terminal and run the command from step 2 again. The line starting “com.apple.quarantine” should be gone. The app is no longer quarantined since you allowed it to run.

You may have noticed in step 3 that part of the output from the xattr command is a UUID (looks something like: 24F21910-D116-40E4-B652-5719A0385561). This UUID is stored in the Quarantine database and it’s entry is not removed when the file flag is removed.

To show this entry, go back to Base, and use it to open the Quarantine Events database. This is located at ~/Library/Preferences/com.apple.LaunchServices.QuarantineEvents. Select the data tab and you’ll probably find a massive list of downloaded files. We can quickly find the download from step one by adding a filter at the bottom of the window.
You want the filter to look like this: Filter bar showing UUID.
You should be left with a single row representing your download.

 

Wrapping Up

I’d like to thank Dorian Johnson for bringing this file to my attention. I was incredibly surprised when I opened it and found listings from downloaded email attachments more than four years old!

The Quarantine Events database file contains the bare minimum of information needed for Launch Services to display the warning message when opening an untrusted file. I’m not sure why items which have been opened aren’t purged though. It could simply be an oversight, in a similar manner to the iPhone location log. I’ll be very interested if someone could explain in detail.

Reading your iPhone location log

There’s a bit of fuss about iPhones tracking their owners location history.

The instructions on that page are pretty involved. Here’s a command-line-free method to get at that controversial little file:

 

  1. Download and open iPhone Backup Extractor
  2. Click “Read Backups” and select the most recent backup from the list that appears
  3. A list of app identifiers will be shown. Choose the one that says “iOS Files” and click Extract
  4. Choose a location for extraction and wait a minute while the app does it’s thing
  5. In the finder, navigate to <extracted folder location>/Library/Caches/locationd
  6. Open the file “consolidated.db” in your SQLite editor of choice. I recommend the one we make

That SQLite database uses the R*Tree extension. Check out the SQLite documentation on how to efficiently query it.

The Individual

The Last PowerPC User

Whoever you are, lone PowerPC user, I salute you.

 

Update 2011-03-30: And a few days later, the Mysterious Individual has gone. Update stats say that Base now has an Intel-only userbase.