From the category archives:

Gadgets

Google just announced Google TV at Google I/O today. It’s basically a giant TiVo with Chrome built in:

Google TV is a new experience for television that combines the TV that you already know with the freedom and power of the Internet. With Google Chrome built in, you can access all of your favorite websites and easily move between television and the web. This opens up your TV from a few hundred channels to millions of channels of entertainment across TV and the web. Your television is also no longer confined to showing just video. With the entire Internet in your living room, your TV becomes more than a TV — it can be a photo slideshow viewer, a gaming console, a music player and much more.

It’ll be interesting if they can keep the streaming quality high. YouTube certainly doesn’t have the best track record in that department.

These devices will go on sale this fall, and will be available at Best Buy stores nationwide. You can sign up here to get updates on Google TV availability.

I have a Razer Deathadder. It’s a nice mouse. In Ubuntu, though, its polling rates are through the roof and the mouse is pretty much unusable, even with GNOME’s mouse sensitivity and acceleration settings at their lowest. Previously, this could be fixed by tweaking the mouse section of your X.Org configuration file, /etc/X11/xorg.conf, but in Ubuntu 9.10, a different measure is needed, as most devices are managed via HAL. Here’s how I regained my sanity and mouse slowness. The fix should work for any high-end mouse.

Update: Added instructions for Ubuntu 10.04 Lucid Lynx. Instructions for Ubuntu 9.10 Karmic Koala can be found at the bottom.

Fix for Ubuntu 10.04 Lucid Lynx

It turns out that Ubuntu 10.04 needs yet another type of work-around, as it doesn’t use HAL. This is the best solution I’ve found so far:

  1. Open a terminal
  2. Run the command: xinput --list --short
    ⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
    ⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
    ⎜   ↳ Razer USA, Ltd DeathAdder Mouse         	id=6	[slave  pointer  (2)]
    ⎜   ↳ Razer USA, Ltd DeathAdder Mouse         	id=7	[slave  pointer  (2)]
    ⎜   ↳ Razer DeathAdder                        	id=11	[slave  pointer  (2)]
    ⎜   ↳ Macintosh mouse button emulation        	id=12	[slave  pointer  (2)]
    ⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
        ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
        ↳ Power Button                            	id=8	[slave  keyboard (3)]
        ↳ Power Button                            	id=9	[slave  keyboard (3)]
        ↳ Dell Dell USB Keyboard                  	id=10	[slave  keyboard (3)]
  3. Note the name of your device. In my case, manipulating ‘Razer DeathAdder’ worked.
  4. Set the constant deceleration for the device:
    xinput --set-prop "Razer DeathAdder" "Device Accel Constant Deceleration" 5

That’s it. You might have to play around with the value, but 5 slowed down my mouse sufficiently.

  • To see the current settings for the device:
    xinput --list-props "Razer DeathAdder"
  • To turn off mouse acceleration:
    xinput --set-prop "Razer DeathAdder" "Device Accel Velocity Scaling" 1

To perform the tuning automatically, I simply created a file containing the script below, ran chmod +x on it and added it to System -> Preferences -> Startup Applications in GNOME:

#!/bin/sh
xinput --set-prop "Razer DeathAdder" "Device Accel Constant Deceleration" 5
xinput --set-prop "Razer DeathAdder" "Device Accel Velocity Scaling" 1

