The following blog posts appear on
Please visit my main blog page for all my posts.
I do not like it when people tell Web 2.0 sites to send me invitation e-mail. I won’t enumerate the reasons here. But there is one reason for why I don’t like you passing on my address to those sites, which is subject of this article:
Unlike popular belief, the Web 2.0 is not a money-printing machine. It’s a long road until you can actually generate real money with user content. Therefore, some shadey sites are probably selling contact details to advertisers to make ends meet while hoping for the big cashflow.
I don’t have any data to back this up, and I want to change that:
Please tell all your Web 2.0 sites to send me an invitation! Please use an address in the
signmeup.madduck.netdomain for that, and make sure to include the domain name of the service to which you sign me up before the@symbol. Also append a hyphen/dash and a random, short string. More on that in just a sec.For instance, if you are one of those people that believes that letting people know where you are (and have been) at any point in time, tell Foursquare to send an invitation to:
foursquare.com-ponies@signmeup.madduck.netThe reason for the random, short string (“ponies”) is simply so that I can later cross-check that a message receiving spam actually went through a social networking site — I intend to catalog the invitation messages.
Thank you for your time. Keep in mind: the more, the merrier. I’ll make sure to report back on the outcome of this little experiment right here, so watch this space.
NP: Billy Joel: Cold Spring Harbor
Posted Tue 09 Feb 2010 02:45:22 CETI had previously sought alternative, innovative search engines, but none of the proposed options made me particularly happy. About a year ago, I came across DuckDuckGo, and today, I’ve been using DDG as my primary search provider for exactly 10 months.
The reasons why I switched included
-
my dislike of the Google information monopoly and the potential that a single, corporate entity with financial interests, gets to censor the information I see. I am sceptical of their “Do-no-evil” promise because there’s nothing binding about it, and if it gets in the way of money-making, I am sure it’ll be discarded at a whim — if it even still exists.
-
the awareness that my usage augments their database (although I am probably too far away from mainstream to provide useful data), which translates into more funds available to them to further strengthen their market position.
-
my belief that the days of index-based searches are over, given how 95% (or more) of user-generated content is bogus. Google undoubtedly optimises the results with obscure, secret algorithms, but that’s just not enough for me.
-
Of course the name — DuckDuckGo — was perhaps the strongest reason to switch. :)
I am aware that DuckDuckGo is index-based itself, using the Yahoo API, which, in turns means that DuckDuckGo may already be using Bing data. Sounds a bit like out of the frying pan into the fire, unfortunately.
I am still investigating better search solutions, sticking with DuckDuckGo meanwhile.
Unfortunately, DuckDuckGo doesn’t quite cut the mustard at all times, forcing me to go to Google instead. For this reason I am glad to find that the CustomizeGoogle Firefox extension has not been discontinued, but simply renamed to OptimizeGoogle.
This extension allows me to anonymise my identity towards Google, remove click tracking (which Google doesn’t want you to know about and hence hide with JavaScript), hide ads, and customise a slew of other aspects of the giant’s search engine. It alleviates some of the aforementioned concerns, but not all.
Maybe it’s time to rethink the way I use the web and lower my search needs.
If you are using Firefox, try it out! If you’re still using Internet Exploder, you should not, and instead upgrade to Firefox. Users of other browsers might find similar functionality for their application, or might want to switch as well.
NP: Tunng: Comments from the Inner Chorus
Posted Sun 07 Feb 2010 22:51:31 CETI got involved with open-source software before I learnt about software development in a university course. Naturally, when my profs tried to teach the waterfall model to me, I couldn’t take them too seriously back then. After all, requirements specification → design → implementation → verification → maintenance is not really in line with the principle to release early, release often. Furthermore, since water cannot flow uphill, the waterfall model fails to represent development cycles, as they naturally appear, even in behemoth, ancient software nightmares.
And yet, when embarking on a new project, I do tend to find myself first thinking about the big picture, instead of churning out the code. I am certainly not the best coder out there, and it might well be that I could benefit from learning to break down problems to get an earlier start on the implementation of components.
However, I maintain that avoiding the waterfalls and engaging directly in extreme programming, agile software development, or pair-based approaches right away is not the answer.
Rather, the best approach should probably involve a certain level of conceptualisation before code is produced. I am a big fan of test-driven development, and I like the scrum method for the very reason that it involves talking and challenging ideas (although I wouldn’t follow the method down to the book).
I like to think about trickles in the mountains where water droplets joyfully jump around.
* * *
When Glyn Moody spoke in his LCA2010 keynote about challenges we (as in society) face, and how open-source seems to have many answers, he dropped the following gem, which spoke right to my heart:
Twitter is the “release early, release often” principle applied to thinking.
By this simile, journal articles are produced according to the waterfall model. This may well be why they are usually outdated at the time of publication. Microblogging (like Twitter), on the other hand, is primarily used to publish stuff before it’s ready, and which would never be published otherwise.
With journals on one end, and microblogging on the other, I think the epiphany is found in between — as with software development: web logs — web applications that allow for easy publishing by anyone (which is a different problem not to be discussed here).
Since articles on those platforms usually have at least a title and a body, they require just a little bit more thought than 140 characters of contracted brain farts, spilled into the world faster than it takes one to stand up, stretch, and sit down again.
* * *
Microblogging seems to be in line with where we’re heading: more information, more self-promotion, more access to more people, and all that with lower barriers of entry. It’s hard to argue against a trend, but I think we’ve taken a wrong turn somewhere.
The one specific instance of content is no longer relevant, and there is no more time in the day to read elaborate treatments of subject matters. Instead, what seems to prevail is a constant flow. This flow threatens to replace actual thinking and discourse, both of which require reflection and time — a scarce resource used up by ever new, fast-flowing media.
It seems to me that those who immersed in this flow are unable to get out, as if sucked in by a maelstrom. I’ve seen people enter serious withdrawal within hours of not knowing what’s going on in the world. One could miss out on something.
If you’re “following” people on one of those microblogging platforms, I challenge you to spend the weekend offline and when the urge hits, ask yourself what you are actually missing. I mean what you are really missing, and by that I mean anything other than the cozy buzz and hum of entertainment washed upon you, preventing you from having to think about what you could be (actively) doing instead.
I hope it’s not a lot. For else, I fear that this means that future generations will be stuck with this communication culture, just like water droplets can’t ever play in the mountain trickle again.
NP: Sola Rosa: Get It Together
Posted Sat 06 Feb 2010 07:53:55 CETLinux.conf.au 2010 has come to an end and I am looking back at an intense week of conferencing. A big shout out to the organisers for their excellent work. I think LCA (as well as DebConf) just keeps getting better every year. This does not at all discredit previous organisers, because they were the best at their times and then passed on the wisdom and experience to help make it even better in the following year.
The week started off with the DistroSummit, which Fabio and I organised. Slides are forthcoming, as I failed to get them off the speakers right after their talks — it’s interesting how stress levels and adrenaline can cause one to forget the most obvious things. This is where experience comes in. I’ll be there again next year, I hope, to do things better.
The theme of the day was cross-distro collaboration, and we started the day a little bit on the Debian-side with Lucas Nussbaum telling us about quality assurance in Debian, alongside an overview of available resources. We hoped to give people from other distros pointers, and solicit feedback that would enable us to tie quality assurance closer together.
Next up was Bdale Garbee who talked about the status of the Linux Standard Base. While I am really interested in such standardisation efforts, I realised during his talks that I had considerable difficulties paying attention because as organiser of the conference, I had all sorts of other things occupying my thoughts.
I proceeded to tell the audience — the room was mostly filled throughout the day with an estimated 40–50 folks, and I’d say about half of them stayed throughout, while the other half came in and left the room between talks. I could not get the projector to work with my laptop after the upgrade to Kernel Mode Setting, and thus used the whiteboard to give a brief introduction to vcs-pkg.org, talk about the current state of affairs, summarise the trends in discussions around patch management and collaboration, give an outlook of what’s up next, and solicit some discussion.
Sadly, just like during Bdale’s talk, I found myself worrying over the organisation of the day, rather than actually taking in most of the discussion. Fortunately, others have written about the most important points, so I defer to them.
Michael Homer then told us about GoboLinux’s Aliens system, which is a way to integrate domain-specific packages with distro-specific package maintenance — e.g. how to get APT to handle CPAN directly, or how to let YUM manage Python packages. The ensuing discussion was interesting, and we carried it over to the next slot, because Scott, the next speaker, was stuck in traffic. To summarise briefly: scripting languages have a lot of NIH-style solutions because it works for them, but these are a nightmare to distro packagers. One symptom of the status quo is that complex software packages like Zimbra are forced to distribute all required components in their installation packages, which make distro packaging, quality assurance, and security support even harder. I don’t think we found a solution, other than the need for further standardisation (like the LSB), but the road seems to be a long and windy one.
Laszlo Peter introduced the audience to SourceJuicer, a new build system used by OpenSolaris. The idea is that contributors submit packages via a web interface, kicking off a workflow incorporating discussion and vetting, and only after changes have been signed-off are packages forwarded to auto-builders and eventually end up in the package repository. This is very similar to upload ideas I’ve had a while ago, which I’ve started to (finally) implement. Unfortunately, SourceJuicer seems very specific to OpenSolaris, as well as non-modular, so that I probably won’t be able to reuse e.g. the web interface on top of a Debian-specific package builder.
After the break, Dustin Kirkland stepped up to tell us about his user experience of Launchpad. Unfortunately, I found his talk a bit too enthusiastic. Launchpad undoubtedly has some very cool features and ideas, but it’s just one of the available solutions.
The dicussion of Launchpad also dominated the next talk, in which Lucas Nussbaum told us about the Debian-Ubuntu relationship. While his presentation showed that the relationship was improving (Matt Zimmerman made the point that there are rather many relationships, rather than one relationship), I was a bit disturbed by the comments of Launchpad developers in the room, ranging from “Debian is declining anyway” to “Just use Launchpad if you want to collaborate with others and not go down”. There was a slight aura of arrogance in their comments which tainted my experience of the otherwise constructive discussions of the day.
Overall I had a great time. Debian and Ubuntu made up the vast majority of attendants, with only a handful of representatives from other distros present. I wonder why that would be. One reason might be that around 70% of LCA attendants declared themselves Debian or Ubuntu users, and so there weren’t many other distros around. Another might be that I still haven’t spread the word enough. Let’s hope to do better next year!
Thanks to all the speakers. We may have organised the day, but you made it happen and interesting!
Slides and recordings of the talks will be linked from the archived website when they become available (yes, the archive page does not exist yet either).
Update: Jelmer informed me that the people who spoke up against Debian during and after the Launchpad talk were not officially affiliated with Launchpad. It’s a shame that this negatively reflected upon Launchpad for some of the attendees (not just myself).
Posted Thu 28 Jan 2010 05:34:19 CETComing to New Zealand for an extended period of time, I figured it would make sense to purchase a prepay mobile plan to make it easier to mix with locals. Not knowing better, I went with Vodafone, which I whole-heartedly regret: their website is a massive pain in the ass, their price plans completely over the top, and their customer service representative incompetent and unfriendly.
My latest experience eclipsed all previous encounters, and makes me want to tell you about it:
Between all the obscure add-ons Vodafone threw at me when I bought this SIM card, two weeks ago I couldn’t figure out how my balance had decreased from $30 to $0 when I rarely ever made calls.
I wrote an e-mail to their customer service hotline, and it took them a week to get back to me, with the following text:
Due to being a Prepay Customer, unfortunately usage details are not available as per terms and conditions. I have although checked your usage and can confirm that all charges are correct.
Obviously, I wasn’t going to accept this claim of omniscience, so when last weekend, $20 disappeared over the course of a day, that was the catalyst for me to reopen the ticket and reply along the lines of:
Only I know when I used my phone and thus only I can determine whether the charges are correct. Please show the full records to me, or else …
This seemed to convince the representative, and 8 messages and 11 days after my initial request, I was told I could request the records at $5/30 records. Yes, you read that right: they wanted to charge me to view the records. I thus replied:
I am NOT willing to pay for that. If you are unable to comply with my desire for transparency, then I shall terminate the contract and make sure to inform the media as well as the consumer institute of this conduct. As stated previously, I shall also consult with a lawyer. Charging consumers to view data that is obviously available is a strong indication that you do not want me to see it. I can’t imaging why this would be the case other than the data being inconsistent with reality.
That worked, and I finally got an Excel sheet with my usage data, which allowed me to track down the depletion of my account: to lure customers in, they promise free calls to other Vodafone numbers for the first four weekends. There are three problems with that though:
-
Having purchased my card on Saturday afternoon, I was annoyed to find out that the remaining 34 hours of that weekend would be counted as a whole weekend.
-
They don’t provide a way by which to find out whether a given number actually belongs to Vodafone or not. The 021 prefix is not enough of an indication.
-
They don’t actually tell you anywhere but the aforementioned horrific website that the addon has expired.
So thanks, Vodafone. You’ve lost a customer, who should have gone with 2degrees in the first place, who have much lower rates, even though their data coverage doesn’t seem as good. I don’t need data anyway.
I’ll still insist on Vodafone providing the data in a Free format.
You can find more information about NZ mobile phone providers on the LCA2010 wiki page.
NP: Age Pryor: Shank’s Pony
Posted Mon 25 Jan 2010 06:25:16 CETIt took us a bit longer than planned, but we are happy to announce the schedule for the Distro Summit at the upcoming LCA2010 conference. We focused on cross-distro aspects, and we hope that you are as excited as we are about the result.
The schedule is displayed on the Distro Summit homepage and I best refrain from duplicating it here.
Posted Sun 13 Dec 2009 13:14:07 CETToday, Fabio and I extended the deadline of the call for papers of the upcoming Distro Summit until 18 October 2009. We have already received a number of great proposals, but not enough to complete the schedule. So if you have anything to say on the topic of distributions (such as, but not limited to the various Linux distributions), and especially on cross-distro collaboration, please launch your mailer and compose a message as detailed in the instructions.
Distro Summit will take place as part of LCA 2010 in Wellington, New Zealand. Yes, that is on the Southern Hemisphere, and yes, that is far away from where many of you live, but it’s well worth a visit, if you’ll take my word for it. Unfortunately, we are unable to provide sponsorship for speakers, so talk to your employer or your distro now and get the ball rolling. You have a little more than a week to get your bids in!
What are you waiting for? This is a once-in-a-lifetime chance: Distro Summit, LCA, and Wellington, all-in-one. It doesn’t get much better than that. Let’s hear your proposal!
PS: I loved Wellington (and its people) so much that I picked up my very own pet Wellingtonian!
Posted Wed 07 Oct 2009 16:13:40 CESTJust thought I should let you all be part of this: I love my
awesome girlfriend once for every
byte ever pushed onto the Web two-point-oh. One could say that the
complexity of this love is Ω(n).
NP: Porcupine Tree: The Incident
Posted Fri 18 Sep 2009 11:54:03 CESTI am a heavy IRC user, and the following is a priceless tip how to allow you to join dozens of channels, keep the IRC window open at all times, and still prevent getting distracted by happenings on those channels that you don’t actually care about.
First, let me introduce the most basic feature of chanact, a very
useful plugin for irssi, my IRC
client of choice. You can find chanact.pl also in
Debian’s irssi-scripts
package, so to enable it, install that package and run:
mkdir -p ~/.irssi/scripts/autorun
ln -s /usr/share/irssi/scripts/chanact.pl ~/.irssi/scripts/autorun
and then run /script load chanact from any running
irssi instances.
Channel aliases
I have been using the irssi
chanact
script for many years to assign one-letter aliases to my channels —
I could never understand how people kept track of the fact that
window 17 was e.g. #debian-devel. In my case, that’s
just window d, I can switch to it with
Meta-d and if there’s activity, there’ll be a
d in the status bar. Obviously, this will limit you to
the number of available characters, but between Unicode and windows 1–20
available for temporary use (see my use of
chanact_renumber_start further down), this should be
enough for everyone.
This is trivially implemented with autosendcmd,
like so in ~/.irssi/config:
channels = (
[…]
{
name = "#debian-devel";
chatnet = "oftc";
autojoin = "Yes";
autosendcmd = "/window_alias d";
},
[…]
);
I also suggest to explicitly add keybindings to the
configuration file to get defined behaviour if you
/reload.
keyboard = (
[…]
{
key = "meta-d";
id = "change_window";
data = "d:oftc/#debian-devel";
},
[…]
);
chanact itself exports numerous settings, and here
are mine:
settings = {
[…]
"perl/core/scripts" = {
[…]
chanact_header = "";
chanact_separator = "";
chanact_abbreviate_names = "0";
chanact_autorenumber = "yes";
chanact_renumber_start = "21";
chanact_display_alias = "$H$N$S";
chanact_chop_status = "yes";
chanact_show_names = "no";
chanact_show_mode = "0";
chanact_show_alias = "yes";
[…]
};
[…]
};
I leave it up to you to figure out what these do since you are
likely to set them to your own taste anyway. Type /set
chanact into irssi to get a list of all
settings, and check the script
itself for documentation about them.
Lastly, because that autosendcmd hook sometimes
gets called again and again (e.g. if you /part and
/join the channel, or there’s a netsplit), I learnt to
refrain from using /save, which I disabled as
follows:
aliases = {
[…]
save = "echo edit the config file instead (or use //save)";
};
I also put my irssi configuration into a Git repository to stay in control of what
goes into the configuration, and to be able to inspect the changes
easily should I chose to circumvent the save protection by running
//save. But that may just be me.
Per-window activity filtering
With the above settings, irssi displays a series of
one-letter aliases in the status bar to indicate, which channels
have activity; those that contain activity with highlights you
defined will be bold (depending on your theme, the
sb_act_* abstracts determine that).
The problem is that a non-empty list distracts and might lead
you to switch to a channel to figure out what the activity is;
after all, it’s just a Meta-* key combination
away.
chanact allows you to define an activity filter,
and together with
activity_hide_targets, one can already control to a certain
degree which activity level is considered high enough for you to
take note. The following levels exist:
0: show all channels
1: hide channels without activity
2: hide channels with only join/part/etc messages
3: hide channels with text messages
4: hide all channels (now why would you want to do that)
However, these levels are all-or-nothing, and that wasn’t good enough for me, so I reported a feature wishlist and found out that I wasn’t the only one with similar needs, or even an implementation.
But it seemed like we couldn’t find one solution to settle on,
and I really wanted the feature, so I went ahead and touch the
script (PERL!!!) myself. The result turned out quite nice,
but it was O(n²), so the author rewrote it with a bit
of nicer Perl.
What counts is the final result, and I love it. Note that you
will need chanact 0.5.12, or Debian’s irssi-scripts
version 20090810, which includes a
patched 0.5.11.
I identified three types of channels in terms of the activity level I cared about:
- the vast majority of channels, which I wanted to ignore
- a few channels where I wanted to see real activity
- an even smaller number of channels where I also wanted to see activity generated by people joining and leaving.
In all three cases, I still wanted to see highlights, but those seem to be handled somewhat differently anyway, so I didn’t have to worry about them.
The following three settings achieved what I want:
settings = {
[…]
"perl/core/scripts" = {
[…]
chanact_filter = "3";
chanact_filter_windowlist_level = "2";
chanact_filter_windowlist = "@QUERIES #vcs-pkg #debian.ch,1";
};
};
The effects of these three are as follows:
- channel activity is ignored by default (filter level 3);
- windows listed in
chanact_filter_windowlistare treated with filter level 2, instead… - … unless they append a specific filter-level after the name, using a comma as separator.
So in the above, I would get to see activity for
#vcs-pkg and all queries, and I would get to see joins
and parts for #debian.ch on top of the normal
activity.
The only shortcoming is that the window list takes window names,
and those need not be unique: if you are joined to
#debian-devel on multiple networks, I don’t know what
will happen. I also did not find a trivial way to fix this.
Do not disturb
Two other aliases conveniently allow me to go into and out of
do-not-disturb mode, such that not even highlights reach me, unless
they are in one of the channels (and depending on the setting,
@QUERIES) I watch:
aliases = {
[…]
dnd = "set chanact_filter 4";
avail = "set chanact_filter 3";
};
This is convenient, because I can turn on /dnd most
of the time, but if I return with /avail, the
highlights all show up and I can go through them.
Quick modifications to the filter list
The last change I made is a gross hack abusing the hide script, so that I can quickly show and hide activity for certain channels.
settings = {
[…]
"perl/core/scripts" = {
[…]
showc = "eval set activity_hide_targets $chanact_filter_windowlist; hide target add $0; eval eval set chanact_filter_windowlist \\$activity_hide_targets; set -default activity_hide_targets";
hidec = "eval set activity_hide_targets $chanact_filter_windowlist; hide target remove $0; eval eval set chanact_filter_windowlist \\$activity_hide_targets; set -default activity_hide_targets";
viewc = "set chanact_filter_windowlist";
};
};
The problem is that /hide adds to hide and removes
to show, which is exactly the inverse of how the window list works.
Thus, the above hack needs to reverse that, and abuses the (no
longer necessary) activity_hide_targets setting for
that.
I told you it was gross!
Posted Mon 10 Aug 2009 22:03:33 CESTIn preparation of the keysigning event at DebConf9, I’ve been inspired by Adrian von Bidder’s signing policy and drafted my own keysigning policy.
Once the document is finalised, I will tell caff to include a
cert-policy-url with all certifications (key
signatures) the new key will make. To allow people to verify that I
have not changed the policy since the certification, the URL will
include an SHA512 hashsum in the “query string”. This is also based
on Adrian’s idea.
Those who remember my previous keysigning experiments might be glad to find that I have included the step of identity verification with a legal document. A recent thread on debconf-discuss, and in particular four messages in that thread, made me realise that I’ve been barking up the wrong tree. There are good reasons for this level of verification, especially in a project like Debian.
However, and this is the essence of my concern, I believe that a GPG certification should be more than the verification of such a document. A key signature should also be a statement that the person is actually known to the signer. This is what I tried to specify in the first two points of my certification policy.
I think that if we avoid signing keys of people whom we haven’t met before, then the web of trust will be strengthened substantially. Adding the verification step by way of a legal document will make it easier for us to track down a contributor in the unlikely event of abuse of his/her privileges.
NP: Deep Purple: Made in Japan
Posted Sun 12 Jul 2009 09:04:16 CEST
