Monthly Archives: May 2017

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.

Netflix New Rating System Sucks

In April 2017, Netflix changed their rating system. Instead of rating shows from 1-5, you now have only 2 ratings: up or down. And, the ratings Netflix shows you are NOT what other users have given the show. Instead, the rating Netflix shows you is how much Netflix thinks you’ll like the show.

This sucks. To be more precise, show ratings are now meaningless and useless. This is for 2 reasons:

1. The rating you see is not how others have rated the show. The show might be rated “5” by 90% of viewers, but it shows as “1” for you if Netflix thinks you won’t like it. The reverse is also true. The show could be rated “1” by 90% of viewers but shows as “5” for you if Netflix thinks you’ll like it.

For me personally, Netflix’s algorithm is quite poor. Shows I like often rate as 1, and vice versa. And it makes it impossible to see how others have actually rated a show. This is the underlying arrogance of this rating system: Netflix prevents you from seeing how others actually rated it, instead forces their own algorithm’s ratings on you. It’s like Netflix is saying, “Who are you going to believe: us, or your own lying eyes?

Suggestion to Netflix: Never hide from customers the actual data they want to make decisions, and replace it with your own algorithmic interpretation. Especially if your algorithm sucks.

For example: most action movies have poor acting, cheesy dialog and plots with gaping holes. But there are a few good ones. You watch one good one, and Netflix floods you with abominable cheesy action movies all rated “4” or “5”. Not because they’re good – they’re not. Because Netflix’s stupid algorithm doesn’t know the difference. Humans do know the difference. If you could only see the actual ratings people have made. But Netflix won’t show you that.

2. Binary ratings have no way to differentiate between a show that was tolerable, one that was great, and the best show you’ve ever seen. All you get is up or down. This alone might be bad enough, but there’s more. This forces people to game the system, rating down shows they liked if they don’t want to see more shows like that. In the long term these fake ratings make the entire system worse. The system encourages–almost forces–people to game it with false ratings, which then spirals into a nose dive as those ratings make the recommendations even worse.

I completely understand a fast moving innovative company like Netflix must “move fast and break things”. But a rating system this arrogant and broken should never have rolled to production. However, I won’t cancel my subscription. At least not yet.

The astute reader will claim that Netflix never did show the actual ratings in the 1-5 system. The rating you saw was how Netflix thought you would rate the show. That’s true, but only partially true. The rating you saw was based on both–how others rated it, weighted mix with how they thought you would rate it. The bottom line is, however the old system worked, its ratings were more accurate and useful than the current system, which is completely broken and useless.

Call-out to Netflix: fix this broken ratings system!