Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-maximum-upload-file-size domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/news.numlock.ch/public_html/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the math-captcha domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/news.numlock.ch/public_html/wp-includes/functions.php on line 6114
Daniel Mettler – Page 25 – A changelog by Daniel Mettler

monotone: a BitKeeper replacement?

As Linus Torvalds mentioned it as the most viable BitKeeper replacement, monotone: distributed version control is on my watchlist now (and it should be on yours too, eventually ;).

I’ve been using subversion/svn for a while now (BTW if you use it, choose FSFS for storage type and DAV for connectivity). It’s pretty okay (way better than CVS, at least) as long as you’re working online and the only one accessing the repository ;) For distributed development (such as with the Linux kernel) it’s less suitable though. Particularly merging conflicting revisions kind of “sucks”. Monotone promises to bring improvements in this field (monotone FAQ):

How do you merge versions?

The merging system is based on a pair of 3-way merges: one set-oriented one at the changeset level to resolve differences in tree layout, and one line-oriented one at the file level, to resolve differences in concurrent edits to the same file. If either of these fail, they are passed off to a user-provided hook function, which invokes emacs ediff mode by default (but can be overridden).

It is important to note that a 3-way merge is not the same as simply “applying patches” in one order or another: we locate the least common ancestor of the merged children in our ancestry graph, calculate the edits on the left and right edges, adjust the right edge’s edit coordinates based on the left edge’s edits, and only then do we concatenate the left and right edges (ignoring identical changes, and rejecting conflicting ones).

Why not use more “sophisticated” merge algorithms, as
in Codeville, Darcs, or
Arch?

A few reasons:

  • We don’t see how Codeville’s algorithm achieves anything beyond
    what we currently do, though we’ll happily listen to explanations.
  • Darcs algorithm is based on patch commuting, which requires a
    fundamentally different representation of versions than ours.
  • Arch’s merges are based on applying patches in various orders.
    While better suited to cherry-picking, only one of them (star-merge)
    seems to provide a 3-way merge; the other two are strictly weaker.
  • In general, we’re afraid of hitting patents. We don’t know exactly what’s
    patented in this field, but so far the 3-way merge has served well.

If you find a better, free merge operator, please let us know!

Hopefully, there will be more choice regarding monotone’s frontends and IDE integration soon.

BitKeeper would be the VCS of choice for me. Unfortunately, it will be closed source software exclusively soon. Due to BK’s high price tag, a commercial license (or leasing) of BK is not an option at the moment.

BTW. Surprisingly, there’s a whole bunch of other interesting VCS projects (most of which I didn’t know).

UPDATES:
1. monotone is available in Gentoo’s Portage tree, ready to be installed (IOW stable) :)
2. svk looks interesting too (particularly if you use svn already). Gentoo ebuilds for svk are masked currently.

exec-shield again

as ingo restarted to publish plain exec-shield patches, i decided to apply his patch again. exec-shield-nx-2.6.11-A8 works nicely with kernel 2.6.11.6. there’s just a minor reject for the makefile:

– EXTRAVERSION =
+ EXTRAVERSION = -exec-shield

either patch the patch or change EXTRAVERSION from “.6” to “.6-exec-shield” manually.

nice document about exec-shield (among others): New Security Enhancements in Red Hat Enterprise Linux v.3, update 3 (PDF). another nice document: Security Enhancements in Red Hat Enterprise Linux (beside SELinux) (PDF). it also features a cool shell script – which is protected by copyright laws (and strict pdf drm settings) unfortunately.

NOTE TO SELF: check for compatibility with vms (jvm, mono). might break a couple of things.

Distributed computation – OpenMosix – Migshm

Need to take a look at Migshm – A MAASK group DSM patch for openMosix (Gentoo patches). Might be useful for transparently distributing Mono/Java apps to leverage the computing power of many nodes in a LAN. Note that only Java apps running on JVMs using green threads are distributable with default OpenMosix. Mono apps aren’t distributable at all as the VM only uses native threads so far (I was told; not verified so far).

I should also re-enable distcc in order to better leverage available computing power.

