It is nice to see very clever people also working on low-hanging fruits and
not only hair-cutting code...
Translation: Y Giridhar Appaji Nag is one of the people I met at
FOSS.IN/2007. Since then, I saw the quality of the work he's doing in
Debian, which involves some "high level" stuff but, still, he does not
seem to be considering that translating our installer in his nother tongue, Telugu, is a time
waste...
He even eplains why the fruits are not that low and
translators often face challenges that are as interesting as those one
can face when "coding".
Hat off, Appaji...
Additionnal note: since
I wrote my blog post about FOSS.IN/2008, Atul Chitnis, the organisation team leader wrote me in private to comment about it. He was regretting that I didn't speak to him before posting this...but I don't think it would have changed my post, indeed.
Atul
answered those concerns in the FOSS-IN mailing list. I encourage readers to look at his answer. I personnally don't think this addresses the most important concern I raised as Atul focused on the grieves lead by the "low hanging fruits" expression....which was a minor part of my own reaction.
Since then,
the Call for Participation to FOSS.IN/2008 has been sent and, despite the disagreement I have with the strategical choice of organisers, I really wish the even the best success they can achieve.

I was sure it will be possible.
With current awesome git version it's possible to run a
space invaders game.

With only 380 lines of Lua.
Is there any window manager capable of doing this ?

And don't say it's useless!
Thanks to Gregor "farhaven" Best for wasting his time with that.

A few years into this running hobby, I realized that my times were getting
better. But I had no feel for by how much, or whether that was a constant
rate of improvement etc pp. Long story short, I started to plot some of the data. What
seemed natural was to record the date, the distance in miles as well as in a
qualitative variable, and finally the average pace. Additionally, I played
with groupings into just three categories 'short', 'mid' and 'long'.
This leads to a natural 'one-factor' model of pace as a function of race date
grouped by race distance. And given how easy it is to do conditional plots in
R,
I quickly arrived at something that
already resembled the following chart:

At first, some of the groups had too few data points to actually reliably
construct regression lines, let alone non-parametric smoothers. But over
time more and more data points were added as I kept running races.
Including for example the somewhat disappointing result from
last
year's Chicago marathon in record heat that resulted in the outlier in
the last panel. It actually made the smooth fit turn upwards! Luckily, the
subsequent times in
New York last fall,
London in April,
and of course in
Berlin last month
helped to dampen the effect of the one outlier, resulting in a more normal straight line for marathon
performance that is comparable to the other four race lengths.
All in all I am now quite happy with the chart. The combination of the
non-parametric loess smoother and the
robust linear regression (using
lrm
from the
MASS package
for
R)
shows that most groups exhibit very little non-linearity as both regression curves are very close to each other.
The curvature in the '10m' group is probably mostly a small-sample effect. And I am obviously happy with the
fact that three of the five panels show their respective last race as a PR :)
The
R script containing the data and code
is available here
but requires some familiarity with the
lattice package for
R (as the
lattice book
would provide).
A couple of days ago I attended a lecture about the
Drizzle database server [1].
Drizzle is a re-write of MySQL for use in large web applications. It is only going to run on 64bit platforms because apparently everyone uses 64bit servers - except of course people who are Amazon EC2 customers as the $0.10 per hour instances in EC2 are all 32bit. It’s also designed to use large amounts of RAM for more aggressive caching, it’s being optimised for large RAM at the expense of performance on systems with small amounts of RAM. This is OK if you buy one (or many) new servers to dedicate to the task of running a database. But if a database is one of many tasks running on the machine, or if the machine is a Xen instance then this isn’t going to be good.
There are currently no plans to support replication between MySQL and Drizzle databases (although it would not be impossible to write the support).
The good news is that regular MySQL development will apparently continue in the same manner as before, so people who have small systems, run on Xen instances, or use EC2 can keep using that. Drizzle seems just aimed at people who want to run very large sharded databases.
Now I just wish that they would introduce checksums on all data transfers and stores into MySQL. I consider that to be a really significant feature of Drizzle.
Share This
No, it's not about football/soccer nor about rivalry, but simply about the two sections of my blog: the english speaking
and the german speaking section.
Whereas the English section is being read by quite many people, because it's aggregated on
planet.debian.org, the German section of my blog is not
that well-known, as it seems. Or maybe not that interesting. Or maybe most Germans reading planet.debian.org just
doesn't know about my other feeds?
So, dear lazyweb, if you like you can either leave a comment or - even better - subscribe to my all-in-one
RSS feed.
Another possibility would be to rate my blog on
blogoscoop.net.

