Canonical Voices

What Subcritical talks about

Having ordered a new telephone, I figured I would try out some things with my much-detested HTC Desire Android-based phone.

For starters, I tried "rooting" my phone, which apparently is to Android as "jailbreaking" is to iPhone (isn't Android supposed to be open?). This went well, and was a pre-requisite to my next adventure: upgrading to the Gingerbread.

The upgrade didn't go so well. I grabbed the Oxygen mod ROM, which promised to move my phone up to Android 2.3, as well as address the general bugginess and slowness that has plagued me since I got it. This came at the cost of the HTC Sense UI features that the handset maker tosses in, but I was never a fan of it.

After following the steps to upgrade, the phone was more or less bricked. It would hang at the crappy "oxygen" logo animation, and not boot any further. I found a way to get into developer mode (press volume down when turning it on), and did a factory reset, hoping the OS would be restored to the working 2.x version that it came with. Surprising, however, the factory reset left me with a perfectly-booting 2.3 Oxygen ROM.

After that scary moment, it became clear that Gingerbread is a real improvement over whatever version I had been running. The only serious issue I've got at this point is Google's insanely crazy-bad SIP integration.

In short, I can't make phone calls if I'm connected to WiFi. Period. Here's the way it breaks:

Step 1:

Initiate a call, either by clicking on a contact or event in history. Choose to complete the action using "Dialler".

Initiate the Call

Step 2:

The phone will spin for a moment, seeming to think really hard about something. After a bit, it will offer to complete the command using either CSipSimple, a free VoIP client, or "Dialler" as before, except now there's a little "SIP" in the icon.

Choose the Dialler

Step 3:

If you choose the "SIP" Dialler, you'll get the following error.

Boggle that it won't let you actually dial

*No Internet calling account*  
There are no Internet calling accounts on this phone.  Add one now?

You pretty much get the idea at this point that maybe the attempt to dial normally failed. Or you might think that the phone is somehow configured to always try and do SIP dialling when on WiFi. This is where you'd be wrong. The phone is set to use Internet Calling only when calling Internet Numbers.

The workaround that I finally used to be able to make calls at all was to tell the phone to ask me each time I make a call. Note: This is annoying.

I've only got a few days left with this hunk of trash phone, and I won't be missing it. When I'm actually expected to be working, I swap the SIM out with the Nokia 6300 feature phone that I've had for years. It just works.

Read more

Having ordered a new telephone, I figured I would try out some things with my much-detested HTC Desire Android-based phone.

For starters, I tried "rooting" my phone, which apparently is to Android as "jailbreaking" is to iPhone (isn't Android supposed to be open?). This went well, and was a pre-requisite to my next adventure: upgrading to the Gingerbread.

The upgrade didn't go so well. I grabbed the Oxygen mod ROM, which promised to move my phone up to Android 2.3, as well as address the general bugginess and slowness that has plagued me since I got it. This came at the cost of the HTC Sense UI features that the handset maker tosses in, but I was never a fan of it.

After following the steps to upgrade, the phone was more or less bricked. It would hang at the crappy "oxygen" logo animation, and not boot any further. I found a way to get into developer mode (press volume down when turning it on), and did a factory reset, hoping the OS would be restored to the working 2.x version that it came with. Surprising, however, the factory reset left me with a perfectly-booting 2.3 Oxygen ROM.

After that scary moment, it became clear that Gingerbread is a real improvement over whatever version I had been running. The only serious issue I've got at this point is Google's insanely crazy-bad SIP integration.

In short, I can't make phone calls if I'm connected to WiFi. Period. Here's the way it breaks:

Step 1:

Initiate a call, either by clicking on a contact or event in history. Choose to complete the action using "Dialler".

Initiate the Call

Step 2:

The phone will spin for a moment, seeming to think really hard about something. After a bit, it will offer to complete the command using either CSipSimple, a free VoIP client, or "Dialler" as before, except now there's a little "SIP" in the icon.

Choose the Dialler

Step 3:

If you choose the "SIP" Dialler, you'll get the following error.

Boggle that it won't let you actually dial

*No Internet calling account*  
There are no Internet calling accounts on this phone.  Add one now?

You pretty much get the idea at this point that maybe the attempt to dial normally failed. Or you might think that the phone is somehow configured to always try and do SIP dialling when on WiFi. This is where you'd be wrong. The phone is set to use Internet Calling only when calling Internet Numbers.

The workaround that I finally used to be able to make calls at all was to tell the phone to ask me each time I make a call. Note: This is annoying.

I've only got a few days left with this hunk of trash phone, and I won't be missing it. When I'm actually expected to be working, I swap the SIM out with the Nokia 6300 feature phone that I've had for years. It just works.

Read more

Subcritical

A cooler of stella and sunshine

Good times.

Read more

Subcritical

A cooler of stella and sunshine

Good times.

Read more

Heading to Montreal

I'm getting ready to head over to Montreal, or "Mon' cccchhhhrayall" as the indigenous people of Canadia refer to it. It's all about business, though, and I unfortunately will not be seeing any hockey playoffs, except maybe on TV.

Not that it's sounding bad at the moment, mind you. I'm sitting in a bar in Heathrow's Terminal 5 watching two televisions. TV #1 is displaying cricket, which is England's version of baseball. TV #2 is playing Fawlty Towers with subtitles. The cricket is the funnier of the two, if you ask me.

Montreal looks to have some sights to see, but I'm not sure what the opening hours look like. I've been living on the goofy side of the pond for going on 13 years now, and I'm actually accustomed to things like paying a license fee for television ownership and bars closing at 10 o'clock at night. Not to mention dog tax. With that in mind, it could be that bars are open 24x7, the restaurants never close, and we'll never get any older and we won't ever die. This is my expectation, and you should know I don't react well to disappointment.

This will be my first trip to Canada. I've been to a fair number of countries, but the list has been pretty static for a while now. In the past months I've expanded it with Greece and Canada. Next month, I'll be heading to Hungary for the first time.

Coming up: How to handle a full passport.

Read more

Heading to Montreal

I'm getting ready to head over to Montreal, or "Mon' cccchhhhrayall" as the indigenous people of Canadia refer to it. It's all about business, though, and I unfortunately will not be seeing any hockey playoffs, except maybe on TV.

Not that it's sounding bad at the moment, mind you. I'm sitting in a bar in Heathrow's Terminal 5 watching two televisions. TV #1 is displaying cricket, which is England's version of baseball. TV #2 is playing Fawlty Towers with subtitles. The cricket is the funnier of the two, if you ask me.

Montreal looks to have some sights to see, but I'm not sure what the opening hours look like. I've been living on the goofy side of the pond for going on 13 years now, and I'm actually accustomed to things like paying a license fee for television ownership and bars closing at 10 o'clock at night. Not to mention dog tax. With that in mind, it could be that bars are open 24x7, the restaurants never close, and we'll never get any older and we won't ever die. This is my expectation, and you should know I don't react well to disappointment.

This will be my first trip to Canada. I've been to a fair number of countries, but the list has been pretty static for a while now. In the past months I've expanded it with Greece and Canada. Next month, I'll be heading to Hungary for the first time.

Coming up: How to handle a full passport.

Read more

A client will demand and expect all that his heart desires. Depending on his size, we may be tempted to promise just that. In some rare cases we may even deliver on those promises.

It's important to remember that this is not what the customer is paying for. He values our expertise, and is seeking our advice. He's not paying us to tell him that he's always right?—?he knows that already.

Read more

A client will demand and expect all that his heart desires. Depending on his size, we may be tempted to promise just that. In some rare cases we may even deliver on those promises.

It's important to remember that this is not what the customer is paying for. He values our expertise, and is seeking our advice. He's not paying us to tell him that he's always right?—?he knows that already.

Read more

When I first bought the Dell Mini 9, I was working for Red Hat. Therefore, I put the Fedora on it. With its pokey SSD drive, low memory, and tiny, tiny screen, it was impossible to feel comfortable running GNOME or, Heaven forbid, KDE.

Being a Window Maker man since time immemorial, I had no problem finding a properly lightweight and configurable desktop.

Like many people in our spoiled age, I had grown accustomed to many of the niceties provided by the fatter desktops. Like having the laptop go to sleep when you closed the lid or being able to connect to wireless networks without being a Dungeon Master.

This is an old guide, but you may find some nuggets of value in it.

Goals

The purpose of these tips is to have critical system functions like sleep and easy networking available regardless of which window manager is used. The topics covered are:

  • Trackpad configuration
  • Laptop sleep when closing lid
  • Multi-app sound without a sound server
  • Wireless networking
  • Easy mounting/unmounting removable media

Rationale

Currently, Fedora is heavily oriented towards GNOME, with a nod in KDE's direction. This is fine for Fedora, since its role as Red Hat's experimental branch demands it. However, on limited hardware like netbooks, running deep user environments like GNOME is not particularly attractive.

Trackpad

"Trackpad-Tap" is probably my most-hated feature of anything, ever. To get rid of this irritation, enable the SHMConfig feature of the xorg X11 server, and set the MaxTapTime to 0.

First, create the file

/etc/hal/fdi/policy/11-synaptics-options.fdi

with the following contents:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
    <device>
     <match key="input.x11_driver" contains="synaptics">
         <merge key="input.x11_options.SHMConfig" type="string">On</merge>
         <merge key="input.x11_options.MaxTapTime" type="string">0</merge>
       </match>
    </device>
</deviceinfo>

See man synaptics for the options available to the Synaptics driver.

Restart the haldaemon, then restart X11. To tweak other settings, like tracking speed or acceleration, you can run the program gsynaptics. I haven't found a way to make such settings permanent within GNOME, without editing the 11-synaptics-options.fdi file directly.

Sound

The goals here are:

  • to setup sound so that multiple applications can play sound simultaneously
  • mixer levels can be adjusted as desired
  • no sound server or wrappers are necessary for normal usage

Sound can be a real issue under Linux, and Fedora 10 has its problems. The Dell Mini 9 has a particular sound chipset that requires an entry in /etc/modprobe.d/alsa-base to be recognized by the driver:

options snd-hda-intel index=0 model=dell
blacklist snd-pcm-oss

The second line disables OSS emulation in ALSA. Read on to discover why we want to do this.

Fedora 10 defaults to using the PulseAudio soundsystem, which is a sort of next-generation ESD or aRTsd service. I'm sure if you're into GNOME or KDE you love PulseAudio, but for anyone else it just adds complexity. In my initial setup, sound worked. The mixer levels, however, were not correct, and tended to get out of sync. This required firing up alsamixer on the command line constantly to raise sound levels.

Removing PulseAudio is straightforward; just remove the package "pulseaudio" and restart the machine:

yum remove pulseaudio
shutdown -r now

This will delete the ALSA plugin for PA, and get you back to using a minimal ALSA setup (i.e., things will "Just Work". Well, they will just work if you also disable OSS emulation, as mentioned above.)

One big issue that seems to keep coming up under Linux is the sound hardware being locked by one application, preventing others from using it. The Adobe Flash plugin, for example, will attempt to exclusively lock the default OSS device /dev/dsp first before moving on to an ALSA-based device. This is wrong, but try and get Adobe to fix it. The workaround is to disable OSS completely. OSS-only software should be updated to the 21st century (which is almost 10 years old, folks), but in the meantime may work with some sort of wrapper.

With ALSA OSS removed, and PA uninstalled, the Mini 9 lets you run xmms in the background while watching YouTube videos in Firefox with sound.

Sleep

The Mini 9 sleeps well under Linux. If you're using the GNOME or KDE desktops, their respective power applets will control the sleep function in case of ACPI events, such as the pressing the sleep button or closing the laptop lid.

Fedora on its own, without the desktop environment, uses the acpid service to react to these events. To configure it to handle the lid closing event, create the following two files:

/etc/acpi/events/lid

event=button[ /]lid
action=/etc/acpi/actions/sleep.sh

/etc/acpi/actions/sleep.sh

For sleep.sh, just copy the existing power.sh file and change shutdown -h now to /usr/sbin/pm-suspend. This will prevent conflicts in case either the GNOME or KDE power managers are running.

Network

Ethernet works out of the box, but the Broadcom wireless will need the proprietary driver. Add the RPMFusion repository, and install the broadcom-wl package:

rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
rpm -ivh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
yum install broadcom-wl

You'll need to reboot after this.

Once the drivers are loading, use NetworkManager to control the wireless interface. This will require running docker, so that the NetworkManager applet has a place to live:

yum install docker

From the command-line, run

docker -wmaker &
nm-applet &

And drag the resulting application icon to the Clip. Right-click on the icon, choose settings, and make sure the command is shown as "docker -wmaker". Otherwise, it will not properly arrange the icons (but should still work, otherwise).

You can use the NetworkManager applet to configure your wireless. I have put the following in my autostart file, just in case:

gnome-keyring-daemon &

But I'm not sure if it's strictly necessary.

Removable Media

Mounting and unmounting drives is a chore under Linux, albeit one you get used to doing. If you'd like to avoid seeking out the device nodes, sudo-mounting and unmounting, try thunar-volman, from the Xfce project.

Read more

When I first bought the Dell Mini 9, I was working for Red Hat. Therefore, I put the Fedora on it. With its pokey SSD drive, low memory, and tiny, tiny screen, it was impossible to feel comfortable running GNOME or, Heaven forbid, KDE.

Being a Window Maker man since time immemorial, I had no problem finding a properly lightweight and configurable desktop.

Like many people in our spoiled age, I had grown accustomed to many of the niceties provided by the fatter desktops. Like having the laptop go to sleep when you closed the lid or being able to connect to wireless networks without being a Dungeon Master.

This is an old guide, but you may find some nuggets of value in it.

Goals

The purpose of these tips is to have critical system functions like sleep and easy networking available regardless of which window manager is used. The topics covered are:

  • Trackpad configuration
  • Laptop sleep when closing lid
  • Multi-app sound without a sound server
  • Wireless networking
  • Easy mounting/unmounting removable media

Rationale

Currently, Fedora is heavily oriented towards GNOME, with a nod in KDE's direction. This is fine for Fedora, since its role as Red Hat's experimental branch demands it. However, on limited hardware like netbooks, running deep user environments like GNOME is not particularly attractive.

Trackpad

"Trackpad-Tap" is probably my most-hated feature of anything, ever. To get rid of this irritation, enable the SHMConfig feature of the xorg X11 server, and set the MaxTapTime to 0.

First, create the file

/etc/hal/fdi/policy/11-synaptics-options.fdi

with the following contents:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
    <device>
     <match key="input.x11_driver" contains="synaptics">
         <merge key="input.x11_options.SHMConfig" type="string">On</merge>
         <merge key="input.x11_options.MaxTapTime" type="string">0</merge>
       </match>
    </device>
</deviceinfo>

See man synaptics for the options available to the Synaptics driver.

Restart the haldaemon, then restart X11. To tweak other settings, like tracking speed or acceleration, you can run the program gsynaptics. I haven't found a way to make such settings permanent within GNOME, without editing the 11-synaptics-options.fdi file directly.

Sound

The goals here are:

  • to setup sound so that multiple applications can play sound simultaneously
  • mixer levels can be adjusted as desired
  • no sound server or wrappers are necessary for normal usage

Sound can be a real issue under Linux, and Fedora 10 has its problems. The Dell Mini 9 has a particular sound chipset that requires an entry in /etc/modprobe.d/alsa-base to be recognized by the driver:

options snd-hda-intel index=0 model=dell
blacklist snd-pcm-oss

The second line disables OSS emulation in ALSA. Read on to discover why we want to do this.

Fedora 10 defaults to using the PulseAudio soundsystem, which is a sort of next-generation ESD or aRTsd service. I'm sure if you're into GNOME or KDE you love PulseAudio, but for anyone else it just adds complexity. In my initial setup, sound worked. The mixer levels, however, were not correct, and tended to get out of sync. This required firing up alsamixer on the command line constantly to raise sound levels.

Removing PulseAudio is straightforward; just remove the package "pulseaudio" and restart the machine:

yum remove pulseaudio
shutdown -r now

This will delete the ALSA plugin for PA, and get you back to using a minimal ALSA setup (i.e., things will "Just Work". Well, they will just work if you also disable OSS emulation, as mentioned above.)

One big issue that seems to keep coming up under Linux is the sound hardware being locked by one application, preventing others from using it. The Adobe Flash plugin, for example, will attempt to exclusively lock the default OSS device /dev/dsp first before moving on to an ALSA-based device. This is wrong, but try and get Adobe to fix it. The workaround is to disable OSS completely. OSS-only software should be updated to the 21st century (which is almost 10 years old, folks), but in the meantime may work with some sort of wrapper.

With ALSA OSS removed, and PA uninstalled, the Mini 9 lets you run xmms in the background while watching YouTube videos in Firefox with sound.

Sleep

The Mini 9 sleeps well under Linux. If you're using the GNOME or KDE desktops, their respective power applets will control the sleep function in case of ACPI events, such as the pressing the sleep button or closing the laptop lid.

Fedora on its own, without the desktop environment, uses the acpid service to react to these events. To configure it to handle the lid closing event, create the following two files:

/etc/acpi/events/lid

event=button[ /]lid
action=/etc/acpi/actions/sleep.sh

/etc/acpi/actions/sleep.sh

For sleep.sh, just copy the existing power.sh file and change shutdown -h now to /usr/sbin/pm-suspend. This will prevent conflicts in case either the GNOME or KDE power managers are running.

Network

Ethernet works out of the box, but the Broadcom wireless will need the proprietary driver. Add the RPMFusion repository, and install the broadcom-wl package:

rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
rpm -ivh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
yum install broadcom-wl

You'll need to reboot after this.

Once the drivers are loading, use NetworkManager to control the wireless interface. This will require running docker, so that the NetworkManager applet has a place to live:

yum install docker

From the command-line, run

docker -wmaker &
nm-applet &

And drag the resulting application icon to the Clip. Right-click on the icon, choose settings, and make sure the command is shown as "docker -wmaker". Otherwise, it will not properly arrange the icons (but should still work, otherwise).

You can use the NetworkManager applet to configure your wireless. I have put the following in my autostart file, just in case:

gnome-keyring-daemon &

But I'm not sure if it's strictly necessary.

Removable Media

Mounting and unmounting drives is a chore under Linux, albeit one you get used to doing. If you'd like to avoid seeking out the device nodes, sudo-mounting and unmounting, try thunar-volman, from the Xfce project.

Read more

The hostid on some systems, like Suns, is set in the hardware and uniquely identifies the system. On Linux, the hostid is more of a suggestion than a hard-and-fast rule. It's usually generated at install time, and can be changed with a few lines of python code:

#!/usr/bin/python
from struct import pack
hostid = pack("I",int("0x210a2500",16))
filename = "/etc/hostid"
open(filename,"wb").write(hostid)

You can check this then with the hostid command.

  # hostid
  210a2500

Protip: It's always a good idea to back up /etc/hostid first, just in case.

This can help workaround issues with applications like flexlm, that naively assume that hostid is in some way significant on Linux.

Read more

The hostid on some systems, like Suns, is set in the hardware and uniquely identifies the system. On Linux, the hostid is more of a suggestion than a hard-and-fast rule. It's usually generated at install time, and can be changed with a few lines of python code:

#!/usr/bin/python
from struct import pack
hostid = pack("I",int("0x210a2500",16))
filename = "/etc/hostid"
open(filename,"wb").write(hostid)

You can check this then with the hostid command.

  # hostid
  210a2500

Protip: It's always a good idea to back up /etc/hostid first, just in case.

This can help workaround issues with applications like flexlm, that naively assume that hostid is in some way significant on Linux.

Read more

My First Post

Welcome to Mango. If this page appears in full HTML glory (with bold and emphasized text) then everything's probably working correctly. Congratulations!

Read more