Showing posts with label productivity. Show all posts
Showing posts with label productivity. Show all posts

Sunday, January 08, 2012

Efficient Gmail with OS X Mail.app

1000 Cranes - one by one effortGreetings and Happy New Year. I am using Mail.app on OS X Lion, to retrieve mail in my Google Apps for Business Gmail account, and I wanted to blog about my setup, because I think it is relatively efficient and might help others. My goals are:

  • To keep my inbox small, to allow Mail.app to perform well. This goes for any mailer, really. The larger the mail store, the slower it will get.
  • To keep minimize network traffic and keep round trip copying up and down to Gmail, to a minimum.
  • To be able to have a backup of mail just in case, outside the mail client.

My Formula for Mail.app Gmail Efficiency

Here is what I am doing:

To minimize network traffic, in GMail settings, I uncheck the "Show in IMAP" setting for the All Mail label, so that it does not copy down to Mail.app. If a message comes into Gmail, and this is turned on, it will download twice - to the Inbox folder and to the All Mail folder. Gmail does not store in folders, but rather works with labels, so there is some strangeness in interaction with typical IMAP clients as a result.

To keep the size of the local Inbox small, I am Archiving mail. Archiving mail in Gmail means to remove its Inbox label. It is important to note that when you Archive mail in Gmail, it just makes it disappear from the Inbox, but it is still present in All Mail.

To Archive inside the Gmail web GUI, select or open the mail, then -

  • … press "e" on the keyboard (see other keyboard shortcuts for Gmail). Or,
  • … click the Archive button on the toolbar (looks like a box with a downward-facing arrow).

There is an Archive button in Mail.app, and what this does is to move the selected mail into an Archive IMAP folder, which will be synced up to Gmail. To Archive mail using Mail.app, select or open the mail in Mail.app, then -

  1. … press Ctrl-⌘-A to Archive it.
  2. Confirm the email is present in the local "Archive" IMAP folder, which should be present in your Gmail folder list (in Mail.app, scroll down, in the left-hand folder list to find it).
  3. In Gmail, once the email is copied up and synced, select the mail or mails and click the "Remove Label" button, or, press "y" on the keyboard. Use Mail.app menu Window, Activity to confirm the sync, and, observe the labels in Gmail. At first, you will still see all the mails in the Archive label marked with an Inbox label as well, but, as they are synced up, these will be removed. Once it settles down, you can Remove the Label.

Why do it this way, taking more steps? I do this because it is easier to search and select in Mail.app, than it is in Gmail. You can search on a date range in Gmail, but it is a bit fiddly.

To keep a backup of mail, just in case, I use the excellent MailSteward utility. This lets me automatically keep a database of all my mail, which I can then periodically offload to DVD, Amazon S3 or Dropbox.

Bonus Tip

If you are happy deleting unneeded mail in Gmail and not Mail.app, then you can uncheck "Move deleted messages to the Trash Mailbox" in preferences (Mail.app, Preferences, Select Account, "Mailbox Behaviors"). This way, when you delete on Mail.app, the mail is removed from the Inbox on your local system, but, only the Inbox label is removed from the message up in Gmail. You would then have to go to Gmail and delete what you want to delete.

I hope these tips help someone.

Tuesday, September 28, 2010

Switching Parts of a String in Excel

I had the need to fix mistakenly entered email addresses in Excel, and luckily the mistake was a recognizable pattern. They should have been firstname.lastname@domain.com but were entered as lastname.firstname@domain.com. This short post explains how I extracted the names and switched them.

How to Swap Parts of an Excel String

First assume you have smith.joe@acme.com in cell A2, and that what you want is joe.smith@acme.com in cell A5. Enter this formula in cell A3:

=LEFT(A2,(FIND(".",A2,1)-1))

That extracts "smith" out of the email address in A2, by using the FIND function to return the number of the position of the period. You subtract 1 to tell LEFT when to stop extracting.

Next, in cell A4, enter this formula:

=MID(A2,(FIND(".",A2,1)+1),((FIND("@",A2,1))-(FIND(".",A2,1)+1)))

That uses MID to extract from one after the period, through one behind the @. This is about finding the positions of parts of the string you can see are in a pattern, and subtracting or adding 1.

Now in A5 you can concatenate the two in the proper order, and add the domain, thusly:

=A4&"."&A3&"@acme.com"

That's it & good luck!

Tuesday, June 22, 2010

Convert Line Endings with Aplomb

When transferring files from system to system, for instance, using csv files to transfer data from one db to another, sometimes there are problems where programs will not process a file because of its line endings. This happens especially if you process a file on one platform, say Mac, and try to use the file on another, say Windows. Even if you have saved a file as CSV from Mac Excel 2008, it will not necessarily be saved in a format that can be read programmatically, if the program is expecting a certain type of line ending.

How Can We Avoid Line Terminator Problems and Troubles?

Let's recall how lines are terminated by default on Windows, Mac and Unix.

  • Windows-style line endings are CRLF ( \r\n or hex 0D0A )
  • Mac-style line endings are CR ( \r or hex 0D )
  • Unix-style line endings are LF ( \n or hex 0A )

There are a number of ready-made command line programs like unix2dos, dos2unix, mac2dos, dos2mac and so on, that can be used to convert line endings. Note that you can also use the tr or perl commands as well. Tr is available on Macs by default and on almost any unix. Perl is pretty ubiquitous as well. E.g:

