Thursday, September 29, 2011

Backup Strategy

Now that we are migrating priceless personal documents to the new machine, it’s time to talk backups!
For now, I’m using  Windows Backup and Restore.
What I back up: Files in libraries and Personal folders for all users and system image” every night at 9:00 PM.
Where I back up to: NTFS-formatted partition on an external USB 2.0 hard drive.
I think the defaults do not backup “data” files in funny location. To back up directories you’ve created like c:\data, you should add them to a Library. To do this: In Windows Explorer,  right-click on Libraries –> New –> Library, and give your new library a name, like “Data”. Then, navigate to your data directory, right-click, Include in Library, and choose a library. Now the directory will be backed-up along with the rest of the Libraries.

Tuesday, September 27, 2011

Migrating from iPhoto to Windows Photo Management

 

This is part of a series of posts in which I document my “switch” from Mac to Windows. This post discusses how I moved my photo libraries from Mac iPhoto to Windows.

Preface: iPhoto Library Management

I have a few challenges with iPhoto, which were part of the reason for my switch from a Mac laptop to a Windows desktop:
#1. I have too many photos to fit in an iPhoto library. I have ~20K photos, but iPhoto can only handle about ~5K before it gets sluggish and crashy.
#2. I have too many photos for my Mac laptop hard drive. I have a 120GB hard drive, which can’t hold all my software and movies and music and photos. So, I need to split off an “archive” library.
#2. I want to migrate my photos over time, while keeping my ability to process new photos without mixing up or losing anything.
iPhoto Buddy is the first part of the solution to these challenges. With iPhoto Buddy, we can split one giant iPhoto Library into several min-libraries. (iPhoto Library Manager could help too, but the free trial version didn’t work for me. If you are feeling confident and are willing to pay up front, I think it would be a good tool.)
It’s important to engage iPhoto Buddy long before your hard drive fills up, because you’ll need to temporarily make 2 copies of your iPhoto library, and you’ll want to work on your primary (fastest) storage disk.
Anyway, the general plan is to duplicate your iPhoto library, and then remove complementary chunks from each, creating two smaller libraries whose photos/albums/events combine to equal the original library. Then, we can take time to migrate the older “archive” libraries, while still adding and editing photos in the last library with our current photos. As long as we don’t edit any photos in the archive (but viewing and exporting is OK), we don’t have to worry about and data corruption/loss due to the migration.

Migration

I am running PhoShare to liberate my photos from iPhoto. I used iPhoto Buddy (described earlier) to split my library into 5 smaller libraries that are a few gigabytes in size with a few thousand photos in each. Next, run a PhoShare export that copies photos (and events, keywords, ratings, faces) from the Mac system/disk over to the Windows system/disk.
Specifically, share a directory from my Windows machine via SMB over the local network, and make that shared directory writable by my user account.
Then, instruct PhoShare export the photos to that SMB-mounted volume. Important PhoShare settings to note:
  1. Export events, not albums, since we don’t want duplicates of all the files. (We have to make a choice here; there is no good way to keep Events and Albums / Smart Albums.)
  2. Disable “Use file links”, since we are exporting to a remote disk.
  3. Add {yyyy}-{mm}-{dd} to the “Folder names”, to help the Windows photo management tools (Windows Live Photo Gallery, or Picasa) sort the event by date.
  4. Use {ascii_name} in Folder names, and {ascii title} in File names, to keep special characters from causing trouble in file names. I chose {title_description} for the captions.
Please read the rest of this article before executing the next step, which will take quite a bit of time and disk space. You need to make some decisions that will affect your choices in the PhoShare export.
Do a Dry Run first and check that the dry run log shows reasonable-looking behavior (check filenames especially). Then take a moment to be sure that you will be able to ensure the Mac and Windows machines stay networked together for the next 2-24 hours.  Finally, Start Export, and let PhoShare do its work.
Repeat this whole section for each “archive” iPhoto Library. When you are ready, you can choose to keep the Mac around for your “current” library, or choose take a break from photo management for the day or so it takes to move the “current” library to Windows and get set up there.

