Search Results: "will"

17 October 2006

Joachim Breitner: openghana.org launched

The idea was not mine, but nobody seemed to do it, so I just did it and created openghana.org: OpenGhana logoIt is meant to be a common domain name and portal for the various Free Software related groups in Ghana, especially Linux User Groups, and I hope it causes synergy effects. We are also thinking what services can be provided on that site. At the moment, there is planet.openghana.org, a blog aggregator with blogs from various members of the Ghanaian Free Software community.

Currently, there are two LUGs on openghana, but I hope that others will join as well.

Jeff Bailey: Redirect versus refresh

I spent the weekend cleaning up my vanity site, CSSizing it and such. Since I moved a few documents around, I wanted to make sure that they were still findable. Most of the site wasn't PHP before (it is now for common navigation / footer includes, etc.) so I had the challenge of how to send people to the new pages.

It's most common to find "refresh" pages, ones that you go and they redirect you to another location with a 0 timeout (and often a cute little notice that says if your browser doesn't DTRT, you should click the link). There doesn't seem to be another meta tag that could do the redirect trivially.

This is another case where PHP wound up being useful. Since I moved my weblog from my homesite to LiveJournal a while ago to let comment spam be Someone Else's Problem, I had that and a whole directory of stuff underneath it that was no longer there.

jbailey@titanium:~/web$ cat weblog.php
<?php
header("HTTP/1.0 301 Document Moved");
header("Location: http://jbailey.livejournal.com/");
exit();
?>


Now works for http://www.raspberryginger.com/jbailey/weblog and any of the directories underneath it. Another side trick to this is that if I had a file foo.html, I can create a foo.html.php file with the same sort of thing in it. Apache's automatic extension tracking will find the .php file and sort it out automatically.

One thing I did discover is that if I have "weblog.tar.gz" and "weblog.php" sitting side by side, apache will prefer the .tar.gz file. *sigh*

Amaya Rodrigo: Ghe is now a DD!

Ghe is now a DD. I know Ranty will be proud, wherever he is. I am also proud, and honored to have been your sponsor and advocate. Welcome on board, brother!

John Goerzen: Goodbye, Dutch Avenue

This morning, we closed on the sale of the house we've been in since 2002.

We're excited about Grandpa's farmhouse that we're having renovated, and it will be great when we get to move in there in December or January.

But it's sad to leave the place that has been home for these last few years. Terah and I got a chance to spend a few last minutes over there today.

All sorts of memories came back. We remembered our long walks up and down the driveway, hand in hand, laughing and talking. We remembered sitting out on the west edge of our property watching the sun set behind the trees. We remembered playing with our cats, having friends and family over, the excitement when we moved in, all the hard work we put into renovating the old part of the house, and so many more things.

We also been looking back and laughing at things that were really pretty annoying at the time: having no water because of ants, having to move out for a few days on Valentine's Day because of a skunk, being without power for most of a week because of ice (and having to cut my way in and out through the driveway).

