
![Real World Traffic [Photo of Some Traffic]](http://mjr.towers.org.uk/writing/reflections/attachments/traffic.jpg)
Is this traffic or congestion?
This is one of those Friday Afternoon Projects
- it's been put off all through a busy week
because it's unpaid,
I'm not completely sure how to approach it
and now my arms hurt like hell
from travel jabs which are making it hard to
concentrate! So I'm going to float it on here...
I've been asked to brief a meeting next week
about that group's current web site and
its problems. I'm not linking it yet to avoid
insulting/embarrassing them.
The site looks OK,
but doesn't rank well on search engines
and doesn't allow much member participation.
I need to explain why that's a bad thing and
how the site's technical choices
have led to that.
I'm not directly pitching for
TTLLP
to get any work (because
I'm a member of that group, it might
be a conflict of interest and we're pretty
busy anyway - even our own site needs work on
some of the points I'm going to mention),
but I don't want to be unhappy
if we're asked to
implement my recommendations.
I've got a usual outline that I follow,
but my presentation's time is limited,
so I'd like to ask you: what about this is
important and what isn't?
If you give me useful feedback, I'll put you
in the Acknowledgements with a backlink and
I hope the briefing will be shared pretty
widely over the next few months.
The current plan is to start
with a basic explanation of
how search engines rank pages, as far as we
can tell, referring to
PageRank Explained Correctly with Examples, by Ian Rogers
as well as the shorter official summaries
from the dominant search sites at
Yahoo,
Microsoft
and
Google.
Then I go through a quick evaluation
of the site against the basics of validation,
accessibility and robot-friendliness,
followed by a couple of SEO-style checks of
its current rankings and inbound links.
Next is a bit different because I have access
to some of their web access stats: I summarise
what we know and suggest some other stats
they've probably not considered
and why they're useful, along the lines of
Dave Briggs's measures of blog success.
Finally, I suggest ways to improve the
site. The top tip will be to take control
of the site hosting and stop using the
cheap and cheerful donated server that makes
all links except the front page point
to another domain. I'll probably suggest
a mix of free and open source software
tools to power it.
If they don't want to move it all yet,
I'll suggest running a second site for
member participation, using tools like
Wordpress, NoseRub and so on.
What do you think? Plan for success, am
I missing some tricks, or am I setting myself
up for
a lynching?
Let me know with a comment or email, please.
A few months ago, I had shown a
chart with per-5k-segment paces
of my prior marathons runs (or at least those for which organisers had 5k splits). Since then, I ran two more:
New York in November and
London last Sunday. I have updated
the charts to show both of these:
A few things stand out:
For the second year in a row, I didn't vote in the DPL election. Not because I have lost interest in Debian affairs but because nothing is really going on that demands my attention. All three of the candidates who ran this year were eminently capable of representing of Debian and its ideals, all three had more or less the same vision for the role of DPL (IMO. See here for platforms,) and all three are, as far as I know, nice people. Organizational and social problems that previously existed have been fixed. The only problem I have with Debian these days is a lack of time but I can hardly expect the DPL to do anything about that.
However, a recent post from Lucas reminded me that there is one group for which all is not fine and dandy. Given that this is the same complaint that has been made for atleast five years nows, one has to wonder why it remains singularly unfixable? Well I don't know but this delegation makes me confident that we will finally see the end of this last bottleneck too. Joerg is the one who sped up NEW package processing and I am sure he will have account creation humming along in no time.
I sympathize with the frustration people stuck in NM feel, but I would like to remind them that Debian acts the way Winston Churchill observed the United States does:
"Americans can always be depended upon to do the right thing—after they've tried everything else."
Not done one of these round-ups for a while and
I'm really pushed for time today, so
here are some sites that I've written on:


It's stories like the following that make you realise just how puny your
talents are...
(Reposted from a place not to be named, by the legendary Al Viro)
Give them what I got yesterday. As in, box that got
a) Linux kernel running.
b) init and bash running.
c) serial and floppy - built as modules. And not loaded.
d) no sash.
e) no ethernet.
f) bloody large number-crunching that Should Not Be Aborted(tm).
g) libc and ld-linux.so - unlinked (self-LART by owner).
Now, I could tell the guy to piss off, but... WTF? He had decent beer and
was properly scared. Oh, well... So we have no exec() for anything
dynamically
linked. And we have no chance to access any external stuff - insmod is
linked
dynamically, so no insmod floppy for you. Shutting the system down was not
an
option due to (f) (aside of dealing with fsck later - umount(8) is
dynamically
linked too). Now, I knew that both /lib/libc.so-2.1.2 and
/lib/ld-linux.so-2.1.2 were still alive - mmaped by init, for one. And
/proc/1/maps would even contain their inumbers. So the plan of attack was
to create a file in root and then cannibalize the entry (change inumber in
the directory). Alas - not enough. In-core inode got zero i_nlink and
if I would just create a link by hands it would not become positive. I.e.
still remove-upon-close. But. But if we will manage to call link() on the
hand-made link we will get i_nlink raised to 1 - iget() will find the same
in-core inode, so we are OK. We'll have to revert the phony link to avoid
PO'd fsck, but that's not a problem...
So there we go: assuming that we got static ln
echo >foo
ln foo bar
flip inumber in foo entry to point to libc
ln foo /lib/libc.so-2.1.2
flip inumber.......................... bar
repeat for ld-linux.so
rm foo bar
begin recovering other damage (self-LART was a bit larger).
But... we don't have this flip stuff and we don't have (aaarrgh)
static
ln. Oh, shit... OK, but all we really need is a couple of syscalls, right?
There we go:
eax=__NR_link;
ebx=s1;
ecx=s2;
int 0x80;
eax=__NR_exit;
ebx=0;
int 0x80;
s1: "foo"
s2: "bar"
The next step was getting the syscall numbers. grep? We don't need no
stinkin'
grep.
# while read i; do case $i in *__NR_link*) echo $i;; esac;
done </usr/include/asm/unistd.h
#define __NR_link 9
# while read i; do case $i in *__NR_exit*) echo $i;; esac;
done </usr/include/asm/unistd.h
#define __NR_exit 1
#define __NR__exit __NR_exit
Now, scratching the head and recalling intel code...
start: b8 09 00 00 00
bb (address of s1)
b9 (address of s2)
cd 80
b8 01 00 00 00
bb 00 00 00 00
cd 80
s1: 66 6f 6f 00
s2: 62 61 72 00
Fine, but... a.out support is compiled... you guessed it, as module and not
currently loaded. So we are in for crufting up an ELF binary. OK, we don't
actually need 100%-correct ELF, just something that will pass for the
exec(). Now, we don't have shell scripts, but . will work. So the next
step was rolling more(1) in shell and reading through the relevant code
(surprisingly small - binfmt_elf.c and two headers). After much swearing
the following abortion was created:
7f 45 4c 46 00 00 00 00 00 00 00 00 00 00 00 00
02 00 03 00 01 00 00 00 start______ 34 00 00 00
00 00 00 00 00 00 00 00 34 00 20 00 01 00 28 00
00 00 00 00 01 00 00 00 00 00 00 00 base_______
base_______ size_______ size_______ 05 00 00 00
00 10 00 00
start:
b8 09 00 00 00 bb start+1d___ b9 start+21___ cd
80 b8 01 00 00 00 bb 00 00 00 00 cd 80 66 6f 6f
00 62 61 72 00
OK, set base to something page-aligned, start=base+54, size=79. There we go:
7f 45 4c 46 00 00 00 00 00 00 00 00 00 00 00 00
02 00 03 00 01 00 00 00 54 00 00 80 34 00 00 00
00 00 00 00 00 00 00 00 34 00 20 00 01 00 28 00
00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 80
00 00 00 80 79 00 00 00 79 00 00 00 05 00 00 00
00 10 00 00 b8 09 00 00 00 bb 71 00 00 80 b9 75
00 00 80 cd 80 b8 01 00 00 00 bb 00 00 00 00 cd
80 66 6f 6f 00 62 61 72 00
well, while read l; do for i in echo $l ; do echo -ne "\\$i"; done; done
made for oct2bin, overwriting /usr/bin/emacs with the output of that gave
us static equivalent of ln foo bar. And it worked. The rest was essentially
the same - the only tricky part was to find the location of directory entry.
Which was done with (lseek, read byte, exit(said_byte)) and shell wrapper
around that. So we had a way to read a block and dump it on the console.
The rest was obvious - start from relevant block in inode table and walk
through the references... Once we got that, it was an easy ride - trick
with inumber flipping brought libc and dynamic linker back and after that
we had 99% of system back into the working state. Amazing how little you
actually need to bring the system back to life...
Hot damn that's some deep hackery...
The Culture and Politics of Computer Hacking. This course takes as its object computer hackers to interrogate not only the ethics and practices of hacking, but to examine more broadly how hackers and hacking have transformed the politics of computing and the Internet more generally. We will examine how hacker values are realized and constituted by different legal, technical, and ethical activities of computer hacking for example, free software production, cyberactivism and hactivism, cryptography, and the pranksih games of hacker underground. We will pay close attention to how ethical principles are variably represented and thought of by hackers, journalists, and academics and will use the example of hacking to address various topics on law, order, and politics on the Internet such as: free speech and censorship, computer gaming, privacy and security, and intellectual property. This will allow us to critically 1) problematize thinking on computer hackers as a socio-cultural group guided by a singular ethic and set of practices 2) examine the multiple ways hackers draw on and reconfigure dominant ideas of property, freedom, and privacy through their diverse moral codes and technical activities 3) broaden our understanding of politics of the Internet by evaluating the various political effects and ramifications of hacking.
Something I want to add to a post by Slyvian LeGall - motivation does not have to disappear during the wait.
I spend too much of my time trying to talk with
people who don't want to discuss, yet somehow
I won't stop.
I keep hoping that things like
suggesting good advice on meeting scheduling
will avoid them repeating old mistakes.
The most extreme life-and-death example
is probably trying to help with
Kewstoke Toll Road, where people still speed and someone crashed off again last night
(although I don't know what caused last night's crash - could have been a simple accident).
Of course, it's better to talk with people who
have asked questions and want to hear the
answer.
I'm currently involved in several groups
like that and it makes me
much happier [4HWW].
I've even
made a confidentiality agreement [Network Blogging article]
about one group because I really like
the organiser and want to help them,
but I've yet to see
changes happen because of it and that's
probably about all I can write here, which
does rather suck.
But talking of changes that make me happy,
I spotted that
Bristol Wireless
has now gone further than
TTLLP
by deciding to change people away from Microsoft Windows when they find it:-
"all Windows stuff must be gone from the premises [...] no longer help do callers favours with broken Windows machines, apart from fixing them properly and permanently by installing Debian"at their March meeting. Well done, BW! After a request, I finally put four photos from Social Source South West (which was hosted by BW) online, which reminded me to subscribe to watfordgap's travels. Disappointingly, on my first read, it promotes the Suppliers Directory developed by Lasa. That directory is a big problem because it creates a silly barrier to entry which hinders new social enterprises and cooperatives. At a time where most non-profit software is unsustainable and needs to change, requiring three referees is a way to obstruct change. Also, persuading three people to support their work is no substitute for supplier evaluation. Any non-profits who want to lead their sector should approach ICT suppliers directly. The article also mentions Experts Online which is even more short-sighted about computing: "both PC and Mac" indeed! What about GNU/Linux, thin clients, and other changes which are already making a big difference to some non-profits...? But here I go again, talking to a brick wall. I expressed these concerns when that Directory started and it didn't do any good then, so I doubt they'll change it now, near the end of its life. So I'm going to move on. There are lots of people emailing who want to hear from me, so it's time to concentrate on talking with people who do want to listen. If you want to discuss this with me, visit my website for the comments form (click the title or look for a "view original post" link, depending what site you're reading).
It has now been more than 4 months since the last Debian developer account was created. 18 contributors have been through all steps, and are simply waiting for this simple administrative task to be done.
We are sending a terrible message to potential contributors. We have strong requirements on the technical level of our developers. During the new maintainer process, we ask them to answer about 80 questions about Debian. We ask them to do grunt work. We review their reports twice (New Maintainers’ Front Desk, then Debian Account Manager). But even after we are totally satisfied about what they did, even after they became more qualified than many of our current DDs, we ask them to wait for months, so that the only person allowed to create accounts can finally do his “job”.
It discourages the contributors currently in the NM process. I’ve seen several signs of frustration, or even depression. Some of them reduce their involvement in Debian, so we lose them before they even became Debian developers. Some of them consider resigning from the NM process. We should all feel guilty about that.
But it also discourages people from joining Debian. Instead, they go to other more welcoming projects, which is totally understandable. Debian isn’t the only distribution with developers from the community those days. There’s Gentoo, Ubuntu, Fedora, openSUSE. Some of those have nice programs for new contributors, like “school” sessions. Sure, Debian is the “biggest” distribution without a company behind it. But is independance worth all the trouble?
Of course, we have Debian Maintainers. DM is great for people who want to work on their packages. But, when we are trying to release lenny, we need more: people who are going to go through RC bugs, submitting patches. Who are going to do QA work. In short: people who care more about the whole distribution.
Can we afford not recruiting anybody? Can we run Debian with the current manpower? I don’t think so. There are more than 550 RC bugs in lenny, many packages are currently blocked from migrating to lenny because they are RC-buggy, and many packages are orphaned or neglected. There are also a lot of bugs which haven’t been filed yet (I asked for help with running piuparts, which would probably result in 100-200 new RC bugs, but nobody had time to help). Most of the work that needs to be done is not rocket science. We could use a lot more manpower. Currently, the same small set of developers is doing most of the grunt work. They will get tired too.
So, what can we do, as simple developers? There’s no magic solution, but we can try a few things.
In a couple of days, DPL-elect Steve McIntyre takes
over as DPL, after being elected by around four hundred of his peers…
Because I can’t help myself, I thought I might poke at election numbers
and see if anything interesting fell out.
First the basics: I get the same results as the official ones when
recounting the vote. Using first-past-the-post, Steve wins with 147
first preference votes against Raphael’s 124, Marc’s 90 and NOTA’s 19
(with votes that specify a tie for first dropped). Using instant-runoff /
single transferable vote, the winner is also Steve, with NOTA elimited
first and Marc collecting collecting 5 votes, Steve 4 and Raphael 2,
followed by Marc getting eliminated with Steve collecting 50 votes,
against Raphael’s 26.
So, as usual, different voting systems would have given the same
result, presuming people voted in basically the same way.
NOTA really didn’t fare well at all in this election, with a majority
of voters ranking it beneath all candidates (268 of 401, 53.5%). For
comparison, only 18 voters ranked all candidates beneath NOTA, with 9
of those voters then ranking all candidates equally. (For comparison,
in 2007, 312 of 482 voters (about 65%) ranked some candidate below NOTA,
though that drops to 225 voters (47%) if you ignore voters that just
left some candidates unranked. Only 98 voters (20%) voted every candidate
above NOTA)
With NOTA excluded from consideration, things simplify considerably,
with only 13 possible different votes remaining. Those come in four
categories: ranking everyone equal (17 votes, 9 below NOTA as mentioned
above, and 8 above NOTA), ranking one candidate below the others (13
votes total, 7 ranking Raphael last, 3 each for Steve and Marc), ranking
one candidate above the others (66 votes; 30 ranking Steve first, 18 each
ranking Raphael and Marc first), and the remainder with full preferences
between the candidates:
70 V: 213
63 V: 123
56 V: 132
52 V: 231
38 V: 312
26 V: 321
The most interesting aspect of that I can see is that of the people
who ranked Raphael first, there was a 1.8:1 split in preferring Steve
to Marc, and for those who preferred Marc first, there was a 2:1 split
preferring Steve to Raphael. For those who preferred Steve, there was
only a 1.1:1 split favouring Raphael over Marc.
I think it’s fair to infer from that that not only was Steve the
preferred candidate overall, but that he’s considered a good compromise
canidate for supporters of both the alternative candidates (though
if all the people who ended up supporting Steve hadn’t been voting,
Raphael would have won by something like 26 votes (129:103) with a 1.25:1
majority; if they had been voting, but Steve hadn’t been a candidate,
Raphael’s margin would’ve increased absolutely to 33 votes (192:159)
but decreased in ratio to a 1:1.2 majority.
Thanks!!
Next.