Anand Kumria
wrote:
If IBM were to go bankrupt, would the government step in? Unlikely. Investors would lose (money), staff — another word for investors — would lose (jobs), but customers would win (their computers would keep working). Some customers would win more than others (especially those who had the equipment on lease); if no one is collecting, why pay?
I’m wondering here where Anand got the idea that once a company went bankrupt, that you don’t need to pay to that company anymore. When a company goes bankrupt, at least in Germany the following happens: A trustee/liquidator is selected. This liquidator is then collecting the information who owes money to the company and who still needs to get (how much) money from it. The liquidator also has to check the option of selling company assets (which might include the contracts of customers that still have to pay) to fulfill the debts of the bankrupt company. After he turned all assets into money, the money is distributed among those who still have to get money from the bankrupt company.
Anyway, regarding his main argument that the (average) customer of a company (bank in this case) should never have to pay for the failed speculations of that company, I somehow have to agree with him. Someone putting money into a regular bank account or papers with fixed interest rate should never lose his money. But there are also customers buying bank shares with a chance of higher revenue than with fixed interest rate papers. These should suffer from failure of the bank management, as they more or less explicitly wanted to be tied to the success (or failure) of the bank.
However, this is mostly irrelevant, since the failure of so many “investment banks” has side affects that might cost the average inhabitant of the affected countries even more than the discussed rescue plans. One of these effects is that the banks are now much more conservative regarding lease and mortgage plans, effectively leaving many home owners with no option to fulfill previous obligations (remaining debt after a previous mortgage expired can’t be refinanced by a new mortgage), causing them to have to sell their homes to pay the first mortgage. This is in some way stupid because this causes people who were perfectly paying their mortgage rates to loose their house, while the bank which would be giving them a new mortgage could get a new and good customer, improving their income. On the other hand, if the other side effects of the current crisis cause those “good” mortgage customers to loose their jobs, they might turn into bad customers who are unable to pay their rates. All in all, this is a spiral that could cause the whole economy to break down (a small example: The bank is not giving out mortgages, so no one will build new houses so the builders loose their jobs so they don’t pay their mortgage rates anymore,…. - over simplified, but still shows what I mean). Unless the spiral is terminated in time, before too drastic things happen.
All in all, I do understand why the politicians try to rescue those banks (or at least the customers of those banks), though I think that in an economy with slightly higher regulation, there wouldn’t be the need for such a rescue plan. I know there are some german banks affected by the crisis as well (among them Hypo Real Estate and others), but the average private customer of such banks shouldn’t loose money due to the regulations we have in place.
In general, there should be some security fund which makes sure that private customers never loose money put into regular bank accounts or fixed interest papers, vice-versa, banks should calculate mortgages so that they can be pretty sure their customers are actually able to pay off their rates - it doesn’t make sense if someone starts off having to pay 500$/month for their mortgage and has to pay over 1000$ a few years (as in 2-3 years) later, because the bank raised the interest that much. I have no problem with people loosing money from shares of banks or other companies directly or indirectly through investment funds.
ELF has two related concepts for managing symbols in your programs.
The first concept is the symbol binding. Global binding
means the symbol is visible outside the file being built; local
binding is the opposite and keeps the symbol local only
(
static) and weak is like global, but suggests that
the symbol can be overridden.
$ cat syms.c
static int local(void)
int global(void)
int __attribute__((weak)) weak(void)
$ gcc -o syms -c syms.c
$ readelf --syms ./syms
Symbol table '.symtab' contains 10 entries:
Num: Value Size Type Bind Vis Ndx Name
...
5: 00000000 8 FUNC LOCAL DEFAULT 1 local
8: 00000008 8 FUNC GLOBAL DEFAULT 1 global
9: 00000010 8 FUNC WEAK DEFAULT 1 weak
...
This is all well and good, but starts breaking down when you want
to load many different modules and keep strict API's (such as, say,
dynamic libraries!).
Consider that for two files to share a common function, the
function must end up with a global visibility.
$ cat file1.c
void common_but_not_part_of_api(void)
$ cat file2.c
extern void common_but_not_part_of_api(void);
void api_function(void)
common_but_not_part_of_api();
$ gcc -shared -fPIC -o library file1.c file2.c
$ readelf --syms ./library
Symbol table '.symtab' contains 60 entries:
Num: Value Size Type Bind Vis Ndx Name
...
53: 00000424 29 FUNC GLOBAL DEFAULT 11 api_function
55: 0000041c 5 FUNC GLOBAL DEFAULT 11 common_but_not_part_of_api
...
In the example above, both the function we want exported
(
api_function) and the function we don't wish exported
(
common_but_not_part_of_api) end up with exactly the same
attributes. Binding attributes are useful for the linker putting
together object files; but aren't a complete solution.
To combat this, ELF provides for visibility attributes.
Symbols can be default, protected, hidden or
internal. Using these attributes, we can flag extra
information for the dynamic loader so it can know which symbols are
for public consumption, and which are for internal use only.
The most logical way to use this is to make all symbols by default
hidden with
-fvisibility=hidden and then "punch holes
in the wall" for those symbols you want visible.
$ cat file1.c
void common_but_not_part_of_api(void)
$ cat file2.c
extern void common_but_not_part_of_api(void);
void __attribute__((visibility("default"))) api_function(void)
common_but_not_part_of_api();
$ gcc -fvisibility=hidden -shared -fPIC -o library file1.c file2.c
$ readelf --syms ./library
Symbol table '.symtab' contains 60 entries:
Num: Value Size Type Bind Vis Ndx Name
48: 000003cc 5 FUNC LOCAL HIDDEN 11 common_but_not_part_of_api
54: 000003d4 29 FUNC GLOBAL DEFAULT 11 api_function
Now the dynamic loader has enough information to distinguish
between the two, and can stop any external access to
common_but_not_part_of_api easily.
This extra information also has potential for performance
improvements. Any time a symbol may be overridden, the compiler must
generate a program lookup table (PLT) entry for the function so
that the dynamic loader can re-direct the function call. The PLT is a
trampoline which gets the correct address of the function being called
(from the global offset table, GOT) and bounces the function
call to the right place. An example should illustrate:

