| Series: | League of Peoples #2 |
| Publisher: | Eos |
| Copyright: | April 1998 |
| ISBN: | 0-380-79827-1 |
| Format: | Mass market |
| Pages: | 343 |
Last year, I invited you all to walk the plank with me, to follow me on a road, a road that even I was unsure where it led. I had a vision, I had ideas, but I had little to show for a plan. Even worse, some of my ideas, some of the things I've thought I knew, turned out to be wrong this past year. While my original plan was to pursue the goals I set out in my previous platform, I did none of that, and before I get to the meat of the platform, I owe you an explanation why: After walking the plank last year, I spent some time swimming to the shore, determined that no matter what, I will get things done. But how shall I do that? And when, with whom? Those questions needed an answer, therefore I took on a coat of an ordinary hacker, and started a journey to find the answers.That is how the past year's been spent: looking and learning. I was - and still am - following every major Debian list, I'm on IRC, absorbing all the information that fits into my tiny mind. I see now, that there's a lot more to be done than I thought last year, that some of the assumptions I made then, were wrong. And having spent a long time learning, it is my hope, that I did learn, and that this time, the plans I came up with will serve the same goal I had last year, better.That goal is as simple as growing Debian from a community of mostly technical folk to something much bigger, a community of enthusiastic, bright-eyed people who all want to do their part of making the world a better place. Big words, big task.The problemOne of the most fundamental problems with the project is that it is old, and hasn't grown up yet. We're still very focused on technical merit - don't get me wrong, that is important too, but there's much more we can do than that! We have tremendous amounts of talent, but pretty much every team is suffering from lack of people, and we seem to be slow and ineffective in recruiting new contributors (either from within the project, or outside of it), and even worse at keeping them motivated. This is not new, I worried about it last year, and I'm not the only one to see things this way, respectable members of the project expressed their pessimism publicly too.This is our biggest issue. We can be excellent at the technical level, but not being able to keep people motivated, failing to find new contributors is hurting us more and more, and it is my firm belief that without quick improvement in these areas, it won't be just me virtually walking the plank.On the flip side, we have every tool in our possession to steer ourselves into a better, brighter direction. We have excellent hackers, we have people who are terrific at communication, we have people who inspire others (just see the pattern on the dpl-game!), we have everything we need. Read on then, dear reader, and see my plan!Dancing on a tightropeTo tread on a path we have not taken so consciously before, we need to have a vision to strive for. A vision for the project as a whole, and a vision for ourselves, to see where we'd like to be a few years from now.As Stefano put it so well in his platform last year, Debian is a very unique member of the larger Free Software ecosystem - go and read his description, it can hardly be written better. This is the same vision I share, where Debian grows up to be much more than hundreds of talented people putting together a distribution. I want to see Debian becoming more than that, something that attracts not only the technical geniuses, but those who wield the power of speech and inspiration too, for these traits rarely go together.I envision a project, where people recognise each other's strengths, and make use of these strengths; where we can - and will - turn to each other, and work closely together, to achieve such good balance of skills of all kinds, as we already achieved in creating and maintaining the distribution itself.Let's dance!But alas, a vision is useless without a plan. That is a mistake I made last year, one that I will not repeat again. The approaches I choose may seem strange, or weird at first, but rest assured, they were carefully considered, and most of them tried out in a smaller setting.
CommunicationWhat I've seen and experienced over the past year (and thinking back, far more than that - I just didn't know where to put the experience at that time) is that written communication is rarely the best medium to reach out to people. In this age we live in, written text reaches those who were already curious, it rarely reaches those who're still waiting for enlightenment. And even if it does, more often than not, there is no direct channel between the writer and the reader, which hurts not only the latency of the communication, but the quality too. Not to mention, that - however sad it may sound - the recipient is often too shy to engage.What does help, is face to face time. Events, where we can reach out to people, and receive immediate feedback, where we can notice the shy ones, and help them. Where we can immediately adapt to expectations.For this reason, I feel it necessary to encourage and help local teams in every possible way, to organise hackfests, code retreats, and all kinds of events that they feel will attract the bright-eyed youth (be them 20 or 80, it's the spirit that counts) we so direly need. These events need not be technical at all: a session about Debian publicity, about representing the project in press or on conferences is just as useful (if not more). Along with hackfests, we could - and should - have events focused on improving communication, for that is just as important.With strong focus placed on non-technical matters, I believe we can step on a path of rapid progress: my experience shows that techies and non-techies can inspire one another very well, much more than two techies would. With a focus on areas we are lacking in, we are indirectly improving those we are already good at.
Inspiration & motivationBut finding new contributors, be them technically-sawwy or not is only part of the task, and the easier one too. It is much harder to keep people interested and motivated over a long period of time, than to find them once.On one hand, I would like to rely on those members of our community, who we all hold in high esteem (including, but not limited to those mentioned during the dpl-game). They know what keeps them going, they know what drives them away, we need to learn from that. I'd like to hear them speak more often, on conferences, if possible, as they are, I believe, a much more credible source than any elected official, at least in some situations.I'd also like to hear everyone's voice, from old members to the newest ones, I'd like to read - and if so need be, conduct - interviews with people who recently became Debian Developers, to hear about their experience, to learn what they think is good or bad, because a fresh view is just as important as a decade long experience.On the other hand, we need to act on the issues discovered too. We already know that quite a lot of trouble stems from lack of time, overburden and eventually burn out. We know the solution to this: recruit more people, and utilise the resources we do have better. Part of that can be solved by expanding our numbers, but for the other part, we may need deeper changes. What those may be, I cannot tell yet, there simply wasn't enough time to dig deeper, and I'm likely not the best person to undertake the task, either. I am, however, confident that we'll discover the solution as we travel along.The first step is gaining knowledge, without this, no further plans can be made.
RecruitmentI already touched the recruitment part earlier, at least the how of the approach. What I'd like to expand on is the why, in particular: why encourage recruiting non-packaging contributors, when we are building a distribution, and we're lacking packaging manpower too?Let me answer those questions separately.First of all, I still like to think - but perhaps I am wrong - that we have an unbelievable amount of packaging manpower, which we fail to use to its full extent. We can use more, we always will be able to. But it also helps if we manage to put our existing resources to better use.And that is where non-packaging contributions come in. If we improve our skills in areas we're lacking in, that in turn, will improve the general quality of the project, which in turns improves morale, and a vibrant, well functioning, welcoming community attracts even more people, and keeps us motivated in the long run too.Mouse on the tightropeWith all that out, you may be wondering who I may be, and why you have not seen my name over the mailing lists in recent years. I'm not a terribly vocal person anymore, not a hot-headed teen I used to be some ten years ago. Most who know me, know me by my online nick name, algernon, and in most cases, I prefer that in real life too, for silly reasons I'd rather not dive into (but the primary one being that people have a hard time correctly pronouncing my name, and I have a hard time recognising my name unless pronounced the way I learnt it). Nevertheless, my name is Gergely Nagy, and I'm a recovering hacker, who intends to become a bachelor of (hungarian) arts, by majoring in Hungarian grammar & literature sometime in the next three to five years.Over the course of the past year, I also strived to observe and learn from exceptional leaders at my day job, because there, I have the advantage of meeting with them face to face, to interact with them on a daily basis. Fortunately for me, there are people among them from whom I learned a great deal about not only motivation, but about behind-the-scenes politics too - both a valuable lesson.And while I still have a tremendous amount of things to learn, I like to believe that I can do that. I know I can learn technical things extremely quickly (my day job depends on that, I would be out of a job if I failed at that), I'm positive that I can do the same in other areas as well, at least as long as it doesn't involve extreme amounts of economics. That proved to be a major barrier in the past.But back to the more important point: my organising, presentation and leading skills. I'm a co-organiser of the Budapest Clojure User Group meetups, I started to encourage GSoC participation at my day job last year (we participated thanks to OpenSUSE who gave us a slot), and I'm driving it this year, aiming to become a mentoring organisation of our own. I'm doing regular talks and presentations, participate in code retreats, meetups and other similar events where I can both practice and learn the art of interacting with people, and the fine art of organising events.
Last year, I invited you all to walk the plank with me, to follow me on a road, a road that even I was unsure where it led. I had a vision, I had ideas, but I had little to show for a plan. Even worse, some of my ideas, some of the things I've thought I knew, turned out to be wrong this past year. While my original plan was to pursue the goals I set out in my previous platform, I did none of that, and before I get to the meat of the platform, I owe you an explanation why: After walking the plank last year, I spent some time swimming to the shore, determined that no matter what, I will get things done. But how shall I do that? And when, with whom? Those questions needed an answer, therefore I took on a coat of an ordinary hacker, and started a journey to find the answers.That is how the past year's been spent: looking and learning. I was - and still am - following every major Debian list, I'm on IRC, absorbing all the information that fits into my tiny mind. I see now, that there's a lot more to be done than I thought last year, that some of the assumptions I made then, were wrong. And having spent a long time learning, it is my hope, that I did learn, and that this time, the plans I came up with will serve the same goal I had last year, better.That goal is as simple as growing Debian from a community of mostly technical folk to something much bigger, a community of enthusiastic, bright-eyed people who all want to do their part of making the world a better place. Big words, big task.The problemOne of the most fundamental problems with the project is that it is old, and hasn't grown up yet. We're still very focused on technical merit - don't get me wrong, that is important too, but there's much more we can do than that! We have tremendous amounts of talent, but pretty much every team is suffering from lack of people, and we seem to be slow and ineffective in recruiting new contributors (either from within the project, or outside of it), and even worse at keeping them motivated. This is not new, I worried about it last year, and I'm not the only one to see things this way, respectable members of the project expressed their pessimism publicly too.This is our biggest issue. We can be excellent at the technical level, but not being able to keep people motivated, failing to find new contributors is hurting us more and more, and it is my firm belief that without quick improvement in these areas, it won't be just me virtually walking the plank.On the flip side, we have every tool in our possession to steer ourselves into a better, brighter direction. We have excellent hackers, we have people who are terrific at communication, we have people who inspire others (just see the pattern on the dpl-game!), we have everything we need. Read on then, dear reader, and see my plan!Dancing on a tightropeTo tread on a path we have not taken so consciously before, we need to have a vision to strive for. A vision for the project as a whole, and a vision for ourselves, to see where we'd like to be a few years from now.As Stefano put it so well in his platform last year, Debian is a very unique member of the larger Free Software ecosystem - go and read his description, it can hardly be written better. This is the same vision I share, where Debian grows up to be much more than hundreds of talented people putting together a distribution. I want to see Debian becoming more than that, something that attracts not only the technical geniuses, but those who wield the power of speech and inspiration too, for these traits rarely go together.I envision a project, where people recognise each other's strengths, and make use of these strengths; where we can - and will - turn to each other, and work closely together, to achieve such good balance of skills of all kinds, as we already achieved in creating and maintaining the distribution itself.Let's dance!But alas, a vision is useless without a plan. That is a mistake I made last year, one that I will not repeat again. The approaches I choose may seem strange, or weird at first, but rest assured, they were carefully considered, and most of them tried out in a smaller setting.
CommunicationWhat I've seen and experienced over the past year (and thinking back, far more than that - I just didn't know where to put the experience at that time) is that written communication is rarely the best medium to reach out to people. In this age we live in, written text reaches those who were already curious, it rarely reaches those who're still waiting for enlightenment. And even if it does, more often than not, there is no direct channel between the writer and the reader, which hurts not only the latency of the communication, but the quality too. Not to mention, that - however sad it may sound - the recipient is often too shy to engage.What does help, is face to face time. Events, where we can reach out to people, and receive immediate feedback, where we can notice the shy ones, and help them. Where we can immediately adapt to expectations.For this reason, I feel it necessary to encourage and help local teams in every possible way, to organise hackfests, code retreats, and all kinds of events that they feel will attract the bright-eyed youth (be them 20 or 80, it's the spirit that counts) we so direly need. These events need not be technical at all: a session about Debian publicity, about representing the project in press or on conferences is just as useful (if not more). Along with hackfests, we could - and should - have events focused on improving communication, for that is just as important.With strong focus placed on non-technical matters, I believe we can step on a path of rapid progress: my experience shows that techies and non-techies can inspire one another very well, much more than two techies would. With a focus on areas we are lacking in, we are indirectly improving those we are already good at.
Inspiration & motivationBut finding new contributors, be them technically-sawwy or not is only part of the task, and the easier one too. It is much harder to keep people interested and motivated over a long period of time, than to find them once.On one hand, I would like to rely on those members of our community, who we all hold in high esteem (including, but not limited to those mentioned during the dpl-game). They know what keeps them going, they know what drives them away, we need to learn from that. I'd like to hear them speak more often, on conferences, if possible, as they are, I believe, a much more credible source than any elected official, at least in some situations.I'd also like to hear everyone's voice, from old members to the newest ones, I'd like to read - and if so need be, conduct - interviews with people who recently became Debian Developers, to hear about their experience, to learn what they think is good or bad, because a fresh view is just as important as a decade long experience.On the other hand, we need to act on the issues discovered too. We already know that quite a lot of trouble stems from lack of time, overburden and eventually burn out. We know the solution to this: recruit more people, and utilise the resources we do have better. Part of that can be solved by expanding our numbers, but for the other part, we may need deeper changes. What those may be, I cannot tell yet, there simply wasn't enough time to dig deeper, and I'm likely not the best person to undertake the task, either. I am, however, confident that we'll discover the solution as we travel along.The first step is gaining knowledge, without this, no further plans can be made.
RecruitmentI already touched the recruitment part earlier, at least the how of the approach. What I'd like to expand on is the why, in particular: why encourage recruiting non-packaging contributors, when we are building a distribution, and we're lacking packaging manpower too?Let me answer those questions separately.First of all, I still like to think - but perhaps I am wrong - that we have an unbelievable amount of packaging manpower, which we fail to use to its full extent. We can use more, we always will be able to. But it also helps if we manage to put our existing resources to better use.And that is where non-packaging contributions come in. If we improve our skills in areas we're lacking in, that in turn, will improve the general quality of the project, which in turns improves morale, and a vibrant, well functioning, welcoming community attracts even more people, and keeps us motivated in the long run too.Mouse on the tightropeWith all that out, you may be wondering who I may be, and why you have not seen my name over the mailing lists in recent years. I'm not a terribly vocal person anymore, not a hot-headed teen I used to be some ten years ago. Most who know me, know me by my online nick name, algernon, and in most cases, I prefer that in real life too, for silly reasons I'd rather not dive into (but the primary one being that people have a hard time correctly pronouncing my name, and I have a hard time recognising my name unless pronounced the way I learnt it). Nevertheless, my name is Gergely Nagy, and I'm a recovering hacker, who intends to become a bachelor of (hungarian) arts, by majoring in Hungarian grammar & literature sometime in the next three to five years.Over the course of the past year, I also strived to observe and learn from exceptional leaders at my day job, because there, I have the advantage of meeting with them face to face, to interact with them on a daily basis. Fortunately for me, there are people among them from whom I learned a great deal about not only motivation, but about behind-the-scenes politics too - both a valuable lesson.And while I still have a tremendous amount of things to learn, I like to believe that I can do that. I know I can learn technical things extremely quickly (my day job depends on that, I would be out of a job if I failed at that), I'm positive that I can do the same in other areas as well, at least as long as it doesn't involve extreme amounts of economics. That proved to be a major barrier in the past.But back to the more important point: my organising, presentation and leading skills. I'm a co-organiser of the Budapest Clojure User Group meetups, I started to encourage GSoC participation at my day job last year (we participated thanks to OpenSUSE who gave us a slot), and I'm driving it this year, aiming to become a mentoring organisation of our own. I'm doing regular talks and presentations, participate in code retreats, meetups and other similar events where I can both practice and learn the art of interacting with people, and the fine art of organising events.
Partially because of Markdown being Github s markup format of choice,
I enjoy writing documents in simple markup formats more and more.
There s though one common annoyance with these formats compared to
writing plain HTML
The Annoyance
They need to be rendered (i.e. more or less compiled) before you can
view your outpourings rendered, e.g. in the web browser. So the
workflow usually is:
C-c C-c p. But for
some reason this takes several seconds, opens a new buffer
and window with the rendered HTML code and then starts
(hardcoded) Firefox (which is not my preferred web browser). And if you do that a
second time without closing Firefox first, it won t just reload the
file but will open a new tab. You might think that just hitting reload
should suffice. But no, the new tab has a different file name, so
reload doesn t help. Additionally it may not use my preferred Markdown
implementation. Meh.
Well, I probably could fix all those issues with Markdown Mode, it s
only Emacs Lisp. Heck, the called command is even configurable. But
fixing at least four issues to fix one workflow annoyance? Maybe some
other time, but not as long there are other nice choices
Using inotifywait to Render on Write
So everytime you save the currently edited file, you immediately want
to rerender the same HTML file from it. This can be easily automated
by using Linux inotify kernel subsystem which notices changes to the
filesystem, and reports those to applications which ask for it.
One such tool is inotifywait which can either output all
or just specific events, or just exit if the first requested event
occurs. With the latter it s easy to write a while loop on the
commandline which regenerates a file after every write access. I use
either Pandoc or Asciidoc for that since both generate full HTML pages
including header and footer, but you can use that also with Markdown
to render just the HTML body. Most browsers render it correctly
anyway:
while inotifywait -q -e modify index.md; do pandoc -s -f markdown -t html -o index.html index.md; done while inotifywait -q -e modify index.txt; do asciidoc index.txt; done while inotifywait -q -e modify index.md; do markdown index.md > index.html; doneThis solution is even editor- and build-system-agnostic (But not operating-system-agnostic.) inotifywait is part of inotify-tools, a useful set of commandline tools to interface with inotify. They re packaged in Debian as inotify-tools, too. Using mdpress for Markdown plus Impress.js based Slides The ruby-written mdpress is a special case of the previous case. It s a commandline tool to convert Markdown into Impress.js based slide shows and it has an option named
--automatic which causes
it to keep running and automatically update the presentation as soon
as changes are made to the Markdown file.
mdpress is not yet in Debian, but there s an ITP for it and
Impress.js itself recently entered Debian as libjs-impress.
Nevertheless, two dependencies (highlight.js,
ITP ed, ruby-launchy, ITP ed) are still missing in Debian.
Aptitude ships documentation in 7 languages as HTML files. However the latest
version available online was 0.4.11.2 from 2008 and hosted on the server by the previous, now
unfortunately inactive Aptitude maintainer, and only covered 5 languages.
This lack of up to date online documentation even caused others to put more up to date versions online. Nevertheless they
age, too, and the one I m aware is not up to date for Wheezy.
So the idea was born to keep an up to date version online on Aptitude s
Alioth webspace (which currently redirects to a subdirectory of
the previous maintainer s personal website). But unfortunately we, the current Aptitude Team, are still lacking administrative
rights on Aptitude s Alioth project, which would be necessary to
assign new team members who could work on that.
As an intermediate step, there s now a (currently ;-) up to date Aptitude User s
Manual online in all 7 languages at
http://people.debian.org/~abe/aptitude/ and English at
http://people.debian.org/~abe/aptitude/en/ As this location could also suffer from the same MIA issues as any other personal copy, the plan is to move this to somewhere under http://aptitude.alioth.debian.org/ as soon as we have full access to Aptitude s Alioth project. Our plans for then are:
The necessary caveat is that is not easy (at least for me) to tell the
gender just based on first names, so the actual numbers may be higher.
In addition, you should be warned that there are some contributions not
easily traceable: it's the case of translators, graphic artists
and documentation writers, as well as event organizers.
For instance, Beatrice Torracca doesn't appear in these stats, and she is the
co-coordinator of the Italian translation team and a long term Debian (and
free software in general) contributor.
There was a proposal to better track non packaging
contributors,
but no news on that front yet (at least that I'm aware of).
Sources:
I love programming. I was born to code. I want to save the world by
writing code.
I feel very strongly about software freedom. As I get older, and my
eyes open to see more of the evil in the world, I become more
concerned about freedom in general.
Software freedom is, at least traditionally, about permission use,
study, modify, and re-distribute software. The Free Software Foundation
expresses this as the four essential freedoms. Debian expanded
on that, and produced the Debian Free Software Guidelines.
This is no longer enough. It is not enough to have all the freedom
when you using your own computer, to have the source code to every
bit of code that runs on your hardware. We live in the era of the
Internet. Much of what we use computers for involves communication
over the Internet, and the Internet is being actively used to
curtail the freedom of people.
For example, governments and corporations do large-scale surveillance
of everyone, by eavesdropping on private communications, gathering
enormous databases of personal data, and by analysing everything they
can in order to find patterns and make conclusions both at the statistical
level and about individuals. This ruins privacy. Without privacy,
democracy cannot survive.
Another example: in the name of various strawmen, such as terrorism,
copyright violations, drugs, and child pornography, governments
and corporations are collaborating in limiting private people's
communications. I'm a Finnish citizen living in the UK. Both countries
are among the closest ones to an ideal democractic nation state. Both
countries arbitrarily block access to websites based on lists provided
by private organisations, assuming that those organisations produce
accurate lists of sites that contain copyright violations. As a result,
both countries blocked, for example, a site where musical artists
promoted their own works, bypassing the large media corporations that
fund the list-making organisation.
These issues transcend software freedom, though they interact with it.
Software freedom is a necessary requirement for freedom, in a world
where almost everything is done with, or controlled by, the use
of computers. Software freedom is not enough to prevent censorship
or surveillance: even if all the software in the world were free,
including the national firewalls of China, Finland, and the UK, this
would not prevent those countries from censoring and surveilling their
citizens. The firewall would run free software, but that does not give
the citizens the freedom to disable, or modify, the firewall systems.
Fixing these issues is not a coding task. It is a job for politics,
and it is going to take a long time, I fear. In the mean time, is
there something a hacker can do to improve things?
My main hobby project is Obnam, my backup program. Does that
help people to protect their freedom? I think it does, in a small way:
Obnam supports online, encrypted backups (and de-duplication even
for encryption is used), which means they can make backups to servers
anywhere on the Internet without having to fear their data gets read
and analysed by hostile entities such as their own government, other
governments, large corporations, or criminals. Obviously this does
not help them if their government prohibits the use of encryption,
or requires key escrow, or mandates backdoors to all encryption
methods. But it's a step in the right direction.
I don't claim Obnam will save the world, but a million small such
steps by a thousand individual hackers, even without any particular
organisation or guidance, will make a big impact.
What step can you take?
A bizarre closed user-tracking schism is rebased from shaky grounds to an unexisting target. It is sad to see this continous decline due to unchallenged decisions.
;; Removes submit@bugs.debian.org from the recipients of a reply-all message.
(defun debian-remove-submit (recipients)
(delq nil
(mapcar (lambda (recipient)
(and (not (string-equal (nth 1 recipient) "submit@bugs.debian.org"))
recipient))
recipients)))
(defun debian-add-bugrecipient (recipients bugnumber)
(let* ((bugaddress (concat bugnumber "@bugs.debian.org"))
(addresses (mapcar (lambda (x) (nth 1 x)) recipients))
(exists (member bugaddress addresses)))
(if exists
recipients
(append (list (list (concat "Bug " bugnumber) bugaddress)) recipients))))
;; TODO: msg should be made optional and it should default to the latest message in the bugreport.
;; NB: bugnumber and msg are both strings.
(defun debian-bts-reply (bugnumber msg)
;; Download the message to ~/mail-copy-fs/imported.
(let ((msgpath (format "~/mail-copy-fs/imported/bts_%s_msg_%s.msg" bugnumber msg)))
(let* ((url (format "http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=%s;mbox=yes;bug=%s" msg bugnumber))
(download-buffer (url-retrieve-synchronously url)))
(save-excursion
(set-buffer download-buffer)
(goto-char (point-min)) ; just to be safe
(if (not (string-equal
(buffer-substring (point) (line-end-position))
"HTTP/1.1 200 OK"))
(error "Could not download the message from the Debian BTS"))
;; Delete the HTTP headers and the first "From" line (in order to
;; make this a message, not an mbox).
(re-search-forward "^$" nil 'move)
(forward-char)
(forward-line 1)
(delete-region (point-min) (point))
;; Store the message on disk.
(write-file msgpath)
(kill-buffer)))
;; Import the mail into the notmuch database.
(let ((msgid (with-temp-buffer
(call-process "~/.local/bin/notmuch-import.py" nil t nil (expand-file-name msgpath))
(buffer-string))))
(notmuch-mua-reply (concat "id:" msgid) "Michael Stapelberg <stapelberg@debian.org>" t)
;; Remove submit@bugs.debian.org, add <bugnumber>@bugs.debian.org.
(let* ((to (message-fetch-field "To"))
(recipients (mail-extract-address-components to t))
(recipients (debian-remove-submit recipients))
(recipients (debian-add-bugrecipient recipients bugnumber))
(recipients-str (mapconcat (lambda (x) (concat (nth 0 x) " <" (nth 1 x) ">")) recipients ", ")))
(save-excursion
(message-goto-to)
(message-delete-line)
(insert "To: " recipients-str "\n")))
;; Our modifications don t count as modifications.
(set-buffer-modified-p nil))))
In case you want to get updates, you can find the latest version of this code in my configfiles git repository.
To add a single message to the notmuch database and get its message ID, I have
written this simple python script (using python-notmuch), located in
~/.local/bin/python-import.py:
#!/usr/bin/env python
# vim:ts=4:sw=4:et
import notmuch
import sys
if len(sys.argv) < 2:
print "Syntax: notmuch-import.py <filename>"
sys.exit(0)
db = notmuch.Database(mode=notmuch.Database.MODE.READ_WRITE)
(msg, status) = db.add_message(sys.argv[1])
print msg.get_message_id()
If you have any improvements, I d love to hear about it. If it s useful for
you, enjoy.
I just received a WD 500GB Blue, to replace the hard drive of my wife's computer. First thing after unpacking: start to test. And I was right to do it... there are bad blocks on it.
The story: I tend to do proactive replacement of hard drive, to avoid losing too much data or be in hurry when the current one fails. There are two ways to monitor a hard drive:
Jan 24 18:16:08 foo kernel: [ 1965.343980] ata5.00: exception Emask 0x50 SAct 0x39 SErr 0x800 action 0x6 frozen Jan 24 18:16:08 foo kernel: [ 1965.343991] ata5.00: irq_stat 0x08000000, interface fatal error Jan 24 18:16:08 foo kernel: [ 1965.344001] ata5: SError: HostInt Jan 24 18:16:08 foo kernel: [ 1965.344036] ata5.00: failed command: READ FPDMA QUEUED Jan 24 18:16:08 foo kernel: [ 1965.344055] ata5.00: cmd 60/08:00:18:31:44/00:00:1a:00:00/40 tag 0 ncq 4096 in Jan 24 18:16:08 foo kernel: [ 1965.344059] res 40/00:2c:e6:c2:fd/00:00:26:00:00/40 Emask 0x50 (ATA bus error) Jan 24 18:16:08 foo kernel: [ 1965.344071] ata5.00: status: DRDY Jan 24 18:16:08 foo kernel: [ 1965.344081] ata5.00: failed command: WRITE FPDMA QUEUEDIt is a good time to think about changing your hardrive -- but it is maybe too late. Smartmontools (aka smartd) is dedicated tool to monitor hard drives and do a good job. I think it is not installed by default in Debian, but it should be. It scans your hard drive for SMART capabilities and monitor the health of the HD using internal tools. In the case of bad blocks, you will start to see entry like that:
Feb 17 14:05:17 bar smartd[1268]: Device: /dev/sda [SAT], 1 Currently unreadable (pending) sectors Feb 17 14:35:17 bar smartd[1268]: Device: /dev/sda [SAT], 1 Currently unreadable (pending) sectorsObviously when you see this log, it is also a good time to change your hard drive. In the case of my wife's HD, I just got data from logcheck. It means that the error is not that important (transient failure, something is wrong but the HD can cope with it). But I still decided to get a new one for my wife. Whenever, I receive a new drive, the first thing I do is to check it for errors. You can do that using the program badblocks in write mode. It takes ages to test (count up to 1 day for 1TB on USB), but at the end you know that you have a good candidate -- where it is worth install your data. You just have to follow this procedure
The following warning/error was logged by the smartd daemon: Device: /dev/sda [SAT], 15 Currently unreadable (pending) sectorssyslog entries:
Mar 2 20:52:57 foo kernel: [ 8317.419715] ata4.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x0 Mar 2 20:52:57 foo kernel: [ 8317.419724] ata4.00: irq_stat 0x40000008 Mar 2 20:52:57 foo kernel: [ 8317.419732] ata4.00: failed command: READ FPDMA QUEUED Mar 2 20:52:57 foo kernel: [ 8317.419747] ata4.00: cmd 60/80:00:00:af:08/00:00:28:00:00/40 tag 0 ncq 65536 in Mar 2 20:52:57 foo kernel: [ 8317.419750] res 41/40:00:65:af:08/00:00:28:00:00/40 Emask 0x409 (media error) <F> Mar 2 20:52:57 foo kernel: [ 8317.419758] ata4.00: status: DRDY ERR Mar 2 20:52:57 foo kernel: [ 8317.419764] ata4.00: error: UNC Mar 2 20:52:57 foo kernel: [ 8317.423959] ata4.00: configured for UDMA/133I am not blaming any particular brand (like Western Digital), all computer parts I have ever bought had to follow the same procedure and it is a known fact that computer parts as a non-zero percentage of chance to be DOA (dead on arrival) or after a few weeks. But as a consumer you should be aware of that and take action to avoid spending 10h configuring your computer to see it failing after a week... The waste of time to test is a win on the long term.
Alas. The blogosphere has been slammed with discontent.
Count me as one of them.
It s been a long time since the last position (I ve held) of significance in Ubuntu, a LoCo Council Member, which I left with a heavy heart.
I felt, at the time, that Ubuntu, The Community was no longer in control of Ubuntu The Distro .
Technical opinions of Ubuntu community members started to get disregarded (starting with the gawd-awful Yahoo search switch), and it continued to get worse as Canonical stopped becoming a contributor to Ubuntu and started becoming it s sole guiding force.
In comes the mess called Ubuntu One which, for the record, is a wrong name, it s not Ubuntu in any sense, it s not Community driven, it just uses Ubuntu as one of it s platforms.
Trading on Ubuntu s good name started this mess.
Slowly, like the ship of theseus, Canonical started to swap out bit by bit until nothing was left without Canonical assignment.
I always assumed it was so that selling the code for another company to use the code for non-free purpose was the reason. Oh well.
Look at us now: Starting off on an ill-thought out path because others are unwilling to say they just didn t understand the whole problem.
This is a long way of saying:
Ex-Ubuntu ers: You re welcome in Debian. I ve set up #ubuntu-expats on oftc. Please join us. You re welcome there.
Working in Debian has been an absolute dream; it feels like contributing to Ubuntu in the early days.
Come. Have a say. Re-join a Community that isn t just Like us on Facebook .
I still consider myself an Ubuntu Community Member, but I don t think there s any community left.
Mark Shuttleworth recently critized Jonathan Riddell for proposing Xubuntu and others join the Kubuntu community. I thought I could make a few amendments to Mark s writing:
Jonathan Mark says that Canonical Kubuntu is not taking care of the Ubuntu community.
Consider for a minute, Jonathan Mark, the difference between our actions.
Canonical Kubuntu, as one stakeholder in the Ubuntu community, is spending a large amount of energy to evaluate how its actions might impact on all the other stakeholders, and offering to do chunks of work in support of those other stakeholder needs.
You, as one stakeholder in the Ubuntu community, are inviting people to contribute less to the broader project [all the X and Wayland -based desktops], and more to one stakeholder [Unity and Mir].
Hmm. Just because you may not get what you want is no basis for divisive leadership.
Yes, you should figure out what s important to Kubuntu Ubuntu Unity and Mir, and yes, you should motivate folks to help you achieve those goals. But it s simply wrong to suggest that Canonical Kubuntu isn t hugely accommodating to the needs of others, or that it s not possible to contribute or participate in the parts of Ubuntu which Canonical Kubuntu has a particularly strong interest in. Witness the fantastic work being done on both the system and the apps to bring Ubuntu Plasma to the phone and tablet. That may not be your cup of tea, but it s tremendously motivating and exciting and energetic.
See Mark? I only needed to do a little search and replace on your words and suddenly, meaning is completely reversed!
Canonical started looking only after its own a couple of years ago and totally dumped the community. Many people have noticed this and written about this in the past two years.
How dare you say Jonathan or anyone from Kubuntu is proposing contributing less to the broader community? The broader community uses X and/or Wayland.
Canonical recently came with Mir, a replacement for X and Wayland, out of thin air. Incompatible with X and Wayland.
No mention of it at all to anyone from X or Wayland.
No mention of it at FOSDEM one month ago, even though I, as the organizer of the Cross Desktop DevRoom, had been stalking your guy for months because we wanted diversity (and we got it: Gnome, KDE, Razor, XFCE, Enlightenment, etc, we even invided OpenBox, FVWM, CDE and others!). I even wrote a mail to you personally warning you Unity was going to lose its opportunity to be on the stand at FOSDEM. You never answered, of course.
Don t you think Mir, a whole new replacement for X and Wayland, which has been in development for 8 months, deserved a mention at the largest open source event in Europe?
Come on, man.
It is perfectly fine to say yes, Canonical is not so interested in the community. It s our way or the highway .
But do not pretend it s anything else or someone else is a bad guy.
In fact, is there any bad guy in this story at all!? I think there is not, it s just people with different visions and chosen paths to achieve them.
Maybe Mir and Unity are great ideas, much better than X and Wayland. But that s not what we are talking about. We are talking about community, and Canonical has been steadily destroying it for a long time already. If you cannot or do not want to see that, you ve got a huge problem going on.
git rebase --interactiveand rewrite it all into a single sensible set of commits. Also please do remember to develop on a branch, or if you did not
git pull --rebaseis your friend to avoid unnecessary merges.
$ wget http://git.netsurf-browser.org/netsurf.git/plain/Docs/env.sh
$ less env.sh
$ source env.sh
$ ns-apt-get-install
$ source env.sh
$ ns-clone
$ ns-make-libs install
This frontend supports the cocoa, the windowing system of MacOS X, on both PPC (version 10.5) and X86 (10.6 or later). The port is usefully functional and is integrated into the CI system, built natively on Mac mini systems as a jenkins slave. The port is written in objective C and currently has no active maintainer. $ source env.sh
$ ns-make -C $ TARGET_WORKSPACE /$ NS_BROWSER TARGET=gtk
$ source env.sh
$ cd $ TARGET_WORKSPACE /$ NS_BROWSER
$ ns-make
$ ./nsgtk
Composite and Swap Getting it Right
Where the author tries to make sure DRI3000 is going to do what we
want now and in the future
DRI3000
The basic DRI3000 plan seems pretty straightforward:
SwapIdle
drawable: Drawable
pixmap: Pixmap
Furthermore, the application needs to know that the pixmap is in fact
idle. I think that we ll need a synchronous X request that marks a
buffer as no longer idle and have that return whether the buffer was
discarded while idle. It doesn t seem sufficient to use events here as
the application will need to completely reconstruct the pixmap
contents in this case. This reply could also contain information about
precisely what contents the pixmap does contain.
SwapReuse
drawable: Drawable
pixmap: Pixmap
valid: BOOL
swap-hi: CARD32
swap-lo: CARD32
Pixmap Lifetimes and Triple Buffered Applications
If we redirect the Swap operation and send the original application
window pixmap ID to the compositor, what happens when the application
frees that pixmap before the compositor gets around to using the
contents?
Surely the Compositor must handle such cases, and not just
crash. However, I m fine with requiring that the application not free
the pixmap until told by the compositor.
$ dbus-send --system --print-reply --dest='org.freedesktop.UPower' \
/org/freedesktop/UPower org.freedesktop.UPower.Suspend
If you prefer to hibernate your computer, that is, to suspend it, not to RAM but to disk:
$ dbus-send --system --print-reply --dest='org.freedesktop.UPower' \
/org/freedesktop/UPower org.freedesktop.UPower.Hibernate
As you can see, for some reason it requires some duplication of
information: the name org.freedesktop.UPower appears three times in that
command line: in the destination , object path and interface member ,
whatever that could mean. Again, do not ask me why, I know nothing about that
and I do not want to.
Notes
This is the first freeze in which I'm involved with upload rights. And it turned out to be a quite interesting ride so far, so I thought it would be nice to write about it.
For quite some time, I'm contributing to OpenStreetMap. Mostly covering areas where I live or I know well, but sometime I randomly update areas where I travel as well. The one important bit was always missing for me - nice frontend to render many of hidden features.
Now this space seems to be slowly filled in by map1.eu. This quite new project (first announcement has been two weeks ago) renders quite nice maps for Europe. The map is primarily intended for hiking or cycling, so it includes things like hiking routes or cycle routes. In Czech republic we have quite great maps on mapy.cz, but I don't know anything what covers whole Europe.
The project still has some issues, but is progressing nicely as you can see in today's announcement of 0.2 release (in Czech). Of course you can help, either by code or by money, which is needed to run rendering servers.
Filed under: English Maps 0 comments Flattr this!
Next.