28 December 2011

Warning: Watch out if you run Windows on a partitioned disk (e.g., Boot Camp)

Windows has a horrible misbehavior when it updates itself in a partitioned environment.  

This hit my son hard when, home for the holidays, his Windows 7 installation in a small Boot Camp partition on his MacBook Pro decided to run Windows Update, which is a behavior that is enabled by default and un-obvious to turn off in Win7.  From what I'm reading, the behavior is hazardous to many types of systems, not just Windows-on-Mac situations.

"Windows Installer [creates] a temporary folder on the logical volume with the most free space, during the actual installation process, but that folder is deleted after use."
...The trouble is, it will do that even if that capacious volume is not a Windows-formatted partition!

Meaning, if you're running...
  • A server, 
  • A Storage Area Network or file-server, 
  • A multi-boot configuration
...in which more than one logical volume are visible to Windows or where your physical volume is partitioned into two or more logical volumes...

...then Windows 7's commandeering of the largest partition for scratchpad purposes can damage the file system on that partition.

Astonishing.  Totally unacceptable behavior from an operating system.

(Most virtual machine configurations including cloud instances cannot see host partitions, but SANs and file servers are routinely accessible to them, and this behavior might put them them at risk.)

This results in tales of woe such as are increasingly documented on Apple's support forums with scary headlines like "Unrepairable disk errors on Mac partitions caused by Bootcamp Windows updates?"

In my son's case, his OS X installation summarily disappeared during the Windows Update process, and the machine could no longer be booted except into Windows.  His panicked trip to the local Apple Store just before closing time resulted in a gratifying all-hands-on-deck response from the Genius Bar and an impressive deployment of all their tools, but the tools reported that the drive was irreparably hosed.  His backup drives are back at his college, and (ahem) a month out of date.  

Fortunately he has a geek for a dad, and I was eventually able to get into his damaged partition using various tricks including the marvelous Target Disk Mode which allows a Mac to act like an external disk drive for another Mac.  Ultimately I was able to copy all his files over to a USB hard disk.  But the damaged partition was really and truly ruined; the disk needed reformatting if it was going to be used at all.

As I write, the machine has a freshly formatted disk and no further Boot Camp partition.  He'll run Windows in a virtual machine when needed from now on.  Fortunately, he's running OS X Lion, so the machine could be booted into Recovery Mode after its disk was wiped; it just performed an Internet Recovery and is now downloading and installing the operating system.  Soon it will be sporting a fresh installation of OS X; the download process takes a little over an hour on our WiFi.  No CDs needed!  Pretty wonderful.  We'll then copy his files back, and he'll be back in business.

Lessons:
  • Be very cautious with Windows 7 in a partitioned, multi-boot situation, and very possibly where there are big file resources available on LAN.
  • If you use Win7 as one of several OSes, then prefer virtual machines over multi-boot implementations (e.g., Boot Camp)
  • BACK UP!!
UPDATE:

Poster "Intell" at the invaluable MacRumors forum notes,

Windows when started up on Boot Camp does not have write abilities to a Mac/HFS+ formatted volume, when using Apple's drivers. Thus, the installer will be forced to use the Windows/NTFS volume. Furthermore, the installer will only do this to internal NTFS formatted drives with priority given to the current startup disk.

So perhaps my son's tale of woe and those of the unfortunates populating forum threads like "Unrepairable disk errors on Mac partitions caused by Bootcamp Windows updates?" relate to improperly installed, corrupted or out-of-date drivers.

So add another couple bullets to the list of lessons:
  • Follow Apple's Boot Camp installation instructions to-the-letter
  • Ensure your Boot Camp drivers are installed and current
Users of other multi-boot environments should take heed as well.

Also consider turning off automatic updates so installation can be approved at a convenient time and when the computer has been backed up.  To do so: Click the Start button, select Control Panel, then select Windows Update.  In the left-hand bar, select Change Settings.  Then, in the Important Updates field, consider "Download updates but let me choose whether to install them."  Selecting this option will prevent spontaneous update installations, including those annoying installations that trigger on shut-down ...especially when the machine senses you're in a hurry, or so it sometimes seems.

25 December 2011

How to Firewall Your Phone System Against Robocallers, Telemarketers and Other Pests

As I mentioned in my first post on our money-saving Internet home telephone setup (see
How to Roll-Your-Own with VoIP for Massive Phone Savings), one of the awesome benefits of our setup is how we're blocking unwanted phone calls from disturbing the peace here at Entropy Central.  Callers are greeted not by ringing but by my friendly voice, saying,
Thanks for your call...  Friends, family and people with whom we do business, press 1...  For voicemail, press 2...  For an international dialtone, press 3.  Telemarketers and robo-callers, we have a specific digit for you.
The caller must press 1 on their phone to ring our home phones.  This simple requirement blocks automated calling systems, even ones manned by humans, since their operators are often connected only when the phone line is picked up after their system dials up the next mark to be fleeced.

In the run-up to the November, 2010 elections here in the U.S., our home line was receiving as many as twelve unwanted vote-for-me calls a day!  Most of these came at dinner-time.  And each and every one of these was blocked by this simple solution.

