Honoring our Past

Sometimes both sides are wrong – people do things for the wrong reasons, yet those who protest the action miss the point and oppose it for the wrong reasons.

I find this to be the case in the recent kerfuffle about removing the statue of Robert E. Lee in Charlottesville. Lee is an important figure in our country’s history. We can honor him and the role he played as leader of the Confederacy military, without honoring, indeed while rejecting, the shameful practice of slavery.

We are all human, every person has flaws. Thomas Jefferson owned slaves. But nobody protests the Jefferson Memorial claiming it honors slavery. It honors Jefferson’s achievements and his role in our history. If perfection is the standard, if we judge people by their mistakes rather than their achievements, we’ll have to tear down all the monuments. Also, it is better to openly acknowledge our past and honor those who played a major role in it, even when difficult or uncomfortable, than to whitewash it with political correctness. Those who don’t understand and acknowledge history are doomed to repeat it.

In short, in removing the statue the city did the wrong thing for the right reasons.

However, many of the people protesting the removal of the Lee statue are racists (I’m not casting aspersions, many openly self-acknowledge this) for whom the Lee statue represented not his important role in our history, but the legacy of slavery. These misguided people want to unwind decades of social progress, hard-earned over the backs and blood of brave people who stood up and changed things for the better. It is difficult to take the same side as these racists. But taking the same side does not mean agreeing with them. Indeed, I reject their views as backward and hateful. They took the right side of the issue completely accidentally, for the wrong reasons. But that makes it hard to defend the position since it has been tainted by their association.

In short, in protesting the statue removal they they do the right thing for the wrong reasons.

T-Mobile and Princess Cruises

During our recent cruise to Alaska we were vigilant about not using the ship’s expensive WiFi and mobile cellular. But not vigilant enough! I learned a lesson, luckily not too expensive.

Our TMobile plan includes international roaming at no extra charge. Outside the US you simply enable roaming on your phone. The phone warns you about charges but you can ignore that, TMobile covers it.

However, this doesn’t include cruise ships. While on the ship we didn’t make any calls or use the ship Wi-Fi. But it turns out that some incoming calls arrived to our phones while we were on the ship. We didn’t pick up; the calls went straight to VM. We didn’t even know our phones “rang”. Yet just being called, even if you don’t pick up, was enough to trigger the ship to bill us for each call. The ship bills $6 per minute and the minimum is 2 minutes just to connect. So that’s $12 every time someone calls you, even if you don’t pick it up.

Fortunately we only got 3 calls so our lesson only cost $36.

The lesson: while on a cruise ship, put your phone into airplane mode all the time. If you have international roaming, as we do with TMobile, don’t take your phone out of airplane mode until you’re off the ship.

Seattle Lime Bike: Test Ride

Seeing their bikes all over the place got me curious about Seattle’s bike services, Spin and Lime bike. I installed both apps on my phone and they both worked just fine, popping up a map showing where the bikes are. In both apps, the first ride is free. Neither app asked me for credit card info, though presumably they would later if I continued riding. They both have plenty of bikes downtown, though Lime seems to have more bikes in outer areas like Magnolia and Ballard.

Walking home from the Magnolia center district today, Lime said there was a bike nearby. I followed the map a couple of blocks and the bike was exactly where the app said it would be. I used the app to scan the QR code, a few seconds later it unlocked. The bike was mine!

I rode it a few blocks home. My impressions:

  • It’s a tank – weighs 49 lbs!
  • Has a basket in front, whose bottom is a solar cell.
  • The front wheel has a built-in generator that powers a front & rear light that are always on when the wheels spin.
  • It has fenders and a full chain guard.
  • It has an 8-speed Shimano Nexus internally geared hub. It works smoothly, though it was slightly out of adjustment due to a bit of cable stretch, skipping some gears (like 3rd). A couple of cable adjuster twists fixed that, then it shifted perfectly.
  • It’s geared low, which is a nice touch you really want around hilly Seattle, especially for this 49 lb. tank of a bike.
  • The brakes are Shimano drums.
  • The tires are not pneumatic and can’t flat. But they’re not rock-hard either. Seem to be foam-filled.
  • The seat is easily adjustable with a hand quick release. But it doesn’t go quite high enough for my average length legs (32″ inseam).

Overall, it’s a comfy bike to ride around town. At $1 per 30 mins it’s cheap too, with bulk monthly rates for unlimited rides.

Next, I want to try a Spin bike.

Sturmey Archer S2 Hub

