Yeah, yeah, I may be living under a rock these days. Anyway, I just
noticed that the GFDL v1.3 is out; it has been for
four months or so.
There aren't many changes; apart from some minor wording changes that
have little to no effect on the meaning of the license, there are two
new sections: the first adds details on what happens when you violate
the license (basically, it gets temporarily terminated, which can become
permanent if you do not fix it in a reasonable timeframe or under some
other circumstances); the second allows one to change the license from
GFDL to CC-BY-SA under certain circumstances (where "certain
circumstances" in practice basically means "you're wikipedia", although
it isn't written as such).
And that's it. Nothing groundbreaking, nothing to follow up on the FDLv2 discussion
drafts that were released about two-and-a-half years ago.
Me, I find that disappointing. When the initial discussion drafts
were put out on the web, I was thrilled; I spent some time reading them
and providing comments. However, nothing happened on those drafts beyond
initially getting them out there. It would appear that today, the FSF
has even managed to lose the comments that were made.
I guess they don't really care about the FDL as much as they do about
the GPL.
After quite successful debut in Google Summer of Code last yaer
(even not directly, but though MySQL project), where both projects ended
quite successfully and brought great addition to our code base, it's
time to try to get again on the track. Hopefully we will manage to be
direct participants this year.
If you have some great ideas which are missing in phpMyAdmin, feel
free to fill them either in feature tracker or directly into our
ideas page.
In case you ve been living under a rock these past years, I shouldn t have to tell you what this is about :). Well, just in case.
The Google Summer of Code (GSoC) is an international program that offers student developers stipends to write code for various open source software projects. Debian has participated since 2006, mentoring dozens of students on Debian projects.
The important part of the 2009 edition of the Google Summer of Code is going to start next week with the Organizations application period (March 9th). By that time, we should have listed a reasonable number of ideas on the dedicated wiki page.
We will try this year to improve on the performance of the previous years, starting first with more and more dedicated manpower. If you have some time to spare to help manage our Summer of Code bid this year, we can make it a much better experience for the students and for Debian.
Help is immediately needed in many areas. Some examples:
I would like to applaud Colin Watson s excellent post on bad bug triage technique.
Thank you, Colin. It needed to be said I have experienced most of those problems myself, in Debian.
After a long hiatus for various reasons, I finally had the chance to try my
hand at loading a TeleMetrum
board today!
Sadly, I wasn't able to completely load any boards, because I somehow ended
up with the wrong Digi-Key part numbers for 4
capacitors, one of which is a critical value. I placed an order for the
missing parts and a few other bits we'll need eventually, hopefully they'll
be here in a couple days and I can try to load a board with all the parts.
Instead, what I did today was a a partial load of a board with the goal of
testing the various power supplies. Seemed like a good idea, since I've
had my share of odd problems with power supplies in the past. This also
gave me a chance to try out my solder paste stencil, get some experience
hand-placing the tiny 0402 passive parts, and an excuse to see if I could
hit the solder reflow temperature profile adequately with my electric
cooking skillet and IR non-contact thermometer.
The good news is that it all worked right the first time! We're successfully
charging a LiPo battery from USB power, and successfully making 3.3 volts for
the electronics from that. The resistor divider designed to allow the LiPo
battery voltage to be sampled by the CPU's analog to digital converter is
also working fine.
A few observations are in order, however.
Getting the right amount of solder paste down on the board requires some
finesse with the spreading blade and the stencil. I think the paste was a
bit heavy around the CC1111 footprint, as I ended up with some bridged
pads. Since I didn't load the actual CPU part, it could just be that not
having something real there to wick up some solder meant there was enough
to form the bridges. Don't know. The amount of solder on the ground pad
in the middle of the chip looks good, though!
The 0603 sized LED in the power supply circuit was the only part that didn't
self-align correctly. I may have had it a bit too far to one side. The pads
on the part have notches in the end, and it looks like one side of each is
more or less centered, so I think surface tension did the best it could with
what I gave it to work with. The LED soldered ok, isn't shorting to anything
else, and clearly works fine... but I'd be happier if it were aligned better.
Found and fixed a solder bridge between two pins on the surface-mount USB
connector before first application of power. Could be further data that the
paste layer was a bit too thick. On the other hand, I had to wiggle the
connector around a bit to get it aligned correctly, so I may have smudged
the paste into a bridge while doing that.
I also note that there's some visible flux left on the surface of the solder,
particularly on big paste areas like the feet of the USB connector. I
suspect this means I didn't dwell long enough at either or both of the preheat
or ultimate reflow temperatures. Since all the parts clearly soldered
adequately to function, I'm still pretty happy... but since the rockets we
fly experience violent accelerations during boost, this is something I'll
play with on future reflows.
All in all, a great way to spend an afternoon, and a big step forward for
the TeleMetrum project!
I have been thinking some more about how to improve ucf. One of
the things that struck me was that based on my earlier analysis there are only
five actions that ucf can take, and the decision about the actions
depends on the state it finds the configuration file in on the
target machine, and there are only eight of those. Now, thinking
back to my days as a VLSI designer back in the halcyon days of
electrical engineering, This is a pretty simple state machine. It
is not as neat as it could be (where just three variables would be
needed to keep track of things, but still, it bears investigation.
This would be a way for converting the current procedural
ucf into a functional programming model.
Hop over here for
a look at how that went it was fun, and afforded me an
opportunity to demonstrate how well org handles
snippets.
I'm supporting a medium-sized (~70 regular clients and a half-dozen servers) LAN. It's a single logical ethernet segment, but it's built as a tree of cascaded switches. DHCP service is provided by a single host running ISC's DHCPD (via dhcp3-server). DHCP itself is one of the single points of failure in the network layout. i'd really like to make this DHCP server redundant (so that i can take that host down for service if needed and leave the rest of the network intact). However, reading dhcpd.conf(5) makes me pretty worried that the failover stuff is not well-tested or widely deployed. I've read Paul Heinlein's Failover with ISC DHCP, which makes it look not unreasonable, but i was wondering if people have other preferred mechanisms for providing DHCP redundancy. Do you have failover DHCP set up for any LAN that you manage? If so, what do you use? Are there any gotchas to watch out for? I'm also concerned about the security implications. On a network that's not using IPSEC, i don't see any mechanism for the two DHCP servers to properly mutually authenticate. Is it really just by IP address? Could someone spoofing the IP address of one host corrupt the state of the other DHCP server? (i'm less concerned about them keeping network traffic private, since most of what they communicate is likely to go out in the clear on the wire anyway). Am i missing some clever authentication technique? From a security point of view, i understand that there are more severe security problems with DHCP itself, of course (the protocol requires that the client trust the (unauthenticated) server), but that doesn't seem likes a good reason to introduce an opportunity to compromise any given server directly. Your thoughts on DHCP redundancy?Tags: dhcp, failover, redundancy
I've not had that many problems with network-manager, until now. The new version in unstable is just completely broken on my machine. Sadly, I can't report why it failed as I inadvertently closed the terminal with the relevant output. | Pass | ext4 old allocator | ext4 new allocator | |||||||||
| time (s) | I/O | time (s) | I/O | ||||||||
| real | user | system | MB read | MB/s | real | user | system | MB read | MB/s | ||
| 1 | 6.69 | 4.06 | 0.90 | 82 | 12.25 | 6.70 | 3.63 | 1.58 | 82 | 12.23 | |
| 2 | 13.34 | 2.30 | 3.78 | 133 | 9.97 | 4.24 | 1.27 | 2.46 | 133 | 31.36 | |
| 3 | 0.02 | 0.01 | 0 | 1 | 63.85 | 0.01 | 0.01 | 0.01 | 1 | 82.69 | |
| 4 | 0.28 | 0.27 | 0 | 0 | 0 | 0.23 | 0.22 | 0 | 0 | 0 | |
| 5 | 2.60 | 2.31 | 0.03 | 1 | 0.38 | 2.42 | 2.15 | 0.07 | 1 | 0.41 | |
| Total | 23.06 | 9.03 | 4.74 | 216 | 9.37 | 13.78 | 7.33 | 4.19 | 216 | 15.68 | |
For comparison s sake, here is a comparison of the fsck time of the same collection of files and directories, comparing ext3 and the original ext4 block and inode allocator. The file system in question is a 32GB install of Ubuntu Jaunty, with a personal home directory, a rather large Maildir directory, some linux kernel trees, and an e2fsprogs tree. It s basically the emergency environment I set up on my Netbook at FOSDEM.
In all cases the file systems were freshly copied from the original root directory using the command rsync -axH / /mnt. It s actually a bit surprising to me that ext3 s pass 2 e2fsck times was that much better than e2fsck time under the old ext4 allocator. My previous experience has shown that the two are normally about the same, with a write throughput of around 9-10 MB/s on for e2fsck s pass 2 for both ext3 file systems and ext4 file systems with the original inode/block allocators. Hence, I would have expected ext3 s pass2 time to have been 12-13 seconds, and not 6. I m not sure how that happened, unless it was the luck of draw in terms of how things ended up getting allocated on disk. So I m not too sure what happened there, but overall things look quite good for ext4 and fsck times!
| Pass | ext3 | ext4 old allocator | |||||||||
| time (s) | I/O | time (s) | I/O | ||||||||
| real | user | system | MB read | MB/s | real | user | system | MB read | MB/s | ||
| 1 | 108.40 | 13.74 | 11.53 | 583 | 5.38 | 6.69 | 4.06 | 0.90 | 82 | 12.25 | |
| 2 | 5.91 | 1.74 | 2.56 | 133 | 22.51 | 13.34 | 2.30 | 3.78 | 133 | 9.97 | |
| 3 | 0.03 | 0.01 | 0 | 1 | 31.21 | 0.02 | 0.01 | 0 | 1 | 63.85 | |
| 4 | 0.28 | 0.27 | 0 | 0 | 0 | 0.28 | 0.27 | 0 | 0 | 0 | |
| 5 | 3.17 | 0.92 | 0.13 | 2 | 0.63 | 2.60 | 2.31 | 0.03 | 1 | 0.38 | |
| Total | 118.15 | 16.75 | 14.25 | 718 | 6.08 | 23.06 | 9.03 | 4.74 | 216 | 9.37 | |
| 312214 | inodes used (14.89%) |
| 263 | non-contiguous files (0.1%) |
| 198 | non-contiguous directories (0.1%) |
| # of inodes with ind/dind/tind blocks: 0/0/0 | |
| Extent depth histogram: 292698/40 | |
| 4388697 | blocks used (52.32%) |
| 0 | bad blocks |
| 1 | large file |
| 263549 | regular files |
| 28022 | directories |
| 5 | character device files |
| 1 | block device file |
| 5 | fifos |
| 615 | links |
| 20618 | symbolic links (19450 fast symbolic links) |
| 5 | sockets |
| 312820 | files |
| Pass | ext4 old allocator | ext4 new allocator | |||||||||
| time (s) | I/O | time (s) | I/O | ||||||||
| real | user | system | MB read | MB/s | real | user | system | MB read | MB/s | ||
| 1 | 6.69 | 4.06 | 0.90 | 82 | 12.25 | 6.70 | 3.63 | 1.58 | 82 | 12.23 | |
| 2 | 13.34 | 2.30 | 3.78 | 133 | 9.97 | 4.24 | 1.27 | 2.46 | 133 | 31.36 | |
| 3 | 0.02 | 0.01 | 0 | 1 | 63.85 | 0.01 | 0.01 | 0.01 | 1 | 82.69 | |
| 4 | 0.28 | 0.27 | 0 | 0 | 0 | 0.23 | 0.22 | 0 | 0 | 0 | |
| 5 | 2.60 | 2.31 | 0.03 | 1 | 0.38 | 2.42 | 2.15 | 0.07 | 1 | 0.41 | |
| Total | 23.06 | 9.03 | 4.74 | 216 | 9.37 | 13.78 | 7.33 | 4.19 | 216 | 15.68 | |
For comparison s sake, here is a comparison of the fsck time of the same collection of files and directories, comparing ext3 and the original ext4 block and inode allocator. The file system in question is a 32GB install of Ubuntu Jaunty, with a personal home directory, a rather large Maildir directory, some linux kernel trees, and an e2fsprogs tree. It s basically the emergency environment I set up on my Netbook at FOSDEM.
In all cases the file systems were freshly copied from the original root directory using the command rsync -axH / /mnt. It s actually a bit surprising to me that ext3 s pass 2 e2fsck times was that much better than e2fsck time under the old ext4 allocator. My previous experience has shown that the two are normally about the same, with a write throughput of around 9-10 MB/s on for e2fsck s pass 2 for both ext3 file systems and ext4 file systems with the original inode/block allocators. Hence, I would have expected ext3 s pass2 time to have been 12-13 seconds, and not 6. I m not sure how that happened, unless it was the luck of draw in terms of how things ended up getting allocated on disk. So I m not too sure what happened there, but overall things look quite good for ext4 and fsck times!
| Pass | ext3 | ext4 old allocator | |||||||||
| time (s) | I/O | time (s) | I/O | ||||||||
| real | user | system | MB read | MB/s | real | user | system | MB read | MB/s | ||
| 1 | 108.40 | 13.74 | 11.53 | 583 | 5.38 | 6.69 | 4.06 | 0.90 | 82 | 12.25 | |
| 2 | 5.91 | 1.74 | 2.56 | 133 | 22.51 | 13.34 | 2.30 | 3.78 | 133 | 9.97 | |
| 3 | 0.03 | 0.01 | 0 | 1 | 31.21 | 0.02 | 0.01 | 0 | 1 | 63.85 | |
| 4 | 0.28 | 0.27 | 0 | 0 | 0 | 0.28 | 0.27 | 0 | 0 | 0 | |
| 5 | 3.17 | 0.92 | 0.13 | 2 | 0.63 | 2.60 | 2.31 | 0.03 | 1 | 0.38 | |
| Total | 118.15 | 16.75 | 14.25 | 718 | 6.08 | 23.06 | 9.03 | 4.74 | 216 | 9.37 | |
| 312214 | inodes used (14.89%) |
| 263 | non-contiguous files (0.1%) |
| 198 | non-contiguous directories (0.1%) |
| # of inodes with ind/dind/tind blocks: 0/0/0 | |
| Extent depth histogram: 292698/40 | |
| 4388697 | blocks used (52.32%) |
| 0 | bad blocks |
| 1 | large file |
| 263549 | regular files |
| 28022 | directories |
| 5 | character device files |
| 1 | block device file |
| 5 | fifos |
| 615 | links |
| 20618 | symbolic links (19450 fast symbolic links) |
| 5 | sockets |
| 312820 | files |

So, DebConf 10 will be held in New York City! Congratulations to the NYC bid team, now DC10 local team, which managed to provide a sound proposal for 2010. As time allows it, I ll be happy to help out and be there!
I d also like to congratulate Boston s bid, who provided an outstanding proposal, and also the rest of Quito s team, whose bid I led: I think we provided an extraordinary bid to host an important event as DebConf in an amazing city as Quito, and as long as we can keep guaranteeing extraordinary quality, we ll be glad to present the bid for future DebConfs.
Finally, the decision was taken after a long meeting, where we as a Project learnt useful things for future decision meetings. So, DC11 bidders, keep up the good work and enjoy the ride!
I was going to reply to this in the mailing list, but after I spent half an hour furiously typing this, I thought it might be better to put it into a blog, for a slightly wider audience, perhaps a more permanent life and partly in an effort to end this thread on a more or less constructive note.
The backchat for this is that the LCA 2009 video has started to go up on the web, and some talks have some gaps in the audio stream... Russell Coker wants to make a constructive suggestion, as follows:
On Wed, 2009-02-25 at 18:02 +1100, Russell Coker wrote:Thank You.
I have been meaning to write this up for a long time now, since
I
vaguely made a promise to do so last Debconf. I
have also been wondering about the inefficiencies in my work-flow,
but I kept postponing my analysis since there were still large gaps
in my packaging automation since I moved off Arch as my SCM of
choice. However, recently I have taken a sabbatical from Debian, so
I ve had time to complete bits and pieces of my package building
framework, enough so that I could no longer justify putting off the
analysis. I tried writing it up, but the result confused even me;
so I instead recorded every shell command during a recent series of
packaging tasks, and converted that into a nice, detailed, activity
diagram that you see over here. This is as efficient a work-flow as
I have been able to come up with.
details
here
Along with a git commit hook script, that parses the commit log
and adds pending tags to bugs closed in the commit, the figure
above represents my complete work-flow down to the details of
every cd command I executed. I think there are too many
steps still.
Feedback and commentary would be appreciated, as well as any
suggestions to improve efficiency.
There has been some discussion on the Debian development mailing
list
about adding hooks into ucf, to allow people to do
things like committing files into different SCM branches. So, I
thought I would help people out by letting them tell me where hooks
would be useful, and so decided to do an activity diagram for ucf.
Gawd, what a mess. I mean, I wrote this thing, and it boggles even
my mind. See the figure for how horrendous code can get when it
grows organically.
So, I decided to re-factor/redesign ucf, see if I could create a
less complex activity diagram. On analysis, it turns out that ucf
has just five actions it may perform, and which action it takes
depends on which of eight possible states the configuration file is
in.
Gory details
follow
Last week, I couldn't resist and bought myself an Acer Aspire One (AOA 150Ab) netbook. It has 1G RAM, 120G HDD, unfortunately needs a fan, and is the model without 3G modem. It comes with Linpus Linux pre-installed. Looks quite nice, but is obviously ultimately the wrong OS ... Besides, it's locked down quite a bit, there's not even an easy way to start a terminal :-) I still have kept it, in a dual-boot configuration, to play around or show to people.
Installing Lenny went very well, and to make things more fun I'm running quite a few things from experimental: KDE 4.2, xorg 7.4 (1:7.4~5 right now) and Oo.org 3. And, to get DRI2, also the 2.6.28 kernel from the newer-than-sid repository of the kernel team (2.6.28-2~snapshot.12850, but I hear 2.6.28 has now been uploaded.) While the whole thing is fun to use and didn't make any real problems, there are a few remaining issues (yes, this is a Dear Lazyweb posting, feel free to comment. I'll try to add updates to this article as this progresses):
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keys">
<merge key="input.xkb.layout" type="string">ch</merge>
<merge key="input.xkb.variant" type="string">de</merge>
</match>
</device>
</deviceinfo>
I now realize that just installing hal-info from squeeze or sid might also fix the issue.
Next.