Even now, during the Holiday lull, the system has blocked nearly two dozen unwanted calls in December alone from charities and civic organizations looking for contributions.  My VoIP provider, voip.ms, provides web-based call data reports that lists every single caller, and these blocked calls are readily identified since they last only a few seconds, indicating the caller's call automation system has given up on reaching a live victim.  Win!

Just think, if everyone did this, we could kill the telemarketer industry in no time.  Oh, happy day!

Here's how:

The process is simpler than the acronym-fest that is VoIP might suggest at first glance:

Max is a great, free audio format converter for the Mac.
  • Record your message.  Nowadays most computers, smartphones, media players and tablets have built-in microphones and note-recording apps.  Easy.  On the Mac, the built-in QuickTime Player makes audio recordings (among a hundred other functions!).  The default location for recordings it makes is your user account's Movies folder.
  • If necessary, convert your message into a format compatible with your roll-your-own-VoIP provider's Interactive Voice Response (IVR, or digital receptionist) requirements.  For voip.ms, that means 8kHz, 16-bit .WAV encoding.  That's a crude but bandwidth-friendly format, and chances are you'll need a conversion utility to down-convert your audio file which is probably of higher quality.  An excellent, free, open-source utility for OS X is Max from sbooth.org.  Start Max up, select Convert Files from the File menu, point it at your recording, and click the Convert button in the upper left corner.  You'll get a pop-up requesting that you choose an output format.  Select "WAV (Microsoft)" and then specify the 16-bit flavor.  Click the Convert button, and the converted file will be stored in your user's Music directory, probably in an "Unknown Artist" folder since you haven't had your big break yet.
  • Now log into your voip.ms account and navigate to its DID Numbers | Recordings pane.  (A "DID Number" is just the direct-dial number that callers dial.  Generally you'll have at least one.  And you can have multiple lines or extensions per DID number, too.  On voip.ms, these are known as sub-accounts.  Sub-accounts can also be assigned to VoIP applications on your smartphone or computer, too.)
  • Now use the pane's menu to upload your newly-converted recording onto voip.ms' servers.
  • Navigate to the DID Numbers | Digital Receptionist (IVR) pane.  Click the "Create a new IVR" link.  Give your new IVR a name and specify that it use the recording you just uploaded.  Select a Time Out of 2 seconds... that seems to work well.  Choose whether you want callers' voicemails recorded in an inbox specific to a sub-account (equivalent to a line or extension for your voip.ms account) or to use a catchall voicemail box for the DID number.  (You can create and manage voicemail inboxes and select options such as voip.ms' wonderful email-my-voicemails option using the DID Numbers | Voicemail menu.  So it would be trivial to have your IVR say, "Press 8 to leave a message for Suzie, press 9 to leave a message for Sam..." with personal voicemail boxes for everyone in your family.)
  • Now you get to define what happens when your callers press buttons on their phones.  You do this by typing a number in a box and then specifying what that number-press or other event will do.  My settings:
  • 1:  SIP/IAX, with my home line's sub account specified.  What this is telling voip.ms to do is connect your caller to your physical line.  This is what my recording invites "friends, family and people with whom we do business" to do by pressing 1 on their phone.
  • 2: Voicemail, with my desired voicemail inbox specified.  
  • 3: In my case, since we have an international family, we specify a dial tone here so that when we're out of the house, we can call our home line, enter a passcode, and springboard to an international call using voip.ms's super-cheap rates.  This is massively cheaper than using cell providers' and hotels'  larcenous international rates, and more convenient than carrying a discount calling card, with no purchase required and no risk of loss.  To your cell phone (or whoever's phone you're calling from), it's just a call to your own number.  If you want to try this, voip.ms refers to this as Direct Inward System Access (DISA), and you'll find it in the DID Numbers | DISA menu.
  • i: A catch-all for an unrecognized button-press.  Select IVR, and choose the IVR you're working on.  Yeah, that's a loop: it means incoming callers who press a bogus button will get your recording again.
  • t: Timeout.  Here a little thought is required to consider your specific situation.  Originally, after a timeout I chose to have the caller routed to voicemail.  Unfortunately this let a few patient robo-callers leave messages in our voicemail.  What I ended up doing was create a second IVR that was identical to the first one but had no timeout.  So callers who let the whole message play through without pushing a button get it replayed, exactly once.  After that, t'heck with 'em: Hangup.
Test it out!  And enjoy the peaceful dinnertime evenings without rude telemarketers interrupting your meal.


There are many other things you can do in the IVR menu.  You can define extensions that forward to other lines or even ring the VoIP app on your smartphone.  No limits!  And, as you'll see, no telemarketers.

31 July 2011

How to Be Alerted When Your VoIP Goes Down

We've found our VoIP setups to be exceptionally reliable, on a par with our former landlines.  But friends have expressed hesitation about tying their communications to the Internet.  What if there's an outage?
You'll practically never ever see this.

First, I hope it's clear that landlines are not immune from outages, either.  And unlike an answering machine hooked up to your landline, your VoIP voicemail is handled at the server level, so callers can still leave messages even if your local Internet is down.  Which, again, rarely happens around here...