Fix for Ubuntu 9.10 Karmic Koala

  1. Open a terminal
  2. Run the command: hal-device
  3. In the output, locate the mouse’s hex format vendor and product ID’s as highlighted below:
    82: udi = '/org/freedesktop/Hal/devices/usb_device_1532_7_noserial_if0'
      linux.hotplug_type = 2  (0x2)  (int)
      linux.subsystem = 'usb'  (string)
      info.linux.driver = 'usbhid'  (string)
      info.subsystem = 'usb'  (string)
      info.product = 'USB HID InterfacUbuntu 10.04 Lucid Lynxe'  (string)
      info.udi = '/org/freedesktop/Hal/devices/usb_device_1532_7_noserial_if0'  (string)
      usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb8/8-2/8-2:1.0'  (string)
      usb.configuration_value = 1  (0x1)  (int)
      usb.num_configurations = 1  (0x1)  (int)
      usb.num_interfaces = 1  (0x1)  (int)
      usb.device_class = 0  (0x0)  (int)
      usb.device_subclass = 0  (0x0)  (int)
      usb.device_protocol = 0  (0x0)  (int)
      usb.product_id = 7  (0x7)  (int)
      usb.vendor_id = 5426  (0x1532)  (int)
      usb.product = 'USB HID Interface'  (string)
      usb.vendor = 'Razer USA, Ltd'  (string)
      usb.num_ports = 0  (0x0)  (int)
      usb.max_power = 100  (0x64)  (int)
      usb.device_revision_bcd = 256  (0x100)  (int)
      usb.is_self_powered = false  (bool)
      usb.can_wake_up = true  (bool)
      usb.bus_number = 8  (0x8)  (int)
      usb.speed = 12  (double)
      usb.version = 2  (double)
      linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb8/8-2/8-2:1.0'  (string)
      info.parent = '/org/freedesktop/Hal/devices/usb_device_1532_7_noserial'  (string)
      usb.interface.number = 0  (0x0)  (int)
      usb.linux.device_number = 3  (0x3)  (int)
      usb.interface.subclass = 1  (0x1)  (int)
      usb.interface.class = 3  (0x3)  (int)
      usb.interface.protocol = 2  (0x2)  (int)

    In this case, my Product ID is 0×7 and my Vendor ID is 0×1532. Note that there can be more than one section containing the name of your mouse or its manufacturer — if you can’t find the product and vendor ID, look further down.

  4. Edit the HAL policy file for input devices: sudo nano -w /etc/hal/fdi/policy/10-x11-input.fdi
  5. Insert the following text:
  6. <?xml version="1.0" encoding="UTF-8"?>
    <deviceinfo version="0.2">
      <device>
        <match key="@input.originating_device:usb.vendor_id" int="0x1532">
          <match key="@input.originating_device:usb.product_id" int="0x7">
            <merge key="input.x11_options.ConstantDeceleration" type="string">5</merge>
          </match>
        </match>
      </device>
    </deviceinfo>

    Adjust your vendor_id and product_id to match what you noted down before. If the file is empty or doesn’t exist, don’t worry. If it already exists, omit the first line about xml.

  7. Hit Ctrl + X, then Y to save the file and exit nano
  8. Restart hald: sudo service hald restart
  9. Restart X.Org (log out or reboot your computer)

That’s it! The “ConstantDeceleration” setting in /etc/hal/fdi/policy/10-x11-input.fdi is what does the trick. When set to a value of 5, the sensitivity will essentially be divided by 5. Oh, sweet sanity.

Google logoIt seems very likely that Google is planning to release their own phone; not ‘merely’ a phone based on their mobile operating system, Android, but the Google phone — their take on the iPhone. Michael Arrington thinks the phone won’t be a traditional cellphone, but rather rely on data connections/VoIP via Google Voice entirely. Google already has the technology (they can rebuild him?) to give users of its Google Voice service real phone numbers; it seems like a logical next step.

Google is building their own branded phone that they’ll sell directly and through retailers. They were long planning to have the phone be available by the holidays, but it has now slipped to early 2010. The phone will be produced by a major phone manufacturer but will only have Google branding (Microsoft did the same thing with their first Zunes, which were built by Toshiba).

There won’t be any negotiation or compromise over the phone’s design of features – Google is dictating every last piece of it. No splintering of the Android OS that makes some applications unusable. Like the iPhone for Apple, this phone will be Google’s pure vision of what a phone should be.

I wonder if Google is having a serious go at world domination right now. First browsers, programming languages, operating systems, internet protocols, Wave, and now phones — where does it end? Oh well; for now, I don’t want it to.