5.3  Client-Specific Issues

This page explains several subtle behaviors in some Import and Export operations which apply only when certain Client types are involved.

       Topics on this Page

5.3.1  Safari Issues

Separators in Safari

If you have Glims installed, BookMacster will detect this and export Safari separators in Glims style.  That is, when exporting from Safari or a standalone file designated as Safari file type, any separator will be exported as a bookmark whose name is a single dash (“-“) character.  Glims will detect this and replace them with beautiful separators in Safari’s Bookmarks Bar and Bookmarks Menu (but not in Show All Bookmarks).

If you do not have Glims installed, the same idea is used but instead of a single dash, the name is exported as a horizontal line of em-dashes, unless the bookmark’s parent is the Bookmarks Bar, then it is the pipe character (“|”).  The idea is the same but the Glims separators look better.  When importing, a bookmark with either of these names, or with Glims’ “-“, will be interpreted to be a separator.

Mapping into Safari’s Reading List

Beginning with Safari version 5.1, Safari has a third hard folder called Reading List.  The idea of this is similar to the Unsorted Bookmarks in Firefox (except that it has a name which makes a little more sense).  They are both intended to be a place where you might quickly drop bookmarks discovered while browsing the web that you would like to read later, and then either “sort” (where here we have mean categorize instead of alphabetize) into a regular folder or delete.

Therefore, during Import and Export operations, BookMacster maps Safari’s Reading List into its Reading/Unsorted hard folder, along with those of Firefox.  One issue, however, is that while Firefox allows folders (subfolders) in its Unsorted Bookmarks, Safari does not.  Therefore, when exporting to Safari, if a Reading List is found (indicating that the bookmarks of Safari 5.1 or later), any folders found in Reading/Unsorted are mapped into the root level of Safari instead of Safari’s Reading List.  If a Reading List is not found (indicating that the boomarks are of Safari version 5.0.x or earlier), then the contents of Reading/Unsorted is exported to your Default Parent you have indicated for Safari.

5.3.2  Multiple Web App Accounts and the Mac OS X Keychain

If you have multiple accounts for a web app such as Delicious, each is a separate  Client as far as BookMacaster is concerned.  BookMacster discovers these accounts and populates them into the Import and Export popup menus in SettingsClients by looking in your Mac OS X Keychain for passwords you have stored to the web apps’ domain, for example, Delicious.  Some of these may have been entered previously by Safari, Cocoalicious or another Keychain-aware app.  To remove old accounts that are no longer used, launch the Keychain Access application (/Applications/Utilities/Keychain Access.app), search for and delete them.

When connecting to a web app, if BookMacster finds a password which you have not previously authorized BookMacster to use, Keychain will ask your permission. If BookMacster does not find the password even in Keychain, BookMacster will ask you to to enter it into as secure field, and give you the option to store it in Keychain for future use by BookMacster or any other (Keychain-aware) app which is smart enough to look there for it.

5.3.3  Confusion between Google Chrome and Google Bookmarks

Google Inc. provides two separate products:

The Chrome web browser is a locally-installed browser app.  It replaces web browsers like Safari and Firefox.  Within BookMacster, it is referred to as Chrome.

Google Bookmarks is an in the cloud web-based browser app like Delicious.

Further confusion is caused by the Chrome ▸ Set up Sync… menu item in Chrome.  Using this feature syncs to other Chrome applications you may use on other Macs, but these bookmarks are not your Google Bookmarks.  They are stored separately, in another part of the cloud.  Google does not provide any connection between the two.  In particular, there is no way to synchronize bookmarks between Chrome and Google Bookmarks.  This capability is provided by BookMacster.

5.3.4  Chrome and Chromium Issues

Chrome versus Chromium

As of this writing, Chrome and Chromium are the same web browser built on the Chromium open-source code, simply with different names and file locations.  They do not share bookmarks with each other (unless you add to the confusion by using their built-in Set up Sync… feature).  BookMacster supports either or both, whatever you have installed, as separate Clients.

(Don’t Use) Other Bookmarks

The bookmarks in Chrome/Chromium’s Bookmarks Bar are also shown as top-level items in its Bookmarks menu.  There is an item a the bottom of the menu titled Other Bookmarks, which is where BookMacster maps bookmarks from its Bookmarks Menu.  Other Bookmarks also appears at the right end of the Bookmarks Bar.  It’s weird.