[root@server /path/to/files]# tr '\r' '\r\n' win-crlf-file.csv

[root@server /path/to/files]# tr '\n' '\r\n' win-crlf-file.csv

[root@server /path/to/files]# perl -pe 's/\r\n|\n|\r/\r\n/g' unix-lf-file.csv > win-crlf-file.csv

If you want to find out whether a file has the expected line terminators, you can use the file command on *nix or Mac. Here's what that looks like:

[root@server /path/to/files]# file inputfile1.csv

inputfile1.csv: ASCII text, with CRLF line terminators

[root@server /path/to/files]# file inputfile2.csv

inputfile2.csv: ASCII text, with CR line terminators

You can also use the cat command to show line endings, with its -e switch. Do a man cat for more info, because you can also get line numbers, for instance. The first file below has CRLF, which shows up in cat’s output as ^M$, and the second file has only a ^, which is equivalent to the Mac CR line ending only situation. What you need will depend upon the import program.

[root@server /path/to/files]# cat -e inputfile1.csv

Part,Cust,Price,StartDate,EndDate,Reason^M$

123-ABC-456,CUST000001,100,6-01-2010,05-31-2011,Regular Update^M$

456-ABC-789,CUST000001,100,6-01-2010,05-31-2011,Regular Update^M$

…

[root@server /path/to/files]# cat -e inputfile2.csv

Part,Cust,Price,StartDate,EndDate,Reason^123-ABC-456,CUST000001,100,01-06-2010,31-05-2011,Regular Update^

Besides line endings, there is also the text encoding of the file, to watch out for. For instance, is the file saved in Roman or Unicode or some other format? In the end, take care to confirm the file you have output is what is needed by the program for input. Enjoy!

Tuesday, June 01, 2010

Fixing a Mac OS X Spotlight Index, that Doesn't

Mail.app "Entire Message" Greyed OutAfter a spate of Mail.app problems probably related to having too damn many mail accounts and messages, I had to do the "Mail.app Reimport Samba" taking hours to let Mail.app reimport the entire mail store. After that got resolved, I found out that my Mail.app "Entire Message" selection in Search was greyed out. This turned out to be a symptom of a problem with the Spotlight index, since this search function of Mail.app is dependent upon the Spotlight index of the hard drive where your mail is stored. Generally speaking, the Solution was to delete the Spotlight index, and then re-index the drive. However, it was not a simple process (is anything?!), and as such was very "un-Apple", so I thought I would take the time to document it.

How to Make Spotlight Re-index Your Drive, Even When She Says No!

A.k.a., How to Fix Greyed Out "Entire Message" in Mail.app Search. As I was learning to do this procedure in my OS X 10.6.3 system, looking at the Apple forums and elsewhere, I observed that Spotlight was taking "forever" to re-index, while it should re-index a 500GB drive in an hour or so. When I clicked the "pulsating" Spotlight icon in the upper right of the screen (it pulsates or winks while re-indexing), I saw a message that Spotlight was calculating the time required to index the drive with a barber pole progress bar, but it was just stuck in this state for days. This prompted me to try various things to fix it, and no one method from any one forum ever worked for me, in practice.

So, let me try to explain what did work.

Remove the Extraneous

Disconnect any external drives and shut down any unneeded programs.

Remove Unneeded Spotlight Importers

Spotlight importers which allow programs to get their output files indexed are sometimes the cause of Spotlight crashes. You can find them in /Library/Spotlight and ~/Library/Spotlight (where ~ is your home directory, of course). If you have third-party importers, especially in ~/Library/Spotlight, you can move them to another folder for safekeeping, then move them back one by one to see if the "indexing forever" problem recurs. I deleted ones that were associated with programs I never use, but kept the ones I do use.

You can search the entire drive for the .mdimporter files, using this command. Hat tip to "Hal Itosis" (lol) on the MacFixit Forum.

# find -x / -iname \*.mdimporter -exec ls -lndotT {} +

Repair Disk Permissions

I use the excellent Cocktail for this but you can do it in 3rd Party OnyX or Apple's included Disk Utility as well. In Cocktail, use the Disks menu, Permissions tab. Choose to Reset Permissions and ACLs for Home Directories for All Users, then click Repair. This takes about 30 mins to execute.

Prepare the Index

Using Terminal, use launchctl to unload the indexer by controlling the appropriate launchd command, use mdutil to turn off indexing for the root folder (the /) of the local hard drive, use rm to delete the index itself (.Spotlight-V100 in the root of the drive), and finally trash Spotlight's plist.

$ sudo bash

Password: *******

# launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

# mdutil -i off -E /

# cd /

# rm -rf .Spotlight-V100

# rm -rf ~/Library/Preferences/com.apple.spotlight.plist

# exit

$