Managing Photos on Windows

Once a photo library is exported to Windows, feel free to start editing/re-organizing the photos on Windows. I recommend a light touch at first, getting accustomed to how Windows photo management works, and finding a workflow that you are happy with before you cut ties with the Mac. If something goes horribly wrong, you can go back the Mac and re-export the library from scratch. It’s nice if you don’t do too much throwaway work on Windows before you make your final decisions, though, so be careful at first.
Windows Live Essentials Photo Gallery and Picasa are your two main “gallery management” options. Neither one of them hijacks your files and directories like iPhoto, so feel free to mix and match them. They are both uglier than iPhoto, and both have both missing and extra features; adapt to your new world. Cheer yourself up by making nice panoramas in Photo Gallery, with much less effort than the wonderful-but-complicated Hugin required back on the Mac.
Dealing with Originals
If you are a hoarder / constructivist like me, you cannot bear the thought of losing your original (over-sized, miscolored) photos. Photo management programs (iPhoto, Picasa, Live Photo Gallery) each have their own superficially-incompatible ways of preserving orginal photos.
  • iPhoto maintains two directories: Masters and Previews (aka Originals and Modified, respectively), and uses the iPhoto UI to “overlay” the Preview tree over the Masters tree, so that you see all Preview photos, and also and Masters photos that are not “shadowed” by a Previews photo with the same filename.
  • Picasa (3+) maintains a “.picasaoriginals” directory inside each photo directory, and *moves* original master photos there before saving a modified photo.
  • Live Photo Gallery maintains a single folder  “Originals” with a pool of all originals, and uses some database system to match modified photos to originals.
In my opinion, Picasa’s model is the safest and most correct. This may the single reason to use Picasa for all bulk management of changes, and only use Windows Photo Gallery for one-at-a-time edits of a photo after Picasa has safely stowed an original.
PhoShare follows the Picasa model. After exporting from PhoShare, your iPhoto Originals will be split into two camps: Pictures that were never modified will have their Original file be promoted (moved) to the “main” photo folder. Only photos that were already modified (and so had two versions already in iPhoto) will have an Original version in the PhoShare export.
If you want to “port” the Originals folder to Picasa, you can simply (manually, or using a script) rename all those “Originals” folders to “.picasaoriginals”. PhoShare can also do this for you, but there is no GUI control for this option. You’ll need to use the command-line interface to pass the “—picasaoriginals” option to PhoShare.

To-Do

  • Split the Photo Event folders into Year/Month sub-directories, for easier navigation
  • Port Star-ratings (which PhoShare moved to “tags”) from EXIF to Windows Photo Gallery format?
  • Set up Picasa/Flickr sync.
  • Enjoy managing photos on Windows?

Sunday, September 25, 2011

Migrating from Mac to Windows

I got a new desktop PC, and I would like to make it the new “authoritative” home for all my Documents and media content. This means I need to migrate all my files from my old Mac laptop to my PC.
It is very important to consider the notion of “authoritative source” for any data (photos, bank statements, homework, love letters, etc). If we copy our files from one machine to the other, but then go on to make changes to those files on both machines, we’ll end up in a hopeless mess. So it is important to move the files:  Copy to the new machine, Archive the old machine’s files, then Delete the old machine’s files.
Later on, we can “check out” files from the new authoritative machine, to temporarily work on them on the laptop, but we must be vigilant to “check in” the changes back to the authoritative machine. (A later post will discuss tools we can use for this, including SMB Network shares, and Concurrent Version Control Systems)
OK, so here’s how I moved my files.

Setup

Our plan is to hook up both the old Mac and the new Windows machine to the same local network; Share my home directory over the network; and then, on the Mac, send (copy) files over to Windows.
There are three distinct categories of storage where the old files are kept:
  1. Internal HFS+ filesystem (main System disk)
  2. External HFS+ filesystem
  3. External VFAT (Windows-compatible) filesystem