A few years ago I resurrected my brother’s old bike into a commuter. It’s still running great and I enjoy riding this unique old bike to work. It weighs 24 lbs, perhaps 1-2 lbs lighter than what it weighed new from Trek back in the 1980s when it was made, due to removing the derailleurs, rear cog, now with single front chainring, etc. I’ve put a couple thousand miles on this bike since resurrecting it. I wish the S2 hub ratios were further apart so the low was lower, but it’s proven solid and reliable.

Thinking: Static vs. Dynamic

The concept of static vs. dynamic thinking is a useful contrast. Much of the foundation of our world-view perspective depends on it. As I discuss the key differences it may bring some political, economic, and social schools of thought to mind.

Static Thinking

Static thinking is zero-sum. For every winner there must be a loser. The pie is fixed in size, there’s only so much of it. Competition is each person scrambling to gather for himself the most he can, leaving less for others.

Static thinking is Malthusian. Each extra person is that much more drain on our resources: water, space, food. It focuses on costs, not benefits.

Static thinking is risk-averse. It follows the precautionary principle, which is non-scientific because in avoiding harm, it takes status quo for granted, failing to weigh the harm of inaction.

Static thinking is dogmatic. Taking status quo for granted with fixed values shuts out alternative perspectives and scenarios. It leads to the naive arrogance that one can understand and manipulate complex systems.

Dynamic Thinking

Dynamic thinking is positive-sum. Winners win by creating something new, growing the pie. Competition is each person finding new ways to contribute, each creating more overall.

Dynamic thinking is Boserupian. Every limitation creates incentives to overcome it. Necessity is the mother of innovation. Ingenuity outpaces demand. Each extra person increases the potential for the next big idea.

Dynamic thinking is opportunity seeking. It takes calculated risks weighted against benefits using available knowledge.

Dynamic thinking is idealistic. Dynamism applied to methods as well as to goals and boundaries encourages thinking outside the box about what is possible. It leads to intellectual curiosity and humility, that the universe is stranger than we know, yet we can still improve our understanding.

Tip: Battery Saving for Android 6 and 7

Recently I noticed the location icon sporadically appearing on my Galaxy Note 4 phone for no apparent reason. Something was pinging location. This has a double-whammy on battery: using the GPS (or attempting to without a clear sky), and waking up the phone from sleep. The battery usage screen showed Google Play services as a primary consumer.

The fix took a while to find but it was simple: Google Location History. This is an Android service that periodically checks and logs your location. Google uses this to improve various services like search and maps.

I don’t care about this. Search results and maps work just fine, well enough for me, without having my location history. And I don’t use Google Now. And I don’t like the idea of my phone constantly tracking my location.

Here’s how to disable this, which noticeably extended my battery life:

  • Go to Settings / Location.
  • Scroll down to the Location Services section.
  • Tap Google Location History
  • Tap the slider in the upper right hand of the screen to turn it off.


Galaxy Note 4 Rooted Update

When your phone is rooted, the built-in system update won’t work. It will refuse to update itself. If you want system updates you must install them manually. This is how I do this on my Samsung Galaxy Note 4.

First, back up your phone. You should do a full binary backup with TWRP, and also back up individual apps (and their settings) with Titanium Backup. Do both because each serves a different purpose. A TWRP backup is useful if the update goes awry. It’s a full binary image that restores your phone and all its apps to its prior state. But you can’t restore individual apps. A Titanium backup captures your apps and their setups & data, which can be individually restored into a new system. But it includes apps and system data only, so it doesn’t help if the install goes awry.

In short, if your update is successful you’ll restore your apps from Titanium Backup. If your update fails you’ll restore your entire system from the TWRP backup.

Next, get the latest firmware. You can do that SamMobile. It’s typically a 1-2 GB download because it includes everything: boot loader, modem, Android, Google Apps, etc. After downloading the ZIP, unzip it to get an MD5 file that’s about twice as big.

Next, boot your phone to download mode: turn it off, then press and hold Power, Home and Volume Down. Connect it to a Windows PC (or VM) running Samsung’s Odin app. Make sure Odin recognizes the device when you plug it in. From Odin click the AP button, pick the MD5 file you downloaded from SamMobile and send it to your device. The phone will show a bar graph as the data is sent. When it’s done, Odin will show whether it was successful and the phone will reboot.

Give the phone a long time to reboot; don’t worry if it takes several minutes. When it comes up, all your apps should still be there because Odin doesn’t wipe the data partition. But your phone will no longer be rooted and the TWRP recovery will also be wiped.