To explain, note the sudo bash and exit lines, bookending the procedure. This gets you a root prompt (the #) after you enter the admin password and then exits the root prompt at the end (returning to the $ prompt). You can also use sudo before every command, to be extra safe.

Clear All Caches

Noting that this part will force a reboot, again in Cocktail Files, Caches, choose Options and select all caches you can. Executing this resets the system to a state close to what you get when you install anew or do a major upgrade. Note that the system will take longer to restart because it is rebuilding caches, and applications will be sluggish the first time they restart, because they are rebuilding font caches.

Click Clear to execute the cleaning procedure and wait while it finishes. Choose to let the system restart, but when you hear the startup chime, hold down Shift so the system restarts in Safe Mode.

Safe Mode Index Rebuild

The system will take a while to get into Safe Mode. After you press and hold Shift while starting up, once you see the progress bar during startup (which is not present in normal mode), you can let go of Shift and go get coffee while it starts up. The login prompt will have a red Safe Mode in it, to alert you to the difference.

Again in Terminal, issue some commands to rebuild.

$ sudo bash

Password: *******

# launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

# mdutil -i on -E /

/:

Indexing enabled.

# exit

$

After a few minutes you should see the Spotlight icon start to pulsate, but this time, the "Calculating Indexing Time" should change to some value, and a blue progress bar, which means the indexing is actually working. You can restart into regular mode, and the indexing just picked up where it left off, for me. However, do not connect any additional drives until it is done indexing the main drive.

Observing and Confirming

There are a few things you can do to observe and confirm Spotlight's activities, in Terminal. This assumes you are at a root prompt.

Check the size of the Spotlight index using du (directory usage):

# du -hsc /.Spot*

1.1G /.Spotlight-V100

1.1G total

Note that this should be a fairly large file. If it is only a megabyte or so, something is broken or your Spotlight index is off.

Check Spotlight-related processes with ps (process lister):

# ps axcru |sed '1p;/ md/!d'

USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND

root 352 0.0 2.8 3696728 117196 ?? Ss 8:44AM 24:25.73 mds

_spotlight 6677 0.0 0.2 2532748 10292 ?? SNs 3:19AM 0:00.33 mdworker

rcogley 6664 0.0 1.2 2638620 48240 ?? SNs 3:19AM 0:02.95 mdworker

Check index status with mdutil.

# mdutil -as

/:

Indexing enabled.

/Volumes/COGLEY-WD:

Indexing enabled.

/Volumes/COGLEY-WD/Backups.backupdb:

Indexing enabled.

/Volumes/COGLEY-WD2:

Indexing enabled.

/Volumes/COGLEY:

Indexing enabled.

List open files in /System/Library related to Spotlight, using lsof (list open files).

# lsof -c md |grep -v /System/Library |grep -v Spotlight

Get general system information with df and diskutil:

# df -lh

# diskutil info /

Show commands you have entered in the bash shell:

# history

Note that if you use an alternative shell like fish, some of the above commands will not work. From fish, just do sudo bash to get a bash-based root prompt. Be sure also to check the Console GUI application in /Applications/Utilities. This will show crash information for the mdworker program, which may give you hints to what is going on.

I hope this article helps someone, especially since this problem seems to be pretty prevalent, these days. Enjoy!

Tuesday, March 16, 2010

Opening a Tab-Delimited "CSV" in Apple iWork Numbers

I like Numbers, from Apple's competent and beautiful iWork suite, but there are still things where it is different from Microsoft Excel, and hence it feels somewhat unfamiliar at times. For example, although Excel has never been good at handling text files saved in UTF-8 format (a big deal for those of us who work in Asia), it does have a nice Wizard for importing CSV or TSV text files.

Some applications export text files with tab-separated values, and put a CSV extension on them. Actually, CSV stands for "Comma Separated Values" where these are really "TSV" or "Tab Separated Values." When you try to import such a CSV file, Numbers will mash all the fields into one cell in the left-most column. That makes sense, because it's looking for commas judging by the CSV extension. Finding none, it just lets the data pile on.

How to Import a Tab-Separated "CSV" in Numbers

If you have a tab-separated CSV, here's how to open it:

  1. Save the file somewhere you can find it.
  2. Rename the file in Finder, so that it has a .TXT extension.
  3. Ctrl-click the file and choose "Open With" and "Numbers".

Now the data will open correctly, with each field getting its due, and you'll get the added benefit of Numbers not munging any Japanese or Chinese characters.

Hope this tip helps someone. Enjoy!

Tuesday, February 23, 2010

Fixing an Unexpected Prompt Hostname in OS X

In Mac OS X, you may have noticed if you use the Terminal that OS X automatically picks up what it thinks your hostname should be and sets it. This is nice, but the problem with it is if any utility uses your hostname to set config files, you'll have a different config file every time.

How to fix a "Strange Hostname" in an OS X Prompt

If you are getting varied prompts that look like this...:

rcogley@em60-123-194-6 ~>

...where what you're expecting is something like this:

rcogley@rickmac ~>

To fix this, you can use scutil. Here's how I did it:

scutil --set HostName "rickmac.esolia.net"

Substitute the rickmac bit with your own hostname and domain and you'll be good to go with a static prompt. Try these also:

scutil --get HostName

scutil --get LocalHostName

scutil --get ComputerName

man scutil

I hope this helps someone. Enjoy!

Friday, January 15, 2010

Handle Leading Zeros in iWork Numbers

Apple iWork Numbers Leading ZerosApple's iWork '09 Numbers spreadsheet is a versatile app with a lot of power available if you open your mind and don't expect it to be Excel. It does not quite do everything Excel does, but it handles UTF-8 well (where Excel does not and has never), and I take advantage of that often. I also love the formatting options and the multiple-sheets-per-document paradigm, but that is a different post.

One challenge in both Excel and Numbers is how to handle fields with numbers with leading zeros. For instance, a part number 001234 will come out as 1234 when you import it from a CSV in either app, and lose meaning if the actual part must include the leading zeros. You can set a cell or column format in Excel as 000000, and this works the same way in Numbers, except the method's a little unfamiliar.

How to Format a Part Number Field to Preserve Leading Zeros

Here's how to not maim your part numbers.

  1. Select your column to format, and open the Cells inspector.
  2. Select Custom Format from Cell Format then click Show Format.
  3. Give the format a name, and choose the base type.
  4. Delete whatever format is in there by default and drag up an Integers type lozenge.
  5. Open the disclosure triangle, and choose "Show Zeros for Unused Digits" and you will see the #,### change to 0,000. Click Show Separator to deselect it and remove the comma. Add two digits.
  6. Click OK to save and apply the format to the selected column.

If you set the format as 000000 for a field that includes six digit numerics with leading zeros, and a mix of text with numeric part numbers, such as:

001234

P098765

005544

R-09-PCX

... the latter will not be affected by the format, which is just the right behavior we need.

I hope this tip helps someone, because not being able to set this really drove me a bit batty. Enjoy!

Friday, October 30, 2009

Greylisting in Snow Leopard Server, or not

Apple's OS X Snow Leopard Server 10.6 implements Greylisting, an anti-spam technique based on forcing sending SMTP servers to "slow down" before they can deliver. This is great for reducing spam, but it also has the perhaps undesired effect of causing delivery delays. Sometimes really, really loooong delivery delays.

In SLS, when you enable anti-spam in your Mail server (which is postfix), greylisting is automatically enabled. Because there are no readily available manuals on how to use this feature, from Apple, you may want to turn it off. Note that I'm skittish about changing config files like in a normal Unix server in an Apple server, because Apple is known to simply change vast portions of their server products without much notice. It's possible that you'd spend time implementing, and they change the way it has to be done so you have to redo it. Anyway, here's how to disable:

How to Disable Greylisting in Snow Leopard Server

Of course, as implied above, you can stop Greylisting by turning off spam filtering altogether. However, to be more specific and just disable Greylisting, do the following:

  1. From Terminal on the server (ssh'ed in or direct), do "sudo bash" to login as root. Then use nano to edit /etc/postfix/main.cf
  2. Remove the "check_policy_service unix:private/policy" string from the line that starts with "smtpd_recipient_restrictions" near the bottom of the file. Save, and exit nano.
  3. Issue a "postfix reload" to reload the configuration.
  4. Use the "exit" command to quit the sudo bash root shell.

I'm a little miffed that Apple would enable this by default and not implement any easy way to edit the greylists or whitelists. At any rate, you can read a couple articles on greylisting, or just wait for Apple. Time however, waits for no man. :-)

Textmate Regular Expression Search and Replace

I use and love the text editor Textmate, which has some powerful functions. One thing that it can help with is quickly editing text files, and for example today I used it for searching lines in a mail system's "aliases" file. I wanted to remove 50-odd lines with the word owner in them, so I used the Find command with Regular Expression checked.

The search string is:

^.*owner.*$

If you enter that string which means to find the lines with owner in them, check "Regular Expression," and leave a blank in the Replace box, Textmate will blank out the lines for you. Convenient!

Sunday, September 13, 2009

Linking File Types and Apps in OS X

Restore File Associations in OS X FinderIf you are an OS X user, and you find files of a certain type, say PDFs, are opening in one applications but you want them to open in a different one, you can easily change the association using Finder.

How to Re-associate File Types with Applications in OS X

Here's how:

  1. Select a file in Finder and ctrl-click it.
  2. Select "get info" from the context menu.
  3. Find the "open with" section in the "get info" menu that appears.
  4. Select your desired application from the drop down list.
  5. Click "change all" to set the association between that file type and the application you selected.

This has worked in OS X Tiger, Leopard and Snow Leopard. You can use this method to, say, open all PDFs in the native OS X "Preview", Adobe's Acrobat, or Skim, for instance. Please leave a comment if this helped you. Enjoy!

Friday, September 11, 2009

Safari Makes it Trivial to Download All Images on a Page

Download All Images or Files in Safari PageOf course it should not be used for nefarious purposes, but Apple's Safari browser makes it trivial to download all the images or files on a web page you are visiting. I had The Logo Factory create a special logo for my company eSolia's 10th anniversary, and they prepared a page with the deliverables on it. I did not want to download each one individually, and I remembered that the Safari Activities window allows you to access the objects on a page directly, such as various file attachments on a page.

O' Sensei of Safari, How Do We Achieve this Magic?

You can use Safari's Activity and Downloads windows, both available in the Window menu in Safari, in this way:

  1. Browse the page you want to download from, then open Activity from the Window menu.
  2. Find the page among the other pages if you have multiple tabs open. Use the disclosure triangle to open the outline of the objects on the page.
  3. Find and select your download targets. Press Cmd-C to copy to clipboard.
  4. Display the Downloads dialog, also available in the Window menu, then paste into it. Cmd-v.

You should see the images or files start to download in the Downloads window. I hope this is helpful to someone.

Tuesday, September 01, 2009

Fixing EMobile USB Dialup on Snow Leopard

I just installed Snow Leopard OS X 10.6 with no problems after getting a replacement for a bad Family Pack install disk (the Shibuya Apple Store said that many people reported the same), and found that my EMobile Huawei D02HW USB Wireless Dialup card, which was fine in Leopard, died when Snow Leopard was installed.

Reinstalling the EMobile Huawei D02HW on Snow Leopard

Here's how I fixed it:

  1. Deleted /Applications/EMobile D02HW Utility.app.
  2. Deleted /System/Library/Extensions/HuaweiDataCardDriver.kext
  3. Deleted Huawei folders and files in /System/Library/Modem Scripts and in /Library/Modem Scripts
  4. Emptied the Finder trash.
  5. Rebooted the system.
  6. On plugging in the USB Modem, the system mounts it in Finder as a USB memory. Ran the installer EMobile D02HW Utility.app and got an error regarding AutoOpen. Bypassed this by opening the installer package via "Show Package Contents" in Finder, and ran the Contents/Resources/EMOBILE_D02HW_Drv_App.pkg, which is the actual installer. Now it runs with no errors. AutoOpen be damned.
  7. After the install, rebooted again.
  8. After the reboot, I can add the Huawei Mobile modem in Network Preferences. Phone number for these devices is "*99***1#", user name em, password em.

I read a report that you can simply change tone to pulse dialing in the existing Huawei Mobile settings (from Leopard, for instance), so maybe the failure just has something to do with a plist not working somewhere and changing that setting refreshes it, but removing and reinstalling works fine too.

Give it a try if you have trouble, and I hope this short tip is helpful for someone.

Tuesday, August 04, 2009

OS X Fonts, Managed by Linotype

Linotype FontExplorer X ProIf you pay any attention at all to typography, layout, type faces, fonts, leading, kerning, tracking and the like, and have ended up amassing a collection of type faces from the famous designers and font foundries, you'll end up needing some method of organization. The type face or font organizers that come with operating systems are basic, so vendors have channeled some Gutenberg and come up with replacements.

Linotype's FontExplorer X Pro 2.0 for Apple's OS X is one such program. I started out using their free, unsupported FontExplorer X and have recently trialled and purchased the pro, commercial version, called LinoType FontExplorer X Pro 2.0 available here for EUR 79 (as of 3 Aug 2009). As far as I'm concerned, it's worth every penny.

You can get details from this PDF brochure or from the website, but let me start by quoting from the manual:

FontExplorer X Pro is a powerful professional font management tool providing you with a clear overview and complete control over the fonts on your computer. FontExplorer X Pro helps you to organize your fonts according to your personal preferences, you can activate and deactivate fonts as you please, while functions such as font detection in documents make it easy for you to identify the fonts required for your projects. A recurring problem is that documents are frequently displayed incorrectly when the necessary fonts are not available on a computer. With FontExplorer X Pro you can now easily buy the fonts you need for a job via the FontExplorer X Pro Store.

FontExplorer X Pro ("FEX Pro" for short) gives you a complete type face or font management solution on OS X, and you can even have it manage a consolidated font library in a specific folder, a la the iTunes or iPhoto libraries. There are plenty of built-in fields that you can sort on and some built-in sets, but you can also tag, label or comment your fonts and create "smart sets" which are like iTunes smart playlists. You could create a set per project, for example, to indicate what fonts were used for a client job, or, you might create sets of pleasing combinations of fonts.

Aside from the customizable main-screen preview you can see in the screenshot at the top of this post, FEX Pro can show you all the details about a font file including version and format (OpenType or TrueType etc.), the complete character set and even missing characters as well as Unicode or HTML character codes, sample text in "running text" or "waterfall" formats, the legal information such as embedding rights, and kerning pairs.

Sounds Great, but What's the Point

But what's the point? Why manage your fonts? Every font file you load on your system requires resources to deploy. If you have 1000s of fonts, that's going to require a large amount of memory to load every time, and will certainly slow down application loading and system performance.

A major benefit of a font manager like FEX Pro, is that it lets you activate fonts when you need them, freeing system resources for other purposes. FEX Pro even lets you auto-activate fonts, deciding which apps can or cannot request fonts, and even associate a font set with a specific application so that that set gets loaded when, say, Photoshop loads.

Minor Issues

The gripes I have with FEX Pro are minor. I really love the application. However:

  • It should give advice on what combinations of fonts "work together" especially for non-designer types like me.
  • The consolidation method is opaque, and it should be easy.
  • Backup of font metadata you add, like labels, should be automatic.

What I had to do to consolidate my library into ~/Documents/Fonts was the following:

  1. Set the library to my desired folder and tell FEX Pro to move the fonts there. This is done in Preferences, Advanced.
  2. Backup all font files manually.
  3. Run Tools menu, "Clean System Fonts Folders..." which moves any non-system font files from three system font folder locations to a backup folder on your desktop.
  4. Re-import the backup folder on the desktop, letting FEX Pro organize into its folder.
  5. Check for duplicates and prune.

That's too many steps when it could be a single step that does things in a non-invasive way, to get you ready to use a single folder, if you're a user wanting a simple solution.

Get It

My recommendation is, if you're on OS X and care about type aesthetics, buy FontExplorer X Pro. It's worth it and is a welcome addition to any OS X user's toolkit.

Monday, July 13, 2009

Shared iTunes Music Storage

My family has a shared iMac G5 running Leopard OS X 10.5.7 and iTunes 8.2 (both the latest as of 13 July 2009), and recently I noticed we were running low on disk space, so I did some digging via du at the command line. I found that we were eating space by ingesting CDs into iTunes, which would get copied to our respective local user folders.

After a little research, I found the Apple KB article that describes how to have a single storage location for music, so I set that up and made some other discoveries in the process. I thought I'd share how I did it.

  • To determine what folder is using what space, you can use the "du" command in the Terminal. After you do a "sudo bash" to set the Terminal to root access, you can do a "cd /Users" and then a "du -hsc *" to check sizes of all the user folders under /Users.
  • To find a location where your family's music can be shared, you need either a folder on an external drive or somewhere on the default internal drive. For now, we chose /Users/Shared/Music.
  • Confirm where files are located by selecting a song, and pressing cmd-I. In Summary, you'll see the path of the song in the "Where" section.
  • Create the Music folder in /Users/Shared and set its permissions so all users can see it. If it is not set already you can do this via the cmd-I "information" interface for the folder, or, using chmod from the Terminal.
  • In the first user, change the "iTunes Music Folder Location" in iTunes Preferences, Advanced. Also in Preferences, make sure "Keep iTunes Folder Organized" and "Copy Files to iTunes Music Folder when adding to Library" are checked. OK out of Preferences.
  • Next do File, Library, Consolidate Library, which copies any files outside the shared library into the library's location, which is now /Users/Shared/Music. This takes a while for large libraries, and will move not only the files from your original iTunes library location, but also any files that you had dragged in from Downloads or the Desktop, for example.
  • After consolidation completes, confirm where your song files are located by selecting a song, and pressing cmd-I. In Summary, you'll see the path of the song in the "Where" section. It should now be /Users/Shared/Music or wherever you specified in Preferences.
  • Now, you are ready to share with other users, but before you do that, go to iTunes Preferences, Advanced, and turn off "Copy Files to iTunes Music Folder when adding to Library", remembering to turn that back on if and when you consolidate again.
  • Prove that CDs will add to the right location by importing a CD, and confirming where the song files are located (cmd-I on the song file).
  • Log into another user, start iTunes, and repeat the location set, library consolidation process. Import a second CD into this second user's library, and confirm it is saved in /Users/Shared/Music.
  • Return to your original user, and to add that CD the second user added to your library, do "File, Add to Library" and choose /Users/Shared/Music. By choosing the root of your library, iTunes will check what has not been added, and add it. Your original user should now be able to find the second user's CD in his or her library.

With this method, each user maintains their own ratings and playlists, but there's a slight delay each time someone adds a CD or downloads from the iTunes Store, because you have to "refresh" the library in File, Add to Library.

I hope this helps someone understand what they have to do to share music amongst family members and avoid eating up disk space. Enjoy!

Friday, June 19, 2009

iPhone OS 3.0 Tips on Parade

Apple released yesterday an updated iPhone operating system, iPhone OS 3.0, with a number of useful improvements. For me, the update itself was seamless, and took about 15 minutes after clicking the update button in iTunes. I upgraded first thing in the morning, but colleagues who tried later in the day had some delays. I guess it's to be expected when so many people try to download at the same time.

Some Tips for iPhone OS 3.0

I took some screenshots of the obvious and not-so-obvious (by pressing the home and power buttons simultaneously in case you aren't aware how), so I'll introduce those to you now.

If you have MobileMe you can enable Find My iPhone and track where the phone is if it is stolen, via GPS. You can also remote-wipe and send messages and sounds to your iPhone. Maybe you won't get the iPhone back, but you can at least antagonize the thief! The sounds and messages will play even if it's locked, so this will help if the iPhone is in "manner" mode.

I suspect it will be useful for when it's in manner mode but lost somewhere in the nether regions of your sofa.

"Find My iPhone" via MobileMe

iPhone OS 3.0 now finally has select, copy and paste, and it works in and across various applications. Even the new TweetDeck for iPhone that was just released supports it already. Press and hold to get the selection "handles" and various commands.

Select and Copy

Once something is on the clipboard you can paste. You can see I copied from TweetDeck to Mail. The new clipboard also honors rich text, which means you can copy something like formatted text from a webpage in Safari, to a Mail Message, and it will paste it in just as you saw it on the web. Slick!

You can also select in mail to "quote" part of a message before replying. It works more like Leopard OS X.

iPhone OS 3.0 Select, Copy, Paste

iPhone OS 3.0 now has Spotlight. You can swipe the left-most home screen right to get spotlight search, and you'll see that the page icon (the dots at the bottom) is actually a magnifying glass. Spotlight search works across apps, and like big sister OS Leopard OS X, also works to find apps so you can launch them. Check your settings as well - you can link "home button double-press" to Spotlight search if you like.

Lastly, you'll find that many apps with lists, like Address Book and Mail have a search box at the top. This is Spotlight, but as you scroll down through the entries, you can double-tap the very top of the screen (near the clock) to jump back to the top. Try it!

Spotlight Address Book, iPod, Notes

Spotlight Music and Podcasts

In Address Book you can now send an Address Card as a vCard entry via Email or MMS (which Softbank Japan supports). Scroll down to the bottom of a contact to find the share buttons.

Share via Email or MMS

Here's what a shared vCard in .vcf format via Email looks like. Note also another new feature: the Landscape keyboard is available in more apps, negating the need for apps like EasyWriter.

Landscape and Vcard

While we're on Mail, you can move messages instead of just deleting them in the Edit screen. Convenient for stuff like spam.

Move Messages

Neat stuff on the podcast front, too. In iPod, you can control podcast playback better, with the "jump back 30 seconds" and the speed changer buttons. There's also a button for emailing the actual link to the podcast so you can share it with friends.

Podcast Controls

When you click the email icon from the podcast, you get a pre-formatted email with a link to the podcast.

Mailing a Podcast Link

There are plenty of tiny new tweaks, including this almost incomprehensible one, showing you a very small thumbnail of the last photo you snapped. Maybe it's fuzzy because I merely have a 3G and not a shiny new 3GS.

Teeny Little Thumb

A couple more things:

  • MS Exchange integration is much better, but note that the interface in Address books allows you to "view all", so it might look like you have duplicates if you keep your MobileMe and Exchange address books synced.
  • iTunes now lets you buy & download whatever's in the iTunes store.
  • iPod lets you "shake to shuffle".
  • There's a new basic Voice Recorder app that lets you record and share voice memos. Nice.
  • They've improved the keyboard "secret" hold-to-see shortcuts. Check it out by going to the numbers and symbols keyboard, then holding down various keys.
  • While browsing in Safari, you can press and hold a link to get a popup that lets you open the link in another tab.
  • You can shake to undo in the main applications like Mail or Messaging.

If you own an iPhone, you can upgrade for free, and there's a small fee to upgrade if you have an iPod Touch. Try it, I'm sure you'll like it. It really makes the iPhone an even more attractive platform. Enjoy!

Sunday, May 31, 2009

Restoring Mail, but not via MobileMe Account Backups

Time Machine Mail PlistSo much for MobileMe backing up my Mail account data! I had a another weird crash, which has been plaguing me since I upgraded OS X Leopard to 10.5.7. The crash happens when I wake the computer from sleep, and plug in my firewire then USB hard drives. When the USB hits the socket, sometimes I get the grey screen of death, in which the only way to recover is a hard reset. This happened again today, but this time, the hard reset broke Mail. After booting up, I started Mail and the only account I had was my MobileMe account. My Google accounts were gone.

I thought, ah hah!, I'll recover from MobileMe's copies of my Mail Accounts. No dice. It must have quickly pushed to MobileMe, the change that happened when the system crashed, so syncing MobileMe did nothing to recover. Searching the web a little, I found various information about restoring the entire mail folder and so on, but it turned out that my mail data, in ~/Library/Mail, seemed intact. So, I decided to try to restore my Mail plist file first, from Time Machine backup, and see if that would fix the problem.

How to Restore Mail.app

Here's how I restored it:

  • Close Mail.
  • Plug in the Time Machine drive.
  • Press option while clicking the Time Machine icon in the menu bar, select "Browse Other Time Machine Disks" and choose your Time Machine disk. You can display this icon in Time Machine preferences. Note, if you use Path Finder, a Finder replacement, like I do, start Finder before you do any Time Machine work.
  • Enter Time Machine, and find your last Mail plist backup. In Time Machine, just click a folder or two "back", and see what the date on the file is. The file is ~/Library/Preferences/com.apple.mail.plist where ~ is your home folder.
  • Affirm the overwrite, when the restore process asks if you want to replace the file with an older version.
  • Start Mail.

This worked. All my mail was present and accounted for. If my mail had been damaged, I could do the same procedure, but after stopping Mail, just rename the Mail folder ~/Library/Mail to something else like ~/Library/Mail-Backup, and restore both the Mail folder and the plist file from your Time Machine backup. It will take quite a bit longer to achieve, but it should work.

I hope this helps someone. Enjoy, and good luck recovering.

Wednesday, April 29, 2009

Color Management in Flock (and Firefox)

If you use anything but IE 7 you are still out of luck, but Safari users have had this functionality for quite a while. I refer to "color management", which is the concept of adjusting the color properties of devices, like displays, monitors, printers or scanners, so that colors mean the same thing across devices, and more importantly look the same. The adjustment can be done in the operating system itself, which is what Mac OS X does (and one reason it is superior to Windows), or via International Color Consortium "ICC" profiles and other software trickery.

Let me keep it very simple for this post, though. If you use Flock, which is at the time of this writing based on Firefox 3, or Firefox 3 itself, color management is disabled by default. However, you can easily enable color management, so that photos on photo sharing sites like Flickr or SmugMug will render with the color profile embedded in the photo, which usually means they will look much better than the default, using no profile. In my opinion, these days you will get far better results by turning color management on, in your Flock or Firefox 3 browser.

How to Enable Color Management in Flock or Firefox 3

The easiest way to enable the settings is by using the Color Management Addon for Firefox which will work in Firefox and should work in Flock. Alternatively, you can enter the secret "about:config" code in your address bar (where you type the URL), and enable color management yourself:

about:config

Be very careful about what you change in here, because you can break your browser easily. That said, scroll down until you find:

gfx.color_management.enabled

gfx.color_management.display_profile

You can double click gfx.color_management.enabled to enable Firefox to use whatever profile is embedded in the photo you are viewing, and, you can specify an ICC profile by entering its path in the gfx.color_management.display_profile parameter. If you are not sure what that means, just enable gfx.color_management.enabled.

Restart Flock or Firefox, and you should get much better colors on sites like Flickr or SmugMug. Finally, please check out Deb Richardson's excellent introductory post on this topic, for a clear depiction of the difference of using profiles or not, and how different applications render color. Don't waste time with color management turned off - turn it on now and enjoy much richer color.

Sunday, April 12, 2009

Splitting Long Videos for YouTube in iMovie

iMovie, included among other excellent consumer applications in Apple's iLife 09, now provides an easy way to share your videos on Google's YouTube video sharing service. You just prep your video, and then use the Share menu to share it in various ways. However, YouTube has a 10 minute, 1GB limit.

Using iMovie 09 with YouTube

Here's a few tips to work with those YouTube limits:

  • Confirm the total video time at the bottom of the project window, and the length of a clip by hovering the mouse over the clip and looking at the time-stamp appearing at its beginning.
  • Use Share menu, YouTube. If the movie is over the YouTube limit, the dialog box that appears will tell you so.
  • Make a clip smaller by positioning the playhead, ctrl-clicking and selecting "Split Clip." Once clips are split you can delete parts that are not needed.
  • If need be, split up your Project into two Projects. Let's say you have a 14 minute, 600 MB AVI file you have imported into your project, that you have split into two 7 minute chunks. Ctrl-click on the Project in Project Library and choose Duplicate. Rename each project to indicate which half it will be in the end. Open each half and delete the unneeded half.

I trust someone will find this useful when working with iMovie and YouTube. Enjoy!

Friday, February 27, 2009

Guerilla Collaboration with Mindtouch Deki?

Aaron Fulkerson, the CEO at Mindtouch - makers of the awesome mashable wiki "Deki" - writes about the state of collaboration in his post Three Decades Later. Revolt Or Die.

As Aaron mentions, the current state of affairs with regard to collaboration is very much email centric. However, email is terrible for collaboration. If you have never given this much thought, sit a moment and really think through what it means to try to manage a project, with file versioning, in email. When you do, you can see how easily email can snowball out of hand, with nobody on the team knowing what file or which piece of info is the current, latest version.

I know this from painful experience. I have and my firm has had to manage very large projects via email, because of the strong resistance at the client to any web-based applications. People have been adamant: "we use email for everything." Yikes. There are even project management applications that cater (pander?) to this attitude, like Wrike.

My own opinion is strongly against the use of email for any attempts at collaboration, as it is simply the wrong system, but this all reminds me of an anecdote.

A scientist working on animal behavior rigged a gorilla cage with a banana, hanging from a string at the top of the cage where it would not be reachable. He put a ladder in the cage, propped against the side. The gorillas would figure out how to use the ladder, and just when a gorilla would reach for the banana, the scientist would spray the gorillas with cold water. The result? Enraged gorillas. Enraged and hungry gorillas.

But that wasn't the point. While doing this experiment, the scientist would swap out a gorilla, and repeat. Grab-spray-enrage, grab-spray-enrage. Eventually, the experienced gorillas were preventing newcomer gorillas from going for the banana.

Peer pressure, at its finest. Like the gorillas, our habits become entrenched, and there's a lot of "that's the way we always do it" in corporations worldwide, especially when people introduce new systems to use. That includes wikis.

I think Mindtouch might sponsor some demos to decision-makers, to show how great their technology is, how it's easy to adopt, and why email is most definitely not The Answer (tm). I thank Aaron and company for leading the charge.

Saturday, January 31, 2009

Online Project Management Apps

Many people on Twitter ask for recommendations for a good online project management solution. There are many such web-based applications out there, and it really depends upon your needs and intended project approach - are you "agile", do you want to use "scrum" or "kanban", or are you PMI all the way. Do you want it SaaS, or self-hosted? Do you need time tracking? Should a wiki be integrated? The list goes on. My requirements to make it through the "first cut" were:

  • app is web-based and so is accessible anywhere.
  • app is relatively bug free and stable.
  • app developer has some history and do not look like they will disappear tomorrow.
  • app is not linked to a single platform (that is, it can be accessed from a PC, Mac or Linux system, for instance) or a single technology (for instance, that it "requires IE and ActiveX").
  • app supports Japanese for data entry, export to CSV or other formats, and in reports (I did not need the UI to be Japanese, necessarily, but the input and output should support Japanese characters).
  • app has time tracking.
  • app has custom fields, especially for time tracking.
  • app has email integration preferably in- and out-bound.
  • app has acceptable reporting.

Just below is a list that basically supported the above, or I felt were interesting enough to look at in more detail, even if the app did not make the cut - for example, "it must be free" or "it must include invoicing". I suggest you make a list like that to weed out the ones that won't work for you. Then you can start concentrating on really fine-grained items like:

  • app allows entry of "time remaining" rather than the asinine practice of entering percent complete.
  • app allows entry of estimates, from a task, rate-type, or "phase" perspective, and a printout of those (because even agile teams have stakeholders).
  • app is not just a list, but has some level of workflow tracking built in as well.
  • app does not lock you into only one way of doing things, but rather allows you to approach things from your perspective.

Online PM Solutions that Passed my First Cut

For your reference, here's the list of "first cut" solutions (for me, that is) where I started examining in more detail (and in alphabetical order):

Other Online PM Solutions

There are many other ones that I looked at, but were not quite what I wanted or needed. This does not mean they won't work for you or are inherently bad. For your reference, here's a list of some of the others (in alphabetical order) that I thought were good but that either lacked something I needed or that I simply did not have time to assess properly:

Note, many of these apps have ways to get a free version (limited by number of users or projects for example), are free for open source teams, or, are open source to begin with. I hope this article can be a starting point for your search for the perfect PM app. Enjoy!