But there's comfort in knowing the status of your complete VoIP system.  Fortunately, my provider, voip.ms, provides an applications programming interface (API) that makes it simple (but geeky!) to have your Mac continuously monitor your VoIP-line status and alert you if there's an outage or even if your equipment is having problems.  (My example code below is platform-independent, too, and can be adapted to whatever live-desktop and alert mechanism works for your computer.)

The trick is to leverage a wonderful utility called GeekTool to periodically check your account registration status on voip.ms' servers.  GeekTool can run scripts, and it's pretty easy to make a script which will use voip.ms' API, display the status and even trigger an alert via another popular utility called Growl.

Here's how

First, download and install GeekTool.  (An application version in the Mac App Store is coming soon-- at the time of this writing, it's a Preference panel instead.  OS X Lion users should prowl the site for the latest, Lion-compatible version.  UPDATE: The App Store version is here!  Mac App Store Link)  If you want alerts to pop up to notify you when an outage occurs, also download Growl and be sure to install Growlnotify from the Extras folder on its disk.  (You may already have Growl installed--it's part of Dropbox and other popular utilities and applications--but I doubt you have Growlnotify.)  Now:
  • Log on to your voip.ms account.  In the tab marked "Main Menu", select the "SOAP and JSON/REST API". 
  • Scroll down to the bottom.  Enable the API, assign a password (which can be different from your login password), and enter your IP address.  Click the update buttons after each entry.
  • Scroll up a bit, and look for the link that says "Click here to download Example Codes and API Documentation"  Download this, unzip, and look for the folder entitled "Examples SOAP for PHP5."  In this folder, look for the document "class.voipms.php".
  • Open class.voipms.php using TextEdit.  Put your account number and API password in it up top, then save it somewhere handy-- for example, I have a folder called "geekvoip" in my Documents folder.
Your account is now set up for automated access and monitoring.  Here's a simple script which we'll call from GeekTool:



GeekTool.

Copy that and paste into TextEdit.  (Note my example is made to check two subaccounts-- the code is easily modified to handle any number.)  Put your subaccount number(s) in it, and save it with a .php extension in the same folder you just saved class.voipms.php in. In my case, the file is named voip.php.

Now, open GeekTool.  Drag a Shell object onto your desktop.  In the Command field of the object, type a php command to execute the file you just saved.  In my case, the command looks like:

php ~/Documents/geekvoip/voip.php

Good settings for the GeekTool object are a Refresh of perhaps 600 seconds and a timeout of maybe 20 seconds.
My collection of GeekTools
includes status monitors for
my family's two VoIP lines.

You're done!  Position and size the GeekTool object as desired, and it will always be on your desktop.  If you've installed Growlnotify, you'll see a pop-up notification on the exceedingly rare occasion that your VoIP line can't be reached.

15 July 2011

VoIP as an Alternative to Cell Phones

A Roll-Your-Own-VoIP (Voice over Internet) setup for your smartphone is not only easy to arrange but can be a real money-saver, as I found when I needed to make some calls to the U.S. from London.  My choices: roam with my cell phone at $1.39 a minute, use my hotel's phone at even more exorbitant cost, or find a good WiFi location and make my calls for pennies using my preferred VoIP iPhone app, 3CXphone.  Turned out my hotel had unusually good WiFi, so the choice was simple, and my calls were crystal-clear... at a penny a minute! 

Which raises the issue of forgoing cell service altogether and using only a VoIP app.  You could then use an iPod Touch, an entry-level iPad, a deactivated or SIMless iPhone, Android phone or Blackberry... there are many such options.  The setup procedure would generally follow my instructions for setting up 3CXphone on an iPhone.

A Few Issues to Consider 