lim[t=0->inf](The Joel Test(t)) = 12 ?

An old “acquaintance”: The Joel Test: 12 Steps to Better Code

Just stumbled on it again. I don’t agree with all of the points[1], but it can’t hurt to check them in everyday life from time to time.

[1] 9 wrongly neglects budget restrictions, 11 wrongly discriminates people with a deep understanding of CS/IT but little practice in language XY, 12 a) not everybody has a bunch of people at hand for usability testing b) people tend to treat things as “well usable” if it feels or looks familiar even if they’re actually accustomed to very bad habits in regard to usability.

Interview with Hurd developer Marcus Brinkmann

Interview with Hurd developer Marcus Brinkmann | Wikinerds Portal:

Marcus Brinkmann: The Hurd is a multi-server system, running on top of a microkernel. This means that separate features of the kernel, like the network stack, authentication, or the filesystem, are implemented in different user-space processes, and not in the kernel. There are only few real multi-server systems out there, most other microkernel based systems you have heard about actually only run a single server on top of the kernel and thus are very similar to a monolithical kernel like the Unix kernel and its imitations.

The Hurd design goes one step further ahead of other multi-server systems and puts an emphasis on the user’s freedom to extend and enhance the operating system with new features. There is no mutual trust required for the individual components to cooperate. So, for example, the user can start their own filesystem services and attach (“mount”) them to the system’s file system hierarchy. Or a user can ignore the process servers services and start their own process management facilities, that is dissimilar to POSIX.

[Updated] Recommended reading: AST‘s “Modern Operating Systems” (for somewhat outdated implementation details: “Operating Systems Design and Implementation“) and the papers about the L4 microkernel.

State-of-the-art skiing technologies, part VI

In response to State-of-the-art skiing technologies, part V, I was informed about the Austrian edelwiser custom design ski project. You can choose from two hand-made, sandwich technology carving ski models (“Swing” and “Speed”) and design the cover sheet all by yourself! :) A great idea for creative minds, promotional purposes and as a potential prevention against thieves (-> personalize your skis by adding your full name, your e-mail address, your home page URL or similar).

In addition to the trendy life-style orientation of this concept, the skis (which are manufactured in Germany by VR) seem to be of exceptional quality (a positive review of the “Swing” model by carving-ski.de). The combination of both high quality and custom design (enabled through mass-customization via the web) somehow reminds me of Freitag F-CUT bags.

If you’re interested in test-driving edelwiser skis, there will be an edelwiser ski test opportunity in Saas-Fee, Switzerland at the end of March (contact the edelwiser team)

Spring is in the air, but skiing conditions in Switzerland are still great (sunny weather with good snow). It’s particularly good in places with glaciers like Saas-Fee or Zermatt, where you can even enjoy skiing in summer ;)

SkyOS Application (De)Installation Technique Explained

Interesting approach, leveraging file attributes combined with fast file searching:

SkyOS Application (De)Installation Technique Explained

Looks like SkyOS (videos and nice wallpapers) is pretty innovative in other fields as well. For example, I like the fact that its Live-Query application doesn’t hide the query language from its users. It would be nice if Google and co. were esteeming and supporting power users too (I’m still waiting for a search engine that offers a public regexp interface).

Steve Fossett: Virgin Atlantic Global Flyer

Virgin Atlantic Global Flyer : Home Page:

Mission Status: HALFWAY. 07:01:33 UTC at Mission Control. Elapsed Journey time: 30 hours 15 minutes 06 seconds. Distance covered approximately 9,841 nautical miles.

Steve has made it halfway, and is pleased with the progress he has made. He is 275 miles west of Kolkatta (Culcutta) and currently traveling at 300 knots/ 345 mph (ground speed).

At 10:03 UTC (93.4°, 300.00 kts, 46,801 ft, E79.05624, N23.23235) he’s right at the border of PR China (Mission Tracking Page). I hope he will make it! I find it very remarkable that a multimillionaire like Steve Fossett is risking his own life for this great challenge. Good luck! :)

Update: He did it, after about 67 hrs in the air! Congrats!