fopen(file, "w") for binary files, that don't make any difference on Linux and Mac, but that do on Windows...). The release is already available on the rubyforge download page. Gems will be available later on today.To actually make it work on windows, here is what you need to install:cmd.exe) and run:gem install tioga
ctioga2 works on windows, if you run:gem install ctioga2
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.
This week I have mostly:
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.
% settrans -ac cg ./cgroupfs --release-agent=foobar % ls cg release_agent tasks % tail -n3 cg/tasks 11395 12869 1266 % mkdir cg/foo % echo 1266 >> cg/foo/tasks % tail -n3 cg/tasks cg/foo/tasks ==> cg/tasks <== 215 11395 12869 ==> cg/foo/tasks <== 1266To make this fully functional I will have to modify /hurd/proc and most likely also GNU Mach, but on the bright side this will help make subhurds (Hurds native, by-design-for-free-and-without-overhead container like functionality) work better and more securely (among other things this could enable non-root users to start subhurds). I will also look into porting libcg (I have a hacky patch series ready) so that we can actually test the cgroupfs translator. All current users of the cgroup interface are very Linux specific (surprise!), and libcg looks like the easiest one to port. And they do have a test suite that could help me improve the cgroupfs translator.
... and good riddance
Just over 10 years ago now (it really has been that long), I had a
first stab at adding some code to debian-installer to support m68k
machines. As part of that, I invented userdevfs,
a d-i module which would grep dmesg to figure out which hardware is
detected, and would dynamically generate /dev entries based on
that. It made it possible to use debian-installer without too
much trouble on kernels that didn't support autoloading of modules (d-i
expects the absense of a /dev entry to signal the absense of hardware),
while our m68k kernel hadn't gone beyond 2.2 still; but it was always a
bit of an ugly hack.
At the time, I saw it as a short-time necessary evil. When the m68k
port had been kicked from Debian, I would probably have thrown it out.
Had it never been kicked from Debian, all else being equal, I would
probably still have kicked it given a chance, since 2.6 kernels
can now be run on m68k machines. All that is not true, though,
since in the mean time my ugly hack had been repurposed to also work on
ports that did support 2.6 and more recent kernels, but did
not support autodetecting hardware. As such, it's still in
recent Debian releases.
Today, however, I noticed #717872, signalling that as the
one port where it was still needed no longer did, my ugly hack has
finally found its demise.
That is a good thing.
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.
Github is a nice site, and I routinely monitor a couple of projects there.
I've also been using it to host a couple of my own projects, initially as an experiment, but since then because it has been useful to get followers and visibility.
I'm a little disappointed that you don't get to see more data though; today my sysadmin utilities repository received several new "stars". Given that these all occurred "an hour ago" it seems likely that they we referenced in a comment somewhere on LWN, hacker news, or similar.
Unfortunately I've no clue where that happened, or if it was a coincidence.
I expect this is more of a concern for those users who use github-pages, where having access to the access.logs would be more useful still. But ..
Had an afternoon of steak and science fiction. Elysium is only so-so, but
look what we found in a bookstore that was half religious materials and
half SF, local books, and carefully hidden romance novels:
![]() |
I ve been really quiet on the blogging front the last few months. There s been a lot happening in my life. In short, I moved back to South Africa and started working for another company. I have around 10 blog drafts that I will probably never finish, so I m just declaring post bankruptcy and starting from scratch (who wants read my old notes from Ubuntu VUDS from March anyway?)
For what it s worth, I m still alive and doing very well, possibly better than ever. Over the next few months I want to focus my free software time on the Edubuntu project, my Debian ITPs (which I ve neglected so badly they ve been turned into RFPs) and Flashback. Once I ve caught up there s plenty of other projects where I d like to focus some energy as well (LTSP, Debian-Edu, just to name a few).
Thanks for reading! More updates coming soon.
Next.