Obviously, a good Internet connection is fundamental.  3G can work but generally WiFi is needed, especially when roaming.  Unfortunately, good WiFi connections are in increasingly short supply in hotels and coffee-shop hotspots, whose WiFi networks are besieged by guests streaming video.  (Netflix has gone from nowhere to 30% of overall bandwidth consumption... and rising, and it's worse where lonely/bored travelers congregate.)  But if your peregrinations take you to coffee shops and hotspots with good WiFi service, this can be a real alternative.

Testing the local WiFi capability prior to making an important call can help prevent frustration.  You could make a test call, or Visualware offers a detailed free app for measuring bandwidth characteristics from your iDevice, iNetQCheck.  There are others, such as Speedtest.  Unfortunately, none of the available free testing apps currently test for VoIP-specific network performance.  This can be better than the generic/overall performance (if the router has good Quality-of-Service (QoS) technology which prioritizes the real-time data streams VoIP relies on) or worse (if the network has VoIP port 5060 blocked!).  My own home WiFi network performs much better for VoIP than a generic test would suggest, presumably due to the good QoS engine in my D-Link DIR-655 router, which prioritizes port-5060 traffic.

In the case of port blockage, your VoIP provider might provide alternative ports to try.  Voip.ms' alternative ports, per their online documentation, are 5080 and 42872.  But, these ports will probably not be prioritized by routers' QoS engines, so it's best to use them only if 5060 is blocked.  (I'm advised that a VoIP-specific testing app is coming to the App Store-- great news.  I'll mention it in an update here when it arrives.)

For me, with my travels, a conventional cell phone account is necessary, and using a VoIP app on my iPhone is a wonderful supplementary capability but not a wholly sufficient alternative.  But if my situation were more urban and involved less travel, going cell-less as well as landline-less could work.  As to the economics of it all, axing a cell line is even more compelling than unplugging your landline.  Consider the following, from the Wall St. Journal:
Consumers currently pay about $92 a year on average, or 16.3% of their total bill, in taxes as part of their cellphone plan -- the highest amount ever, according to the Heartland Institute, a public policy research organization. That's up from a 14.1% tax rate in 2006. ...taxes account for 16.3% of cellphone bills on average, compared to 7.4% for other goods and services... This year, for example, some municipalities raised taxes by 3% to a whopping 75%. The wireless industry says its consumers are unfairly targeted. "Many of these state and local taxes and fees are levied against our consumers because they're good bill payers," says a CTIA spokeswoman.... residents in at least five states, including Florida, Illinois and Washington, get hit with rates that account for more than 20% of their wireless bill, says [economist] Scott Mackey... In Baltimore, for example, taxes and fees account for 27% of the average customer's wireless bill, while in New York they account for about 20%.  [Wall St. Journal]
 ...And that just regards the taxes.  Cell plans themselves aren't cheap, especially if you travel.  (And is anyone else enraged by that bit about cell users being ripe for targeting because they pay their bills?  That's neither progressive nor regressive taxation nor a valid user fee; it's fleecing the easy mark, and it's wrong.) 

There are other VoIP apps that include their own VoIP service that can make and receive calls from any phone, such as TruPhone, Whistle, Fring, FooCall, iCall, OBion...  And of course there's Skype.  An attraction of the app+service approach is that you're spared the complication of separately setting up the app and an account at a VoIP wholesaler like voip.ms or CallCentric.  Many such apps are free to try, so you can see if they meet your needs.  Keep in mind that such services might operate on IP ports other than 5060, so they wouldn't enjoy QoS acceleration if present, meaning more variability in quality from call to call and location to location.  (Skype, for example, uses a randomly-assigned port to prevent blocking by ISPs.)  And some operate their servers in places that might be physically remote from you, reducing quality.

In my case, my prerogative was to replace my home's landline, so the ability to roam around the world for cheap with an app on my iPhone was a delightful bonus.  The Roll-Your-Own-VoIP approach was the best for my situation, but your needs might differ.  Fortunately this is the dawning of the golden age of phone-service alternatives-- jump right in!

VoIP over 3G

If you have the bars, using 3G rather than WiFi can be attractive in some circumstances:
  • For iPads and other non-voice devices with a 3G data subscription, and
  • For international calling.  For example, I've used my VoIP app on my iPhone to call from the U.S. to Europe.  Thus I use data bytes rather than expensive international-call minutes.  Of course, data bytes are in finite supply; your economic mileage will vary depending on your plan and usage.
Note: the VoIP port is sometimes blocked over 3G by cell carriers in some areas.  Try before you rely.


==========

One more thing: A correspondent asks about MagicJack.  I tried it.  It's not terrible, but I don't recommend it.  It does have the advantage that you can keep using your old-timey plug-in-the-wall-type analog phone.  E911 is included, which is nice for landline-replacement applications.  But to use it as officially supported, you need a computer, and your phone only works when that is up and running.  [A computerless version of MagicJack is now offered.]  There are google-able ways to make a MagicJack account work using something like 3CXphone, but there is no support for such things and no official MagicJack app.  The Roll-Your-Own-VoIP approach is considerably more flexible, higher quality in my experience, and about the same order-of-magnitude cost.  There were also issues with MagicJack the company and its support services.  The contrast could not be starker compared to the superb service and patient, responsive support I've gotten from voip.ms as I've climbed the learning-curve from rank newbie.

And how about Ooma.  This was another possibility for my landline-replacement project, but Roll-Your-Own-VoIP was considerably cheaper to implement, and it required no locked-to-the-provider proprietary adapter.  I'm happy, and delighted with the flexibility.

13 July 2011

Senate Probe: 'Mystery' Fees on Phone Bills Charge Billions to Consumers

Y'know, I didn't quite start this blog to be a wide-eyed evangelist for Roll-Your-Own-VoIP, but you could be forgiven for thinking so. And articles like this fuel the fire:
Third-party billing firms are charging Americans up to $2 billion a year in "unauthorized fees" on their landline telephone bills, generating massive profits for the nation's largest telephone companies that don't do nearly enough to crack down on the practice, a Senate Commerce Committee investigation has found.

Most consumers don't even detect the charges for months or years, if at all, because they typically range from $2 to $20 on their monthly bills. But when consumers and businesses do complain to telephone companies, they often get the runaround. [Fox News] [Hat tip: Alex]
Call away, it's cheap.  Just don't tax my VoIP!
This actually happened to me on my cell line: mysterious charges, three bucks here and ten bucks there, buried in the monthly bill.  Once I thought to print out my full cell bill to get to the bottom of it, and gave up after 20 pages of printing with more than ninety to go!  (Kudos to AT&T for quickly figuring out what was going on, stopping it, and refunding my  money.)