To restore TWRP and root, follow a similar process. First download the TWRP tar file. Boot the phone to download mode and used Odin to push it to the device, as above. But this time, before pushing it, disable auto reboot in Odin (it’s on the Options tab). When the TWRP push is done, power off the phone, then boot it to recovery mode: hold Power, Home and Volume Up. It should boot into TWRP. Now you have restored TWRP recovery.

To root the phone, copy the SuperSU ZIP file to the phone. You can do this via a standard USB file transfer to your phone while it’s booted normally, or you can do this while the phone is  booted to TWRP, using adb file push from your PC command line. Then boot to TWRP and install the ZIP. The SuperSU install script will print stuff on the screen; follow the instructions, which is to reboot the phone when the install is done, and let it reboot itself a couple of times to complete the install.

When you’re done, you’ll have the latest OEM firmware update, with TWRP and root. And it should not wipe your data or apps.

Galaxy Note 4: Spurious Wakes and the Home Button

I love my GN4 phone but it has a problem: it wakes up (screen turns on) randomly while in my pocket. When this happens, the screen is on and contact with the inside of my pocket causes spurious random screen touches which is highly dangerous. Not just the risk of butt-dialing people, but it could also change settings, uninstall apps, etc.

The cause is simple. The home button wakes the phone, and it protrudes slightly, so it’s very easy to trigger while in a case or pocket. The best fix would be a system checkbox enabling users to prevent the home button from waking the phone. When disabled, the only way to wake the phone would be the power button, which is quite firm and never is accidentally pushed.

However, Samsung’s response to this is idiotic: “don’t put it in your pocket”. Because Samsung has their heads in the sand (to be polite) on this, users have come up with their own solutions,

One is to install Xposed. But this is a sledgehammer. It works but I didn’t want to deal with it.

Since my device is rooted, I figured there must be some system config text file I could edit to get what I wanted. I didn’t find exactly what I wanted–simply disable wake on the Home button. But I found something close enough that works: swap the Home and Menu buttons.

On my GN4 running T-Mobile Android 6.0.1, the file to edit was: /system/usr/keylayout/Generic.kl

Change two lines:

key 172 HOME
key 254 APP_SWITCH

So they read:

key 254 HOME
key 172 APP_SWITCH


The App Switch (Menu) button will now be Home button, and vice versa. And the Home button will not wake the phone. Nor will the Menu or any other button. The only way to wake the phone will be to press the power button.

My phone no longer randomly wakes up in my pocket. No more butt-dialing, accidentally rearranged home screens, uninstalled apps, or hot phone. No more wasted battery consumption. It’s a bit strange to get used to swapped Menu & Home buttons, but the benefits are worth it.

Note: I tried editing /system/usr/keylayout/gpio-keys.kl and removing the WAKE_DROPPED indicator. Disabling the home button’s WAKE feature without remapping buttons would be ideal. But this didn’t work; it had no effect. Apparently it worked in prior versions of Android, but Samsung changed the way keys are mapped in 6.0.1.

Ubuntu VLC DAC Audio

I recently got a JDS Labs Element DAC + headphone amp. I drive it from my Ubuntu desktop using VLC as the audio player. It’s plug and play – no drivers needed. However, best results come after applying a few tips:

VLC Audio Device: The DAC has 17 output devices that appear in VLC. Which one to use? Use Pulse Audio if you want to hear a mix of all audio on the computer. Pulse Audio mixes all sources and resamples them if necessary to a common rate. Use JDS Labs Element DAC, USB audio direct hardware device without any conversions if you want to hear the audio track in its native sampling rate & bit depth, and nothing else. I prefer this for best sound quality.

VLC Output Module: use Pulseaudio audio output if you want to hear a mix of all audio on the computer. Use ALSA audio output if you want to bypass Pulseaudio to hear the audio track and nothing else.

VLC occasionally stopped playing and popped up an error saying “Device or resource busy”. If you’re using ALSA, only one app at a time can use the device. For example, if the browser tries to play a video it can steal the device from VLC. Also, VLC seems to have a bug in which it occasionally steals the device from itself when switching tracks. Adding a udev rule made this happen far less often. Add a file called 41-jdslabs-dac.rules to directory /etc/udev/rules.d. Make the contents like this:

# JDS Labs Element DAC
SUBSYSTEM=="usb", ATTR{idVendor}=="262a", MODE="0666", GROUP="plugdev"

This makes the JDS Labs DAC accessible to any Linux user.

Audio Glitches: Occasionally, once every hour or so, the audio will stop for a moment, then resume. I believe this is because the JDS Element uses USB adaptive mode, not async. This makes it compatible with more computers. Some people claim that adaptive move has more jitter and lower sound quality, but measurements belie this claim.