The Per-Client Advanced Client Settings for Chrome and Chromium provide a Don’t Use Other Bookmarks checkbox.  This option is for people who don’t like the “Other Bookmarks” thing.  It works better if you don’t like Bookmarks Bars either.  Tip: To get rid of the Bookmarks Bar in Chrome/Chromium, click View ▸ Always Show Bookmarks Bar, and check it OFF.

If this box is checked…

During an Import, items from “Bookmarks Bar” will be combined with the items from “Other Bookmarks”, in that order, into the Bookmarks Menu.  Nothing will be imported to Bookmarks Bar in the Bookmarkshelf.  This will cause all items to appear directly in Chrome/Chromium’s Bookmarks Menu and Chrome/Chromium’s Bookmarks Bar.

During an Export, items from Bookmarks Bar and Bookmarks Menu in the Bookmarkshelf, in that order, will be combined into Chrome’s “Bookmarks Bar”.  Nothing will be exported to Chrome/Chromium’s “Other Bookmarks”.

Built-in Syncing (“Set up Sync…”)

Chrome and Chromium have a menu item named Chrome/Chromium ▸ Set up Sync….  With it, you can enable syncing of your bookmarks among the Chrome/Chromium browsers on multiple Macs, over the internet.  Using this feature while you have Agents set in BookMacster to sync your bookmarks to other Macs is not supported and will probably lead to all kinds of unexpected results that we haven’t even imagined.

5.3.5  OmniWeb Issues

Moving OmniWeb Items among its Collections

External identifiers of OmniWeb items are not unique among their three top-level collections – Favorites, Bookmarks Menu and My Shared Bookmarks.  Each of these collections can have an item numbered, for example, 57, and BookMacster must therefore prepend a “collection identifier” to its identifier upon importing and remove it when exporting.

This sometimes causes little glitches in BookMacster operation.  For example, let’s say you have a bookmark in OmniWeb’s Personal Bookmarks that has been happily imported to and exported from a BookMacster document .  In the BookMacster document, it appears in the Bookmarks Menu since this is the equivalent of OmniWeb’s Personal Bookmarks.  Now, in OmniWeb, click menu ▸ Bookmarks ▸ Show Bookmarks Page, move this bookmark into Favorites.  Because it’s in a different collection now, OmniWeb must assign it a different identifier.  Now activate the BookMacster document and Import from OmniWeb.  Because it has a different identifier, BookMacster will not recognize it as the one that was originally in the Personal Bookmarks/Bookmarks Menu, and will import it as a new bookmark, so now you’ll have a duplicate.

You can prevent the duplicate from being created by setting the Merge Keep control to Client or Bookmarkshelf and also checking on Merge URL.

OmniWeb’s bookmarks storage format was designed many years ago when the advantages of truly unique persistent identifiers were not as widely appreciated.  One hopes that if Omni Group continues development of OmniWeb, they will someday update update their bookmarks storage to realize this, as Opera Software did when they shipped Opera 9.5.

Shortcuts Associated with URLs

OmniWeb associates its shortcuts with URLs instead of with bookmarks.  This means that if you have, for example, two bookmarks to the same URL, one with a shortcut and one without a shortcut, and export OmniWeb, in OmniWeb they will both have the shortcut.  Then when you import back from OmniWeb, BookMacster will apply the shortcut to both of them.  However, if you are importing from other Clients at the same time, this conflict can cause spurious changes or churn to be indicated in the Sync Log.

5.3.6  Firefox Issues

Same Tags apply to Duplicate Bookmarks

In Firefox, when you click menu BookmarksManage Bookmarks and get the bookmarks Library window, it appears as though tags are associated with bookmarks, but they are not.  In Firefox, tags are actually associated with URLs.  In BookMacster, tags are associated with bookmarks, just as they look.  To maintain the same content as you see in Firefox, when performing a Import from Firefox, BookMacster creates the same tags for all bookmarks that have the same url.

If you don’t have any duplicate bookmarks (bookmarks with the same normalized URL), then this doesn’t matter, but if you do, it does.  For example, say that you have one or more bookmarks with the same normalized URL, and put a tag on, one of them, then Export to Firefox.  If you then inspect the content in Firefox’ Organize Bookmarks window, you will see that all of the several bookmarks have this tag.

5.3.7  iCab Issues

The Wandering Bookmarks Bar

iCab allows you to designate any folder, anywhere in the hierarchy, to be your Favorites.  The items in the Favorites folder appear in a toolbar across the top of the window.  It is thus like the Bookmarks Bar or Bookmarks Toolbar present in other browsers.

