Wednesday, June 25, 2014

How Good Is Your Backup?

I have covered this before, but it's so important, it's worth talking about again.  I am only addressing this article to any who use a computing device - computer, notebook, tablet, smart phone.  If you don't use any of these things, you can ignore this article!

I cannot for the life of me understand how it is that people put up with mediocrity.  If someone cuts your lawn, and they forget to trim, or leave wisps of long grass because they miss parts as they criss-cross, do you keep them on?  If someone cleans your home and doesn't do the fans, window sills, or corners - do you let them come week after week?  Heck no for me!  So if someone wants me to buy or download their Operating System, why would I even consider it if they don't provide me an easy way to back up my data?  Let's take a look at Windows and Mac.


What should a backup be?  In order to understand that, we need to understand how computers work.  And let me be clear, everything that requires electrical signals nowadays is a computer - from your smart watch to your phone and tablet.  Computers have 2 types of storage - a working set of more expensive memory, that can only hold contents while powered (this is called RAM or Random Access Memory), and longer-term memory for storage of data while it is powered off (typically non-volatile Flash RAM or hard disks).  Let's call the long-term storage a hard disk, for simplicity's sake.

The hard disk stores basically 3 types of files on it, which are used by the system.
  • Operating System files - these are data files, programs, and the like that run your device.  Without it, you have a very elaborate brick.  These may also contain configuration settings that are modified as you tweak the system to your preferences.
  • Program, or app, files - these are programs that you may add, and all the configuration and resource files they use to run and do their thing.
  • Data Files - these are what typically people think of when they think "backup" - your music, photos, documents, etc. that you download, share, create.
Now, in a well-organized system, these files should be segregated into 3 distinct locations.  Why?  Well, if you have 3 people living in the same house, and no drawers to keep their stuff - they can throw their things all over the place.  How do you know whose is whose?  Whose underwear is that?  Whose toothbrush?  Yeah, you don't want to share some things.

Organized systems means it is easy to back up.  Also, it means it is easy to restore - and restore to a different version of the Operating System, to some degree.

Now let's address another important aspect of backing up.  When you back up electronic data, you back it up (typically) to another electronic system - usually another hard drive, could be a tape or something.  This electronic system is susceptible to failure, or some kind of disaster that affects an area like your home or office could affect both the system you care about and the backup system that has its back.  So off-site backup is important as well.

However, here I would say is the great equalizer.  Offsite backup is typically handled by a service, in which case they support Mac and Windows equally.  What wins here is ease of backup, so the more organized your files are, the easier it is to include the right ones to incorporate a full backup.


From a professional standpoint, I have advised dozens of clients over decades that making a backup is great, but it is completely useless unless you actually restore it and make sure it works.  If a backup is not restorable, it is a false sense of security.

Any backup that you do perform, you should immediately perform a Restore to make sure it works.  Best, is to restore to a fresh system - so wipe the system, and restore - and see exactly the results of the restoration.  Did it get you everything you expected?  Was the backup complete?


Is this a rant?  You decide.  Let's take a look at the 3 types of files.  Windows is an Operating System.  As such, it keeps its files in the Windows folder (e.g. C:\Windows).  Under there are a whole mess of things - from the Windows Heap, Registry, Global Assembly Cache, to Windows system programs and configuration files.  But wait, some things are under C:\Program Files.  And if you are on a 64-bit Windows, some things are under C:\Program Files(x86).  Confused yet?  Wait, it gets better.

When you install a program, let's say you install it to C:\Program Files.  Your program goes there (the EXE file) and a bunch of resource files - but many settings get written to the Registry and loaded into the Heap, which is managed by Windows (yeah, what a heap).  Many are copied to the Global Assembly Cache, or other Windows system folders.  So, if you want to copy your program from one computer to another, it is practically impossible to just copy the Program Files folder, and have that work.  Good to keep people from illegally copying your program if you are a developer, but bad for backup.  And, there are better ways to prevent software piracy.