In the first example, there was not enough information to tell if
the function would ever be able to be overridden, hence a PLT entry
had to be created and the function called through it (disassemble it
to see the details!). With correct symbol visibility attributes,
there is enough information to know that
common_but_not_part_of_api is never to be overridden, hence
the PLT (and the associated costs of trampolining) can be avoided.
The internal attribute is even stricter; it says that this
function will never be called from outside this module (for
example, we might pass the address of
common_but_not_part_of_api to anyone). This can lead to even
better code, because on many architectures transitioning to another
module might involve flipping global pointer registers or other
similarly expensive operations.
So that's how symbol binding and visibility attributes can work
together to get you the best performance possible from your
program!
I just watched
an interesting TED.com talk about video games [1]. The talk focussed to a large degree on emotional involvement in games, so it seems likely that there will be many more
virtual girlfriend services [2] (I’m not sure that “game” is the correct term for such things) in the future. The only reference I could find to a virtual boyfriend was a deleted Wikipedia page for V-Boy, but I expect that they will be developed soon enough. I wonder if such a service could be used by astronauts on long missions. An advantage of a virtual SO would be that there is no need to have a partner who is qualified, and if a human couple got divorced on the way to Mars then it could be a really long journey for everyone on the mission.
VR training has been used for a long time in the airline industry (if you have never visited an airline company and sat in a VR trainer for a heavy passenger jet then I strongly recommend that you do it). It seems that there are many other possible uses for this. The current prison system is widely regarded as a training ground for criminals, people who are sent to prison for minor crimes come out as hardened criminals. I wonder if a virtual environment for prisoners could do some good. Instead of prisoners having to deal with other prisoners they could deal with virtual characters who encourage normal social relationships, prisoners who didn’t want to meet other prisoners could be given the option of spending their entire sentence in “solitary confinement” with virtual characters, multi-player games, and Internet access if they behave well. Game systems such as the
Nintendo Wii [3] would result in prisoners getting adequate exercise, so after being released from a VR prison it seems likely that the ex-con would be fitter, healthier, and better able to fit into normal society than most parolees. Finally it seems likely that someone who gets used to spending most all their spare time playing computer games will be less likely to commit crimes.
It seems to me that the potential for the use of virtual environments in schools is very similar to that of prisons, for similar reasons.
Update: Currently Google Adsense is showing picture adverts on this page for the “Shaiya” game, the pictures are of a female character wearing a bikini with the caption “your goddess awaits”. This might be evidence to support my point about virtual girlfriends.
Share This

Yesterday, a small commi tin D-I SVN marked the beginning of the work
on the translation of Debian Installer to Breton.
First French regional language to be worked on (if we except Basque
where the effort mostly comes from South Basque country, namely the
spanish part of "Pays Basque".
There have been discussion about support for Occitan. Some
translations are rotting in Launchpad even though the translators have
been notified that nothing can happen in Ubuntu when the language
isn't first supproted in Debian Installer.
Among the 'major' regional languages in France, we'd need people to
catch up with Alsacian and Corsican as well.... Maybe some day....

You probably noticed by now, that Debian GNU/Linux 5.0 aka
Lenny
hasn't been released in September. Well, that's a shame, but very easy to
explain: Too many
release critical
bugs.
Well, it's pretty hard to estimate, how fast RC bugs will be fixed, and
apparently our release team was a bit too optimistic :(
The big question is: What can you do, to help release
Lenny
at
least in this quarter? That's pretty easy: Fix rc-bugs, take care, that
the fixed packages are migrated to
Lenny
, do upgrade tests, document
problems in the release-notes. Pretty simple, isn't it?
For users
Even as a
simple user
(aren't we all just users?) you may help
getting
Lenny
released. Some things you can do:
- If you are running stable (aka
Etch
), you could consider
upgrading to Lenny
and see, if everything works fine. Currently
there are no detailed release notes documenting the procedure, so you
best way to test upgrades are to:
- Make backups
- Change your /etc/apt/sources.list
- Run aptitude update to get information about new
packages
- Run aptitude install dpkg aptitude apt script to install the
newest package management
- Run script aptitude full-upgrade
- Exit the environment of the script command, by typing
exit
If something goes wrong / something unexpected happens, please report it.
If you already know a specific package, report a bug against that
package. If you don't know, please report a bug describing the problem you experienced to
the upgrade-reports package. If your problem is something,
which can't be fixed properly, but should be documented (e.g. hardware
support regressions, packages no longer available) please report a bug against
the release-notes package (Bonus points if you not only
report the bug, but also supply a paragraph to be added to the release
notes).
The command script will log the entire output of the command in
the file typescript. Should something go wrong during the
upgrade, please send this file along with your bug report.
Update: If you upgraded succesfully, you should report that, too.
There's a template for
upgrade reports, which you can use.
- Speaking of the release notes: You can take a look at the bugs
reported against the release notes and see if
you can help there, e.g. by writing a paragraph describing a problem.
- Install the package devscripts (you'll need
the version provided by backports.org, and run the script
rc-alert --include-dists TU --include-dist-op and. You'll get a list of release
critical bugs open for one of the packages you have installed. Guessing
that you have them installed, because you are using them and are
interested in them, you should have a very high interest to get these bugs
fixed :)
You can try to help, by trying to reproduce them and
reporting that to the bug report. There are even some easy bugs, where
the maintainer hasn't found the time to fix it, yet. Bug 497290 for example didn't
need deep technical skills. It just needed someone with some time to
collect the needed data for the copyright file.
- If you speak a language other than English, you might consider
joining the translation efforts. While it is to late to translate the
debian-installer or the installation guide to a new language for
Lenny
(perhaps for the next release then?), you could start
translating the release notes to a not yet supported language. If you
are willing to do so (which can be quite time consuming, especially in
the final phase), please contact either your localization team or
the debian doc mailing
list if there's no local mailing list.
See? Even as a
simple user
without deeper technical knowledge
you can help us getting
Lenny
in shape to be released. If you have
technical knowledge: Very good! You might want to read the next
section, too, and see what applies to you, there :)
For maintainers
It basically boils down to two things: If your packages have RC bugs
open in
Lenny
fix them and take care, that the fix will propagate to
Lenny
. If your packages don't have RC bugs open, fix someone else's
RC bug. Surely you don't think, the release team will fix the remaining rc
bugs, do you? And surely you understand, that your shiny rc bug free
packages are kind of useless, if they aren't released?
To search for bugs to be fixed, take a look at
the
unofficial rc bugs thingy. The URL lists RC bugs open in both
Sid
and
Lenny
. Obviously they should be fixed ASAP. If no
one takes care about these packages, they might be removed from
Lenny
(if possible).
Again: Try to reproduce the bug, try fix it, upload an NMU (or send
your patch to the bug report and search for an sponsor). You'll notice,
that some of these bugs already have a patch. In that case, your job would
be to test the patch, report that to the bug report and offer to sponsor an
NMU.
Another interesting list is
the
list of rc bugs open only in Lenny
. These bugs have been fixed,
but the fix hasn't propagated to
Lenny
, yet. Normally, the release
team will grant freeze exceptions for these packages if possible.
However, if the changes to the fixed version are quite grave or the package
in
Sid
depends on a newer package than in
Lenny
that's not possible. In these cases look out for packages
marked as
need tpu upload
or similar.
Oh, and if you could refrain from upload new upstream versions of packages to
Sid
, you would make all our lives easier. Some reasons:
- New packages won't reach
Lenny
anyway.
- Upload new packages to
Sid
makes it harder to get a fix into
Lenny
should a new bug be found.
- Uploading a new package makes it harder for other packages depending
on your package to be migrated to
Lenny
.
- You are wasting the buildd's time.
And of course you should spend your time fixing rc bugs anyway ;)
Update: Rhonda pointed out, that running
rc-alert -d TU -o
and will limit the output to bugs open in both
Sid
and
Lenny
, which is the more interesting list of bugs.

