Search Results: "pm"

18 September 2009

Daniel Kahn Gillmor: Tools should be distinct from Services

Modern daemon implementations can be run in a variety of ways, in a range of contexts. The daemon software itself can be a useful tool in environments where the associated traditional system service is neither needed nor desired. Unfortunately, common debian packaging practice has a tendency to conflate the two ideas, leading to some potentially nasty problems where only the tool itself is needed, but the system service is set up anyway. How would i fix it? i'd suggest that we make a distinction between packages that provide tools and packages that provide system services. A package that provides the system service foo would need to depend on a package that provides the tool foo. But the tool foo should be available through the package manager without setting up a system service automatically. Bad Examples Here are some examples of this class of problem i've seen recently:
akonadi-server depends on mysql-server
akonadi is a project to provide extensible, cross-desktop storage for PIM data. It is a dependency of many pieces of the modern KDE4 desktop. Its current implementation relies on a private instantiation of mysqld, executed directly by the end user whose desktop is running. This means that a sysadmin who installs a graphical calendar application suddenly now has (in addition to the user-instantiated local mysqld running as the akonadi backend) a full-blown system RDBMS service running and potentially consuming resources on her machine.Wouldn't it be better if the /usr/sbin/mysqld tool itself was distinct from the system service?
puppetmaster depends on puppet
Puppet is a powerful framework for configuration management. A managed host installs the puppet package, which invokes a puppetd service to reconfigure the managed host by talking to a centralized server on the network. The central host installs the the puppetmaster package, which sets up a system puppetmasterd service. puppetmaster depends on puppet to make use of some of the functionality available in the package. But this means that the central host now has puppetd running, and is being configured through the system itself! While some people may prefer to configure their all-powerful central host through the same configuration management system, this presents a nasty potential failure mode: if the configuration management goes awry and makes the managed nodes inaccessible, it could potentially take itself out too. Shouldn't the puppet tools be distinct from the puppetd system service?
monkeysphere Build-Depends: openssh-server
The Monkeysphere is a framework for managing SSH authentication through the OpenPGP Web-of-Trust (i'm one of the authors). To ensure that the package interacts properly with the OpenSSH implementation, the monkeysphere source ships with a series of test suites that exercise both sshd and ssh.This means that anyone trying to build the monkeysphere package must pull in openssh-server to satisfy the build-depends, thereby inadvertently starting up a potentially powerful network service on their build machine and maybe exposing it to remote access that they didn't intend. Wouldn't it be better if the /usr/sbin/sshd tool was available without starting up the ssh system service?
Good ExamplesHere are some examples of debian packaging that already understand and implement this distinction in some way:
apache2.2-bin is distinct from apache2-mpm-foo
Debian's apache packaging recently transitioned to split the apache tool into a separate package (apache2.2-bin) from the packages that provide an apache system service (apache2-mpm-foo). So apache can now be run by a regular user, for example as part of gnome-user-share.
git-core is distinct from git-daemon-run
git-core provides the git daemon subcommand, which is a tool capable of providing network access to a git repo. However, it does not set up a system service by default. The git-daemon-run package provides a way for an admin to quickly set up a "typical" system service to offer networked git access.
vblade is distinct from vblade-persist
vblade offers a simple, powerful utility to export a single file or block device as an AoE device. vblade-persist (disclosure: i wrote vblade-persist) provides a system service to configure exported devices, supervise them, keep them in service across system reboots, etc.
Tools are not Services: a ProposalLet's consider an existing foo package which currently provides: I suggest that this should be split into two packages. foo-bin would contain the tool itself, and foo (which Depends: foo-bin) would contain the service configuration information, postinst scripts to set it up and start it, etc. This would mean that every instance of apt-get install foo in someone's notes would retain identical semantics to the past, but packages which need the tool (but not the service) can now depend on foo-bin instead, leaving the system with fewer resources consumed, and fewer unmanaged services running. For brand new packages (which don't have to account for a legacy of documentation which says apt-get install foo), i prefer the naming convention that the foo package includes the tool itself (after all, it does provide /usr/sbin/foo), and foo-service sets up a standard system service configured and running (and depends on foo). Side Effects This proposal would fix the problems noted above, but it would also offer some nice additional benefits. For example, it would make it easier to introduce an alternate system initialization process by creating alternate service packages (while leaving the tool package alone). Things like runit-services could become actual contenders for managing the running services, without colliding with the "stock" services installed by the bundled tool+service package. The ability to create alternate service packages would also mean that maintainers who prefer radically different configuration defaults could offer their service instantiations as distinct packages. For example, one system-wide foo daemon (foo-service) versus a separate instance of the foo daemon per user (foo-peruser-service) or triggering a daemon via inetd (foo-inetd-service). One negative side effect is that it adds some level of increased load on the package maintainers if the service package and the tool package both come from the same source package, then some work needs to be done to figure out how to split them. If the tool and service packages have separate sources (like vblade and vblade-persist) then some coordinating footwork needs to be done between the two packages when any incompatible changes happen. Questions? Disagreements? Next Steps? Do you disagree with this proposal? If so, why? Unfortunately (to my mind), Debian has a long history of packages which conflate tools with services. Policy section 9.3.2 can even be read as deliberately blurring the line (though i'd argue that a cautious reading suggests that my proposal is not in opposition to policy):
Packages that include daemons for system services should place scripts in /etc/init.d to start or stop services at boot time or during a change of runlevel.
I feel like this particular conflict must have been hashed out before at some level are there links to definitive discussion that i'm missing? Is there any reason we shouldn't push in general for this kind of distinction in debian daemon packages? Tags: daemons, packaging, policy

17 September 2009

Lucas Nussbaum: Bootstrapping Centos or Fedora from Debian or Ubuntu

Here are some notes about bootstrapping a Centos or Fedora chroot from Debian. It should also work from Ubuntu with minor changes, but I haven t checked. The following should really be done in a chroot, since some commands will install files in your /etc or elsewhere, ignoring the --installroot passed to yum. The following instructions are for Centos, but replacing all occurences of centos with fedora should work. Update: Jaldhar Vyas pointed me to mach, and Paul Wise to mock. Both packages are available in Debian, but use config files for each release shipped in the package. Unfortunately, both packages are out of date, and don t include Fedora 9 or newer. Also, mock doesn t support Centos.

Anyway, both packages could use a new maintainer. Don t hesitate to jump in!

16 September 2009

Roland Mas: FusionForge 4.7 released

Hot from the oven: FusionForge 4.7 was just released. The release notes follow. If you have local enhancements based on a previous version of GForge, now is the time to port them to the 4.7 codebase and submit them, so they can be merged in time for the next version! Release notes for FusionForge 4.7 This is the first public release of FusionForge. FusionForge is based on GForge, and started as an identical copy, with only a name change to avoid confusion with the proprietary versions of GForge (known as GForge Advanced Server or GForge AS). As such, it benefits from mature code and known-good infrastructure, and builds on it for the future. This 4.7 release is focused on bringing the recent evolutions out to the community in an official stable release. This should provide a solid base as a starting point for community-based development, making it easier for enhancements to be maintained. The FusionForge name was chosen to reflect this: this is a community effort, and we hope to hear about your improvements. Contributing these improvements would make their future long-term maintenance easier for everyone. Major changes since previous versions (of GForge) include: Things to keep in mind when installing: Things to keep in mind when upgrading: For more up-to-date information, please visit http://fusionforge.org/ or http://fusionforge.fusionforge.org/ -- you can even join us on IRC from there! -- The FusionForge development team

Benjamin Mako Hill: Order Without Law

Order Without Law is a fantastic book by Robert Ellickson published in 1991. In a way, the book is an in-depth case study of the irrelevance of law. Subtitled, "how neighbors settle disputes," Ellickson shows how people solve complicated problems in an archetypal area of liability law without knowledge of the law. Ellickson shows that even when people know exactly what the law says, they often ignore it in favor of community norms and, in his examples, models of "neighborliness." Specifically, the book is about how neighbors in northern California settle disputes related to damage caused by roaming cattle, how neighbors construct and share costs of fences, and how, although the law is frequently debated in relation to classifying land as either open or closed to free grazing, the law tends to take a back seat to unwritten norms in the way that problems are actually solved. There is order and a shared understanding of rules in Ellickson's account; it just has very little to do with the law. As part of his description, Ellickson goes into some detail about the types of damage that cattle cause. For example, Ellickson describes how bulls, will often break down barbed wire fences and go on rampages impregnating heifers, eating vast amounts of food, and destroying crops and equipment. When I was on a long bike trip through northern California a few weeks ago, I was sitting under a tree waiting for my cyling partner to catch up. A giant black bull nearby noticed me. Shorting, mooing, and shaking ribbons of slobber from its mouth, it lumbered toward me. Only a rather weak-looking barbed wire fence separated us. All I could think about was Order Without Law.

Isaac Jones: Three Wiki Uses

Over the last few years, I've been pretty immersed in the world of wikis. A wiki is like a collaborative web site; it lets several people view and edit a web page and link to other pages, maybe new pages that they themselves create. Wikis let tech-savvy people all over the world collaborate on a single web page, a single document. That's a pretty powerful idea, really. The obvious thing to do once an idea like wikis appears is to attempt to cram all of humanity's knowledge into it. Well that's just crazy enough to work. Wikipedia is the gold standard of wikis. It's a collaborative encyclopedia with lots and lots of articles. As the gold standard, it influences people's thinking about wikis in ways that might not be quite true. If Wikipedia were the only wiki you'd ever heard of, you might think that wikis are used to create encyclopedias. If that were true, you'd really only need one of them. If Wikipedia were the only wiki you'd ever heard of, you might be under the false impression that all wikis everywhere are editable by anyone. So if you create a wiki page, it's no longer yours. Other people can scribble on it. Well, some kinds of documents perhaps just aren't suitable for being edited by anyone, and the good news is that you can build a wiki for you and your classmates, or you and your coworkers, and you can decide who gets to edit what. I want to think about a few distinct uses for wikis in different contexts. The most common use is of course to create a knowledge repository; a collection of information written by people who know what they're talking about. That's what Wikipedia is, mostly. That's what the Haskell Prime wiki (which I run) is. And the excellent wiki about the game of Go, Sensei's Library, is also a knowledge repository. But there are other uses for wikis that are pretty cool. I often have to work on proposals with my coworkers. One (horrible) way to do this is to write the first draft in MS Word, email it to everyone, who might edit it and email it back. Of course, only one person can actually edit it at a time, otherwise I have to figure out what everyone did and merge their changes by hand. That's what we, in the computer industry, call teh suck. A better way to do this is to use a version control system, which lets multiple people work on a document at one time. Of course, if you're editing evil document formats like Word, still only one person can edit it at a time, but at least you cut out email, so things are a bit better organized. But wikis are actually a really great way to work on a document with another person. Two or more people can each collaborate on the document using the wiki software over the web. What becomes of the document at that point depends on its ultimate use. Maybe you have to convert it to MS Word or PDF at the end. That's a bit of a bummer. So there are two uses of wikis that I've mentioned: building a knowledge repository, and collaborative writing. Google started a service for collaborating on documents called Google Docs & Spreadsheets, which is probably useful for collaborative writing, but not knowledge repositories. They also acquired a wiki startup a few days ago, so they are clearly trying to get all over this space. There's another very interesting use of wikis that I'll call situation awareness. You can get a really vivid picture of this use of wikis if you take a look at the wikipedia article on the July 2005 London bombings. By the way, I didn't discover this excellent example of situation awareness using wikis. I saw it in the slides for a talk, but I don't know the original source at this point. If you go to that link, you'll see an excellent and up-to-date encyclopedia article about the London bombings. It's not a news article. Go to Google News and try to find a news article from a major news source which is this detailed, up-to-date, and well organized. Most articles you'll find are a snapshot, taken at a particular point in time (when the article was published) that most likely contains an account of the latest developments, and usually brief background in case you missed previous stories. The wikipedia article isn't a snapshot, it's an article that explains things in a logical order, which isn't necessarily chronological. Each wikipedia article contains a link to its own history. You can look back over time and see the article evolve. If you look at the early edit history of that London bombing article, you'll notice something fascinating. The article was created shortly after the bombing, with an account of the information that was known at that time. Within an hour, many people had edited the article, adding information they know about. If you were refreshing that wikipedia entry over & over (or if you were subscribed to it using RSS), you'd see not an account of just the latest developments, but an evolving, logical understanding of the attacks. The article started evolving right away, and it continues to evolve to this moment. That's what I'm calling situation awareness. Don't get me wrong, the mainstream news media is quite good at situation awareness. They do it a bit differently, and their articles or TV stories don't become integrated into a knowledge repository like wikipedia. I've enumerated three somewhat overlapping uses for wikis that I think are pretty interesting to examine:
  • Knowledge Repositories, which are a lot like encyclopedias,
  • Collaborative writing, which is a bit like a more elegant version of emailing word documents, and
  • Situation awareness, which isn't so different from the news; it draws from the news as a source, it can also be authored by the eye-witnesses themselves, and each story becomes an integral part of a knowledge repository. I don't claim that these are an exhaustive, nor are they a partition: Wikis are also used for bug tracking and as web discussion forums, for instance. What other categories can you think of? Email me if you have ideas.
  • Dann Frazier: RPM Macros

    I've been working with RPM macros quite a bit lately, and I've noticed some interesting properties. Though mostly obvious after the fact, they are surpisingly underdocumented. Macros don't seem to deal with floating point values. This works:
    %define five 5
    %if 0% ?five  <= 5
      %define string A
    %else
      %define string B
    %endif
    
    While this causes a parse error:
    %define five 5.3
    %if 0% ?five  <= 5
      %define string A
    %else
      %define string B
    %endif
    
    Quoting integers makes comparisons lexical. This will evaluate to false:
    %define five 5
    %if "0% ?five " == "5"
    
    Perhaps the most frustrating one for me was that commented out macros are expanded. This has surprising results if your macro expands to multiple lines. Say my spec file includes the following:
    
    %description
    #%foo                                                                           
    blah
    
    And foo happens to expand to multiple lines:
    %define foo one\
    two\
    three
    
    My description will end up being:
    Description :
    two
    three
    blah
    

    Jeroen van Wolffelaar: Summer of Code

    June is the last month before summer holidays, and at this phase in my study, courses take a lot of time: practical assignments, seminars to give, multiple exams. And mid-June, I'll be attending DebConf in Edinburgh, including delivering a talk about Mole, the subject of my Google Summer of Code project. In the period of April/May students participating in the Summer of Code project had the time to get more familiar with the project they were going to work for. Because I'm already somewhat familiar with Debian, I opted to organize an Etch release party together with some friends, because, well, what better way is there to get to know the community? During the past two weeks I've been really starting with the project. I updated the wiki page, added a new development page where I keep track of my work listing the subtasks I'm working on and their status. The first month will be mostly work on the internals, but starting with the second month I'll also be working on the web interface, meaning that there should be some stuff to show off. At the moment I'm refactoring some bits of Mole that are currently implemented in a hacky way, in order to make it all as extensible as it should be. This includes defining a config file format for mole tables, so that it's no longer necessary to modify the python code for new tables. It also involves some better way of stacking tables to each other, so that the package file extraction code can be moved away from the core of mole into a separate worker to keep mole itself pure and simple and generally applicable. I'll post irregular updates to my blog. I'm looking forward to seeing a lot of you again this Thursday, when I'll arrive in EDI!

    Pete Nuttall: How Random is xkcd?

    I was reading xkcd by clicking on the random link when I noticed that the same cartoons were coming up again and again. I was wondering if this was Confirmation bias on my part or a duff random number generator on the server's part. Randall Munroe is a science geek, and I figured what he would do is test this idea... One python script and 12,000 (approx) requests later, I had a file full of numbers and started trying to remember some statisics. I threw together a quick bit of python to work out the mean and standard deviation (its here). The mean value is 97.4155602788 and the standard deviation is 171.040683155. If they are uniformly distributed from 1 to 361, the expected mean would be 104.211323761 and the standard deviation would be 181.0. So I was lost in thought for a while. However, the following quick check threw some light on the difference.
    >>> data = [int(x) for x in open('numbers.data')]
    >>> for x in xrange(0, 361):
    ...   if x not in data:
    ...     print x
    ... 
    0
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    
    So comics numbered about 338 don't appear. And recomputing the mean and standard deviation for 1 to 337 gives a mean of 97.2830920561 and a standard deviation of 169.0, which is about the mean and standard deviation the data gives. I'm now waiting for someone who actually knows stats correcting me in where I went wrong. The conclusion? I suffer from confirmation bias :-(. For those who like pretty pictures, here is one, courtesy of the Google charts API and pygooglechart: chart of freq against comic number code here

    Ingo Juergensmann: Problems with xrandr/krandr

    For some time now I'm using a dual monitor setup with my Radeon 9200 SE (RV280). Basically this works quite well, except that I need to enter these commands manually:

    CODE:
    xrandr --output VGA-0 --mode 1280x1024
    xrandr --output DVI-0 --auto
    xrandr --output DVI-0 --primary
    xrandr --output DVI-0 --right-of VGA-0


    Without these settings krandr is unable as well to detect both monitors properly. And it's not remembering the settings when I close/save the session by logging out. I tried to add the above code lines in ~/xinitrc as well as in /etc/X11/xinit/xinitrc, but they are not executed as after a restart of X I end up with the wrong monitor being the primary instead of the DVI display.

    My xorg.conf is this:

    CODE:
    Section "ServerLayout"
    Identifier "X.org Configured"
    Screen 0 "Screen0" 0 0
    Screen 1 "Screen2" LeftOf "Screen0"
    InputDevice "Mouse0" "CorePointer"
    InputDevice "Keyboard0" "CoreKeyboard"
    EndSection

    #Section "ServerFlags"
    # Option "Xinerama" "off"
    #EndSection

    Section "Files"
    ModulePath "/usr/lib/xorg/modules"
    FontPath "/usr/share/fonts/X11/misc"
    FontPath "/usr/share/fonts/X11/cyrillic"
    FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
    FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
    FontPath "/usr/share/fonts/X11/Type1"
    FontPath "/usr/share/fonts/X11/75dpi"
    FontPath "/usr/share/fonts/X11/100dpi"
    FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
    EndSection

    Section "Module"
    Load "dbe"
    Load "dri"
    Load "extmod"
    Load "glx"
    Load "record"
    Load "dri2"
    EndSection

    Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    EndSection

    Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "auto"
    Option "Device" "/dev/input/mice"
    Option "ZAxisMapping" "4 5 6 7"
    EndSection

    Section "Monitor"
    #DisplaySize 430 270 # mm
    Identifier "DVI-0"
    VendorName "SAM"
    ModelName "SyncMaster"
    HorizSync 30.0 - 81.0
    VertRefresh 56.0 - 75.0
    Option "DPMS"
    Option "Enable" "true"
    Option "PreferredMode" "1680x1050@60"
    EndSection

    Section "Monitor"
    #DisplaySize 430 270 # mm
    Identifier "VGA-0"
    VendorName "HP"
    ModelName "L1925"
    HorizSync 30.0 - 81.0
    VertRefresh 56.0 - 75.0
    Option "DPMS"
    #Option "Enable" "true"
    Option "LeftOf" "DVI-0"
    #Option "PreferredMode" "1280x1024@60"
    EndSection

    Section "Device"

    Identifier "Card0"
    Driver "radeon"
    VendorName "ATI Technologies Inc"
    BoardName "RV280 [Radeon 9200 SE]"
    BusID "PCI:1:0:0"
    Option "Monitor-DVI" "DVI-0"
    #Option "Monitor-VGA" "VGA-0"
    Screen 0
    EndSection

    Section "Device"
    Identifier "Card1"
    Driver "radeon"
    VendorName "ATI Technologies Inc"
    BoardName "RV280 [Radeon 9200 SE]"
    BusID "PCI:1:0:1"
    Screen 1
    EndSection

    Section "Screen"
    Identifier "Screen0"
    Device "Card0"
    Monitor "DVI-0"
    SubSection "Display"
    Viewport 0 0
    Depth 1
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 4
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 8
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 15
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 16
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 24
    EndSubSection
    Virtual 2960 1050
    Option "InitPrimary" "true"
    EndSection

    Section "Screen"
    Identifier "Screen2"
    Device "Card1"
    Monitor "VGA-0"
    SubSection "Display"
    Viewport 0 0
    Depth 1
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 4
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 8
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 15
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 16
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 24
    EndSubSection
    Virtual 2960 1050
    EndSection


    So, dear lazyweb, what's wrong with this setup and how can I fix it?

    Robert Collins: Back from hiatus


    Well, the new blog seems to be up and running and gathering modest numbers of comments already. Woo. I ve a bunch of mail about test suite performance to gather and refine into a follow up post, but that can wait a day or two. In bzr we suffer from a long test suite, which we let grow while we had some other very pressing performance concerns. 2.0 fixes these concerns, and we re finding the odd moment to address our development environment a little now. One of the things I want to do is to radically reduce the cost of testing inside bzr; code coverage is a great way to get a broad picture of what is tested. Rather than reinvent the wheel (and I ve written one to throw away, so far) are there tools out there that can:
    • build a per-test coverage map
    • do it quickly
    • don t include setUp/tearDown/cleanUp code paths in the map
    • report on the difference between two such maps (at the suite level)
    The third point is possibly contentious, so I should expand on it. While code that is executed by code within the test s run() method is from the outside all part-of-the-test, its not (by definition) the focus of the test. And I find focused tests substantially easier to analyse failures in, because they tend to check preconditions, poke at object state etc. As I want this coverage map to help preserve coverage as we refactor the test suite, I don t want to include accidental coverage in the map.

    15 September 2009

    MJ Ray: Reminder: Meeting about a Koha Foundation

    A quick reminder about the meeting about forming a Koha foundation in a few hours. The agenda and information links are on the wiki. I d really like to see everyone invoved in koha development there, or you could leave comments here for me to take to the meeting. Someone will link a summary and the transcript from the wiki after the meeting.

    14 September 2009

    Ryan Niebur: Padre 0.46 released!

    As of yesterday, Padre 0.46 has been released! thanks to everybody who contributed to this release! Here s the list of new changes for this version: We re including the Perl 5 operators reference, from COWENS s project here, thanks to him for his work on that. Also note that the new extract subroutine refactoring tool may have some rough edges, but it should work fine. And there seems to be a new bug installing this release on Unix-like systems when $DISPLAY is not set (hopefully we ll fix this for the next release).

    Russell Coker: Links September 2009

    The NYT has an interesting article about research into treating insomnia over the internet [1]. I wonder how many other psychological issues can be effectively treated over the net. From next year all Cadbury Dairy Milk Chocolate sold in Australia will be made from fair-trade cocoa [2]. Cadbury Dairy Milk Chocolate is the most popular type of chocolate sold in Australia so this is a significant market shift. For a long time Cadbury has sold fair trade chocolate under the name Green and Black. Of course we now have to wait for Cadbury to use fair trade cocoa in all their other chocolate varieties. Mike Rowe gave an interesting TED talk about the value of manual labour [3]. He suggested that there should be a PR campaign for skilled manual labour jobs and noted that his observation (through his work on his Dirty Jobs TV series) was that the people who do some of the less popular jobs appear to be happier. The GapMinder.org web site has some interesting analysis of statistical information on countries and regions [4]. It is based on the work of Hans Rosling who is well known for his high quality TED talks [5]. Unfortunately the web site requires Flash, I will probably try it out with Gnash some time. Miru Kim gave a TED talk about her work photographing herself nude in abandoned buildings and industrial spaces [6]. Among other things she photographed herself lying naked on a pile of bones in the crypt underneath Paris which is fairly dangerous. I ve visited the crypt, it s an interesting experience but I was very careful to touch nothing you never know which of the bones came from victims of smallpox and other nasty diseases. Strangely they have an ongoing problem of visitors stealing bones, when I visited there were several bones at the exit that had been confiscated from visitors some of which had mummified flesh attached Steinar H. Gunderson wrote a good description of the basics of how the TCP protocol works [7]. He also links to a web page he wrote that will measure your potential TCP throughput and give you information on the link. This is really handy if you are behind some sort of firewall and want to know what is being done to your TCP stream when it s in transit. Apparently Christian couples tend to use a shared email account to reduce the risk of cheating [8]. It s hardly a surprise that Christians have a much higher divorce rate than atheists and agnostics [9]. The NY Times has an interesting article about iPhones overloading the AT&T network [10]. Recently I ve been having some problems sending MMS with my Three phone, some relatives who use Three have been having connection problems in certain areas with marginal signal quality, and the download speed of my Three data connection is significantly reduced (used to be ~70KB/s, now I m lucky to get 20KB/s). I suspect that the new smart phones that are being sold are largely to blame. But the up-side is that when they engineer their network to work properly with the smart phones then my Internet use (ssh and basic web browsing) will work really well. Michael Tieman wrote an interesting blog post about software patents which compares them to Land Mines [11]. Of course this analogy falls down badly while the US is still leading the world in manufacturing land mines. Rebecca Saxe gave an interesting TED talk about how brains make moral judgeents [12]. In her research she did some tests with using magnetic pulses to decrease the function of the region of the brain that allows people to judge the others and she was able to significantly affect the results of judgement tests. Brendan Scott analyses the netbook wars and concludes that it has been a significant loss for Microsoft [13]. ArsTechnica has an analysis of the real word-processing requirements [14], they suggest that in most cases MS-Word (and other word-processor) documents could be replaced with HTML or Wiki pages for a better end result.

    12 September 2009

    Frans Pop: debmirror II - Overview of new features

    I've just uploaded version 2.2 of debmirror, which introduces yet another new feature: mirroring the i18n/Translation files that contain translations of package descriptions. Many thanks to Joerg Jaspert for his quick response to my request to include those files in the Release file. Joerg also implemented the change needed to use the diffs for Contents files but that requires a fairly big code restructuring in debmirror. The package has jumped from version 1.0 to 2.2 in just three weeks (closing 28 bug reports in the process), but I think the changes justify that. Here's an overview.
    If you're currently using the Lenny version of debmirror and would like to use the new features: the package from unstable can be installed on Lenny without any problems. The changes have been well tested, but I would advice to do use --dry-run after the upgrade to check there are no unexpected problems. One area where you may experience problems is when using debmirror for other archives than the official Debian mirrors. If you do encounter issues then please file a bug report.
    Note that debmirror is not intended to be used for official mirrors. There are different scripts available for that from the Debian mirror team.

    11 September 2009

    Sune Vuorela: Matthew Rosewarne

    Over the last months, I have been asking people in KDE irc channels and in Debian KDE channels wether they have heard from Matthew Rosewarne, on irc known as Mukidohime. No one had. Very recently, I uploaded one of his packages with the following changelog entry:
    * Switch Maintainer field to krap team and remove Matthew, he seems absent.
    We hope he comes back.
    Apparantly he was absent. Permanently. Elizabeth Krumbach writes some nice words in his memory. I remember Matthew for his work on several KDE related packages in Debian, always doing a job that was better than I expected. And I especially remember him at Akademy 2008 where he to much joy brought a black horse whip for the chairman of a talkroom. And he even brouht a spare pink horse whip for when the black one broke. Especially Adriaan had a good use of that. And at last, I will bring a image of Matthew showing off his equipment to Aaron Seigo.
    Matthew Rosewarne

    Matthew Rosewarne

    Condolences to his family. Matthew will be missed.

    Ian Wienand: Django toolchain on Debian

    Although Django is well packaged for Debian, I've recently come to the conculsion that the packages are really not what I want. The problem is that my server runs Debian stable, while my development laptop runs unstable, and Django revisions definitely fall into the "unstable" category. There really is no way to use a system Django 1.1 on one side, and a system Django 1.0 on the other. After a bit of work, I think I've got something together that works, and I post it here in the hope it is useful for someone else. This info has been gleaned from similar references such as this and this. This is aimed at running a server using Debian stable (5.0) for production and an unstable environment for development. You actually need both to get this running. This is based on a project called "project" that lives in /var/www
    1. First step is to install python-virtualenv on both.
    2. Create a virtualenv on both, using the --no-site-packages to make it a stand-alone environment. This is like a chroot for python.
      $ virtualenv --no-site-packages project
      New python executable in project/bin/python
      Installing setuptools............done.
      
    3. The unstable environment has a file you'll need to copy into the stable environment - bin/activate_this.py. The stable version of python-virtualenv isn't recent enough to include this file, but you need it to essentially switch the system python into the chrooted environment. This will come in handy later when setting up the webserver.
    4. There are probably better ways to keep the two environments in sync, but I simply take a manual approach of doing everything twice, once in each. So from now on, do the following in both environments.
    5. Activate the environment
      /var/www$ cd project
      /var/www/project$ . bin/activate
      (project) /var/www/project$
      
    6. Use easy_install to install pip
      (project) /var/www/project$ easy_install pip
      Searching for pip
      Reading http://pypi.python.org/simple/pip/
      Reading http://pip.openplans.org
      Best match: pip 0.4
      Downloading http://pypi.python.org/packages/source/p/pip/pip-0.4.tar.gz#md5=b45714d04f8fd38fe8e3d4c7600b91a2
      Processing pip-0.4.tar.gz
      Running pip-0.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Wu9O-U/pip-0.4/egg-dist-tmp-xjSdxq
      warning: no previously-included files matching '*.txt' found under directory 'docs/_build'
      no previously-included directories found matching 'docs/_build/_sources'
      zip_safe flag not set; analyzing archive contents...
      pip: module references __file__
      Adding pip 0.4 to easy-install.pth file
      Installing pip script to /var/www/project/bin
      Installed /var/www/project/lib/python2.5/site-packages/pip-0.4-py2.5.egg
      Processing dependencies for pip
      Finished processing dependencies for pip
      
    7. Install setuptools, also using easy_install (for some reason, pip can't install it). There is a trick here, you need to specify at least version 0.6c9 or there will be issues with the SVN version on Debian stable when you try to get Django in the next step.
      (project) /var/www/project$ easy_install setuptools==0.6c9
      Searching for setuptools==0.6c9
      Reading http://pypi.python.org/simple/setuptools/
      Best match: setuptools 0.6c9
      Downloading http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c9-py2.5.egg#md5=fe67c3e5a17b12c0e7c541b7ea43a8e6
      Processing setuptools-0.6c9-py2.5.egg
      Moving setuptools-0.6c9-py2.5.egg to /var/www/project/lib/python2.5/site-packages
      Removing setuptools 0.6c8 from easy-install.pth file
      Adding setuptools 0.6c9 to easy-install.pth file
      Installing easy_install script to /var/www/project/bin
      Installing easy_install-2.5 script to /var/www/project/bin
      Installed /var/www/project/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg
      Processing dependencies for setuptools==0.6c9
      Finished processing dependencies for setuptools==0.6c9
      
    8. Create a requirements.txt with the path to the Django SVN for pip to install, then and then install it.
      (project) /var/www/project$ cat requirements.txt
      -e svn+http://code.djangoproject.com/svn/django/tags/releases/1.0.3/#egg=Django
      (project) /var/www/project$ pip install -r requirements.txt
      Obtaining Django from svn+http://code.djangoproject.com/svn/django/tags/releases/1.0.3/#egg=Django (from -r requirements.txt (line 1))
        Checking out http://code.djangoproject.com/svn/django/tags/releases/1.0.3/ to ./src/django
      (project) /var/www/project$ pip install -r requirements.txt
      Obtaining Django from svn+http://code.djangoproject.com/svn/django/tags/releases/1.0.3/#egg=Django (from -r requirements.txt (line 1))
        Checking out http://code.djangoproject.com/svn/django/tags/releases/1.0.3/ to ./src/django
      ... so on ...
      
    9. Almost there! You can keep installing more Python requirements with pip if you need, but we've got enough here to start.
    10. Create a file in /var/www/project called project-python.py. This will be the Python interpreter the webserver uses, and basically exec's itself into the virtalenv. The file should contain the following:
      activate_this = "/var/www/project/bin/activate_this.py"
      execfile(activate_this, dict(__file__=activate_this))
      from django.core.handlers.modpython import handler
      
    11. Now it's time to start the Django project. I like to create a new directory called project, which will be the parent directory kept in the SCM with all the code, media, templates, database (if using SQLite) etc. In this way to keep the two environments up-to-date I simply svn ci on one side, and svn co on the other.
      (project) /var/www/project$ mkdir project
      (project) /var/www/project/project$ mkdir db django media www
      (project) /var/www/project/project$ cd django/
      (project) /var/www/project/project/django$ django-admin startproject myproject
      
    12. Last step now is to wire-up Apache to serve it all up. The magic is making sure you specify the correct PythonHandler that you made before to use the virtualenv, and include the right paths so you can find it and all the required Django settings.
      DocumentRoot /var/www/project
      <Location "/">
          SetHandler python-program
          PythonHandler project-python
          PythonPath "['/var/www/project/','/var/www/project/project/django/'] + sys.path"
          SetEnv DJANGO_SETTINGS_MODULE myproject.settings
          PythonDebug On
      </Location>
      Alias /media /var/www/project/project/media
      <Location "/media">
          SetHandler none
      </Location>
      <Directory "/var/www/project/project/media">
          AllowOverride none
          Order allow,deny
          Allow from all
          Options FollowSymLinks Indexes
      </Directory>
      
    With all this, you should be up and running in a basic but stable environment. It's easy enough to update packages for security fixes, etc via pip after activating your virtualenv.

    MJ Ray: Tricky question for a worker co-op: @CooperativeWave

    This isn t a problem which many companies have to deal with. It s simple for lots of them: ignore things like climate change except when laws or public relations (or employee relations?) require otherwise. As far as the company is concerned, the aim is to make money. Not so for the third sector. One of the cooperative principles is to work for the sustainable development of our communities through policies approved by our members (taken from Statement on the Co-operative Identity). I think climate change is real, a threat to sustainable development and can be minimised by human action. But have I got policies approved by TTLLP members about it? Nope. There s usually something more urgent to work on. Not so for the co-operative group. They re supporting The Wave in London on Saturday 5 December 2009 with subsidised transport and more. Will you be there? What do you think of it? If you re a young people , you can also make your views known at Play to Stop - Europe for Climate (the EU and MTV - together at last!).

    10 September 2009

    Mark Brown: ASoC updates in 2.6.31

    Linux 2.6.31 was released today. This was a fairly busy release for the ASoC subsystem, with updates including: Plus lots of updates and fixes to existing code, especially to the OMAP and TWL4030 drivers.

    MJ Ray: Meeting about forming a Koha Foundation, 15 September 2009

    Following suggestions by some other koha developers and with an increasing amount of silence from long-time koha community supporters liblime, we ve called an IRC meeting next Tuesday. We re concerned that our community is currently not sustainable: the withdrawal of any vendor could seriously damage the project. Moving some of the core project resources to a foundation should ensure its continued stewardship. From my own point of view, our co-op internally tries to keep its TruckNumber high and we d like to use a foundation to make sure the Koha project TruckNumber stays high. There are several groups set up for the koha project and some that existed before: can any of them help to make Koha sustainable? Right now, I think TTLLP is the only Koha hoster which isn t a private for-profit corporation. That seems a bit scary for a 10-year-old project. It s time to fix this. The agenda and information links are on the wiki. Hope to see everyone invoved in koha development there!

    9 September 2009

    Matthew Palmer: The Rise and Fall of Wordperfect

    It's been sitting in my browser for so long that I've forgotten where I got it from, but I've just finished reading The Rise and Fall of Wordperfect Corporation, written by W. E. "Pete" Peterson, one of the very early employees of the company, and one of the top people there for many years. It's a really interesting book, giving some insights into what it was like in the early days of "the microcomputer revolution", and with some solid observations of how to (and how not to) run a software company, and manage a very rapidly growing organisation. I'd recommend it to computer historians, software development managers, and business owners.

    Next.

    Previous.