Adrian von Bidder: The Debian Umbrella: Soon.
At Canonical, we ve started experimenting with Mumble as an alternative to telephone calls for real-time conversations. The operating model is very much like IRC, based on channels within which everyone can hear everyone else as they speak.
Mumble works best with a headset, which offers better audio recording quality due to the proximity of the microphone, and avoids problems with echo and feedback. I like to pace around while I talk, and so I ve already invested in a Plantronics Calisto Pro, which includes a DECT handset, a Bluetooth headset and a nice charging base. My laptop has bluetooth onboard, so I set about trying to get Mumble set up to use the headset via bluetooth.
The first thing I tried was to click on the bluetooth icon on the panel, and select Set up new device.... After setting the headset to pairing mode, I waited quite some time for it to show up in the list, but it never did. After opening the preferences dialog, I discovered that this was (presumably) because I had already paired it, ages ago.
So, I went about trying to get PulseAudio to talk to it. After some hunting, I tried:
pactl load-module module-bluetooth-device address=00:23:xx:xx:xx:xx
This created a new Card in PulseAudio, which I could see in the Hardware tab of the Sound Preferences dialog and in pactl list, but it was inactive:
Card #1
Name: bluez_card.00_23_XX_XX_XX_XX
Driver: module-bluetooth-device.c
Owner Module: 17
Properties:
device.description = "Calisto PLT"
device.string = "00:23:XX:XX:XX:XX"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "headset"
bluez.path = "/org/bluez/13899/hci0/dev_00_23_XX_XX_XX_XX"
bluez.class = "0x200404"
bluez.name = "Calisto PLT"
device.icon_name = "audio-headset-bluetooth"
Profiles:
hsp: Telephony Duplex (HSP/HFP) (sinks: 1, sources: 1, priority. 20)
off: Off (sinks: 0, sources: 0, priority. 0)
Active Profile: off
The Hardware tab confirmed that the device was Disabled, and using the Off profile. I could manually select the Telephony Duplex (HSP/HFP) profile, but this had no apparent effect. There were no Sources or Sinks to send or receive audio data to or from the headset (and thus nothing new in the Input or Output tabs of the preferences dialog). syslog hinted:
pulseaudio[15239]: module-bluetooth-device.c: Default profile not connected, selecting off profile
At this point, I recalled that when I suspend this laptop, the bluetooth driver gets unhappy. I don t commonly use bluetooth on this laptop, so I hypothesized that the driver was in a weird state, and I decided to try unloading and reloading the btusb module. Once I did so, the device showed up in the panel menu, with a Connect menu item. Aha! The manual module loading above may turn out to be unnecessary if the device shows up in the menu initially.
I selected the Connect menu item, and a bunch of magic happened, with the result that I heard the headset s tone to indicate it was activated. Sound Preferences now showed it under Hardware as active using the Telephony Duplex profile, and it appeared under Input and Output as well. pactl list showed its sources and sinks. Mumble offered it as a choice for the input and output device. Progress!
Some experimentation (thanks, Colin) revealed that other people could hear me through the headset just fine.
However (Problem #1), I couldn t hear them clearly through the headset. If I switch Mumble s output to my speakers, they sound fine, so it s not Mumble. So I tried:
paplay -d bluez_sink.00_23_XX_XX_XX_XX /usr/share/sounds/alsa/Front_Center.wav
which also sounds awful. There is a whining noise, which gets louder when the audio signal is louder, which makes it very difficult to hear. I don t know if the problem is with PulseAudio, bluez, the kernel, or the device, but using speakers for output is a workaround. This does seem to cause some echo, though, so I ll need to track this down eventually.
Problem #2 is that Mumble seems to prevent PulseAudio from suspending the headset s source. Even if I set it to Push to Talk mode, the headset stays active all the time, which will drain the battery. PulseAudio seems to do the right thing, and kill the radio link, if the source is left idle, and brings it up when there is activity, so this looks to be Mumble s fault. I ll need to fix this as well.
Quite recently (just when migrating to gettext), it is possible to
translate phpMyAdmin using web interface, which is powered by great
software called Pootle. Thanks to this new interface, we've attracted
quite a lot of translators and lot of languages are now much improved.
Yesterday I also implemented way to backport these translations to old PHP
based translation system which is still being used in 3.3 branch, so that even
upcoming releases from this branch will benefit from this translation boost.
Yet another great think which happened thanks to l10n.cihar.com, is
availability of German version of Wammu website, where enormous amount of
work has happened in last few days.
Kudos to all people who are working there.
Long time ago I stopped using Chrome for daily use and leave it only for my Google services like Gmail and Wave.
Now, is my main browser even when it just stop working while I m offline (weird thing, btw). Is fast, starts fast, loads fast, runs javascript very fast. I can use websites as apps without installing another app to complement my browser like Prism and renders fonts wonderfully with @font-face.
Now, Firefox, well First of all, I m using nightly builds of alpha version, so it s supposed to fail sometimes and I understand that but, it s not supposed to be faster as well?
I m playing with the idea of booting ISO images and USB key images stored in a disk partition directly from Grub2. That would allow to install Linux or test liveCDs without even using a USB key. It seems that Grub2 has everything needed for that (with a combination of drivemap and chainloader), but I can t seem to get it working and, as usual with boot stuff, it s a pain to understand what s happening.
Has somebody recently tried that, or can point me to a howto?
This has been roughly one year since Debian switched from GLIBC to EGLIBC, so it s probably the time to make a small report about this change.
First of all, on the GLIBC upstream side, things has improved a bit since we now have regular stable release, thanks to Petr Baudis aka Pasky. The good point is that the stable releases are imported into the EGLIBC stable repositories.
On the EGLIBC side the switch has helped to reduce the number of patches in the Debian package (for example, resolv.conf is automatically reloaded if needed), and has brought some bug fixes and improvements, especially for the arm, mips and powerpc targets.
It should be noted that the newly created PowerPCSPE port for PowerPC e500 series CPU also benefits from EGLIBC, as it is not natively supported by GLIBC.
People who use and promote free software cite various reasons for their choice, but do those reasons tell the whole story? If, as a community, we want free software to continue to grow in popularity, especially in the mainstream, we should understand better the true reasons for choosing it especially our own.
Some believe that it offers higher quality, that the availability of source code results in a better product with higher reliability. Although it s difficult to do an apples-to-apples comparison of software, there are certainly instances where free software components have been judged superior to their proprietary counterparts. I m not aware of any comprehensive analysis of the general case, though, and there is plenty of anecdotal evidence on both sides of the debate.
Others prefer it for humanitarian reasons, because it s better for society or brings us closer to the world we want to live in. These are more difficult to analyze objectively, as they are closely linked to the individual, their circumstances and their belief system.
For developers, a popular reason is the possibility of modifying the software to suit their needs, as enshrined in the Free Software Foundation s freedom 1. This is reasonable enough, though the practical value of this opportunity will vary greatly depending on the software and circumstances.
The list goes on: cost savings, educational benefits, universal availability, social rewards, etc.
The wealth of evidence of cognitive bias indicates that we should not take these preferences at face value. Not only are human choices seldom rational, they are rarely well understood even by the human themselves. When asked to explain our preferences, we often have a ready answer indeed, we may never run out of reasons but they may not withstand analysis. We have many different ways of fooling ourselves with regard to our own past decisions and held beliefs, as well as those of others.
Behavioral economics explores the way in which our irrational behavior affects economies, and the results are curious and subtle. For example, the riddle of experience versus memory (TED video), or the several examples in The Marketplace of Perception (Harvard Magazine article). I think it would be illuminating to examine free software through this lens, and consider that the vagaries of human perception may have a very strong influence on our choices.
Some questions for thought:
I was about to close down a good day of hard work, a heavy but useful day... I had even decided to take some time off to listen to some good music, and was heading off to bed on a good mood...
Until I decided to read my contacts' latest rants. And I found very sad news - again.
A ten year old kid was killed while cycling in Calle Nezahualpilli, Colonia Ajusco.
I happen to know quite well that precise area - I lived very close to that street for some months in 2008. I eat in a small restaurant (what we call either a cocina econ mica, comida corrida or fondita) on that street. One of my usual bycicle workshops is also on that street - In fact, I wanted to go today, as both of my bikes' rear tires are flat, but had no time to make it.
Anyway... Colonia Ajusco and Colonia Santo Domingo ("colonia" is basically... a neighbourhood in es_MX) are two very popular, economically depressed areas, just North-East of the University. Probably hundreds or thousands of students live in rented rooms in the area, as UNAM with its 300,000 students does not have any dorms (due to political reasons leading all the way back to the 1960s).
Santo Domingo and Ajusco are also the part where Mexico City's main valley finishes. The hills begin, not too abruptly (we have a ~150m difference in the ~2Km spanned by both colonias). And... When I lived there, I was amazed at the amount of people moving by bike. The streets are too slow for motorized transit to properly flow, and it's often annoying to have to cross the region. It is mostly safe for cyclists.
Anyway, this kid was having a good time on the street, and was killed by a microbus driver fighting his fellow over more clients. The driver, yes, was caught (by his passengers and other bystanders, according to the note), and did not run away as they often do in cases such as this one. Still, the kid died almost instantly, so catching the driver serves very little consolation.
This Friday we will have BiciUNAMonos second monthly meeting. It is too soon, and I don't think we will end up going there. But I do feel this accident falls squarely inside UNAM user's territory. We cannot ignore it just because it happened outside our University's gates.
Nagstamon in the toolbar

Hosts details with Nagstamon
From Planet Gnome - apologies if you read both planets but I hadn't seen this recall before it was posted by Richard Hughes. If you are affected, feedback the required metadata to upower using:for i in /sys/class/power_supply/*/*; do echo $i; cat $i; done
Your battery is not affected and is not part of this replacement program.
Thank you for your cooperation. ..... You may continue using your battery.
I'm trying to work on XCB this week. And today I've started to accomplish the second step of a long term goal: making an X11 only library using XCB as its primary interface instead of Xlib. Last year, I had extended the API of startup-notification to support XCB as a back-end. This had been made possible by factorizing some code, duplicating the X11 code and translating it into equivalent XCB. Today, I've accomplished the second step, being dropping the Xlib code inside startup-notification to keep only the XCB one. For this, I used the x11-xcb library, which is available when Xlib is compiled with XCB as its transport, which is nowadays the standard. This library provides the function XGetXCBConnection, which can convert a Display pointer to a xcb_connection_t pointer. Consequently, it's now possible to write and execute XCB based code and being compatible with Xlib. I've made some benchmark of my work for the occasion, in order to measure what the gain is. The first table described 1000 launches of a fake application (a modified version of the startup-notification test suite actually). The X server is local (the latency is very minimal then). The gain is computed between the same back-end type for the total time. Full XCB is the "version" I'm working on.
| Version - Back-end | User time (seconds) | Kernel time (seconds) | Total time (seconds) | Gain |
|---|---|---|---|---|
| 0.10 - libx11 | 3.20 | 7.42 | 12.989 | - |
| 0.10 - libxcb | 2.76 | 7.36 | 12.414 | - |
| Full XCB - libx11 | 2.74 | 7.50 | 12.380 | 4.6 % |
| Full XCB - libxcb | 2.72 | 7.16 | 12.037 | 3.0 % |
| Version - Back-end | Total time (seconds) | Gain |
|---|---|---|
| 0.10 - libx11 | 76 | - |
| 0.10 - libxcb | 35 | - |
| Full XCB - libx11 | 72 | 5.2 % |
| Full XCB - libxcb | 33 | 5.7% |
SSH is definitely one of my most often used tools, not only for system
administration at work but also on the road with my netbook, an EeePC
701 running Debian Sid.
On the road, it often happens that I have a flaky WLAN or UMTS
connection, so I often have to kill (via <Enter>~.)
and reconnect my SSH session due to a changed IP address or so.
First step against problems arising from using SSH over unreliable
network connections is of course GNU Screen. Second step is use SSH
keys and ssh-agent to not needing to type the password on every
reconnect.
But it s still very annoying to kill the SSH connection and call ssh
again manually. For luck there is autossh, a wrapper around SSH which
regularily checks via two tunnels connect to each other on the remote
side if the connection is still alive, and if not, it kills the ssh
and starts a new one with the same parameters (i.e. tunnels, port
forwardings, commands to call, etc.).
It s quite obvious that this is perfect to be combined with screen s
-R and -d options (Reattach if a detached
screen is around, else start a new screen; detach a currently attached
screen), so I found myself very often typing (or fetching it from the
commandline history :-):
autossh -t sym.noone.org 'screen -Rd'
-t is necessary to allocate a terminal device on the
remote machine which is not done by default if you directly call a
command via ssh.
In comparision to OpenSSH, autossh needs the single quotes, because
otherwise it would parse -Rd as options to parse to
ssh and bail out. That s not a real problem, but when
you re used to just type ssh -t sym.noone.org screen -Rd
without any quotes, you ll run into this then and when.
Update, 25-May-2010, 14:55: As Carsten Hey points
out, autossh also supports the -- option to
declare that all following options and parameters must be passed to
ssh itself. (End of Update)
Typing that often and mistyping it then and when cries for an shell
alias or an shell function. So I came up with the following shell
function:
asc()
autossh -x -a -t "$@" 'screen -RdU'
I used a function instead of an alias in case of autossh
will in future regard all parameters given after the command as part
of the command as ssh does.
The additional options -x and -a disable X
and SSH Agent forwarding which both don t work if you reattach to an
already running screen.
And if you re using Zsh as I do, you can even add some more format
string magic to set the window title more or less to the expanded
alias, eh, function:
function asc()
# Set the title to something more obvious, e.g. the expanded
# alias, eh, function
print -Pn "\e]0;%n@%m: autossh -t $* 'screen -RdU'\a";
autossh -x -a -t "$@" 'screen -RdU'
compdef asc=ssh
Update, 25-May-2010, 14:59: As Hauke points out in a
comment, Zsh users should also declare that asc should
have the same tab completion as ssh itself. The example
above has been updated accordingly. (End of Update)
In the meanwhile on the EeePC I use asc on the
commandline more often than ssh itself. And I nearly no
more type autossh. (The most common exception here is
autossh hostname tail -F /path/to/some/logfile.)
Using that function you can also add common ssh options
for tunneling, etc. I use it most often like this:
asc -D 1080 sym.noone.orgThis opens a SOCKS proxy on localhost, port 1080 and that way I can surf via the host I m connecting to by SSH. There s one small drawback though: You didn t expect that I can just invent some new three letter command without a namespace clash, did you? There is a free game called Advanced Strategic Command whose binary (and Debian package) is named
asc, too. If you have that game installed, you
can always call it using its full path, e.g.
/usr/games/asc on Debian.
P.S.: My whole grml based .zshrc is also
available via git at
git.noone.org as well as on github.
I just replaced my aging 2004-era PC with wait for it a 2005-era PC.
A friend is moving across the country so I'm taking it off his hands.
The differences between the two are more than just the year of time,
though: one was hand-built from parts, while the other was a commodity
off-the-shelf Compaq. So the new machine, while not strictly faster by
the clock, is 64-bit and is much more amenable to upgrades.
While the added bulk is a bit annoying, the case has a lot more space in
it up to 8 or so drive slots (I can't imagine ever needing that
many), and 4 RAM slots which is a sure step up from the limitation of
two drive slots and two RAM slots in my old machine.
The most visibly shiny parts in the new desktop experience are 4G RAM
versus 1G, and a nice ATI GPU. While I'm glad my
OS allowed me to squeeze six years out of my
main machine, I'll be happy to stop shaking my fist at Chromium for
eating all my memory!
The new machine will keep its old name: earlgrey.
Six months ago, I was talking with Kat. We were talking about talking.
On imperfection
Kat wrote:
<mindspillage> I think I have to be very very comfortable around someone to be able to be imperfect around them.It's safe to be bad at dancing, she explained; she doesn't consider herself a good dancer, so nothing's at risk. On flames I had recently written about diversity in free software. Kat showed me a piece she had written, but not yet published, on a similar topic. I thought she should simply publish the piece as-is. Instead, she worried:
<mindspillage> (at least, without feeling horribly embarrassed about it)
<mindspillage> More so if what I'm doing is part of my identity.
<mindspillage> I feel like I have a hard time getting across what I think without coming across as antagonistic.I've felt the same way. Years ago, I told my friend Venkatesh that had sent a flame to a mailing list we're both on. He retorted that my flames lack flame. So then I thought about why I might feel I've written a flame, even when no one else felt that way. I wrote to Kat:
<paulproteus> Expressing oneself is a frustrating experience.Maybe for Kat's writing and my "flames", there was some sort of antagonistic process in which we fought ourselves. That fight doesn't have a lot to do with the resulting text, so it's invisible to the reader. I think this process might leave us vulnerable in another way: if our urges to stay quiet come from a sense of isolation, and we manage to stay quiet about that feeling, no one will sympathize with us. We'll appear to be healthy, active participants in a conversation where we express ourselves. Other people with a similar "process" for self-expression won't get a chance to empathize. (This is why I'm interested in putting together a Debian for Shy People caucus. I hope my Debconf proposal for a Birds of a Feather session is accepted!) On finding a way out We concluded on a happy note:
<paulproteus> It may seem like you're taking this out on other people.
<paulproteus> In fact, you're just frustrated.
<paulproteus> And fighting (successfully) your own urges to just be quiet.
<paulproteus> So at the end you'll feel like you fought a battle, and that seems like you wrote something that others would feel is antagonistic.
<mindspillage> I haven't been answering Wikimedia mail for a while. Then I figured out that I don't have to use my real name, so I don't have to answer as someone with responsibility, I can just be some random volunteer.P.S. A note from the archives Apparently, for me, speaking French is exempt from the above restrictions.
<mindspillage> Most of it is silly and trivial. But sometimes I am really able to address someone's concern or change someone's mind, and I forget how good that feels.
<mindspillage> (There are some real jerks too.)
<mindspillage> I got someone who was being snarky to apologize for being so rude. That was kind of awesome. Sometimes it doesn't take very much to make me happy.
The usual semi-regular bits of news from the FusionForge project. We
continue being quite active, with several hundred commits each month.
The momentum doesn't seem to stop even after the 5.0 release last
month. A large part of the activity stems from the
Coclico project, which has several
work-packages related to convergence of code across forges (mostly
between FusionForge and Codendi). This convergence comes in three
flavours:
Next.