Today, an
article at heise online claimed, that Lenny is supposed to ship this year, quoting
Alexander’s blog entry. While I can’t find a single word in Alexander’s article claiming that we’ll release this year, I’m pretty sorry that just after we failed the first deadline which was obviously too “optimistic”, we get another one which is too short.
Two month’s ago I created a pretty simple estimation regarding Lenny’s release by looking at the rc-bugfix-rate of the last two releases and applying them to the current number of rc-bugs. As a result it looked more likely that we release Lenny in
June 2009 than in September 2008. Until now, my guess for Lenny’s release still holds, at least the updated rc-graph lies perfectly on the line I’ve created two months ago.

While I wish that we’ll release Lenny as soon as possible, I hope that someone will clarify the proposed release date to the media and this time with a more defensive deadline. Some people might actually trust our estimation (I know this sounds silly). And even if everyone
knows that Debian notoriously releases too late — we could at least try to propose more realistic dates and update them regularly. Just two weeks ago I still read and heard in the media that Debian will release Lenny in September although it was clear at this point that this is impossible.

Data ordered by entry data is not a data file, and thus not protected by the law regarding personal data files,
because it’s hard to do searches in them. I know it sounds ridiculous, but that’s the argument that the highest court in Spain (
Tribunal Supremo) has used to prevent the Catholic Church from losing believers. Many children are automatically baptisted by their parents when they’re just babies, without having any decision in that, and thus they names are written down in the Church files^Wlists of baptisted people. That’s the numbers they will use later when asking for privileges for the Catholic Church, and that’s why it’s so important for them that all of us are counted as catholics, whether we are or not believers.
Fewer than half of Spanish youth consider themselves Catholic, so it’s important for them to keep appearances to keep their power intact.
In Spain
thousands of non believers are demanding that the Church cancel their baptism records, in order to annul any official connection with Catholicism. And church leaders in turn have gone to the courts to try to stop parishioners deserting. The Tribunal Supremo seems to be taking a political side with their decision trying to vulnerate non-believers rights to artificially promote the Catholic Church.
Apostasy is the formal religious disaffiliation or abandonment or renunciation of one’s religion. The
United Nations Commission on Human Rights, considers the recanting of a person’s religion a
human right legally protected by the
International Covenant on Civil and Political Rights: “The Committee observes that the freedom to ‘have or to adopt’ a religion or belief necessarily entails the freedom to choose a religion or belief, including the right to replace ones current religion or belief with another or to adopt atheistic views […] Article 18.2 bars coercion that would impair the right to have or adopt a religion or belief, including the use of threat of physical force or penal sanctions to compel believers or non-believers to adhere to their religious beliefs and congregations, to recant their religion or belief or to convert.”. Anyway, many religious groups and even some states punish apostates. For Catholics, the word “apostasy” signifies the desertion of faith, which had been one of the three unpardonable sins in the early years of the Church.
AEPD, the national agency for data protection, i
s pondering now whether to appeal against the sentence. I hope they do. There are other legitimate subjects that could appeal against it, too.
No one should be forced to belong to a Church they don’t believe in.
Apologies to anyone bored of this topic but it is something I have been thinking about recently.
You have people commenting on why
Banks are special and need government funded bailouts. Others arguing that the
Free market is not dead.
We have even have a few solutions from some people
within the Free Software community.
I think the first thing is to identify who should lose, and who should win.
- Investors should lose.
- Customers should win.
Much of the annoyance about the
rescue from ordinary people is that it seems that investors are not losing (enough). They took some risks, those gambles failed, and now everyone else is paying the price.
If IBM were to go bankrupt, would the government step in? Unlikely. Investors would lose (money), staff -- another word for investors -- would lose (jobs), but customers would win (their computers would keep working). Some customers would win more than others (especially those who had the equipment on lease); if no one is collecting, why pay?.
So let's apply the same set of outcomes to banks.
- Borrowers would win, since they are living in a mortgaged house.
- Investors lose, since no one will buy their shares (no matter how cheap they are)
- Tax payers win, since they are not rescuing a particular industry sector
But hang on, you rightly ask,
- a bank has the title deed (a mortgage is a promise to pay amount X over Y year in return for the deed)
- why would customers (depositors), realising a bank is no longer viable, since remove their funds
I think that those two issues can be addressed fairly simply. The government would guarantee all depositors money. Customers never lose. They never have to worry about their funds.
For banks, who enter into administration, the standard laws about possession should apply. If a borrower is utilising (living in) the asset to which the bank has title for over Z years (where Z equals 5 or 7), then the possesor now owns it outright. That is plenty of time for a bank to either be bought, have the underlying asset value recalibrated, or to completely go bust.
All without a detrimental effect.