BookMacster treats this folder as a Bookmarks Bar, but does not allow it to be anywhere.  When you Import from iCab, the Favorites folder, wherever it is, is moved to be the first child of the root, as in all other browsers.  However, BookMacster remembers where it came from, and when you export to iCab, it is restored to its original location.

No External Identifiers

Prior to iCab version 5.0, iCab did not provide unique, persistent external identifiers like other browsers do.  If you’re using an older version of iCab, BookMacster therefore creates its own external identifiers which are based on the name of the item and the names of all parents in its lineage.  Therefore if you Import into BookMacster, then move items around in the Manage Bookmarks window of iCab, and then later Import into BookMacster again, items in the area of the move will be unrecognized and therefore treated as new items.  This means that, for example, attributes which you have set in BookMacster such as Don’t sort this folder wlil be forgotten.  We recommend updating to iCab version 5.0 or later to resolve this issue.

5.3.8  Opera Issues

Sort by… Preference

Opera has options built in to sort bookmarks by name, address, description (comments), etc.  By default, it sorts all folders by name, according to its own rules (which are basically to sort everything). Therefore, in order to see sorting done according to the sorting settings in  the Bookmarkshelf, we must change this option to “Sort by my order”. This option is available to you in Opera’s toolbar…

However, you normally don’t have to do this, because BookMacster changes this in Opera’s preference file whenever it executes an Export to the Opera Client associated with your Macintosh User Account.  This occurs if the Export Client is the Opera bookmarks of your Macintosh user account, or of another Macintosh user’s account, but not if the Export Client is a loose file.

Import/Export with the Personal Bar

Opera has what they call a Personal Bar which looks quite like the Bookmarks Bar in other Client browsers, but is in fact quite different for our purposes.  (If you don’t see a Personal Bar in Opera, in the Opera menu click ViewToolbarsPersonal Bar.  It should be checked.)

In other browsers, the items in the Bookmarks Bar are unique items.  In Opera, the Personal Bar and the Panel contain only references to items which are actually in other collections.  In this regard, they are like the Smart Playlists in iTunes and Smart Albums in iPhoto, which contain only references to songs and photos which are actually elsewhere in your iTunes and iPhoto Libraries.

In Opera’s Manage Bookmarks window, when you Show Info on an item and then check the box Show on Personal Bar or Show in Panel, you set a flag which tells Opera to display the item both in its “actual” location and in this other location.

So, a question arises when importing such an item: Should it be imported into the “actual” location, or moved into the Bookmarks Bar?  You answer this question by setting the Import items marked “Personal Bar” into Bookmarks Bar checkbox in the Per-Client Advanced Client Settings for Opera.

If this box is checked on, items specified in Opera as Show on Personal Bar will be imported into the Bookmarks Bar of the Bookmarkshelf instead of into the location corresponding to their location in Opera.  Whether or not you check this box depends on what is more important to you – preserving items in the Bookmarks Bar, or preserving items in their other location.

Trash

Another unique feature of Opera’s bookmarks is the Trash, a special folder into which deleted bookmarks go.  Because it can be surprising to see these deleted bookmarks showing up in other browsers, BookMacster’s Per-Client Advanced Client Settings for Opera also has a checkbox which tells it to not import these items.

Trick to see Bookmarks in Opera’s Manage Bookmarks

In Opera, when you click BookmarksManage Bookmarks, you get a window with a left sidebar.  The right pane will show the contents of whatever folder is selected in the left sidebar.  Opera does allow you to create bookmarks at the root/menu level, but the root/menu does not exist as an explicit folder in Opera, so they never show when scanning through the left sidebar with the ↑ and ↓ keys.  In order to see these “loose” bookmarks at the root/level menu, click with the mouse in the empty area at the bottom of the left sidebar, to deselect all folders in the left sidebar.  Poof!  The missing bookmarks appear!

Expanded/Collapsed Folders

BookMacster remembers the Expanded/Collapsed state of folders when you save a document, and also exchanges this information with Opera which exhibits similar behavior in its Manage Bookmarks window.  (An exception is the Trash folder which, by Opera’s design, is always collapsed the next time you open it in Opera.)

Beta Versions of Opera

For some reason which apparently makes sense at the high northern latitudes, it has been the practice of Opera Software to publish their beta versions of Opera which store bookmarks at a different path than that used by regular, production releases of Opera.  (This is why, when first running an Opera beta, you are initially reverted to the default bookmarks collection, and must manually import your old Opera bookmarks.)  When you import or export from Opera, BookMacster examines the currently-known Opera bookmarks paths and import/exports with whichever path exists, and if more than one path exists, import/exports with whichever of the indicated files was last modified.  Thus, it should “follow” whichever version of Opera you have last bookmarked in.