So, how do you back up a Windows machine?  Let's start with the Windows Backup, that brilliant utility that comes with your system, and lets you back up.  First, it prompts you where to put your backups.  This, it says, is where it is going to put the system image.  What is a system image?  A complete backup of your entire hard disk - everything.  This is great if, say, your hard drive takes a dump, and you have to buy a new one, and restore everything.  This really sucks if you say, buy a new computer, and want to transfer everything.  Because the entire hard drive - including the Windows system folder containing all the drivers specially loaded and configured for your hardware - will be transferred to the new system, where they almost assuredly won't work.  Not to mention that a system backup takes up a massive amount of space (good thing I didn't mention it, eh?).

So where do your little data files fit in?  Sure, you can back them up.  And this is good if you lose a file, but it doesn't take care of the important things in life.  How and when do your backups get initiated?  Do you start them manually?  Hopefully you remember.  Do they go nightly?  What happens if you lose something at 5PM after a whole day's work?  Now here's where it gets really insidious that they are so shortsighted.  You know where I talk about all those configuration files spread throughout the system, some for the app, some for Windows - all over?  Those, I would argue, are just as important as the apps to how you use your system.  Things like what printers you have set up, what passwords your system remembers, to all the little tweaks on where you put your task bar, gadgets, and colors and more.  It takes hours and days to restore a "restored" backup to all these little preferences, and you will never get them back if you have to restore a partial backup.

True, you can take a full system image.  True, Windows is better than it was - you can restore the image to different hardware, and let it go through its redetection to fix all the drivers to the new hardware.  However, this is a hack, and not a robust, well thought out solution.

More importantly, how would one go about getting a good backup?  That, to me, is the mystery here.  The tangled mess of files strewn throughout the file system is the first problem.  Let's cut to the chase - the only thing you can reasonably expect to reliably back up in Windows, are your personal data files.  These are, after all, the most priceless part of it.  Apps you can struggle with re-entering license keys, trying to get the vendor to issue you new ones, or just give up and buy it again.  Personal preferences, just give it up - you are going to have to start over each and every time you restore your system from anything other than a system image.  You get what you pay for.

OS X (aka Mac)

Let's contrast a disorganized, eclectic mess with a well-organized, streamlined symphony.  In OS X (and iOS for mobile devices), Apple has organized everything with strict respect to the purpose of the file.  An app, in fact, is a bundled "zip" file containing all the files the app needs to run inside it - the binary EXE, DLL's, text and image and other resource files, and more.  So installing an app is simply dragging and dropping it into the Applications folder.  Deleting it, simply removing it.  Configuration files are kept in well-defined system and user locations.  So too with data files.  This makes it easy to back up.

More importantly, you can back these up irrespective of what version of the OS you have.  You can restore forward and back, with some limitations - of course, config files may not be able to go back to an older OS.  All kinds of preferences - your keychain (where it keeps your stored user names and passwords), printers, graphical tweaks, sounds, etc. are included with the backup.

The Time Machine software that comes with OS X is designed to work the way people work - and the way problems occur (and the way people realize the problem occurred).  It takes hourly backups of all changed files - in the background, as you work.  If you realize suddenly you have an issue with a file, you can scroll backwards in time to find the right version of the file, and restore it.  All from your desktop.  (Specifically, hourly for 24 hours, and daily for a week, then weekly as backup space permits.)

Every aspect of what you consider "yours" is backed up, so that when you restore, your computer is precisely back to the way it was before the problem.  And, it does so as a series of changed files - you don't have to take an entire system image.  Remember, that system image includes a complete backup of the operating system, which you don't need to back up.  That is already backed up on the Recovery Volume.

I personally have done a few system restores from Time Machine backup, and let me tell you, they are so easy and complete I am left wondering why anyone puts up with anything else.  And file-by-file restore is amazing, it is so easy to flip back through time in folders and restore specific files.

Mobile Devices

Yes, as you can guess - what am I going to talk about here?  If you have a Windows phone, you already know what you're in for - more of the same as above.  A mess.  But what if you have an Android phone? Surely they have thought of this more than Microsoft?  Well, you can throw that idea out the window - backups are just as fragmented, incomplete, and haphazard as Windows.  They rely on you to know what files you want to back up - and believe me, on a mobile device that is even more difficult than on a full PC.

Which brings me around to Apple.  Yet again, they have you covered.  If you synch with iTunes on a PC, it backs up a complete backup of all your files (minus the OS), so that you can do a complete restore of a lost or damaged device.  I myself have done this dozens of times (transfer to a new device, or re-stage the device I used for iOS beta testing).  It is absolutely 100% complete and reliable.

But then they go you one better.  If you go to your iCloud settings, with the flip of one switch, you can turn on iCloud backups - which backs up all your personal data (not app/music/etc. purchases which are already on record anyhow through iTunes) automatically, in the background, over the air.  You are 100% covered, 100% of all your data, without having to think about it or spend your precious hours on it - over and over and over like those manual operating systems.  I mean, come on, is this the 1990's or something?

So, if all you ever care about is your contacts and e-mails - then you don't have to worry about backup if you use cloud-based services.  But, if you do anything else with your computer - use apps, pass files around - you can guess where I prefer to be.  Where I don't have to pay to buy backup software, where I don't have to worry because it's covered.


I'm not even going to say anything at this point - you can draw your own conclusion.  Are you willing to put up with mediocrity, or do you value yourself, your time, your piece of mind, and your data better than that?  It is hard to bring a system to market, and kudos to Google, Microsoft, and others who have done so, successfully.  But what I am saying here, is from a consumer's standpoint - the company who goes the extra mile, who gives a complete thought to every aspect of the product, who is organized, has a plan and executes it par excellence - that is the company whose product I will buy.  That is the one I will admire, support, and use.  Think about how important the data you manage with your computer is, and who has the system to best protect you.  The choice is clear.

Monday, June 23, 2014

Apple to Pull Further Ahead Fall 2014

Recently Apple marked the 25th anniversary of the Apple Worldwide Developer Conference (WWDC).  Its opening Keynote Address is typically the venue for Apple to announce new features of their software - and this year has heightened my excitement to a level never seen before.  Granted, I am an Apple Fan - I admit it (a reformed Amiga fan).  But, that aside, you have to admit what Apple is doing is truly groundbreaking in the aggregate.   Here's a brief synopsis of what to expect, and why I think Apple is leading.  Also, my analysis on why I think Apple will surge ahead in market share in the coming 12 months.

I've said it before, that Apple has accomplished a monumental feat that dominates market penetration, while at the same time maintaining security and reliability for the end-user, but a recent post by Rene Ritchie of iMore I think puts it most succinctly:
"Apple has been working on delivering a comprehensive inter-app communication system for years but they wanted to do it in a way that didn't compromise security or usability. That iOS is as insanely popular as it is, as big a target as it is, and has effectively no malware is a miracle of modern system design. "
Au contraire, monsieur Ritchie.  Rather than a miracle of modern system design, I would say it was intentionally set out from the beginning to be so - engineered by design to be secure.  It is a marvel of modern system design, one that every systems designer should strive to emulate.

PC's (OS X)

In terms of Personal Computers (traditional desktop/laptop/notebooks), I have said for years that OS X is leaps and bounds ahead of Windows in terms of functionality, utility, interoperability, efficiency, and security (a lot of -y words!).  At first during the Keynote, I was not impressed with the new OS X 10.10 Yosemite - it looked like a lot of gloss (endless presenter comments of look how beautiful and elegant it is - wow, we have semi-transparent windows!!!).  However, as the presentation went on, in typical Apple fashion, the meat and potatoes of true enhancement built to a crescendo - but the OS X (PC) side is truly now only half the picture - with the mobile side necessary to complete the full appreciation of the tremendous value of what they have done in outshining Windows, Android, and Chrome OS, and others.
  • OS X 10.9 Mavericks adoption has reached 51% of market penetration - in 12 months (8 months of release, 4 months of Beta)!  Windows 8.1?  A pathetic 9%.  In almost 2 years!!!  What does that tell you?  And the cost to consumers and business to upgrade?  Dude, don't get me started.
  • Window Transparency - true, OS X has finally "caught up" with Windows in providing transparent windows and dialogs (if you consider that an advancement), but to be honest the first thing I do when using Windows is turn off the transparency.  First of all, it slows the performance down (you can see it noticeably even on today's processors).  Second, it is damn annoying and distracting.  After 24 hours of using Yosemite, I am totally a huge fan of window transparency on OS X.  It is subtle, understated and muted - but a truly nice effect (from one who hated it since Windows Vista).  Well done.
  • Safari Web Browser - since Mavericks, Safari has outshined the competing browsers in every aspect.  I have given up using Chrome, and the new Firefox, as nice as it is, is nothing compared to Safari - especially as you take into account the synergy across devices.  Couple that with touch pad gestures, and forget it - I never want to touch another browser again!
  • Apps - especially built-in apps.  Just in the past couple of weeks, I was trying to figure out how to take a picture of myself with my Lenovo built-in web cam - and me, a Tech geek, could not figure it out!  I finally just did it with my Macbook, and transferred the picture via Dropbox.  Give me a break!  But look at the stuff that comes with OS X Yosemite, and it is crazy especially when you look at Continuity (see topic below).
    • Maps - a very nice Maps app, with built-in integration with your mobile device and the OS X operating system.
    • Mail - I have started using Mail sometimes instead of GMail web page, it is good for certain things.  Yosemite extends this further.  The ability of Mail to recognize contact information embedded in the text of a message, and interact with you to add or update your Address Book, is fantastic.  Integration with Calendar makes it work like a dream - as you always imagined the digital world of the future should.  If you didn't see, the image markup capability is truly stunning - I hope they extend that to iOS!
    • Calendar - much better than Outlook Calendar, this integrates with my Google Calendars, and Outlook/Exchange calendars, seamlessly.  I use this as much as I use the Google Calendar web page.
    • Messages - for a while, I have enjoyed using my laptop to participate in texting - but it only worked on iMessage.  They finally extended it to SMS (aka non-Apple) users, and the synch with my phone is seamless.

Mobile Devices (iOS)

I have seen many argue that Apple is way behind, that iPhones lack features considered standard and widely acceptable.  For example, iPhone apps all along have been sandboxed, which limits what the apps can do outside the sandbox that Apple allows (and limits people from tweaking and customizing).  This has led people to either jailbreak the device, or buy a competing product that allows it.  Another example, SD card slots for storage expansion.  I have argued in the past that Apple has been so forward thinking, they have created a day of limitless capacity - you don't have to go buy a stick to throw in the phone, and when that gets too small, buy another!  No, use the cloud - and reduce local storage only to the data you need while offline.  In keeping with that tradition, Apple has kept the focus in mobile devices squarely on the individual user - not on the device and its specs.  (Specs, schmecks.)  Their specs are only awesome in relevance to what it does for the user, not to the geekiness in the spec itself.  (For example, who cares if your phone processor does 8 million gigaflops of operations - if the OS is written poorly, it crashes or runs slowly no matter what processor you have.  iOS is fine-tuned from the bottom up, on a well-organized and well-designed platform.)
  • Security - iOS 7 has been deployed on about 90% of all iOS Devices.  In less than a year!  This is unheard of outside the Apple world.  Android is the other way around - about 9% of the latest OS is deployed, while 91% of Android devices are running OS's multiple years old - and without the latest security protections!  This is a hacker's dream world - so if you support hackers and identity theft, get an Android now.  People, get off Android ASAP, it is a bad deal.  Even Windows phones are more secure.
  • Some may argue these are catch-up, but Apple has been focused on getting it right, not getting it first.   By "right" I mean it functions reliably and is secure, so it puts security decisions in the hands of the users, and clamps down on apps doing things that are patently not secure.
    • Extensibility - arguably one of the areas where Android until now excelled - the ability of one app to do something with another's data, to make "plug-ins" for browsers, e-mail, keyboards, etc.  iOS 8, now extensible - and responsibly so.  Better do it right, than just get it out there and let malware go rampant.  Developers register extension apps as subscribing to certain types of extensions - is it a keyboard?  A picture plug-in?  A browser plug-in?  A storage provider?  And so on - so that it is available in the right portion of your phone, and globally across all apps that utilize those system services.  Users have control of what system resources the extension has access to, and the extension cannot call up some other app in the background - it can only launch an app to the front.  There is no back-end hacking and sending personal data over the Internet, unless the user allows it.
    • Quick contact access from the running app screen - double-tap to access recent calls and favorites (or favourites for our non-American English speakers).
    • Predictive keyboards - yet another example of wait, don't rush - and do it right!  Wow, this makes predictive text on other platforms obsolete.  How they work on other platforms:  You type 2 or 3 characters, and based on commonly used words or common misspellings, it gives a suggested list of words that you may intend.  What's wrong with that, it's an improvement, right?  Except that how Apple does it is more holistic.  What app are you in - Messages, or E-Mail?  Because how you type differs.  Also, to whom are you addressing the message - a friend or business associate?  The language differs.  Finally, what are the previous words?  Without even typing letters, analysis of previous words can give a follow-on word in many cases - simple analytics, that can produce a much more useful implementation of predictive text.


Introduced with OS X 10.10 Yosemite, the iDevices and Macs now support something called Handoff.  This uses Bluetooth Low Energy (LE), which older devices don't have.  So you need a newer Mac, and a newer iDevice.  Further expanding Apple as a visionary company, I declare that what Apple sells is not a myriad of devices - no, Apple sells the "connected digital life."  They are selling an experience, where a bunch of products (some from Apple, some from others like Chevrolet, Kwikset, Philips, iHome, Schlage, and more) work together seamlessly and securely.  So what does Continuity do, with Handoff?  It uses Handoff to transfer work you are in the middle of, seamlessly and in the background between your devices.  You start typing an e-mail on your phone, then lock it, and finish typing it on your Mac.  Start writing a document on your Mac, then have to get up and go to a meeting, so you pick it up and continue working on it on your iPad.  Seamlessly, in the background - you see an icon appear on the lower left of your screen, to allow you to "receive" the handoff from the other device.  As it should have always been, right?

Laying the Groundwork

Apple realizes that any computing platform is only as good as its software, and a single vendor simply can't make all the software that is needed in today's complex environment, so it needs third parties.  In that vein, Apple has done 3 major things that make it a premier development platform that draws developers:
  1. New API Kits
    • An Application Programming Interface is a tool kit that is made available to developers, so that they don't have to write their own code to do some pieces of what they want to do with an app.  For example, let's say you want to zip up a bunch of files - there is a simple API, so with one or two lines of code you can add Zip functionality to your app.
    • From HomeKit to  HealthKit, to Metal - Apple has done 2 things here.  First, they have brought unified kits to their API that allow developers to easily take advantage of functionality provided from within Apple systems.  Second, they have done so in a framework of security and reliability - so that it will work well, will not crash, and will maintain security to prevent hackers and criminals from illegally or improperly using the system.
  2. New Developer-related Functionality
    • From Handoff to Hypervisor, Apple has laid at the feet of developers the out-of-the-box functionality to quickly and easily add advanced technology to their software.  This is both on the iOS mobile platform, and on the Mac PC platform.
  3. New Programming Language
    • As with any technology, if you start completely fresh today with what you learned from the last 10 or 20 or more years working with older stuff, of course you will come out with the most incredible new things - informed by, but unencumbered by, the past.
    • After going through only about 50 iBooks pages of the Swift manual, it is my expert opinion as a programmer that Swift is absolutely the best, most expressive and most concise language on the market today.  Obviously it has taken many years to develop.  Use of advanced programming constructs, coupled with a powerful way of inferring programming intent with less typing, means that you can use the "looser" programming requirements of a *script type of language (VBScript, JavaScript) coupled with the most advanced ways of defining and building a solution.  This allows you to catch more problems in the language before they become a product, as well as make a more modular and extensible solution that you can leverage to develop new products faster than ever before.
It is my prediction that the next 18 to 24 months will see an explosion of application creativity in the Apple product ecosphere.  For those who don't have a Mac now, you'd better start saving up - because the new world will be so compelling, you just won't want to have a Windows box any more.  Linux or ChromeOS, maybe - but just for playing around.

Thursday, June 5, 2014

Ringing Endorsements of Technology

In this day and age of integration of media, it is not at all out of the ordinary to see everyday products used in shows and movies.  However, I have noticed a pattern - again foremost in my mind, the worlds of Microsoft versus Apple.

Microsoft seems to have to pay for its endorsements, while in the plethora of shows featuring Apple products, they usually go out of their way to hide the Apple logo, or like the Dan Schneider shows, develop an obvious parody of Apple products.  To me, it is kind of like the difference between Wal Mart and Costco.

Wal Mart, you see advertisements, and incentives - indeed, Sam's spends a lot of money on marketing.  Costco doesn't advertise - simply provide great service, great products at great prices - and word of mouth spreads.

So, Microsoft has been the king of marketing since the dawn of the computer age.  Or has it?  I always thought of it as such, but really the flair of Apple seems like it has outshone it in the devotedness of its fan/customer base.  It is quite rare for me to find a fan/advocate/customer of Microsoft, especially one who "moved over" from Apple products (in fact I've never found one of those).  I may find ex-Mac people who use Windows because they have to.  I have found a very few fans of Windows (those who just love it, who espouse its features with effusive enthusiasm).  However, every Mac user I talk to (and there have been quite a few) are avid Mac fans, and wouldn't dream of switching to Windows.  One, in fact (my podiatrist) uses Macs at his office to run Windows to run the office management software - but OS X to run everything else (so switch back & forth between Windows & Mac using Parallels).  That's a good marriage of necessity vs. utility.

So, there must be those people out there, because, you know, there are 7 billion people on this planet.  Come on out of the woodwork - speak up!  Leave comments on how you love Windows, especially if you came from the Mac or Linux worlds.  I bet there HAS to be SOMEONE who switched from OS X to Windows and loves it.  Right?