We’ll use an appropriate strategy for each.
There are two main categories of files we need to handle:
  1. Platform-specific-structured files that need special care (iPhoto Library, mail, etc)
  2. Simple cross-platform files (Office documents, text files, maybe music files, CD/DVD images) that we can just copy over

Let’s discuss the Internal HFS+ filesystem first.

Platform-specific-structured files

We need to use special tools to convert our Mac-specific files and bundles.
  1. iPhoto Library: I’ve written an article dedicated just to this
  2. iMovie projects: ??? For now, make an archive, and save it somewhere.
Let’s take a moment here to remind ourselves to avoid platform-specific content bundles (iPhoto Library) in the future.

Simple cross-platform files

There are a few two basic approaches:
  1. Copy EVERYTHING (except System files and Applications) over, and then sit on the Windows machine and delete files we don’t want to keep. This uses a lot of disk space, but is relatively quick (one long “bulk” wait at the start, and then delete files at your leisure), and it’s also safe.
  2. Copy files over one folder at a time. This is more labor intensive, and it potentially error prone (in case we forget something important), but uses less disk space on the new machine, and helps clean out old cruft.
  3. Hybrid approach:
    1. Copy over some special content using a custom approach: Copy very large files (video files, music, disk images) first.
    2. Delete (or move into quarantine) these folders on the old machine.
    3. Do a little spring cleaning, and delete large files that we don’t intend to ever user again.
    4. Bulk-copy everything else, by copying high-level directories like /Users/<you> and any others you have.


External HFS+ filesystem
Windows cannot read HFS+ filesystems. Linux can read and write HFS+ filesystems. So, we’ll use Linux. Here’s our plan:
  1. Run Linux (in VirtualBox)
  2. Mount the external drive to the Guest OS
  3. Migrate files as discussed earlier (for the main Mac system disk), choosing a Shared Folder as the destination for the files (or an SMB share, if you want), so that the files finally land on the Windows Host OS.
  4. To clean up / delete the external drive, we have two choices:
    1. Reformat the whole drive (or partition), saying goodbye to HFS+
    2. Selectively delete files, and then use a partition tool to resize the partition and make room for other non-HFS content on the disk.
Steps 1 and 2 are discussed in another article in this series.
This last step (4.2)  has a twist: In order to delete (or edit) files on an HFS+ disk, we need to disable journaling (from the Mac OS) before mounting on the Linux OS.

Friday, September 23, 2011

Setting up Windows Desktop - Part 2: Configuration