However, because the path where the beta bookmarks are to be found is not published in advance and has been difficult to predict, we at Sheep Systems must typically update BookMacster, to add the new path to the list, after an Opera beta is released and someone reports that it doesn’t work.  If BookMacster is not finding your bookmarks after upgrading to a beta version of Opera, in the menu please click Help and notify us via email or forum.

5.3.9  Shiira

A number of behaviors in Shiira are inexplicable.  The most noticeable is that it always reads your Safari bookmarks and puts them at the top of its Bookmarks Cabinet.  BookMacster does not do this, and exporting from BookMacster to Shiira cannot over-ride it.

5.3.10  Delicious Issues

Delicious-Old-Skool vs. Delicious-Yahoo!

The original del.icio.us service was acquired by Yahoo! in December 2005.  Yahoo! eventually removed the dots in the name, changing it to Delicious, and in October 2009 they began linking Delicious accounts to Yahoo! accounts, as other Yahoo! services accounts are linked.

Old Skool.  The old regime, now called “Old Skool”, which is still supported by Delicious and BookMacster, uses HTTPAuth to make sure that you are you.  Under it, login is done with a Delicious username and password, the same credentials which you use when logging into delicious.com.  BookMacster stores this in your Mac OS X Keychain.  There are now thus two kinds of Delicious accounts.

Yahoo!-linked Accounts.  Instead of HTTPAuth, the new regime uses OAuth.  Under it, Sheep Systems has registered BookMacster with Yahoo! to be a Delicious Consumer.  When you create a new Delicious-Yahoo! Client in BookMacster, BookMacster contacts Yahoo! for you.  Yahoo! sends back a web page where you are asked to log in to your Yahoo! account and approve a permanent but revocable linking between your Delicious data in your Yahoo! account and BookMacster, allowing data to be imported and exported with a Bookmarkshelf.  Yahoo! sends BookMacster a credential (token and associated data) which BookMacster also keeps securely in your Mac OS X Keychain.  (Well, actually it’s alot more complicated than that, but that was our problem.)  The token is good for one hour.  When the token fails, BookMacster automatically retrieves a new one and replaces the old one in the Keychain.

So, when creating a new Client in BookMacster, you need to know whether the target Delicious account is an Old Skool account, or one linked to a Yahoo! account.  If you don’t know,

It is possible to have both types of accounts with the same username, and to make things even more confusing, a Delicious account linked to Yahoo! account can have its own account name which is different than the Yahoo! account name with which it is linked.  But we’re not sure how to reproduce that.

If you have multiple Delicious accounts, you may combine them by creating an Import Client for each, executing an Import operation, creating an Export Client representing the desired combined account, and executing an Export operation.

Duplicate bookmarks

Delicious does not allow your account to have more than one bookmark with the same URL.  If you submit such a bookmark which duplicates an existing bookmark, the existing bookmark is deleted.

Editing URL in Delicious ⇒ Duplicate in BookMacster

This is because the external identifier used by Delicious is based on its URL.  Delicious also allows you to edit the URL of a bookmark within their web app.  If you do so, and then re-import from this Delicious account into a Bookmarkshelf, BookMacster will therefore get a new identifier for this bookmark and treat it as a new bookmark that you just added.  Further, if this import is done with the Delete Unmatched Items option checked off, BookMacster will not delete the old bookmark, so you will have two bookmarks – one with the old URL, and one with the new URL.  This is appears to be a limitation in the design of Delicious.  (The identifier generated by BookMacster for a Google Bookmarks item is also based on its URL, but Google Bookmarks does not have this problem because Google Bookmarks does not allow you to edit the URL of a bookmark in their web app – you must create a new bookmark anyhow.)

feed:// Becomes http://

If you enter a bookmark with a URL that has a “feed://” scheme, Delicious will silently change the scheme to “http://”.

Slow or Interrupted Import or Export

Service Unavailable Messages.  When dealing with a web app, the proprietor (Delicious) can change their traffic shaping policies policies at any time.  Although BookMacster was designed to handle the policies which we have discovered at the time we last looked at them, changes could have occured, resulting in Timeout, Service Unavailable, or Please Retry Later messages from Delicious.  Refer to the article on our web page, near the bottom for the latest news.

Whitespace

Delicious will not allow consecutive spaces, or any leading or trailing whitespace, in bookmark names (titles) or comments (notes).  BookMacster collapses consecutive spaces in these attributes into one space, and leading or trailing whitespace is trimmed, before exporting (uploading) to Delicious.

