About | ACP | Buy | Industry Watch | Learning Curve | News | Products | Search | Substack
Home » Learning Curve

macTag: Grey Paper

A tutorial and a proposal.

Get It

Try It

macTag: there have been a number of promotional blurbs about this application, but nothing more concrete and factual. The feeling persists that macTag touches on a very sensitive issue that must be addressed by ordinary computer users, and even more so by professional administrators: categorising data in an efficient and flexible way.

As users of computing devices, we have no viable system for organising our documents. Apple, as an OS vendor, offer us a number of 'colours' we can use, and arbitrarily suggest we can also use text strings. Fine - but how to search for documents? Talking of course only about personal needs on a micro basis. But what could major corporations do with millions upon millions, zetabytes upon zetabytes, of data?

Creating directory structures won't do it. Time and again someone will come along who wants the 'order of things' to be slightly altered. This involves physically changing the on-disk structure. That takes time... And then someone else will come along who wants things changed again.

One of the most important aspects of a good system is its ability to find things quickly. Another important aspect - feature - is an ability to quickly change sorting algorithms. Search results should also provide basic file management functionality.


This is what macTag looks like when it starts up. You have two panes. The left pane has a header with the official name of your computer. Below it you'll have a hierarchy tree - not a deep tree either. But more on that in a minute.

On the right you have a tableview with columns for file name, file size, inode, number of links, file owner, owner's group, time last modified, permissions or 'mode', and full file path. You can hide any columns you're not interested in: just drag over the column from the right.

Nothing's listed yet because nothing's been searched for. So let's try a search.

(And remember all this is available in a free test drive so you can see how it works. But wait a minute before going any further.)

There's a lot in that toolbar that may need explaining, but let's leave that for a bit too. Let's just take the 'Scan' button. This button will determine where (in your own home directory usually) you want to start searching for files. This is especially necessary on developer machines, as many of them contain the monster Xcode hive, and searching through that hive is both pointless and wastes valuable milliseconds.

The great thing is that Apple already organised your documents in a great way: Documents for text stuff, Movies for guess what, Music, and Pictures. That might be all you need and, as you'll see, that doesn't limit you in any way if you want to stretch things a bit.

Let's take 'Music'.

On at least this minimal machine with limited personal use, the 'Scan' is almost instantaneous.

On the left, you see three sub-categories under the 'root' object: Beatles, Corrs, and 'F&F'. On the right you see a file listing.

Click at the top of the left pane, on '/'. You'll notice that nothing changes on the right. This is because '/' in this case signifies 'everything': macTag lists all search results, for the specified directory, regardless of the so-called 'tags' on the files.

On the right you'll notice that subdirectories are listed first, followed by files, sorted by default according to name. The sort can of course be changed by clicking on the column headers.

You'll also notice that the size field for many files is rendered in a different colour. This can mean that the files in question have already been 'tagged'.

So, to see how this works in the simplest of cases, let's click, on the left, on 'Beatles', then 'Corrs', then 'F&F'. The results should appear instantaneously.

Let's go back to the Beatles and, on the right, select 'Blue Jay Way' ('1968-00-00 Beatles Blue Jay Way.mp4').

Let's get where we want to go in a cursory fashion. Let's first click the 'i' button on the toolbar for 'information'. This is the inspector sheet. Here we can see a lot of things which might be irrelevant for us in everyday use, but they're there - that's all the information on the file that our system will provide us.

OK, now let's click the same toolbar button, but this time hold down an 'option' key as we click.

That's a bit different!

We see the file's generic icon, file name, and path, all above an empty (and somewhat mysterious) box. There's also some type of 'entry field' below the box, and then three pushbuttons for 'Add', 'Remove', and 'Close'.

This is the tag inspection sheet.

With this sheet, you can edit tags on your documents. Tags are always textual only. They have no practical limits on length. Any Unicode characters can be used.

Let's toy a bit with this sheet. Let's add the tag 'Rolling Stones' to this file.

All we do is type in 'Rolling Stones' in the entry field. Note that the 'Add' button now lights up. Almost as if it wants us to click it. So we do. That's all. And the new tag 'Rolling Stones' is added to the tag list in the big box above.

Now, just to mess things up even more, let's add the tag 'Corrs' to this classic George Harrison track, because Blue Jay Way has nothing to do with Dundalk.

