Google’s Project Fi will not save you from bad cell reception at your home

The only cell phone network with decent signal at my house is Verizon. Verizon is an OK company; they have good customer service. My only complain is they are expensive.

I love the Google ecosystem so I got very excited when I heard about Project Fi. I waited until the Nexus 6P’s price dropped (when The Pixel came out) to switch over to Project Fi.

One of the big features of Project Fi is that it can switch from Wi-Fi to cell towers (of 3 cell networks) seamlessly while you have a call going on. And it can also switch from any of the 3 cell networks seamlessly picking the one you have best reception with.

I made the switch over to Fi.

It was no surprise to me that the 3 cell networks Fi is currently partnered with (Sprint, T-Mobile, U.S. Cellular) had less reception than Verizon.

But this is where Google Fi began to fail for me: It is not smart enough to know that my Wi-Fi quality is better than the cell tower quality. From my home, it still tries to use the towers even though the tower call quality is unacceptable.

I called Fi support to complain and they mentioned they could update my settings so Wi-Fi took precedence over cell towers. It was annoying to have to call to get them to do what I thought the phone would have done on it’s own based on the advertising on Fi’s website. It was also disappointing that it was always going to choose Wi-Fi when it was available as opposed to finding the best call quality comparing both Wi-Fi and cell towers.

Then came the final disappointment. All Wi-Fi calls have a strange echo heard by the non-Fi person on the call. At this point all my calls at home were going through Wi-Fi; I thought this was going to work out great. But then we noticed that the person on the other side of the call would ALWAYS hear a 1 second delayed echo of themselves. Everyone thought it was annoying and some could not even talk to me because they were so distracted by listening to their voice.

This echo was experienced also on Google Hangouts calls. Others (see here and here) are experiencing the same thing. Wi-Fi calls with Skype, WhatsApp, and Boss Revolution work fine even though support tried to blame it on all Wi-Fi calls for a little while.

Sadly, I had to cancel the service. Cell phone call quality is already crappy (compared to the good old land lines) when things are working as expected; anything worse than that is unacceptable.


Figuring out what assembly is trying to load a specific (missing) DLL version in .NET

If you ‘re running into an error similar to this one:

The type initializer for 'YourNamespace.Program' threw an exception.
---> System.IO.FileLoadException: Could not load file or assembly 'log4net, Version=, Culture=neutral, PublicKeyToken=8774c74090335470' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
   at YourNamespace.Program..cctor()
   --- End of inner exception stack trace ---
   at YourNamespace.Program.Main()

Then post is for you!

What’s happening here is that Program is referencing a log4net dll version But another, currently unidentified, DLL that Program is referencing is looking for version .

There are two ways of fixing this.

  1. Adding an assembly redirect in the app.config or web.config
  2. Recompiling the unidentified DLL with log4net version

In this post I’ll focus on the recompiling approach. The first thing we need to do is identify the unidentified DLL we talked about above. To do this:

  1. Open the “Developer Command Prompt for VS2015” as an administrator.
    • Not sure if you really need to be an admin; doing it just in case.
  2. Type “fuslogvw” and hit enter
  3. Click the Settings button
  4. Select “Log bind failures to disk” and click OK
  5. Click the “Delete All” button
  6. Make your dll error happen again
  7. Click the Refresh button on fuslogvw
  8. You should see the dll binding failure displayed on the report
  9. Double click the failure.
  10. The report is an HTM file that you can open with your preferred web browser.
  11. This report will tell us the name of the unidentified DLL
  12. You can now recompile the now identified DLL with the same DLL version that your main Program is referencing.
    • If the identified DLL does not belong to you, meaning you can’t recompile it, you need to add an assembly redirect on your app.config or web.config.

Why I went back to Android from iPhone

I’m a long-time Android power user. I’ve been using Android for about 10 years now and always wondered why some people loved iPhones. So I decided to try one out. My plan was to stick to the phone for 6 months to make sure I gave it a good shot; but after 2 months of using it; I decided it was not worth it and went back to Android.

The phones I compared were an iPhone 7 and a Samsung Galaxy S7.

The iPhone 7 was not all bad. Here are the areas where it felt superior (note they are all hardware related):

  • Camera is slightly quicker
  • Finger print scanner is quicker

Here is where Android was superior (note they are all software related):

  • Back button
    • The placement is the same across apps.
    • You can always reach it with your thumb where the optimal grip of your phone is not jeopardized
      • the iPhone has it at the top left or top right. Both places are not optimal for how common you do this action.
  • You can customize the position of your home screen icons.
    • the iPhone only lets you customize the sort, but they are always positioned from top to bottom. And again, the top of the phone is really hard to reach; why do they force their users to use it?
  • You can install apps from the web browser
    • On the iPhone, all your app research has to be done either on the phone or on iTunes, none of which let you open multiple tabs at the same time.
  • Custom mp3 ringtones are easy to set up.
    • On the iPhone you need iTunes and the ringtone has to be converted to a spceific codec. I was not able to convert my special mp3 ringtone to that format; not sure why.
  • Does a better job at embracing the cloud
    • You can access all your photos/documents on any device (pc, phone, tablet) that has a web browser.
      • This means you can go to your buddy’s computer and just log in to a website to see all your photos. Same thing with your documents, spreadsheets, etc.
    • The iPhone also syncs things to the cloud but they are not that easily accessible from devices that are not yours.
  • Allows you to install apps that can read/send text messages.
    • This enables magnificent apps like MightyText where you can enter the text message on a web browser running on a desktop and send it through your mobile phone.
    • The iPhone allows you to send text messages from a desktop or laptop but you have to use their apps that only run on Mac OS. This means the desktop or laptop has to be a Mac.
  • This one is very worthy of a bullet: You don’t have to use iTunes.
    • Granted that you really only need iTunes to do power user things on your iPhone.


Both are good phones and operating systems.

The iPhone has superior hardware. If you don’t like to customize things and you use your phone mostly for normal things (phone, calendar, maps); you will prefer this phone.

Android has a superior UI and is way more customizeable. If you are a power user that enjoys tons of app choices; this is definitely the phone for you.