5.3.11  Google Bookmarks Issues

Unsupported Schemes such as javascript: or file:

Google Bookmarks supports only bookmarks with schemes http:, https: and ftp:.  When exporting to Google Bookmarks, BookMacster will skip over bookmarks whose urls have other schemes save as javascript: or file:.

Dates

When viewing your Google Bookmarks at http://google.com/bookmarks, the date which appears adjacent bookmark name is the date that it was added or modified.  This is the only “date” attribute supported by Google Bookmarks.

Duplicates

Google Bookmarks does not allow you to have more than one bookmark with the same URL.  If you submit such a bookmark which duplicates an existing bookmark, the existing bookmark is deleted, and a new bookmark added with other attributes of your new submission.

Google Login

BookMacster uses the same URL Loading System in your Mac as Safari does.  If you log into Google in Safari and check the box Remember me on this computer, the URL Loading System will store your credential as a cookie, and then BookMacster will be able to access your Google Bookmarks too, until you log out.  If BookMacster cannot find such a cookie, it will look for the required password in your Mac OS X Keychain.  If it finds it, and you have not previously authorized BookMacster to use it, Keychain will ask your permission.  If BookMacster does not find the password even in Keychain, BookMacster will ask you to to enter it into as secure field, and give you the option to store it in Keychain for future use (with your permission) by BookMacster, Safari, or any application which is smart enough to look there for it (Keychain-aware).

Since early 2011, Google has offered an option on Google accounts which has variously been referred to as Two-Factor Authentication, Two-Factor Login and later 2-Step Verification.  Prior to importing from or exporting to a Google account with this option enabled, you must log in to the account in Safari, and in so doing must check the box labelled Stay signed in (on this computer).  Otherwise, you will probably receive a phone call or text message with a verification code from Google when BookMacster attempts the operation.  You cannot enter this verification code into BookMacster.

Sometimes … takes a Long Time

Some operations on many bookmarks in Google Bookmarks, such as deleting many bookmarks, can take a long time.  This is because Google Bookmarks was not designed for this some operations, and requests must be sent to Google one at a time, which is slow.

External Identifiers

Like other clients, Google Bookmarks does assign a unique identifier to each bookmark, however BookMacster does not use it, because it is only available in an RSS download, which cannot download any more than 1000 bookmarks reliably.  Therefore, the external identifier that you see in the Inspector panel side drawer of a bookmark for Google Bookmarks is not Google’s identifier but is the identifier assigned by BookMacster.  To create this identifier, BookMacster uses the fact that, like Delicious, Google Bookmarks does not allow bookmarks with the same URL, and does not allow editing of bookmark urls.  (If you edit – change – the url of a bookmark in BookMacster, then upload to Google Bookmarks, it actually destroys the old bookmark and creates a new one.)  The external identifier used by BookMacster is therefore a string representation of the md5 hash of the bookmark’s url.  Note: BookMacster’s legacy app, Bookdog, does use the actual identifier assigned by Google Bookmarks, which is why Bookdog does not support more than 1000 bookmarks in a Google account.

On the bright side, because the web interface of Google Bookmarks does not allow users edit the URL of a bookmark, the identifiers created by BookMacster are in fact persistent.  And because Google Bookmarks does not allow items with the same URL in the same account, they are also in fact unique.  Therefore, our patching of Google Bookmarks’ identifiers does not seem to cause any misbehavior in the operation of BookMacster.

Whitespace

Google Bookmarks will not allow consecutive spaces, or any leading or trailing whitespace in bookmark names (titles) or descriptions (notes).  BookMacster collapses consecutive spaces in these attributes into one space, and leading or trailing whitespace is trimmed,  before exporting (uploading) to Google Bookmarks.  (Actually, leading and trailing whitespace can be entered into Google Bookmarks’ web app, but this seems to be a bug.  When BookMacster downloads the bookmarks, these leading and trailing whitespaces are trimmed.  BookMacster therefore trims them when exporting to Google Bookmarks to avoid detection of extraneous “changes” when they are later re-imported.)

5.3.12  Separators in Camino

Because Camino does not endow its separators with external identifiers, BookMacster creates its own external identifier for separators imported from Camino based on it’s parent’s external identifier and its position.  The only noticeable effect of this, that we know of, is that if you move a separator in Camino (or move other items above it, causing its position to be changed), and then Import from this Client with Merge Keep set to Client, the corresponding separator in BookMacster will be deleted and a new one created at the new location, instead of moving the existing one.  (Now you know you must be at the bottom of the page!)