Note that your entry field is completely selected at this point, so it's easier to deal with your additional entries. Let's type in 'Corrs' over 'Rolling Stones' and add that new tag as well.

By now, if you're following along with a demo of your own, you'll probably have realised that, as the 'Add' button's been highlighted, you can also just hit Return to add a new tag. At which point you'll have this.

We can now either click 'Close' or press 'command-.' to dismiss the sheet. To see the new results for your entire search, simply hit 'Refresh'. And selecting 'Rolling Stones' on the left does in fact list 'Blue Jay Way' on the right.

But 'Blue Jay Way' is not a Rolling Stones number! So let's remove that tag.

There are a number of ways we can do this. We could just pull down the tag inspector sheet again and remove it. But we could also try a bit of 'drag and drop'. And, in so doing, could either remove all tags save the original 'Beatles', or remove them altogether.

If we drag 'Blue Jay Way' to the left, onto 'Beatles', and drop it there, we get this.

This is the default behaviour: by default, when you just drop files (one or more) on a tag on the left, you're asked if you want to add a tag (to what the file already has).

You could also hold down 'command' when you drop a file on the left, and you'll get a 'replace' prompt instead. This action replaces all current tags with the one tag you've chosen.

There's a fourth way to get at this, the way we'll choose for this tutorial: we'll drop the file on root ('/'). If we click to continue here (and we do) then we'll have removed all three tags on the file, and a refresh will show that the file no longer has any tags at all. (It will also show that there's no longer a 'Rolling Stones' tag in this search.)

We'll also see that 'Blue Jay Way' is no longer listed under 'Beatles', and its listing doesn't indicate it has any tags. But that's easy to remedy: we merely drag the file from the right to the 'Beatles' tag on the left.


There are ramifications to the above, but there are also ramifications to contemporary computer use. Think if you must in terms of your own humble needs, but think as well of how one could possibly deal with ginormous datasets in massive storage systems. For directory structures won't do it - they're not flexible enough. We need tags. And Apple, as OS vendor, haven't yet come far enough.

(Yes, this macTag system will adapt quickly to a de facto OS vendor system. No worries. But we're not there yet and may never be.)

Google mail doesn't use directories. Thanks to Google, more and more webmail providers have dispensed with directories. And no, 'label' is not the same thing. Think of how Gmail can list multiple 'labels' for the same message: traditional webmail could never do that.

We all - both individuals and corporations - are accumulating more and more files. Google reportedly won't ever delete anything. And why should they? Storage technology is cheaper all the time. The challenge isn't to find new ways to store more and more data, but too arrive at - in some cases concur - on how data should be organised. Colours won't do it either. Not only is that too limited, but it's also too machine-specific. What we do have is the universal language (Unicode) of text.

Tags can be changed. Documents can change their tags, either individually or in bulk.

And it certainly makes things easier as your media and other collections continue to grow.

macTag has 'mac' in its name, as this technology needs the Apple 'extended attributes' system introduced back in 2007 for OS X 10.4 Tiger. Would that all operating systems and file systems did the same.

See Also
macTag: 'This is how'
ACP/Xfile Test Drive (Free)

About Rixstep

Stockholm/London-based Rixstep are a constellation of programmers and support staff from Radsoft Laboratories who tired of Windows vulnerabilities, Linux driver issues, and cursing x86 hardware all day long. Rixstep have many years of experience behind their efforts, with teaching and consulting credentials from the likes of British Aerospace, General Electric, Lockheed Martin, Lloyds TSB, SAAB Defence Systems, British Broadcasting Corporation, Barclays Bank, IBM, Microsoft, and Sony/Ericsson.

Rixstep and Radsoft products are or have been in use by Sweden's Royal Mail, Sony/Ericsson, the US Department of Defense, the offices of the US Supreme Court, the Government of Western Australia, the German Federal Police, Verizon Wireless, Los Alamos National Laboratory, Microsoft Corporation, the New York Times, Apple Inc, Oxford University, and hundreds of research institutes around the globe. See here.

All Content and Software Copyright © Rixstep. All Rights Reserved.

John Cattelin
Media Contact
ACP/Xfile licences
About | ACP | Buy | Industry Watch | Learning Curve | News | Products | Search | Substack
Copyright © Rixstep. All rights reserved.