More audio glitches: Occasionally I would hear tics in the music, as if the computer CPU were too busy to deliver audio. Re-nicing the VLC process to -15 fixes this.

Net Neutrality is Misguided

This article in Tech Crunch sums the argument in favor of Net Neutrality:

Everyone agrees on the end: we want an open internet. But there’s more than one means to that end. We disagree on the means, not the end. The Senate Democrat perspective assumes that ISP companies will infringe the speech of their customers or restrict their traffic flow, unless government regulators prevent this. So they conclude we must grant government this new power.

This perspective is misguided in two ways. First, it assumes new government powers are the only way to prevent ISP companies from restricting content or traffic flow in ways that harm consumers. Second, it ignores the risk and cost of these new government powers.

Two alternatives to achieve the common goal of an open internet are regulation and competition.

Net Neutrality regulation means rules controlling how to handle data content and movement. These rules must go through multiple approvals and public comment. They are necessarily reactionary and lag technology and innovation. They are also detailed and complex by nature. This attracts rent seeking and lobbying for loopholes by ISP companies, which makes the rules even more complex and inefficient. This increases the complexity and cost of doing business, which reduces innovation, rewards established companies and deters new providers from entering the market. That means higher prices and less consumer choice.

For one example, consider T-Mobile’s zero-rating video data. Most of their customers loved this service, and the ones who didn’t could opt out at no charge. Yet providing this service got T-Mobile hauled in front of the FCC to explain themselves to regulators. They were exonerated, but this positive outcome was not preordained. It cost them thousands to defend themselves and they could have been subjected to massive fines. When ISPs get hauled in front of the FCC to testify every time they do something regulators didn’t anticipate, say goodbye to innovation.

An example the Senate Democrats use is “fast lanes” vs. “slow lanes”. This is a red herring. Some kinds of traffic, like video, consume far more bandwidth than others. For the internet to function properly, these different kinds of traffic must be handled and routed differently. In short, there already are “fast lanes” and “slow lanes” —  it’s a technical necessity. The question is how we pay for them. Blanket rules like Net Neutrality risk creating a tragedy of the commons, where everyone uses bandwidth but nobody invests in developing it, or forces everyone else to pay the costs of heavy bandwidth users, which encourages over-consumption, reducing quality of service for everyone.

Yet the Senate Democrats do have a certain logic. With only a handful of monolithic ISP companies, there is no real competition and some form of regulation like Net Neutrality becomes necessary. However, as citizens and consumers, we should not accept the inevitability of having only a handful of monolithic ISP companies. And we surely should not pass new regulations like Net Neutrality that will foster and lock in this dystopian future. Net Neturality is self-actuating and self-perpetuating. It creates and exacerbates the very problems it intends to prevent, as it purports to solve them.

In short, it is naive to believe:

  • That Net Neutrality regulations will stay ahead of fast-changing technology and creative interpretation by ISP companies.
  • That a distant federal bureaucracy will make better decisions about how to allocate bandwidth and handle traffic, than ISPs directly negotiating with each other and seeking customers.
  • That Net Neutrality rules will be immune from rent-seeking, carved-out loopholes and other forms of regulatory capture by big ISPs.
  • That these complex rules won’t raise the cost of business, restricting innovation, competition, and consumer choice.

Consider the alternative that the Senate Democrats ignored: competition. With competition, if one provider does something you don’t like, vote with your wallet and switch. You can switch at any time, for any reason: terms, privacy, cost, etc. Your vote hits the ISP where it counts: financially. Complex rules don’t bother them or protect you; their lawyers and lobbyists are better than yours, and are helping draft those rules.

Under competition, the rules we need are simple: prohibit fraud and establish property rights for access. There is no need for complex rules micro-managing data content and movement. This reduces rent-seeking and lobbying and keeps the cost of doing business low. Without complex rules dictating how to run their business, companies are free to innovate in technology and service to differentiate themselves, much like T-Mobile did for telecom.

But this works only under true competition. That means every person has a choice of several providers (not just two) and can switch between them quickly, easily, and cheaply. Unfortunately, we don’t have this in the USA. Why not? Primarily because multiple layers (local, state, federal) of complex regulations lock in existing ISPs and make it expensive for new companies. The reason some ISPs get away with bad behavior, like famously bad customer service and high prices, is because their customers have no alternative. Over-regulation protects them from competition. Adding even more more layers of regulation (e.g. Net Neutrality) will fix this like throwing gasoline on a fire.

Far better to address the root cause. Unwind the layers of complex regulations and municipal property access rules that lock in ISP companies and block competition. ISPs already are too much like utilities. This is the problem, not the solution.