Wednesday, July 13, 2016

Google Voice and the OBi200: Some Notes

There is an unwritten rule about dealing with Chrome and/or other Google technologies: when in doubt, deinstall/reinstall. For example, for at least the second time in recent weeks, I found my Remember the Milk gadget missing from Google Calendar over the weekend, and I had to log into my RTM account and click the link to reinstall the relevant gadget.

I've discussed Google Voice in a recent post.  To provide a little context, basically a Google Hangouts plug-in is installed/integrated with Chrome (you can also use Firefox) and appears as a green icon in your tray:

Without going into gmail (assuming Internet connectivity), you can double-click on the Hangouts icon and it launches into a Hangouts conversation search screen. I find if I click on "new conversation", the result reveals a phone icon to the immediate right in the search bar. At that point, I can search on partial/full names or phone numbers in Google Contacts (or enter a new number); Mousing over the selection reveals phone and message links.Click on the relevant phone icon, and it will launch a relevant phone keypad popup.

I've occasionally run into issues with Hangouts dialing. In some cases, calling the number seems to hang; in other cases, I've accepted an incoming call, but we couldn't hear each other.  I've found removing and reinstalling the Google Hangouts extension seemed to resolve my issue. (I've sometimes run into issues pulling information on certain contacts and found that I had to tweak missing Google Contact details, like missing name fields, so they can be searched.)

The functionality is, for most purposes, excellent; I occasionally run into annoying glitches like browser corruption issues or a disappearing Hangouts popup. But at other points I've missed the equivalent functionality of digital calling I had in my prior 2 residences: it's always on (assuming your Internet connection is live), and it's often easier just to dial a number than to go through a GV call setup. I just didn't think the Triple Play (cable, Internet, calling) cost was worth it in my latest move, since I don't do a lot of calls and the ones I do can usually be managed by my "unlimited" mobile package. As I described in an earlier post, this became an issue with some callers who disliked the quality of my mobile connection and frequent dropped calls. So Google Voice became my choice for a second, backup number. GV also has a nice feature of automatically messaging one's mobile phone with GV voicemail transcripts (and typically I can launch a return call from a voice number hyperlink).

CNET recently promoted a newegg featured buy on the OBi200; OBi200 is integrated with GV in a default setup. Recall that when you start up Google Voice service, you select a number in an eligible pool from a chosen area code. Three basic lines connect the device: cable to a network port on the back of your Internet router, phone line connection with your phone (I have a $20 corded speakerphone I bought at WalMart), and the unit power supply. You then set up an account at obihai.com and go through the documented process of configuring the device and integrating with Google Voice. (Note that GV does not provide 911 service, but there are workarounds.) You can also integrate other (non-Google) voice services.

The outgoing call feature worked like a charm: I click on my speakerphone button, and I got a welcome dial tone. However, the incoming calls didn't seem to ring my speakerphone (I tested with my cellphone). I did get one external caller on the speakerphone, but most I fielded through Google Hangouts. Other people seemed to have a similar problem, but I didn't see a resolution. I emailed obihai support.

In the phone configuration for Google Voice, there is a setup for Google Chat. It turns out you can delete this (there are buttons to edit and delete just below Google Chat), and GV will automatically regenerate the Chat setup. This seemed to clear up my issue with incoming calls.

Monday, July 11, 2016

Problem Solving: An Example of Using Tools To Enhance Software Usability

The context for this post is dealing with duplicate files. One of the add-ons I use for the Thunderbird email client is "remove duplicate messages". I've occasionally had hiccups, e.g., in downloading my core gmail account messages, to Thunderbird where the same messages apparently weren't purged on the server and get downloaded again. What the add-on does is checking for duplicate sets of messages and then provides a default filter which retains 1 email from each set and deletes the duplicates. (I've also discovered vendors may resend the same emails over time, so I also occasionally run the add-on in my other email folders.)

Now over the past several years I had retained over 200 CD's and later DVD's of various files I have saved over the years: family photos, pdf files, licensed software (e.g., my discontinued AskSam software), various audio files ripped from my CD collection, emails, etc, In many cases, I did not rename files, say 1.jpg downloaded from the Internet. Trying to manage my collections of files was difficult: I often had to use a tool like search everything to hunt for files. For example, after I had to migrate from a failed PC, I  needed to search for my license information to reinstall AskSam plus my backup copies of the software itself. (I maintain a couple of external backup drives which held individual media image contents.) (Yes, I'm aware I could maintain license information in a spreadsheet. In this case, the license number is maintained in an asksam ini file, which is what I actually stored.)

It took time and effort to consolidate the contents of the media images into two primary folders with subfolders. In the process, I ran into thousands of file name conflicts, which I resolved by a filefrogger rename utility on source files (e.g., on disk 200, I renamed 1.jpg to 1_200.jpg). I knew that I had perhaps hundreds, if not thousands  of duplicate files (not just names, but content).

The tool I chose to use in dedupping these massive folders is duplicate finder free. Now keep in mind that it's very possible there is functionality I may not know about in the free or paid versions, but I'm looking at what the design seems to suggest. I basically point to a file folder to do a search and initiate the scan/search. Eventually what pops up is a list of sets of duplicate sets, alternately color coded.  There are boxes to mark files for deletion. There didn't seem to be what I considered obvious default functionality, say, to retain the first record in each set, and if you are dealing with thousands of file sets, this is very tedious busy work. (After you mark files for deletion, you then trigger the delete functionality.)

In the interim, I was interested in how I could save in-process duplicate lists, e.g., if the generated duplicate list did not appear after a system bounce. I then discovered that in the File options there is export/import function for *.csv files. This was my aha moment, because I knew I could use spreadsheet functionality to manipulate the first (delete file mark) column.

The basic solution starts with the observation that the CSV file was in sequence by the set id column (I). This means that the problem is a variation of a control break program. For the purposes of this example, I'm using Open Office Calc, but similar steps can be adapted for your preferred spreadsheet product:

  • Open the exported CSV file in Calc by choosing the comma delimiter (which oddly enough is not default)
  • In cell A2 (the first data mark cell), enter a formula, e.g., =if (i2=i3; 1;0)  . Let me explain the logic: I'm intending to retain the last file of each set. So suppose record 4 (record 3 if you don't count the header record) is the last of the first set (ID 1). Record 5 would be the first of the second set (say, ID 2). So I4 != I5, which means A4 has value 0, while A2,A3=1.
  • Copy A2  and then paste it in A3:An  where n is the number of duplicate file records (including the header record). Suppose n=2000. Enter A3:A2000 in the selection box, right-click on highlighted cells and select paste.
  • Convert A2:An into values: using the same example, select A2:A2000, right-click Copy; right-click Paste Special (ensure the NUMBER and only NUMBER column format option is selected).
  • Save the revised spreadsheet in the original CSV format. Exit Calc.
  • Open up Duplicate Finder Free, import the revised spreadsheet. Now invoke the delete files option.

Thursday, July 7, 2016

When It Rains, It Pours

Literally. Like I had a 4-5 hour power outage earlier this evening. I did get a chance to use my Gooloo power bank described in an earlier post. I was initially confused when it didn't seem to charge my cellphone, but it had to do with a certain unwritten fact of life with my cellphone: if the phone is running too hot, it won't charge. When I run into a hot phone/charging issue, I'll power off the cellphone; if and when the phone sufficiently cools, it'll start charging.

It's amazing how the little details slip by until you're facing a problem. I had never put my electric utility's outage number in my contacts, and I couldn't get Internet services on my cellphone during the outage. (Obviously my cable Internet wasn't working.) I could find my utility's invoices in my email, but the invoices didn't include contact numbers.

But over the past day or so, I had been hit by a cluster of technical issues. One of them involved Google Voice which for some reason didn't seem to work: I was connecting to the call, but neither party could hear the other. I did a lot of checks on audio and tweaking of call properties, but for whatever reason, the problem wen away with a reboot.

I also ran into into a series of issues with my security software, including the same PC holding multiple licenses and certain functionality not working. Long story short, these problems reflected some trace files not purged by a simple deinstall. Now the vendor has a removal tool often referenced by security customer support agents in past chat sessions, but the Indian agents repeatedly ignored my complaints they were giving me invalid URL's. I eventually stumbled across a correct download link in some other user's post. These agents simply want to take over your PC and can't deal with deviations from their scripts.

In another case, I have licensed encryption software which works with USB sticks, like my 128GB one. The software has an option to install executables both on the PC and the stick. Somehow after an upgrade I ran into an issue trying to run the executable on the stick. Repairing, uninstalling and/or reinstalling didn't work; in fact, I would get cryptic error messages simply trying to start up the executable. Long story short, I used everything (desktop search) to look for encryption software  files not purged by the uninstall. After manually deleting all remaining trace files (post-deinstall), I was able to reinstall (including an option for the USB stick).

I had contacted tech support. They really don't reference uninstalls on their webpages other than a cryptic message about contacting them over upgrades. The support staffer finally emailed me a deinstall cleanup procedure AFTER I messaged him how I had resolved the problem.

Incompletely described uninstall/reinstall procedures are simply inexcusably bad usability problems. I managed to resolve both issues DESPITE tech support vs. BECAUSE of them. I have another freeware encryption software (Safehouse Explorer). I had seen references to using SE with USB sticks but was puzzled on how to install on the stick until I saw a brief reference on copying the executable from your PC install to the stick.