We'll have memories, photos, and some small souvenirs from our old house. But we'll miss it, too, just like we missed our house in Indianapolis and its pond with attack geese. (That's another story.)

When we moved to Kansas, my grandma, who grew up a few miles away, heard our address and said, "Dutch Avenue! That's right at home for me." It was right at home for us, too.

Joey Hess: Re: The not-so-recent events in Debian

Simon, you have a good point, but while I am not ashamed to admit that I fall on your "rating by others" end of the scale -- happy Debian users make me happy -- much of your analysis seems a bit simplistic and not mindful of the fact that scales include points in between. If Ubuntu only enticed all of our desktop users away, I wouldn't feel very threatened by it. I'd feel disappointed that we lost those users, but I'd see all the other users we have in other areas, and I could be satisfied with that. After all, Windows still has the lion's share of the desktop users, and I don't feel threatened by it. Or by OS X. However, when significant development momentum shifts to Ubuntu, when there are lots of things happening there, I do begin to feel very threatened by it. I begin looking to see if development that's happening on Ubuntu is being contributed back to Debian. I conclude that it's largely a one-way street; any improvement I work on in Debian will get into Ubuntu with nearly 100% probability, but any improvement Ubuntu makes will only get into Debian if someone goes out, reads through a patch, and finds it. See, I'm also motivated by Debian being suitable for many different purposes -- I fall on the other end of your scale too. And I know that I don't want to be today using the software and hardware I was using 5 years ago. And 5 years from now, I won't want to be using the software and hardware I'm using today. My needs will change, things will evolve, and lots of development will be needed for Debian to still be relevant, to still be suitable for all its many purposes. And if much of the development momentum shifts to Ubuntu, and if there is not even a culture of pushing improvements back into Debian, there's a very real possibility that that won't happen. And then those of us all along this interesting Scale of Superiority you describe will have to decide between giving up and going to Ubuntu, or taking up ballroom dancing. I've personally decided that if this happens, I won't be taking the former option; Debian is the last linux distribution I intend to work on.

Biella Coleman: From the Fox to my Galeon

Mozilla/Firefox in a lot of ways was/is the poster child of free software… I mean do you know how many times I was talking to a certain non-technologically-inclined-person who claimed to not know a thing about open source, and then after I asked what browser they were using and when they said Mozilla, I would let them in on the dirty little secret that they were, in fact, in its very bosom, cradled in and by the rhythm of freedom. And they would gleefully respond with some excited variation of “I had NO idea and I love it… those tabs, those plug ins, that speed….blah blah.” I just loved inducing that reaction. But for me my love affair with Firefox is officially over. For many years it was a happy, fulfilling relationship but lately, the little red fox has let me down, acting way too erratic, crashing during those inopportune moments, like when opening a pdf, which would cause the whole apparatus to come crashing down, and all those lovely open tabs, with all that information, would be gone in an instant. For the last 4 months, every time this disdainful event occurred, I would just bemoan and bitch a lot, especially on IRC. Part of me was a loyalist but a bigger part of me was just very very very lazy. With all my bookmarks, with my tool bar, with all my passwords configured JUST RIGHT, I felt enduring the crashes and loss of data was worth it. But no more (admittedly my IRC compatriots were sick of hearing me complain and pretty much demanded that I change). So now I am going to “rediscover the web” but with Galeon. It is up and running and I have transfered a good chunk of my settings over and over the course of the next few weeks I will make the transition. So far so good though there is work to be done, to be sure, to make Galeon into my new love(ly), web browser.

Pierre Habouzit: vim mode for git commits

That's threefold: Now you will have a quite simple syntax colorization for the commit log, and the killer feature is that when you git commit, a vertical split shows the diff while you are commenting it :) I suppose those modes will evolve, please enjoy. Edit: the script was a bit modified to work even when you're not in autochdir mode, thanks to SungHyun Nam from the git-list.

Axel Beckert: Next Shell Quoting Talks

There are a several events coming up where I plan to hold my Shell Quoting Talk: First, there will be the BarCamp Zurich on October, the 28th at ETH Z rich HG and then there will be the 8th Linuxday.at on November, the 18th at the HTL at Dornbirn (Vorarlberg, Austria) organised by the LUG Vorarlberg. It’s also possible that, in addition to the Shell Quoting talk, I’ll also give a talk for beginners about Commandline Helpers. (Probably all the talks will be held in German.) BarCamp Z rich I’m quite curious on both events, for very different reasons. On the one hand, a BarCamp is something completely new for me and it sounds like a very interesting mixture of a real life Wikipedia meeting and a flash mob to me. On the other hand, this year’s Linuxday.at will have several new facettes for me: First there were several changes in the organising team, so I wonder if and in that case how much this will change the face of the event. Then it’s the first Linxuday.at since I live in Zurich, which means it’s the first Linuxday without 1000km travelling during that weekend, so I also have some time to meet friends in the area in advance to or after the event. Yeah!

Benjamin Seidenberg: New Debian maintainer Benjamin Seidenberg

Dear Benjamin Seidenberg! Your account ‘benjamin’ has just been created in the central LDAP database of the Debian project. Please note that it needs a bit of time until this information is synced with all developer-accessible machines. You should be able to login or upload packages after about 30-60 minutes. The password for this account can be found appended to this message, encrypted with your GPG key. Email sent to benjamin@debian.org will be forwarded to astronut@dlgeek.net, to change this visit http://db.debian.org/forward.html.
This has definately made my day. I would like to thank my sponsor and advocate, Anibal Monsalve Salazar, the Debian Cyrus Team (especially Sven and Henrique) and especially my AM, Cl ment Stenac (Zorglub). I couldn’t have asked for a better AM; he answered every mail within a day as far as I remember, was extremely supportive and helpful. I remember when I sent him the last T&S response he appologized on IRC that he couldn’t write the recommendation until that evening, whereas some AMs have taken months to do it.
For those interested in the NM queue’s proccessing time, here is an approximate summery of my progress through NM:
Waiting for advocate: 2.5 weeks (This should have been shorter, I had my advocate lined up, but then there was a question about me signing the key of the guy who signed mine, but I hadn t checked his ID).
Waiting for AM: 6 months
Going through the checks: 2.5 months. (This would have been shorter had it not been right around the end of my senior year of high school, with the mad rush to cram everything in before exams)
Waiting for FD: 1.5 Months
Waiting for DAM: 1.5 Months
Waiting for account creation after DAM approval: 2 months.

16 October 2006

Simon Richter: The not-so-recent events in Debian

During the past years, I have usually kept outside of heated arguments, but since I slipped on debian-private today anyway, I might as well go all the way and write a proper opinion, disguised as an outside view to simulate objectivity. Intellectual Icebergs Episode 10 talks about "Scales of Superiority". Simplified, we have a set of fields that we consider important to us, and where we will go to great lengths (and be irrational about it) to achieve a state where we can feel superior to others. To a large extent, that is what drives us on. If you think ballroom dancing is fun, you pick it up as a hobby, but if you place your "scale of superiority" in this field, you will go beyond that, and train every day, until you finally win the competition. Obviously, this is highly irrational to someone who is just not that "into it", but as they are generally not offended by you secretly sneering at their inferior dancing skillz (because they could hardly care less), this is not a problem. Now, inside Debian, we also have our scales by which we measure our success. For some of us, it is suitability for a particular field or work, for others it is rating by others. Debian has been suitable for a lot of tasks (since it is the universal operating system, after all), and has been held in high esteem for quality, so both camps were happy. So, what has changed? I believe that the biggest change was the advent of Ubuntu, and specifically, the community's reaction to it. A lot of people we considered our peers jumped ship, claiming that Ubuntu was "better". If you only cared about whether Debian was suitable for your needs, then your reaction was probably "good riddance". If you cared about peer rating, you were in hell now, as someone else was getting all the attention (and, since that is what your brain cares about really, all the MOTAS). In short, Debian's status as the superior distribution, your "herd" as the supreme rulers of the land of stability, your entire self-worth as defined by your "scale of superiority" was challenged. This is the situation we're in. Half of us feel threatened by Ubuntu, half of us do not, and to each group the behaviour of the other is completely irrational. Most of the behaviour we have seen in the past years is a direct result from this. The discussion about Ubuntu "not giving back patches" in the proper way was seen as an attempt at building a competitive advantage over Debian. That Ubuntu ships non-free drivers for hardware that is unsupported otherwise is a direct threat, because it allows them superiority in the field of hardware support. Now, with "LTS", they have even challenged our status as the distribution with the longest (heh) security support, while Debian shows severe stamina problems. That my girlfriend runs Ubuntu on her laptop is a direct threat to my masculinity, because I am unable to "perform" a network install on her laptop via wireless LAN. "I am sorry, dear, I have no idea why this device is unsupported, I never had any problems with that before." So we are looking for ways to regain our confidence. Some of us seek superiority by shifting their scales, claiming that while we're not as sexy as Ubuntu, we at least do not tie our users to our desktop, where they have to do kinky stuff to get to a harddisk, with us it is straight fsck, mount, umount. Some of us are trying to recreate Ubuntu's success by copying their methods (mandatory team maintenance, paying core developers) in the hope of eventually surpassing them. I can see that Debian also shares the goal of being a strong "contender" on the desktop, because "universal" simply includes everything, so I can understand that some developers are feeling threatened here. But I think I should ask you to get a broader view here. We are not measured by the number of one-user-only desktop installs we have. While it gives some short term satisfaction, it is not the same thing as a long-lasting installation on an university cluster and watching the users grow from nano to vi users. Debian is behaving as if it had a massive midlife crisis. I think we should try to remain calm here. Because Debian with a wig will not look young, it will look ridiculous, and in the long run, Ubuntu will either grow up, try to become another Debian (which makes them redundant), or they will stay in their niche and score the desktop users, which need not bother us at all, because they are bad in the sack anyway. I'm now going to turn myself in to Dr. Freud, and you go and get laid.

James Morrison: Tricycles

So today was bike to work day. So, I rode to work as usual. However, riding a bicycle was not enough for today. Will and I got some tricycles and rode those around all day. Tricycles are hard to ride.

Joey Hess: paraphrase

You might think that an organisation of over 1000 very smart people could do better. I certianly thought so -- until I sat through one of the Debian debates on -vote. Many of the participants acted the age they must have been when they first learned the mnemonic "Garbage In, Garbage Out." They argued, often quite belligerently, from their own narrow perspectives, unable (or unwilling) to see the situation from anybody else's point of view. [...] bureaucrats, not programmers.
Paraphrased from Rick Fienberg's editorial in November's Sky & Telescope, describing the IAU Pluto definition. The parallel seems amusing, especially since both cases involve silly votes.

Russell Coker: MX vs A record

One issue that has been the topic of some pointless discussion is whether a mail server should have an A record or an MX record. Mail can be delivered to a domain that has no MX record but simply an A record pointing to an IP address. But the most common practice is to have an MX record pointing to the name of the machine that serves the mail. A common use for this is to have a bulk mail hosting machine with multiple MX records pointing at it, which then allows you to have matching forward and reverse DNS entries for the machine name.

If you have no MX record for a domain then Postfix will do the following DNS requests:
IP postfix.34245 > DNS.domain:  3448+ MX? example.com. (32)
IP postfix.34261 > DNS.domain: 50123+ A? example.com. (32)

If you have an MX record then it does the following:
IP postfix.34675 > DNS.domain:  29942+ MX? example.com. (32)
IP postfix.34675 > DNS.domain: 33294+ A? mail.example.com. (37)

Now if there are multiple domains on a bulk mail hosting system then the A record might already be in a local cache on the sending machine, so having bulk mail hosting with MX records may reduce the number of DNS lookups, with the minumum number of lookups being half plus one.

If there is no bulk mail hosting then an MX record would still offer some slight benefits if the positive responses are cached for longer than negative responses. This would mean less lookups which gives faster and more reliable delivery of mail plus being more friendly to the net. I don't know what the cache behaviour is in this regard so I'm not sure if this would actually give a benefit (I'm sure someone will comment with the answer).

Now regardless of these issues I think that using an MX record is the better option. It's what most software expects and saves you from the excitement of discovering corner case bugs in various software that's out there on the net.

Marco d'Itri: Good riddance!

You will not be missed.

Adam Rosi-Kessel: Lawyer-Bashing and the Governor&#8217;s Race

The Massachusetts race for governor has turned very ugly. Even setting my personal partisanship (and professional bias) aside, I’m certain that the blame is not equally shared on both sides. Massachusetts Lawyer’s Weekly says it better than I could, and I reproduce the entire editorial here:
Deval Patrick for governor During the 34-year history of Lawyers Weekly, the paper has never endorsed a candidate for elected office. This practice was borne out of the notion that the political, or societal, issues that dominate races typically outweigh issues that are of distinct interest to lawyers. But the race for governor in Massachusetts in 2006 is suddenly very much about what it means to be a lawyer. On the one hand, we have Democratic nominee Deval Patrick, whose stated policies on judicial independence and appointment of judges (among other issues) reflect a genuine understanding of the legal system. Conversely, Republican nominee Kerry Healey has launched a chilling assault on the practice of law. Healey is running a television ad that takes Patrick to task for his 1985 representation of a defendant accused of murdering a police officer — an ad that borders on the bizarre in its reasoning. “While lawyers have a right to defend admitted cop killers, do we really want one as our governor?” the ad asks. Last week Healey added an ad that references Patrick’s one-time support of convicted rapist Benjamin LaGuer. “What kind of person defends a brutal rapist?” the ad asks. With those misguided questions, Healey has insulted an entire profession. Here’s hoping she does not get away with it. What is Healey’s message? That criminal-defense attorneys somehow should be associated with, or blamed for, the actions of their clients? That protecting important constitutional rights is somehow a seedy business? Healey has resorted to the worst form of pandering, openly inviting voters to think of Patrick as someone who associates with criminals. Her finger-pointing has a flavor of McCarthyism, suggesting that anyone who has spent time in the criminal-defense arena should be identified, called out and avoided. The lieutenant governor proclaims herself a criminal-justice candidate who is tough on crime. Yet nearly everyone associated with the criminal-justice system, be they defense attorneys, prosecutors, police officers or otherwise, understand that the Constitution guarantees the right-to-counsel, and the right to a zealous advocate. Healey no doubt understands this as well, but conveniently ignores it as she paints Patrick a villain. Gov. Mitt Romney knows that diminishing the work of attorneys often makes for good politics. He rarely hesitates to criticize lawyers — or judges — if it suits his agenda. But even Romney has never sunk this low, to this crass sort of demagoguery. Healey has become the bully in the schoolyard, poking fun at the overweight children. Look, he’s a lawyer. He must be a second-class citizen. Deval Patrick, meanwhile, has quietly made it known that he appreciates the key components of the legal system. He favors giving judicial administrators more control over their budgets and pay increases for lawyers who do work for the state, including prosecutors. Patrick says he would devote much attention to selecting judges, returning power to the Judicial Nominating Commission. And the former civil-rights attorney has suggested that he will be careful before criticizing a judge’s decision. “Judges don’t go looking for hard decisions,” he has said. As to the LaGuer matter, Patrick missed an opportunity with a clumsy, disjointed explanation of the matter. Patrick could have simply stated that any efforts he made in helping LaGuer obtain a DNA test were in the pursuit of truth. As former Suffolk County District Attorney Ralph Martin so eloquently put it in an Oct. 8 Boston Globe op-ed article, “I never thought that serving the ideals of the Constitution made you soft or tough on crime. … Respecting the Constitution doesn’t make you soft or tough — it only makes you just and fair.” One need not be defined by one’s profession, of course, and lawyers will have other important matters (i.e., education, taxes) on their minds when they go to the polls on Nov. 7. But attorneys can rest assured that a vote for Deval Patrick guarantees an appreciation for many of the ideals that lawyers deem important — while a vote against Kerry Healey sends a message that lawyers won’t tolerate her unforgivable cheap shots. Do we really want someone who defends accused criminals as our governor? President John Adams, author of the Constitution that Healey swore to uphold as lieutenant governor, defended the accused killers in the Boston Massacre trial. Do you think Adams would have been qualified to be our governor?

Evan Prodromou: 24 Vend miaire CCXV

I'm glad to see that Debian vote 2006-06, to reaffirm support for the Debian project leader, has passed, and that associated counter-proposals to recall the DPL have been defeated. The central issue has been Dunc Tank, a project to raise money to support certain Debian developers with the goal of getting Debian's next release, etch, out on time. There's been more heat than light on this issue over the last few weeks in various Debian- and Linux-related venues (mailing lists to media), and I'm happy to see that we've come to a conclusive resolution and can hopefully put the issue behind us. I've been impressed with Anthony Towns's aplomb in dealing with this issue, and I'm glad that he'll be staying in the DPL seat. We have one of the best, if not the best, Linux-based Operating Systems available. But Debian's late releases have become a laughingstock, and our users have to resort to backports and workarounds to keep running a stable release version of our software. With luck, putting extra resources into getting out a release will serve our users better and restore our reputation for delivering software in a timely fashion. tags:

Daisy, Daisy, give me your answer, do The wp:2001: A Space Odyssey (film) jokes are probably a little too thick on the ground, but I'm glad to see the launch of the HAL Project at le Sans Fil. HAL is a distribution system for getting locally-produced digital art, music and video out on a community wireless project like le Sans Fil. Kinda puts the "community" back into "community wireless"... a great idea. The HAL Project software is of course available for download as an Open Source project, which is good news for other community wireless projects out there. tags:

Robert Collins: 16 Oct 2006

Just landed a sweet feature for bzr: dotted decimal revision numbers. There is a sample log (warning its 2Mb) where you can see this in all its glory. A sneak preview is here:
------------------------------------------------------------
revno: 1986
committer: Canonical.com Patch Queue
Manager<pqm@pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2006-09-06 00:33:01 +0100
message:
  (robertc) Add TestCase.applyDeprecated, a common-case
helper for testing deprecated functions.
    ------------------------------------------------------------
    revno: 1982.3.3
    merged:
robertc@robertcollins.net-20060905231840-bd95f673d0205a81
    committer: Robert Collins <robertc@robertcollins.net>
    branch nick: applyDeprecated
    timestamp: Wed 2006-09-06 09:18:40 +1000
    message:
      Change raise AssertionError to self.fail in the new
applyDeprecated test support method.
    ------------------------------------------------------------
    revno: 1982.3.2
    merged:
robertc@robertcollins.net-20060905230133-2c68611e38fd7922
    committer: Robert Collins <robertc@robertcollins.net>
    branch nick: applyDeprecated
    timestamp: Wed 2006-09-06 09:01:33 +1000
    message:
      New TestCase helper applyDeprecated. This allows you
to call a callable
      which is deprecated without it spewing to the screen,
just by supplying
      the deprecation format string issued for it. (Robert
Collins)
------------------------------------------------------------
revno: 1985
committer: Canonical.com Patch Queue
Manager<pqm@pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2006-09-05 23:13:00 +0100
message:
  (robertc) Add symbol_versioning.deprecation_string, a
helper for establishing what a deprecation warning for a
symbol, version-format pair will look like.
This is really nice for users, because it lets them address revisions in a somewhat more predictable manner than the UUID each revision has. This feature is in the mainline now, look for bzr 0.12 to be able to use it - or grab bzr.dev now!

Paul Wise: 16 Oct 2006

[RV Heraclitus SE Asia voyage: blog photos] So tomorrow, we leave Australia from the administrative center of Thursday Island, just past the northern tip of the Cape York. The past few weeks we've been sailing successfully through the dangers of the Coral Sea. I've seen a lonely seagoing turtle, the fine coral beaches at Lizard Island, sunrises and sunsets, dolphins playing with a fish underneath the bow and surfing the waves, many anchorages we didn't have time to go ashore at, reefs we didn't dive at, a torn sail, huge freight ships doing 20 knots (RVH did 6 maximum so far), kilometers of coconut trees on Chili beach near Lockhart, the hospitality of folks in "the last outpost of civilisation" (Portland Roads), some great Aboriginal art at the Lockhart River Community, amazingly huge white sand dunes on Cape York and lots and lots of ocean. I've felt sea-sickness, home-sickness, missing-the-internet-sickness, love of the sea and an assortment of other emotions. The past weeks have been a huge learning curve, nothing we could have done in port would have been preparation enough for raising anchor, docking, motoring out of the harbour channel, navigating, raising and lowering sails, helming, 30 knot winds and big swell. We've survived so far though and I'm looking forward to open-sea sailing without constant dangers all about, which we will probably get some of during the next 3 weeks sailing to Kupang (Timor). Unexpected, but pleasant, has been the lack of distraction provided by the Internet, I've found I've been able to work on my personal free software projects more effectively without it. That is, when we have generator power available (ships batteries are old and not so good). It is times like these I wish I had 1) a Debian mirror 2) a distributed VCS (quilt will do for now though) 3) tried to get wireless working before I left 4) solar panels.

15 October 2006

Florian Ragwitz: Random seeking on gzip streams

After asking the lazyweb on how to seek on gzip streams I got a very useful and comprehensive reply by Paul Sladen. As my previous searches on this topic didn't turn up to much useful things I'd like to publish Pauls reply (with his approval) here to help other people having the same problem as well:
Paul Sladen:
Seeking on compressed streams is a little like reading sectors from a harddisk; to read one byte requires reading a much large sectors. Two things are needed, the sector size and the sector length. On a hard-disk the sector length is nominally 512 with the mapping between an offset and sector start often as simple as: $offset >> 9. In compressed streams, the relationship between stream position and sector start is non-linear. Using a non-linear mapping is more involved as searching a lookup table is required. Mapping between an uncompressed position instead cannot be calculated and a 'zmap' table listing all sector start position and corresponding on-disk points needs to be created. The size of a sector must be determined aswell. Bzip2: It is fairly easy to seek on compressed bzip2 streams. In a Bzip2 stream, each block is totally separate and self contained---have a look a the 'bzip2recover' program. 'bzip2recover' scans through a bzip2 stream locating each block/'segment' (normally 900kB of input, so ~200kB of compressed output), then copying each segment to separate bzip2 file. Gzip: Seeking on gzip streams is somewhat more involved; Gzip uses a dictionary design where back-references are made to uncompressed data within the last 32kB ("the window"). The only safe place to start reading a 'sector' in a gzip stream is somewhere where that the dictionary size is zero. An empty dictionary occurs at the start of a stream, or where the stream has been 'reset'. Gzip resets: A gzip 'sector' (the length required to be read, to safely decode a byte) could be the full length of the file-size, or could occur more frequently. A gzip sector start occurs when the stream is reset---resetting the stream more frequently leads to more sector starts, but a reduction in compression thanks to less use of the sliding dictionary. Trade-off. The "gzip --rsyncable" is an example of stream resetting; in this case the stream is reset (and the dictionary closed) each time that the sum of the last 4096 octets of input data, modulo 65536(?) equals a magic number (zero normally). In exchange for the extra reset/start points, you get a size increase of 4-5%, but a better "hit rate" for random access. Gzip reset point lookup tables: More likely you'd want to reset the stream every eg. 4096kB of input, then save the corresponding position of the output stream for a give input position. This lookup table of start positions needs to be stored somewhere. 'squashfs' does in a separate file; 'zsync' in the zmap. (If you wanted to define a standard, these reset points could be stored in the 'extra' or 'comment' fields at the start of a gzip file; storing them with a suitable header would enable some degree of seeking for sufficiently intelligent readers---files could be post-processed to add this data). Storing a LUT takes space; adding extra reset points and storing the LUT data for these extra points takes more space---but I found storing the LUT as a set of double-deltas cut it down; could be gzipped aswell. Gzip partial resets: A gzip stream doesn't just contain 'reset' points, but also 'partial reset' points, a partial resets the huffman tables, but doesn't reset the dictionary. It's safe to stop reading at a partial reset (which effectively shortens the sector length). Whilst not normally possible, partial reset points /are/ able to be used as a starting point /if/ you can populate the previous uncompressed 32kB that forms the dictionary window from another source---'zsync' does this when reconstructing a file, however 'zsync' only does construction in a linear fashion, from the start of a file. Further Reading: Magic words to search for: zsync, squashfs, apt-sync, succinct Succinct is my unfinished project. Succinct involves many parts, one of which covers what you're doing. It might be good to break separate off seeking of compressed streams into a separate project---many small pieces make big problems easier! What I might do is store the LUT in the EXTRA field of the gzip header (limited to 64kB though). Though, within 64kB it would always be possible to construct a useful LUT; based on the final length of the input data, it would be possible to reduce the granularity of the LUT such that it only mentioned 50%, 30%... even 5% of reset points. The LUT itself could be gzipped for extra gain. Hope that's useful, -Paul PS. In all the cases (except one) that I mentioned gzip, I probably meant 'zlib' or 'deflate'! :)
In a later mail Paul also added the following:
Paul Sladen:
BTW, in my search around a bit later for something I turned up two more things that might be interesting: dictzip, examples/zran.c in the zlib source 'dictzip' is a similar idea to what I suggested at the end of the previous email. A lookup table is built and stored in the EXTRA section at the start of the gzip file and the utilities ('dictzcat' et al) then use this look-up table for random-access on the data. 'dictzip' are still slightly wide of the mark, forcing a flush/chunk every 58969 bytes. That number is chosen so that even in the worst case, the compressed version will never be more than 216 in length. However I think their math is slightly wrong as even in the worse case, gzip only generates 5 bytes per 32kB for an uncompresed store. -> ~65514 by my reckoning. Squashfs uncompressable chunks by setting the top bit of the file offset to indicate a true store. Their lookup table format appears to be flexible enough that I /might/ be able to create a table by scanning an existing stream rather than re-encoding. Depends about the 64kB limitation. Mmm.
Thanks Paul!

Mike Hommey: Facts about Debian and Mozilla Firefox

There have been quite some comments on the Iceweasel case all over the planets, and I saw several assertions, especially from the Mozilla camp, that I, as the Firefox co-maintainer, the xulrunner maintainer, and (soon) Seamonkey iceape co-maintainer, have to rectify. They broke the –enable-official-branding flag
Half-true. We just replaced Bon Echo/Deer Park with Firefox at the appropriate places in the build tree so that we could have Firefox with the “unbranded” logo instead of the official logo, as Gervase Markham gave us authorization for. You’re still free to enable the official branding, except that since the logos and stuff are non-free, we removed the other-licenses/branding/ directory from the original tarball, thus yes, the flag is half broken. Firefox logos being subject to trademarks, Debian thinks they are not free.
Trademark and copyright are different things. Mozilla has unnecessarily given a non-free license to “clarify” the trademark situation, but that is not required. To make it clear: Debian thinks the logos are not free because they are not free. Period. Debian isn t properly collaborating with Mozilla , sending unusable 100000-lines patches for validation just before releases (as seen on Lucas Nussbaum’s blog)
Let me take the firefox_2.0~rc1+dfsg-1.diff.gz file, strip the debian directory from it (it only contains maintainer scripts, our set of icons and some debian specific searchplugins), and strip the configure diff that is generated by autoconf due to some changes in configure.in… that’s exactly 2654 lines of diff. Very far from the 100000-lines patches they are claiming. The Mozilla people talked about Debian-specific changes that changed frozen APIs, breaking extensions (from Lucas’s blog again).
So, let’s dig into our firefox_2.0~rc1+dfsg-1.diff.gz: That’s not that many changes, and most of them were taken from either some Mozilla CVS trunk or the Mozilla Bugzilla . And most of those that were not taken from there have been sent, except those that really don’t make much sense outside Debian. So, where are these frozen API changes ? And we’re not properly collaborating, huh ? The Mozilla project started by coming to a (admittedly uneasy) agreement with Debian for use of the name, but the Debian version diverged even further from the official version, so the permission was revoked. (from comments on Matthew Garrett’s blog) That one is really interesting, because between the time we got this understanding with Gervase and now, we are actually less diverging from the official version than by then. The main difference by that time was the extensions manager, which, in Debian, needed a lot of changes to actually act as it should, especially with globally installed extensions. I’m not saying the Debian one was perfect, it also had its own problems, but that was a whole lot less than the blatant crap that was the official one, obviously written for Windows without any thoughts for unix, and especially linux distributions. The only main difference now, between the official Firefox and ours, is that our build has the pango backend enabled, which we chose over the Xft backend for several reasons I won’t explain here. The others differences are that we use system libraries where possible, instead of the bundled libpng, libjpeg, libtiff, libmyspell and libcairo. We also build a flat chrome, instead of having everything in .jar files. Now, a little bit about differences the Mozilla guys don’t seem to care about while they really should: distributions build the Mozilla products with gcc 4.x, while the official binaries are built with gcc 3.4, as well as the extensions distributed on addons.mozilla.org. Fortunately, not a lot of extensions make use of binary components, and not a lot are linked against the standard C++ library, but when that happens (like with colorzilla), you get a component linked against libstdc++5 to load on a Firefox that is linked against libstdc++6. You are lucky if that setup doesn’t crash. Little extra from comments in Lucas’s blog:
Is it possible for the Debian Firefox maintainers to create an installer package for contrib which will install the vanilla FireFox from Mozilla s site.
How great would it be to have a package for one architecture instead of 12, and with a dependency on libstdc++5, that almost no other package uses any more. Update:
Debian is going to replace Firefox with a GNU fork called Iceweasel
Half-true. For the etch release, Iceweasel will only be Firefox with a different branding. We are taking the Iceweasel name because it was already know as a possible alternative name for Firefox when the trademark concerns have been raised more than 2 years ago (thanks Nathanael Nerode for this nice name, by the way). It appears that the GNU guys decided to start a fork with this name… that’s quite unfortunate, actually. Anyways, the plan is to get in touch with them to see what we can do together, but with the etch release approaching, we can’t and won’t do more than a rename for the moment. Update 2:
We (Mozilla ) presently have working relationships with most of the major Linux distributions, including Red Hat, Novell, and Ubuntu (As seen in several posts from people of the Mozilla Corporation or Foundation)
Very interesting. Ubuntu uses the same set of patches as Debian, with some more of their own, and even releases beta software in their official releases. But when it’s Ubuntu, it’s fine. Sorry, I forgot Debian is lame, and DDs are frustrated fanatic integrists, on top of being bloody fanatic assholes. Update 3: Added some precisions about other differences with the official binaries, and a small patch I somehow forgot.

Next.

Previous.