My VoIP bill, by comparison, is immune to such shenanigans.  My VoIP provider, voip.ms, provides up-to-the-minute online listings of all charges and usage.  The listings are searchable by date and by subaccount (e.g., by extension) and are readily understood, in part because there's so little tax-and-fee argle-bargle that I'm sure most consumers find as baffling as I do on our landline and cell bills.  The "third-party billing firms" mentioned in the article hide in the tall grass of all those fees and imposts.

Plus, voip.ms' way of doing things currently involves paying up a balance and then whittling it down with usage.  You get an email when it's time to replenish.  One benefit of this approach is that you're never on the hook for anything more than your balance.  If someone were to somehow hack into my account and run up a bill to Timbuktu, my maximum risk is the $17.86 currently on balance in my account.  And the call would take a while given the low costs of VoIP (23c/min to Timbuktu from the US).

10 July 2011

Summary Comparison: Landline vs. Alternatives



Landline
“Digital phone service” (Vonage, Comcast, PacBell, Ooma…)
Monthly cost (California suburban)
Typ. ~$35 + usage
Typ. ~$35 + options
Typ. $1-1.50 + usage
Ease of setup
Trivial
Easy
Somewhat geeky
Requires good broadband?
No
Yes
Yes
Requires proprietary or locked adapter?
No
Yes
No
Voice quality
Excellent
Very good to Excellent
Very good to Excellent
E911 emergency localization service
Yes
Yes
Yes (typ. $1.50/month)
Taxes etc.
Yes
Yes
No

Is the Landline Doomed?

FCC study: Landlines are going away.
Here's an interesting article noting that an advisory council to the FCC has determined the public switched telephone network (PSTN, better known as your old-timey landline) is fading away.  An obsolescence horizon is recommended to be established by government at about six years from now.

Previously I posted a how-to for replacing your landline with a simple and vastly cheaper home Voice-over-Internet (VoIP) service: How to Roll-Your-Own with VoIP for Massive Phone Savings.

Good timing.

