Russ Allbery: Review: An Artificial Night
| Series: | October Daye #3 |
| Publisher: | DAW |
| Copyright: | September 2010 |
| ISBN: | 1-101-44276-X |
| Format: | Kindle |
| Pages: | 368 |
| Series: | October Daye #3 |
| Publisher: | DAW |
| Copyright: | September 2010 |
| ISBN: | 1-101-44276-X |
| Format: | Kindle |
| Pages: | 368 |
In cryptography, a Caesar cipher, also known as Caesar's cipher, the shift cipher, Caesar's code or Caesar shift, is one of the simplest and most widely known encryption techniques. It is a type of substitution cipher in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet. [...]
#!/bin/sh IN="MJHVIZN ZPIO YJHPN" for I in $(seq 25); do echo $I $IN tr $(printf %$ I s tr ' ' '.')\A-Z A-ZA-Z done
1 NKIWJAO AQJP ZKIQO 2 OLJXKBP BRKQ ALJRP 3 PMKYLCQ CSLR BMKSQ 4 QNLZMDR DTMS CNLTR 5 ROMANES EUNT DOMUS 6 SPNBOFT FVOU EPNVT 7 TQOCPGU GWPV FQOWU 8 URPDQHV HXQW GRPXV 9 VSQERIW IYRX HSQYW 10 WTRFSJX JZSY ITRZX 11 XUSGTKY KATZ JUSAY 12 YVTHULZ LBUA KVTBZ 13 ZWUIVMA MCVB LWUCA 14 AXVJWNB NDWC MXVDB 15 BYWKXOC OEXD NYWEC 16 CZXLYPD PFYE OZXFD 17 DAYMZQE QGZF PAYGE 18 EBZNARF RHAG QBZHF 19 FCAOBSG SIBH RCAIG 20 GDBPCTH TJCI SDBJH 21 HECQDUI UKDJ TECKI 22 IFDREVJ VLEK UFDLJ 23 JGESFWK WMFL VGEMK 24 KHFTGXL XNGM WHFNL 25 LIGUHYM YOHN XIGOMThe only line which makes sense is 5 ROMANES EUNT DOMUS, giving us our solution.
In cryptography, a Caesar cipher, also known as Caesar's cipher, the shift cipher, Caesar's code or Caesar shift, is one of the simplest and most widely known encryption techniques. It is a type of substitution cipher in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet. [...]
#!/bin/sh IN="MJHVIZN ZPIO YJHPN" for I in $(seq 25); do echo $I $IN tr $(printf %$ I s tr ' ' '.')\A-Z A-ZA-Z done
1 NKIWJAO AQJP ZKIQO 2 OLJXKBP BRKQ ALJRP 3 PMKYLCQ CSLR BMKSQ 4 QNLZMDR DTMS CNLTR 5 ROMANES EUNT DOMUS 6 SPNBOFT FVOU EPNVT 7 TQOCPGU GWPV FQOWU 8 URPDQHV HXQW GRPXV 9 VSQERIW IYRX HSQYW 10 WTRFSJX JZSY ITRZX 11 XUSGTKY KATZ JUSAY 12 YVTHULZ LBUA KVTBZ 13 ZWUIVMA MCVB LWUCA 14 AXVJWNB NDWC MXVDB 15 BYWKXOC OEXD NYWEC 16 CZXLYPD PFYE OZXFD 17 DAYMZQE QGZF PAYGE 18 EBZNARF RHAG QBZHF 19 FCAOBSG SIBH RCAIG 20 GDBPCTH TJCI SDBJH 21 HECQDUI UKDJ TECKI 22 IFDREVJ VLEK UFDLJ 23 JGESFWK WMFL VGEMK 24 KHFTGXL XNGM WHFNL 25 LIGUHYM YOHN XIGOMThe only line which makes sense is 5 ROMANES EUNT DOMUS, giving us our solution.
Animal instincts
With so many candidates to choose from, even our kitty may have found an opportunity in the Animal Justice Party - although that little snack in her claws suggests that she is more interested in the law of the jungle than any political debate. She may want to be wary not to fall under the wheel of the party next to them, Motoring Enthusiasts.
The Senate, a place for convicted hackers?
The next party in the picture is Wikileaks and their number one candidate, of course, is the first person to successfully claim asylum from Australia, Julian Assange. It's no secret that he has a string of convictions for computer hacking in the 90s and that when US authorities catch up with him, their drone won't just be dropping him a letter demanding a $2,100 penalty fine through the window.
So how do they compare?
As I contemplate my decision, lets look at the numbers:
| Party | Seats won in 2010 House of Reps, Senate |
Criminal charges against members in last 3 years |
|---|---|---|
| Labor Party | 72, 31 | 173, mainly fraud |
| Liberal/National coalition (conservative) | 73, 34 | 3, including shoplifting and assault |
| Wikileaks | 0 | None - Assange is not actually charged with any crime |
For me, DebConf13 in Switzerland was a perfect DebConf, and generally an
great developer meeting and conference. I've attended several past DebConfs
in Canada, Norway, Brazil, Finland, Mexico, Scotland, Spain, NYC, Bosnia,
and Nicaragua. I have special memories of each. DebConf13 was ideal in every
way.
Let's start with the camping. Only a minority of us did it, and my campsite
was located in a small field behind a bar that was often noisy
late into the night, when I was trying to rest and preserve
my European jetlag remedy of inverted sleeping schedule. Still, I love
sleeping cocooned in a tent, and going through the routines of camping and
spending time alone there was a good counterpoint to DebConf. I generally
find myself retreating for a day or two in the middle of a week-long
conference, burnt out with social interactions. That didn't happen this
time. I need to find way to camp at future DebConfs.
(Also special shout out to wonderful people who lent me a warmer sleeping
bag, and bought me a pillow while on a trip to town! Upgraded my first
backpacking in Europe experience's comfort level a lot!)
The next perfect thing for me were the talks I gave at DebConf.
I always enjoy presenting at DebConf, and barely remember when I'd get
nervous doing it. But I really felt comfortable giving these
talks in a way I've not before. I'm pleased with how
the Debian Cosmology
talk turned out; I'd worried it would be a downer talk, or too light,
or not well received, and none of those problems surfaced.
I was especially happy with my
dh_busfactor
session, which I prepared for all of 10 minutes and was structured entirely
to benefit me by talking over my thoughts and getting feedback, and in
which I probably drove the camerapeople crazy running my own mic into the
audience. Despite all that, I think it succeeded being interesting for the
participants as well as for me. Hope to follow up on it soon..
But beyond the two talks I submitted, there were a series of ad-hoc
scheduled talks. It seemed that every day I spent at least an hour
discussing something I'm deeply involved in. This started with the
Ikiwiki bof,
and then there was an epic series of (unrecorded) BoFs about git stuff,
which basically turned into an unofficial git track at DebConf.
Much, much discussion of git-annex and other things I'm involved in.
BTW, I really like that DebConf, as well as being a formal conference on
top, is really an un-conference underneath, with new BoFs and things
popping up on the schedule all week long. You can even have completely
unscheduled meetings that somehow get just the right mix of people
to make something awesome happen.
But it wasn't all about talks. Indeed, I only attended 2 or 3 sessions a
day. The DebConf13 venue was controversial, but I found it excellent for
getting things done. Rather than one or two massive rooms that get too
noisy to think in, this venue had many little nooks and crannies
suited for different types of work. There were so many I only discovered
some while walking down the hill as I was leaving the venue! Anchoring it
all was the excellent view, and I particularly enjoyed the "scenic hacklab".
I was particularly impressed with the flexability of the venue's
management. Someone asked if we could have cheese for breakfast, and every
breakfast thereafter had not one but often three excellent cheeses. One day
we'd be complaining that there were not enough vegetables in the food, and
the next we'd be eating an excellent vegetarian Swiss lunch. They even
apparently relaxed stringent Swiss rules on not allowing tents in
sightlines visible from people further up the hill. They were clearly happy
to welcome our crazy gathering to Le Camp. They let a DD borrow and use a
chain saw and build a bonfire!
The venue also encouraged getting out and exploring the surrounding
countryside. Too often I end up spending the whole DebConf without seeing
much of the area around. This time I at least got down the hill to see the
castle in Vaumarcus a few times, and enjoyed many evening walks amoung the
grape fields.
The conference dinner (on a boat!) tied into this well too. And the daytrip
to CERN was a great addition. We got to poke around the control center for a
massive particle accellerator! My only regret is we didn't get a chance to
actually go inside the LHC tunnels.
Back to DebConf, another thing I really liked about this one was that its
location allowed several upstream authors of software in Debian (other than
the usual suspects who are both upstreams and Debian Developers) to attend.
I don't know if Lennart Poettering changed any minds about systemd with his
talk, but I was happy for the opportunity to buy him a beer. I didn't get
to Monty's talk, but it was excellent to see him attend as well.
Finally, I got to meet old friends I'd not seen in years, and new ones I've
not met in real life before. We're still not sure where this whole DebConf
thing is going -- will it be all about the cheese and wine party and
greybeards in 20 years time? But one thing we know is we enjoy our little
slice of the year where kilts and coding are equally unremarkable,
where problems that seem intractable online somehow solve themselves in
person, where we come away with ideas for an entire year and memories for a
lifetime.
git repack -a -d will lead to a single packfile that optimally
contains HEAD, not caring about the history. Also, he showed me how to use
git cat-file. We did a small-scale experiment and the results were
promising. I told him I ll do the experiment of just committing the entire
unpacked source mirror to git and promised to follow up with the results, so
here goes:
stapelberg@couper ~/unpacked master $ time cat <<EOT git cat-file --batch >/dev/null :linux_3.2.32-1/sound/pci/ice1712/aureon.c :linux_3.2.32-1/sound/soc/codecs/sgtl5000.c :linux_3.2.32-1/sound/pci/hda/patch_conexant.c EOT cat <<<'' 0,00s user 0,00s system 62% cpu 0,006 total git cat-file --batch > /dev/null 4,38s user 1,08s system 99% cpu 5,477 total stapelberg@couper ~/unpacked master $ time cat linux_3.2.32-1/sound/pci/ice1712/aureon.c linux_3.2.32-1/sound/soc/codecs/sgtl5000.c linux_3.2.32-1/sound/pci/hda/patch_conexant.c >/dev/null cat linux_3.2.32-1/sound/pci/ice1712/aureon.c > /dev/null 0,00s user 0,00s system 69% cpu 0,006 total stapelberg@couper ~/unpacked master $ time cat <<EOT git cat-file --batch >/dev/null :i3-wm_4.6-1/libi3/font.c EOT cat <<<':i3-wm_4.6-1/libi3/font.c' 0,00s user 0,00s system 51% cpu 0,008 total git cat-file --batch > /dev/null 4,30s user 1,18s system 99% cpu 5,533 total stapelberg@couper ~/unpacked master $ time cat i3-wm_4.6-1/libi3/font.c >/dev/null cat i3-wm_4.6-1/libi3/font.c > /dev/null 0,00s user 0,00s system 0% cpu 0,004 totalEven after repeating those tests a couple of times to get a warm page cache, the result stays the same: git takes about 5 seconds to resolve the deltas in a large repository. Even if this was 5 seconds startup time and a very small amount of additional time per file, it would not be acceptable for our use case. The conclusion is that git is clearly not suitable for this kind of usage, which is not surprising after having heard a couple of times that git does not scale :-). For the curious, the
.git/objects directory is 29 GiB
for roughly 140 GiB of source code, so the delta encoding is quite impressive
in terms of saving space. However, keep in mind that the compressed (!) Debian
source archive is about 35 GiB, so the savings are not that huge.
This is part 5 in a series on organizational design and growth.
What it means
Each of us has a job to do, probably more than one, and our teammates should know what they are. Why it s important
Roles are a kind of standing commitment we make to each other. They re a way of dividing up work which is easy to understand and simple to apply. Utilizing this tool will make it easier for us to coordinate our day to day work, and manage the changes and growth we re going through. Old Status Quo
Roles are vague or nonexistent. Management roles in particular are probably not well understood. Many people juggle multiple roles, all of which are implicit. Moving to a new team means learning from scratch what other people do. People take responsibility for tasks and decisions largely on a case-by-case basis, or based on implicit knowledge of what someone does (or doesn t do). In many cases, there is only one person in the company who knows how to perform a certain function. When someone leaves or goes on vacation, gaps are left behind. New Status Quo
Each individual has a clear understanding of the scope of their job. We have a handful of well defined roles, which are used by multiple teams and have written definitions. People who are new or transfer between teams have a relatively easy time understanding what the people around them are doing. Many day to day responsibilities are defined by roles, and more than one person can fill that role. When someone leaves a team, another person can cover their critical roles. Behaviors that help
Define project roles: when starting something new, make it explicit who will be working on it. Often this will be more than one person, often from different teams. For example, customer-facing product changes should have at least a product owner and an engineering owner. This makes it easy to tell if too many concurrent projects are dependent on a single person, which is a recipe for blockage.
Define team roles: Most recurring tasks should fall within a defined role. An owner of a technical service is an example of a role. An on-call engineer is an example of a time-limited role. There are many others which will depend on the team and its scope.
Define job roles: Have a conversation with your teammates and manager about what the scope of your job is, which responsibilities are shared with other members of the team and which are yours alone.
Getting hung up on titles as ego gratification. Roles are tools, not masters.
Fear that a role limits your options, locks you into doing one thing forever. Roles can be as flexible as we want them to be.
Confused yet? The popular browser extension AdBlock for Chrome/Chromium and Safari has launched a new crowdsourced campaign - to buy up internet advertising space inviting people to download AdBlock, so they can block ads. Additionally, if they raise enough, they'd like to get additional space for a billboard at Times Square, a full page spread in the New York Times, and even a TV slot at the Superbowl (although the target for this is $4.2M, so I'm not entirely confident they'll make it.)
However, this does raise an interesting question, which has been under debate for some time. How do you make money on the internet without adverts? Wikipedia has a few interesting suggestions.
Firstly, affiliate programmes. These mean that any products or services that are linked or searched via the original site earn a little bit of commission for that site. Founded in the mid-90s, and most famously used by Amazon, it's a possible method for getting money. However, it should be deployed with careful thought. If a blogger or reviewer is recommending a product, is it simply because they are being paid to do so, or is it a genuine endorsement? The BBC ban this practice, and the Society of Professional Journalists also has strong guidelines on taking gifts. Interestingly, a few search engines now offer this to browsers for them sending their default search traffic to them.
Secondly, you could engage in (what I consider to be) the shady practice of data monetisation. People visit a website, and they leave data about their visit. By visiting here, you've told me that you're probably interested in technology issues, what country and city you're from, and where you came from. Other programmes and sites will also be able to wrap up what other sites you've visited, and can build up quite a profile of your browsing habits. Add together a rather unscrupulous vendor, and they can also know your contact details. This metadata can then be sold on.
Thirdly, you can essentially ask your readers for money. Donations, via a micropayment link (which I use) or larger donation requests. Another method is to have a membership system, where content is locked up behind a paywall. This does, however, risk making your content less valuable as people will just head elsewhere for news and opinion. To counter this, a couple of sites (LWN, Slashdot) simply delay the latest news for a little while. Alternatively, you can just ask like the fantastic C G P Grey has done. Interestingly, he also has a great video on why advertising can be a bad thing for content creators.
Lastly, you can sell things. This could be your authorship services on another site as a guest post, writing a book, offering consultancy services, or simple merchandise.
In summary though, which is more honest? An advert may well bend your view on what sort of content is being created, but is at least a lot more open than potentially hiding real motives behind affiliate links, and a lot more open than selling data. Asking for money is fairly straightforward, though could easily backfire if it's viewed as begging. Google's advertising income totalled $43.7 billion in 2012 - so it's quite clear that advertising is big business. Websites cost money to run, can the web survive in an ad-free environment? If so, it certainly won't be the same web as we know today.
export OS_AUTH_URL=https://identity.api.rackspacecloud.com/v2.0/
export OS_REGION_NAME=DFW
export OS_USERNAME=<username>
export OS_TENANT_NAME=<clientid>
export OS_PASSWORD=<password>
export OS_PROJECT_ID=<clientid>
export OS_NO_CACHE=1
unset NOVA_RAX_AUTH
unset OS_AUTH_SYSTEM
0.5 of ctioga2, my plotting program. While there is still quite a lot of improvements I'd like to get in some day, the past few days have seen a lot of activity. Probably the most important change is the new space-separated command file format, much simpler than the old one (which is still supported, although marked clearly as deprecated now). Another important change for the users is the large improvement of error reporting: in most cases, ctioga2 pinpoints the exact location where things go wrong; it also features reporting on LaTeX errors. The last important feature is also the introduction of real contour plots, such as the one below, coming from the documentation:Now, I feel like ctioga2 is coming close to gnuplot in terms of features and ease of use. Part of my plans for the website is to create a gnuplot mockup gallery, in which I would take as many examples from the gnuplot website as possible (ie all the ones ctioga2 can reproduce) and compare the code and look of both.Among features I'd like to implement for ctioga2, here are the ones that I think are the most important ones:plot with instruction of gnuplot
after a break, here's again a report about my work on RC bugs. in this case,
all bugs either affect packages in the pkg-perl group and/or packages
involved in the Perl 5.18 transition.
This is an idea that Keith Packard told me. It's a brilliant way to reduce
GitHub's growing lockin, but I don't know how to implement it. And I almost
forgot about it, until I had another annoying "how do I send you a patch
with this amazing git technology?" experience and woke up with my memory
refreshed.
The idea is to allow anyone to git push to any anonymous git://
repository. But the objects pushed are not stored in a public part of the
repository (which could be abused). Instead the receiving repository emails
them off to the repository owner, in a git-am-able format.
So this is like a github pull request except it can be made on any git
repository, and you don't have to go look up the obfuscated contact email
address and jump through git-format-patch hoops to make it. You just commit
changes to your local repository, and git push to wherever you cloned
from in the first place. If the push succeeds, you know your patch is on
its way for review.
Keith may have also wanted to store the objects in the repository in some
way that a simple git command run there could apply them without the git-am
bother on the receiving end. I forget. I think git-am would be good enough
-- and including the actual diffs in the email would actually make this far
superior to github pull request emails, which are maximally annoying by not
doing so.
daemon.pushscript config setting could enable this.
The script could be something like this:
#!/bin/sh set -e tmprepo="$(mktemp -d)" # this shared clone is *really* fast even for huge repositories, and uses # only a few 100 kb of disk space! git clone --shared --bare "$GIT_DIR" "$tmprepo" git-receive-pack "$tmprepo" # XXX add email sending code here. rm -rf "$tmprepo"Of course, this functionality could be built into the git-daemon too. I suspect a script hook and an example script in
contrib/ might be an
easier patch to get accepted into git though.
That may be as far as I take this idea, at least for now..
When starting a new HTML project, a common base is to use
HTML5 Boilerplate which helps by setting up the essential
bits. Such a template is quite useful for both beginners and
experienced developers as it is kept up-to-date with best practices
and it avoids forgetting some of them.
Recently, I have started several little projects written in C for a
customer. Each project was bootstrapped from the previous one. I
thought it would be useful to start a template that I could reuse
easily. Hence, bootstrap.c1, a template for simple projects written
in C with the autotools, was born.
pip.
Bootstrapping a new project is super easy:
$ cookiecutter https://github.com/vincentbernat/bootstrap.c.git Cloning into 'bootstrap.c'... remote: Counting objects: 90, done. remote: Compressing objects: 100% (68/68), done. remote: Total 90 (delta 48), reused 64 (delta 22) Unpacking objects: 100% (90/90), done. Checking connectivity... done full_name (default is "Vincent Bernat")? Alfred Thirsty email (default is "bernat@luffy.cx")? alfred@thirsty.eu repo_name (default is "bootstrap")? secretproject project_name (default is "bootstrap")? secretproject project_description (default is "boilerplate for small C programs with autotools")? Super secret project for humans
supersecret
directory:
.
autogen.sh
configure.ac
get-version
m4
ax_cflags_gcc_option.m4
ax_ld_check_flag.m4
Makefile.am
README.md
src
log.c
log.h
Makefile.am
secretproject.8
secretproject.c
secretproject.h
2 directories, 13 files
$ git init Initialized empty Git repository in /home/bernat/tmp/secretproject/.git/ $ git add . $ git commit -m "Initial import" [...]
$ git ls-tree -r --name-only HEAD \ > xargs grep -nH "T[O]DO:" \ > sed 's/\([^:]*:[^:]*\):\(.*\)T[O]DO:\(.*\)/\3 (\1)/' \ > sort -ns \ > awk '(last != $1) print "" last=$1 ; print ' 2003 Add the dependencies of your project here. (configure.ac:52) 2003 The use of "Jansson" here is an example, you don't have (configure.ac:53) 2003 to keep it. (configure.ac:54) 2004 Each time you have used PKG_CHECK_MODULES macro (src/Makefile.am:12) 2004 in configure.ac , you get two variables that (src/Makefile.am:13) 2004 you can substitute like above. (src/Makefile.am:14) 3000 It's time for you program to do something. Add anything (src/secretproject.c:76) 3000 you want here. */ (src/secretproject.c:77) [...]
configure.ac and Makefile.am.log_warn(),
log_info().
autoconf to generate a configure script, andautomake to generate makefiles using a similar but higher-level language.autoconf. Many of them
are included in the GNU Autoconf Archive and ready to use. The
quality of such macros are usually quite good. If you need to
correctly detect the appropriate way to compile a program with
GNU Readline or something compatible, there is a macro for that.configure.ac and do not add useless macros: a macro should
be used only if it solves a real problem.
Happy hacking!
boilerplate.c would have been a
better name.
#!/usr/bin/env bash
pid=$1
while ps $pid >/dev/null
do
ps -o vsz= $ pid
sleep 0.1
done sort -n tail -n1
FrOSCon is approaching, and
all MirBSD developers will attend but why s there no MirBSD exhibit?
The answer to that is a bit complex. First let s state that of course
we will participate in the event as well as the Open Source world.
We ll also be geocaching around the campus with other
interested (mostly OSS) people (including those we won for this sport)
and helping out other OSS projects we ve become attached to.
MirOS BSD, the operating system, is a niche system. The conference
on the other hand got younger and more mainstream. This means that
almost all conference visitors do not belong to the target group of
MirOS BSD which somewhat is an ancient solution : the most classical
BSD around (NetBSD loses because they have rc.d and PAM and lack
sendmail(8), sorry guys, your attempt at being not reformable doesn t
count) and running on restricted hardware (such as my 486SLC with 12
MiB RAM) and exots (SPARCstation). It s viable even as developer
workstation (if your hardware is supported otherwise just virtualise
it) but its strength lies with SPARC support and embedded x86 . And
being run as virtual machine: we re reportedly more stable and more
performant than OpenBSD. MirBSD is not cut off from modern development
and occasionally takes a questionable but justified choice (such as
using 16-bit Unicode internally) or a weird-looking but beneficial
one (such as OPTU encoding saving us locale(1) hassles) or even acts
as technological pioneer (64-bit time_t on ILP32 platforms)
or, at least, is faster than OpenBSD (newer GNU toolchain, things
like that), but usually more conservatively, and yes, this is by
design, not by lack of manpower, most of the time.
The MirPorts Framework, while technically superiour in enough
places, is something that just cannot happen without manpower.
I (tg@) am still using it exclusively, continuing to update ports
I use and occasionally creating new ones (mupdf is in the works!),
but it s not something I d recommend someone (other than an Mac OSX
user) to use on a n n-MirBSD system (Interix is not exactly thriving
either, and the Interix support was only begun; other OSes are not
widely tested).
The MirBSD Korn Shell is probably
the one thing I will be remembered for. But I have absolutely no idea
how one would present it on a booth at such an exhibition. A talk is
much more likely. So no on that front too.
jupp, the editor which sucks less,
is probably something that does deserve mainstream interest (especially
considering Natureshadow is using it while teaching computing to kids)
but probably more in a workshop setting. And booth space is precious
enough in the FH so I think that d be unfair.
All the other subprojects and side projects Benny and I have, such
as mir c ,
josef stalin, FreeWRT, Lunix Ewe, Shellsnippets, the fonts, etc. are
interesting but share few, if any, common ground. Again, this does not
match the vast majority of visitors. While we probably should push a
number of these more, but a booth isn t it here, either.
MirOS Linux ( MirLinux ) and MirOS Windows are, despite otherwise-saying
rumours called W*k*p*d*a, only premature ideas that will not really be
worked on (though MirLinux concepts are found in mir c and stalin).
As you can see, despite all developers having full-time dayjobs,
The MirOS Project is far from being obsolete. We hope that our website
visitors understand our reasons to not have an exhibition booth of our
own (even if the SPARCstation makes for a way cool one, it s too heavy
to lift all the time), and would like to point out that there are several
other booths (commercial ones, as well as OSS ones such as AllBSD, Debian
and (talking to) others) and other itineries we participate in. This year
both Benny and I have been roped into helping out the conference itself,
too (not exactly unvoluntarily though).
The best way to talk to us is IRC
during regular European geek hours (i.e. until way too late into the
night which Americans should benefit from), semi-synchronously, or mailing lists. We sort of expect you
to not be afraid to RTFM and look up acronyms you don t understand;
The MirOS Project is not unfriendly but definitely not suited for your
proverbial Aunt Tilly, newbies, desktop users, and people who aren t
at least somewhat capable of using written English (this is by design).
start ext2fs: Hurd server bootstrap: ext2fs[device:hd0s1] exec init proc auth INIT: version 2.88 booting Using makefile-style concurrent boot in runlevel S. Activating swap...done. Checking root file system...fsck from util-linux 2.20.1 hd2 : tray open or drive not ready hd2 : tray open or drive not ready hd2 : tray open or drive not ready hd2 : tray open or drive not ready end_request: I/O error, dev 02:00, sector 0 /dev/hd0s1: clean, 44693/181056 files, 291766/723200 blocks done. Activating lvm and md swap...(default pager): Already paging to partition hd0s5! done. Checking file systems...fsck from util-linux 2.20.1 hd2 : tray open or drive not ready hd2 : tray open or drive not ready end_request: I/O error, dev 02:00, sector 0 done. Cleaning up temporary files... /tmp. Mounting local filesystems...done. Activating swapfile swap...(default pager): Already paging to partition hd0s5! done. df: Warning: cannot read table of mounted file systems: No such file or directory Cleaning up temporary files.... Configuring network interfaces...Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on Socket//dev/eth0 Sending on Socket//dev/eth0 *** stack smashing detected ***: dhclient terminated Aborted Failed to bring up /dev/eth0. done. Cleaning up temporary files.... Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix. INIT: Entering runlevel: 2 Using makefile-style concurrent boot in runlevel 2. Starting enhanced syslogd: rsyslogd. Starting deferred execution scheduler: atd. Starting periodic command scheduler: cron. Starting system message bus: dbusFailed to set socket option"/var/run/dbus/system_bus_socket": Protocol not available. Starting OpenBSD Secure Shell server: sshd. unexpected ACK from keyboard GNU 0.3 (debian) (console) login: root [...] root@debian:~# ifup /dev/eth0 Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on Socket//dev/eth0 Sending on Socket//dev/eth0 *** stack smashing detected ***: dhclient terminated Aborted Failed to bring up /dev/eth0. root@debian:~# dhclient -v -pf /run/dhclient.-dev-eth0.pid -lf /var/lib/dhcp/dhclient.-dev-eth0.leases /dev/eth0 Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on Socket//dev/eth0 Sending on Socket//dev/eth0 *** stack smashing detected ***: dhclient terminated Aborted root@debian:~# dhclient -pf /run/dhclient.-dev-eth0.pid -lf /var/lib/dhcp/dhclient.-dev-eth0.leases /dev/eth0 root@debian:~# ifup /dev/eth0 Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on Socket//dev/eth0 Sending on Socket//dev/eth0 DHCPREQUEST on /dev/eth0 to 255.255.255.255 port 67 DHCPACK from 10.0.2.2 bound to 10.0.2.15 -- renewal in 34108 seconds. ps: comm: Unknown format spec root@debian:~# halt Broadcast message from root@debian (console) (Fri Aug 23 19:42:19 2013): The system is going down for system halt NOW! INIT: Switching to runlevel: 0root@debian:~# INIT: Sending processes the TERM signal INIT: Sending processes the KILL signal Using makefile-style concurrent boot in runlevel 0. Stopping deferred execution scheduler: atd. task c10f53f8 deallocating an invalid port 2098928, most probably a bug. Asking all remaining processes to terminate...done. All processes ended within 1 seconds...done. Stopping enhanced syslogd: rsyslogd. Deconfiguring network interfaces...Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on Socket//dev/eth0 Sending on Socket//dev/eth0 DHCPRELEASE on /dev/eth0 to 10.0.2.2 port 67 /dev/eth0 (2): inet address 0.0.0.0 netmask 255.255.255.0 broadcast 10.0.2.255 flags BROADCAST ALLMULTI MULTICAST mtu 1500 done. Deactivating swap...swapoff: /dev/hd0s5: 177152k swap space done. Unmounting weak filesystems...umount: /etc/mtab: Warning: duplicate entry for device /dev/hd0s1 (/servers/socket/26) umount: /etc/mtab: Warning: duplicate entry for device /dev/hd0s1 (/dev/cons) umount: could not find entry for: /dev/cons umount: could not find entry for: /servers/socket/26 done. mount: cannot remount /: Device or resource busy Will now halt. store a new irq 11init: notifying pfinet of shutdown...init: notifying tmpfs swap of shutdown...init: notifying tmpfs swap of shutdown...init: notifying tmpfs swap of shutdown...init: notifying ext2fs device:hd0s1 of shutdown...init: halting Mach (flags 0x8)... In tight loop: hit ctl-alt-del to rebootWith some tiny patches for ifupdown I've been able to resolve network related issues. All of them? Of course not, funny thing about developing for the Hurd is that once you fix one thing, then some other thing or code path is executed that has never been run on Hurd before, and therefore something else breaks. In this case I fixed ifupdown to generate valid names for the pid file and leases file and all of the sudden dhclient starts dying. Funny thing about that is, if one drops the -v flag from the dhclient invocation as I did it above, the crash isn't triggered and once the lease file has been successfully written, it is safe to add the -v flag again. Not yet sure what goes on there, then again, looking at the source of isc-dhcp-client it is not so surprising that it crashes :/ When I first looked at ifupdown it was written in noweb, a literate programming tool. It is an interesting idea, even more so since (classic) c can be very verbose and cryptic. But it decouples the control flow from the structure of the program, which makes patching it quite a challenge since it is not as obvious where the changes have to go in. This is how ifupdown looked some weeks ago:
% wc --lines ifupdown.nw 6123 ifupdown.nw % pdftk ifupdown.pdf dump_data grep NumberOfPages NumberOfPages: 113The ifupdown.nw is the noweb source, from which seven .c, four .h, two .pl and one Makefile are generated. It also contains a redicioulus amount of documentation, to the point that the authors at several points did not now what to write and just drop some nonsensical lines into the file. The source also compiles to a 113 page pdf file, that contains all of the documentation and all of the code, not at all in the order that one would expect a program to be written, but in the order the authors chose to structure the documentation. Fortunately for me the maintainer decided to drop the noweb source and to add the generated files to the source control system. This made my job much easier :) So here are the patches I published this week:
[still no pictures here, feel free to go to gallery.debconf.org].
After my report about DebCamp, &
after being home for 5 days now, here are some thoughts about DebConf13:
First of all, I really enjoyed being there, & this was one of the best
DebConfs for me so far. An important reason for this was the place: Le Camp was in my opinion the best DebConf
venue ever (I've been to), with everything & everyone in one place,
& still enough space (especially outdoors space!) for work &
relaxing. Kudos to the local team for finding this spot, & for sticking
to it despite some criticism.
In general, I'd like to say thanks to the local team for the perfect
organisation of all aspects you did a great job!
What else did I enjoy? As usual, meeting old friends & making new ones
was an important part. It was great to see people I've worked together with
on-line in person for the first time, & also to get to know new people.
Debian not only produces a great operating system, it also is an
awesome community!
Speaking of which: I attended quite a few seesions from the Community and
Team tracks, & it's good to see that lots of energy & thoughts are
going into improving how we deal with new or existing contributors.
Like each year, we had the "use Perl;" BoF, the annual meeting of the Debian
Perl Group, where we discussed
various topics around our tasks, tools, & workflow. As each year, in
a very friendly & collaborative atmosphere.
Besides that, I attended talks about systemd &
upstart; the first one disappointed me, since it felt more like a
sales pitch than a technical talk & the presenter come across alot like
"I know better than you what's good for you", the latter was better but
tried to avoid upstart's main issue, the infamous Canonical Contributor License
Agreement; of course the audience raised this topic in the Q&A part
afterwards. Rock vs. hard place
Other interesting topics were what Debian can learn from Ubuntu's QA
processes for its own testing migration (mail from the Release Team pending,
AFAIK); lots of git stuff, & especially the "birth" of dgit,
a tool to treat the Debian archive as a git remote. If this gets traction,
it could be a revolution in packaging!
The lintian BoF
encouraged me further to try to create some pkg-perl specific
checks, & then there was jenkins, piuparts,
autopkgtest, etc.
On Friday we celebrated Debian's 20th birthday with a huge
Krem nita/Cr meschnitte/mille-feuille. &
with the Poetry Night at the campfire.
Usually I'd close with "See you next year in Portland!"; but since it seems
like the local team has decided to scratch DebCamp (which they only said
after being asked in the Q&A after their presentation), I'm not sure how
attractive this really is for me We'll see.
Thanks again to everyone who made this DebConf possible!
Next.