It’s been years since I’ve used a laptop that actually had a middle mouse button, and it can be tricky getting the timing right to press the left and right touchpad buttons simultaneously to fake a middle button press. Happily, there’s a really simple way to turn a two-finger tap on the touchpad into a middle button click. This guide assumes that you are familiar with command line and scripting basics. Continue reading Fake Middle Mouse Button in Ubuntu Unity With a Touchpad→
Here’s a quick internationalization tip for managing your Play Store assets for Android Wear apps:
1) Run your app in a Wear emulator paired with a physical Android device.
2) One by one, go to each “screen” in your Wear app that you want to show in the Play Store entry, and perform step 3 for it.
3) For each supported language, change the input language on your Android device (via Setup -> Language & Input)
4) Take a screenshot of the emulator window, and save it with an appropriate name.
5) Repeat #3 until all languages are represented for the given screen, and repeat #4 until all screens are represented.
The magic of this technique is that the Wear emulator will switch languages along with the Android device, so you only need to navigate through your Wear app once to get screenshots for all supported languages.
I wrote an Android Wear app called Resistor Decoder. It lets you speak the color bands of a resistor into your Wear watch to get the resistance and tolerance value. The usage scenario is for someone who does electronics tinkering and ends up with a bunch of resistors lying on the table.
Amazon just announced the Fire Phone, a mostly average phone running their broken version of Android. There isn’t much it offers that other phones couldn’t do with some third-party software installed, but here’s what I’m excited about.
As you can see, it has four front-facing cameras. Forget about why they put those cameras there, since it’s a gimmick, but here comes the cool part. If you’ve made video calls, you know that you can either choose to make eye contact with the other person by looking in the camera (which is nice for them), or you can look into the eyes of the person on your screen (which is nice for you), making it seem to them as if you’re looking at their throat. You have to make this choice because you can’t put a camera where the person’s eyes are without drilling a hole in your screen.
However, with four cameras, you can derive a virtual camera that is where the person’s eyes appear on your screen, meaning you can look into a person’s eyes on your screen and they see this happening, too. The only unknown is whether or not the CPU or GPU in a phone would have the power do to this.
I should do laundry… Nah, I’ll write an unnecessary software application instead.
The latest unnecessary software application is my Smart Doorbell program. Consisting of a python program and libraries, Smart Doorbell solves the age-old problem of how to replace cheap things with expensive things that have a few more features.
Summary from the project README:
This program turns your Raspberry Pi into a doorbell. It can replace a traditional hardware doorbell, and it integrates with openHAB and has a number of customization features.
You’ve gone to the local county fair. You want to play the game where you throw darts at a balloon to win a prize.
First, however, you have to tell the vendor your phone number and give him the contact info of everyone you know. You also agree that the vendor can find out precisely where you are in the future, whether or not you’re playing the game.
Of course, this sounds so very reasonable, so you agree.
When you’re done playing, you walk away from the booth, but the vendor still has your phone number and the full contact info for you and everyone you know. If you decide never to go back, he won’t be able to know where you are anymore, so there’s that.
I recently gave a short talk about what I discovered while looking for Linux alternatives to OSX’s Time Machine. There are a few solutions in there, from DIY shell commands all the way up to full GUIs with scheduling and housekeeping functions.
Addendum: I had been doing mirror-style rsync backups of user accounts previously, sometimes while the user was logged in. This had never presented a problem. When I switched to doing incremental backups, users reported being unable to start an X session. (Ok, they reported “my password doesn’t work,” but I was able to log in remotely via ssh; the basic login action was working fine.) It turns out that the .Xauthority file was becoming corrupt if I did an incremental backup while the user was in a active X session. The safest way around this is to only do incremental backups of user accounts while the users are logged out. This is probably the safest policy for other reasons as well, but when your users are on machines that are often only turned on while they’re in use, it’s less convenient to do it this way.