But why wait for the inevitable?  If (per my own family's example) you can save about $30 a month by taking advantage of today's marvelous VoIP wholesalers, you can save more than $2,000 between now and the deadline recommended to the FCC... if you take the plunge soon.

Check out my how-to:

  • If you have decent broadband service and are just a little geeky, you can try VoIP out today using a smartphone and your existing WiFi (or your PC even if it's wired to the wall) for a pittance.  
  • To go all the way, as we did, and replace your costly monthly landline service with a VoIP adapter (so you can use your regular phones) requires a capital investment of all of $50 or so, plus another $20 if you want to keep your current phone number.  
  • You can go even further and replace your current phones with digital ones instead of using an analog-phone adapter.  (We'll consider doing that when our perfectly serviceable wireless handsets crap out in another year or two, as they do.  By then the cost for WiFi SIP handsets should be more reasonable.  For now, the cost of the Cisco PAP2T + a good multi-handset wireless analog phone is unbeatable.)

There's a host of options and many benefits.

Do it.  Before the government forces you to.

09 July 2011

How to Do Cool Formatting on Your Blog

I'm encountering some great tips on formatting tweaks for this blog, and since the spirit of the blog is to share cool tricks and techniques, I'll be keeping a list here on this post.

How to automatically highlight author comments
This one is for Blogger users.  Blogger Sentral has a great template tweak that will automatically highlight your entries in the Comments section of your posts.  This is really handy when you have a conversation going with visitors.  I've implemented it in the comments on this blog.  Painless.  Just be sure:
  • Heed the advice to back up your template first.  
  • Don't miss the step that says to "Expand Widget Templates checkbox on top right of the HTML window."


How to automatically format code snippets on your blog
Here's a tip for any blog.  Sometimes there's occasion to post one or more lines of some sort of code.  If it's HTML, you want to be sure your visitors' browsers don't try to execute it, and you want to avoid spurious line breaks or other formatting.

There are a few approaches, but the easiest I've found is to just paste your code into https://gist.github.com/:

  • Paste your code into the window.
  • Click the button that says "Create Public Gist".
  • Your new gist will appear.  Click "Show Embed" and copy the result to your clipboard.
  • For Blogger users (other composition tools will be different but similar): As you write your blog post, click the Edit HTML tab and paste the embed code where you want it.  (It won't show up at all in the Compose tab.)
Voila:

...Invaluable.

How to Quickly Vet your Applications for Lion Compatibility (and Why You Should)

OS X Lion is coming, probably this week, and it looks to be a compelling upgrade (and affordable at a reported $29 in the U.S., or $49 for a five-license family pack).  No trip to the store is needed-- it will be available exclusively over the Internet via the App Store, which you'll find under the Apple logo up at the upper left corner of your screen on your fully-updated Snow Leopard machine.

Photo courtesy of Apple.  Read all about OS X Lion on Apple's site
With Lion, Apple is finally cutting the cord of the long-obsolete PowerPC architecture. Until now, programs written specifically for the ancient PowerPC chips would still run on Macs based on Intel chips via an automatic emulator that OS X would use. This emulator was called Rosetta... and it's finally been put out to pasture in the era of Lion.

There are many reasons why this is good--faster operation, fewer bugs, conservation of disk-space, better and more consistent user-interface features, smoother integration--but the one obvious negative is that you might currently have applications on your Mac that rely on Rosetta. That software will have to be upgraded or removed.

Now, you could go through your Applications folder and look at each application's type by command-clicking Get Info. But there's a much better way to do it all-at-once (Hat tip: Cult of Mac).

Here's How:
  • Open the Terminal. (If you don't know how to do this, just type "Terminal" in Spotlight and it will show up as an application.)
  • Cut the following line from here:

    system_profiler SPApplicationsDataType >~/Desktop/MyFileTypes.txt

    ...and paste it into the Terminal, then hit the Return button on your keyboard.

    What will happen now is that a text file entitled MyFileTypes will appear on your desktop. It might take a couple minutes.  Go have a cup of tea while your Mac does your work for you.
  • When the process is complete, quit the Terminal and double-click the MyFileTypes file on your desktop.
Now you can search MyFileTypes for the word "PowerPC" --this will indicate which applications on your machine need to be upgraded, removed or replaced with something more modern.

The most common obsolete applications are Microsoft Office 2004 and Quicken. To my chagrin, LabVIEW 8.6 is there, too.  (That's a real surprise-- it's so fast, I had no clue it was being run in the emulator.)  (UPDATE: It appears the Rosetta issue for LabVIEW 8.6 is limited to drivers, though there is an additional 32-bit issue with kexts.)

Deal with obsolete apps before upgrading to Lion
For one thing, the removal utilities that come with some of them (such as Microsoft Office) are themselves PowerPC-based. Or, you may need the old version to export your files to some new, Rosetta-free application-- and I'm talkin' to you, Quicken-- for which there is no Intel- or Universal-based update.  Fortunately, in the case of Quicken there are many alternatives.  See this superb list compiled by TUAW after Intuit, Quicken's publisher, sent an infuriating email to its users with lame suggestions on how to work in the post-Lion world.  Really, now, Intuit: on pg. 102 of Scott's Big Book of Pithy Pronouncements is: "Competitors are made, not born."  Q.E.D.

24 June 2011

How to Roll-Your-Own with VoIP for Massive Phone Savings

Here's something else that's worked well for us and friends to whom I've emailed the details.  90% savings is something everybody seems to like.

Our home phone service is now about $7 a month total for two lines vs. ~$35 for Pacific Bell for each line.  We just weren't getting $70+ worth of usage out of the two landlines. But going all-cell wouldn't have worked for us for a variety of reasons (not least being the lack of emergency-call traceability for cell calls).  Meanwhile prepackaged Voice over Internet Protocol (VoIP) services from PacBell, Comcast and Vonage wouldn't have saved much, and they necessitated purchase or rental of adapters locked to their service.  (UPDATE: See Summary Comparison: Landline vs. Alternatives and Is the Landline Doomed?)

Instead, I chose a far geekier solution, based on the services of www.voip.ms, that saves the equivalent of four six-packs of my favorite hoppy IPA each month... per line.  Voice quality, domestically and to Europe, is great.  We kept our standard phones-- no computer is necessary. But you can use free VoIP apps on your smartphone, laptop, iPad or iPod Touch, too, anywhere you have good Internet access or even 3G.  Our monthly cost breakdown for two lines of excellent, reliable service is now:
  • Home line ported from PacBell, $1.49
  • Other line from voip.ms' big pool of local numbers on their website: $0.99 
  • Optional e911 service: $1.50
  • Usage: $0.01-0.016/minute for domestic & European calls using the highest call-quality option
  • We also pay the $0.008/call to have our phones display the name of the caller. 
  • State taxes: $0.00
  • Local taxes: $0.00
  • Federal taxes: $0.00
  • Bureaucratic boondoggles: $0.00
  • Redistribution: $0.00
  • Fees, impositions, assessments, Universal Access for those-less-fortunate (who somehow all seem to have cell phones anyway): $0.00

Here's How:

This is the Golden Age of VoIP wholesalers with pay-as-you-go pricing, and also of cost-effective hardware adapters for your old phones.

In my research, two VoIP providers emerged as particularly promising: CallCentric and voip.ms. Both offer free signups, affordable landline-number porting, and great per-minute rates.  I chose voip.ms based on its user reviews, rich feature-set and international presence. Its setup process is browser-based. Provisioning using a temporary number in my neighborhood took a few minutes.  The only caveat is that voip.ms' setup pages can be intimidating, as VoIP is a bit of an acronym-fest. But the learning curve is fairly shallow and quick.

If you have a solid WiFi connection and a good router, you can try it yourself in minutes with an iPhone, Android phone or computer:
  1.  Set up an account at https://www.voip.ms /signup.php ...note, signup is free, but voip.ms works on a prepayment methodology.  You will establish your account with $25 in funds from any credit card.  As you whittle down your balance with usage, you'll receive an email when replenishment is needed.
  2.  Now get yourself a phone number-- a Direct Inward Dialing (DID) number in VoIP-speak.  Go to the "Order DIDs" page, https://www.voip.ms/m/dids.php  ...getting a number will set you back a whopping one-time $0.50 and then $0.99/month plus usage for the per-minute plan that's appropriate for most people.  (You can port a landline later if you want.  It takes a little time and costs about $20, and the ported line is $1.49/month.)
  3. You'll have some options to choose.  Generally it's best to select the voip.ms server that's geographically closest to you.  (If you want to get geeky, do some ping tests.)  Select SIP/IAX as the routing option for now.  (SIP stands for Session Initiation Protocol and is the most-used open standard specification for softphones, IP phones, etc.)
  4. Now set up a subaccount to play with.  This is like an extension.  Go to the Sub-Accounts menu, https://www.voip.ms/m/subaccount.php and select "Create Sub-Account."  Give the subaccount a name in the "Username" field (it'll be something like 12345_yourchoice, where 12345 is your voip.ms account number).  Set a password.  Since I'll be documenting using the 3CXphone app on an iPhone below, click on Advanced Options and select the g.711u and gsm codecs-- these are the sound-encoding algorithms supported by that app.
Done.  You now have a new phone number.

There are a variety of SIP-compliant softphone apps available for iPhones, Android phones and computers.  The two I like best are Whistle Phone (iOS, Windows, Mac) and especially 3CXphone (iOS, Windows, Android), which has deeper technical options and worked best for me when I was traveling in Europe.  Plus, 3CX is headquartered in Cyprus, a country dear to my heart.  Both work over WiFi and also 3G in most places.  Here's how to set up the 3CXphone app for iPhone, iPad and iPod Touch:
  • Download and install the app.
  • When you open it for the first time, you'll need to set some settings.  Recommended settings are shown at the left.  Note that some of them are blank. 
  • The User and ID fields should match the subaccount username you chose.
  • Note the server and proxy server fields should generally be the servers in voip.ms' arsenal closest to you.  They don't have to be the same ones you chose when you set up your account, and you can change them when you travel.  (Voip.ms lets subaccounts call each other entirely for free if they're on the same server.)  Incidentally, my calls to the U.S. from London were fine even though I left things set to the Los Angeles server.
  • The "Record Calls" option might not be legal depending on where you call to or from.  Best to leave it turned off.  (It only seemed to record my side of the conversation anyway.)
  • Multitask Mode allows 3CXphone to keep running when you open another app or sleep the phone.  Handy-- that means you can receive calls, and calls continue if you hit the Home button.  There's a modest hit to your battery life.
  • Bluetooth is supported; just be sure your headset is paired and operating before starting the app.

Done.  Now you can make calls!

To receive calls on this line you just created, go back to the voip.ms website, select "Manage DIDs" from the DID Numbers menu, and select this subaccount in the Routing field.  Save.  Done.  Now you can receive calls.

For your former landlines:

For our home phones, after some research I ordered an unlocked Linksys PAP2T-NA analog telephone adapter from Amazon for $49 with free shipping. This is a gizmo about the size of a pack of cards which plugs into my WiFi router and then into any conventional phone (or dead wall jack) and can be used with any VoIP provider. It's easy to set up; voip.ms has configuration tips on its website.  (UPDATE: "Mango", a frequent poster on VoIP forums and obviously knowledgeable, has his own configuration tips here, and concise reviews on the PAP2T-NA and other inexpensive adapters here.) (UPDATE: the -NA stands for "North America."  There are other models for other locales, for example -EU for Europe.  Near as I can tell, the power plug is the difference.) (UPDATE: See comment #3 for this post; the OBi100 adaptor, also available from Amazon, seems like a great alternative to the PAP2T, and easier to set up.  FURTHER UPDATE: I've now had the chance to use and review the OBi100 adaptor.  It's great, and indeed easy to set up.  See my report here.)

Then we started voip.ms on the process of porting our landline number over, as we wanted to keep it. This took about ten days and was painless, with progress emails along the way. In fact, whenever I had a question regarding any aspect of the service, voip.ms provided snappy support. I could not be more impressed with them as a company or with the quality of their service so far. Kudos also to AT&T/Pacific Bell for their cooperation and the nice good-bye note they sent at the conclusion of the port.

While we waited, we played with the temporary number from voip.ms.  Once the porting was complete, I switched the routing so our ported number rang the PAP2T's subaccount, then sauntered out to the patch panel on the wall of our house and unplugged the PacBell phone line. After verifying that there was no signal on the home lines, I plugged the little Linksys into an unused home-phone jack. Voila: it now provides phone service to every jack in the house.

Bottom line:
  • The change is transparent to anyone who might use our phones.
  • We can set up conference calls with any number of participants.
  • You can get fancy with voip.ms' routing menu.  We now have an Interactive Voice Response (IVR) set up on voip.ms so incoming callers get a voice menu: 1 rings the home phones, 2 takes a voicemail, and--get this--3 gives an international dial-tone, password protected, so we can call Europe from anywhere for cheap just by dialing home. I had a lot of fun setting up my incoming-call greeting: "Thanks for your call. Friends, family and people with whom we do business, press 1. For voicemail, press 2. For an international dialtone, press 3. Telemarketers and robo-callers, we have a specific digit for you." ...Forcing callers to press 1 to ring the home line blocked 8-12 annoying robocallers daily during the runup to the November election.
  • Connecting the Cisco/Linksys PAP2-T adapter
    that lets you use old-timey standard phones is easy.
    Photo courtesy Amazon
  • There's a sophisticated voicemail system which has a wonderful option to speak the caller's phone number clearly. Voicemails are also emailed to us in the form of .wav attachments which play crisply on our computers, iPhones and iPad. Very handy, and a free service.
  • There are many options and features, including 800 numbers.
  • The savings are massive, each and every month.
Recommended.

If you have a solid Internet connection at your home or office and a decent router, cut the cord! (If your service is DSL, work with your phone company prior to the porting process to ensure your Internet remains in-service, and be sure all signal is absent from any wiring to which you connect the PAP2.)


Resources:

Great router for residential or business use, with an excellent firewall and quality-of-service (QoS) engine for good VoIP performance: D-Link DIR-655: http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=d-link+dir-655

Apple's routers are superb: http://store.apple.com/us/browse/home/shop_mac/mac_accessories/airport_wireless

Note: The highest-quality VoIP option (g.711u) consumes about 80-90kbps of bandwidth including overhead.  Info: http://en.wikipedia.org/wiki/G.711#G.711_.CE.BC-Law

Visualware.com provides a spectacular free online tester, optimized to evaluate your Internet connection specifically for VoIP: http://myspeed.visualware.com/indexvoip.php




21 June 2011

How to keep things secure in your Dropbox or other cloud storage

I'm a huge fan of Dropbox and other cloud services.  It's just incredibly convenient to be able to access my stuff from all my machines.

But security and privacy remain problematic: If your stuff is stored on someone else's machine, who else can access it?  The question has been in the news lately.  Expect more such stories as adoption of cloud technologies accelerates.

Yet by far the largest risk to your data is loss from hardware failure, theft or physical disaster.  Aside from the convenience factor, storing things in your Dropbox means it's locally copied to all your machines as well as safely backed-up (and versioned!) in the cloud.  For those reasons, I keep all my current work in my Dropbox.  Securely!

Here's How:

I use Macs most often lately, and this tip leverages some truly keen capabilities of OS X.  (I am unaware if Windows 7 offers similar functionality combined with similar ease and baked-in speed, but there are third-party tools like TrueCrypt which can attempt something kinda/sorta parallel, but not as easy or automagical, and not as swift in execution.)

Disclaimer: a patient Bad Guy could probably hack any encryption, and it probably serves as a minor inconvenience at best to any of several three-letter agencies.  But, I suspect that should I be of sufficient interest to such folks that they'd be groping my digital giblets rather than just fondling my carbon-based ones at airports, encryption strategy would be the least of my worries.

Next:
  • Open Disk Utility.  (It's in your Applications | Utilities folder, or just go to Spotlight and type "disk utility.")
  • Click the New Image button.
  • A form will pop up.  Fill it out as follows.  You're creating a sparse bundle disk image-- a virtual disk divided into small files (more backup- and Dropbox-friendly than a monolithic disk image would be).  Give both the image and the virtual disk that will appear on mounting it sensible names (via the "Save As" and "Name" fields, respectively).  Choose the size as-desired.  Select Mac OS Extended (journaled) as the format and a single Apple Partition Map as the partition.  Choose 256-bit encryption if you're uber-paranoid, or consider the faster 128-bit.  Select a size that's adequate but not obese for your purposes.
  • Click the Create button.  You'll be prompted to enter a password.  Do so (twice) and be sure to UNCHECK the "Remember password in my keychain" so you'll be prompted for the passcode each time you mount the disk.  You want that behavior.
  • Click OK.  The disk will mount and appear on your desktop, and Dropbox will begin uploading it to its servers (and then down to any of your other linked computers).
  • Now do whatever you want to do.  Put stuff in the disk as usual. 
  • Here's the automagical part: you can make aliases to any item that's inside and put the alias wherever you want-- on your desktop, for example.  Clicking on such an alias will automagically resolve to the encrypted disk, and you'll be prompted for its password if it isn't already mounted.  Changes you make will automagically be stored in the encrypted disk.  You can, of course, mount the virtual disk manually by double-clicking on the sparsebundle in your Dropbox.  But you don't need to.
  • Using this strategy, at no time does unencrypted information get transmitted (Dropbox connections are themselves encrypted) or stored on Dropbox.
  • When you're done, "eject" the virtual disk (or, this will happen automatically when you shut down).  It is now unopenable and its contents unreadable by anyone lacking the password.

 You can now access your encrypted disk from any OS X Mac!  (To-date, encrypted disk images aren't supported by iOS... hope that changes.)

You can, of course, do the same thing without putting the sparsebundle in your Dropbox.  For example, I have a VMWare Fusion virtual machine with sensitive content installed on a 25GB encrypted sparsebundle on my external Firewire disk.  Thanks to OS X's deep integration of this functionality, it runs like a hose.


(Don't have Dropbox yet?  Get it at http://db.tt/Me4yRjt and I get a little space bonus... [grin].)