Almost a month ago,
Mauro pointed towards acerfand, a daemon to keep the Acer Aspire One's fan quiet while not needed. Thanks, Mauro, you made my life more pleasant ;-)
Today I had some free time in my hands (of course, putting aside everything else I should be doing), so I decided to un-uglify my machine. I hate having random stuff in /usr/local! So I packaged
Rachel Greenham's acerfand for Debian. It should hit unstable soon.
Of course, it will not make it to Lenny - which is a shame, giving how nicely Lenny recognizes everything in this sweet machine. So, I have set up a repository for it - Once the package is formally accepted in Debian, and once
lenny-backports comes to life there, I will move it to backports.org. Anyway, you can add this to your
/etc/apt/sources.list:
deb http://www.iiec.unam.mx/apt/ lenny acer
deb-src http://www.iiec.unam.mx/apt/ lenny acer
Note that in the future, this package might provide some more niceties... I decided to -at least for now- stash away
acer_ec in /usr/share/acerfand, but it does open a nice window to the AAO's EC(?) registers... And could be useful for many other things.

(long post, you've been warned)
With his
his 'Omelette Post' about FOSS.IN/2008 Call for Participation, Atul Chitnis, the
FOSS.IN team 'leader' indeed sent an strong sign.
For those who aren't aware of it, FOSS.IN is the longstanding major FLOSS event in India and, still (just like our beloved Debconf) only run by volunteers.
Last year, along with Sam Hocevar, I had the chance to attend the event and share the groove of that big, huge, conference, with over 2,000 participants.
Some other Debian fellows also made it in the past (Jaldhar, Bdale...).
During the Debian Project Day as well as regular conference days, we
had the great opportunity to meet with the people who currently
participate in Debian (and Ubuntu) in South Asia, as well as first
meeting some major contributors from other projects. For me, and, I
think, of all people I met up there, this was a great *and
productive* event.
Maybe not productive at the moment it happened, but productive in terms of mutual awareness, knowledge and friendship. All people who attended such conferences (should I say "Debconf" or "FOSDEM"?) know what I'm talking about.
The conference was still quite focused on "real" FLOSS contribution more than evangelizing or politics. And I think it succeeded in it quite well.
This year, I already planned to not attend...mostly because such event, with the associated long travel time, is something I can't really fit in my real life right now. Also, because it conflicts with a planned Extremadura work session, indeed.
Still, I would indeed not have attended it.
Atul's post makes it clear: the even will only be about coding. The point is to put focus on people who code and we do 'real' code. Bug fixing is not coding. Translation effort is not coding. Work on support for complex languages is not coding.
Actually, what FOSS.IN/2008 organizers are trying to do is a kind of big Debcamp. I'm afraid it won't work this way.
From what I have seen in years of participation to Debian, things just don't come up this way. People don't sit down and code because they're invited to. And, still, are only "people who code" the only people that matter in a project?
Debian is sometimes seen as one of the biggest FLOSS projects all around (probably shared with the Linux kernel). How many people in Debian just "sit down and code"? What about those people who maintain our web site, our archive, setup our infrastructure, our new maintainer queue, our communication channels? What about those dozens of people who nicely maintain packages and keep the link with upstream developers, or fix bugs.... Those people do not seem welcomed at FOSS.IN/2008.
"Not only bug fixing" is said in this announcement. This, I don't get it. At all. Why would "bug fixing" be second class work? Why would it be more noble to "code" new stuff? Maybe Atul did not mean to say this. He wants to have Indian contributors in FLOSS to be more visible....but I don't share this. Indian contributors in Debian *are* visible. Giridhar Appaji Nag is visible, "my" translator crew is visible, Kartik Mistry is visible (he once was too visible, even, by maintaining a little bit too many packages...).
Bug fixing is the most noble task I see in FLOSS development. This is what we need the most. I recently blogged about how I feel APT to be 'poorly' maintained (once again, that was not targeted to current APT maintainers). What I would respect deeply is to see a bunch of Indian contributors stand up and take this task over. Atul, that would certainly not be "outsourcing code/package maintenance" and, no, these are not things one can get involved with instantly.
Really, I don't buy this vision and that saddens me. That saddens me mostly because I know the folks there. I know the FOSS.IN organizers and I have deep respect for them. I just think they're missing the target and are too ambitious: one cannot change an event so drastically by just saying it has to change..:-)
And, really, I'm even more sad to see localization work be called a
low-hanging fruit from a country where there are 22 official
languages. Or take words such as "talk is cheap, show me the code" as
$ DEITY 's Holy Word just because it was once said by Linus Torvalds
(who said many stupid things). Code is just one part of FLOSS
development. Certainly one of the important parts but still one part. What would have happened to FLOSS if only "coders" had been working on it all over those years? It would be something used by about 10,000 people all around the world, that's all.
We should not make an opposition between those who code and those who don't. By the way, do *I* code? When I'm sitting at 07:00AM on a Saturday morning, hacking on Samba packages and try to have Samba 3.2.4 built with the set of patches we have on Debian....do I code? I'm not *producing* code....the code was produced by those wonderful Samba Team folks.
Does Karolin Seeger code
when she's releasing samba with such a precise and constant schedule as she's doing since early 2008?
Or Ana Guerrero when
she (not alone!) compiles dozens of KDE packages and organizes and bumps the maintenance of KDE in Debian for the best of our users.
Or Miriam Ruiz when
she picks up each and every possible free game and tries to get it in Debian, talks with upstream developers, help them to fiw their code to suit the severe requirements of the Debian policy?
Or Clytie Siddall when she translates about every major FLOSS in Vietnamese (nor URL here, sorry)?
All these folks are part of the FLOSS game. You want Indians to be part of FLOSS game? Then allow the potential Karolin, Ana, Miriam or Clytie to be part of Indian FLOSS game and don't try to make FOSS.in the place where you seek the future Indian Linus Torvalds and only him her.
Talk is cheap, show me the contribution.
A comment on Facebook yesterday got me thinking what American "traditional values" are all about. We hear it a lot, and I suspect it means something different to different people.
Here's what it means to me.
It starts with an ethic fundamentally informed by the central tenets of Christianity -- which are also excellent standards of decency by secular standards. We are called to have a relentless drive to care for the repressed, poor, downtrodden. As Jesus said, "whatever you do to the least of these, so you do to me." It means extending the hand of friendship and compassion to all, in our own neighborhood and around the world. It means taking good care of the resources we have, acting responsibly, and affirming and supporting others so they can do the same. It means that, as our founding fathers emphasized, remembering that all people are created equal, are equally deserving of a good life, and deserve liberty and freedom. Finally, it means a constant realization that we are creating a human institution, and will always have an imperfect answer to these ideals, but that we can -- and must -- recognize our faults and strive to make things better.
How do these apply to our time?
We must start with the poor, the repressed, and habitually think of their situation in everything we do. That means remembering that when we drop a bomb in Afghanistan to kill a terrorist, we also usually kill 50 innocent bystanders, and devastate their families. It means remembering that illegal immigrants from Mexico come here because all they want is refuge from drug wars, food on the table, and a roof over their head. It means showing compassion in deportation proceedings: when illegal immigrant parents have a child born in the United States, the child is an American citizen and can't be deported, but deporting the parents will create an orphan. It means actively helping the repressed people of the world, whether they be in Sudan, Georgia, or AIDS victims in Africa, Muslims in New York. It means reducing taxes on the poor, giving them the skills and tools they need to make their way in life. It means caring for those with alcohol drug addictions, helping them to summon the strength to get past those problems, rather than locking them up or throwing them out on the street. In days past, this might have meant sharing firewood with the family down the road that was at risk of freezing in winter. Today it might mean assistance with winter heating bills.
Remembering that all people are created equal means that we must provide good education for everyone, whether they live in suburban California, inner city Detroit, or rural Appalachia. We owe quality health care to everyone; those without means to pay for health care, or to pay for a car to get to a clinic, should be treated with dignity and respect, and have equal access to medicine.
Remembering that all people are created equal also means that we must provide equal justice under law, and give everyone a fair trail. We must abandon the death penalty, because we have a shocking number of people on death row -- hugely disproportionately black and poor -- that have been shown innocent of their crimes thanks to advances in DNA testing. We must maintain the integrity of checks and balances in government, and support judicial oversight over search and seizure. We must avoid warrantless wiretapping because it subverts judicial oversight and corrupts our justice system by making the exercise of power secret. We must denounce torture, and refuse to employ it, because no human, being created equal, deserves to be treated in such a way -- and we have been applying it to innocent humans.
We owe the opportunity to grow up in a loving family, in a safe community, to every child. We must make sure that gangs no longer have the run of our streets, that drugs aren't displacing hard work as the currency of the community, and that adoption is inexpensive and practical for more families, rather than costing thousands of dollars. Doing so will help every child grow up knowing that they are valued, are important, rather than being unwanted and therefore abused or neglected.
Extending the hand of friendship and compassion to all starts with being a good example -- that shining city on a hill that Reagan talked about. We have to run an open, just, and fair society ourselves. We must not fear those that are different than us, just because they're different. We have to recognize that citizens of Iran, Russia, North Korea, Palestine, and the United States fundamentally are humans, created equal, seeking the same thing: a safe and secure future for themselves and their families. Being able to coexist peacefully means starting from that point, and being willing to talk to them, and yes, even their leaders, regardless of how distasteful they may be.
Acting responsibly with our resources starts at home -- things like not driving up credit card debt, not living outside our means. The same applies to government: massive deficits each year are exceptionally irresponsible and place us at great risk both at the present and in the future. We also have a duty to care for the planet and the environment in which we live, which means actively working to curb the things we do to harm the planet and cause global warming.
What about recognizing our faults? Perhaps the most patriotic duty asked of Americans is dissent. It is never easy, but is essential to keeping our democracy functioning. This country has a long history of successes, and also a long history of failures. We failed so many by keeping slavery legal for so long, and discrimination and lynching legal for even longer. We failed that Native Americans by forcing them from their lands and treating them with brutality. We have, to some extent, risen above these failures thanks to the ability to recognize them and try, to the best of our ability, to fix them. This is what the civil rights movement was about, and why we have a holiday for Martin Luther King, Jr. He spoke out against a society that said some couldn't eat in a restaurant because of the color of their skin, or who were repressed because of their economic status. He recognized that problem in America, and by speaking out against it, helped to change this country for the better.
Today we have to recognize the things we are doing wrong, and try to change them. We are torturing potentially innocent people. We are discriminating against Muslims and homosexuals in our midst. We are giving extraordinary power to big media companies through changes in copyright law, to big communications companies through failure to enact network neutrality laws. And we are labeling people that disagree with war as unpatriotic.
Notice some things I didn't mention, such as abortion. It's not really relevant, and the lines we are fed by both sides present us with this false pro choice vs. pro life debate. In reality, it seems to me that both sides want the best for the children: for every child to grow up in a loving family, where he or she is wanted. We all know from research that laws banning abortion do not actually reduce it. So we ought all to come together and try to make it more rare by providing more support to single parents, by making it easier to adopt children, by trying to make the perceived need for an abortion to go away.
So, in this election, I look at the candidates and it seems pretty clear which one is promoting traditional values and which one isn't. Obama is actively trying to reach across the aisle and find common ground. Even in his convention speech, he suggested ways to work together on abortion like I just mentioned. In the debate, he listened carefully to his opponent and acknowledged when he thought McCain was right. This is a necessary first step in working together to move forward. McCain subsequently released an ad mocking Obama for this.
What about caring for the poor? Again, Obama's tax policies, education policies, and health care policies take care of them far better than McCain's. About responsibility? McCain supported these deficit-busting budgets of the last 6 years, supported the oil-centric energy policies, and has been only lukewarm towards dealing with global warming. McCain and Palin mock Obama for trying to help poor Chicago neighborhoods 20 years ago, for being willing to just talk to our supposed enemies, for actually reaching across the aisle.
So yes, I am a values voter, and that's why I can't possibly do anything but vote for Obama.
Currently we have a problem with the Debian list server and Gmail. Gmail signs all mail that it sends with both DKIM and DomainKeys (DomainKeys has been obsoleted by DKIM so most mail servers implement only one of the two standards although apart from space there is no reason not to use both). The Debian list servers change the message body without removing the signatures, and therefore send out mail with invalid signatures.
DKIM has an option to specify the length of the body part that it signs. If that option is used then an intermediate system can append data to the body without breaking the signature. This could be bad if a hostile party could intercept messages and append something damaging, but has the advantage that mailing list footers will not affect the signature. Of course if the list server modifies the Subject to include the list name in brackets at the start of the subject line then it will still break the signature. However Gmail is configured to not use the length field, and a Gmail user has no option to change this (AFAIK - if anyone knows how to make Gmail use the DKIM length field for their own account then please let me know).
I believe that the ideal functionality of a sending mail server would be to have the configuration of it’s DKIM milter allow specifying which addresses should have the length field used. For example I would like to have all mail sent to an address matching @lists\. have the length field used (as well as some other list servers that don’t match that naming scheme), and I would also like to be able to specify which recipient addresses should have no DKIM signatures (for example list servers that modify the subject line). I have filed
Debian bug #500967 against the dkim-filter package requesting this feature [1].
For correct operation of a list server, the minimal functionality is implemented in the Mailman package in Lenny. That is to strip off DKIM and DomainKey signatures. The ideal functionality of a list server would be that for lists that are not configured to modify the Subject line it would leave a DKIM header that uses the length field and otherwise remove the DKIM header.
I have filed Debian bug #500965 against lists.debian.org requesting that the configuration be changed to strip the headers in question in a similar manner [2] (the Debian list servers appear to use SmartList - I have not checked whether the latest version of SmartList does the right thing in this regard - if not it deserves another bug report).
I have also filed Debian bug report #500966 requesting that the list servers sign all outbound mail with DKIM [3]. I believe that protecting the integrity of the Debian mail infrastructure is important, preventing forged mail is a good thing, and that the small amount of CPU time needed for this is worth the effort.
Also the Debian project is in a position of leadership in the community. We should adopt new technologies that benefit society first to help encourage others to do the same and also to help find and fix bugs.
Share This
There is a lot of discussion and speculation about The Singularity. The term seems to be defined by
Ray Kurzweil’s book “The Singularity Is Near” [1] which focuses on a near-future technological singularity defined by significant increases in medical science (life extension and methods to increase mental capacity) and an accelerating rate of scientific advance.
In popular culture the idea that there will only be one singularity seems to be well accepted, so the discussion is based on when it will happen. One of the definitions for a singularity is that it is a set of events that change society in significant ways such that predictions are impossible - based on the concept of the
Gravitational Singularity (black hole) [2]. Science fiction abounds with stories about what happens after someone enters a black hole, so the concept of a singularity not being a single event (sic) is not unknown, but it seems to me that based on our knowledge of science no-one considers there to be a black hole with multiple singularities - not even when confusing the event horizon with the singularity.
If we consider a singularity to merely consist of a significant technological change (or set of changes) that change society in ways that could not have been predicted (not merely changes that were not predicted) then it seems that there have been several already, here are the ones that seem to be likely candidates:
0) The development of speech was a significant change for our species (and a significant change OF our species). Maybe we should consider that to be singularity 0 as hominids that can’t speak probably can’t be considered human.
1) The adoption of significant tool use and training children in making and using tools (as opposed to just letting them learn by observation) made a significant change to human society. I don’t think that with the knowledge available to bands of humans without tools it would have been possible to imagine that making stone axes and spears would enable them to dominate the environment and immediately become the top of the food chain. In fact as pre-tool hominids were generally not near the top of the food chain they probably would have had difficulty imagining being rulers of the world. I’m sure that it led to an immediate arms race too.
2) The development of agriculture was a significant change to society that seems to have greatly exceeded the expectations that anyone could have had at the time. I’m sure that people started farming as merely a way of ensuring that the next time they migrated to an area there was food available (just sowing seeds along traditional migration routes for a hunter-gatherer existence). They could not have expected that the result would be a significant increase in the ability to support children and a significant increase in the number of people who could be sustained by a given land area, massive population growth, new political structures to deal with greater population density, and then wiping out hunter-gatherer societies in surrounding regions. It seems likely to me that the mental processes needed to predict the actions of a domestic animal (in terms of making it a friend, worker, or docile source of food) differ from those needed to predict the actions of other humans (who’s mental processes are similar) and from those needed to predict the actions of prey that is being hunted (you only need to understand enough to kill it).
3) The invention of writing allowed the creation of larger empires through better administration. All manner of scientific and political development was permitted by writing.
4)
The work of Louis Pasteur sparked a significant development in biology which led to much greater medical technology [3]. This permitted much greater population densities (both in cities and in armies) without the the limitation of significant disease problems. It seems that among other things the world-wars depended on developments in preventing disease which were linked to Louis’ work. Large populations densely congregated in urban areas permit larger universities and a better exchange of knowledge which permitted further significant developments in technology. It seems unlikely that a population suffering the health problems that were common in 1850 could have simultaneously supported large-scale industrial warfare and major research projects such as the Manhattan Project.
5) The latest significant change in society has been the development of the Internet and mobile phones. Mobile phones were fairly obvious in concept, but have made structural changes to society. For example
I doubt that hand-writing is going to be needed to any great extent in the future [4], the traditional letter has disappeared, and “Dates” are now based on “I’ll call your mobile when I’m in the area” instead of meeting at a precise time - but this is the trivial stuff. Scientific development and education have dramatically increased due to using the Internet and business now moves a lot faster due to mobile phones. It seems that nowadays any young person who doesn’t want to be single and unemployed needs to have either a mobile phone or Internet access - and preferably both. When mobile phones were first released I never expected that almost everyone would feel compelled to have one, and when I first started using the Internet in 1992 I never expected it to have the rich collaborative environment of Wikipedia, blogging, social networking, etc (I didn’t imagine anything much more advanced than file exchange and email).
Of these changes the latest (Internet and mobile phones) seems at first glance to be the least significant - but let’s not forget that it’s still an ongoing process. The other changes became standard parts of society long ago. So it seems that we could count as many as six singularities, but it seems that even the most conservative count would have three singularities (tool use, agriculture, and writing).
It seems to me that the major factors for a singularity are an increased population density (through couples being able to support more children, through medical technology extending the life expectancy, through greater food supplies permitting more people to live in an area, or through social structures which manage the disputes that arise when there is a great population density) and increased mental abilities (which includes better education and communication). Research into education methods is continuing, so even without genetically modified humans, surgically connecting computers to human brains, or AI we can expect intelligent beings with a significant incremental advance over current humans in the near future. Communications technology is continually being improved, with some significant advances in the user-interfaces. Even if we don’t get surgically attached communications devices giving something similar to “telepathy” (which is not far from current technology), there are possibilities for significant increments in communication ability through 3D video-conferencing, better time management of communication (inappropriate instant communication destroys productivity), and increased communication skills (they really should replace some of the time-filler subjects at high-school with something useful like how to write effective diagrams).
It seems to me that going from the current situation of something significantly less than one billion people with current (poor) education and limited communications access (which most people don’t know how to use properly) to six billion people with devices that are more user-friendly and powerful than today’s computers and mobile phones combined with better education as to how to use them has the potential to increase the overall rate of scientific development by more than an order of magnitude. This in itself might comprise a singularity depending on the criteria you use to assess it. Of course that would take at least a generation to implement, a significant advance in medical technology or AI could bring about a singularity much sooner.
But I feel safe in predicting that people who expect the world to remain as it is forever will be proven wrong yet again, and I also feel safe in predicting that most of them will still be alive to see it.
I believe that we will have a technological singularity (which will be nothing like the “rapture” which was invented by some of the most imaginative interpretations of the bible). I don’t believe that it will be the final singularity unless we happen to make our species extinct (in which case there will most likely be another species to take over the Earth and have it’s own singularities).
Share This