A clean installation Windows in its factory-fresh state is broken. In this article we will fix a few things.
Prevent self-waking from Sleep/Hibernate
In the default configuration, Windows will wake the computer from sleep and hibernate on any network activity.


  • Right click on your “My Computer” then select Properties.
  • Click Device Manager on the left side of the Properties window.
  • Check your Network card on the Network Adapters (Click on the + sign to expand).
  • Right click on your network card and select properties.
  • Go to the Power Management tab and either:
    • Untick the option to prevent your network card from waking up your Windows.  -OR -
    • Tick the option to “Only allow a magic packet to wake the computer”.
    Credit and more details about sleep management: http://www.cravingtech.com/fix-windows-vista7-sleep-mode-from-waking-up-by-itself.html
    Tech Details: http://technet.microsoft.com/en-us/library/ee617165%28WS.10%29.aspx

    Start –> Folder Options –> View:
    • CHECK Hidden files and folders: Show hidden file, folders, and drives
    • UNcheck Hide extensions for known file types  
    • CHECK Restore previous folder windows at logon
    • CHECK Show drive letters
    • CHECK Launch folder windows in a separate process
    (I’d like to show System files as well, but Windows has a bunch of bogus Junctions (NetHood, Application Data, etc) that exist for compatibility with broken legacy software, and they really clutter up the Explorer.)
    Hide non-Windows partitions
    If you have an hard disk partition with ext (Linux) or HFS (Mac) format, Windows will map the partition to a drive letter automatically, and continually offer to format the partition to Windows format. top protect your data and yourself, hide these drives from windows:
    1. Start –>Disk Management” (which appears incorrectly as “Create and format hard disk partitions”)
    2. Right-click on the partition entry (either table cell at top, or graphical view on bottom), and choose “Change Drive Letter and Paths…” –> Remove
    3. While you are here, feel free to re-map other drives/partitions to your liking. Do this as early as possible, before you start creating Libraries and shortcuts and scripts and such that refer to the old drive letters.
    Credit: http://forums.techarena.in/tips-tweaks/1179239.htm

    Windows Media Player Network Sharing Service has a habit of wasting CPU while doing nothing of value. It runs as a process called "wmpnetwk.exe”. Disable it: Start –> “Services” –> Windows Media Player Network Sharing Service  -> Startup Type : Manual and also click Stop. More info.

    Remove some epileptic bling. Start –> “Adjust the appearance and performance of Windows”. (This is subjective, but I recommend these settings to improve the usability of Aero desktop)
    UN-check:
    • Animate windows when minimizing and maximizing
    • Enable Aero Peek     (Enable: Alt-Tab shows previews  Disable: Alt-Tab shows icons)
    • Fade or slide menus into view
    • Fade or slide ToolTips into view
    • Fade out menu items after clicking
    • Save taskbar thumbnail previews
    • Show translucent selection rectangle

    Thin down the huge window borders. Start –> “Change window color and and metrics”.
    • Item: Active Window Border. Size: 2
    • Item: Border Padding: Size: 2


    Configuring Applications

    If you had to install Adobe Reader, you might need to fix its broken default DPI setting in order to make document look good. Edit –> Preferences –> Resolution –> Use System Setting.
  • Wednesday, September 21, 2011

    Setting up Windows Desktop - Part 1: Software

    This is the first in a series of techie articles, where I describe my recent experience setting up my Windows desktop PC for Math & Programming.

    I recently purchased a new Desktop PC. This system is quite powerful (compared to my old Mac laptop), and I would like to put it to full use. Besides web browsing and other “client computing”, I would like to migrate my Mac-based projects (developing 3qual in Eclipse, Photo library management, etc) to this machine. I would also like to run a Linux system where I can explore programs and developer tools that are designed for Linux, and I want to access the Linux-formatted (ext-format) hard drive in my system, if possible.

    This series outlines the solutions I have found.

    To get started, let’s install useful software.

    Bootstrap with Ninite

    Ninite provides a great tool to build a bundle installer with many popular software packages. Visite http://ninite.com and configure a custom installer for software you like. 

    Beware, though: some it is junkware. Do not blindly include everything!

    I recommend the following:
    General programs
    1. Web Browsers: Chrome, Firefox, Safari, and/or Opera, as many as you like. If you prefer to run Chrome Beta or Firefox Beta, skip those here and download the Betas from their sources.
    2. Messaging: SkypeTrillian is also popular. (I use Gmail’s web-based Google Talk & AIM client)
    3. Media:
      1. VLC for playing video and DVDs
      2. foobar2000 for playing music
      3. K-Lite Codecs, CCCP for handling various audio/video formats
    4. Runtimes: Flash, Java, .NET, Silverlight, AIR, Shockwave, for running applets of various natures.
    5. Imaging:
      1. Paint.NET (better than Paint)
      2. Picasa photo library manager and editor
      3. GIMP 2.6: PhotoShop alternative image editor (unless you want to get GIMP 2.7 from the source)
      4. Inkspace vector graphics editor
    6. Documents:
      1. LibreOffice  alternative to Microsoft Office
      2. PDFCreator or CutePDF for Print-to-PDF (like the Mac does)
      3. SumatraPDF or Foxit to read PDFs. Adobe Reader if you must.
    7. Security
      1. Essentials by Microsoft.
    8. Utilities: RealVNC
    9. Compression: 7-Zip for all compressed file formats.
    10. Developer Tools: All of these are great.
    11. Anything else you know you want, also. Beware of “Trial” versions.
    As soon as you have Firefox or Chrome installed, stop using Internet Explorer.

    Cygwin
    If you have any interest in Unix, install Cygwin. Cygwin provides a Windows implementation of POSIX (Portable Operating System Interface for Unix). The rest of this post uses “Cygwin” and “POSIX” mostly interchangeably.

    The defaults are basically fine.

    Be sure to add xinit to the list of packages to install, which will provide an X Server that we will use later (when we create a Linux virtual machine).

    After install, you can run bash.exe and lots of other Unix classics. If anything you like is missing, run cygwin setup.exe again and see if what you need is available for install.

    Note that Cygwin creates a new home directory for you, under a directory called home that is placed under wherever you installed Cygwin. Thus,  ~ and ~username do nor point to your Windows home directory! If you prefer to have a combined Windows/POSIX home directory, move your POSIX home directory into your Windows home (“user profile”) directory:
    mv $HOME $HOMEPATH\\cygwin
    and then create a soft link that points from the POSIX location into your Windows home (“user profile”) directory:
    ln -s $HOMEPATH\\cygwin $HOME
    Special Cygwin tip: Some POSIX programs prefer Unix-style paths with forewhacks (“/”) . Most Windows programs prefer Windows-style paths with backwhacks (“\”), even when called from a Cygwin shell. To easily switch between the two forms, use cygpath, as in this example:
    $ WindowsProgram.exe $(cygpath –windows ~/my_file)
    $ posix_program $(cygpath –unix C:\myfile)

    Programmer Tools

    Programmers install these software packages:
    • Git version control system: Either:
      • install “git” and related packaged as part of your Cygwin installation
        • Run Cygwin setup.exe and choose+install the “git” programs
        • Add “export PATH=/usr/lib/git-core/:$PATH” to your ~/.profile , to make all the git commands available in your shell (especially git-gui)
      • or install Git for Windows, which is a combined Cygwin+Git bundle.

    Other software

    If you’d like to keep an eye and finger on your system’s CPU speed, temperature, and fan speeds, install CPU-Z and SpeedFan.

    For power-user system debugging, grab SysInternals Suite, featuring Process Explorer, PsKill, and more. The suite does not have an installer, so create C:\Program Files\SysInternals\ and copy all the files into there.

    Many of these are command-line utilities, so “Edit environment variables for your account” and add the C:\Program Files\SysInternals\ to your PATH variable.

    I’m doing a little math these days, so I installed MiKTeX TeX engine, and LyX LaTeX GUI front-end.

    For more math fun, you can install RStudio to run the R statistics programming system, or you can install RStudio Server on a Linux system, and connect to that through your browser.

    To keep tabs on disk space usage, WinDirStat.

    To fix file attributes (like incorrect dates from cameras with mis-set clocks), SKTimeStamp.

    To Be Continued…

    Whew! Now we have a mostly functional Windows workstation.
    There’s a lot still to do. Here’s what’s coming up later in the series:
    1. Migrate our photo libraries from Mac iPhoto to Windows.
    2. Installing a virtual machine inside on our PC, so we can run a Linux on Windows system, and run real Linux programs side by side with Windows programs.
    3. Recurse! Set up our favorite Linux programs on our virtual Linux machine.

    Welcome to Pascalcula Patterns!

    Welcome to the new Pascalcula Pattern blog!

    Here we will discuss techie and business topics: Personal computing, software development, web oftware, mobile software (especially Android), running a small software business, and more. The scope will grow over time, but for now, it's main focus is to contain all the geeky stuff that can't compete with the baby pictures on our personal blogs :-)

    The first few posts will document my recent adventure in "Switching" from Mac to Windows, including setting up my new Windows system for photo management, software development, and of course running Linux (on a virtual machine).