Ted's Soapbox on Linux, File systems, and the World on Theodore Ts'o https://thunk.org/tytso/blog/ Recent content in Ted's Soapbox on Linux, File systems, and the World on Theodore Ts'o Hugo -- gohugo.io en-US Sun, 19 May 2019 00:00:00 +0000 Switching to Hugo https://thunk.org/tytso/blog/2019/05/20/switching-to-hugo/ Sun, 19 May 2019 23:19:57 -0400 https://thunk.org/tytso/blog/2019/05/20/switching-to-hugo/ <p>With the demise of Google+, I&rsquo;ve decided to try to resurrect my blog. Previously, I was using Wordpress, but I&rsquo;ve decided that it&rsquo;s just too risky from a security perspective. So I&rsquo;ve decided my blog over to Hugo.</p> <p>A consequence of this switch is that all of the Wordpress comments have been dropped, at least for now.</p> Is Nokia Doomed? https://thunk.org/tytso/blog/2010/12/14/is-nokia-doomed/ Tue, 14 Dec 2010 13:11:39 +0000 https://thunk.org/tytso/blog/2010/12/14/is-nokia-doomed/ <p>There’s been a <!-- raw HTML omitted -->lot<!-- raw HTML omitted --> <!-- raw HTML omitted -->of<!-- raw HTML omitted --> <!-- raw HTML omitted -->discussion<!-- raw HTML omitted --> <!-- raw HTML omitted -->regarding<!-- raw HTML omitted --> whether or not Nokia is Doomed or not.   The people who say Nokia are doomed basically point out that Nokia doesn’t have any attractive products at the high end, and at the low end the margins are extremely thin.  The high end products suffer from the Symbian being essentially dead (even Nokia is recommending that developers not develop native applications for Symbian, but to use Qt instead), and Nokia doesn’t have much of a development community following it, and it certainly does have much in the way of 3rd party applications, either targetting Symbian or Qt at the moment.</p> <p>So what do I think of the whole debate between Tomi and Scoble?  First of all, I think there is a huge difference in American and European assumptions and perspectives, and a big question is whether the rest of the world will end up looking more like Europe or America vis-a-vis two key areas: cost of data plans, and whether phones become much more application centric.</p> <p>Tomi took Apple to task in the comments section of his 2nd article for not having an SD card slot (how else would people share photos with their friends?) and for not supporting MMS in its earlier phones.   My first reaction to that was:  Um, isn’t that what photo-sharing sites are for?    Is it really that hard to attach a photo to an e-mail?  And then it hit me.   In Europe, data is still like MMS a few years ago — a place for <!-- raw HTML omitted -->rapacious carriers to make way too much money<!-- raw HTML omitted -->.  Many European telco’s don’t have unlimited data plans, and charge by the megabyte — and even if you’re lucky enough to live in a country which does have an American-like data plan, the cost of data roaming is still incredibly expensive.  In contrast, in the US, I can pay $30/month for an unlimited data plan, and I can travel 2000 miles south or west and it will still be valid.   Try doing that in Europe!   The US had consumer-friendly data plans much earlier than Europe did, and so perhaps it’s not surprising that Nokia has engineered phones that were far more optimized for the limitations caused by the Europe’s Wireless carriers.</p> <p>The second area of debate where I think Scoble and Tomi are far apart is whether phones of the future are fundamentally about applications or well, making phone calls.   Here I don’t have proof that this is a fundamentally European vs. US difference, but I have my suspicions that it might be.   Tomi spent a lot of time dwelling on how Nokia was much better at making phone calls (i.e., better microphones, better radios, etc).   And my reaction to that was, “Who cares?  I rarely use my phone for making phone calls these days!”   And that was certainly one of the reasons why I gave up on Nokia after the E70 — its contacts database was garbage!   It was OK as a phone directory, but as a place for storing multiple addresses and e-mail addresses, it didn’t hold a candle to the Palm PDA.   And that’s perhaps the key question — how much is a smart phone and about being a “phone”, versus being a “PDA” (and these days I want a cloud-synchronized PDA, for my calendar, contacts, and todo lists), and how much is it about applications?</p> <p>This is getting long, so I think I’ll save my comments about whether I think Meego will be an adequate savior for Nokia for another post.  But it’s worthwhile to talk here about Tomi’s comments about most smartphones being much cheaper than the “luxury” iPhone, and so it doesn’t matter that Nokia’s attempt in the higher end smart phones has been a continuous history of <strong>fail</strong>.   First of all, it’s worth noting that there are much cheaper Android phones available on the market today, which are price-competitive with Nokia’s low-end smartphones (i.e., available for free from T-Mobile in the States with a two year commitment).  Secondly, the history in the computer market over the last twenty years is that features inevitably waterfall into the cheaper models, and prices will tend to drop over time as well.  Apple started only with the iPod, but over time they added the iPod Nano and the iPod Shuffle.  And it would not surprise me if they introduce a lower-end iPhone as well in time as well.   It would shock me if they aren’t experimenting with such models even as we speak, and have simply chosen not to push one out to the market yet.  So even if you buy Tomi’s argument that the high-end smartphones don’t matter, and you only care about volume, and not about profit margins (talk to the people at Nokia that will need to be laid off to make their expenses match with their lowered revenue run rates; I bet they will care), the question is really about whether Nokia has time to execute on the Meego vision before it’s too late and the current application-centric smartphone ecosystems (Android and iPhone) start eating into the lower-end smartphone segment.   More on that in my next post.</p> Android will be using ext4 starting with Gingerbread https://thunk.org/tytso/blog/2010/12/12/android-will-be-using-ext4-starting-with-gingerbread/ Sun, 12 Dec 2010 13:18:05 +0000 https://thunk.org/tytso/blog/2010/12/12/android-will-be-using-ext4-starting-with-gingerbread/ <p>I received a trackback from Tim Bray’s <a href="http://android-developers.blogspot.com/2010/12/saving-data-safely.html">Saving Data Safely</a> post on the Android Developer’s blog to my <!-- raw HTML omitted -->Don’t fear the fsync!<!-- raw HTML omitted --> blog entry, so I guess the cat’s out of the bag.  Starting with Gingerbread, newer Android phones (starting with the Nexus S) will be using the ext4 file system.  Very cool!  So just as IBM used to promote Linux by saying that it was scalable enough to run on everything between watches and mainframes, I can now talk about ext4 as running in production on cell phones to Google data centers.</p> <p>How much am I worried about Tim Bray’s caution to Android programmers that they use fsync() correctly?   Not a lot.  Sure, they should make sure they use fsync(), or if they want to be clever, sync_file_range(), to make sure files are appropriately written to disk (or, in Android’s case, to flash).   But unlike Ubuntu’s running on random PC’s, with users downloading the latest (possibly buggy) Nvidia drivers, handset manufacturers test their systems very carefully before they let them ship.  So if there are any problems, they tend to be found before the phone ships to end-users.  So at least in my experience, my Nexus One has been very reliable; it’s never crashed on me.   So the chances of random crashes when you exit the 3D game (as one Ubuntu user reported — and considered acceptable?!? — I’d be roasting Ubuntu and/or Nvidia under a slow fire if that was a reliably reproducible bug, not considering it par for the course) are very remote.   And fsync() is important if systems crash or aren’t shut down cleanly.  Still, if users are randomly ripping out their batteries to turn off their cell phone in a hurry, because they’re too impatient to wait for a controlled shutdown, then sure, we might have problems, and it’s a good reason for application writers to use fsync() correctly.</p> <p>By the way, I had nothing to do with the choice to use ext4 on Android.  So if you’re curious about why ext4 was chosen, I can’t say anything authoritatively, since I wasn’t consulted before the decision was made (although obviously I’m delighted).   As far as I can tell after the fact, one of the reasons for choosing ext4 was better performance, especially in the light of dual-core ARM CPU’s which are becoming available in large quantities in the near future; YAFFS is single threaded, so it would have been a bottleneck on dual-core systems.  Why not btrfs?   Well, for all of btrfs’s features, it’s not out of beta yet, and Gingerbread is shipping today.  (Well, in less than a week to Best Buy, if we want to be precise.)</p> <p>This is another reason why I’m glad to see ext4 being used on Android is that it validates my decision to keep working on ext4 2-3 years ago, even though newer filesystems like btrfs were promised to be coming down the pike.   As I’ve said many times before, <!-- raw HTML omitted -->file systems are like fine wine<!-- raw HTML omitted -->, and they take many years to mature.  So having ext4 ready today is a great way of giving more choices to developers and system administrators about what file system they want to use.</p> Working on Technology at Startups https://thunk.org/tytso/blog/2010/12/06/working-on-technology-at-startups/ Tue, 07 Dec 2010 03:19:57 +0000 https://thunk.org/tytso/blog/2010/12/06/working-on-technology-at-startups/ <p>Richard Tibbetts has called me out for <!-- raw HTML omitted -->conflating Web 2.0 startups with all startups<!-- raw HTML omitted --> in my recent blog posting, “<a href="https://thunk.org/tytso/tytso/blog/2010/11/29/google-has-a-problem-retaining-great-engineers-bullcrap/">Google has a problem retaining great engineers? Bullcrap</a>”. His complaint was that I was over generalizing from Web 2.0 startups to all startups.</p> <p>He’s right, of course. The traditional “technology startup” by definition does have a large amount technology work that needs to be done, in addition to the business development work. However, things have changed a lot even for technology startups. Consider a company like Sequent Computer Systems, which started in 1983. At the time the founders had a key idea, which was to use multiple commodity intel CPU’s to create first SMP, and then later, NUMA minicomputers. But in order to do that, they had to design, build and manufacture a huge mount of hardware, as well as develop a whole new Unix-derived operating system, just to bring that core idea to market.</p> <p>These days, the founder or founders will have a core idea, which they will hopefully patent, to prevent competitors from replicating their work, just as before. However, these days there is a huge selection of open source software so there is much less technology that needs to be re-developed / re-invented in order to bring that idea to market. From Linux and BSD at the operating system level, to databases like MySQL, Apache web servers, etc., there is an awful lot for the startup to chose from. This is all goodness, of course. But it means that most of the technology developed in a typical startup will tend to be focused on supporting the core idea that was developed by the founder. If a company is focused on databases, they probably won’t be interested in supporting me to do my file system work. Why should they? There’s lots of open source file systems they can use; one of them will probably meet their needs.</p> <p>So while it’s obvious that you can do technology at large variety of companies, of different sizes, I don’t think it’s arrogance to say that there are certain types of technology that can only be done at Google, or maybe at a very small subset of other companies. I’m pretty confident, for example, that Google has the world’s largest number of computers in its various data centers around the world. That means there are certain things that don’t make sense at other companies, but which absolutely makes sense at our scale. In addition, Google’s business model means allows us to pursue open source projects such as Chrome and Android that wouldn’t make sense at other companies. With Android in particular, it means that multiple firmware updates for any given handset model, if it causes people to use the web more and drive more advertising revenue, makes sense and so it’s something we can pursue — in comparison to Nokia, which gets its revenue from hardware sales, so a firmware update that extends the life of a handset is actually a bad thing for them; better to force you to upgrade an handset every year or two.</p> <p>So I think Richard misunderstood me if he thought I was trying to make the argument that Google is the only place where you can do interesting technical work. That’s obviously not true, of course. But I do think there are many examples of technical work which don’t make business sense to do at smaller companies, and startups in particular have to be very much focused on bringing the founder’s idea to market, and all else has to be subordinated to that goal.  And one of the most interesting developments is how the combination of commoditized and standardized hardware, and comoditized software in the form of open source, has changed the game for startups.</p> <p>For most startups, though, open source software is something that they will <em>use</em>, but not necessarily develop except in fairly small ways.   Many of the economic arguments in favor of releasing code as open source, and dedicating a significant fraction of an engineer’s time to serve as a OSS project maintainer or kernel subsystem maintainer, are ones that make much more sense at a very large company like Google or IBM.   That’s not because startups are evil, or deficient in any way; just the economic realities that at a successful startup, everything has to be subordinated to the central goal of proving that they have a sustainable, scalable business model and that they have a good product/market fit.  Everything else, and that includes participating in an open source community, is very likely a distraction from that central goal.</p> Close the Washington Monument https://thunk.org/tytso/blog/2010/12/02/close-the-washington-monument/ Thu, 02 Dec 2010 20:56:37 +0000 https://thunk.org/tytso/blog/2010/12/02/close-the-washington-monument/ <p>Bruce Schneier has written an absolutely powerful essay in his blog, with the modest proposal that in response to the security worries at the Washington Monument, <!-- raw HTML omitted -->we should close it<!-- raw HTML omitted -->.</p> <p>If you haven’t read it yet, run, don’t walk, to his blog and read it.  Then if you live in the States, write to your congresscritters, and ask them to reinsert the backbone which they have placed in a blind trust when they got elected, and tell the TSA that they have a new mandate; to provide as much security as possible without compromising our freedom, privacy, and American Ideals.   Right now, they have an impossible job, because they have been asked to provide an absolute degree of security.  And in trying to provide the impossible, the terrorists have already won…</p> Google has a problem retaining great engineers? Bullcrap. https://thunk.org/tytso/blog/2010/11/29/google-has-a-problem-retaining-great-engineers-bullcrap/ Mon, 29 Nov 2010 18:57:27 +0000 https://thunk.org/tytso/blog/2010/11/29/google-has-a-problem-retaining-great-engineers-bullcrap/ <p>Once again, there’s been <!-- raw HTML omitted -->another story<!-- raw HTML omitted --> about how Google is having trouble retaining talent.   Despite all Eric Schmidt’s attempts to tell folks that <a href="http://www.youtube.com/watch?v=AKOWK2dR4Dg#t=14m52">Google’s regretted attrition rate has not changed in seven years</a>, this story just doesn’t want to seem to die.   (And those stories about Google paying $3.5 million and $7 million to keep an engineer from defecting to Facebook?   As far as I know, total bull.  I bet it’s something made up by some Facebook recruiter who needed to explain how she let a live prospect get away.  🙂</p> <p>At least for me, the complete opposite is true.   There are very few companies where I can do the work that I want to do, and Google is one of them.   A startup is totally the wrong place for me.   Why?  Because if you talk to any venture capitalist, a startup has one and only one reason to exist: to <a href="http://steveblank.com/2010/01/25/whats-a-startup-first-principles/">prove that it has a scalable, viable business model</a>.   Take diapers.com for example.   As <a href="http://www.businessweek.com/magazine/content/10_42/b4199062749187.htm">Business Week described</a>, while they were proving that they had a business model that worked, they purchased their diapers at the local BJ’s and shipped them via Fedex.   Another startup, Chegg, proved its business model by using Amazon.com to drop ship text books to their first customers.  (The venture capitalist Mark Maples talked about this in a <a href="http://vimeo.com/16098382">brilliant talk at the Founders Showcase</a>; the Chegg example starts around 20:50 minutes in, but I’d recommend listening to the whole thing, since it’s such a great talk.)   You don’t negotiate volume discounts with textbook publishers, or build huge warehouses to hold all of the diapers that you’re going to buy until you prove that you have a business model that works.</p> <p>Similarly, you don’t work on great technology at a startup.  Startups, by and large, aren’t about technology — at least, not the Web 2.0 startups like Facebook, Foursquare, Twitter, Groupon, etc.   They are about business model discovery.  So if you are fundamentally a technologist at heart, whose heart sings when you’re making a better file system, or fixing a kernel bug, you’re not going to be happy at a startup.   At least, not if the startup is run competently.   If you have the heart of an entrepreneur, and you are willing to roll the dice (since 9 out of 10 startups go belly up; those are the ones that failed to find a viable business model), then sure, go for a startup.  And understand that your job will be to make something that works well at a small scale, quick, dirty, and cheap.  If that means using some proprietary software, then that’s what you should do.  Hopefully you’ll get lucky and win the IPO lottery.</p> <p>But if your primary interest is to doing great engineering work, then you want go to company that has a proven business model.  Google has enough scale that I can sleep well knowing that improvements I am making to Linux and the ext4 file system are saving enough money for the company that Google is making a profit on me.  That is, the value Google is getting out of my work is worth many multiples of my total compensation.   And that’s a position that every engineer should strive for, since that’s how you can be confident that you will remain gainfully employed.   The fact that I can do what I love, and go to conferences, and all of my work is open source — that’s just total icing on the cake.  🙂</p> I have the money shot for my LCA presentation https://thunk.org/tytso/blog/2010/11/01/i-have-the-money-shot-for-my-lca-presentation/ Tue, 02 Nov 2010 02:52:52 +0000 https://thunk.org/tytso/blog/2010/11/01/i-have-the-money-shot-for-my-lca-presentation/ <p><img src="https://thunk.org/tytso/tytso/images/large_file_creates-bio_patch.jpg" alt=""></p> <p>Thanks to Eric Whitney’s <!-- raw HTML omitted -->benchmarking results<!-- raw HTML omitted -->, I have my <!-- raw HTML omitted -->money shot <!-- raw HTML omitted -->for my upcoming <!-- raw HTML omitted -->2011 LCA<!-- raw HTML omitted --> talk in Brisbane, which will be about how to improve scalability in the Linux kernel, using the case study of the work that I did to improve scalability via a series of scalability patches that were developed during <!-- raw HTML omitted -->2.6.34<!-- raw HTML omitted -->, <!-- raw HTML omitted -->2.6.35<!-- raw HTML omitted -->, and <a href="http://free.linux.hp.com/~enw/ext4/2.6.36-rc6">2.6.36</a> (and went into the kernel during subsequent merge window).</p> <p>These benchmarks were done on a 48-core AMD system (8 sockets, 6 cores/socket) using a 24 SAS-disk hardware RAID array.  Which is the sort of system which XFS has traditionally shined on, and for which ext3 has traditionally not scaled very well at.  We’re now within striking distance of XFS, and there’s more improvements to ext4 which I have planned that should help its performance even further.   This is the kind of performance improvement that I’m totally psyched to see!</p> sshkeygen.com: A web-based ssh key generator https://thunk.org/tytso/blog/2010/04/08/sshkeygen-com-a-web-based-ssh-key-generator/ Thu, 08 Apr 2010 18:50:43 +0000 https://thunk.org/tytso/blog/2010/04/08/sshkeygen-com-a-web-based-ssh-key-generator/ <p>This is so very, very, wrong — enough so that my first thought was, “this web site brought to you by China and the letters ‘M’, ‘S’, and ‘S'”.</p> <p>I’m curious how many people were stupid enough to use this to generate keys that they actually use in production, but I’m afraid the answer would seriously depress me.</p> The history of General Tso’s Chicken https://thunk.org/tytso/blog/2010/03/17/the-history-of-general-tsos-chicken/ Wed, 17 Mar 2010 15:38:20 +0000 https://thunk.org/tytso/blog/2010/03/17/the-history-of-general-tsos-chicken/ <p>I just came across <!-- raw HTML omitted -->this story<!-- raw HTML omitted --> (<a href="http://goo.gl/EbqP">http://goo.gl/EbqP</a>) today, and given my name, and given that I fancy myself a <!-- raw HTML omitted -->bit of a foodie<!-- raw HTML omitted -->, who could resist?  (Not that I considered the deep-fried, dunked-in-sugar-syrup mess that passes for General Tso’s chicken in most fast food Chinese restaurants to be gourmet food, mind you!)</p> <blockquote> <p>Here’s the first thing you should know: The general had nothing to do with his chicken. You can banish any stories of him stir-frying over the flames of the cities he burned, or heartbreaking tales of a last supper, prepared with blind courage, under attack from overwhelming hordes. Unlike the amoeba-like mythologies that follow so many traditional dishes, the story of General Tso’s chicken is compellingly simple. One man, Peng Chang-kuei — very old but still alive — invented it.</p> <p>But what’s “it”? Because while chef Peng is universally credited with inventing a dish called General Tso’s chicken, he probably wouldn’t recognize the crisp, sweet, red nuggets you get with pork fried rice for $4.95 with a choice of soda or soup. All that happened under his nose. It all got away from him…</p> </blockquote> The Transitive Grace Period Public Licence: good ideas come around… https://thunk.org/tytso/blog/2010/01/20/the-transitive-grace-period-public-licence-good-ideas-come-around/ Wed, 20 Jan 2010 23:23:59 +0000 https://thunk.org/tytso/blog/2010/01/20/the-transitive-grace-period-public-licence-good-ideas-come-around/ <p>I recently came across the <a href="http://zooko.com/tgppl.html" title="TGPPL">Transitive Grace Period Public License</a> (<a href="http://allmydata.org/source/tahoe/trunk/COPYING.TGPPL.html">alternate link</a>) by <a href="http://zooko.com">Zooko Wilcox-O’Hearn</a>.  I fonud it interesting because it’s very similar — almost identical — to something I had first starting floating about ten years ago.  I called it the <!-- raw HTML omitted --> (TPL).  I’m sure this is a case of “great minds think alike”.  One things that I like about my write up is that I gave some of the rationale behind why this approach is a fruitful one:</p> <blockquote> <p>A while ago, I was talking to Jim Gettys at the IETF meeting in Orlando, and the subject of software licensing issues came up, and he had a very interesting perspective to share about the X Consortium License, and what he viewed as bugs in the GPL.</p> <p>His basic observation was this: Many companies made various improvements to the X code, which they would keep as proprietary and give them a temporary edge in the marketplace. However, since the X code base was continually evolving, over time it became less attractive to maintain these code forks, since it would mean that they would have to be continually merging their enhancements into the evolving code base. Also, in general, the advantage in having the proprietary new feature or speed enhancement typically degraded over time. After all, most companies are quite happy if it takes 18-24 months for their competitor to match a feature in their release.</p> <p>So sometime later, the companies would very often donate their previously proprietary enhancement to the X consortium, which would then fold it into the public release of X. Jim Gettys’ complaint about the GPL was that by removing this ability for companies to recoup the investment needed to make major developmental improvements to Open Source code bases, companies might not have the incentive do this type of infrastructural improvements to GPL’ed projects.</p> <p>Upon reflection, I think this is a very valid model. When Open Vision distributed the Kerberos Administration daemon to MIT, they wanted an 18 month sunset clause in the license which would prevent commercial competitors from turning around and bidding their work against them. My contract with Powerquest for doing the ext2 partition resizer had a similar clause which kept the resizing code proprietary until a suitable timeout period had occurred, at which point it would be released under the GPL. (Note that by releasing under the GPL, it prevents any of Partition Magic’s commercial competitors from including it in their proprietary products!)</p> </blockquote> <p>For more, read the <a href="https://thunk.org/tytso/tytso/TPL.html">full proposal</a>.</p> Proud to be a Googler https://thunk.org/tytso/blog/2010/01/12/proud-to-be-a-googler/ Wed, 13 Jan 2010 00:58:34 +0000 https://thunk.org/tytso/blog/2010/01/12/proud-to-be-a-googler/ <p>Although I obviously had nothing to do with <a href="http://googleblog.blogspot.com/2010/01/new-approach-to-china.html">Google’s decision vis-a-vis China</a>, having only started working there for  a week, I was definitely glad to see it and it made me proud to be able to say that I work there.  Kudos to Google’s management team for having made (IMHO) the right decision.   Hopefully Yahoo and Microsoft will consider carefully what the ethical implications of their collusion and collaboration with the Chinese government’s attempt to control free speech and the human rights implications of the same.</p> <p>I have my own opinion regarding the <!-- raw HTML omitted -->IETF’s decision to meet in Beijing<!-- raw HTML omitted -->, since as we’ve seen with the Search Engine industry’s attempt to accommodate the Chinese, engagement doesn’t necessarily always lead to openness and goodness.   All I can suggest is that those people who do decide to travel to that meeting be very careful about what sort of message they want to send with respect to China, as well as being very careful about protecting themselves against targetted information security attacks.</p> Why the Sony PRS-505/PRS-700 is a better choice than the Kindle https://thunk.org/tytso/blog/2009/07/18/why-the-sony-prs-505prs-700-is-a-better-choice-than-the-kindle/ Sat, 18 Jul 2009 17:47:22 +0000 https://thunk.org/tytso/blog/2009/07/18/why-the-sony-prs-505prs-700-is-a-better-choice-than-the-kindle/ <p>Amazon can reach in and <a href="http://blogs.zdnet.com/hardware/?p=4944">randomly destroy the books on your Kindle remotely over Whispernet</a>, without asking your permission first.  Well, technically, thanks to the terms and conditions that you have to agree to before you buy the Kindle, you gave them permission in advance.   Well, no thanks.    I think the Sony e-Reader is a much better choice as a result.</p> <p>Yet another reason why people should Just Say No to DRM.</p> Don’t fear the fsync! https://thunk.org/tytso/blog/2009/03/15/dont-fear-the-fsync/ Mon, 16 Mar 2009 03:57:28 +0000 https://thunk.org/tytso/blog/2009/03/15/dont-fear-the-fsync/ <p>After reading the comments on my earlier post, <!-- raw HTML omitted -->Delayed allocation and the zero-length file problem<!-- raw HTML omitted --> as well as some of the comments on the <!-- raw HTML omitted -->Slashdot story<!-- raw HTML omitted --> as well as the <!-- raw HTML omitted -->Ubuntu bug<!-- raw HTML omitted -->, it’s become very clear to me that there are a lot of myths and misplaced concerns about fsync() and how best to use it.   I thought it would be appropriate to correct as many of these misunderstandings about fsync() in one comprehensive blog posting.</p> <p>As the <!-- raw HTML omitted -->Eat My Data<!-- raw HTML omitted --> presentation points out very clearly, the only safe way according that POSIX allows for requesting data written to a particular file descriptor be safely stored on stable storage is via the fsync() call.  Linux’s close(2) man page makes this point very clearly:</p> <blockquote> <p>A successful close does not guarantee that the data has been successfully saved to disk, as the kernel defers writes. It is not common for a file system to flush the buffers when the stream is closed. If you need to be sure that the data is physically stored use fsync(2).</p> </blockquote> <p>Why don’t application programmers follow these sage words?  These three reasons are most often given as excuses:</p> <ol> <li>(Perceived) performance problems with fsync()</li> <li>The application only needs atomicity, but not durability</li> <li>The fsync() causing the hard drive to spin up unnecessarily in laptop_mode</li> </ol> <p>Let’s examine each of these excuses one at a time, to see how valid they really are.</p> <h2 id="perceived-performance-problems-with-fsync">(Perceived) performance problems with fsync()</h2> <p>Most of the bad publicity with fsync() originated with the now infamous <!-- raw HTML omitted -->problem with Firefox 3.0<!-- raw HTML omitted --> that showed up about a year ago in May, 2008.   What happened with Firefox 3.0 was that the primary user interface thread called the sqllite library each time the user clicked on a link to go to a new page. The sqllite library called fsync(), which in ext3’s data=ordered mode, caused a large, visible latency which was visible to the user if there was a large file copy happening by another process.</p> <p>Nearly all of the reported delays was a few seconds, which would be expected; normally there isn’t <em>that</em> much dirty data that needs to be flushed out on a Linux system, even if it is even very busy.   For example, consier the example of a laptop downloading an .iso image from a local file server; if the laptop has the exclusive link of a 100 megabit/second ethernet link, and the server has the .iso file in cache, or has a nice fast RAID array so it is not the bottleneck, then in the best case, the laptop will be able to download data at the rate of 10-12 MB/second.  Assuming the default 5 second commit interval, that means that in the worst case, there will be at most 60 megabytes which must be written out before the commit can proceed.  A reasonably modern 7200 rpm laptop drive can write between 60 and 70 MB/second.   (The Seagate Momentus 7200.4 laptop drive is reported to be able to deliver 85-104 MB/second, but I can’t find it for sale anywhere for love or money.)   In this example, an fsync() will trigger a commit and might need to take a second while the download is going on; perhaps half a second if you have a really fast 7200 rpm drive, and maybe 2-3 seconds if you have a slow 5400 rpm drive.</p> <p>(Jump to <a href="#sidebar:30-sec-fsyncs">Sidebar: What about those 30 second fsync reports?</a><!-- raw HTML omitted --><!-- raw HTML omitted -->)</p> <p>Obviously, you can create workloads that aren’t bottlenecked on the maximum ethernet download speed, or the speed of reading from a local disk drive; for example, “dd if=/dev/zero of=big-zero-file” will create a very large number of dirty pages that must be written to the hard drive at the next commit or fsync() call. It’s important to remember though, fsync() doesn’t create any extra I/O (although it may remove some optimization opportunities to avoid double writes); fsync() just pushes around when the I/O gets done, and whether it gets done synchronously or asynchronously. If you create a <strong>large</strong> number of pages that need to be flushed to disk, sooner or later it will have a significant and unfortunate effect on your system’s performance.  Fsync() might make things more visible, but if the fsync() is done off the main UI thread, the fact that fsync() triggers a commit won’t actually disturb other processes doing normal I/O; in ext3 and ext4, we start a new transaction to take care of new file system operations while the committing transction completes.</p> <p>The final observation I’ll make is that part of the problem is that Firefox as an application wants to make a huge number of updates to state files and was concerned about not losing that information even in the face of a crash.  Every application writer should be asking themselves whether this sort of thing is really necessary.   For example, doing some quick measurements using ext4, I determined that Firefox was responsible for 2.54 megabytes written to the disk for each web page visited by the user (and this doesn’t include writes to the Firefox cache; I symlinked the cache directory to a tmpfs directory mounted on /tmp to reduce the write load to my SSD).   So these 2.54 megabytes is just for Firefox’s cookie cache and Places database to maintain its “Awesome bar”.  Is that really worth it?   If you visit 400 web pages in a day, that’s 1GB of writes to your SSD, and if you write more than 20GB/day, the Intel SSD will enable its “write endurance management feature” which slows down the performance of the drive.   In light of that, exactly how important is it to update those darned sqllite databases after every web click?  What if Firefox saved a list of URL’s that has been visited, and only updated every 30 or 60 minutes, instead?   Is it really that every last web page that you browse be saved if the system crashes?  An fsync() call every 15, 30, or 60 minutes, done by a thread which doesn’t block the application’s UI, would have never been noticed and would have not started the firestorm on Firefox’s bugzilla <!-- raw HTML omitted --><!-- raw HTML omitted -->#421482<!-- raw HTML omitted --><!-- raw HTML omitted -->.   Very often, after a little thinking, a small change in the application is all that’s necessary for to really optimize the application’s fsync() usage.</p> <p>(<a href="#atomicity-not-durability">Skip over the sidebar</a> — if you’ve already read it).</p> <h3 id="a-namesidebar30-sec-fsyncsasidebar-what-about-those-30-second-fsync-reports"><!-- raw HTML omitted --><!-- raw HTML omitted -->Sidebar: What about those 30 second fsync reports?</h3> <p>If you read through the <!-- raw HTML omitted -->Firefox’s bugzilla entry<!-- raw HTML omitted -->, you’ll find reports of fsync delays of 30 seconds or more. That tale has grown in the retelling, and I’ve seen some hyperbolic claims of five minute delays. Where did that come from? Well, if you look that those claims, you’ll find they were using a very read-heavy workload, and/or they were using the ionice command to set a real-time I/O priority. For example, something like “ionice -c 1 -n 0 tar cvf /dev/null big-directory”.</p> <p>This <em>will</em> cause some significant delays, first of all because “ionice -c 1” causes the process to have a real-time I/O priority, such that <strong>any</strong> I/O requests issued by that process will be serviced before all others.   Secondly, even without the real-time I/O priority, the I/O scheduler naturally prioritizes reads as higher priority than writes because normally processes are waiting for reads to complete, but writes are normally asynchronous.</p> <p>This is not at all realistic workload, and it is even more laughable that some people thought this might be an accurate representation of the I/O workload of a kernel compile. These folks had never tried the experiment, or measured how much I/O goes on during a kernel compile. If you try it, you’ll find that a kernel compile sucks up a lot of CPU, and doesn’t actually do <em>that</em> much I/O. (In fact, that’s why an SSD only speeds up a kernel compile by about 20% or so, and that’s in a completely cold cache case. If the commonly used include files are already in the system’s page cache, the performance improvement of the SSD is much less.)</p> <p>Jump back to reading <a href="#sidebar:30-secs-return">Performance problems with fsync</a>.</p> <h2 id="a-nameatomicity-not-durabilityathe-atomicity-not-durability-argument"><!-- raw HTML omitted --><!-- raw HTML omitted -->The atomicity not durability argument</h2> <p>One argument that has commonly been made on the various comment streams is that when replacing a file by writing a new file and the renaming “file.new” to “file”, most applications don’t need a guarantee that new contents of the file are committed to stable store at a certain point in time; only that either the new or the old contents of the file will be present on the disk. So the argument is essentially that the sequence:</p> <ul> <li>fd = open(“foo.new”, O_WRONLY);</li> <li>write(fd, buf, bufsize);</li> <li>fsync(fd);</li> <li>close(fd);</li> <li>rename(“foo.new”, “foo”);</li> </ul> <p>… is too expensive, since it provides “atomicity and durability”, when in fact all the application needed was “atomicity” (i.e., either the new or the old contents of foo should be present after a crash), but not durability (i.e., the application doesn’t need to need the new version of foo <strong>now</strong>, but rather at some intermediate time in the future when it’s convenient for the OS).</p> <p>This argument is flawed for two reasons. First of all, the squence above exactly provides desired “atomicity without durability”.   It doesn’t guarantee which version of the file will appear in the event of an unexpected crash; if the application needs a guarantee that the new version of the file will be present after a crash, it’s necessary to fsync the containing directory. Secondly, as we discussed above, fsync() really isn’t that expensive, even in the case of ext3′ and data=ordered; remember, fsync() doesn’t create extra I/O’s, although it may introduce latency as the application waits for some of the pending I/O’s to complete. If the application doesn’t care about exactly when the new contents of the file will be committed to stable store, the simplest thing to do is to execute the above sequence (open-write-fsync-close-rename) in a separate, asynchronous thread. And if the complaint is that this is too complicated, it’s not hard to put this in a library. For example, there is currently <a href="http://mail.gnome.org/archives/gtk-devel-list/2009-March/msg00082.html">discussion on the gtk-devel-list</a> on adding the fsync() call to g_file_set_contents(). Maybe if someone asks nicely, the glib developers will add an asynchronous version of this function which runs g_file_set_contents() in a separate thread. Voila!</p> <h2 id="a-namefsync-and-laptop_modeaavoiding-hard-drive-spin-ups-with-laptop_mode"><!-- raw HTML omitted --><!-- raw HTML omitted -->Avoiding hard drive spin-ups with laptop_mode</h2> <p>Finally, as Nathaniel Smith said in <!-- raw HTML omitted -->Comment #111<!-- raw HTML omitted --> of <!-- raw HTML omitted -->of my previous post<!-- raw HTML omitted -->:</p> <blockquote> <p>The problem is that I don’t, really, want to turn off fsync’s, because I like my data. What I <em>want</em> to do is to spin up the drive as little as possible <em>while</em> maintaining data consistency. Really what I want is a knob that says “I’m willing to lose up to minutes of work, but no more”. We even have that knob (laptop mode and all that), but it only works in simple cases.</p> </blockquote> <p>This is a reasonable concern, and the way to fix this is to enhance laptop_mode in the Linux kernel. Bart Samwel, the author and maintainer of laptop_mode, actually discussed this idea with me last month at FOSDEM.  Laptop_mode already adjusts /proc/sys/vm/dirty_expire_centisecs and /proc/sys/vm/dirty_writeback_centisecs based on the configuration parameter MAX_LOST_WORK_SECONDS, and it also adjusts the file system commit time (for ext3; it needs to be taught to do the same thing for ext4, which is a simple patch) to MAX_LOST_WORK_SECONDS as well. All that is necessary is a kernel patch to allow laptop_mode to disable fsync() calls, since the kernel knows that it is in laptop_mode, and it notices that the disk has spun up, it will sync out everything to disk, since once the energy has been spent to spin up the hard drive, we might as well write everything in memory that needs to be written out right away. Hence, a patch which allows fsync() calls to be disabled while in laptop_mode should do pretty much everything Nate has asked. I need to check to see if laptop_mode does this already, but if it doesn’t force a file system commit when it detects that the hard drive has been spun up, it should obviously do this as well.</p> <p>(In addition to having a way to globally disable fsync()’s, it may also be useful to have a way to selectively disable fsync()’s on a per-process basis, or on the flip side, exempt some process from a global fsync-disable flag. This may be useful if there are some system daemons that really do want to wake up the hard drive — and once the hard drive is spinning, naturally everything else that needs to pushed out to stable store should be immediately written.)</p> <p>With this relatively minor change to the kernel’s support of laptop_mode, it should be possible to achieve the result that Nate desires, without needing force applications to worry about this issue; applications should be able to just simply use fsync() without fear.</p> <h2 id="summary">Summary</h2> <p>As we’ve seen, the reasons most people think fsync() should be avoided really don’t hold water.   The fsync() call really is your friend, and it’s really not the villain that some have made it out to be. If used intelligently, it can provide your application with a portable way of assuring that your data has been safely written to stable store, without causing a user-visible latency in your application. The problem is getting people to not fear fsync(), understand fsync(), and then learning the techniques to use fsync() optimally.</p> <p>So just as there has been a <!-- raw HTML omitted -->Don’t fear the penguin<!-- raw HTML omitted --> campaign, maybe we also need to have a “Don’t fear the fsync()” campaign.  All we need is a friendly mascot and logo for a “Don’t fear the fsync()” campaign. Anybody want to propose an image?  We can make some T-shirts, mugs, bumper stickers…</p> Delayed allocation and the zero-length file problem https://thunk.org/tytso/blog/2009/03/12/delayed-allocation-and-the-zero-length-file-problem/ Thu, 12 Mar 2009 17:34:16 +0000 https://thunk.org/tytso/blog/2009/03/12/delayed-allocation-and-the-zero-length-file-problem/ <p>A recent <!-- raw HTML omitted -->Ubuntu bug<!-- raw HTML omitted --> has gotten <!-- raw HTML omitted -->slashdotted<!-- raw HTML omitted -->, and has started raising a lot of questions about the safety of using ext4. I’ve actually been meaning to blog about this for a week or so, but between a bout of the stomach flu and a huge todo list at work, I simply haven’t had the time.</p> <p>The essential “problem” is that ext4 implements something called delayed allocation. Delayed allocation isn’t new to Linux; xfs has had delayed allocation for years. Pretty much all modern file systems have delayed allocation, according to the Wikipedia Allocate-on-flush article, this includes HFS+, Reiser4, and ZFS; btrfs has this property as well. Delayed allocation is a major win for performance, both because it allows writes to be streamed more efficiently to disk, and because it can reduce file fragmentation so that later on they can be read more efficiently from disk.</p> <p>This sounds like a good thing, right? It is, except for badly written applications that don’t use fsync() or fdatasync(). Application writers had gotten lazy, because ext3 by default has a commit interval of 5 seconds, and and uses a journalling mode called data=ordered. What does this mean? The journalling mode data=ordered means that before the commit takes place, any data blocks are</p> <p>associated with inodes that are about to be committed in that transaction will be forced out to disk. This is primarily done for security reasons; if this is not done (which would be the case if the disk is mounted with the mount option data=writeback), then any newly allocated blocks might still contain previous data belonging to some other file or user, and after a crash, accessing that file might result in a user seeing unitialized data that had previously belonged to another user (say, their e-mail or their p0rn), which would be a Bad Thing from a security perspective.</p> <p>However, this had the side effect of essentially guaranteeing that anything that had been written was guaranteed to be on disk after 5 seconds. (This is somewhat modified if you are running on batteries</p> <p>and have enabled laptop mode, but we’ll ignore that for the purposes of this discussion.) Since ext3 became the dominant filesystem for Linux, application writers and users have started depending on this, and so they become shocked and angry when their system locks up and they lose data — even though POSIX never really made any such guarantee. This become especially noticeable on Ubuntu, which uses many proprietary, binary-only drivers, which caused some Ubuntu systems to become highly unreliable, especially for Alpha releases of Ubuntu Jaunty, with the net result that some Ubuntu users have become used to their machines regularly crashing. (I use bleeding edge kernels, and I don’t see the kind of unreliability that apparently at least some Ubuntu users are seeing, which came as quite a surprise to me.)</p> <p>So what are the solutions to this? One thing is that the applications could simply be rewritten to properly use fsync() and fdatasync(). This is what is required by POSIX, if you want to be sure that data has gotten written to stable storage. Some folks have resisted this suggestions, on two grounds; first, that it’s too hard to fix all of the applications out there, and second, that fsync() is too slow. This perception that fsync() is too slow was most recently caused by <!-- raw HTML omitted -->a problem with Firefox 3.0<!-- raw HTML omitted -->. As Mike Shaver put it:</p> <blockquote> <p>On some rather common Linux configurations, especially using the ext3 filesystem in the “<!-- raw HTML omitted -->data=ordered<!-- raw HTML omitted -->” mode, calling <!-- raw HTML omitted -->fsync<!-- raw HTML omitted --> doesn’t just flush out the data for the file it’s called on, but rather on <em>all the buffered data for that filesystem</em>.</p> </blockquote> <p>   Fundamentally, the problem is caused by “<!-- raw HTML omitted -->data=ordered<!-- raw HTML omitted -->” mode.  This problem can be avoided by mounting the filesystem using “<!-- raw HTML omitted -->data=writeback<!-- raw HTML omitted -->” or by using a filesystem that supports delayed allocation — such as ext4.  This is because if you have a small sqllite database which you are fsync(), and in another process you are writing a large 2 megabyte file, the 2 megabyte file won’t be be allocated right away, and so the fsync operation will not force the dirty blocks of that 2 megabyte file to disk; since the blocks haven’t been allocated yet, there is no security issue to worry about with the previous contents of newly allocated blocks if the system were to crash at that point.</p> <p>Another solution is a set of patches to ext4 that has been queued for 2.6.30 merge window.  These three patches (with git id’s <a href="http://git.kernel.org/?p=linux/kernel/git/tytso/ext4.git;a=commitdiff;h=bf1b69c0db7f9b9d8f02e94d40b19fca8336b991">bf1b69c0</a>, <a href="http://git.kernel.org/?p=linux/kernel/git/tytso/ext4.git;a=commitdiff;h=f32b730a69bd56c5c9d704d8b75f03e90e290971">f32b730a</a>, and <a href="http://git.kernel.org/?p=linux/kernel/git/tytso/ext4.git;a=commitdiff;h=8411e347c3306ed36b8ca88611bf5fbf4d27d705">8411e347</a>) will cause a file to have any delayed allocation blocks to be allocated immediately when a file is replaced.   This gets done for files which were truncated using ftruncate() or opened via O_TRUNC when the file is closed, and when a file is renamed on top of an existing file.  This solves the most annoying set of problems where an existing file gets rewritten, and thanks to the delayed allocation semantics, that existing file gets replaced with a zero-length file.   However, it will not solve the problem for newly created files, of course, which would have delayed allocation semantics.</p> <p>Yet another solution would be to mount ext4 volumes with the nodelalloc mount option.   This will cause a significant performance hit, but apparently some Ubuntu users are happy using proprietary Nvidia drivers, even if it means that when they are done playing World of Goo, quitting the game causes the system to hang and they must hard-reset the system.   For those users, it may be that nodelalloc is the right solution for now — personally, I would consider that kind of system instability to be completely unacceptable, but I guess gamers have very different priorities than I do.</p> <p>A final solution which might not be that hard to implement would be a new mount option, data=alloc-on-commit.    This would work much like data=ordered, with the additional constraint that all blocks that had delayed allocation would be allocated and forced out to disk before a commit takes place.   This would probably give slightly better performance compared to mounting with nodelalloc, but it shares many of the disadvantages of nodelalloc, including making fsync() to be potentially very slow because it would force all dirty blocks to be forced out to disk once again.</p> <p>What’s the best path forward?   For now, what I would recommend to Ubuntu gamers whose systems crash all the time and who want to use ext4, to use the nodelalloc mount option.   I haven’t quantified what the performance penalty will be for this mode of operation, but the performance will be better than ext3, and at least this way they won’t have to worry about files getting lost as a result of delayed allocation.    Long term, application writers who are worried about files getting lost on an unclena shutdown really should use fsync.    Modern filesystems are all going to be using delayed allocation, because of its inherent performance benefits, and whether you think the future belongs to ZFS, or btrfs, or XFS, or ext4 — <em>all</em> of these filesystems used delayed allocation.</p> <p>What do you think?   Do you think all of these filesystems have gotten things wrong, and delayed allocation is evil?   Should I try to implement a data=alloc-on-commit mount option for ext4?   Should we try to fix applications to properly use fsync() and fdatasync()?</p> SSD’s, Journaling, and noatime/relatime https://thunk.org/tytso/blog/2009/03/01/ssds-journaling-and-noatimerelatime/ Mon, 02 Mar 2009 00:59:25 +0000 https://thunk.org/tytso/blog/2009/03/01/ssds-journaling-and-noatimerelatime/ <p>On occasion, you will see the advice that the ext3 file system is not suitable for Solid State Disks (SSD’s) due to the extra writes caused by journaling — and so Linux users using SSD’s should use ext2 instead. However, is this folk wisdom actually true? This weekend, I decided to measure exactly what the write overhead of journaling actually is in actual practice.</p> <p>For this experiment I used ext4, since I recently added a feature to track the amount of writes to the file system over its lifetime (to better gauge the wear and tear on an SSD). Ext4 also has the advantage that (starting in 2.6.29), it can support operations with and without a journal, allowing me to do a controlled experiment where I could manipulate only that one variable. The test workload I chose was a simple one:</p> <ul> <li>Clone a git repository containing a linux source tree</li> <li>Compile the linux source tree using <!-- raw HTML omitted -->make -j2<!-- raw HTML omitted --></li> <li>Remove the object files by running <!-- raw HTML omitted -->make clean<!-- raw HTML omitted --></li> </ul> <p>For the first test, I ran the test using no special mount options, and the only difference being the presence or absence of the has_journal feature. (That is, the first file system was created using <!-- raw HTML omitted -->mke2fs -t ext4 /dev/closure/testext4<!-- raw HTML omitted -->, while the second file system was created using <!-- raw HTML omitted -->mke2fs -t ext4 -O ^has_journal /dev/closure/testext4<!-- raw HTML omitted -->.)</p> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code> &lt;td align=&quot;center&quot;&gt; with journal &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; w/o journal &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; percent change &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; git clone &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 367.7 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 353.0 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; 4.00% &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; make &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 231.1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 203.4 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; 12.0% &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; make clean &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 14.6 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 7.7 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; 47.3% &lt;/td&gt; &lt;/tr&gt; </code></pre> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code> &lt;table border=&quot;1&quot; cellspacing=&quot;1&quot; cellpadding=&quot;2&quot;&gt; &lt;caption&gt;Amount of data written (in megabytes) on an ext4 filesystem mounted with noatime&lt;/caption&gt; &lt;colgroup align=&quot;left&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot;&gt;&lt;/colgroup&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; Operation &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; with journal &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; w/o journal &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; percent change &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; git clone &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 367.0 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 353.0 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; 3.81% &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; make &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 207.6 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 199.4 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; 3.95% &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; make clean &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 6.45 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 3.73 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; 42.17% &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/center&gt; &lt;/p&gt; &lt;p&gt; &amp;nbsp; &lt;/p&gt; &lt;p&gt; This reduces the extra cost of the journal in the &lt;tt&gt;git clone&lt;/tt&gt; and &lt;tt&gt;make&lt;/tt&gt; steps to be just under 4%. What this shows is that most of the extra meta-data cost without the noatime mount option was caused by update to the last update time for kernel source files and directories. &lt;/p&gt; &lt;h2&gt; The relatime mount option &lt;/h2&gt; &lt;p&gt; There is a newer alternative to the noatime mount option, &lt;b&gt;relatime&lt;/b&gt;. The relatime mount option updates the last access time of a file only if the last modified or last inode changed time is newer than the last accessed time. This allows programs to be able to determine whether a file has been read size it was last modified. The usual (actually, only) example that is given of such an application is the mutt mail-reader, which uses the last accessed time to determine if new mail has been delivered to Unix mail spool files. Unfortunately, relatime is not free. As you can see below, it has roughly double the overhead of noatime (but roughly half the overhead of using the standard Posix atime semantics): &lt;/p&gt; &lt;p&gt; &lt;center&gt; &lt;/p&gt; &lt;table border=&quot;1&quot; cellspacing=&quot;1&quot; cellpadding=&quot;2&quot;&gt; &lt;caption&gt;Amount of data written (in megabytes) on an ext4 filesystem mounted with relatime&lt;/caption&gt; &lt;colgroup align=&quot;left&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot;&gt;&lt;/colgroup&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; Operation &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; with journal &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; w/o journal &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; percent change &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; git clone &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 366.6 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 353.0 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; 3.71% &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; make &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 216.8 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 203.7 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; 6.04% &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; make clean &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 13.34 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 6.97 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; 45.75% &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/center&gt; &lt;/p&gt; &lt;p&gt; &amp;nbsp; &lt;/p&gt; &lt;p&gt; Personally, I don&amp;#8217;t think relatime is worth it. There are other ways of working around the issue with mutt &amp;#8212; for example, you can use Maildir-style mailboxes, or you can use mutt&amp;#8217;s check_mbox_size option. If the goal is to reduce unnecessary disk writes, I would mount my file systems using noatime, and use other workarounds as necessary. Alternatively, you can use &lt;tt&gt;chattr +A&lt;/tt&gt; to set the noatime flag on all files and directories where you don&amp;#8217;t want noatime semantics, and then clear the flag for the Unix mbox files where you care about the atime updates. Since the noatime flag is inherited by default, you can get this behaviour by setting running &lt;tt&gt;chattr +A /mntpt&lt;/tt&gt; right after the filesystem is first created and mounted; all files and directories created in that file system will have the noatime file inherited. &lt;/p&gt; &lt;h2&gt; Comparing ext3 and ext2 filesystems &lt;/h2&gt; &lt;p&gt; &lt;center&gt; &lt;/p&gt; &lt;table border=&quot;1&quot; cellspacing=&quot;1&quot; cellpadding=&quot;2&quot;&gt; &lt;caption&gt;Amount of data written (in megabytes) on an ext3 and ext2 filesystem&lt;/caption&gt; &lt;colgroup align=&quot;left&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot;&gt;&lt;/colgroup&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; Operation &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; ext3 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; ext2 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; percent change &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; git clone &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 374.6 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 357.2 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; 4.64% &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; make &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 230.9 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 204.4 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; 11.48% &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; make clean &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 14.56 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 6.54 &lt;/td&gt; &lt;td align=&quot;center&quot;&gt; 55.08% &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/center&gt; &lt;/p&gt; &lt;p&gt; &amp;nbsp; &lt;/p&gt; &lt;p&gt; Finally, just to round things out, I tried the same experiment using the ext3 and ext2 file systems. The difference between these results and the ones involving ext4 are the result of the fact that ext2 does not have the directory index feature (aka htree support), and both ext2 and ext3 do not have extents support, but rather use the less efficient indirect block scheme. The ext2 and ext3 allocators are also someone different from each other, and from ext4. Still, the results are substantially similar with the first set of Posix-compliant atime update numbers (I didn&amp;#8217;t bother to do noatime and relatime benchmark runs with ext2 and ext3, but I expect the results would be similar.) &lt;/p&gt; &lt;h2&gt; Conclusion &lt;/h2&gt; &lt;p&gt; So given all of this, where did the common folk wisdom that ext3 was not suitable for SSD&amp;#8217;s come from? Some of it may have been from people worrying too much about extreme workloads such as &amp;#8220;make clean&amp;#8221;; but while doubling the write load sounds bad, going from 4MB to 7MB worth of writes isn&amp;#8217;t that much compared to the write load of actually doing the kernel compile or populating the kernel source tree. No, the problem was that first generation SSD&amp;#8217;s had a very bad problem with what has been called the &amp;#8220;write amplification effect&amp;#8221;, where a 4k write might cause a 128k region of the SSD to be erased and rewritten. In addition in order to provide safety against system crashes, ext3 has more synchronous write operations &amp;#8212; that is where ext3 waits for the write operation to be complete before moving on, and this caused a very pronounced and noticeable stuttering effect which was fairly annoying to users. However, the next generation of SSD&amp;#8217;s, such as Intel&amp;#8217;s X25-M SSD, &lt;a title=&quot; Write Amplification: Intel's Secret Sauce&quot; href=&quot;http://www.extremetech.com/article2/0,2845,2329594,00.asp&quot; target=&quot;_blank&quot;&gt;have worked around the write amplification affect&lt;/a&gt;. &lt;/p&gt; &lt;p&gt; What else have we learned? First of all, for normal workloads that include data writes, the overhead from journaling is actually relatively small (between 4 and 12%, depending on the workload). Further, than much of this overhead can be reduced by enabling the noatime option, with relatime providing some benefit, but ultimately if the goal is to reduce your file system&amp;#8217;s write load, especially where an SSD is involved, I would strongly recommend the use of noatime over relatime. &lt;/p&gt;</code></pre> Fast ext4 fsck times, revisited https://thunk.org/tytso/blog/2009/02/26/fast-ext4-fsck-times-revisited/ Thu, 26 Feb 2009 15:04:22 +0000 https://thunk.org/tytso/blog/2009/02/26/fast-ext4-fsck-times-revisited/ <p>Last night I managed to finish up a rather satisfying improvement to ext4’s inode and block allocators. The ext4’s original allocator was actually a bit more simple-minded than ext3’s, in that it didn’t implement the Orlov algorithm to spread out top-level directories for better filesystem aging. It also was buggy in certain ways, <!-- raw HTML omitted -->where it would return ENOSPC even when there were still plenty of inodes in the file system<!-- raw HTML omitted -->.</p> <p>So I had been working on extending ext3’s original Orlov allocator so it would work well with ext4. While I was at it, it occurred to me that one of the tricks I could play with ext4’s flex groups (which are higher-order collection of block groups), was to bias the block allocation algorithms such that the first block group in a flexgroup would be preferred for use by directories, and biased against data blocks for regular files. This meant that directory blocks would get clustered together, which cut a third off the time needed for e2fsck pass2:</p> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code> &lt;td colspan=&quot;5&quot; align=&quot;center&quot;&gt; ext4 old allocator &lt;/td&gt; &lt;td rowspan=&quot;9&quot; align=&quot;center&quot;&gt; &lt;/td&gt; &lt;td colspan=&quot;5&quot; align=&quot;center&quot;&gt; ext4 new allocator &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td colspan=&quot;3&quot; align=&quot;center&quot;&gt; time (s) &lt;/td&gt; &lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt; I/O &lt;/td&gt; &lt;td colspan=&quot;3&quot; align=&quot;center&quot;&gt; time (s) &lt;/td&gt; &lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt; I/O &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; real &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; user &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; system &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; MB read &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; MB/s &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; real &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; user &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; system &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; MB read &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; MB/s &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 6.69 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 4.06 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.90 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 82 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 12.25 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 6.70 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 3.63 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1.58 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 82 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 12.23 &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; 2 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;b&gt;13.34&lt;/b&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2.30 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 3.78 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 133 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 9.97 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;b&gt;4.24&lt;/b&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1.27 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2.46 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 133 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 31.36 &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; 3 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.02 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.01 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 63.85 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.01 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.01 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.01 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 82.69 &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; 4 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.28 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.27 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.23 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.22 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; 5 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2.60 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2.31 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.03 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.38 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2.42 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2.15 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.07 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.41 &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; Total &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;b&gt;23.06&lt;/b&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 9.03 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 4.74 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 216 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 9.37 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;b&gt;13.78&lt;/b&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 7.33 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 4.19 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 216 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 15.68 &lt;/td&gt; &lt;/tr&gt; </code></pre> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code> &lt;table border=&quot;1&quot; cellspacing=&quot;1&quot; cellpadding=&quot;2&quot;&gt; &lt;caption&gt; Comparison of e2fsck times on an 32GB partition&lt;br /&gt; &lt;/caption&gt; &lt;colgroup align=&quot;center&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot; span=&quot;3&quot; width=&quot;50&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot; span=&quot;2&quot;&gt; &lt;/colgroup&gt; &lt;colgroup&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot; span=&quot;3&quot; width=&quot;50&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;right&quot; span=&quot;2&quot;&gt; &lt;/colgroup&gt; &lt;colgroup&gt; &lt;/colgroup&gt; &lt;tr&gt; &lt;td rowspan=&quot;3&quot; align=&quot;center&quot;&gt; Pass &lt;/td&gt; &lt;td colspan=&quot;5&quot; align=&quot;center&quot;&gt; ext3 &lt;/td&gt; &lt;td rowspan=&quot;9&quot; align=&quot;center&quot;&gt; &lt;/td&gt; &lt;td colspan=&quot;5&quot; align=&quot;center&quot;&gt; ext4 old allocator &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td colspan=&quot;3&quot; align=&quot;center&quot;&gt; time (s) &lt;/td&gt; &lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt; I/O &lt;/td&gt; &lt;td colspan=&quot;3&quot; align=&quot;center&quot;&gt; time (s) &lt;/td&gt; &lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt; I/O &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; real &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; user &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; system &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; MB read &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; MB/s &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; real &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; user &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; system &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; MB read &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; MB/s &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;b&gt;108.40&lt;/b&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 13.74 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 11.53 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 583 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 5.38 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;b&gt;6.69&lt;/b&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 4.06 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.90 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 82 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 12.25 &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; 2 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 5.91 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1.74 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2.56 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 133 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 22.51 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 13.34 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2.30 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 3.78 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 133 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 9.97 &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; 3 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.03 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.01 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 31.21 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.02 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.01 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 63.85 &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; 4 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.28 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.27 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.28 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.27 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; 5 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 3.17 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.92 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.13 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.63 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2.60 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2.31 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.03 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.38 &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;center&quot;&gt; Total &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;b&gt;118.15&lt;/b&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 16.75 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 14.25 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 718 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 6.08 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;b&gt;23.06&lt;/b&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 9.03 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 4.74 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 216 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 9.37 &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/center&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;center&gt; &lt;/p&gt; &lt;table border=&quot;1&quot; cellspacing=&quot;1&quot; cellpadding=&quot;2&quot;&gt; &lt;caption&gt; Vital Statistics of the 32GB partition&lt;br /&gt; &lt;/caption&gt; &lt;colgroup align=&quot;right&quot;&gt; &lt;/colgroup&gt; &lt;colgroup align=&quot;left&quot;&gt;&lt;/colgroup&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 312214 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; inodes used (14.89%)&lt;br /&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 263 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; non-contiguous files (0.1%) &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 198 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; non-contiguous directories (0.1%) &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; &amp;nbsp; &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; # of inodes with ind/dind/tind blocks: 0/0/0 &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; &amp;nbsp; &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; Extent depth histogram: 292698/40 &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 4388697 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; blocks used (52.32%) &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; bad blocks &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; large file &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; &amp;nbsp; &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; &amp;nbsp; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 263549 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; regular files &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 28022 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; directories &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 5 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; character device files &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; block device file &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 5 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; fifos &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 615 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; links &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 20618 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; symbolic links (19450 fast symbolic links) &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 5 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; sockets &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align=&quot;right&quot;&gt; 312820 &lt;/td&gt; &lt;td align=&quot;left&quot;&gt; files &lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt; &lt;p&gt; &lt;/center&gt; &lt;/p&gt; </code></pre> Binary-only device drivers for Linux and the supportability matrix of doom https://thunk.org/tytso/blog/2009/02/25/binary-only-device-drivers-for-linux-and-the-supportability-matrix-of-doom/ Wed, 25 Feb 2009 21:06:35 +0000 https://thunk.org/tytso/blog/2009/02/25/binary-only-device-drivers-for-linux-and-the-supportability-matrix-of-doom/ <p>I came across the <!-- raw HTML omitted -->following from the ext3-users mailing list<!-- raw HTML omitted -->. The poor user was stuck on a never-updated RHEL 3 production server and running into kernel panic problems. He was advised to try updating to the latest kernel rpm from Red Hat, but he didn’t feel he could do that. In his words:</p> <blockquote> <p>I’m caught between a rock and a hard place due to the EMC PowerPath binary only kernel crack. Which makes it painful to both me and my customers to regularly upgrade the kernel. Not to mention the EMC supportability matrix of doom.</p> </blockquote> <p>That pretty much sums it all up right there.</p> <p>The good news is that I’ve been told that dm-multipath is <em>almost</em> at the point where it has enough functionality to replace PowerPath. Of course, that version isn’t yet shipping in distributions, and I’m sure it needs more testing, but it’ll be good when enterprise users who need this functionality can move to a 100% fully open source storage stack.</p> <p>About the only thing left to do is to work in a mention of the <!-- raw HTML omitted -->Frying Pan of Doom<!-- raw HTML omitted --> <!-- raw HTML omitted -->and the recipe for <!-- raw HTML omitted -->Quick After-Battle Triple Chocolate Cake<!-- raw HTML omitted --> into the mix.  🙂</p> Reflections on a complaint from a frustrated git user https://thunk.org/tytso/blog/2009/02/23/reflections-on-a-complaint-from-a-frustrated-git-user/ Mon, 23 Feb 2009 13:31:26 +0000 https://thunk.org/tytso/blog/2009/02/23/reflections-on-a-complaint-from-a-frustrated-git-user/ <p>Last week, Scott James Remnant posted a series of “Git Sucks” on his blog, starting with this one <!-- raw HTML omitted -->here<!-- raw HTML omitted -->, with follow up entries <!-- raw HTML omitted -->here<!-- raw HTML omitted --> and <!-- raw HTML omitted -->here<!-- raw HTML omitted -->.  His problem?  To quote Scott, “I want to put a branch I have somewhere so somebody else can get it.  That’s the whole point of distributed revision-control, <em>collaboration</em>.”   He thought this was a “mind-numbingly trivial” operation, and was frustrated when it wasn’t a one-line command in git.</p> <p>Part of the problem here is that for most git workflows, <em>most people don’t actually use “git push”</em>.   That’s why it’s not covered in the git tutorial (this was a point of frustration for Scott).   In fact, in most large projects, the number of people need to use the “scm push” command is a very small percentage of the developer population, just as very few developers have commit privileges and are allowed to use the “svn commit” command in a project using Subversion.  When you have a centralized repository, only the privileged few will given commit privileges, for obvious security and quality control reasons.</p> <p>Ah, but in a distributed SCM world, things are more democratic — anyone can have their own repository, and so everyone can type the commands “git commit” or “bzr commit”.   While this is true, the number of people who need to be able to publish their own branch is small.  After all, the overhead in setting up your own server just so people can “pull” changes from you is quite large; and if you are just getting started, and only need to submit one or two patches, or even a large series of patches, e-mail is a far more convenient route.  This is especially true in the early days of git’s development, before web sites such as <a href="http://git.or.cz">git.or.cz</a>, <!-- raw HTML omitted -->github<!-- raw HTML omitted -->, and <!-- raw HTML omitted -->gitorious<!-- raw HTML omitted --> made it much easier for people to publish their own git repository.   Even for a large series of changes, tools such as “<!-- raw HTML omitted -->git format-patch<!-- raw HTML omitted -->” and “<!-- raw HTML omitted -->git send-email<!-- raw HTML omitted -->” are very convenient for sending a patch series, and on the receiving side, the maintainer can use “<!-- raw HTML omitted -->git am<!-- raw HTML omitted -->” to apply a patch series sent via e-mail.</p> <p>It turns out that from a maintainer’s point of view, reviewing patches via e-mail is often much more convenient.  Especially for developers who are just starting out with submitting patches to a project, it’s rare that a patch is of sufficiently high quality that it can be applied directly into the repository without needing fixups of one kind or another.   The patch might not have the right coding style compared to the surrounding code, or it might be fundamentally buggy because the patch submitter didn’t understand the code completely.   Indeed, more often than not, when someone submits a patch to me, it is more useful for indicating the location of the bug more than anything else, and I often have to completely rewrite the patch before it enters into the e2fsprogs mainline repository.    Given that, publishing a patch that will require modification in a public repository where it is ready to be pulled just doesn’t make sense for many entry-level patch submitters.   E-mail is in fact less work, and more appropriate for review purposes.</p> <p>It is only when a mid-level to senior developer is trusted to create high quality patches that do not need review that publishing their branch in a pull-ready form really makes sense.   And that is fairly rare, and why it is not covered in most entry-level git documentation and tutorials.   Unfortunately, many people expect to see the command “scm push” in a distributed SCM, and since “git pull” <strong>is</strong> a commonly used command for beginning git users, they expect that they should use “git push” as well — not realizing that in a distributed SCM, “push” and “pull” are <strong>not</strong> symmetric operations.   Therefore, while most git users won’t <em>need</em> to use “git push”, git tutorials and other web pages which are attempting to introduce git to new users probably do need to do a better job explaining why most beginning participants in a project probably don’t need their own publically accessible repository that other people can pull from, and which they can push changes for publication.</p> <p>There is one exception to this, of course, and this is a developer who wants to get started using git for a new project which he or she is starting and is the author/maintainer, or someone who is interested in converting their project to git.   And this is where bzr has an advantage over git, in that bzr is primarily funded by Canonical, which has a strong interest in pushing an on-line web service, Launchpad.   This makes it easier for bzr to have relatively simple recipes for sharing a bzr repository, since the user doesn’t need to have access to a server with a public IP address, or need to set up a web or bzr server; they can simply take advantage of Launchpad.</p> <p>Of course, there are web sites which make it easy for people to publish their git repositories; earlier, I had mentioned <a href="http://git.or.cz">git.or.cz</a>, <!-- raw HTML omitted -->github<!-- raw HTML omitted -->, and <!-- raw HTML omitted -->gitorious<!-- raw HTML omitted -->.   Currently, the git documentation and tutorials don’t mention them since they aren’t formally affiliated with the git project (although they are used by many git users and developers and the maintainers of these sites have contributed a large amount of code and documentation to git).   This should change, I think.   Scott’s frustrations which kicked off his “git sucks” complaints would have been solved if the Git tutorial recommended that the easist ways for someone to publicly publish their repository is via one of these public web sites (although people who want to set up their own server certainly free to do so).</p> <p>Most of these public repositories probably won’t have much reason to exist, but they don’t do much harm, and who knows?  While most of the repositories published at github and gitoriuous will be like the hundreds of thousands of abandoned projects on Sourceforge, one or two of the new projects which someone starts experimenting on at github or gitorious could turn out to be the next Ruby on Rails or Python or Linux.  And hopefully, they will allow more developers to be able to experiment with publishing commits on their own repositories, and lessen the frustrations of people like Scott who thought they needed their own repositories; whether or not a public repository is the best way for them to do what they need to do, at least this way they won’t get as frustrated about git.  🙂</p> Should Filesystems Be Optimized for SSD’s? https://thunk.org/tytso/blog/2009/02/22/should-filesystems-be-optimized-for-ssds/ Sun, 22 Feb 2009 22:02:18 +0000 https://thunk.org/tytso/blog/2009/02/22/should-filesystems-be-optimized-for-ssds/ <p>In one of the comments to my <!-- raw HTML omitted -->last blog entry<!-- raw HTML omitted -->, an anonymous commenter writes:</p> <blockquote> <p>You seem to be taking a different perspective to linus on the “adapting to the the disk technology” front (Linus seems to against having to have the <!-- raw HTML omitted -->OS know about disk boundaries and having to do levelling itself<!-- raw HTML omitted -->)</p> </blockquote> <p>That’s an interesting question, and I figure it’s worth its own top-level entry, as opposed to a reply in the comment stream.   One of the interesting design questions in any OS or Computer Architecture is where the abstraction boundaries should be drawn and which side of an abstraction boundary should various operations be pushed.   Linus’s arguments is that there a flash controller can do a better job of wear leveling, including detecting how “worn” a particular flash cell might be (for example, perhaps by looking at the charge levels at an analog level and knowing when the last time the cell was programmed), and so it doesn’t make sense to try to do wear leveling in a flash file system.   Some responsibilities of flash management, such as coalescing newly written blocks into erase blocks to avoid write amplification can be done either on the SSD or in the file system — for example, by using a log-structured file system, or some other copy-on-write file system, instead of a rewrite-in-place style file system, you can essentially solve the write amplification problem.   In some cases, it’s necessary let additional information leak across the abstraction — for example, the ATA TRIM command is a way for the file system to let the disk know that certain blocks no longer need to be used.   If too much information needs to be pushed across the abstraction, one way or another, then maybe we need to rethink whether the abstraction barrier is in the right place.</p> <p>In addition, if the abstraction has been around for a long time, changing it also has costs, which has to be taken into account.   The 512 byte sector LBA abstraction has been around long time, and therefore dislodging it is difficult and costly.   For example, the same argument which says that because the underlying hardware details are changing between different generations of SSD is all of these details should be hidden in hardware, was also used to justify something that has been a complete commercial failure for years if not decades: Object Based Disks.</p> <p>One of the arguments of OBD’s was that the hard drive has the best knowledge of how and where to store an contiguous stream of bytes, and so perhaps filesystems should not be trying to decide where on disk an inode should be stored, but instead tell the hard drive, “I have this object, which is 134 kilobytes long; please store it somewhere on the disk”.   At least in theory the HDD or SSD could handle all of the details of knowing the best place to store the object on the spinning magnetic media or flash media, taking into account how worn the flash is and automatically move the object around in the case of an SSD, and in the case of the HDD, the drive could know about (real) cylinder and track boundaries, and store the object in the most efficient way possible, since the drive has intimate knowledge about the low-level details of how data is stored on the disk.</p> <p>This theory makes a huge amount of sense; but there’s only one problem.   Object Based Disks have been proposed in academia and advanced R&amp;D shops of companies like Seagate et.al. have been proposing them for over a decade, with absolutely nothing to show for it.   Why?   There have been two reasons proposed.  One is that OBD vendors were too greedy, and tried to charge too much money for OBD’s.    Another explanation is that the interface abstraction for OBD’s was too different, and so there wasn’t enough software or file systems or OS’s that could take advantage of OBD’s.</p> <p>Both explanations undoubtedly contributed to the commercial failure of OBD’s, but the question is which is the bigger reason.   And the reason why it is particularly important here is because at least as far as Intel’s SSD strategy is concerned, its advantage is that (modulo implementation shortcomings such as the reported internal LBA remapping table fragmentation problem and the lack of ATA TRIM support) filesystems don’t need to change (much) in order to take advantage of the Intel SSD and get at least decent performance.</p> <p>However, if the price delta is a stronger reason for its failure, then the X25-M may be in trouble.   Currently the 80GB Intel X25-M has a street price of $400, so it costs roughly $5 per gigabyte.   “Dumb” MLC SATA SSD’s are available for roughly half the cost/gigabyte (64 GB for $164).   So what does the market look like 12-18 months from now?  If “dumb” SSD’s are still available at 50% of the cost of “smart” SSD’s, it would probably be worth it to make a copy-on-write style filesystem that attempts to do the wear leveling and write amplification reduction in software.   Sure, it’s probably more efficient to do it in hardware, but a 2x price differential might cause people will settle for a cheaper solution even if isn’t the absolutely best technical choice.   On the hand, if prices drop significantly, and/or “dumb” SSD’s completely disappear from the market, then time spent now optimizing for “dumb” SSD’s will be completely wasted.</p> <p>So for Linus to make the proclamation that it’s completely stupid to optimize for “dumb” SSD’s seems to be a bit premature.   Market externalities — for example, does Intel have patents that will prevent competing “smart” SSD’s from entering the market and thus forcing price drops? — could radically change the picture.  It’s not just a pure technological choice, which is what makes projections and prognostications difficult.</p> <p>As another example, I don’t know whether or not Intel will issue a firmware update that adds ATA TRIM support to the X25-M, or how long it will take before such SSD’s become available.   Until ATA TRIM support becomes available, it will be advantageous to add support in ext4 for a block allocator option that aggressively reuses blocks above all else, and avoids using blocks that have never been allocated or used before, even if it causes more in-file system fragmentation and deeper extent allocation trees.   The reason for this is at the moment, once a block is used by the file system, at least today, the X25-M has <strong>absolutely no idea</strong> whether we still care about the contents of that block, or whether the block has since been released when the file was deleted.   However, if 20% of the SSD’s blocks have never been used, the X25-M can use 20% of the flash for better garbage collection and defragmentation algorithms.   And if Intel never releases a firmware update to add ATA TRIM support, then I will be out $400 out of my own pocket for an SSD that lacks this capability, and so adding a block allocator which works around limitations of the X25-M probably makes sense.   If it turns out that it takes two years before disks that have ATA TRIM support show up, then it will definitely make sense to add such an optimization. (Hard drive vendors have been historically S-L-O-W to finish standardizing new features and then letting such features enter the market place, so I’m not necessarily holding my breath; after all, the Linux block device layer and and file systems have been ready to send ATA TRIM support for about six months; what’s taking the ATA committees and SSD vendors so long? <!-- raw HTML omitted --></p> <p>On the other hand, if Intel releases ATA TRIM support next month, then it might not be worth my effort to add such a mount option to ext4.   Or maybe Sandisk will make an ATA TRIM capable SSD available soon, and which is otherwise competitive with Intel, and I get a free sample, but it turns out another optimization on Sandisk SSD’s will give me an extra 10% performance gain under some workloads.   Is it worth it in that case?   Hard to tell, unless I know whether such a tweak addresses an optimization problem which is fundamental, and whether or not such a tweak will either be unnecessary, or perhaps actively unhelpful in the next generation.    As long as SSD manufacturers force us treat these devices as black boxes, there may be a certain amount of cargo cult science which may be forced upon us file system designers — or I guess I should say, in order to be more academically respectable, “we will be forced to rely more on empirical measurements leading to educated engineering estimations about what the SSD is doing inside the black box”. Heh.</p> Aligning filesystems to an SSD’s erase block size https://thunk.org/tytso/blog/2009/02/20/aligning-filesystems-to-an-ssds-erase-block-size/ Fri, 20 Feb 2009 14:28:01 +0000 https://thunk.org/tytso/blog/2009/02/20/aligning-filesystems-to-an-ssds-erase-block-size/ <p>I recently purchased a new toy, an Intel X25-M SSD, and when I was setting it up initially, I decided I wanted to make sure the file system was aligned on an erase block boundary.  This is a generally considered to be a Very Good Thing to do for most SSD’s available today, although there’s some question about how important this really is for Intel SSD’s — more on that in a moment.</p> <p>It turns out this is much more difficult than you might first think — most of Linux’s storage stack is not set up well to worry about alignment of partitions and logical volumes.  This is surprising, because it’s useful for many things other than just SSD’s.  This kind of alignment is important if you are using any kind of hardware or software RAID, for example, especially RAID 5, because if writes are done on stripe boundaries, it can avoid a read-modify-write overhead.  In addition, the hard drive industry is planning on moving to 4096 byte sectors instead of the way-too-small 512 byte sectors at some point in the future.   Linux’s default partition geometry of 255 heads and 63 sectors/track means that there are 16065 (512 byte) sectors per cylinder.  The initial round of 4k sector disks will emulate 512 byte disks, but if the partitions are not 4k aligned, then the disk will end up doing a read/modify/write on two internal 4k sectors for each singleton 4k file system write, and that would be unfortunate.</p> <p>Vista has already started working around this problem, since it uses a default partitioning geometry of 240 heads and 63 sectors/track.   This results in a cylinder boundary which is divisible by 8, and so the partitions (with the exception of the first, which is still misaligned unless you play some additional tricks) are 4k aligned.    So this is one place where Vista is ahead of Linux….   unfortunately the default 255 heads and 63 sectors is hard coded in many places in the kernel, in the SCSI stack, and in various partitioning programs; so fixing this will require changes in many places.</p> <p>However, with SSD’s (remember SSD’s?  This is a blog post about SSD’s…) you need to align partitions on at least 128k boundaries for maximum efficiency.   The best way to do this that I’ve found is to use 224 (32*7) heads and 56 (8*7) sectors/track.  This results in 12544 (or 256*49) sectors/cylinder, so that each cylinder is 49*128k.  You can do this by doing starting fdisk with the following options when first partitioning the SSD:</p> <p># fdisk -H 224 -S 56 /dev/sdb</p> <p>The first partition will only be aligned on a 4k boundary, since in order to be compatible with MS-DOS, the first partition starts on track 1 instead of track 0, but I didn’t worry too much about that since I tend to use the first partition for /boot, which tends not to get modified much.   You can go into expert mode with fdisk and force the partition to begin on an 128k alignment, but many Linux partition tools will complain about potential compatibility problems (which are obsolete warnings, since the systems that would have booting systems with these issues haven’t been made in about ten years), but I didn’t needed to do that, so I didn’t worry about it.</p> <p>So I created a 1 gigabyte /boot partition as /dev/sdb1, and allocated the rest of the SSD for use by LVM as /dev/sdb2. And that’s where I ran into my next problem. LVM likes to allocate 192k for its header information, and 192k is not a multiple of 128k. So if you are creating file systems as logical volumes, and you want those volume to be properly aligned you have to tell LVM that it should reserve slightly more space for its meta-data, so that the physical extents that it allocates for its logical volumes are properly aligned. Unfortunately, the way this is done is slightly baroque:</p> <p># pvcreate –metadatasize 250k /dev/sdb2</p> <p>Physical volume “/dev/sdb2” successfully created</p> <p>Why 250k and not 256k? I can’t tell you — sometimes the LVM tools aren’t terribly intuitive. However, you can test to make sure that physical extents start at the proper offset by using:</p> <p># pvs /dev/sdb2 -o+pe_start</p> <p>PV         VG   Fmt  Attr PSize  PFree  1st PE</p> <p>/dev/sdb2       lvm2 —   73.52G 73.52G 256.00K</p> <p>If you use a metadata size of 256k, the first PE will be at 320k instead of 256k. There really ought to be an –pe-align option to pvcreate, which would be far more user-friendly, but, we have to work with the tools that we have. Maybe in the next version of the LVM support tools….</p> <p>Once you do this, we’re almost done. The last thing to do is to create the file system. As it turns out, if you are using ext4, there is a way to tell the file system that it should try to align files so they match up with the RAID stripe width. (These techniques can be used for RAID disks as well). If your SSD has an 128k erase block size, and you are creating the file system with the default 4k block size, you just have to specify a strip width when you create the file system, like so:</p> <p># mke2fs -t ext4 -E stripe-width=32,resize=500G /dev/ssd/root</p> <p>(The resize=500G limits the number of blocks reserved for resizing this file system so that the guaranteed number size that the file system can be grown via online resize is 500G. The default is 1000 times the initial file system size, which is often far too big to be reasonable. Realistically, the file system I am creating is going to be used for a desktop device, and I don’t foresee needing to resize it beyond 500G, so this saves about a 50 megabytes or so. Not a huge deal, but “waste not, want not”, as the saying goes.)</p> <p>With e2fsprogs 1.41.4, the journal will be 128k aligned, as will the start of the file system, and with the stripe-width specified, the ext4 allocator will try to align block writes to the stripe width where that makes sense. So this is as good as it gets without kernel changes to make the block and inode allocators more SSD aware, something which I hope to have a chance to look at.</p> <!-- raw HTML omitted --> <p>All of this being said, it’s time to revisit this question — is all of this needed for a “smart”, “better by design” next-generation SSD such as Intel’s? Aligning your file system on an erase block boundary is critical on first generation SSD’s, but the Intel X25-M is supposed to have smarter algorithms that allow it to reduce the effect of write-amplification. The details are a little bit vague, but presumably there is a mapping table which maps sectors (at some internal sector size — we don’t know for sure whether it’s 512 bytes or some larger size) to individual erase blocks. If the file system sends a series of 4k writes for file system blocks 10, 12, 13, 32, 33, 34, 35, 64, 65, 66, 67, 96, 97, 98, 99, followed by a barrier operation, a traditional SSD might do read/modify/write on four 128k erase blocks — one covering the blocks 0-31, another for the blocks 32-63, and so on. However, the Intel SSD will simply write a single 128k block that indicates where the latest versions of blocks 10, 12, 13, 32, 33, 34, 35, 64, 65, 66, 67, 96, 97, 98, and 99 can be found.</p> <p>This technique tends to work very well.  However, over time, the table will get terribly fragmented, and depending on whether the internal block sector size is 512 or 4k (or something in between), there could be a situation where all but one or two of the internal sectors on the disks have been mapped away to other erase blocks, leading to fragmentation of the erase blocks. This is not just a theoretical problem; there are reports from the field that this happens relatively easy. For example, see Allyn Malventano’s <!-- raw HTML omitted -->Long-term performance analysis of Intel Mainstream SSDs<!-- raw HTML omitted --> and <!-- raw HTML omitted -->Marc Prieur’s report from BeHardware.com<!-- raw HTML omitted --> which includes an official response from Intel regarding this phenomenon.  Laurent Gilson <!-- raw HTML omitted -->posted on the Linux-Thinkpad mailing list<!-- raw HTML omitted --> that when he tried using the X25-M to store commit journals for a database, that after writing 170% of the capacity of an Intel SSD, the small writes caused the write performance to go through the floor.   More troubling, Allyn Malventano indicated that if the drive is abused for too long with a mixture of small and large writes, it can get into a state where the performance degredation is permanent, and even a series of large writes apparently does not restore the drive’s function — only an ATA SECURITY ERASE command to completely reset the mapping table seems to help.</p> <p>So, what can be done to prevent this?   Allyn’s review speculates that aligning writes to erase write boundaries can help — I’m not 100% sure this is true, but without detailed knowledge of what is going on under the covers in Intel’s SSD, we won’t know for sure.  It certainly can’t hurt, though, and there is a distinct possibility that the internal sector size is larger than 512 bytes, which means the default partitioning scheme of 255 heads/63 sectors is probably not a good idea.   (Even Vista has moved to a 240/63 scheme, which gives you 8k alignment of partitions; I prefer 224/56 partitioning, since the days when BIOS’s used C/H/S I/O are long gone.)</p> <p>The Ext3 and Ext4 file system tend to defer meta-data writes by pinning them until a transaction commit; this definitely helps, and ext4 allows you to configure an erase block boundary, which should also be helpful.  Enabling laptop mode will discourage writing to the disk except in large blocks, which probably helps significantly as well.   And avoiding fsync() in applications will also be helpful, since a cache flush operation will force the SSD to write to an erase block even if it isn’t completely filled.   Beyond that, clearly some experimentation will be needed.  My current thinking is to use a standard file system aging workload, and then performing an I/O benchmark to see if there has been any performance degradation.  I can then vary various file system tuning parameters and algorithms, confirm whether or not a heavy fsync workload makes the performance worse.</p> <p>In the long term, hopefully Intel will release a firmware update which adds support for ATA TRIM/DISCARD commands, which will allow the file system to inform the SSD that various blocks have been deleted and no longer need to be preserved by the SSD.   I suspect this will be a big help, if the SSD knows that certain sectors no longer need to be preserved, it can avoid copying them when trying to defragment the SSD.   Given how expensive the X25-M SSD’s are, I hope that there will be a firmware update to support this, and that Intel won’t leave its early adopters high and dry by only offering this functionality in newer models of the SSD.   If they were to do that, it would leave many of these early adopters, especially your humble writer (who paid for his SSD out of his own pocket), to be quite grumpy indeed.  Hopefully, though, it won’t come to that.</p> <p><strong>Update: I’ve since penned a follow-up post “</strong><!-- raw HTML omitted -->Should Filesystems Be Optimized for SSD’s?” <!-- raw HTML omitted --></p> How active are your local Linux User’s Groups? https://thunk.org/tytso/blog/2009/02/04/how-active-are-your-local-linux-users-groups/ Wed, 04 Feb 2009 07:26:12 +0000 https://thunk.org/tytso/blog/2009/02/04/how-active-are-your-local-linux-users-groups/ <p>At the Linux Foundation, I recently had been brainstorming with some my colleagues about ways in which we might be able to reach out to the various local Linux User’s Group (LUGS). So I was quite surprised when I saw a blog posting from Lenovo’s Connections blog asking the question: <!-- raw HTML omitted -->“Local User Groups – gone the way of the dinosaur?”<!-- raw HTML omitted --> and even more provocatively, “Has the web now relegated the user group to history, along with dot matrix printers, cassette tapes for mass storage, and dial up modems with acoustic couplers?”</p> <p>I checked on the web for a number of LUG’s, such as the Boston Linux and Unix User Group (BLU) and the Silicon Valley LUG (SVLUG), and they appeared to be active, at least in terms of mailing list activity and event calanedars.   But of course that doesn’t indicate how many people are actually attending the face-to-face meetings, and how strong the LUG’s are in general.</p> <p>So let me ask here — do you attend or participate in a LUG?   How active is it?   What do you get out of participating in a LUG?</p> Israel and Palestine: A Viewpoint from a Former Zionist https://thunk.org/tytso/blog/2009/01/20/israel-and-palestine-a-viewpoint-from-a-former-zionist/ Tue, 20 Jan 2009 13:54:12 +0000 https://thunk.org/tytso/blog/2009/01/20/israel-and-palestine-a-viewpoint-from-a-former-zionist/ <p><!-- raw HTML omitted -->Gunnar Wolf<!-- raw HTML omitted --> is Debian Developer, a Mexican, and is a former member of a Hashomer Kibbutz. He has written an essay on his blog entitled <!-- raw HTML omitted -->“About the recent events and possible outcomes in Israel and Palestine”<!-- raw HTML omitted -->. I strongly encourage people to read it, since he talks about the historical roots of the conflict (going back all the way to the roots of Zionism) in a way that while it is definitely not pro-Zionism, neither is it as unfair as some of the pro-Palestinian accounts of the period 1947-1949. It’s about as balanced an account of the roots of the whole mess in the Palestinian areas and Israel that I think you can find, although he definitely has a point of view:</p> <blockquote> <p>All in all, even if I won’t live there again, [Israel] is a country I learnt to love, a society I have long studied…And yes, I keep the political stand I had 12 years ago: The only solution is to dialogue, to treat the current enemies -and not only their governments- with respect, recognizing their dignity and right to life, to self-determination. Only then we will change the status quo.</p> </blockquote> <p>On this day when we will finally see the back side of George W. Bush’s presidency, I can only hope and pray that more people will be as thoughtful as Gunnar Wolf was in his blog posting. Even if we disagree (and there <strong>will</strong> be disagreement), it’s only by encouraging more people to learn about all sides of such tragedies such as the Israeli-Palestinian conflict that we can help make decisions that might bring peace to this shattered world. May that day arrive soon!</p> Wanted: Incremental Backup Solutions that Use a Database https://thunk.org/tytso/blog/2009/01/12/wanted-incremental-backup-solutions-that-use-a-database/ Mon, 12 Jan 2009 22:03:33 +0000 https://thunk.org/tytso/blog/2009/01/12/wanted-incremental-backup-solutions-that-use-a-database/ <p>Dear Lazyweb,</p> <p>I’m looking for recommendations for Open Source backup solutions which track incremental backups using a database, and which do <em>not</em> use hard link directories.   Someone gave me a suggested OSS backup program at UDS, but it’s slipped my memory; so I’m fairly sure that at least one or more such OSS backup solutions exist, but don’t know their names.  Can some folks give me some suggestions?   Thanks!</p> <!-- raw HTML omitted --> <p>There are a number of very popular Open Source backup solutions that use a very clever hack of using hard link trees to maintain incremental backups.   The advantage of such schemes is that they are very easy to code up, and it allows you to easily browse incremental backups by simply using “cd” and “ls”.</p> <p>The disadvantage of such schemes is that it creates very large number of directories blocks which must be validated by an fsck operation.  As I’ve <a href="http://www.mail-archive.com/linux-ext4@vger.kernel.org/msg01375.html">discussed previously</a>, this causes e2fsck to consume a vast amount of memory; sometimes more than can be supported by 32-bit systems.  Another problem which has recently been brought home to me, is how much time it can take to fsck such file systems.</p> <p>This shouldn’t have come as a surprise.  Replicating the directory hierarchy for each incremental backup is perhaps the most inefficient way you could come up with for storing information for an incremental backup.   The filenames are replicated in each directory hierarchy, and even if an entire subtree hasn’t changed, the directories associated with that subtree must be replicated for each snapshot. As a result, each incremental snapshot results in a large number of additional directory blocks which must be tracked by the filesystem and checked by fsck.   For example, in one very extreme case, a user reported to me that their backup filesystem contained 88 million inodes, of which 77 million of them were directories.   Even if we assume that every directory was only a single block long, that still means that during e2fsck’s pass 2 processing, 77 million times 4k, or 308 gigabytes, worth of directory blocks must be read into memory by e2fsck’s pass 2.  Worse yet, these 308 GB of directory blocks are scattered all across the filesystem,  which means the time to simply read all of the directory blocks so they can be validated will take a very, very, long time indeed.</p> <p>The real right way to do implement tracking incremental backups is to use a database, since it can much more efficiently store and organize the information of what file is located where, for each incremental snapshot.   If the user wants to browse an incremental snapshot via “cd” and “ls”, this could be done via a synthetic FUSE filesysem.  There’s a reason why all of the industrial-strength, enterprise-class backup systems use real databases; it’s the same reason why enterprise class databases use their own data files, and not try to store relational tables in a filesystem, even if the filesystem supports b-tree directories and efficient storage of small files.   Purpose written-and-opimzied solutions can be far more efficient than general purpose tools.</p> <p>So, can anyone recommend OSS backup solutions which track incremental backups using some kind of database?   It doesn’t really matter whether it’s MySQL, Postgresql, SQLite, so long as it’s not using/abusing a file systems’ hard links to create directory trees for each snapshot.   For bonus points, there would be a way to browse a particular incremental snapshot via a FUSE interface.  What suggestions can you give me, so I can pass it on to ext3/4 users who are running into problems with backup solutions such as Amanda, Backup-PC, dirvish, etc.?</p> <p><strong>Update:</strong> A feature which a number of these hard-link tools do right is that they do de-duplication; that is, they will create hard links between multiple files that have the same contents, even if they are located in different directories with different names (or they have been renamed or their directory structure reorganized since they were originally backed up) and even if the two files are from different clients. This basically means the database needs to include a checksum of the file, and a way to look up to see if the contents of that file have already been backed up, perhaps with a different name. Unfortunately, it looks like many of the tape-based tools, such as Bacula, assume that tape is cheap, so they don’t have these sorts of de-duplication features. Does anyone know of non-hard-link backup tools that do de-dup and which are also Open Source?</p> Debian, Philosophy, and People https://thunk.org/tytso/blog/2008/12/28/debian-philosophy-and-people/ Mon, 29 Dec 2008 00:59:10 +0000 https://thunk.org/tytso/blog/2008/12/28/debian-philosophy-and-people/ <p>Given the recent brouhaha in Debian, and General Resolution regarding Lenny’s Release policy as it relates to Firmware and Debian’s Social Contract, which has led to the resignation of Manoj Srivastava from the position of Secretary for the Debian Project, I’m reminded of the following passage from Gordon Dickson’s <em>Tactics of Mistakes</em> (part of Dickson’s Childe Cycle, in which he tells the story of the rise of the Dorsai):</p> <blockquote> <p>“No,” said Cletus. “I’m trying to explain to you why I’d never make an Exotic. In your calmness in the face of possible torture and the need to kill yourself, you were showing a particular form of ruthlessness. It was ruthlessness toward yourself—but that’s only the back side of the coin. You Exotics are essentially ruthless toward all men, because you’re philosophers, and by and large, philosophers are ruthless people.”</p> <p>“Cletus!” Mondar shook his head. “Do you realize what you’re saying?”</p> <p>“Of course,” said Cletus, quietly. “And you realize it as well as I do. The immediate teaching of philosophers may be gentle, but the theory behind their teaching is without compunction—and that’s why so much bloodshed and misery has always attended the paths of their followers, who claim to live by those teachings. More blood’s been spilled by the militant adherents of prophets of change than by any other group of people down through the history of man.”</p> </blockquote> <p>The conflict between idealism and pragmatism is a very old one in the Free and Open Source Software Movement. At one end of the spectrum stands Richard Stallman, who has never compromised on issues regarding his vision of Software Freedom. Standing at various distances from this idealistic pole are various members of the Open Source Community. For example, in the mid-1990’s, I used to give presentations about Linux using Microsoft Powerpoint. There were those in the audience that would give me grief about using a non-free program such as MS Powerpoint, but my response was that I saw no difference between driving a car which had non-free firmware and using a non-free slide presentation program. I would prefer to use free office suite, but at the time, nothing approached the usability of Powerpoint, and while dual-booting into Windows was a pain, I could do a better job using Powerpoint than other tools, and I refused to handcap myself just to salve the sensibilities of those who felt very strongly about Free Software and who viewed the use of all non-Free Software as an ultimate evil that must be stamped out at all costs.</p> <p>It is the notion of Free Software as a philosophy, with no compromises, which has been the source of many of the disputes inside Debian. Consider, if you will, the first clause of the Debian Social Contract:</p> <blockquote> <p><strong>Debian will remain 100% free</strong></p> <p>We provide the guidelines that we use to determine if a work is <!-- raw HTML omitted --><!-- raw HTML omitted -->free<!-- raw HTML omitted --><!-- raw HTML omitted --> in the document entitled <!-- raw HTML omitted --><!-- raw HTML omitted -->The Debian Free Software Guidelines<!-- raw HTML omitted --><!-- raw HTML omitted -->. We promise that the Debian system and all its components will be free according to these guidelines. We will support people who create or use both free and non-free works on Debian. We will never make the system require the use of a non-free component.</p> </blockquote> <p>This clause has in it no room for compromise. Note the use of words such as “100% free” and “<strong>never</strong> make the system require the use of a non-free component” (emphasis mine). In addition, the Debian Social Contract tends to be interpreted by Computer Programmers, who view such imperatives as constraints that must never be violated, under <em>any</em> circumstances.</p> <p>Unfortunately, the real world is rarely so cut-and-dried. Even the most basic injunctions, such as “<em>Thou shalt not kill</em>” have exceptions. Few people might agree with claims made by the U.S. Republican Party that the war in Iraq qualified as a Just War as defined by Thomas Aquinas, but rather more people might agree that the July 20, 1944 plot to assassinate Hitler would be considered justifiable. And most people would probably agree most of the actions undertaken by the Allied Soldiers on World War II battlefields that involved killing other soldiers would be considered a valid exception to the moral (and for those in the Judeo-Christian tradition, biblical) injunction, “<em>Thou shalt not kill</em>“.</p> <p>As another example, consider the novel and musical <strong>Les Misérables</strong>, by Victor Hugo. One of the key themes of this story is whether or not “<em>Thou shalt not steal</em>” is an absolute or not. Ultimately, the police inspector Javert, who lived his whole life asserting that law (untempered by mercy, or any other human considerations) was more important than all else, drowns himself in the Seine when he realizes that his life’s fundamental organizing principle was at odds with what was ultimately the Right Thing To Do.</p> <p>So if even the sixth and eighth commandments admit to exceptions, why is it that some Debian developers approach the first clause of the Debian Social Contract with a take-no-prisoners, no-exceptions policy? Especially given the fourth clause of the Debian Social contract:</p> <blockquote> <p><strong>Our priorities are our users and free software</strong></p> <p>We will be guided by the needs of our users and the free software community. We will place their interests first in our priorities. We will support the needs of our users for operation in many different kinds of computing environments. We will not object to non-free works that are intended to be used on Debian systems, or attempt to charge a fee to people who create or use such works. We will allow others to create distributions containing both the Debian system and other works, without any fee from us. In furtherance of these goals, we will provide an integrated system of high-quality materials with no legal restrictions that would prevent such uses of the system.</p> </blockquote> <p>This clause does not have the same sort of absolutist words as the first clause, so many Debian Developers have held that the “needs of the users” is defined by “100% free software”.   Others have not agreed with this interpretation — but regardless of how “needs of the users” should be interpreted, the fact of the matter is, injuctions such as “Thou shalt not kill” are just as absolute — and yet in the real world, we recognize that there are exceptions to such absolutes, apparently unyielding claims on our behavior.</p> <p>I personally believe that “100% free software” is a wonderful aspirational goal, but in particular with regards to standards documents and firmware, there are other considerations that should be taken into account.   People of good will may disagree about what those exceptions should be, but I think one thing that we should consider as even higher priority and with a greater claim on how we behave is the needs of our users and fellow developers __<em>as people</em>.   For those who claim Christianity as their religious tradition, Jesus once stated,</p> <blockquote> <p>Thou shalt love the Lord thy God with all thy heart, and with all thy soul, and with all thy mind.  This is the first and great commandment.  And the second is like unto it: <strong>Thou shalt love thy neighbour as thyself</strong>.   On these two commandments hang all the law and the prophets.</p> </blockquote> <p>Even for those who do not claim Christianity as their religious tradition, most moral and ethical frameworks have some variant on the Golden Rule: “Do unto others as you would have them do unto you”.  I would consider, for example, that the Golden Rule is at least a high priority claim on my behavior as the notion of free speech, and in many cases, it would be a higher priority claim.  The recent controversy surrounding <!-- raw HTML omitted -->Josselin Mouette was started precisely because Joss has taken a something which is a good thing, namely Free Speech, and relegated it to a principle more important than all else, and claiming that any restraint on such a notion was equivalent to censorship.<!-- raw HTML omitted --></p> <p>I think the same thing is true for free software, although it is a subtler trap.  Philosophical claims than “100% free software” as most important consideration is dangerously close to treating Free Software as the Object of Ultimate Concern — or in religious terms, idolotry.  For those who are religious, it’s clear why this is a bad thing; for those who aren’t — if you are unwilling to worship a supernatural being, you may want to very carefully consider whether you are willing to take a philosophical construct and raise it to a position of commanding your highest allegiance to all else, including how you treat other people.</p> <p>Ultimately, I consider people to be more important than computers, hardware or software.  So over time, while I may have had some disagreements with how Mark Shuttleworth has run Canonical Software and Ubuntu (but hey, he’s the multimillionaire, and I’m not), I have to give him props for Ubuntu’s <!-- raw HTML omitted -->Code of Conduct<!-- raw HTML omitted -->.  If Debian Developer took the some kind of Code of Conduct at least as seriously as the Social Contract, I think interactions between Debian Developers would be far more efficient, and in the end the project would be far more successful.   This may, however, require lessening the importance of philosophical constructs such as Free Speech and Free Software, and perhaps becoming more pragmatic and more considerate towards one another.</p> Is the Linux community watching a setting Sun? https://thunk.org/tytso/blog/2008/12/02/is-the-linux-community-watching-a-setting-sun/ Wed, 03 Dec 2008 03:50:03 +0000 https://thunk.org/tytso/blog/2008/12/02/is-the-linux-community-watching-a-setting-sun/ <p>The title of this post was a headline that was probably written by an overly sensationalistic editor at <!-- raw HTML omitted --><a href="http://www.searchenterpriselinux.com">http://www.searchenterpriselinux.com</a><!-- raw HTML omitted -->.  The <!-- raw HTML omitted -->actual article<!-- raw HTML omitted -->, though, was written by Pam Derringer, was a pretty balanced piece (although it obviously could have been more in-depth; given length and time constraints, she talked to as many people as I think could have been expected, including a Sun spokeswoman, two analysts from different analyst companies, the chair of Apache Software Foundation, a Sun customer, and so on).</p> <p>I’m not sure I’d agree with Jim Jagielski when he claims that Sun has the “best and brightest business people in the world,” though.  As I said in the article, and as I’ve said before, I have nothing but the highest respect for many of Sun’s engineers, especially those who work on Solaris.   But their <em>business people</em>?   I’m not so sure they have the best and brightest… in fact, I think that’s one of Sun’s greatest problems right now.  Compare that with the job that Mark Hurd has done with HP, or with the work done by the executives at my employer (IBM), and I’m not so sure a strong case can be made for the excellence of Sun’s business folk.  (I mean, how many people still believe that the $2 billion dollars which Sun spent to acquire Cobalt Networks, or the $4 billion dollars which Sun spent to acquire StorageTek, or the $1 billion dollars which Sun spent MySQL, were all good ideas?   Sun is currently valued by the market at $2.4 billion dollars!)</p> <p>My bigger concern at the moment, however, is what happens if Sun gets purchased by a rival or by a corporate raider and gets broken up for parts?   Since November 19th, when Sun’s stock price crashed through $3.27 (and has hit a low of $2.60 recently), it has been trading for less than its per-stock cash value.  I say that not out of a sense of Schadenfreude, but out of concern about what happens if someone decides to buy the company, lay everyone off, and even after paying all of its debts, the resulting cash left over would be more than cost of completely buying the company — all of the real estate, the inventory, and the patent portfolio would all be pure profit.</p> <p>It’s the last I’m most concerned about; Sun has a very large patent portfolio!   What if it fell into the hands of a patent troll?   What damage could be done to not just Linux and the OSS comunity, but the software industry as a whole?   Suppose Sun really does have patents that read upon many of NetApp’s products?   If those patents fall into the hands of a patent troll, NetApp would no longer be able to negotiate a peace settlement based on its patents (if they survive the on-going patent re-examination process) that read on ZFS, since the patent troll would no longer be making any products based on ZFS.   Maybe somewhere in Sun’s patent portfolio, there are patents that read on the GNOME and KDE desktops, but since Sun is trying to ship those with its Project Indiana/Open Solaris dekstop, it’s not bothering to assert them at this time?    What if a patent troll, perhaps one funded by Microsoft, gets their hands on those patents?</p> <p>One final scary thought.   Sun’s current market cap: $2.40 billion USD.  Sun’s cash on hand: $2.63 billion USD.   Microsoft’s current cash on hand: $19.71 billion USD.   I can just imagine Steve Ballmer saying, “Chris, take it out of petty cash.  I have an itsy-bitsy little acquistion I want to make….  Now I can embrace and extend Java all I want!  And you know those term-limited, non-Open Source TCK licenses Sun gave to OpenJDK developers — not any more!  They’re gone, within a year, the next time Red Hat needs to get the license renewed!”</p> <p>Could it happen?   What do you think?</p> Followups to the ebooks ethical question https://thunk.org/tytso/blog/2008/11/30/followups-to-the-ebooks-ethical-question/ Sun, 30 Nov 2008 23:36:28 +0000 https://thunk.org/tytso/blog/2008/11/30/followups-to-the-ebooks-ethical-question/ <p>When I have a moment, I’ll try to tally up the responses that I got to <!-- raw HTML omitted -->“An ethical question involving ebooks”<!-- raw HTML omitted -->and see if there are any interesting patterns based on self-identified generational markers.  Obviously, this is <strong>not</strong> a properly controlled survey, so the results aren’t going to mean much, but it is interesting that some fairly passionately written comments came from folks who self-identified as coming from generations that broke with the common stereotypes of their respective demographic groups.   If I were going to commission a study, one thing that I would almost certainly do is to ask pose a similar question about music and mp3’s, and do have the surveys asking the question about ebooks first, and half the surveys asking the questions about music first.  It would be interesting to see if (a) there is a difference in attitudes between music and books, and (b) whether the order of the questions might influence the answers or not.</p> <p>A number of poeple have asked me about the author’s name and the title of the books/series involved.  I deliberately didn’t include that information, for a number of reasons.  First of all, I don’t believe idenifying the author/books/character involved is relevant to the question at hand, and in fact, might be distracting.  Secondly, given the many comments, some of them quite passionate, I don’t think it would be fair to drag her name into the discussion without her permission first.  I will say that the author does have a fairly extensive internet presence, and has apparently gotten a lot of questions about said character, and in fact whether those books would be made into ebooks.   It’s been made quite clear that while those books were successful, they weren’t <em>that</em> successful, and so from an economic point of view, she chooses to write books that she (and her publishers) feel will be more economically viable.   Because there will likely be no further books published containing this character, it is very unlikely that the publisher will reprint the original series of books — and when asked about whether they would be made available in ebook form, her response was effectively “it’s up to the publisher”,  Apparently she has worked with a number of publishers, and while publisher X hasn’t been willing to publish her books in ebook form, publisher Y has.  Furthermore, it seems that her contracts apparently delegate all decisions about how her books will be published, and whether a large Major Big City Law Firm with Fangs (aka MBCLFF) will go after copyright infringers to her publishers and her agent (who is a lawyer at said MBCLFF, and who could presumably inflict major Hurt on copyright infringers that curry the lawyer’s disfavor).   I don’t know if this is true, or just her way of managing her relationship with her fans by disclaiming all responsibility about publication forms and enforcement decisions to others — but some authors do make such choices, if they are much more interested in the writing and storytelling end of things than the business side of things.</p> <p>Which brings up an interesting question with respect to copyright enforcement.   It’s pretty obvious that many people will give different answers to the question relating to how much deference should be given to copyrights depending on whether they are owned by The Struggling Author versus whether they are owned by The Big Media Corporate Monolith, with many more allowances given if the question is framed as being primarily about the former rather than the latter.   Another way in which how you frame the question radically changes the outcome depends on whether the focus is on <em>making sure the author (and/or his surviving widow/widower/children) get paid</em> or whether the focus is on <em>control of one’s works</em>.   If you believe the primary justification is an economic one, then that leads to a series of ethical conclusions — the most obvious of which is that if it doesn’t result in a direct (or perhaps indirect) monetary loss to the author, there should not be a moral or ethical problem.   There might be some question as to whether devaluing the secondary market might discourage the sale of new books, and hence indirectly harm the author sufficiently that this should be a concern, but those issues can be worked out.</p> <p>If however, you believe the primary issue at hand is one of <strong>control</strong>, a very different set of issues have to get factored into the conversation. For example, what if the author was ashamed of a book or series, and wants it to go quietly out of print, and hopefully disappear. How should that be weighed against fans who disagree with the author and who love the series? What is the right balance? For those who argue that the author’s wishes should be sacrosanct — should we move things more in that direction? What if all texts lived in DRM’ed, encrypted containers, and electronic readers had to ask permission of a central authorization server for the text could be displayed. This would allow the author to, after the fact, disable anyone from reading his or her works, if for some reason the author so desired it. Would that be a good thing? If not — and I hope most authors would agree this would be horrific power to give copyright holders — then it’s clear that author’s moral rights as creators should not be entirely sacrosanct, and that the society also has some claims on preserving its culture, and that once a book has been published and becomes part of the culture, society should have some claim on that book as part of culture. Whether that means that copyright terms should be 14 years or 20 years as opposed to whenever the Disney corporation feels like paying off more legislators to extend copyright terms is one way that question could be asked. Another is whether society should have the right to say that if after some number of years where a work has been abandoned for commercial exploitation, whether it should automatically enter the public domain. There are no obvious answers here.</p> <p>The final point that I want to make, which may be fairly controversial amongst the Open Source programmers in the room, is that if you believe that copyright should be fundamentally be about economic arguments of “no harm, no foul”, that this is in direct contradiction with the belief that lawsuits should be used in order to enforce the GPL. After all, <em>the conditions imposed by the GPL are fundamentally about control, not about economic issues</em>. Consider — if someone uses the Busybox project in an embedded device — especially if no changes has been made to the code — who has been harmed, economically? No harm, no foul, right? Or if someone uses GPLv3 code in a firmware which is protected by a digital signature — sure, it means that end users who want to modify the firmware and then use it to enhace/extend the device won’t be able to do so. But how does that economically harm the author of the GPLv3 code? Fundamentally, Copyleft schemes are all about extending control over how the code can be used. Hence, if you are an Free Software programmer who cheers on the activities of the SFLC, or who firmly believes that no one should be allowed to mix firmware which is not shipped with source with <strong>your</strong> GPL’ed software, it is completely and profoundly hypocritical to say, “F*ck the author’s wishes; if it’s not available in the from <strong>I</strong> want, I should be able to make a derived work to transfer the work into a form that I want.” What if the author is a luddite who hates eBooks and firmly believes and wants to enforce that their works should never be made available in eBook form. How is that fundamentally different from a Free Software Acolyte saying that because they abhor non-free firmware, and don’t want allow their code to be shipped alongside binary-only firmware?</p> An ethical question involving ebooks https://thunk.org/tytso/blog/2008/11/29/an-ethical-question-involving-ebooks/ Sat, 29 Nov 2008 04:48:36 +0000 https://thunk.org/tytso/blog/2008/11/29/an-ethical-question-involving-ebooks/ <p>I recently purchased a short story from Fictionwise, which was not DRM’ed, so I could easily get it into a form where I could read it on my <!-- raw HTML omitted -->Sony eReader<!-- raw HTML omitted -->. Thanks to that short story, I was introduced to an author, and a character, which I found very engaging. When I decided to find out more about the character, I found that the author had written two additional short stories, and three additional novels many years ago, but has since stopped writing any more books involving that character. Furthermore, the novels have gone out of print, and are only available from amazon.com as used books.</p> <p>Unfortunately, I travel a lot. So much so, that one of the few times that I have time to read is when I’m traveling. And I really dislike having to haul dead-tree versions of my favorite novels around; they take up far too much weight and space in my carry-on luggage. Unfortunately, these out-of-print novels were published by a Neanderthal Publishing company who hasn’t made any of the books available in ebook format, DRM’ed or no. Grumpy, I searched on Internet, and found all three novels were easily available for free download — in a pirated form, of course.</p> <p>Should I download them and convert them into a form which would allow me to read them on my Sony eReader? Well, according to Russell Davis, former chair (and now president of the Science Fiction Writer’s Association) of the SFWA’s Copyright Committee, <a href="http://community.livejournal.com/sfwa/39526.html">“electronic infringement is theft”</a>. From a legal perspective, I suppose that is true.   And given that as an Open Source programmer, I depend on Copyright Law to assure that my wishes as an author are upheld, it would be hypocritical for me assume that I should be able to ignore Copyright Law just because it is inconvenient.</p> <p>And yet…   from a moral perspective, who has really lost anything?   The argument made by Russell Davis is that infringement is bad because it is “harming authors and author estates”.   Jerry Pournelle has indignantly proclaimed that e-piracy goes against a <!-- raw HTML omitted -->“specific (and very stern) Biblical injunction against stealing from widows and orphans”<!-- raw HTML omitted -->.   Of course, in this case, the author is still alive (and is female, although I suppose stealing from widowers would be just as bad).  Also, given that the author has publically stated she doesn’t plan to write any more books involving this character (since some of her more psychotic readers sent her death threats as a result of reading said books), the publisher is highly unlikely to re-release said novels — and if I buy used dead-tree versions of said novels, the author doesn’t receive any additional royalties.   So, then, where is the moral bright line?</p> <ul> <li>Should I purchase a used dead-tree copy of the novel, and lug it around, inconveniencing me, causing more CO2 emissions by shipping the book to me, and in the airplane because of its added weight, as the only way I can comply with copyright law?   Furthermore, should I do this to set an example to all of the younger generations that are treating copyright law much more casually, much as essentially all drivers casually ignore the law’s dictats to not drive faster than the speed limit?  (Many have argued that the current state of affairs with respect to music and etexts and copyright law is bad because it encourages people to not respect the rule of law — I guess, as the argument goes, if people don’t respect the copyright law, what’s next?   Torturing prisoners in Guantanomo in violation of the law?  Oh, wait… too late…)</li> <li>Should I purchase a used dead-tree copy of the novel, slice the binding off, and then run pages through a scanner and an OCR program, then spend hours reformatting it into an .LRF file so I can read it on the Sony eReader?   Would that be considered fair use?</li> <li>What if I purchase a used dead-tree copy of the novel, but to save the time and effort of scanning the pages and correcting the OCR errors, download the pirated e-text, and convert it into an .LRF file and enjoy it on my Sony eReader?</li> <li>What if I don’t purchase the dead-tree copy of the book, download the pirated e-text, and send a money order (so it can’t be traced) for roughly the same amount of money as the cost of the used dead-tree version of the book to the author, with a letter explaining why she was receiving this check?</li> <li>What if I just download the pirated e-text, justifying my actions that no one is actually getting hurt my downloading the text and reading it; after all, since it is long out of print and not available from any booksellers as a new book, the author isn’t going to be getting any more royalties anyway.</li> </ul> <p>Somewhere along this continuum, we’ve crossed over from the light-side to the dark-side.   Setting aside the observation that the Neanderthal attitudes and business practices of the publisher involved has made it impossible for me to legitimiately follow the law, enjoy the novels, <em>and</em> direct money to the author via royalty payments — what do you think is the morally correct course of action?   And why?  And if you don’t mind saying so publically, roughly what generation are you from (i.e., Baby Boomer, Gen X, Gen Y, etc.)?  I’m curious how attitudes are changing based on age, and whether folks who are currently in college might differ from those who can remember a time when the Internet didn’t exist…</p> <p><strong>Update:</strong> I’ve posted a follow-up to this post <!-- raw HTML omitted -->here<!-- raw HTML omitted -->.</p> <p><strong>Update</strong>2:** This post is starting to get more attention from writers and publishers world.   For those folks, after you get tired reading through the many comments expressing the opinion that it’s “ok to just pirate it”, you may want to skip ahead to the comments around #240-#250.  (Also see some of Charlie Stross’s comments — he’s a British Science Fiction Writer — at comments #180, #193, #198, #204, #206, etc.)  There are some much more nuanced discussions about the nature of copyright taking place later in the comment stream, and in my first (I doubt it will be the last) <!-- raw HTML omitted -->follow-up post<!-- raw HTML omitted -->.  Please jump in and participate in the discussion — and please don’t just ignore first 200 or so comments; those people are your customers, and for those who are  Gen X’ers and the Millenials, <em>they are our future</em>.  Participating in the discussion is better than pretending they don’t or shouldn’t exist, or trying to sic the lawyers on them like the RIAA and MPAA tried to do…</p> New toy: iPod Touch (2nd Generation) https://thunk.org/tytso/blog/2008/09/14/new-toy-ipod-touch-2nd-generation/ Sun, 14 Sep 2008 19:24:00 +0000 https://thunk.org/tytso/blog/2008/09/14/new-toy-ipod-touch-2nd-generation/ <p>With the price drop, I finally decided to get a 32GB iPod Touch, and I have to admit, Apple has done a really nice job. Its decisions about which applications it decides to arbitrarily blacklist from its AppStore (either now or without warning in the future) is evil, of course, but I don’t plan to develop on a locked-in platform such iPod/iPhone, so that’s not a problem. And of course, given <a href="https://thunk.org/tytso/tytso/blog/2008/04/15/att-customer-support-horrors">AT&amp;T’s evil customer service</a>, I won’t be getting an iPhone any time soon (life’s too short to play cat and mouse with Apple’s cell phone locking games), this was probably my only opportunity in the short time to play with the iPhone/iPod touch’s e-mail application.</p> <p>My reaction? Apple’s programmers and UI designers are very, very, good. As Jim Zemlin <!-- raw HTML omitted -->has pointed out<!-- raw HTML omitted -->, if Apple’s locked-down platform is a prison, it’s a velvet lined one. And I’m not one to like living in prisons, even if they are gorgeously appointed with 50 inch flat panel TV screens and an ocean view. But still, I’m happy with the iPod Touch; it’s relatively cheap for its functionality as an mp3 player, with web and e-mail access via wifi as a bonus. The only thing that is important is that I not harbor any illusions that this is not an open device, but a locked down platform. So that means I won’t invest any time in developing for it; nor will I invest any money in any for-pay applications (after all, Apple has the right to disable them at any time, for any reason they deem good and proper). And if any one really thinks Apple wouldn’t do anything like this, remember, they’re the company that just filed a patent on implementing DRM on clothing and sneakers!<!-- raw HTML omitted --></p> <p>Still, it would be nice if an open platform, such as the Nokia N800 had the functionality and usability of the iPod touch. One day, perhaps…</p> Fast ext4 fsck times https://thunk.org/tytso/blog/2008/08/08/fast-ext4-fsck-times/ Fri, 08 Aug 2008 23:33:43 +0000 https://thunk.org/tytso/blog/2008/08/08/fast-ext4-fsck-times/ <p>This wasn’t one of the things we were explicitly engineering for when were designing the features that would go into ext4, but one of the things which we’ve found as a pleasant surprise is how much more quickly ext4 filesystems can be checked. Ric Wheeler <a href="http://article.gmane.org/gmane.comp.file-systems.ext4/7791">reported some really good fsck times that were over ten times better than ext3</a> using filesystems generated using what was admittedly a very artificial/synthetic benchmark. During the <a href="https://thunk.org/tytso/tytso/blog/2008/06/30/ext4-is-now-the-primary-filesystem-on-my-laptop">past six weeks</a>, though, I’ve been using ext4 on my laptop, and I’ve seen very similar results.</p> <p>This past week, while at LinuxWorld, I’ve been wowing people with the following demonstration. Using an LVM snapshot, I ran e2fsck on the root filesystem on my laptop. So using a 128 gigabyte filesystem, on a laptop drive, this is what people who got to see my demo saw:</p> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <p>How does this compare against ext3? To answer that, I copied my entire ext4 file system to an equivalently sized partition formatted for use with ext3. This comparison is a little unfair since the ext4 file system has six weeks of aging on it, where as the ext3 filesystem was a fresh copy, so the directories are a bit more optimized. That probably explains the slightly better times in pass 2 for the ext3 file system. Still, it was no contest; the ext4 file system was almost seven times faster to check using e2fsck compared to the ext3 file system. Fsck on an ext4 filesystem is <em>fast</em>!</p> <!-- raw HTML omitted --> <pre><code>&lt;td colspan=&quot;5&quot; align=&quot;center&quot;&gt; ext3 &lt;/td&gt; &lt;td rowspan=&quot;9&quot; align=&quot;center&quot;&gt; &lt;/td&gt; &lt;td colspan=&quot;5&quot; align=&quot;center&quot;&gt; ext4 &lt;/td&gt; </code></pre> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code>&lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt; I/O &lt;/td&gt; &lt;td colspan=&quot;3&quot; align=&quot;center&quot;&gt; time (s) &lt;/td&gt; &lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt; I/O &lt;/td&gt; </code></pre> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code>&lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; user &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; system &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; MB read &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; MB/s &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; real &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; user &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; system &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; MB read &lt;/td&gt; &lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt; MB/s &lt;/td&gt; </code></pre> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code>&lt;td align=&quot;right&quot;&gt; 382.63 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 18.06 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 14.99 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2376 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 6.21 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 17.82 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 5.52 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1.11 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 233 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 13.08 &lt;/td&gt; </code></pre> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code>&lt;td align=&quot;right&quot;&gt; 31.76 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1.76 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2.13 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 303 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 9.54 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 41.47 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2.16 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 3.3 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 274 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 6.61 &lt;/td&gt; </code></pre> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code>&lt;td align=&quot;right&quot;&gt; 0.03 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.01 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 31 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.04 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.02 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.01 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 27.38 &lt;/td&gt; </code></pre> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code>&lt;td align=&quot;right&quot;&gt; 0.2 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.2 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.25 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.24 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; &lt;/td&gt; </code></pre> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code>&lt;td align=&quot;right&quot;&gt; 9.86 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1.26 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.22 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 5 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.51 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 3.13 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1.85 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 0.1 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 5 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 1.6 &lt;/td&gt; </code></pre> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code>&lt;td align=&quot;right&quot;&gt; 424.81 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 21.36 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 17.34 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 2685 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 6.32 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 63.35 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 9.86 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 4.54 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 511 &lt;/td&gt; &lt;td align=&quot;right&quot;&gt; 8.07 &lt;/td&gt; </code></pre> <!-- raw HTML omitted --> Ext4 is now the primary filesystem on my laptop https://thunk.org/tytso/blog/2008/06/30/ext4-is-now-the-primary-filesystem-on-my-laptop/ Mon, 30 Jun 2008 19:06:33 +0000 https://thunk.org/tytso/blog/2008/06/30/ext4-is-now-the-primary-filesystem-on-my-laptop/ <p>Over the weekend, I converted my laptop to use the ext4 filesystem.  So far so good!  So far I’ve found one bug as a result of my using ext4 in production (if delayed allocation is enabled, i_blocks doesn’t get updated until the block allocation takes place, so files can appear to have 0k blocksize right after they are created, which is confusing/unfortunate), but nothing super serious yet.  I will be doing backups a bit more frequently until I’m absolutely sure things are rock solid, though!</p> <p>I am using the latest ext4 patches and the tip of the e2fsprogs git repository.  Hopefully when we get the bulk of the patches merged into the mainline kernel after the 2.6.26 ships and the 2.6.27 merge window opens, and after I ship out e2fsprogs 1.41 (I have one work-in-progress pre-release, with another coming soon), it’ll be ready for much more wide-spread testing.</p> <p>In addition to the excellent crew of ext4 developers, I’d like to call out for special thanks Gary Howco and Holger Kiehl, two early users/benchmarkers of ext4 who tried our latest code, and reported bugs that had previously escaped attention by developers (who had been mostly testing the code via the same old test suites); their additional workloads and benchmarks flushed out a few additional bugs.   Thanks, guys!!</p> <p>Hopefully after a few weeks of my using ext4 for real-live work, I’ll find a few last few bugs to be fixed, and/or feel much more confident it’s ready for me to recommend to others for <em>their</em> production data.</p> Learning how to communicate https://thunk.org/tytso/blog/2008/06/13/learning-how-to-communicate/ Fri, 13 Jun 2008 21:15:49 +0000 https://thunk.org/tytso/blog/2008/06/13/learning-how-to-communicate/ <p>Pity poor Dr. Ari Jaaksi from Nokia. He gave a talk at the Handsets World conference in Berlin on Tuesday, where <!-- raw HTML omitted -->according to ZDnet<!-- raw HTML omitted -->, he lectured Open Source Developers that they needed to learn why DRM and other closed technologies were necessary, because of business issues such as subsidized (device) business models. I suspect he wasn’t prepared for the reaction, which took the form of a <!-- raw HTML omitted -->major fuss on Slashdot<!-- raw HTML omitted -->, as well as some declarations from a few people on the maemo-users mailing lists that they would never buy another Nokia device. Dr Jaaski then posted today on his blog an entry entitled, <!-- raw HTML omitted -->“Some learning to do?”<!-- raw HTML omitted -->, where he stated that while Nokia needs to learn how the open source world works (not just licenses and legal issues, but also the spirit), that the open source world also needed to learn as well — about WHY things are the way they are. He ended the post with “I’m not a teacher, I’m a learner” — which is fair enough.</p> <p>I actually think that Dr. Jaaksi is right; we all should be interested in learning, and having talked with a number of Nokia employees, I can testify that their hearts are very much in the right place, and there are some strong reasons regarding the demands of carriers, the subsidized business model of handsets in the US, the attitudes of suppliers for components in mobile devices, that very much tie their hands — as well the hands of every other handset company out there. Progress in this space will come slowly, and but I believe there is hope that in the long run things will get better.</p> <p>However, at the same time, I would suggest to Dr. Jaaksi that it’s also important how to communicate with the open source community — or with any community that holds views sometimes with great passion. Many people do not react well to being told that they need to learn something — even if it is true that they do. Admitting that they need to learn is for some people tantamount to admitting ignorance, or even worse admitting stupidity, and so they are loath to do this. Telling them this just makes them defensive and angry.</p> <p>My suggestion for how get people to learn without making them defensive is to use a modified Socratic method. It works especially well with the Open Source crowd, because many of them are engineers, and engineers are by nature problem solvers. So if you give them a problem to solve, they will go to work trying to find potential solutions, and thus start thinking and learning about the problem from a different point of view. Hence, a better approach is to give them a series of business constraints (time to market, the demands of carriers, the fact that most end users prefer to buy subsidized phones with 1-2 year lock-in contracts, the intransigence of suppliers, why a single company can’t afford to create their own chipsets from scratch and have to rely on companies like Broadcom, etc.) and then tell them — we’d love to delight our customers in any way we can, and clearly you are very passionate about DRM, open device drivers, and other OSS issues. We however have to create successful products and sell them at a price such that we don’t go out of business — can you help us work through all of these constraints? Let’s work together so we <em>can</em> make an open source mobile platform that meets the spirit as well as the legal requirements of the open source world!</p> <p>Dr. Jaaksi and his team are struggling with a hard problem, and I am very sympathetic to their issues. And, they have to be commended for investing as much time and effort on the Maemo platform, as well as other Linux and Open Source platforms as they have to date. The strength of the Open Source community is that we work together to solve our mutual problems, while celebrating and giving permission to people to “scratch their own itches”. In order to do that, we need to learn how to better communicate with each other, and that is something that goes in both directions.</p> <p>When I was at MIT as an undergraduate, far too many years ago than I care to admit, I took economics classes and Sloan School of Management classes (even though they were not necessary for a Computer Science degree) for that very reason. I encourage open source advocates to learn how to walk a mile or two in business people’s shoes, since if you want to influence them them to change in the ways that you desire, you need to know where they are coming from — just shouting and throwing rotten tomatoes generally won’t get you very far. On the flip side, people who are on the corporate side of the divide also need to understand that certain ways of engaging the community can be more productive than others. At the end of the day, hopefully we can all agree with Dr. Jaaksi that everyone will benefit if we all commit to learning from each other.</p> <p><strong>Update:</strong> I’ve fixed Dr. Jaaksi’s name so it is spelled correctly; my apologies for the error.</p> Donald Knuth: “I trust my family jewels only to Linux” https://thunk.org/tytso/blog/2008/04/26/donald-knuth-i-trust-my-family-jewels-only-to-linux/ Sun, 27 Apr 2008 01:02:37 +0000 https://thunk.org/tytso/blog/2008/04/26/donald-knuth-i-trust-my-family-jewels-only-to-linux/ <p>Andrew Binstock <a href="http://www.informit.com/articles/article.aspx?p=1193856">interviewed Donald Knuth recently</a>, and one of the more amusing tidbits was this:</p> <blockquote> <p>I currently use Ubuntu Linux, on a standalone laptop—it has no Internet connection. I occasionally carry flash memory drives between this machine and the Macs that I use for network surfing and graphics; but I trust my family jewels only to Linux.</p> </blockquote> <p>More seriously, I found his comments about about multi-core computers to be very interesting:</p> <blockquote> <p>I might as well flame a bit about my personal unhappiness with the current trend toward multicore architecture. To me, it looks more or less like the hardware designers have run out of ideas, and that they’re trying to pass the blame for the future demise of Moore’s Law to the software writers by giving us machines that work faster only on a few key benchmarks! I won’t be surprised at all if the whole multithreading idea turns out to be a flop, worse than the “Itanium” approach that was supposed to be so terrific—until it turned out that the wished-for compilers were basically impossible to write.</p> <p>Let me put it this way: During the past 50 years, I’ve written well over a thousand programs, many of which have substantial size. I can’t think of even five of those programs that would have been enhanced noticeably by parallelism or multithreading. Surely, for example, multiple processors are no help to TeX….</p> <p>I know that important applications for parallelism exist—rendering graphics, breaking codes, scanning images, simulating physical and biological processes, etc. But all these applications require dedicated code and special-purpose techniques, which will need to be changed substantially every few years.</p> </blockquote> <p>This is a very interesting issue, because it raises the question of what next-generation CPU’s need to do in order to be successful. Given that it is no longer possible to just double the clock frequency every 18 months, should CPU architects just start doubling the number of cores every 18 months instead? Or should they try to concentrate a lot more computing power into an individual core, and optimize for a fast and dense interconnect between the CPU’s? The latter is much more difficult, and the advantage of doing the first is that it’s really easy for marketing types to use some cheesy benchmark such as SPECint to help sell the chip, but then people find out that it’s not very useful in real life.</p> <p>Why? Because programmers have proven that they have a huge amount of trouble writing programs that take advantage of these very large multicore computers. Ultimately, I suspect that we will need a radically different way of programming in order to take advantage of these systems, and perhaps a totally new programming language before we will be able to use them.</p> <p>Professor Knuth is highly dubious that the later approach will work, and while I hope he’s wrong (since I suspect the hardware designers are starting to run out of ideas, so it’s time software engineers started doing some innovating), he’s a pretty smart guy, and he may well be right. Of course, another question is whether what would we <em>do</em> with all of that computing power? Whatever happened to the predictions that computers would be able to support voice or visual recognition? And of course, what about the power and cooling issues for these super-high-powered chips? All I can say is, the next couple of years is going to be interesting, as we try to sort out all of these issues.</p> Organic vs. Non-Organic Open Source, Revisited https://thunk.org/tytso/blog/2008/04/26/organic-vs-non-organic-open-source-revisited/ Sat, 26 Apr 2008 04:21:49 +0000 https://thunk.org/tytso/blog/2008/04/26/organic-vs-non-organic-open-source-revisited/ <p>There’s been some controversy generated over <!-- raw HTML omitted -->my use of the terminology of “Organic” and “Non-Organic” Open Source<!-- raw HTML omitted -->. Asa Dotzler <a href="https://thunk.org/tytso/tytso/blog/2008/04/24/organic-vs-non-organic-open-source/#comment-410">noted</a> that it wasn’t Mozilla’s original intent to “make a distinction between how Mozilla does open source and how others do open source”. <!-- raw HTML omitted -->Nessance complained<!-- raw HTML omitted --> that he didn’t like the term “Non-Organic”, because it was “raw and vague – is it alien, poison, silicon-based?” and suggested instead the term “Synthetic Open Source”, referencing a paper by Siobhán O’Mahony, <!-- raw HTML omitted -->” What makes a project open source? Migrating from organic to synthetic communities”<!-- raw HTML omitted -->. Nessance referenced a series of <!-- raw HTML omitted -->questions and answers<!-- raw HTML omitted --> by Stephen O’ Grady from Red Monk, where he claimed the distinction between the two doesn’t matter. (Although given that Sun is a paying customer of Red Monk, Stephen admits that this might have influenced his thinking and so he might be “brainwashed” :-).</p> <p>So let’s take some of these issues in reverse order. Does the distinction matter? After all, if the distinction doesn’t matter, then there’s no reason to create or define specialized terminology to describe the difference. Certainly, Brian Aker, a senior technologist from MySQL, thinks it does, as do folks like me and <!-- raw HTML omitted -->Amanda McPherson<!-- raw HTML omitted --> and <!-- raw HTML omitted -->Mike Dolan<!-- raw HTML omitted -->; but does it really? Are we just saying that because we want to take a cheap shot at Sun?</p> <p>Well, to answer that, let’s go back and ask the question, “Why is Open Source a good thing in the first place?” It’s gotten to the point where people just assume that it’s a good thing, because everybody says it is. But if we go back to first principals maybe it will become much clearer why this dinction is so important.</p> <p>Consider the Apache web server; it was able to completely dominate the web server market, easily besting all of its proprietary competitors, including the super-deep-pocketed Microsoft. Why? It won because a large number of volunteers were able to collaborate together to create a very fully featured product, using a “stone soup” model where each developer “scratched their own itch”. Many, if not most, of these volunteers were compensated by their employers for their work. Since their employers were not in the web server business, but instead needed a web server as means (a critical means, to be sure) to pursue their business, there was no economic reason not to let their engineers contribute their improvements back to the Apache project. Indeed, it was cheaper to let their engineers work on Apache collaboratively than it was to purchase a product that would be less suited for their needs. In other words, it was a collective “build vs. buy” decision, with the twist that because a large number of companies were involved in the collaboration, it was far, far cheaper than the traditional “build” option. This is a powerful model, and the fact that Sun originally asked Roy Felding from the Apache Foundation to assist in forming the Solaris community indicates that at least some people in Sun appreciated why this was so important.</p> <p>There are other benefits of having code released under the Open Source license, such as the ability for others to see the implementation details of your operating system — but in truth, Sun had already made the Source Code for Solaris available for a nominal fee years before. And, of course, there are plenty of arguments over the exact licensing terms that should be used, such as GPLv2, GPLv3, CDDL, the CPL, MPL, etc., but sometimes those arguments can be a distraction from the central issue. While the legal issues that arise from the choice of license are important, at the end of the day, the most crucial issue is the <strong>development community</strong>. It is the strength and the diversity of the development community which is the best indicator for the health and the well-being of an Open Source project.</p> <p>But what about end-users, I hear people cry? End users are important, to the extent that they provide ego-strokes to the developers, and to the extent that they provide testing and bug reports to the developers, and to the extent that they provide an economic justification to companies who employ open source developers to continue to do so. But ultimately, the effects of end-users on an open source project is only in a very indirect way.</p> <p>Moreover, if you ask commercial end users what they value about Open Source, a <!-- raw HTML omitted -->survey by Computer Economics<!-- raw HTML omitted --> indicated that the number one reason why customers valued open source was “reduced dependence on software vendors”, which end users valued 2 to 1 over “lower total cost of ownership”. (Which is why Sun Salescritters who were sending around TCO analysis comparing 24×7 phone support form Red Hat with Support-by-email from Sun totally missed the point.) What’s important to commercial end users is that they be able to avoid the effects of vendor lock-in, which implies that if all of the developers are employed by one vendor, it doesn’t provide the value the end users were looking for.</p> <p><strong>This</strong> is why whether a project’s developers are dominated by employees from a single company is so important. The license under which the code is released is merely just the outward trappings of an open source project. What’s really critical is the extent to which the development costs are shared across a vast global community of developers who have many different means of support. This saves costs to the companies who are using a product being developed in such a fashion; it gives choice to customers about whether they can get their support from company A or company B; programmers who don’t like the way things are going at one company have an easier time changing jobs while still working on the same project; it’s a win-win-win scenario.</p> <p>In contrast, if a project decides to release its code under an open source license, but nearly all the developers remain employed by a single company, it doesn’t really change the dynamic compared to when the project was previously under a closed-source license. It is a <strong>necessary but not sufficient step</strong> towards attracting outside contributors, and eventually migrating towards having a true open source development community. But if those further steps are not taken, the hopes that users will think that some project is <strong>“cool”</strong> because it is under an open-source license will ultimately be in vain. The “Generation Y”/Millennial Generation in particular are very sensitive indeed to Astroturfing-style marketing tactics.</p> <p>Ok, so this is why the distinction matters. Given that it does, what terms shall we use? I still like “Organic” vs “Non-organic”. While it may not have been intended by the Mozilla Foundation, the description in their web page, “only a small percentage of whom are actual employees [of the Mozilla Foundation]”, is very much what I and others have been trying to describe. And while I originally used the description “Projects which have an Open Source Development Community” vs “Projects with an Open Source License but which are dominated by employees from a single company”, I think we can all agree these are very awkward. We need a better shorthand.</p> <p>When Brian Aker from MySQL suggested “Organic” vs “Non-Organic” Open Source, and I think those terms work well. If some folks think that “Non-Organic” is somehow pejorative (hey, at least we didn’t say “genetically modified Open Source” :-), I suppose we could use Synthetic Open Source. I’m not really convinced that is any much more appetizing, myself, however.</p> <p>So what would be better terms to use? Please give me some suggestions, and maybe we can come up with a better set of words that everyone is happy with.</p> Links — 2008-04-25 https://thunk.org/tytso/blog/2008/04/25/links-2008-04-25/ Fri, 25 Apr 2008 14:57:48 +0000 https://thunk.org/tytso/blog/2008/04/25/links-2008-04-25/ <dl> <dt><a href="http://blogs.zdnet.com/BTL/?p=8421">The Open Source Commands</a></dt> <dd>Really good ideas that companies should take to heart.</dd> <dt><a href="http://blogs.zdnet.com/BTL/?p=8528">Open Source Commandments II: Passover Penguins</a></dt> <dd>More really good ideas, especially for companies like Sun…</dd> <dt><a href="http://blog.linuxtoday.com/blog/2008/04/did-canonical-j.html">Did Canonical Just Get Punked by Red Hat and Novell?</a></dt> <dd>Interesting thoughts about Linux desktop strategies</dd> <dt><a href="http://www.rpath.com/corp/2008-press-release-archive/rpath-to-oem-suse-linux-enterprise-server-from-novell-for-applia.html">rPath to OEM SUSE Linux Enterprise Server from Novell for Appliances</a></dt> <dd>I know a bunch of the folks at rPath, and I very much respect their technology; I think this is a very good thing for them.</dd> <dt><a href="http://blogs.zdnet.com/BTL/?p=8597">Does Microsoft CEO Steve Ballmer need an intervention?</a></dt> <dd>Does <em>anyone</em> think a Microsoft/Yahoo merger makes sense besides Mr. Ballmer?</dd> </dl> Organic vs. Non-organic Open Source https://thunk.org/tytso/blog/2008/04/24/organic-vs-non-organic-open-source/ Thu, 24 Apr 2008 12:24:20 +0000 https://thunk.org/tytso/blog/2008/04/24/organic-vs-non-organic-open-source/ <p>Brian Aker dropped by and replied to <a href="https://thunk.org/tytso/tytso/blog/2008/04/19/what-sun-was-trying-to-do-with-open-solaris/">my previous essay</a> by making the following comment:</p> <blockquote> <p>I believe you are hitting the nail on the “organic” vs “nonorganic” open source. I do not believe we have a model for going from one to the other. Linux and Apache both have very different models for contribution… but I don’t believe either are really optimized at this point.</p> <p>Optimization to me would lead to a system of “less priests” and more inclusion.</p> </blockquote> <p>I made an initial reply as comment, and then decided it was so long that I should promote it to a top-level post.</p> <p>I assume that when Brian talks about “organic open source” what he means is what I was calling an “open source development community”. Some googling turned up the following definition from <a href="http://www.mozilla.com/en-US/firefox/organic/">Mozilla Firefox’s organic software page</a>: “Our most well-known product, Firefox, is created by an international movement of thousands, only a small percentage of whom are actual employees.”</p> <p>This puts it in contrast with “non-organic” software, where all or nearly all of the developers are employed by one company. (And anyone who proves talented at adding features to that source base soon gets a job offer by that one company. 🙂 By that definition we can certainly see projects like Wine, Mysql, Ghostscript (at one time), and others as fitting into that model, and being quite successful. There’s nothing really wrong with the non-organic software model, although many of them have struggled to make enough money when competing with pure proprietary softare competitors, with MySQL perhaps being the exception which proves the rule.</p> <p>In most of these cases, though, the project started more as an organic open source, and then transitioned into the non-organic model when there was a desire to monetize the project — and/or when the open source programmers decided that it would be nice if they could turn their avocation into a vocation, and let their hobby put food on the family table.</p> <p>Solaris, of course, is doing something else quite different, though. They are trying to make the transition from a proprietary customer/supplier relationship to trying to develop an Open Source community — and what John’s candidate statement pointed out is that they weren’t really interested in creating an organic open source developer community at all, but they wanted the fruits of an open source community — with plenty of application developers, end-users, etc., all participating in that community.</p> <p>We don’t have a lot of precedent for projects who try to go in this direction, but I suspect they are skipping a step when they try to go to the end step without bothering to try to make themselves open to outside developers. And by continuing to act like a corporation, they end up shooting themselves in the foot. For example, the OpenSolaris license still prohibits people from publishing benchmarks or comparisons with other operating systems. Very common in closed-source operating systems and databases, but it discourages people from even trying to make things better, both within and outside of the Open Solaris core team. Instead, they respond to posts like <!-- raw HTML omitted -->David Miller’s<!-- raw HTML omitted --> with “Have you ever kissed a girl?”. (Thanks, Simon, for that quote; I had seen it before, but not for a while, and it pretty well sums up the sheer arrogance of the Open Solaris development team.)</p> <p>So while Linux may not be completely optimized in terms of “less priests” and more inclusion, at least over 1200 developers contributed to 2.6.25 during its development cycle. Compared to that, Open Solaris is positively dominated by “high priests” and with a “you may not touch the holy-of-holies” attitude; heck, they won’t even allow you to compare them to other religions without branding you a heretic and suing you for licensing violations!</p> What Sun was trying to do with Open Solaris https://thunk.org/tytso/blog/2008/04/19/what-sun-was-trying-to-do-with-open-solaris/ Sat, 19 Apr 2008 21:51:35 +0000 https://thunk.org/tytso/blog/2008/04/19/what-sun-was-trying-to-do-with-open-solaris/ <p>I was recently checking to see what, if any follow-up there had been from <a href="http://roy.gbiv.com/untangled/2008/watching-the-ripples">Sun’s ham-handed handling of the Open Solaris Trademark</a>, and I ran across this very interesting comment from <a href="http://mail.opensolaris.org/pipermail/ogb-discuss/2008-March/005174.html">John Plocher’s Candidate Statement for the Open Solaris Governing Board</a>:</p> <blockquote> <p>“I also think there was a misunderstanding about what Sun desired when it launched the community (in part) to encourage developers to adopt and use Solaris. My take is that, while there <strong>*is*</strong> value in getting more kernel, driver and utility developers contributing to and porting the (open) Solaris operating system, there is significantly <strong>*more*</strong> value in having a whole undivided ecosystem based on a compatible set of distributions, where application developers, university students, custom distro builders and users are all able to take advantage of each other’s work.</p> <p>Put these two things together, and you can see Sun’s predicament. Sun <strong>*wanted*</strong> a community that empowered application developers, but <strong>*got*</strong> a community aimed squarely at kernel hackers. Whether you see this as the “kernel.org -vs- Ubuntu” fight, or the “fully open -vs- MySQL model” argument, in my opinion, it all is simply a reflection of the above mismatched expectations.”</p> </blockquote> <p>So that explains why it’s take <strong>three long years</strong> to try to get basic open source development tools (such as putting Open Solaris source code in a distributed SCM located outside of the Sun firewall) for Open Solaris. It was never was Sun’s intention to try to promote a kernel engineering community, or at least, it was certainly not a high priority for them to do so. This can be shown by the fact that as of this writing they still are using the incredibly clunky requester/sponsor system for getting patches into Solaris; setting up a git or mercurial server is <strong>not</strong> rocket science. This lack explains why <a href="http://www.ratliff.net/blog/index.php/2008/02/14/not-with-a-bang-but-a-whimper/">Linus gets more contributions while brushing his teeth than Open Solaris gets in a week</a>.</p> <p>So if you run into a Sun salescritter or a Sun CEO claiming that OpenSolaris is just like Linux, it’s not. Fundamentally, Open Solaris has been released under a Open Source license, but it is not an Open Source development community. Maybe it will be someday, as some Sun executives have claimed, but it’s definitely not a priority by Sun; if it was, it would have been done before now. And why not? After all, they are getting all of the marketing benefit of claiming that Solaris is “just like Linux”, without having to deal with any of the messy costs of working with an outside community. As a tactical measure, astroturfing is certainly a valid marketing trick. But after three years, the excuse of “just you wait a little longer, we’re just trying to figure this open source community stuff out”, is starting to wear a little thin.</p> <p>Furthermore, if (as John Ploncher claims) this was about “empowering application programmers”, why was it that Sun’s first act was to trumpet how wonderful it was to release the Solaris source code under a Open Source license? This only seems to make sense if the Open Solaris initiative was really a cynical marketing tactic to try to save Solaris from being viewed as irrelevant. If that was Sun’s intention, I think it is fair to say that from a marketing point of view, the tactic has been at least partially successful — although as John has admitted, the goal of creating a full community with application developers, university students, and so on, hasn’t materialized for Open Solaris. Sun has the dream; the Linux community is living it.</p> <p>However, from business standpoint, I wonder if Sun will really be able to sustain their Solaris engineering team if they will really be doing all of the work themselves, and outside contributions continue at the rate of 0.6 patches per day. After all, the margins when you are selling low-cost AMD servers are much lower than when you are selling über-expensive SPARC servers. With Linux, we have a major advantage in that kernel improvements are coming from multiple companies in the ecosystem, instead of being paid for by a single company. And given that 70-80% of Sun’s AMD servers are running Linux, not Solaris, it’s not clear how Sun justifies their Solaris engineering costs to their shareholders. Furthermore, if Solaris on x86_64 were to actually take off, there’s nothing to stop competitors from selling Solaris support — except the competitors won’t have to pay the engineering costs to maintain and improve Solaris, so they would be able to provide the support much more cheaply than Sun could. So while Sun’s marketing tactics have kept Solaris alive in some verticals, I have to question how successful Sun will be in the long-term.</p> <p><strong>Update:</strong> I’ve posted <a href="https://thunk.org/tytso/tytso/blog/2008/04/24/organic-vs-non-organic-open-source/">a reply</a> to Brian Aker’s comments as a follow up that would probably be interesting to those folks who are interested in the ideas found in this essay.</p> <p><strong>Update^2:</strong> John Plocher’s name is spelled with an ‘h’, which I had omitted. My deep apologies to him for getting his name wrong. I’ve fixed it in the post.</p> AT&T: Customer support horrors https://thunk.org/tytso/blog/2008/04/15/att-customer-support-horrors/ Tue, 15 Apr 2008 15:23:50 +0000 https://thunk.org/tytso/blog/2008/04/15/att-customer-support-horrors/ <p>This morning, I just wasted two hours of my life trying to deal with a bill with AT&amp;T. I am a work-at-home employee, and my company has a contract with AT&amp;T so that when I deal 1-700-xxx-xxxx, I can reach the internal corporate phone network. In addition, long distance calls on my home office line are billed to the company at the pre-negotiated corporate rates. I also had a (long-dormant) AT&amp;T long distance account, dating from before I started working at this company. Starting at the beginning of the year, that account grew a $18 monthly fee. When I tried to make it go away, the AT&amp;T consumer side of the house said that according to Verizon, that was because I had my long distance service through AT&amp;T. Which was true, in a sense — AT&amp;T was providing my service, but through a corporate account. But the consumer side of AT&amp;T didn’t understand that, and were in my opinion, willfully ignorant.</p> <p>Several phone calls later, I got the 1-800 number for the AT&amp;T corporate side of the house, and those folks said they couldn’t look at consumer/personal AT&amp;T accounts, and implied it was my fault that I had both accounts on the line. (This took over an hour while the support person tried multiple things, all of which was not helpful at all.)</p> <p>I finally googled for AT&amp;T CEO’s office, and found a number on the consumerist.com web site that claimed to be the AT&amp;T CEO’s office. It had long since been directed to a help center, but after I told my tale, I was quickly transferred to an executive customer support person, who was able to fix the problem in ten minutes.</p> <p>The only questions remaining are:</p> <ol> <li> <p>Why can’t the different parts of AT&amp;T talk to one another?</p> </li> <li> <p>Will this problem really be solved, or will I see another bill in a month or two and have to spend more time dealing with this mess all over again?</p> </li> <li> <p>When will VOIP services put AT&amp;T long distance out of its misery? (Given the absolute frustration of this morning, this can’t happen soon enough.)</p> </li> <li> <p>Will AT&amp;T compensate me for two hours of frustration and of my life that I will never get back. (Not bloody likely.)</p> </li> </ol> <p>One thing is for certain, it will be a long, long, LONG time before I will ever voluntarily choose AT&amp;T to provide service for just about anything. Even an iPhone wouldn’t be enough inducement….</p> Why I purchased the Sony PRS-505 Reader https://thunk.org/tytso/blog/2008/01/19/why-i-purchased-the-sony-prs-505-reader/ Sun, 20 Jan 2008 03:30:18 +0000 https://thunk.org/tytso/blog/2008/01/19/why-i-purchased-the-sony-prs-505-reader/ <p>Although I lot of people have been lauding the Kindle, I recently decided to go with the Sony PRS-505 instead. Yes, the Kindle has built-in EVDO access, and the ability to buy books without a computer, or even browse the web; and yes, the Sony has once again demonstrated it can’t create a compelling 21st century computer application to save its life. However, it had a few things that at least for me, made a better choice for me than the Kindle:</p> <ol> <li>The Sony is thinner — I want to be able to slip it into my laptop case and have it take the absolute minimum amount of space.</li> <li>The Sony simply looks much more elegant than the Kindle; steel with a leather cover simply looks a lot better than white, cheasy plastic.</li> <li>I’m not interested in buying a lot of DRM’ed ebooks; ergo, I won’t be buying may books from either Sony or Amazon’s web sites. It is highly likely that within 2 years I will be buying a more advanced eBook reader, possibly one with color, and I don’t want to be locked into a single format where I have to go and repurchase all of my books just because some the latest and greatest eBook reader uses an incompatible DRM technology from whatever Sony or Amazon has used.</li> <li>The Sony is $100 cheaper. Given that something better will be available within 2-3 years at the very most, and possibly sooner, I’m just not interested in spending $400 on a first generation prototype.</li> <li>Perhaps the most important, the Sony has the really, <strong>really</strong> good open source support. Kovid Goyal’s <!-- raw HTML omitted -->libprs500<!-- raw HTML omitted --> project supports the Sony PRS-500 and PRS-505, and has very good version tools, allowing people to convert eBooks previously stored in HTML, PDF, TXT, Microsoft Reader (.lit), IDPF/Open eBook (.epub) into Sony’s format. And with a little bit of work, it does a very, very good job with the conversion. Better yet, its ability to convert multiple HTML pages into a single eBook, with credible table of contents, means that libprs500 can pull down the New York Times, the Economist, etc., automatically format it into a single eBook which you can save onto your Sony Reader, and then read it while you are on the airplane. No muss, no fuss. I can also take various books that are available on the web as HTML and also convert them into an eBook which can be used by the Sony Reader very easily.</li> </ol> <p>This last point is I believe one of the best reasons why the Sony Reader will be able to compete very successfully with the Kindle. The libprs500 software is written as a python application, and it will work on Windows, Linux, and MacOS — and its GUI user interface is far better than the truly pathetic Sony Connect software. Score one for Open Source! In my opinion, Sony should send a very nice gift certificate to Kovid as a thank you; his open source project has added an immeasurable amount of value to their product.</p> <p>The only thing that you can’t do using the libprs500 software is buy DRM’ed books which are locked to the Sony Reader — but that isn’t something that many people will be particularly interested in, I suspect. OK, I did buy Pillars of the Earth, which was available on the Sony site for $6 dollars — hmm, cheaper than Amazon’s $9.99 — but that was an investment I was willing to flush down the toilet when the PRS-505 becomes obsolete, mainly so I could test what buying a DRM’ed book would be like from the Sony web site. But I probably won’t be buying many books with DRM that way. On the other hand, I am quite willing to spend quite a bit more money on non-DRM’ed books from publishes such as <a href="http://www.baen.com/" title="Baen Books">Baen Books</a>.</p> <p>Here’s to the hope to the publishing industry figures things out faster than RIAA’s member companies. In the meantime, I will be mostly pretending that the both the Sony and Amazon eBook stores with their proprietary DRM’ed books don’t exist…</p> Does perfect code exist? (Abstractions, Part 1) https://thunk.org/tytso/blog/2007/11/18/does-perfect-code-exist-abstractions-part-1/ Sun, 18 Nov 2007 05:56:30 +0000 https://thunk.org/tytso/blog/2007/11/18/does-perfect-code-exist-abstractions-part-1/ <p>Bryan Cantrill recently wrote a blog entry, where among other things, he <!-- raw HTML omitted -->philosophized on the concept of “perfect code”<!-- raw HTML omitted -->. He compares software to math, arguing that Euclid’s greatest common denominator algorithm shows no sign of wearing out, and that when code achieves perfection (or gets close to perfection), “it sediments into the information infrastructure” and the abstractions defined by that code becomes “the bedrock that future generations may build upon”. Later, in the comments of his blogs, when pressed to give some examples of such perfection, he cites a clever algorithm coded by his mentor to divide a high resolution timestamp by a billion extremely efficiently, and Solaris’s “cyclic subsystem”, a timer dispatch function.</p> <p>Watching <!-- raw HTML omitted -->his talk at Google<!-- raw HTML omitted --> where his introduction and sidebar book review on Scott Rosenberg’s “On Dreaming in Code”, it’s clear that he very passionately believes that it is possible to write perfect code, and that one should strive for that at all times. Perhaps that’s because he mostly writes code for operating systems, where the requirements change slowly, and for one OS in particular, Solaris, which tries far harder than most software projects to keep published interfaces stable for as long as possible. In contrast, the OS I’ve spent a lot of time hacking around, Linux, quite proudly states that at least inside the kernel, interfaces can not and should not be stable. Greg Kroah-Hart’s <!-- raw HTML omitted -->“Stable API Nonsense”<!-- raw HTML omitted --> is perhaps one of the strongly and most passionate expositions of that philosophy.</p> <p>I can see both sides of the argument, and in their place, both have something to offer. To Bryan’s first point, it is absolutely true that interfaces can become “bedrock” upon which entire ecosystems are built. Perhaps one of the most enduring and impactful example would be the Unix programming interface, which has since become enshrined by POSIX.2 and successor standards. I would argue, though, that it is the interface that is important, and not the code which initially implemented it. If the interface is powerful enough, and if it appears at the right time, and the initial implementation is good enough (<strong>not</strong> perfect!), then it can establish itself by virtue of the software which uses it becoming large enough that it assumes an important all out of scale with its original intention.</p> <p>Of course, sometimes such an interface is not perfect. There is an apocryphal story that when S. Feldman at AT&amp;T labs first wrote the ‘make’ utility, that he did so rather quickly, and then put it available for his fellow lab members to use, and then went home to sleep. In some versions of the story he had stayed up late and/or pulled an all-nighter to write it, so he slept a long time. When he came back to work, he had come up with a number of ways to improve the syntax of the Makefile. Unfortunately, (so goes the story) that too many teams were already using the ‘make’ utility, so he didn’t feel he could change the Makefile syntax. I have no evidence that this ever took place, and I suspect it is an urban myth that was invented to explain why Makefiles have a rather ugly and unfortunate syntax that many would call defects, including the use of syntactically significant tab characters which are indistinguishable from other forms of leading whitespace.</p> <p>Another example which is the bane of filesystem designers everywhere are the Unix readdir(2), telldir(2), and seekdir(2) interfaces. These interfaces fundamentally assume that directories are stored in linear linked lists, and filesystems that wish to use more sophisticated data structures, such as b-trees, have to go to extraordinary lengths in order support these interfaces. Very few programs use telldir(2) and seekdir(2), but some filesystems such as JFS maintain two b-trees instead of one just to cater to telldir/seekdir.</p> <p>And yet, it is absolutely true that interfaces can be the bedrock for an entire industry. Certainly no matter what its warts, the Unix/Posix interface has proven the test of time, and it has been responsible for the success of many a company and many billions of dollars of market capitalization. But is this the same as perfect code? No, but if billions of dollars of user applications are going to be depending on that code, it’s best if code which implement such an interface be high quality, and should attempt to achieve perfection.</p> <p>But what does it mean for code to be perfect? For a particular environment, if the requirements can be articulated clearly, I can accept that code can reach perfection, in that it becomes as fast as possible (for the given computer platform), and it handles all exception cases, etc., etc. Unfortunately, in the real world, the environment and the requirements inevitably change over time. For example, Bryan’s cyclic subsystem, which he proudly touts as being if not perfect, almost so, and which executes at least 100 times a second on every Solaris system in the world. I haven’t looked at the cyclic system in any detail, since I don’t want to get myself contaminated (the CDDL and GPLv2 licenses are intentionally incompatible, and given that companies — including Sun — have sued over IPR issues, well, one can’t be too careful), but waking up the CPU from its low-power state 100 times a second isn’t a good thing at all if you are worried about <a href="http://www-03.ibm.com/systems/optimizeit/cost_efficiency/energy_efficiency/" title="IBM Project Big Green">energy conservation in data centers</a> — or in laptops.</p> <p>For example, on my laptop, it is possible to keep wakeups down to no more than 30-35 times a second and it would be possible to do more but for an abstraction limitation. Suppose for example an process wants to be sleep and then receive a wakeup 1 milliseconds later, and so requests this via usleep(). At the same time, another application wants to sleep until some file descriptor activity takes place, or after 1.2 milliseconds takes place. 0.3 milliseconds later, a third process requests a sleep, this time for 0.8 milliseconds. Now, it could be that in all of the above cases, the applications don’t actually need exact timing; if they all get their wakeups plus or minus some fraction of a millisecond, they would be quite cool with that. Unfortunately, the standard timer interfaces have no way of expressing this, and so the OS can’t combine the three wakeups at T+1.0, T+1.1, and T+1.2 milliseconds into one wakeup at T+1.1ms.</p> <p>So this is where Greg K-H’s “Stable API Nonsense” comes into play. We may not be able to solve this problem at the userspace level, but we darn well can solve this problem inside the kernel. Inside the kernel, we can change the timer abstraction to allow device drivers and kernel routines to provide a timer delta plus a notion of how much accuracy is required for a particular timer request. Doing so might change a timer structure that previously external device drivers had depended upon — but too bad, that’s why stable ABI/API’s are not supported for internal kernel interfaces. Is this that the interface could have been extended? Well, perhaps, and perhaps not; if an interface is well designed, it is possible it can be extended in an API and/or ABI compatible way. There usually is a performance cost to doing so, and sometimes it may make sense to pay that that cost, and sometimes it may not. I’ll talk more about that in a future essay.</p> <p>Yet note what happened to the timer implementation. We have a pretty sophisticated timer implementation inside Linux, that uses heap data structures and buckets of timers for efficiency. So while I might not call it perfect, it is pretty good. But, oops! Thanks to this new requirement of energy efficiency, it will likely need to get changed to support variable levels of accuracy and the ability to fire multiple timers that are (more or less) coming due in a single CPU wakeup cycle. Does that make it no longer perfect, or no longer pretty good? Well, it just had a new requirement impact the code, and if criteria for perfection is for the abstraction defined by the code to be “bedrock” and never-changing, and no need to make any changes in said code over multiple years, I would argue that little to no code, even OS code, can ever achieve perfection by that definition — unless that code is no longer being used.</p> <p>(This is the first of a multi-part series of essays on abstractions that I have planned. The next essay which I plan to write will be entitled “Layer surfing, or jumping between layers”, and will be coming soon to a blog near you….)</p> I love it when things Just Work https://thunk.org/tytso/blog/2007/11/12/i-love-it-when-things-just-work/ Mon, 12 Nov 2007 16:59:18 +0000 https://thunk.org/tytso/blog/2007/11/12/i-love-it-when-things-just-work/ <p>I am currently in the Hilton Portland &amp; Executive Tower hotel, and since I fly entirely too much, I got upgraded into a room which contains a printer. Thinking that I would try using it, I hooked it up to my laptop (running Ubuntu Gutsy), selected System-&gt;Administration-&gt;Printing on the desktop, and then clicked on New Printer. To my astonishment, when the dialog box came up, the system had already autodetected the fact that I had an HP OfficeJet KX60xi printer connected to the parallel port, had recommended which driver I should use, and a few “next” and “continue” clicks later, the printer was installed, and 15 seconds later I was able to print to it.</p> <p>Users of MacOS systems are probably used to such things, but this was faster and easier than what Windows asks of users who want to install a new printer. Coming from a Unix background, I would have been quite pleased if I was able to set up the printer after manually select the printer type and driver from a dialog box. Simply not having to su to root, edit some config files, and then restart some daemons, would be a major advance. But this completely exceeded my expectations. Well done to everyone in the CUPS and GNOME community who worked to make this possible!</p> Tip ‘o the hat, wag o’ the finger — Linux power savings for laptop users https://thunk.org/tytso/blog/2007/10/29/tip-o-the-hat-wag-o-the-finger-linux-power-savings-for-laptop-users/ Tue, 30 Oct 2007 02:24:36 +0000 https://thunk.org/tytso/blog/2007/10/29/tip-o-the-hat-wag-o-the-finger-linux-power-savings-for-laptop-users/ <p>It’s interesting to see how far, and yet how much more work we need to do on power management for Linux. I recently got a new laptop — a Lenovo Thinkpad X61s — and using the powertop tool, I was able to configure my system to the point where in what I can “airplane mail reading mode” (mailbox preloaded into memory, USB disabled, wireless and ethernet disabled, backlight down to 30% brightness, sloppily written power hogs like Firefox and Notes — every single application writer should be forced to run powertap and explain why their program feels it necessary to constantly wake up the CPU), I can get my usage down to about 9.8 watts. Using the 8 hours extended battery, that’s 8 hours of battery life, although granted doing very little. On the flip side, if I’m doing a major kernel compile, I can drive up utilization up to almost 30 watts, which means less than 3 hours of battery life. So that’s definitely the good news; Linux can sharply reduce its power consumption to the point where it is highly competitive with Windows. (And probably better than Vista, just because that OS is so heavy and bloated.) So thanks and and a tip of the hat to Intel and to Arjan van de Ven for making such a useful tool like Powertop available.</p> <p>So now for the bad news. Getting down to this level of power saving thriftness, where the laptop is carefully sipping only the minimal amounts of power from the battery, is definitely a work in progress. First of all, you can only get this level of power savings by unloading a specific USB driver, uhci_hcd. This will disable low speed devices (including unfortunately the fingerprint reader and the EVDO WWAN device if you were silly enough to buy one that was built into the laptop as opposed to a stand-alone card that you can swap between laptops and lend out to friends as necessary). But how many users are going to open up a terminal window, su to root and type the command “rmmod uhci_hcd”? And know how to reload the driver using “modprobe uhci_hcd” when they need to use the USB devices again?</p> <p>A similar problem exists for Network Manager; when the user disables the network by right-clicking on the applet, why doesn’t it automatically bring down the interface, instead of forcing the user to manually su to root and then type the command “ifconfig eth0 down; ifconfig wlan0 down”?</p> <p>A more serious problem is the Intel Wireless driver for the 4965. Even with the wlan0 interface configured down, <strong>and</strong> with the RF kill switch enabled, keeping the iwl4965 driver loaded will still cost you an extra full watt of power. When you’re down to 9.6 watts, that means that keeping the iwl4965 driver loaded when you don’t need it will cost you a 10% reduction in your battery life! That’s just sloppy, and hopefully it will be fixed in a future update to the iwl4965 driver, but as long as you don’t mind manually removing and reloading it, you can work around this power-saving oversight.</p> <p>A bigger issue, though, one for which no workaround exists, is that unlike the ipw3945 drivers, which at least had private, non-standard iwpriv commands to engage the 802.11’s power-saving features, the iwl4965 driver has neither the non-standard Intel iwpriv interfaces, <strong>nor</strong> the standard iwconfig interfaces for enabling any kind of powersaving features, including changing the transmit power of the card. So while powertop deserves plenty of   kudos, iwl4965 deserves a wag of the finger from a power saving viewpoint. No doubt Intel just needs to allocate more money to its Open Source Technology Center so it get more of its crack developers to work improving Linux support for their processors and chipsets.</p> <p>Speaking of which, I’m still waiting for an Intel x.org 965GM driver that can support compiz/beryl and simultaneously show video clips at the same time… And being able turn off the 50 interrupts/second generated by the video card when they aren’t needed because 3-d graphics aren’t currently in use, without requiring a restart of the X server, would also be a nice touch. The bottom line is that Linux power savings and Linux support for laptops in general is much better than it was a year ago, and a lot of credit has to go to the efforts of Intel’s teams producing such good work as powertop, their wireless drivers, and their open X server drivers. We still have a lot of work left to be done, though!</p> Sous Vide, Revisited https://thunk.org/tytso/blog/2007/10/08/sous-vide-revisited/ Mon, 08 Oct 2007 13:39:28 +0000 https://thunk.org/tytso/blog/2007/10/08/sous-vide-revisited/ <p>In a <a href="https://thunk.org/tytso/tytso/blog/2006/12/29/roast-beef-done-in-the-slow-cooker-ala-sous-vide">previous post</a>, I had recommended the <a href="http://www.control3.com/4130p.htm">4130 NIST-Traceable Temperature Controller</a> to control the temperature in a slow cooker. Unfortunately, that particular controller has a range that tops out at 60 degrees C / 140 degrees F, which is enough for cooking beef for long periods of time, but not enough for say, cooking duck confit, which for which a sous vide temperature of 80 degrees C is recommended. In addition, the 4130 is pretty expensive; almost $150. It’s possible to add a resistor to change the range of the 4130, but the temperature displayed by the controller is no longer correct, and you have manually create a conversion table between true temperature and the temperature as seen by the controller.</p> <p>I’ve recently come across a cheaper and better possibility, the <a href="http://www.honeyrunapiaries.com/store/ranco-etc111000000-digital-temperature-controller-prewired-p-87.html">Ranco ETC-111000-000 Temperature Controller</a> which is only half the price and comes with a much larger working range (-30 to 220 degrees F). The price with the AC cord already wired in is $75; and <a href="http://www.honeyrunapiaries.com/store/ranco-etc111000000-digital-temperature-controller-p-86.html?manufacturers_id=15&amp;osCsid=f6e635e9bb097081fdcb9af7802ec7cf">the version which just has a 120VAC SPDT relay</a> is only $60.</p> <p>A bit more about food safety. There has always been a lot of concern about bacteria growth and botulism, for good reason — and so therefore the recommendations for cooking temperature have a lot of safety margin in them — to the point now that the USDA recommends that steaks be cooked to at least 145 degrees F, which is well within what had traditionally been called “medium”, and chicken to at least 165 degrees F, which is enough to really destroy taste and texture. Sous vide cooking, especially some of the more low temperature variants, have raised a lot of concerns, to the point where a few years ago New York City (temporarily) banned it, causing a great outcry in the foodie community, since many top restaurants use sous vide techniques.</p> <p>First of all, any recommendation about internal temperatures and food safety that doesn’t also factor in time is massively oversimplifying the problem. Here is a table taken from “Food Safety Hazards and Controls for the Home Food Preparer”, published by the Hospitality Institute of Technology in 1994:</p> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <pre><code> &lt;td&gt; Time, 5D kill &lt;/td&gt; &lt;td&gt; Time, 6.5D kill &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; 130 &lt;/td&gt; &lt;td&gt; 86.42 minutes &lt;/td&gt; &lt;td&gt; 112.34 minutes &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; 135 &lt;/td&gt; &lt;td&gt; 27.33 minutes &lt;/td&gt; &lt;td&gt; 35.53 minutes &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; 140 &lt;/td&gt; &lt;td&gt; 8.64 minutes &lt;/td&gt; &lt;td&gt; 11.23 minutes &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; 145 &lt;/td&gt; &lt;td&gt; 2.73 minutes &lt;/td&gt; &lt;td&gt; 3.55 minutes &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; 150 &lt;/td&gt; &lt;td&gt; 51.85 seconds &lt;/td&gt; &lt;td&gt; 1.12 minutes &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; 155 &lt;/td&gt; &lt;td&gt; 16.40 seconds &lt;/td&gt; &lt;td&gt; 21.32 seconds &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; 160 &lt;/td&gt; &lt;td&gt; 5.19 seconds &lt;/td&gt; &lt;td&gt; 6.74 seconds &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; 165 &lt;/td&gt; &lt;td&gt; 1.64 seconds &lt;/td&gt; &lt;td&gt; 2.13 seconds &lt;/td&gt; &lt;/tr&gt; </code></pre> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> Hans Reiser, 20/20, and his talk at Google https://thunk.org/tytso/blog/2007/10/04/hans-reiser-2020-and-his-talk-at-google/ Thu, 04 Oct 2007 05:39:29 +0000 https://thunk.org/tytso/blog/2007/10/04/hans-reiser-2020-and-his-talk-at-google/ <p>I got a call from one of the researchers from ABC news this evening. Apparently they are planning on doing a segment on Hans Reiser on their 20/20 show, and the researcher knew enough that there were some serious technical inaccuracies with the script (at the level of “so when Hans was creating reiser4, was that software; was he writing a program?” and “does the program run on the hard drive?”), and so they were looking for help on some technical issues on a background basis. She didn’t take any quotes from me; what she needed was help understanding the technical issues around filesystems and Linux. I tried to help explain what a filesystem was that would make sense to a lay person in 15 seconds; I have no idea whether the researcher got it, and whether she’ll be able to make changes in the script that will be vaguely coherent. We’ll see. I spent a lot of time working with Joshua Davis, providing background material for his <a href="http://www.wired.com/techbiz/people/magazine/15-07/ff_hansreiser" title="Hans Reiser: Once a Linux Visionary, Now Accused of Murder">Wired article</a>, and he still got a bunch of the technical details wrong. The 20/20 researcher did ask me some silly questions such as “whether we were surprised when murder charges were filed against Hans?” Well, yes. What did she expect me to say? “Oh, yes, were always worried someone would get hurt…” Not! Sigh…. I might not agree with Hans’s filesystem design principles or his tactics in trying to get reiser4 accepted, but I always respected him as a fellow open source programmer.</p> <p>The researcher mentioned to me that Hans had done a <a href="http://video.google.com/videoplay?docid=6866770590245111825&amp;q=hans+reiser&amp;total=5&amp;start=0&amp;num=10&amp;so=0&amp;type=search&amp;plindex=0" title="The Reiser4 Filesystem">talk at Google</a> that was available at the Google Video site. Out of curiosity, I took a look at it. It was interesting; the last time I had seen Hans was in 1999, at the Linux Storage Management Workshop in Darmstadt, Germany that was organized by Matthew O’Keefe at Sistina Software. Compared to how he looked back then, and the picture of him in the Wired article, taken a 10-12 months after his talk at Google in February, 2006, I was struck by how much heavier (and older at least compared to my memory of him, which was much closer to <a href="http://idiom.com/~beverly/Hansmug.gif" title="Hans Reiser">this picture</a> from <a href="http://idiom.com/~beverly/hans_resume.html" title="Hans Reiser's Resume">his resume</a>) in the Google Video. I also remember him as being a much more dynamic and energetic speaker, and I was struck by how slowly he spoke, with lots of long pauses and “umms” and “ahhs”. He seemed to be a much better public speaker in Darmstadt, but in the Google talk he seemed very tired as he gave the talk.</p> <p>One of the questions that the researcher asked me was whether I thought he was a genius or not. I told her that I thought he was quite bright in terms of raw intelligence, but that his Social IQ wasn’t as high as you might want for someone to be successful in gathering volunteers to work on an Open Source project, and in working with others in an Open Source development community. Looking at the video, I think that is very much true. He was a terrible public speaker, but some of the points he made about optimizing B-tree algorithms made sense. I might disagree with his philosophy over filesystem design and benchmarking, and I might not be terribly impressed by his social skills, but in terms of being a talented computer scientist, he was and is that.</p> <p>Is he guilty of the crime that he has been accused of? I have no idea. But from looking at his talk and knowing what I know of him, I have the sense of a greek tragedy. He’s been working on some of his ideas since his undergraduate days in UC Berkely in the early eighties — which he entered after finishing his 8th grade. And as research ideas, I think he might have gotten some very interesting results out of trying some of the things that he wants to do around operating system namespaces. (I think they are doomed in a production system descended from Unix, since application programmers are unlikely to rewrite their programs to take advantage of reiserfs’s performance characteristics — which would mean instead of using a Unix-like configuration file, treating a directory hierarchy containing the configuration information like a Windows registry. Still, as an academic, Plan 9-like system, I could have seen it has being a potentially very interesting Systems Research effort.) Unfortunately, his skills at public speaking and his ability to work with other people have handicapped him, and I know that has frustrated him deeply. So I have a lot of sympathy for him, and I hope that he is innocent, and will be found innocent. But only time will tell….</p> <p>Anyway, according to the researcher, they are currently scheduling their segment about Hans on 20/20 on October 19th. I’m sure that schedule is subject to change, but it’ll be interesting to see how they treat Hans in their coverage. Hopefully it will be fair, and not overly sensationalistic, but unfortunately my faith in today’s TV edutainment-focused news program isn’t terribly high. My impression was that the research wanted to do a good job, but she was burdened by a very tight deadline, and in the end, the decision of what goes on the air and what doesn’t won’t be up to her. So we’ll see.</p> How to properly support writers/artists? https://thunk.org/tytso/blog/2007/09/21/how-to-properly-support-writersartists/ Sat, 22 Sep 2007 01:57:04 +0000 https://thunk.org/tytso/blog/2007/09/21/how-to-properly-support-writersartists/ <p>Russell Coker, <a href="http://etbe.coker.com.au/2007/09/17/web-scabs/">commenting on my last blog</a>, and apparently after exploring some of the links stemming from the SFWA kerfuflle, apparently stumbled on a post from former SFWA VP Howard V. Hendrix, where he took the amazing position (for a SF writer) that he hated the using the internet, and that people who posted their stories on the web for free download were <a href="http://community.livejournal.com/sfwa/10039.html">web-scabs</a>, has taken the position that since such comments were an attack on our (Open Source Developer’s) community, that he would resolve “to not buy any more Sci-Fi books until I have read all the freely available books that I want to read”. Obviously, that’s his choice, but while I don’t have much respect for SFWA the organization, and certainly not for their choice in past and current vice presidents, there’s another side of the story here.</p> <p>First of all, Dr. Hendrix comments are not the official position of the SFWA, and there are many others who are SFWA members who would very strongly disagree with both the attitudes of Dr. Hendrix as well as the ham-handed DMCA pseudo-invocation by Dr. Burt. In addition, to quote <a href="http://heresypornographyandtreason.blogspot.com/2007/09/copyrights-whack-gopher-and-sfwa-why-i.html">Rick Cook</a>:</p> <blockquote> <p><strong>The first thing you’ve got to understand about the Science Fiction and Fantasy Writers of America is that it isn’t.</strong> Like the Holy Roman Empire, which in Voltaire’s phrase was “neither holy, Roman nor an empire,” SFWA is not an organization of science fiction and fantasy writers. While some of the leading SF and Fantasy writers belong, the vast majority of the members are people who barely meet SFWA’s extremely lax publication requirements. They are not professional SF or Fantasy writers in any meaningful sense of the term and many of them haven’t published a word of either science fiction or fantasy in years.</p> </blockquote> <p>Secondly, there are plenty of Science Fiction writers that do really understand this issue quite well. In addition Rick Cook, whom I recommended in my last post, another example of a Science Function writer who has penned a very cogent series of articles about copyright, science fiction, and the business issues of being a SFF writer is <a href="http://www.baens-universe.com/authors/Eric_Flint">Eric Flint</a>. I strongly recommend his series, “Salvos Against Big Brother”,which includes a back-to-the basics examination of copyright quoting and reprinting <a href="http://www.baens-universe.com/articles/McCauley_copyright" title="McCauley on Copyright">two speeches by British Parliamentarian Thomas McCauley</a> in 1841. Definitely worth a read, and again a demonstration that there exists Science Fiction authors that aren’t stuck in the dark ages; few (at least it is to be hoped) are like Dr. Hendrix.</p> <p>Eric Flint is also a senior editor for <a href="http://www.baen.com" title="Baen Books">Baen Books</a> (read more about the founder, Jim Baen <a href="http://david-drake.com/baen.html" title="Jim Baen memorial">here</a>). Baen makes all of its titles available in e-book form without DRM, and many of its authors have agreed to make their books available completely free of charge. Eric Flint does so for all or most of his books shortly after they are published in mass-market paperback form; others only make a few of their books available, typically the first or second books in a series (in the hopes you will buy the rest of their books) — a wise strategy, as he explains in <a href="http://www.baens-universe.com/articles/salvos8" title="Spillage: or, The Way Fair Use Works in Favor of Authors and Publishers">one of his Salvos Against Big Brother columns</a>.</p> <p>More importantly, I strongly believe that if we enjoy an artist’s works, we should support the artist. That’s why I’ve directly reached out and given money to <a href="http://www.heatherlands.com" title="Heather Alexander">musicians</a>, <a href="http://www.the-big-meow.com/ProjectCommitment.php" title="The Big Meow">authors</a>, and <a href="http://www.dunc-tank.org/" title="Dunc Tank">Debian release engineers</a>. (Yes, that last was controversial, but to me and personal ethics, it’s all of the same piece.) Is patronage the right way to support musicians? Well, it’s one way, and I’ve always been fond of the “distributed patronage” model where we use the Internet to allow a large number of people to each contribute to support an artist’s work. <a href="http://www.the-big-meow.com/" title="The Big Meow">The Big Meow</a> is a good example how it might work. (By the way, to <a href="http://windycitymike.com/2007/04/08/yet-again-diane-duane-and-a-silent-big-meow/">people who are wondering what is happening with The Big Meow</a> — I have very recently pinged Diane, and she’s working on it. Between health and family emergencies, the last 12 months have thrown a lot of delays into her writing schedule.)</p> <p>Are there other models other than patronage that might work? Well, there is the traditional one — just buying the author’s books. But what if we don’t want a dead-tree copy and just want to be able to read it on our Irex Iliad, and the book wasn’t published by Baen Books, or one of the few enlightened publishers who make non-DRM’d eBooks available? That’s a harder question. Personally, I don’t find “Copyright Theft” immoral per se. Illegal, yes, but immoral only if I haven’t done something to materially support the author. If I’ve purchased a new copy of a book, and the eBook version isn’t available via legal means, I don’t believe it is immoral to download it from a site like scribd so I can read it on my laptop. Of course, that brings up other questions, such as what if the book is out of print (because the publisher don’t think it’s commercially viable to reissue the books), the author is dead, and the <a href="http://evawhitley.net/2007/09/08/on-scribd-jerry-pournelle-and-jacks-books/">widow needs money</a>? Lots of hard questions, and no good answers….</p> <p>But in any case, I think it is the right thing to do to support those authors we care about as we can, and boyotting all SFF books isn’t necessarily appropriate or helpful.</p> Whack the Gopher https://thunk.org/tytso/blog/2007/09/15/whack-the-gopher/ Sun, 16 Sep 2007 03:26:03 +0000 https://thunk.org/tytso/blog/2007/09/15/whack-the-gopher/ <p>I recently came across three very well written and very thoughtful blog postings by <a href="http://heresypornographyandtreason.blogspot.com">Rick Cook</a> (author of the <a href="http://www.jimloy.com/books/wiz.htm">Wiz Zumwalt Wizardry series</a>):</p> <ol> <li><a href="http://heresypornographyandtreason.blogspot.com/2007/09/copyrights-whack-gopher-and-sfwa-why-i.html">Copyrights, Whack-the-Gopher, and SFWA — Why I Quit</a></li> <li><a href="http://heresypornographyandtreason.blogspot.com/2007/09/economics-of-theft-son-of-whack-gopher.html">The Economics of Theft: Son of Whack the Gopher</a></li> <li><a href="http://heresypornographyandtreason.blogspot.com/2007/09/whack-gopher-iii-return-of-mutant.html">WHACK THE GOPHER III: The Return of the Mutant Grandson</a></li> </ol> <p>The incident which kicked off these postings was an informal DMCA takedown notice posted by the Vice President of the Science Fiction Writers of America, Dr. Andrew Burt which was created by a process only slightly more sophisticated than using word search for “Asimov” and “Silverberg”. Unfortunately, this takedown notice erroneously included a junior high school teacher’s <a href="http://www.nicksenger.com/blog/a-teachable-moment-about-copyright-from-the-sfwa">list of 300+ recommended books</a> (which naturally contained the strings “Issac Asimov” and “Robert Silverberg”, <a href="http://phywriter.com/archives/2007/08/28/sfwa-issues-misguided-rgr-takedowns-at-scribd/">an on-line published science-fiction magazine</a> that referenced the science fiction author Isaac Asimov in a review, and <a href="http://www.boingboing.net/2007/08/30/science-fiction-writ-1.html">a creative-commons licensed science fiction novel</a> which had been deliberately published on the web for free distribution, and for which the author had explicitly forbidden the SFWA from taking any action on behalf of his books.</p> <p>The entire incident was wonderfully filled with irony — from the fact that an organization of writers who purport to write about what the future might bring given scientific and technological advances could so totally fail to get the Internet or understand that such a campaign might cause them to alienate their readers and fan base, to the the fact that <em>Doctor</em> Andrew Burt, Ph.D. is a professor in computer science at the University of Denver with a research interest in copyright and electronic piracy, could so incompetently foul up a DMCA takedown request and not understand that “grep” might result in false positives that would require human checking (“Andrew? Your alma mater is calling; they would like their degree back…”)</p> <p>One good thing that has come out of this whole mess is that it has been, as junior high school teacher Nick Singer put it, “a teachable moment”, and an opportunity for people to reflect about issues of copyright, the rights of authors, ebooks, and the Internet. This is a hard problem; I very strongly believe that (at the same time) “Art wants to be free; Artists want to be paid” (to use a phrased coined by a friend of mine, <a href="http://www.oreillynet.com/cs/catalog/view/au/2251?x-t=book.view">Jesse Vincent</a> (blog <a href="http://obra.livejournal.com">here</a>), to the point that I’ve been <a href="http://www.the-big-meow.com/ProjectCommitment.php">willing to put my money where my mouth is</a>. So far the solutions for achieving this are nowhere near perfect, but they are certainly better than sending out shotgun DMCA takedown requests. In any case, Rick Cook’s thoughts on the subject are a worthy contribution to the subject. He says he’s going to do one more article on his blog proposing an economic solution to this problem; I can’t wait to see what he has to say on the subject.</p> Moving to WordPress… https://thunk.org/tytso/blog/2007/09/12/moving-to-wordpress/ Thu, 13 Sep 2007 03:17:57 +0000 https://thunk.org/tytso/blog/2007/09/12/moving-to-wordpress/ <p>Because I’ve been getting a little frustrated with the lack of trackback support, prohibition against Javascript, etc. I’ve decided to set up a <a href="http://wordpress.org/" title="Wordpress">WordPress</a> installation on my private machine. For now, I have things set up so that posts made on <a href="https://thunk.org/tytso/tytso/blog" title="my blog: Thoughts by Ted">my WordPress blog</a> will get mirrored onto my LiveJournal account. I may do some friends-locked posts still on LJ, but my general philosophy is to not post anything I might consider private on a blog, friends-locked or no. So we’ll see how often I make use of that option.</p> On the benevolent dictator model https://thunk.org/tytso/blog/2007/08/30/on-the-benevolent-dictator-model/ Thu, 30 Aug 2007 04:38:00 +0000 https://thunk.org/tytso/blog/2007/08/30/on-the-benevolent-dictator-model/ <p>Recently, Josh Berkus blogged about <a href="http://blogs.ittoolbox.com/database/soup/archives/the-myth-of-the-benevolent-dictator-18668">The Myth of the Benevolent Dictator</a>. In it he complained about people who try to posit that a benevolent dictator was “an unalloyed asset” to their project, and that there were many successful and valid forms project governance other than the singleton project leader. Furthermore, he argues that the best way is to form a community, and then ends by suggesting that people who say “dictatorship good” is really saying “democracy bad”, and perhaps the motives of the person using that argument should be questioned.</p> <p>Given that I was one of the first people (and probably the first person) to use that phrase to describe Linus’s governance model, obviously I feet the need to respond to his thoughts on the matter.</p> <p>First of all, the term “benevolent dictator” comes from an old saying, “the best form of government is the benevolent dictator — there’s only one problem, <strong>finding</strong> the benevolent dictator”<a href="http://blogs.ittoolbox.com/database/soup/archives/the-myth-of-the-benevolent-dictator-18668">1</a>. And in my presentations where I explained the Linux project management model, I was always careful to say that there were other models that were used by other projects, and that it was interesting to study why certain management models worked for some projects but not others.</p> <p>So by definition, if a project is successful with a single project leader ultimately responsible for making decisions to settle conflicts, then that leader is a “benevolent dictator”; if they aren’t successful, then that would be an example of a dictator who wasn’t able to be “benevolent”, eh? <!-- raw HTML omitted -->🙂<!-- raw HTML omitted --></p> <p>In all seriousness, though, I agree with Josh when he says that the key part of an open source project being successful is gathering together a healthy community. But let’s unpack that a little. In order for a community to be healthy, there needs to be general consensus on the values and cultural norms for that community. So for example, in the case of Debian, which Josh holds up as a successful community, not everyone has the ability to vote; you have to pass a fairly stringent process which tests your technical skills and your willingness to subscribe to Debian’s core values as embedded to the Debian Social Contract. People who do not pass the New Membership process do not have the right to vote in Debian, even if they are the most rabid, fanatical users of Debian.</p> <p>This brings up a key point about governance analogies; they all don’t map cleanly into the real world for two closely related and extremely important reasons: (1) No one has a fundamental human right to be a member in some OSS project, and (2) No one is forced to stay in a particular OSS project. These are really two sides of the same coin, and what it means is that, as in Debian, “democracy” does not mean that everyone is entitled to political franchise, or the right to vote, and in a project which has a “benevolent dictator”, the powers of the dictator is fundamentally limited by the simple fact that if he is too unreasonable, people are always free to leave or fork the project. These differences are extremely important when trying to reason about “democracy” or “dictatorship” as being good or bad as applied to open source projects.</p> <p>Democracy is rarely the best way for an open source project to make decisions. For technical issues, you want the right answer, and majority vote isn’t necessarily way to resolve a technical issue. As far as policy decisions, if the decision can not be made by consensus, then some percentage of the community will be unhappy with how the decision, and that can cause a huge amount of arguments and dissension. If the community has very clearly expressed values, then the number of times where such votes need to be made will be minimal.</p> <p>For example, Debian has an explicit declaration of its values and mission in its Debian Social Contract; people who don’t agree to the Social Contract aren’t allowed to become Debian Developers and thus are not allowed to vote. But, one of the more controversial disputes that have threatened to tear apart Debian is the question of the non-free packages, and that’s fundamentally because of an ambiguity in the Social Contract. On the one hand, Debian has declared that it is fundamentally 100% about Free Software, to the extent that it has adopted Richard Stallman’s rather petulant request that the Linux operating system be called GNU/Linux (which admittedly is better than Lignux.) On the other hand, the Social Contract also explicitly specifies the existent of the non-free section in the distribution. Over time, this ambiguity have been the source of a lot of highly passionate debate and controversial votes that have satisfied neither the FSF fanatics nor the more Linux-like moderate position tolerating the use of proprietary as well as open source software. I submit that if Debian had either explicitly stated an FSF-centric position, and only accepted members that supported point of view, <strong>or</strong> explicitly subscribed to a position that users should be able to use whatever software they feel meets their needs, as Ubuntu has, it would avoided many arguments that have threatened to tear apart Debian.</p> <p>More recently the fact that the Social Contract has been silent about whether or not Debian Developers should be paid or purely be 100% volunteer. This was never an issue in the Linux Kernel community, but for some reason it has been a highly divisive and disruptive issue inside Debian. Democratic votes have not really resolved the conflicts, and in fact some might claim that these votes have if anything hardened various Debian Developers’ positions.</p> <p>Going back to Josh’s final point, “Next time you hear the words ‘benevolent dictator’ you probably want to think about the motives of the person saying it. Because the corollary to ‘dictator good’ is ‘democracy bad’, and is that a place you really want to go?”, I am quite proud to stand by my convictions that for Open Source Projects, pure democracy is a bad idea. If a projects wants to be technically successful, it needs to be a meritocracy, and chose the best technical decisions; Linus does not decide by abiding with majority vote whether or not a patch should be accepted, and that’s as it should be.</p> <p>Even Debian’s “raw democracy” doesn’t let any random luser get to vote on who should be the Debian Project Leader. Decisions need to be made by people who are competent to make a valid choice. Even in real life, one could argue that the choice made by Americans, over of which 70% believed that Saddam Hussein was “very likely” or “somewhat likely” to be personally involved with the 9/11 attacks even though there has been absolutely no evidence to support this “gut feeling”, made a rather disastrous choice in voting to re-elect George Bush to the presidency. Democracy without sufficient education, literacy, and intellectual curiosity to learn about what is happening in the world can result in truly disastrous choices being made. So certainly, democracy is not a panacea. In the real world, it may be the best choice of many bad choices, given how much people have suffered under military dictatorships. However, in the Open Source world, things are different because people are always free to leave one project and affiliate with another — not an alternative most people living in dictatorships have historically had. Given these key differences, I think it is clear that for open source projects, democracy is indeed often a bad idea, and that if you if a project has a single person with a strong technical vision and good interpersonal skills, the benevolent dictator model can indeed be a very viable and successful.</p> <p>Does that mean that other forms of governance can’t work? Of course not! The rotating dictatorship used by Perl<a href="http://lists.debian.org/debian-devel/1998/10/msg00193.html">2</a>, the core-team-with-strongarm leader used by OpenBSD, the corporate dominated scheme of MySQL, the self-selecting core team model of Samba, all are successful models. I just have to strongly disagree with Josh’s claim the single strong leader approach is somehow inferior to “democracy” as if democracy was somehow a magic bullet.</p> <p><a href="http://blogs.ittoolbox.com/database/soup/archives/the-myth-of-the-benevolent-dictator-18668">1</a> For am early example of this quote, nine years ago, please see <a href="http://lists.debian.org/debian-devel/1998/10/msg00193.html">this message</a>, where I’m pretty sure I authored the colon prefixed quote, and I know I was using the term “benevolent dictator” much earlier than 1998.</p> <p><a href="http://lists.debian.org/debian-devel/1998/10/msg00193.html">2</a> In the early days of Perl, it also used the benevolent dictator model. Larry Wall is a great exemplar of how someone who has a strong vision of what he wanted to accomplish, and was humble and easy to work with, both on-line and in person, can make all the difference in the world for an up-and-coming open source project.</p> Thoughts about the Palm Foleo https://thunk.org/tytso/blog/2007/08/21/thoughts-about-the-palm-foleo/ Tue, 21 Aug 2007 14:34:00 +0000 https://thunk.org/tytso/blog/2007/08/21/thoughts-about-the-palm-foleo/ <p>I looked at the Foleo and played with one while I was at Linux World a few weeks ago, but it is so restrictive in what it can do that I was completely unimpressed.</p> <p>First of all, according to one of the people at the booth, it will only work with a select set of Treo’s; mostly the newer ones. A colleague I was with had just gotten a Treo 650, and the person at the booth said that it wouldn’t work with that model of Treo. (WTF?) Furthermore, it will only do e-mail (POP or IMAP) by linking with the Treo over bluetooth connection and letting the Treo pull down the e-mail and store it on the Treo. Given that it only has 128 megs of RAM and 256 megs of Flash, it just doesn’t have enough storage apparently to run a stand-alone e-mail application, which is a little bit scary. The limited amount of memory is probably why it is using Opera as a web browser, which previous experience on the N800 has largely unimpressed me in terms of compatibility with Web 2.0 sites that aggressively use AJAX or flash.</p> <p>So OK, it’s not supposed to be a laptop. But the problem is, for 0.2 pounds more, I can <em>get</em> a laptop. Let’s review the critical statistics, shall we? The Foleo costs $499, weighs 2.5 pounds, and has a size of 10.5″ by 6.7″ by 0.9″. As stated before it has 128 megs of RAM and 256 megs of flash, with a SD slot for expansion purposes, and it has a claimed 5-6 hours of battery life. But let’s compare that with my IBM X41 which I recently purchased off of eBay for $800. It has 1.5 gigs of memory, and 60 gigs of hard disk. It has two batteries; with the 4 cell battery it weighs 2.7 pounds and delivers 2 hours of battery life, and with the 8 cell battery it weighs 3.2 pounds and delivers 4 hours of battery life. So true, even with the 8 cell battery the X41 is 1.7 pounds heavier and still has slightly less battery life. But you can do a lot more with the X41! Furthermore, the Foleo’s weight advantage is somewhat nullified by the fact that you have to bring the Treo around to do certain activities, and the Treo has to be powered on since the Foleo is mostly designed around being a remote large screen for the Treo.</p> <p>At the end of the day it’s all about tradeoffs. Perhaps if enough companies created enough killer apps that could fit in 128 meg of ram for the Foleo, it might be useful enough to justifying buying it. I hear for example, that even though the Foleo doesn’t have any kind of PIM functionality, a 3rd party ISV is planning on making a product available that will provide calendar and contact functionality that can sync Palm PDA’s. No word on how much it will cost or how usable it will be, but with enough applications, maybe Foleo could be useful enough to justify its size/weight. I imagine that these apps will probably be commercial ones, since open source apps like Evolution will probably have difficulty fitting in the Foleo’s constrained environment. 🙂</p> <p>And, of course, it’s a lot cheaper than my used X41 laptop, never mind a brand-new Lenovo X61s, which could run 2 or 3 kilobucks fully outfitted with the 4 gigs of memory and 160 gig/7200 rpm drive. However, as a road warrior, my priorities are not just weight, but functionality. A 2.5 pound solid-state laptop with only 128 megs of memory which massively restricts what I can do is not a good use of the space in my laptop bag. What I’m waiting for is the next generation of the Thinkpad X series which has a solid state disk — which shouldn’t be that far off — and the elimination of the spinning magnetic media would mean that we should have something with Foleo’s battery life without the Foleo’s limited usefulness. Sure, maybe I will need to wait another year or two for my perfect laptop (12″, 1024×768 LED display, at least 60 gigs solid state disk, at least 2-4 gigs memory, Intel core 2 or follow-on processor, &lt; 3 pounds, &gt; 5 hours useful lifetime) to become available, but the technology to do this exists today; it’s just a matter of making it affordable. But given that kind of long-term future, I’m willing to settle for now with either 2 or 4 hour battery life, and a slightly heavier laptop, than to use something today with a desperately slow ARM processor and only 128 megs of memory. The weight/size savings and the increased battery life of the Foleo isn’t a fair tradeoff given its very limited capabilities.</p> <p>This is all really too bad, because if Palm is counting on the Foleo to allow it to succeed, I think the concept has some massive shortcomings, much like their claimed LifeDrive product, which didn’t last very long. And I really like the Palm company; I <strong>still</strong> haven’t found better PDA functionality on a decade-old Palm design compared to what is available on all of the Nokia phones I’ve looked at, the WinCE phones/PDA’s, the N800, etc. So I want Palm as a company to stick around. But with Treo getting eclipsed by newer smart phones, and the Foleo not getting particularly good buzz by folks reviewing it — and after I played with it, I have to agree with the majority of the reviewers that this is not the Next Big Thing — I’m not sure how much longer Palm is going to be around.</p> Hope for the future… https://thunk.org/tytso/blog/2007/06/30/hope-for-the-future/ Sun, 01 Jul 2007 02:53:00 +0000 https://thunk.org/tytso/blog/2007/06/30/hope-for-the-future/ <p><a href="http://daggle.com/070630-124236.html">Daddy, What’s Internet Explorer?</a></p> If you live in the U.S….. https://thunk.org/tytso/blog/2007/05/04/if-you-live-in-the-us/ Fri, 04 May 2007 04:29:00 +0000 https://thunk.org/tytso/blog/2007/05/04/if-you-live-in-the-us/ <p>… and you want to preserve Internet Radio, please consider <a href="http://www.savenetradio.org/">calling your representative</a>.</p> Git and hg https://thunk.org/tytso/blog/2007/03/24/git-and-hg/ Sat, 24 Mar 2007 18:58:00 +0000 https://thunk.org/tytso/blog/2007/03/24/git-and-hg/ <p><a href="http://changelog.complete.org">John Goerzen</a> recently posted about <a href="http://changelog.complete.org/posts/594-More-on-Git,-Mercurial,-and-Bzr.html">Git, Mercurial and Bzr</a> that I found interesting, especially since I used to be in the hg camp, but have been gradually using git more and more, even to the point making minor improvements to the git documentation and writing the <a href="http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html">git mergetool</a>, since being able to automatically fire up a graphical merge tool was one of the features which I missed from hg. So while I haven’t yet converted the primary SCM repository for e2fsprogs to use git (yet), I’ve reached an opposite concolusion from John, and yet, I can’t really argue with his observations.</p> <p><!-- raw HTML omitted -->The main reason why I’ve come out in favor of git is that I see its potential as being greater than hg, and so while it definitely has some ease-of-use and documentation shortcomings, in the long run I think it has “more legs” than hg, and with the release of git 1.5.0, it became clear that the git community was willing to work on these particular shortcomings, which is why I started working on it and making plans to migrate e2fsprogs to use git. The main reasons why I think git is more powerful is that not just that it supports lightweight branches inside a single repository (although I really do like that a lot since it makes it a lot easier to run multiple experiments in parallel and switch back and forth between them), but also because git is much more Unix-like; there are lots of tools that enable scripting for either new git extensions or for ad-hoc shell pipelines that you can’t really easily do in hg without breaking into Python. <!-- raw HTML omitted --></p> <p>But git definitely does have shortcomings, and John is on the mark with most of them. Git’s documentation is very poor. Part of the problem stems for tutorials that were written to work with older versions of git (don’t try using anything older than git 1.5 if you are a git newbie; git 1.4.x is far more user-hostile) or were written for use with systems built on top of git 1.4.x, such as Cogito. (I don’t recommend Cogito, since git 1.5 is significantly more usable, and I’ve always found Cogito to be more confusing that just using stack git.) The tutorials that are distributed with git 1.5 are much better, but they clear do need more work.</p> <p>It is true that the many of the man pages in git are lacking, and John’s criticism of the fact that many man pages do not list all of the options that they take, but rather refer to other man pages is on point and accurate. It has gotten better (take a look at the git-diff man page from the git 1.4.x days, and laugh or cry, depending on your point of view) but there is still much work to be done. In practice, the better way to use the git man pages is to skip past the options section, and take a look at the Examples section. This shows a number of ways that a particular command might be used, just as a Unix master might say, “Grasshoper, see how you can use awk to do all of these amazing things.”</p> <p>I do take issue with John’s assertion that git’s philosophy has been to make life easy for the central maintainer, and not to pay much attention to the needs of individual contributors. That may have been Linus’s development priorities but with Junio having taking over maintenance, there have been a lot of improvements in git 1.5.0 to make life easier for people who are tracking remote repositories and making changes, in particular the <a href="http://www.kernel.org/pub/software/scm/git/docs/git-remote.html">git remote</a> command.</p> <p>The most interesting observation which John made was the non-intuitive semantics of git-format-patches, and I did find it interesting that one commenter posted a solution which made perfect sense given other git commands, and yet didn’t work. Obviously the person who posted the comment didn’t bother to try it first, probably because in most other places git is actually pretty consistent; but git-format-patch is one of the places where most painfully is not. I view this as a bug that should be fixed, and fortunately I think it can be fixed without breaking the git-format-patches is currently being used. (The problem is that it doesn’t use the standard notation so it is more convenient in the common case of how it is normally used, where the end point is not specified and is always the the tip of the current branch. I believe we can avoid the UI surprise by making git-format-patch use the standard revision range parsing if parameter contains the “..” or “…” operators. I’ll have to try to prepare a patch which does this and see whether it gets accepted.)</p> <p>So basically git does have short-comings, yes, but people will come out in different places about which tools is best for them, and that’s OK. Actually, I think the ultimate solution for this problem is to build a bidrectoinal hg/git gateway. There are tools that will export from hg to git, and vice versa, and they are actually pretty sophisticated. I don’t think it should be that painful to create a tool that does incremental exports in both directions, maintaining state so that the right thing happens when a commit gets made on the git side, and gets exported into hg, or vice versa. Ultimately I think that’s the best solution, since that way people can use whatever tool they want, and still contribute and development as first class citizens. This is the main reason why I’ve held off on converting e2fsprogs to git (although I have made some private test repositories which I’ll use to take advantage of git’s superior annotation and query/log utilities); I don’t want to make a git repository of e2fsprogs public until I’m sure that a bidrectional gateway tool won’t require me to make any changes that affect the commit-id’s, since that would invalidate any work that people have done that was based on a clone of the coverted git repository.</p> <p>I have a rough design for how to do the bidirectional gateway, but the issue is finding time to implement it. Anyone with free time looking for a project? If so, contact me. I probably should have written this up as a potential Google Summer of Code project, but it’s too late for this year. Oh, well.</p> Roast Beef done in the slow cooker, ala sous vide https://thunk.org/tytso/blog/2006/12/29/roast-beef-done-in-the-slow-cooker-ala-sous-vide/ Sat, 30 Dec 2006 03:54:00 +0000 https://thunk.org/tytso/blog/2006/12/29/roast-beef-done-in-the-slow-cooker-ala-sous-vide/ <p>I’ve been experimenting with this for a while, but last night’s attempt at cooking a roast <em>sous vide</em> was definitely a success. First, I took the roast and let it dry-age in the fridge for about 3 days, covered with a plastic microwave cooking cover that had holes conveniently punched around the sides to let steam (or in this use, the water vapor) escape. Once it had been dry-aged ala Alton Brown, I placed it in the FoodSaver bag and vacuum sealed it.</p> <p>Then, I hooked up my slow cooker (which normally cooks food around 200 degrees on low), and hooked it up to a <a href="http://www.control3.com/4130p.htm">NIST-Traceable Temperature Controller</a> and progammed it for 130 degrees Fahrenheit. The Temperature Controller allows me to precisely control the temperature in the water by cutting power to the slow cooker when it gets hotter than 130. I then filled the slow cooker with water (leaving room for the roast beef), dropped the temperature sensor into the water, and let the water come up to temperature. Once it did, I dropped the roast into the water bath and waited for 3 hours or so. This allowed the entire roast to be cooked to medium-rare, which you can’t really do in the oven; normally the outer parts of the roast are overcooked to medium or well-done, while only the very center of the roast gets cooked to the oh-so-delicious state of medium rare. The other beauty of this sous vide cooking technique is that it’s very forgiving about the exact time that it is in the water bath; if you leave it for longer (say because you’re caught up in hacking some code and don’t want to disrupt your flow), there’s no risk of overcooking it.</p> <p>When I was ready for dinner, I removed the bag containing the roast beef, and placed it on rack that was suspended on top of a large oven-safe casserole dish, and poured the juices that had been in the bag into the dish. This whole assemblage then went into a 500 degree pre-heated convection oven for 10-12 minutes, so the outside of the roast could be browned and filled with <a href="http://en.wikipedia.org/wiki/Maillard_reaction">Mallard reaction</a> yummyness, and so there would be a nice fond at the bottom of the dish for gravy making.</p> <p>After pulling the roast from the oven, I dissolved the fond in some cream, added the juices that came out when I sliced the roast, gave it a quick blender action to make sure it was smooth, and then added a tad bit more cream, Cognac, salt and pepper to taste, and then thickened it with just a touch of cornstarch. (One of these days I’ll have to try it with a roux, but I’m a bit weak in my classical French sauce making skills.)</p> <p>The result? A very nicely browned crust on the outside, surrounding a vast expanse of perfectly cooked medium-rare cow. Very tasty, and extremely flexible in terms of cooking time.</p> The real reason why the Novell/Microsoft deal is worse than useless…. https://thunk.org/tytso/blog/2006/11/17/the-real-reason-why-the-novellmicrosoft-deal-is-worse-than-useless/ Sat, 18 Nov 2006 01:36:00 +0000 https://thunk.org/tytso/blog/2006/11/17/the-real-reason-why-the-novellmicrosoft-deal-is-worse-than-useless/ <p>So more information emerges… According to this <a href="http://www.novell.com/linux/microsoft/faq_opensource.html">FAQ</a>, the trick which Novell/Microsoft used to sidestep the section 7 of the GPLv2 was that covenant not to sue was not given to Novell, but rather directly to Novell’s customers. Very clever…. of course, that means that if you are a Novell customer, and you rely on this pledge (which hasn’t triggered yet since Microsoft hasn’t sued anyone over any patents which MS might (or might not) have covering Linux), then you won’t be able to share Linux with any of your friends; once it happened, you would be violating the GPL if you did so.</p> <p>But the real reason why this deal is worse than useless is it was always going to be highly unlikely for Microsoft to sue any of Novell’s <strong>customers</strong> in any case, so it didn’t cost them a single past, present, or future penny to make this promise. Companies rarely sue end-customers, because (a) that’s not where the money is, and (b) except for patent-trolls, who have no customers, most of the end-customers of the alleged infringer of the patent are probably also customers of the patent owner — and it’s generally a really bad idea to piss off your own customers by sueing them. Even the patent-troll NTP didn’t sue any of the millions and millions of Blackberry users. Instead, it used Research in Motion, the company that produced the Blackberry.</p> <p>So, if Novell didn’t receive a covenant not to sue from Microsoft but only a promise to deliver a covenant not to sue its customers, then what it’s paying for is a load of hot air; Microsoft won’t sue Novell’s customers, it will sue Novell instead! And if Novell did receive such a covenant not to sue, then the moment Microsoft attempts to assert any hypothetical patents it might (or might not) have that allegedly covers Linux, then Novell loses its right to distribute Linux, and with it, its business model. So if what Novell wrote in its <a href="http://www.novell.com/linux/microsoft/faq_opensource.html">FAQ</a> here is true, what it purchased was a pure 100% unadulterated load of bullsh*t.</p> <p><em>Like all postings in this blog, the opinions stated here are my personal ones, and in no way other than coincidence reflects the opinions of my employer. I’m not important enough to make opinions for my employer. <!-- raw HTML omitted -->🙂<!-- raw HTML omitted --></em></p> Grant me smart adversaries rather than dumb ones…. https://thunk.org/tytso/blog/2006/11/17/grant-me-smart-adversaries-rather-than-dumb-ones/ Sat, 18 Nov 2006 00:32:00 +0000 https://thunk.org/tytso/blog/2006/11/17/grant-me-smart-adversaries-rather-than-dumb-ones/ <blockquote> <p>“Lord, enlighten thou our enemies. Sharpen their wits, give acuteness to their perceptions, and consecutiveness and clearness to their reasoning powers. We are in danger from their folly, not from their wisdom: their weakness is what fills us with apprehension, not their strength.”</p> </blockquote> <p>I found the following quote from an <a href="http://www.salon.com/news/feature/2006/11/17/milton_friedman">article eulogizing Milton Friedman</a> to be really thought-provoking. Originally written by John Stuart Mill, a 19th century philosopher and economist, it was used in the Salon article to point out how even left-of-center economists owed Milton Friedman a debt of gratitude. However, it’s interesting to see how applicable his observation/prayer is to many other people and situations. In terms of preferring enlightened adversaries to weak ones, I can certainly think of all sorts of places where that is true, from George W. Bush and the neo-conservatives, to people like Stuart and Tim at <!-- raw HTML omitted --> or Mike at <!-- raw HTML omitted -->.</p> <p>I suppose that shouldn’t be too surprising; very few people are actively malicious. A few act out of pure selfishness, to be sure, but most do the bad things they do out of sheer cluelessness or incompetence. A good thing to keep in mind.</p> In response to Rumsfeld's, "If you disagree with me, you're a Nazi appeaser" https://thunk.org/tytso/blog/2006/08/31/in-response-to-rumsfelds-if-you-disagree-with-me-youre-a-nazi-appeaser/ Thu, 31 Aug 2006 23:27:00 +0000 https://thunk.org/tytso/blog/2006/08/31/in-response-to-rumsfelds-if-you-disagree-with-me-youre-a-nazi-appeaser/ <blockquote> <p>“The man who sees absolutes, where all other men see nuances and shades of meaning, is either a prophet, or a quack.</p> <p>Donald H. Rumsfeld is not a prophet.”</p> </blockquote> <p>A very powerful signoff from Keith Olbermann, host of NBC “Countdown”. Read the transcript <a href="http://www.msnbc.msn.com/id/12131617/#060830b">here</a>, or watch the video in <a href="http://movies.crooksandliars.com/OlbermannBlastsRumsfeldOnFacism.wmv">wmv</a> or <a href="http://movies.crooksandliars.com/OlbermannBlastsRumsfeldOnFacism.mov">qt</a> format.</p> Real Live Preacher https://thunk.org/tytso/blog/2006/06/04/real-live-preacher/ Sun, 04 Jun 2006 22:25:00 +0000 https://thunk.org/tytso/blog/2006/06/04/real-live-preacher/ <p>This morning, having gotten up early, I found a great <a href="http://slacktivist.typepad.com/slacktivist/left_behind/index.html">systematic deconstruction of the “Left Behind Series</a>, courtesy of a <a href="http://jtidwell.livejournal.com/25918.html">pointer</a> from <!-- raw HTML omitted -->. Definitely a good read (it’s in blog order, though, so you have to start from the end of the page and work backwards), and it’s kinda cool to find that there are folks who self-identify as being Evangelical Christians who aren’t at all impressed with LaHaye and Jenkin’s Left Behind series.<!-- raw HTML omitted --></p> <p>One of the links that found while reading was a link to a blog, <a href="http://www.reallivepreacher.com">Real Live Preacher</a>. The blogger is a pastor of a Baptist Church in Texas, although I suspect most Texas Baptist Preacher-men generally don’t write commentary like <a href="http://www.reallivepreacher.com/node/55">this</a>. He also wrote a great <a href="http://www.reallivepreacher.com/node/354">explanation</a> of <a href="http://bible.oremus.org/?passage=Matthew+26%3A6-16&amp;vnum=yes&amp;version=nrsvae">the story of the woman who poured a jar of perfume on Jesus</a>. For those who like to be reminded that there are thoughtful Christians out there, I highly recommend taking a look at his writings.</p> Why every city council needs at least one geek https://thunk.org/tytso/blog/2006/03/25/27960/ Sat, 25 Mar 2006 06:08:00 +0000 https://thunk.org/tytso/blog/2006/03/25/27960/ <p>The <a href="http://www.centos.org/modules/news/article.php?storyid=127">following exchange</a> between a CentOS developer and the City Manager of <a href="http://www.tuttle-ok.gov/">Tuttle, Oklahoma</a> (City Motto: “The Place where People Grow — Friendly!”) is just too funny for words.</p> Seeing polar bears in the wild https://thunk.org/tytso/blog/2006/03/19/27669/ Sun, 19 Mar 2006 05:58:00 +0000 https://thunk.org/tytso/blog/2006/03/19/27669/ <p>I have a random idea for a potentially interesting group vacation. Anyone interested in going to see some <a href="http://www.salon.com/news/feature/2006/03/17/churchill/index.html">polar bears in the wild before they become extinct</a>? I’m thinking this might be something that might be worth planning for next year, perhaps. Not a huge rush; it will be a few short decades before the ice cap permanently disappears, but it seems like it would be a nice thing to do while it’s still possible to see them in natural surroundings.</p> Making a difference https://thunk.org/tytso/blog/2006/02/24/making-a-difference/ Fri, 24 Feb 2006 16:58:00 +0000 https://thunk.org/tytso/blog/2006/02/24/making-a-difference/ <p>Yes! It is occasionally satisfying to be able to <a href="http://felinewizards3.blogspot.com/2006/02/big-meow-is-go.html">make a difference</a>. I don’t know what Diane Duane would have decided to do if I hadn’t made my offer (I was the “mystery mailer”), but it is definitely a nice feeling to know that I had a hand in making it possible for a <a href="http://felinewizards3.blogspot.com/">piece of art</a> to enter the world.</p> <p>It would be really cool if this posting helps to encourage more people to help sponsor (or subscribe) to this book, and to become sponsors and patrons of the art and artists that they love in general. I suppose the publishing and recording industry has their place, but IMHO self-publishing and direct patronage of artists is critically important if for no other reason than to keep the publishers honest — competition is a <em>good</em> thing. The alternative is going to be more Sony Rootkits, computers which are no longer under the control of their owners, but rather the RIAA and MPAA, and only books/music suitable for the mass-market (my theory for explaining Britney Spears) getting published. It’s a real shame that <!-- raw HTML omitted -->‘s Open Culture idea never got fully off the ground.<!-- raw HTML omitted --></p> Small configuration file parser https://thunk.org/tytso/blog/2005/12/31/small-configuration-file-parser/ Sat, 31 Dec 2005 23:46:00 +0000 https://thunk.org/tytso/blog/2005/12/31/small-configuration-file-parser/ <p>I’ve recently taken the Kerberos V5 profile library, which I had originally written ten years ago (!!!) to parse /etc/krb5.conf, and taken the version from krb5 1.4.2, and simplified the heck out of it (took out locking for multi-threading support, the ability to modify config files from the program, etc.) and boiled it into a single C source file, so that e2fsck could have its own fast, simple, and lightweight configuration file. The end result is <a href="https://thunk.org/tytso/hg/e2fsprogs/?cmd=changeset;node=1c7d78e4cc6999cf4212ff11d189b277358999f4">here</a>, and compiles down to 6.5k of x86 object code. I could probably get it to be even smaller, but still, that’s not bad.</p> <p>After finishing, I wondered what other choices I might have used. I haven’t done a formal release yet, so it’s still possible for me to try something else, if there is some other small, robust, configuration file parser that would be better. Since e2fsck needs to fit on potentially small root filesystems (or other small boot-time environments), we can rule out libxml2 — one megabyte of compiled code can’t be <em>all</em> bad — but that kind of bloatware is just scary. The smallest XML parser I could find is ezxml, which is still over 3 times the size of my win.ini parser, and which, like most XML parsers, has an API which is not terribly convenient to use.</p> <p>It is amazing to me how there seems to be so little interest in small, compact, elegant pieces of code that can be reused. The trend these days seems to be towards large pieces of bloatware, and it doesn’t matter whether programs are written in C, C++, Java, or Perl. Sigh.</p> What a fun rental car! https://thunk.org/tytso/blog/2005/11/17/what-a-fun-rental-car/ Thu, 17 Nov 2005 06:36:00 +0000 https://thunk.org/tytso/blog/2005/11/17/what-a-fun-rental-car/ <p>I just arrived in Austin, and headed to the Hertz car rental to pick up my car. My first hint that something was unusual was when I saw that the car keys were on the dash, instead of in the ignition, and the key looked… funny. Then I noticed the power button, and the lack of a standard instrument cluster, and it dawned on me. I was going to have a chance to drive a Toyota Prius as my rental car!</p> <p>Very cool!!</p> Split-screen focusing for Canon https://thunk.org/tytso/blog/2005/06/21/split-screen-focusing-for-canon/ Tue, 21 Jun 2005 15:55:00 +0000 https://thunk.org/tytso/blog/2005/06/21/split-screen-focusing-for-canon/ <p>Rachel Katz is an optical engineer who is selling a split-prism focusing screen for Canon cameras (10D, 20D, Digital Rebel, Digital Rebel XT). It looks like this started as some custom work for an Sigma SD-10 owner, but it’s since blossomed into a business with its own <a href="http://www.katzeyeoptics.com/">website.</a> So for only a hundred bucks or so, I can get my camera to be much more reliable at manual focusing, with the only downside being that the spot/partial (but not evaluative or center-weighted) metering will be slightly off (pictures will be slightly overexposed if you don’t compensate). I think I can live with that…</p> Getting around to using RSS https://thunk.org/tytso/blog/2005/05/25/getting-around-to-using-rss/ Wed, 25 May 2005 07:22:00 +0000 https://thunk.org/tytso/blog/2005/05/25/getting-around-to-using-rss/ <p>I’ve finally gotten around to playing with an RSS agregator. The one which I first picked, <a href="http://liferea.sourceforge.net/">Liferea</a>, seems to be the best of the bunch. It’s definitely going to be a time-saver. I don’t know what took me so long, except for the fact that these days it’s hard to find the time to experiment with new programs, even if in the long run they end up being time-savers.</p> Garage cleanup https://thunk.org/tytso/blog/2005/05/23/garage-cleanup/ Mon, 23 May 2005 17:20:00 +0000 https://thunk.org/tytso/blog/2005/05/23/garage-cleanup/ <p>I spent a good part of last night assembling some cabinents, drawers, and a workbench for my garage. $300 dollars for a full-height cabinent, two wall-mounted cabinets, a half-height base cabinet, a half-height four-drawer, and a workbench; a pretty good deal from Costco. Too bad the kit was missing two shelf-holders, and the doors to one of the cabinents was missing one of its hinges (the plastic was sheared off, apparently before it was packed, since I didn’t find any additional bits in the box). I also cleaned up the garage some, and throwing out some kruft from it. The electrician shows up tomorrow to finish installing electricity, so I can hook up the garage door openers and put in some power for the workbench. Cool deal!</p> <p>Next, I need to get to the Brazilian consulate to get a visa for the FISL conference….. I also have to figure out the domestic flight details for while I am visiting Brazil; such fun!</p> Y2K bug in Solaris?!? https://thunk.org/tytso/blog/2005/05/08/y2k-bug-in-solaris/ Sun, 08 May 2005 10:47:00 +0000 https://thunk.org/tytso/blog/2005/05/08/y2k-bug-in-solaris/ <p>I was shocked to find a Y2K bug in Solaris 9, half a decade after Y2K, but I don’t know how else to explain this….</p> <p>The following program prints a date with a year in 1905 under Solaris 9. Under Linux it displays a date of 2005, and my reading of strptime specification, as well as the Solaris 9 man page, indicates that strptime %Y is supposed to parse a 4 digit year correctly. Given Sun’s repeated claims of Solaris being a more professional/standards-compliant system than Linux, this sort of bug is rather surprising.</p> <p>Can someone with access to Solaris 10 try running this program, and perhaps on other Unix systems? I’m curious what folks find…</p> <p><!-- raw HTML omitted --> <!-- raw HTML omitted --></p> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <p><strong>EDIT:</strong> I’ve changed the above posting to match the version of the program where I first detected the problem. The first argument to strptime was “20050507123005”. It is now “200505071230”. That is, not including the seconds (“05”) makes all the difference, and causes the bug to show up. Apparently Solaris adjusts the tm_year after it finishes the full converstion, and if there are insufficient characters in the input string to fulfill all of the conversions specified in the format strong, tm_year gets left with only the last two digits of the year. A review of the relevant SUS specification doesn’t show any justification for this behavior.</p> Debian, the FSF, the GFDL, and kernel firmware https://thunk.org/tytso/blog/2005/04/11/debian-the-fsf-the-gfdl-and-kernel-firmware/ Mon, 11 Apr 2005 19:02:00 +0000 https://thunk.org/tytso/blog/2005/04/11/debian-the-fsf-the-gfdl-and-kernel-firmware/ <p>While some Debian-related e-mails this morning, I started thinking about Monty Python’s The Life of Brian:</p> <p>Cast List</p> <p>=========</p> <p>Judean People’s Liberation Front…. will be played by Debian.</p> <p>People’s Front for the Liberation of Judea…. will be played by the FSF.</p> <p>Popular Front for the Liberation of Judea…. will be played by people who just want to get work done and use device drivers with firmware.</p> <p>The Roman Empire… will be played by Microsoft.</p> Last of the nerd birds… https://thunk.org/tytso/blog/2005/01/10/25359/ Mon, 10 Jan 2005 07:29:00 +0000 https://thunk.org/tytso/blog/2005/01/10/25359/ <p>As write this entry, I’m sitting in First Class (seat 2A), on the absolutely, positively, very last non-stop American flight between San Jose and Boston. This is the red eye, and starting tomorrow, American has stopped all of the non-stops between BOS and SJC, and there will only be two non-stops in each direction between BOS and SJC. Given that I live in Boston, and Stacey lives in Santa Clara, this is very sad. <!-- raw HTML omitted -->🙁<!-- raw HTML omitted --></p> More reasons not to buy monster cables https://thunk.org/tytso/blog/2004/12/31/more-reasons-not-to-buy-monster-cables/ Fri, 31 Dec 2004 22:58:00 +0000 https://thunk.org/tytso/blog/2004/12/31/more-reasons-not-to-buy-monster-cables/ <p>… besides the fact that their cables are generally ripoffs:</p> <p><a href="http://corpreform.typepad.com/corpreform/2004/12/q_when_is_a_fri.html">Q: When is a frivolous lawsuit not frivolous? A: When it’s filed by a corporation.</a></p> <p><a href="http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/11/08/BUG1J9N3C61.DTL&amp;type=business">Monster fiercely protects its name: Cable products company sues those who use M-word</a></p> A wonderfully relaxing evening. https://thunk.org/tytso/blog/2004/10/02/a-wonderfully-relaxing-evening/ Sat, 02 Oct 2004 04:28:00 +0000 https://thunk.org/tytso/blog/2004/10/02/a-wonderfully-relaxing-evening/ <p>It was an incredibly busy and stressful week, so by the time I took the</p> <p>train down to New York City today, I was in some definite need for some</p> <p>pampering. So first, a visit to [</p> <p>John Allan’s]<a href="http://www.johnallans.com/">1</a>, for the full service treatment (a scalp massage, hair cut and styled, a hot</p> <p>towel treatment, a manicure, and a shoe shining). Then Stacey and I</p> <p>went to <a href="http://www.aquavit.org">Aquavit</a>.</p> <p>The last time we had gone to Aquavit was for my birthday, where we had</p> <p>the 17 course “tiny bites” tasting menu. We were stuffed to the gills</p> <p>after that, so this time, we opted for the 7 course chef’s tasting</p> <p>menu. It was supposedly a smaller amount of food, but we were still rolling</p> <p>out the door by the time we were done.</p> <p>The food there was incredible. Unfortunately, I didn’t take notes, so</p> <p>I can’t do the [</p> <p>]<a href="http://www.livejournal.com/users/coraline/409835.html">3</a> porn descriptions that <!-- raw HTML omitted --> does so well. But</p> <p>some of the dishes that stood out in mind included:<!-- raw HTML omitted --></p> <ul> <li> <p>Fennel and raisin bread, with herbed butter. Yum!</p> </li> <li> <p>A kobe beef ravioli — where the cube of raw kobe beef was used</p> <p>as the “pasta”, which was filled with mashed taro root as the</p> <p>stuffing. A truffle tea broth was poured over the whole concoction.</p> </li> <li> <p>Mackerel, lightly broiled and coated with ground pepper paired</p> <p>with a rich oxtail stewed in red wine, topped with a small piece of</p> <p>octopus. The soft, incredibly rich beef was a great contrast with the</p> <p>firmer (although not chewy) octopus.</p> </li> <li> <p>For the cheese course, a trio consisting of a strong, soft</p> <p>cheese, olive flan, and a salty rosemary bread. Each of the trio had</p> <p>their own, very strong flavor, but you could put them together in</p> <p>arbitrary combinations, and they all tasted really good, combining in</p> <p>different ways to draw out different aspects of their flavor.</p> <p>We particularly enjoyed pairing the olive flan with</p> <p>the cheese, and with the rosemary bread.</p> </li> <li> <p>A bottle of viognier wine from the Miner Family vinyards in the Napa Valley. It’s a white wine which is fruity, but well-balanced with enough crisp acidity</p> <p>that went well with pretty much all of the dishes on the tasting menu.</p> </li> </ul> <p>There were a lot more very yummy dishes, but unfortunately I can’t</p> <p>remember them all. I guess next time I’m going to have to bring a</p> <p>notepad along and take notes….</p> An open letter to American Airlines https://thunk.org/tytso/blog/2004/08/11/an-open-letter-to-american-airlines/ Wed, 11 Aug 2004 08:58:00 +0000 https://thunk.org/tytso/blog/2004/08/11/an-open-letter-to-american-airlines/ <p>I understand the concept of scheduling an average of 199 takeoffs and landings every hour continuously between 10am and 3pm at Chicago, when the airport can only sustain 200-202 flight operations per hour, and then when even the tiniest thing goes wrong, the resulting commercial aviation gridlock paralyzing flights over all North America is the fault of the weather, and not the fault of the airlines for over-scheduling. Really. I get it.</p> <p>But could you at least make the estimated departure times on the flight status boards be accurate, so that those of us who pay $400/year to have a comfortable place to sit and relax (somewhat) during your inevitable flight delays, can relax in (relative) comfort at the Admiral’s Club until the plane is truly ready to leave?</p> <p>Thank you.</p> Comparing OLS and Usenix https://thunk.org/tytso/blog/2004/07/26/comparing-ols-and-usenix/ Mon, 26 Jul 2004 06:13:00 +0000 https://thunk.org/tytso/blog/2004/07/26/comparing-ols-and-usenix/ <p>Yesterday was the last day of</p> <p>href=”http://linuxsymposium.org/”&gt;Ottawa Linux Symposium, and I</p> <p>can’t help comparing it with the</p> <p>href=”http://www.usenix.org/publications/library/proceedings/usenix04/”&gt;Usenix</p> <p>Annual Technical Conference, which was only a few weeks earlier. The</p> <p>difference in the quality and relevance (at least as far as my interests</p> <p>are concerned) of the papers, the energy of the attendees, and the</p> <p>overall atmosphere of the two conferences were distinctly different.</p> <p>A look at this year’s</p> <p>href=”http://www.finux.org/proceedings”&gt;conference proceedings for</p> <p>OLS is enlightening; two volumes, with a total of 600 pages and 50</p> <p>papers. In the past, some academics had sneered at OLS and</p> <p>other Linux conferences because the papers were not well written, at</p> <p>least by academic standards. This criticism is now much less</p> <p>valid — if it ever was valid at all. As Clem Cole has pointed out, the NFS</p> <p>paper, which is now considered seminal, is by academic standards a lousy</p> <p>paper, and it is doubtful it would have been accepted by today’s program</p> <p>committees under the guise of “raising quality of Usenix’s</p> <p>papers”. More importantly for OLS however, beyond the</p> <p>quality of the writing, was how vital and relevant the topics of the</p> <p>papers.</p> <p>Two people (one from IBM, and one from EMC) independently commented</p> <p>to me that they had thought they stepped into a time-warp; the energy,</p> <p>exchange of ideas, and excitement that they felt at OLS was reminiscent</p> <p>of a Usenix conference from the early 1980’s. Two others (both previous</p> <p>Usenix or Freenix program committee members and/or chairs) agreed with</p> <p>these sentiments and said that they had pretty much given up any hopes</p> <p>of “salvaging” Usenix and encouraged me to skip the</p> <p>href=”http://www.usenix.org/events/usenix05″&gt;2005 Usenix ATC and go</p> <p>to <a href="http://linux.conf.au">Linux.conf.au</a> instead. Yet</p> <p>another old-timer stated that Usenix ’04 was a great place to meet old</p> <p>friends, but OLS and LCA is where the action is at.</p> <p>That’s one possible solution, I suppose — after all, if all I care</p> <p>about is Linux and Open Source Software (OSS) development, OLS (and to a</p> <p>lesser extent, the [Linux</p> <p>Kongress]<a href="http://www.linux-kongress.org">2</a> and linux.conf.au) is the primiere place to submit papers</p> <p>and meet with colleagues doing the leading-edge development work in</p> <p>Linux, X Windows, and other OSS packages.</p> <p>Unfortunately, there are a number of reasons why this might not be a</p> <p>satisfactory or complete answer:</p> <ul> <li> <p>As others such as Bryan Cantrill have pointed out in his</p> <p>href=”http://blogs.sun.com/roller/comments/bmc/Weblog/whither_usenix”&gt;web</p> <p>log, there is a need for a place for industry work to be published,</p> <p>and increasingly Usenix is not fulfilling this role. So</p> <p>this is a problem that goes beyond that of just Linux and the OSS</p> <p>world.</p> </li> <li> <p>Even if we ignore the problems of the proprietary Unix</p> <p>vendors, the Linux and OSS community needs to exchange ideas with other</p> <p>industry practitioners. This kind of discussion and cross-breeding</p> <p>is in the long-term critically important. And even if AIX, HPUX,</p> <p>and Solaris end up going the way of the dodo, who knows what insights</p> <p>and new ideas might come from EMC, or Google, or even Microsoft?</p> </li> <li> <p>I (perhaps stupidly <!-- raw HTML omitted -->) agreed to serve on the board of Usenix, so I</p> <p>have a duty to Usenix’s long-term health as an organization and to its</p> <p>mission. So I can’t just abandon Usenix’s ATC as a hopeless cause,</p> <p>as some have urged me to do. As a result, some have accused me as having</p> <p>a too-finely honed</p> <p>sense of duty….</p> </li> </ul> <p><!-- raw HTML omitted --> <!-- raw HTML omitted --></p> <p>So, what can be done? I spent</p> <p>quite a few hours brain-storming with Val Henson, Paul McKenney, and a</p> <p>few other interested parties during the course of OLS. Val recorded the</p> <p>results of some of these brain-storms in her</p> <p>href=”http://blogs.sun.com/roller/page/val/20040722#the_freenix_track_has_it”&gt;web</p> <p>log. As we had discussed it, the “Product Track” (which I jokingly called</p> <p>“Realnix”) would contain technologies that either are in a shipping</p> <p>product, or is intended to be integrated into a shipping product, where</p> <p>for the purposes of this criteria, the mainline Linux, NetBSD, GNOME,</p> <p>KDE, X Windows systems, would be considered “shipping product”.</p> <p>Some might argue that this separation of “academic papers” and</p> <p>“industry papers” might not be such a great idea. The argument has been</p> <p>made that the academic track might be viewed as a “Golgafrincham B ark” where papers</p> <p>with extensive bibliographies, meticulously enumerated related work</p> <p>sections, and results describing 3% improvements on microbenchmarks</p> <p>would be relegated. Perhaps such a perception is unfair, but whether or</p> <p>not Rob Pike’s description of</p> <p>href=”http://www.cs.bell-labs.com/who/rob/utah2000.pdf”&gt;Systems Software</p> <p>Research as Being Irrelevant is accurate is a topic for another day</p> <p>and time. If Rob’s observations have any validity, however, then it is</p> <p>up to those in the academic world to address it, and the health and</p> <p>vitality of the “academic track” will ultimately be their</p> <p>responsibility, for good or for ill.</p> <p>If we don’t create separate tracks for academic and product papers,</p> <p>it’s going to be important to make sure the program committees are</p> <p>balanced with representatives not just from universities and research</p> <p>labs, but also from product groups. Bryan Cantrill has put together</p> <p>href=”http://blogs.sun.com/roller/page/bmc/20040708#check_this_out_a_img”&gt;some</p> <p>data showing how poorly the computer industry in general, and</p> <p>product groups specifically have been representated on the Usenix</p> <p>program committees. My concern is that the academic and</p> <p>product-group communities, as well as their standards for papers, have</p> <p>diverged too much already, and trying to manage this tension may prove</p> <p>to be too much for many program committees. This may result in a</p> <p>lurching back and forth of the acceptance criteria and overall balance of</p> <p>the Usenix ATC, which would not be a good thing. Consistency</p> <p>and predictability is extremely important to potential authors who are</p> <p>deciding whether or not to submit a paper proposal to a conference or</p> <p>track.</p> <p>From a practical perspective, given how strong the OLS conference has</p> <p>been this year, it will be harder and harder for Freenix to attract</p> <p>papers about Linux and Open Source Software; OLS has proven itself as</p> <p>the place for the Linux/OSS community to meet, and I predict that this</p> <p>will if not starve Freenix submissions, cause it to be extremely</p> <p>lopsided with very few relevant and interesting Linux papers. Hence,</p> <p>expanding the scope of Freenix to include product papers may make a lot</p> <p>of sense.</p> <p>Of course, making room for papers from product groups (no matter how</p> <p>we do it) isn’t going to be enough by itself. We will also need to find</p> <p>ambassadors who work at each of various companies in the computer</p> <p>industry to market to engineers and to managers why submitting papers</p> <p>and serving on program committees is a good and useful thing to do —</p> <p>both for the potential paper author as well as their employer. Val</p> <p>Henson has put together a set of</p> <p>href=”http://blogs.sun.com/roller/resources/val/slides.pdf”&gt;slides</p> <p>for doing just that; see her</p> <p>href=”http://blogs.sun.com/roller/page/val/20040713#program_committees_superpages_and_compare1″&gt;web</p> <p>log entry for more discussion and the LaTeX sources to the</p> <p>slides. (She has given permission for others to adapt her slides</p> <p>for their company; you should credit her if you use them, though!)</p> <p>Is this going to be enough to keep Usenix relevant and</p> <p>interesting? To be honest, I don’t know. I sure hope</p> <p>so. The good news is that there are more and more people thinking</p> <p>about the problem, as some of the links to various web logs have</p> <p>demonstrated. So even if we don’t have the complete solution to</p> <p>the problem right now, we do have a growing consensus that there is a</p> <p>problem, and what the scope of the problem is likely to be, and that’s</p> <p>always a better place to be than being unwilling to acknowledge that</p> <p>there is a problem in the first place.</p> <p><strong>Update</strong> (7/27): I’ve since found the following</p> <p>[</p> <p>blog entry]<a href="http://weblogs.cs.cornell.edu/AllThingsDistributed/archives/000481.html">3</a> which presents</p> <p>an opposite, or at least slightly different, point of view.</p> <p>In it, Werner Vogel argues that the problem is that</p> <p>program committee members have tried, but failed to get industry (product group)</p> <p>participation — either on program committees or via submissions. I think he makes some</p> <p>good points, although I think I differ about which is the chicken and</p> <p>which is the egg here. It may be that having a separate track just for industry/product-group</p> <p>representatives may make it easier to both recruit program committee members, and</p> <p>to have enough people to actively solicit and arm-twist paper submissions. Also, perhaps</p> <p>a program committee will have to use more creative ways of soliciting papers that</p> <p>might not occur to a group of academics — for example, such as going through</p> <p>the product marketing group to arm-twist the engineers to write and submit real papers (not just white papers!)</p> <p>describing the sexy new technology in a recently-released product. Anyway, Werner’s comments are thoughtful</p> <p>and should be carefully considered.</p> The shrub's antics in Pennsylvania. https://thunk.org/tytso/blog/2004/07/16/the-shrubs-antics-in-pennsylvania/ Sat, 17 Jul 2004 00:53:00 +0000 https://thunk.org/tytso/blog/2004/07/16/the-shrubs-antics-in-pennsylvania/ <p>This report of George W. Bush <a href="http://www.livejournal.com/users/jiveturky/185733.html">giving two PA boys the finger</a> amused me greatly. Now that’s the way to win the hearts and minds of those swing states voters!</p> 4th of July Cruise with Stacey https://thunk.org/tytso/blog/2004/07/06/4th-of-july-cruise-with-stacey/ Tue, 06 Jul 2004 04:26:00 +0000 https://thunk.org/tytso/blog/2004/07/06/4th-of-july-cruise-with-stacey/ <p>On the 4th of July, Stacey and I took a Boston harbor dinner cruise on Odyssey cruises. We had a lovely, romantic dinner together, followed by the fireworks as seen from the Charles River basin. Oh, and she said yes.</p> <!-- raw HTML omitted --> Video projectors progress https://thunk.org/tytso/blog/2004/06/29/video-projectors-progress/ Tue, 29 Jun 2004 18:31:00 +0000 https://thunk.org/tytso/blog/2004/06/29/video-projectors-progress/ <p>I’m currently at the Marriott Copley Place hotel, giving a <a href="http://www.usenix.org/events/usenix04/training/tues.html#t2">kernel tutorial</a> for Usenix, and for the first time ever, the video projector dealt with a 1400×1050 VGA output without my having to doing any futzing. In the past, I’ve always had to adjust down to 1024×768. Hopefully this is a sign of things to come….</p> About song topics and relationships https://thunk.org/tytso/blog/2004/06/26/about-song-topics-and-relationships/ Sat, 26 Jun 2004 05:13:00 +0000 https://thunk.org/tytso/blog/2004/06/26/about-song-topics-and-relationships/ <p>I recently got a copy of the Abba Gold DVD. It’s the equivalent of musical cotton candy — lots of very bouncy, catching tunes, with lots of rich, albeit simple harmonies. It was a certain sense of horror thatI found out how much I enjoyed listening to 45 minutes of nothing but 70’s pop music.</p> <p>After listening to the whole DVD a couple of times (I was using it as background music while working), I noticed something interesting about the topics of many of the songs on their Gold album. A very large number of them dealt either with the beginning or the end of relationships:</p> <ul> <li><strong>Knowing me, knowing you</strong> — (nothing we can do) about an impending breakup</li> <li><strong>Take a chance on me</strong> — and try starting a relationship with me</li> <li><strong>Mamma Mia</strong> — loving someone after a breakup</li> <li><strong>Lay all your love on me</strong> — being jealous about rivals</li> <li><strong>The winner takes it all</strong> — about Bjorn and Agnetha’s divorce</li> <li><strong>S.O.S.</strong> — whatever happened to our love?</li> <li><strong>Chiquitta</strong> — helping a friend deal with heartbreak</li> <li><strong>Does your mother know?</strong> — saying no to jailbait</li> <li><strong>One of us</strong> — is miserable after moving out</li> <li><strong>The name of the game</strong> — uncertaininties at the beginning of a relationship</li> <li><strong>Waterloo</strong> — realizing that you’re in love</li> </ul> <p>Of course, not all of the songs were about relationships. <strong>Fernando</strong> is an anti-war song, and <strong>Money, Money, Money</strong> is a fun anti-materialistic screed. But nevertheless, most of the songs elevated and glamorized the beginnings and endings of relationships.</p> <p>Perhaps this is because there isn’t as much dramatic tension and interest in talking about effort and joys of keeping a relationship going over the long-term.</p> <p>I became aware of this after I had gotten past enjoying the catchy tune</p> <p>and energetic baselines, and started paying attention to the lyrics, and realizing</p> <p>that the words themselves really didn’t speak to me very much, even though I liked</p> <p>the music very much. Thinking about this, I don’t believe it’s unique</p> <p>to this album, or even to Abba — although perhaps it’s a bit more</p> <p>exaggerated than compared with other groups. I do wonder though if this kind of pop culture has</p> <p>any kind of impact on how people perceive and live out their relationships.</p> <p>Maybe I’m being too much of a romantic, but I can’t help thinking</p> <p>and hoping that it might increase the global happiness of the world by</p> <p>some small amount if pop music had more music that was supportive of</p> <p>couples, and didn’t focus so much on the breakups and the aftermath; if</p> <p>there were more songs that talked about the joys</p> <p>of being together the long haul, and the compromises and hard works</p> <p>necessary to make things work, and why it’s really worth it.</p> Cooking times may vary https://thunk.org/tytso/blog/2004/06/14/cooking-times-may-vary/ Mon, 14 Jun 2004 05:04:00 +0000 https://thunk.org/tytso/blog/2004/06/14/cooking-times-may-vary/ <p>A friend recently complained about how it took a full hour to cook</p> <p>(and clean, afterward) a fairly simple dinner consisting of</p> <p>spaghetti, sauce, and meatballs. So it caused me to pay attention to</p> <p>how much time it took to cook meals for myself this weekend. The</p> <p>results were interesting, and reminded me of the time estimates in a</p> <p>how-to plumbing book for a particular job (such as removing an old</p> <p>toilet): Experienced, 20 minutes; Handy, 40 minutes; Novice, 1 hour.</p> <p>For dinner on Saturday, I sliced a chuck top blade steak into thin</p> <p>slices (1 minute), and some asparagus (another two minutes), then</p> <p>heated some olive oil in a pan (30 seconds), quickly saute’d the</p> <p>asparagus in the olive oil and then put some left-over muscadet wine</p> <p>and covered the pan to let it steam (about 2 minutes), then with some olive oil, saute’d the sliced beef (1 or 2 minutes), and then re-added the asparagus and mixed it with some Kokomen stir-fry sauce, and served it. Total cooking time? About 8 minutes. Cleanup was batched with other meals, but the time to wash the teflon pan and the dishes was probably no more than 3-4 minutes for a total of 10-12 minutes for the cooking and cleaning.</p> <p><!-- raw HTML omitted -->Lunch on Sunday was prepared by taking a half pound fillet of salmon,</p> <p>cutting it so that the thickness of the fillet was more even, and then</p> <p>placing it in a heated pan with olive oil (1 minute), and after</p> <p>browning both sides (1 minute), I added some soy sauce and balsamic</p> <p>vinegar and covered the pan for about 2 minutes to let the fish steam</p> <p>cook while the skin pan fries. In the meantime I took some pre-cut,</p> <p>pre-washed spinach leaves and mushrooms, and placed it on a plate.</p> <p>Once the salmon was done, I placed it on the spinach and mushrooms,</p> <p>and called it lunch. Total cooking time? About 5 minutes plus</p> <p>another 3 or 4 minutes for cleanup (again batched with other meals).<!-- raw HTML omitted --></p> <p>Dinner was stir-fried sliced beef with mushrooms. It was done pretty</p> <p>much similar to the beef with asparagus, except that I stir-fried the</p> <p>beef for about a minute, and then added the mushroom and let both cook</p> <p>at the same time. I used soy sauce and some muscadet to provide</p> <p>liquid when I covered the pan to let things steam, and then added</p> <p>stir-fry sauce at the end for flavor. Total cooking time was about 5</p> <p>minutes, when cleanup being again another 3-5 minutes.</p> <p>These were definitely some of my faster meals. Some other recipes</p> <p>(such as the beef stew in the pressure cooker or the ground beef with</p> <p>onion and mushrooms) take more like 30-45 minutes to cook, but I</p> <p>generally cook enough for 3-6 meals at a time when I do them so the</p> <p>average time for a meal is still under 10-15 minutes.</p> <p>So to all those who think that cooking takes huge amounts of time,</p> <p>despair not! Once you’re used to it, you can whip together very</p> <p>satisfying meals without it taking a huge amount of time (or leaving your</p> <p>kitchen a mess). And unlike, say, replacing the toilet in your bathroom,</p> <p>there are a lot more opportunities to practice until it becomes</p> <p>second nature… that is, if it’s something that you want to get into.</p> <p>Personally, I think that cooking and experimenting with different flavors</p> <p>(hmm, next time I should try cooking the salmon with wasabi and</p> <p>horseradish sauce instead of soy sauce and balsamic vinegar)</p> <p>can be a lot of fun!</p> Time for a new Debian? https://thunk.org/tytso/blog/2004/05/20/time-for-a-new-debian/ Fri, 21 May 2004 00:04:00 +0000 https://thunk.org/tytso/blog/2004/05/20/time-for-a-new-debian/ <p>After looking at some of the recent debacles in the Debian project, from the revisions in the social contract being interpreted that <strong>everything</strong> in the Debian distribution has to meet the DFSG guidelines, to the flameage about a non-functioning treasurer for Software in the Public Interest (the legal home of Debian), to the continuing delay in getting Sarge released, I started to wonder if Debian is completely dysfunctional and cannot be saved.</p> <p><!-- raw HTML omitted --> The problems are mainly cultural and stem from many sources: <!-- raw HTML omitted --></p> <ul> <li>The Debian Project Leader for the past couple of years has been extremely weak (probably in reaction to Bruce Paren’s failed attempt to be a “strong” leader), and has been reduced to essentially announcing the majority consensus of developers. That has very little to do with “leading”, at least in my book.</li> <li>The voting mechanism is extremely heavy-weight, which is a problem since formal decision making relies on a form of direct democracy instead of representative democracy. As a result, many decisions get made via discussions on mailing lists. This would be fine, except that it means that those that are vocal tend to drown out everyone else. (For example, the folks who argued for jettisoning non-free very <strong>extremely</strong> vocal on debian-devel, but when the vote came out, the number of people who wanted to keep non-free outweighed those who wanted to junk it by over three to one.) This means that people who have nothing better to do than to flame all day on mailing lists very often get to influence how decisions end up getting made.</li> <li>One of the extremely vocal subgroups currently dominating many of the mailing lists are those who are licensing fanatics, that have been descirbed as “the Knights Lunar who must prove that they are more Stallman than Stallman.”</li> <li>In addition, the level of discourse on many of these lists have degenerated into incivility and name-calling</li> </ul> <p>I’ve started to wonder if it’s time to simply try to fork the organization and start over. Fortunately or unfortunately, I don’t have time to do it myself, but if I were, I’d start with a totally different Social Contract. In my ideal world, the Social Contract for this new organization would have the following (ordered) list of key values:</p> <ol> <li>The needs of the users: <ul> <li>Ease of use</li> <li>Functionality</li> <li>Security</li> <li>Support of non-obsolete software and non-obsolete hardware in the “stable” release</li> <li>We will not hide problems <ul> <li>an open bug tracking database</li> <li>open processes when dealing with legal/administrative issues, from creating accounts to finances</li> </ul> </li> </ul> </li> <li>Technical excellence and long-term maintainability</li> <li>Having fun and treating fellow developers and users with civility and politeness</li> <li>Free Software (note the needs of the users, technical excellence, and treating each other with respect are considered more important than “free software”)</li> </ol> <p>I dunno. Perhaps if the latest General Resolution (to undo the recently made, flawed set of “Editorial Changes” to the social contract) fails, there will be enough other developers who are distressed at the current course of Debian that there would be interest in creating a new organization that uses Debian’s technical excellence, but which leaves behind some of the doctrinaire insistence on being “more Stallman than Stallman”, and for which the cultural norms about treating others with respect and civility are very clearly articulated from the outset. I can dream…</p> Scary thought for the week https://thunk.org/tytso/blog/2004/05/18/scary-thought-for-the-week/ Tue, 18 May 2004 20:53:00 +0000 https://thunk.org/tytso/blog/2004/05/18/scary-thought-for-the-week/ <p>The HIP folks requested that Tero generate a 384-bit DH group for PDA’s with lame CPU’s for which it would take too long to use a 512-bit DH modulus. Oh, when will they ever learn? Heck, a 512-bit modulus was considered a bad idea thirteen years ago in Brian Lamacchia’s <a href="http://citeseer.ist.psu.edu/lamacchia91computation.html">Paper</a>.</p> My (very old) Toyota Carolla https://thunk.org/tytso/blog/2004/05/10/22290/ Mon, 10 May 2004 04:36:00 +0000 https://thunk.org/tytso/blog/2004/05/10/22290/ <p>I finally got around to replacing my battery in my 1990 Toyota Corolla. Sometime a month or two ago, I had noticed that the battery had died, but since that I had recently gotten a new young vixen in my life (a 2004 Lexus ES 330), I had been neglecting my faithful companion for the past 14 years. Anyway, $39.95 and a battery from Cosco later, my Corolla is working again, and for the first time in about five months, I took my poor neglected Corolla out for a spin.</p> <p>Some observations: First of all, the Corolla is definitely much, much lounder; there’s much less road noise in the Lexus. Secondly, I really miss driving stick shift. There’s definitely something really nice about having low-level control over the car that you just don’t have when you drive automatic. I guess it shows that deep down, I really am a kernel programmer. <!-- raw HTML omitted --> At the same time, it is nice to occasionally not have to worry about driving stick shift. I guess my perfect car would at the very least have a clutch, so I can more easily put the car in neutral and just coast when the road is going downhill, or when I’m coasting a long in start and stop traffic. (I’ve noticed that shifting my car in neutral when I need to coast will buy me an extra 2 MPG on the Lexus ES). Even better would be if the car had automatic transmission, but with a stick-shift override that would allow me to take over when I want to indulge my desire to be in control. Finally, it definitely is nice to have a machine with the cargo capacity of the station wagon.</p> <p>I’m thinking that it would be useful to keep the Corolla around, just for when I need to haul things around. It also gets much, much better city mileage than the Lexus, so I think I’m going to keep it around for short errands around time.</p> Going to the Bay Area https://thunk.org/tytso/blog/2004/04/19/going-to-the-bay-area/ Mon, 19 Apr 2004 17:17:00 +0000 https://thunk.org/tytso/blog/2004/04/19/going-to-the-bay-area/ <p>Whee! I’m going to be flying off to San Jose this afternoon!! And I’m going to be there for a whole week, so I should have time to catch up with all of my Bay Area friends that I haven’t seen in far too long.</p> <p>I’m thinking about going to the Napa Valley this coming weekend, and see if Stirling Winery has more of that really yummy wine that <!-- raw HTML omitted --> introduced me to.<!-- raw HTML omitted --></p> Time to get a new phone… https://thunk.org/tytso/blog/2004/04/19/time-to-get-a-new-phone/ Mon, 19 Apr 2004 17:12:00 +0000 https://thunk.org/tytso/blog/2004/04/19/time-to-get-a-new-phone/ <p>Well, shoot. I guess it’s time to retire my Nokia 6310i and get myself a new phone. It turns out my 6310i is <strong>way</strong> vulnerable to <a href="http://www.bluestumbler.org/">bluesnarfing</a>, which means that an atttacker can grab pretty much all of the data stored on the handset, including the address book and IMEI. Worse yet, Nokia is claiming that this is “not a serious problem”, so they don’t plan to fix it. Oh, really?</p> <p>The question now is, what sort of replacement phone should I get. It needs to be a GSM triband, support bluetooth and GPRS, preferably be able to do GPRS and voice at the same time, and be relatively sturdy. It does <strong>not</strong> need to have a cheap-ass lousy camera in the thing. And of course, it needs to be not vulnerable to all of the latest Bluetooth attacks. Any suggestions?</p> Please sponsor me in the Walk for Affordable Housing https://thunk.org/tytso/blog/2004/03/26/please-sponsor-me-in-the-walk-for-affordable-housing/ Fri, 26 Mar 2004 04:57:00 +0000 https://thunk.org/tytso/blog/2004/03/26/please-sponsor-me-in-the-walk-for-affordable-housing/ <p>On April 4th, 2004, I’m going to be joining with some other</p> <p>parishioners at [my</p> <p>church]<a href="http://www.church-of-our-saviour.org">1</a> in a</p> <p>href=”http://www.cambridgesavings.com/servlet/Redirect?pageName=Root1_top_community_upandcomingcommunityevents&amp;menuLevel=2″&gt;Walk</p> <p>for Affordable Housing sponsored by the</p> <p>href=”http://www.connact.com/hca/”&gt;Housing Corporation of Arlington.</p> <p>The Housing Corporation of Arlington helps find low income families</p> <p>find housing options in Arlington, Massachusetts. Very often this involves buying a</p> <p>house in need of TLC, and using volunteers to help fix it up.</p> <p>I’m going to be participating in the walk, and I’m looking for people</p> <p>who to sponsor me. Please consider making a donation to help folks in</p> <p>Arlington find housing. Thanks!!</p> Really funny Boondocks comic strip https://thunk.org/tytso/blog/2004/03/21/really-funny-boondocks-comic-strip/ Sun, 21 Mar 2004 17:03:00 +0000 https://thunk.org/tytso/blog/2004/03/21/really-funny-boondocks-comic-strip/ <p>Today’s <a href="http://www.ucomics.com/boondocks/">Boondocks</a> comic strip really tickled my funny bone:</p> <!-- raw HTML omitted --> Finding old 9.00 finals/midterms https://thunk.org/tytso/blog/2004/03/18/finding-old-900-finalsmidterms/ Thu, 18 Mar 2004 17:34:00 +0000 https://thunk.org/tytso/blog/2004/03/18/finding-old-900-finalsmidterms/ <p>While doing some random cleanup, I recently came across some of my old exams from my undergraduate days, including the ones from Professor Wolfe’s Introduction to Psychology (9.00) class. Professor Wolfe was a dedicated teacher (so much so that MIT had to deny him tenure the year after he won the Baker Foundation Teaching Award for excellence in undergraduate teaching aka <a href="http://www-tech.mit.edu/V113/N54/stevenson.54o.html">“The Kiss of Death”</a> in 1989), and every year he created entirely new mid-terms and final exams that were just <em>fun</em> to take. Some examples from the 1987 final exam, which was entirely based on Tolkien’s “Two Towers”.</p> <p>&lt;lj -cut text=&ldquo;Two example questions from the exam&rdquo;&gt;</p> <!-- raw HTML omitted --> <blockquote> <p>The Riders of Rohan had just come from a battle with the orcs. Most of the orcs had been killed. No hobbit bodies were found. The riders turned out to be quite a civilized bunch and loaned two horses to Aragorn and Legolas (Dwarves don’t “do” horses so Gimli rode in the rumble seat behind Legolas.) Eventually, the three came to the scene of the battle. There they found evidence that the Hobbits had escaped into the forest, and to their immesne surprise, they found Gandalf. They had thought he had died when he fought the Balrog and fell into the pit.Gandalf described part of his adventures as follows. “Long time I fell… Then darkness took me and I strayed out of thought and time… When I came back I had both anterograde and retrograde amnesia. Over time islands appeared in the retrograde amnesia and eventually that amnesia vanished. The anterograde amnesia is still with me.”</p> <p>Please translate this into simple English. What did Gandalf remember and when? What can he still not remember? Make sure we know that you know what all the terms mean. (10 points).</p> <p>Gimli remembered that Balrogs generated an electric current sufficient to produce electro convulsive shock (ECS). He asked Gimli if this was true in his confrontation with the Balrog. Gandlaf said that he couldn’t remember but that this was not surprising since ECS tended to disrupt memory of itself.</p> <p>Pick the most accurate statement: (5 points)</p> <!-- raw HTML omitted --> </blockquote> <p>It looks like some of Professor Wolfe’s newer exams are available <a href="http://ocw.mit.edu/OcwWeb/Brain-and-Cognitive-Sciences/9-00WIntroduction-to-PsychologyFall2002/Exams/index.htm">here</a>. (A few years later, MIT realized what stupid thing they had done and invited him back — as a visiting professor from Harvard; apparently his research was good enough for the Harvard Medical School but not for MIT’s Brain and Cognitive Science Department — to teach 9.00 again.) Does anyone have copies of any of Professor Woolfe’s older exams? In particular, it would be really cool to get my hands on the ones that were based around the Fellowship of the Ring and the Return of the King, just to complete the set.</p> 20702 https://thunk.org/tytso/blog/2004/03/04/20702/ Thu, 04 Mar 2004 07:19:00 +0000 https://thunk.org/tytso/blog/2004/03/04/20702/ <p>It’s been a while since I’ve updated my journal, mostly because I’ve been insanely busy at work. So I thought I would jot down a few interesting things that have happened in the past week or so.</p> <ol> <li>I spent around $300 to get 2 custom-made suits (with two pairs of matching pants each), a sports coat, and several additional custom-made shirts and pants altered to fit the new me. This meant bringing in the waist by 3-4 inches and additional material out of the crotch of the pants, and bringing in the sides of the shirts and coats/sports jackets. (While I worked for VA Linux, I had some custom suits and shirts made for me during a business trip to Singapore, and since I’ve lost weight, the previously perfectly-fitting suits looked absolutely silly on me.) I also set identified and put aside a gigantic bag of clothing that no longer fits me, but wasn’t worth getting altered. So effectively, I’m committing that I am <strong>not</strong> going to ever gain back that weight and be as big as I was two years ago. I could have waited on adjusting the suit, actually, since ideally I need to lose another 40 pounds — but I figure that I can lose at least 10-20 pounds and still wear the newly altered suit, and if I really do lose that much additional weight, I’ll be quite happy to spend another $300 re-altering my suits again!</li> <li>I finally have my washer working again after <a href="http://tytso.livejournal.com/19502.html">my pipe-freezing incident</a>. The last batch of plumbing work (to replace a split cold water line to the kitchen sink, and reroute the cold and hot water lines away from the crawlspace access door, to avoid future pipe freezing problems, and replace the split lines going to the washer hookup, as well as replacing the washer hookup itself) cost $1500. Then I found out that the <a href="http://www.pcappliancerepair.com/cgi-bin/detail.cgi?item=358277&amp;brand=WPL">washer inlet valve</a> apparently had gotten damaged as well during the freeze. I did manage to figure out how to open up the washer and replace the inlet value myself. Go me.</li> <li>Laptop memory has gotten cheap. For a mere $312, I was able to buy a 1 gigabyte DIMM to my t40 laptop, which now sports a whopping 1.5 gigabytes worth of memory. This makes running Lotus Notes (using Crossover Office) and simultaneously using a GNOME 2 desktop and Mozilla much, much more pleasant. I am also extremely amused that I am running a CONFIG_HIGHMEM kernel on a laptop…</li> </ol> Orkut and the cheapening of friendship https://thunk.org/tytso/blog/2004/02/08/orkut-and-the-cheapening-of-friendship/ Sun, 08 Feb 2004 08:26:00 +0000 https://thunk.org/tytso/blog/2004/02/08/orkut-and-the-cheapening-of-friendship/ <p>What does it mean to be a friend? In LiveJournal, it has a very specific meaning; it means that you’re interested in reading someone’s journal, and that in general, you’re willing to let that person read your “friends-only” postings — at least, unless you start using friend groups to control who can see which posting. In Orkut, however, saying someone is a friend has little or no meaning, since in orkut you don’t really <strong>do</strong> anything other than define your social circle.</p> <p>Worse yet, in Orkut-space, friendships are generally bilateral; when someone adds you as a friend, it adds clutter to your Orcut main page until you answer the question yes/no question, “Is person so-and-so your friend?”. Well, what kind of question is that? Orkut doesn’t allow you to specify whether the friendship level is one of “this is someone I would have as a groomsmen or bridesmaid at my wedding”, down to “this person heard me speak when I happened to be in town in Victoria, B.C; we may have said hello”. So do you say yes, or do you say no and risk offending some relative stranger because you’re saying that “sorry, I don’t consider you a friend”.</p> <p>What most people seem to do is to simply say “yes”, on the theory that in Orkut-space, it’s relatively cheap. After all, it’s not like you’re giving them access to your TMI livejournal entries. In addition, the entire structure of the Orkut site is structured to encourage people to use a very loose, cheap definition of friendship. People with a large number of friends are featured prominently on other people’s network charts, where as people with few friends are on the fringes, or not listed at all. So a person who has a few, deep friendships are pushed to the margins, where as someone with hundreds of superficial friendships are pushed into the center. Wonderful.</p> <p>The one useful thing that I’ve found from Orkut is that it’s been a useful source for various people’s cell phone numbers, as well as other vaguely personal details that I hadn’t known about them. My theory is that this is because most people fill out the profile before they understand what “friendship” means in Orkut, and so they general tend to be a bit more willing to let information be available to their “friends”. Then when they get seduced into listing everyone and their brother/sister as friends, they don’t go back to edit down their profile to match their actual level of Orkut promiscuity.</p> <p>I’m still trying to figure out what I should do with my Orkut account at this point. Should I just give in, and say yes to everyone who claims me as a their friend? Should I be more discerning, and risk offending these people? Should I ask for my Orkut account to be removed? I’m not sure, but this quote from Marc Cramer’s <a href="http://blogs.it/0100198/2004/01/26.html#a2201">blog</a> is certainly where I’m leaning….</p> <blockquote> <p>I already know who my friends are, am not actively trying to get laid, and don’t need the “service” of having to risk offending near-strangers who want me to confirm some notional “friendship” between us a dozen times a day and I <em>certainly</em> can’t think of a good reason to entrust some commercial outfit with my personal relationship data.</p> </blockquote> First time in Tokyo! https://thunk.org/tytso/blog/2004/02/04/first-time-in-tokyo/ Wed, 04 Feb 2004 08:19:00 +0000 https://thunk.org/tytso/blog/2004/02/04/first-time-in-tokyo/ <p>I safely arrived in Tokyo yesterday afternoon, around 4:30pm local time. The purpose of the trip? To be a member of the U.S. Delegation to the Linux Rapporteur Group, which was commissioned by SC22 to study the question of whether or not ISO should start some Linux standardization work. I’m hoping the result will be the answer “<strong>no</strong>“, hence my attending this meeting.</p> <p>This trip will be a number of firsts for me; the first in Tokyo; the first time working with the ISO standards process; the first time to take a week-long “Atkins holiday”. (Well not completely — I’m still avoiding sugar-laden drinks and carb-rich snacks as much as possible — but the thought of trying to stay on a strict Atkins while in Japan is pretty much a complete joke.)</p> <p>I’m staying at the Rhiga Royal Hotel, and have found that indeed, Tokyo is an expensive place to stay. The hotel food was terrible, and quite expensive ($36 for the dinner buffet). So for lunch today, I ventured out to the Post Office, where I found an ATM machine which accepted by U.S. ATM card, and then went to a convenience store where I purchased a box lunch for $5, and a 1.5 liter bottle of Diet Coke for $2. Definitely much more reasonable…</p> <p>Fortunately the hotel has a pretty decent high speed Internet connection, so I can spend most of today catching up with work. It seems to be somewhat of a shame to spend it indoors, but (a) it’s raining, (b) I don’t have a local guide, and (c) I’m swamped to my eyeballs with work and other commitments. In two weeks, when I give a talk in Sheffield, I’ll be spending Valentine’s day with Stacey in London, and we’ll take a few days to do some sightseeing in England. But at least for this trip, no vacation or playing tourist for Ted…</p> Argh. Recovering from a sub-freezing house. https://thunk.org/tytso/blog/2004/01/10/argh-recovering-from-a-sub-freezing-house/ Sat, 10 Jan 2004 22:36:00 +0000 https://thunk.org/tytso/blog/2004/01/10/argh-recovering-from-a-sub-freezing-house/ <p>I’ve been away for the past 2.5 weeks, in Laguna Beach attending a family reunion combined with a cousin’s wedding, followed by a week staying with Stacey in the Bay Area. And as some of my gentle readers who live in the Northeast might know, it’s been a mite frosty in Boston this past week.</p> <p>So I came home to Medford last night, and found my house a wee bit chilly. As in reading 30 degrees (Farenheight, not Centigrade, unfortunately) at the thermostat. Sh*t.</p> <p>After a little investigation I determined that the breaker in my furnace’s burner had popped, and so my house had been unheated for probably the better part of the week. Oops. So I immediately turned off the main water shutoff, and reset the burner, and let the house warm up. In the meantime, with nothing else to do, I went to bed. At this point, the house is a toasty 68 degrees, and I have electric heaters blowing hot air into the crawlspace underneath the kitchen and underneath the kitchen sink, where it is still pretty chilly due to a lack of adequeate insulation in the kitchen and the un-insulated crawlspace.</p> <p>&lt;lj -cut text=&ldquo;Damage assessemnt&rdquo;&gt;As far as I can tell, the heating system mostly survived, since it is a single-pipe steam system, so there wasn’t much water in the pipes to begin with, and there was plenty of space for the water to expand. One or two radiator valves seem to be missing and are leaking minor amounts of steam, but I think they were probably doing that before this incident.<!-- raw HTML omitted --></p> <p>At this point, it looks like there are no problems in the basement. I can cut off the cold water runs to the kitchen and upstairs bath, and with the hot water cut off, I can turn on the main water main shutoff, and operate the basement water faucet, and the first floor toilet (which is above the basement) will fill and operate correctly.</p> <p>The washer hookups have burst, so I know there has been at least some damage to the plumbing. The real question is how much damage there is to the plumbing stack leading upstairs to the (one and only) full bathroom, and to the kitchen sink.</p> <p>For now, I’m keeping the water completely shut off, just in case, and waiting for the pipes to warm up. I’ve called in a plumber to do an estimate, but the earliest he can come is early Monday morning. Given that it seems that I can make the downstairs toilet work when I need to, and I can get water downstairs in the basement, the situation isn’t dire, but it sure isn’t pretty. At least there doesn’t seem to be any obvious water damage from any pipes bursting…</p> I might be able to get a pilot's license after all! https://thunk.org/tytso/blog/2004/01/10/i-might-be-able-to-get-a-pilots-license-after-all/ Sat, 10 Jan 2004 10:10:00 +0000 https://thunk.org/tytso/blog/2004/01/10/i-might-be-able-to-get-a-pilots-license-after-all/ <p>According to a friend of mine who is a flight instructor, people who can control their diabetes via diet alone can get their pilot’s license. Non-insulin dependent diabetics who take certain medications can still get their medical certificate, but it requires more FAA bureaucracy.</p> <p>Given that six months ago, I was able to control my blood sugar to normal levels for two weeks without medications, and that since then I have lost another ten pounds, there is very much definitely hope that I can claim that I can control my diabetes via diet alone. (Well, I suppose that’s not quite true; I’m controlling it via exercise as well —- both weight loss and exercise have definitely been shown to improve insulin sensitivity — and the FAA regulations don’t say anything about exercise.)</p> <p>I wasn’t planning to try the experiment of going off the medications again until I lost another 40 pounds and got to my goal weight, but this is definitely removes one of the reasons for my lack of motivation to resume flying lessons. Of course, I still have to find time, which will probably far more difficult problem to solve….</p> Back from the family reunion https://thunk.org/tytso/blog/2004/01/04/back-from-the-family-reunion/ Sun, 04 Jan 2004 05:19:00 +0000 https://thunk.org/tytso/blog/2004/01/04/back-from-the-family-reunion/ <p>So I’ve just gotten back from my family reunion in Lagnua Beach, (hopefully, I’ll have time to write about that, but I’m being realistic, probably not) and I’m going to be in the Bay Area for a few days, until January 9th when I fly back to Boston. So if folks are interested in seeing me, I have a number of lunches and dinner free. 🙂</p> The Eight Fallacies of Distributed Computing https://thunk.org/tytso/blog/2003/12/11/the-eight-fallacies-of-distributed-computing/ Thu, 11 Dec 2003 11:52:00 +0000 https://thunk.org/tytso/blog/2003/12/11/the-eight-fallacies-of-distributed-computing/ <p>RISKS digest recently posted a <a href="http://web.archive.org/web/20030208015752/http://java.sun.com/people/jag/Fallacies.html">link</a> to the following. It’s definitely worth repeating in as many places as possible.</p> <p><strong>The Eight Fallacies of Distributed Computing</strong></p> <p><strong>Peter Deutsch</strong></p> <p>Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.</p> <ol> <li>The network is reliable</li> <li>Latency is zero</li> <li>Bandwidth is infinite</li> <li>The network is secure</li> <li>Topology doesn’t change</li> <li>There is one administrator</li> <li>Transport cost is zero</li> <li>The network is homogeneous</li> </ol> <p><strong>EDIT</strong>: Added the first fallacy, which I missed when I first posted it: The network is reliable. Oops!</p> Ironing in hotel rools https://thunk.org/tytso/blog/2003/11/20/ironing-in-hotel-rools/ Thu, 20 Nov 2003 13:11:00 +0000 https://thunk.org/tytso/blog/2003/11/20/ironing-in-hotel-rools/ <p>It is really cool that hotels have ironing boards. It would be even cooler if they had (a) the small, narrow ironing boards for ironing sleaves, and (b) squirt bottles with starch solution. This is clearly asking for too much, however. 🙂</p> <p>(Am currently in Bay Area until Saturday morning, on a customer visit. And on Saturday, Stacey’s flying home with me to Boston for Thanksgiving!!)</p> Batches of patched batches of patches https://thunk.org/tytso/blog/2003/11/08/batches-of-patched-batches-of-patches/ Sun, 09 Nov 2003 02:25:00 +0000 https://thunk.org/tytso/blog/2003/11/08/batches-of-patched-batches-of-patches/ <p>I found the following from the Risks Digest, authored by Robert Bruce Thompson, and the following had me rolling on the floor:</p> <blockquote> <p>For years, the conventional wisdom has been that one can’t trust Microsoft software until version 3.0, and that apparently is true for their security patches as well. The middle of last month, with much fanfare, Microsoft went to their new scheme of releasing patches in batches once a month. A week or so later, they released batches of patches to those batches of patches. Now, they’re releasing batches of patches to the batches of patches to the batches of patches.</p> <p>For details, see:</p> <p><a href="http://www.esecurityplanet.com/prodser/article.php/3101901">http://www.esecurityplanet.com/prodser/article.php/3101901</a></p> <p>These batches and batches of patched patched patches are critical, so don’t ignore them. And, the way things are going, look for batches and batches of patched patched patched patches sometime next week.</p> </blockquote> Weekend Menu https://thunk.org/tytso/blog/2003/11/05/weekend-menu/ Wed, 05 Nov 2003 06:32:00 +0000 https://thunk.org/tytso/blog/2003/11/05/weekend-menu/ <p>I’ve been too busy to write this until now, but I want to remember the menu… very yummy and yet Atkins-compatible….</p> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <h2 id="friday">Friday</h2> <h3 id="breakfast">Breakfast</h3> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <h3 id="lunch">Lunch</h3> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <h3 id="dinner">Dinner</h3> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <h2 id="saturday">Saturday</h2> <h3 id="brunch">Brunch</h3> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <h3 id="dinner-1">Dinner</h3> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <h3 id="lunch-1">Lunch</h3> <p>Dim Sum at Peking Garden</p> <p>Stacey really seemed to like my cooking. IPNH!</p> Storage! https://thunk.org/tytso/blog/2003/10/24/storage/ Fri, 24 Oct 2003 21:59:00 +0000 https://thunk.org/tytso/blog/2003/10/24/storage/ <p>I’ve just taken delivery of 0.8 terabytes of hard drive, and it set me back less than $700. For some reason, this amuses me greatly.</p> Soviet iron balls exercise https://thunk.org/tytso/blog/2003/10/23/soviet-iron-balls-exercise/ Thu, 23 Oct 2003 18:21:00 +0000 https://thunk.org/tytso/blog/2003/10/23/soviet-iron-balls-exercise/ <p>The Wall Street Journal recently had an <a href="http://online.wsj.com/article/0,,SB106668571698929000.html">article about various forms of exercise “boot camps”</a>. They rated one of them, which use “kettlebells”, cast-iron weights used by the training regimen used by the Soviet military, as being “surprisingly intense” because the revewier’s t-shirt was drenched after 40 minutes of exercise. Heh. You call that intense? I can get my t-shirt drenched after 30 minutes of Dance Dance Revolution, and if I go on for a full hour, I’m literally dripping onto the dance pad….</p> <p>Which brings me to something which I’ve been wondering about for some time. Since I don’t frequent nightclubs where trance, hip hop, and other more modern forms of music are played, it’s made me wonder whether or not real examples of these genres really feature modulation (a musical technique where the composer shifts the music into a different key to add musical interest and variety). The music in a number of the DDR tracks do modulate, and so I’ve always assumed that it must not be very realistic, since I’ve always assumed that most of the modern hip hop, trance, etc. groups wouldn’t have had enough classical musical training to do that sort of thing.</p> <p>I’m reminded of how I always tended to like Weird Al’s songs that weren’t parodies, such as <a href="http://www.com-www.com/weirdal/melanie.html">Melanie</a>, simply because they were much more musically interesting — not just one, five, one, five chords with really boring bass lines. So I guess I’ve always assumed that most popular music were always devoid of any kind of real, traditional, musical complexity. Or am I just being too snobish?</p> The blood test results are in… https://thunk.org/tytso/blog/2003/10/02/the-blood-test-results-are-in/ Thu, 02 Oct 2003 20:09:00 +0000 https://thunk.org/tytso/blog/2003/10/02/the-blood-test-results-are-in/ <p>One of the advantages of having a father who is a doctor is that it’s easy to get blood tests done periodically. I just came back from visiting him in Chicago, and so I was able to get my HbA1C levels tested. The results? 5.2%, which is well within the normal range (4.6-6.2%)!!! The America Diabetes Association recommends a goal of under 7% for diabetics under treatment, and 9 months ago, I had a reading of 6.3%, which met that goal. But now, I have a reading which indicates that my average blood sugar level over the past two months has been no different than someone who is not diabetic. Very cool!</p> <p>Of course, that’s with me taking medication and dieting and watching what I eat — and diabetes is a chronic disease that will be with me for a lifetime. Even if I can someday manage to not require to take the medications and perhaps move to a less strict diet, I will probably have to watch my exercise levels and be careful what I eat for the rest of my life.</p> <p>In other news, my triglyceride levels are now normal (they haven’t been for as long as I can remember, due to a genetic defect; however the Atkins diet is really good for lowering triglyceride levels, and so that risk factor for a heart attack has been alleviated). Also, my liver function has apparently been better than they have been in years (ALT reading in the 20’s; before they were abnormally high at 160). So much for rosiglitzone being bad for my liver; in fact, due to my recent lifestyle changes, my liver has apparently never been happier. (As it turns out, the risk of liver toxicity by glitazones was never very high, especially with Avandia, and it probably is an individual genetic/metabolic issue, much like being allergic to penicillin.)</p> Fun and Games with IP Telephony https://thunk.org/tytso/blog/2003/09/27/fun-and-games-with-ip-telephony/ Sat, 27 Sep 2003 19:46:00 +0000 https://thunk.org/tytso/blog/2003/09/27/fun-and-games-with-ip-telephony/ <p>I’ve recently decided to replace my 2nd telephone line with an IP telephony line from <a href="http://www.vonage.com">Vonage</a>. There are a couple of really nice features with this service. First of all, the service is really cheap. $24.99/month buys you unlimited local/regional service, and 500 minutes of long distance service. If you go over the 500 minutes, the cost is only 3.9 cents a minute. International calls are also quite reasonable. (5 cents to call Europe, 6 cents/minute to call Tokyo, Sidney, etc.)</p> <p>Secondly, the service uses a very small box (the Cisco ATA-186) which can fit in my laptop bag; it’s only a little bigger than a portable CD player. So anywhere I have network connectivity, I can have my the telephone line ring me. I’m currently sitting in the Admirals Club Lounge at Logan, and I was able to use the service via T-Mobile wireless access (via my laptop which acted as a NAT proxy). I can also set up the service such that if my ATA-186 isn’t on the network, the system will automatically forward my call to my cell phone.</p> <p>There are other nice features as well, such as two Vonage customer can basically chat with each other indefinitely for free, and being able to set up a secondary phone number in some other part of the country so that friends/family in that part of the U.S. can call your phone using a local number.</p> <p>There are some downsides. Currently, the talk path is *not* encrypted so someone who is sitting on the network path between you and Vonage, and who knows how the reconstruct SIP packets, and very easily tap all your phone conversations. On the other hand, it’s not that much harder to tap physical analog lines as well. The place where it’s really problematic is when you’re plugged into a blatantly insecure network, such as a conference/show network. On the other hand, IPSEC to a less publicaly accessible subnet will do much to mitigate this risk. (Next on my to do list — to set this up). Also, the unit also requires a transformer which is a pain to pack. Fortunately the unit seems to use only “+5V, so I’m thinking I might be able to power the unit from the laptop’s USB port.</p> Halfway there! https://thunk.org/tytso/blog/2003/09/24/halfway-there/ Wed, 24 Sep 2003 17:42:00 +0000 https://thunk.org/tytso/blog/2003/09/24/halfway-there/ <p>For the last two days, my weight has been below 220 pounds. This is Goodness! This means that I have lost a little over 40 pounds since I diagnosed myself with type II diabetes, and have another 40 pounds to go before I’m at the “healthy” weight as defined by insurance tables. When I reach that point, I will try discontinuing my medications, and see if I can maintain my blood sugar levels using only diet and exercise. I accidentally was forced into trying this experiment 3 months and 15 pounds ago when I forgot to bring my meds to the San Antonio Usenix; I was off the medications for two weeks, and my blood sugar levels remained stable after being off my medications (Avandia and Glucophage) for two weeks. Hopefully this means that I caught things early enough, before my pancreas was too far gone, and when I reach my goal weight, I’ll be able to go off the medications long-term, so I can pass the physical required for the private airplane pilot’s test. (There are some interesting preliminary research results that indicate that the pancreatic cells in mice may be able to regenerate/recover given time and when they are put under less stress. I’m hoping this turns out to be true for me as well, since I hope I never need to go onto insulin therapy…)</p> <p>So far, the weight loss has been slow, but more or less steady, at least over the long term. It averages about five pounds a month, with some plateaus in between. However, I can live with this. I didn’t gain all of this weight in a few months, and I’m not going to lose it all in a few months, either.</p> <p>Just yesterday I found some old suits and jackets from when I was in high school. They almost fit me again! They’re still a little tight, but another 10 pounds or so should take care of that. Now all I have to do is find a tailor who can modify some of my current suits, including a custom-made suit which I got in Singapore, during the days of the dot com boom, when VC’s were gullible and money flowed like water….</p> Quick meals https://thunk.org/tytso/blog/2003/09/11/quick-meals/ Thu, 11 Sep 2003 18:53:00 +0000 https://thunk.org/tytso/blog/2003/09/11/quick-meals/ <p>A <a href="http://www.livejournal.com/users/cjsmith/268970.html">recent post</a> by <!-- raw HTML omitted --> inspired me to write about one of my recent culinary strategies. Well, maybe culinary isn’t the right word; it’s not gourmet cooking, but it’s fast, easy, and pretty tasty.<!-- raw HTML omitted --></p> <p>What I’ll do on the weekend, often on Sunday afternoon or evening, is to get 3-4 pounds of ground beef (usually 85% lean), and three large (spanish) onions. The onions get chopped, and cooked until soft in a large skillet or wok using some Joyce Chen Savory Stir Fry Oil. (My mom would mince garlic and ginger by hand, and then add that to normal cooking oil, but I’m lazy(tm), and it’s a lot easier to use the Joyce Chen’s premade mix.) Once the onions are soft, I add the ground beef, mix it well with the onions, and then stiring frequently, cook until the ground beef is crumbly and well browned. While cooking, I’ll add a generous amount of freshly ground pepper and Worcestshire sauce to taste, and when the beef is almost completely cooked, I’ll take about 4 ounces of dry sherry, add 2-3 teaspoons of flour, mix well, add the mixture to the skillet, and let it come to a boil to thicken up joices that have been released by the cooking beef. Once it is cooled, the cooked ground beef will fit in three or four 32oz yogurt/cottage chese containers, and it will be good for a week or so of quick meals.</p> <p>For lunch or breakfast, I’ll just put some of the ground beef in a bowl and microwave, adding some combination of (a) spaghetti sauce, (b) grated sharp cheddar cheese (pre-grated from the grocery store, again because I’m lazy as all hell), or (c) sour cream. When I add the sour cream, I’ll do it after the meat has been microwaved; it ends up tasting vaguely russian, and quite yummy, either with or without some cheddar chese melted into it.</p> <p>The nice thing is that it’s all Atkins/South Beach/low-carb compatible, and because I can mix in flavors (the cheese, sour cream, etc), it’s different enough that I don’t get bored. And thanks to the miracle of the microwave, it takes less time than going out to eat. So if I’m not going to socialize, and am just going to be eating alone (especially for lunch), it works very well indeed.</p> friends_looking_for_work–; https://thunk.org/tytso/blog/2003/09/10/friends_looking_for_work/ Wed, 10 Sep 2003 20:42:00 +0000 https://thunk.org/tytso/blog/2003/09/10/friends_looking_for_work/ <p>So my friend Stacey received a job offer this week, and her employer is paying for to go the <a href="http://www.geekcruises.com/home/ll3_home.html">Geekcruise</a> next week. It’ll definitely be nice to have her along on the cruise. And I’ve set things up so that she, Phil Karn and his wife, and I will be seated together at the dining room. Very Cool.</p> <p>Now, to convince more of my friends to partake of the Geekcruise next year….</p> Bicycling again https://thunk.org/tytso/blog/2003/09/07/bicycling-again/ Sun, 07 Sep 2003 04:38:00 +0000 https://thunk.org/tytso/blog/2003/09/07/bicycling-again/ <p>I went bicycling for three hours today, going through Winchester, Arlington, Lexington, and Bedford for a total of 32 miles. Given that this is the longest I’ve ridden in probably at least 7-8 years, I’m surprised how well my bicycling muscles seem to have survived intact.</p> <p>My bicycle seems to have been in pretty good shape. I had Ace Wheelworks give it a checkup, and it came back with a clean bill of health. Looking at some of the other bicycles, I can see some new technologies (in particular newer/easier to use shifters), that wasn’t available when Karen helped me configure my bicycle, ten years ago, but on the whole, bicycle technology hasn’t advanced greatly in the past decade. Compared to say, laptops or digital cameras, which become obsolete within a year or two, it’s a nice change.</p> Insulin level hacking https://thunk.org/tytso/blog/2003/08/24/insulin-level-hacking/ Sun, 24 Aug 2003 16:08:00 +0000 https://thunk.org/tytso/blog/2003/08/24/insulin-level-hacking/ <p>I’ve been measuring my weight, body fat, blood pressure/pulse, blood sugar, amount of exercise, and amount of sleep every morning, and I’ve found it useful and interesting to be paying attention to this level of data on a continuing basis. It’s pretty clear for example, that exercise has direct correlation to my morning fasting blood sugar levels. If I don’t do much exercise (only 30 minutes a day once or twice a week), keeping all else (diet, mediciation, etc.) constant, my morning blood sugar levels are between 100 and 110. If I am actively exercising (&gt; 45 minutes most days of the week), my morning blood sugar levels decline to the low 90’s.</p> <p>One experiment which I want to carry out soon: I recently read in the book, The Carbohydrate Addict’s Healthy Heart Program, that recent research has shown that the taste of sugar (or in some people, merely <em>thinking</em> about eating something sweet) can trigger the release of insulin. That’s interesting, because it’s the first time I’ve heard a scientific explaination the empirical claims made by some that diet drinks are actually are counter-productive because they can cause people to eat more. If the theory that drinking something that tastes sweet stimulates insulin release is true, then drinking a diet soft drink is playing a dirty trick on your body. It tastes sweet, but there is no actual sugar there — so when the insulin is released, your blood sugar drops, and then you get hungry and want to eat something, and the next thing you eat might not be as non-caloric as the diet soft drink.</p> <p>Hmmm…. well, this theory is easily tested. I will just do the equivalent of a glucose tolerence test, but with a cup of Fresca instead, and perhaps a bit more frequently right after administering the dose of Fresca. So starting in the morning, before I’ve eaten anything else, I’ll take my fasting morning blood sugar level. I’ll then drink a cup of Fresca, and measure my blood sugar 5, 15, 30, 60, 90, and 120 minutes after administering the dose, and plot the response curve. If there’s a severe dip in the blood sugar after drinking the diet soda, well, that would tend to confirm this theory about sugar substitutes ultimately proving to be counterproductive, at least for me. (And if true, this would <strong>suck</strong>, big time. But I’d rather know rather than be ignorant and having my blood sugar levels fluctuating all the time because of overuse of sugar substitutes.)</p> Hacking in a Starbucks https://thunk.org/tytso/blog/2003/08/13/hacking-in-a-starbucks/ Thu, 14 Aug 2003 03:08:00 +0000 https://thunk.org/tytso/blog/2003/08/13/hacking-in-a-starbucks/ <p>I know, lots of people have done this before me — I’m behind the times, so sue me — but it really is nice to be sitting in a Starbucks (I’m currently in the one in Arlington Center) hacking on a laptop, while sitting at a table watching the traffic and pedestrians go by on Mass. Ave. It makes a nice change from working at home…</p> All hail the Patriot Act…. https://thunk.org/tytso/blog/2003/07/30/all-hail-the-patriot-act/ Wed, 30 Jul 2003 06:26:00 +0000 https://thunk.org/tytso/blog/2003/07/30/all-hail-the-patriot-act/ <p><a href="http://atlanta.creativeloafing.com/2003-07-17/rant.html">Be careful what you read in public…</a></p> Triggers in religous rituals https://thunk.org/tytso/blog/2003/07/13/triggers-in-religous-rituals/ Mon, 14 Jul 2003 03:13:00 +0000 https://thunk.org/tytso/blog/2003/07/13/triggers-in-religous-rituals/ <p>A friend took me to a Unitarian Universalist church service, and one of the things which I noticed about that particular service (I don’t know how representative it is of all UU churches or services) was the notable lack of what I can only term as “trigger words” used in their worship service.</p> <!-- raw HTML omitted --> <p>Perhaps the best way to describe it is by example. In my tradition, a very common pattern to start a prayer is for the worship leader to say, “The Lord be with you”, to which the response (said by the entire congregation) is “And also with you”, which in turn is followed by “Let us pray” and the actual prayer itself. This is a very common “design pattern”, which is used in many different contexts; perhaps at least 2 or 3 times in every Sunday service. The response is so automatic that sometimes it is used at retreats or at church meetings to call a gathering of people to order. The worship leader need only to say, “The Lord be with you” loudly, and everyone will instantly stop talking and respond “And also be with you”. These sets of phrases act almost like a post-hypnotic trigger, helping everyone to enter into the right frame of mind to begin a prayer.<!-- raw HTML omitted --></p> <p>At the UU service that I intended, there was a very little of anything that I could could serve as these sorts of triggers. Instead, the leader said something like, “we will now offer up any joys and concerns”; and at the end of the service, she simply said, “This service is now concluded”. (In contrast, in an Episcopal service, a service might be concluded with “Let us go forth rejoicing in the power of the Spirit. Alleluia, alleluia”, to which the response would be, “Thanks be to God. Alleluia, alleluia”.)</p> <p>Participating in a worship service that didn’t have these triggers caused me to see how much I had gotten used to them as a way to help me enter into the different parts of a worship service. I suspect I could get used to a different set of triggers, but the traditional Episcopal triggers have been programmed in my having attended hundreds if not thousands of services throughout my life. Perhaps that’s one of the reasons why attempts to change the Episcopal liturgies in ways that radically change or restructure these trigger phrases are met with quite a bit of resistance. Sometimes they are necessary, when our understanding of theology has changed over time, but these triggers seem to speak to us at a level that goes beyond rationality or theology.</p> <p>That’s not to say that the UU service had no such triggers. At the beginning of the service, they did ring a bell three times, in what was very clearly intended to be a call to prepare for worship. And shortly after that, a candle which was floating in a chalice was lit, serving a similar purpose. But aside from that, most of the rest of the service spoke to the head, with very little that sparked an ineffable sence of the holy.</p> <p>I chatted with my friend afterwards, and she told me that this wasn’t an accident. According to her, many Unitarians apparently don’t like that kind of liturgy. Perhaps they are seen as “magic words” to folks that prefer a strict sense of rationality.</p> <p>A few months ago, when planning our Easter Eve service at our church, the traditional “lighting of the new fire” was replaced with a different framework. Traditionally, the “new fire” is lit while the congregation is sitting in complete darkness, holding unlit candles. Once it is lit, the bright fire in the back of the church is used to light the Pascal candle, and from that central candle, the fire is passed along to everyone in the congregation, so that by the time Easter Eve processional begins, there is a very strong contrast between the darkness at the very beginning of the service, to one where the church is lit from everybody’s candles — from hundreds of points of light, all stemming from the “new fire”. It represents the coming of Light to the world, and then the spreading of that light from one person to another, pushing back the darkness. To me, it is a very special part of the Easter Eve service.</p> <p>In one of the explanations for why the traditional “new fire” liturgy was replaced, it was put down by dismissively by calling it a “magic fire”. I missed it, and I think I now know why — to me, <strong>the magic is important</strong>. It speaks to a part of me and fills a need in me that goes beyond rationality. And in this world that tends to celebrate the intellectual side of things beyond all others, that’s something which is incredibly valuable to me.</p> OSCON 2003 has a sucky network! https://thunk.org/tytso/blog/2003/07/07/oscon-2003-has-a-sucky-network/ Mon, 07 Jul 2003 23:47:00 +0000 https://thunk.org/tytso/blog/2003/07/07/oscon-2003-has-a-sucky-network/ <p>The networking at the O’Reilly Open Source Conference seems to be up about half time, and down half the time. And when it’s up, it’s corrupting packets so frequently that ssh connections die after a few minutes, and imap-ssl download connections die after downloading 2-4 messages, thanks to checksum errors. LAME…</p> Cool essay about technical- and social-engineering https://thunk.org/tytso/blog/2003/07/07/cool-essay-about-technical-and-social-engineering/ Mon, 07 Jul 2003 04:53:00 +0000 https://thunk.org/tytso/blog/2003/07/07/cool-essay-about-technical-and-social-engineering/ <p>I recently came across <a href="http://shirky.com">Clay Shirky’s</a> essay, <a href="http://shirky.com/writings/group_enemy.html">A Group is Its Own Worst Enemy</a>, which talks about social dynamics, and challenges faced by on-line groups created by various technologies (Usenet, weblogs, etc.) It’s definitely worth a read; there’s a lot to think about.</p> Atkins Diet https://thunk.org/tytso/blog/2003/07/06/atkins-diet/ Mon, 07 Jul 2003 02:53:00 +0000 https://thunk.org/tytso/blog/2003/07/06/atkins-diet/ <p>At this point I’ve been on the Atkins diet for a month, and I’ve lost ten pounds. I know it’s fairly controversial amongst some medical circles, but it seems to work pretty well for me, which is cool.</p> <p>I got started on it when I arrived in San Antonio for Usenix, and realized that I had very cleverly forgotten to bring any of my diabetic medications. Since I had managed to go off the meds for half a week without ill effects back in January when I had similarly forgotten to pack them when visiting Israel, and since I had been meaning to try out the Atkins diet anyway, I figured this was a good time to try it out.</p> <p>When I came back home two weeks later, I was pleased to find that (a) I had lost five pounds, and (b) despite having been off the medications for two weeks, my morning fasting blood sugar was normal and under control.</p> <p>I went back on the meds when I got back home; no sense stressing my pancreas. But I figure that when I get to my ideal weight, I’ll try to go off the medications long term, and then try a glucose tolerance test with insulin levels, to see how healthy my blood sugar response really is. (The latest research seems to show that it may be possible for the pancreatic cells to regenerate, with appropriate support — which includes diet, exercise, and drugs.)</p> <p>There may be hope for me getting a private pilot’s license yet!</p> The simple things that make a geek happy…. https://thunk.org/tytso/blog/2003/03/08/the-simple-things-that-make-a-geek-happy/ Sat, 08 Mar 2003 06:14:00 +0000 https://thunk.org/tytso/blog/2003/03/08/the-simple-things-that-make-a-geek-happy/ <p>Whee! A quick ten minute hack involving some left-over X-10 hardware,</p> <p>“apt-get install heyu”, a quick edit of a configuration file, and I</p> <p>can now remotely reboot my kernel crash and burn test machine, even if</p> <p>it’s completely wedged, by the simple set of commands:</p> <p>heyu turn computer off</p> <p>heyu turn computer on</p> <p>I am so pleased with myself.</p> <p>I am such a geek.</p> The Duras Sisters https://thunk.org/tytso/blog/2003/03/06/the-duras-sisters/ Fri, 07 Mar 2003 02:37:00 +0000 https://thunk.org/tytso/blog/2003/03/06/the-duras-sisters/ <p>The last time I visited my friend Leonard Zubkoff, he gave me a batch of CD’s back from when he was doing professional recording of filk groups. Being all-too-busy, I never had a chance to listen to them all, which was a shame, since I never had a chance to tell him how good they all. I recently started listening to “Masquerading as Human”, by a three women acapella Filk group called “The Duras Sisters”. It’s really excellent! Even though Leonard was just the recording engineering, I can hear his hand in the album, and certainly it reminds me of his sense of humor.</p> <blockquote> <p>We have kitties, and when they’re hungry</p> </blockquote> <blockquote> <p>They bellow “meow,” bellow “meow,” bellow “meow, meow, meow!”</p> </blockquote> <blockquote> <p>We have kitties, and when they’re hungry</p> </blockquote> <blockquote> <p>They really let us know.</p> <p>They leap upon us and lick our fingers</p> </blockquote> <blockquote> <p>And bellow “meow,” bellow “meow,” bellow “meow, meow, meow!”</p> </blockquote> <blockquote> <p>They leap upon us and lick our fingers,</p> </blockquote> <blockquote> <p>How shamelessly they plead.</p> </blockquote> <blockquote> <!-- raw HTML omitted --> </blockquote> <blockquote> <p>Out in the kitchen where all the food is</p> </blockquote> <blockquote> <p>They bellow “meow,” bellow “meow,” bellow “meow, meow, meow!”</p> </blockquote> <blockquote> <p>Out in the kitchen where all the food is</p> </blockquote> <blockquote> <p>They pace the floor and howl.<!-- raw HTML omitted --></p> <p>The hungry kitties have stopped complaining</p> </blockquote> <blockquote> <p>No bellow “meow,’ bellow “meow,” bellow “meow, meow, meow!”</p> </blockquote> <blockquote> <p>The hungry kitties have stopped complaining,</p> </blockquote> <blockquote> <p>And we’d better find out why.</p> <p>We discover they’ve found the pot roast</p> </blockquote> <blockquote> <p>Bellow “meow,” bellow “meow,” bellow “meow, meow, meow!”</p> </blockquote> <blockquote> <p>We discover they’ve found the pot roast</p> </blockquote> <blockquote> <p>That we left out to thaw.</p> <p>We’ll order pizza from our favorite restaurant</p> </blockquote> <blockquote> <p>Bellow “meow,’ bellow “meow,’ bellow “meow, meow, meow!”</p> </blockquote> <blockquote> <p>We’ll order pizza from our favorite restaurant,</p> </blockquote> <blockquote> <p>A place called “Bella Chow!”</p> <p>Words by Cynthia McQuillin; music traditional.</p> </blockquote> <p>There’s going to be a memorial service for Leonard in the Bay Area at the end of this month (on March 29th). Playing some of the albums which Leonard recorded will definitely be a fitting tribute.</p> Ghastly Catonese access https://thunk.org/tytso/blog/2003/02/12/ghastly-catonese-access/ Wed, 12 Feb 2003 05:31:00 +0000 https://thunk.org/tytso/blog/2003/02/12/ghastly-catonese-access/ <p>It’s 20 minutes into the hour, which means if I start watching Buffy the Vampire Slayer now on my TiVO, I won’t run out of show when I fast forward past all of the commercials. (TV networks of the world, shudder in fear; the Tivo changes everything.)</p> <p>My initial observation from watching the intro “teaser”…. if you’re going to try to have the “potential slayer” from Hong Kong try to speak Cantonese, either don’t bother, or dub her over with someone who can actually speak the language properly…. (An example of a movie where did this right: Big Trouble in Little China, where they very clearly used actors from Hong Kong.)</p> Catching up on Live Journal https://thunk.org/tytso/blog/2003/02/11/catching-up-on-live-journal/ Wed, 12 Feb 2003 01:41:00 +0000 https://thunk.org/tytso/blog/2003/02/11/catching-up-on-live-journal/ <p>This past week has has been amazingly insane, so I haven’t had the chance to read LJ at all. Things aren’t better in that regard, although I have been making progress on some of the items on my todo list…. but I needed a break, so I took some time off and read through seven days worth of LJ entries all at once.</p> <p>One of the things which really struck me after doing all of this reading is how much so many of the entries relate to feelings, concerns, in my own life. From folk’s struggling/angsting over love, money, life goals, etc., to the (admittedly rarer) entries about life’s successes and joys, it really shows that in the many ways that count, there are so many ways in which are hopes and dreams are all the same. The love and compassion that this inspires me to feel towards others also spills over to myself, and that’s a good thing.</p> <p>So why don’t I post more often? Why am I not willing to reveal myself to others in the same way that many of the people on my friends list are willing to do to others? Partially, it’s because I’m too busy, and if I’m going to post an entry, I’m liable to want to spend a lot of time polishing it until I’m satisfied. Partially, it’s because I’m a bit more of a private person, and sharing on a public forum doesn’t come easily to me. This sometimes makes me feel a bit like a voyeur at a party who looks at others interacting, but for whatever reason doesn’t feel comfortable joining in. What to do about it? I’m not sure. But naming and identifying the issue is certainly the first step…</p> Sacred the Body https://thunk.org/tytso/blog/2003/01/29/sacred-the-body/ Wed, 29 Jan 2003 12:29:00 +0000 https://thunk.org/tytso/blog/2003/01/29/sacred-the-body/ <p><!-- raw HTML omitted --><!-- raw HTML omitted --></p> <p>Sacred the body God has created,</p> <p>temple of Spirit that dwells deep inside.</p> <p>Cherish each person; nurture relation.</p> <p>Treat flesh as holy, that love may abide.</p> <p>Bodies are varied, made in all sizes,</p> <p>pale, full of color, both fragile and strong.</p> <p>Holy the difference, gift of the Maker,</p> <p>so let us honor each story and song.</p> <p>Love respects persons, bodies and boundaries.</p> <p>Love does not batter, neglect or abuse.</p> <p>Love touches gently, never coercing.</p> <p>Love leaves the other with power to choose.</p> <p>Holy of holies, God ever loving,</p> <p>make us your temples; indwell all we do.</p> <p>May we be careful, tender and caring,</p> <p>so may our bodies give honor to you.</p> <p>Written by Ruth C. Duck</p> Have you lost weight? https://thunk.org/tytso/blog/2003/01/22/have-you-lost-weight/ Wed, 22 Jan 2003 18:25:00 +0000 https://thunk.org/tytso/blog/2003/01/22/have-you-lost-weight/ <p>Wow. Twice this past week, someone has asked me if I’ve lost weight, and commented that I looked a lot better. I have lost 20 pounds in the last couple of months, and I have lost about two inches in the waistline, but I didn’t think that I my looks had actually changed that much, or that the weight loss was noticeable.</p> <p>Whee!!</p> Home again https://thunk.org/tytso/blog/2003/01/10/home-again/ Fri, 10 Jan 2003 23:10:00 +0000 https://thunk.org/tytso/blog/2003/01/10/home-again/ <p>Last night, I flew back from Israel, leaving from Tel Aviv at 1am, and arriving in JFK at 6:30am, and by 10:30am I was back home. Woo hoo!</p> <p>Now I just need to exercise, shower, and then repack so I can drive down to Cape Code. Diocesan Council is having an off-site meeting/retreat tonight and Saturday. With any luck, I won’t even need to drink a lot of Coffee to keep myself awake; I seem to have gotten enough sleep on the plane, and after being in Israel for only three days, it appears I didn’t have enough time to completely time shift.</p> In Tel-Aviv… https://thunk.org/tytso/blog/2003/01/07/in-tel-aviv/ Tue, 07 Jan 2003 22:27:00 +0000 https://thunk.org/tytso/blog/2003/01/07/in-tel-aviv/ <p>So I’m in Tel Aviv, to give a presentation for IBM Israel. Richard Stallman was also supposed to show up, but he left a one line message saying he couldn’t make it for some reason (although he would show up in Haifa the following day). This has the conference organizers in a bit of a frenzy.</p> <p>Unfortunately I won’t have much opportunity to do any sight-seeing. Due to corporate security restrictions, I’m not allowed to do any sight-seeing, and technically I’m not supposed to go to any restaurants other than the hotel one. But if the locals take me some place, I’ll assume that it’s safe….</p> <p>I found the following poem by W.H. Auden in a magazine I picked up as reading material for the flight to Tel Aviv. I thought it pretty much summed up my social life for the last couple of years, for better or for worse. I’m not sure whether or not that’s good or not, though….</p> <p>Looking up at the stars, I know quite well</p> <p>That, for all they care, I can go to hell,</p> <p>But on earth indifference is the least</p> <p>We have to dread from man or beast.</p> <p>How should we like it were stars to burn</p> <p>With a passion for us we could not return?</p> <p>If equal affection cannot be,</p> <p>Let the more loving one be me.</p> MS Exchange: Oh, the horror https://thunk.org/tytso/blog/2002/08/16/ms-exchange-oh-the-horror/ Fri, 16 Aug 2002 06:19:00 +0000 https://thunk.org/tytso/blog/2002/08/16/ms-exchange-oh-the-horror/ <p>I just spent 3 hours at the Episcopal Diocese fighting with MS Exchange 5.5.</p> <p>Imagine if you will a program whose error reporting capabilities are roughly the equivalent of Kerberos V5, except you don’t get source you can figure out what it’s upset about….</p> <p>I’d switch them over to Linux, except that the staff are all addicted to the e-mail/calendar integration which MS Exchange provides. Sigh….</p> Some (obvious) culinary observations… https://thunk.org/tytso/blog/2002/08/11/some-obvious-culinary-observations/ Sun, 11 Aug 2002 21:14:00 +0000 https://thunk.org/tytso/blog/2002/08/11/some-obvious-culinary-observations/ <ol> <li>It is a really good idea to label kitchen containers</li> <li>10X confectioner’s sugar and flour can look very similar when you’re in a hurry</li> <li>However, confectioner’s sugar is <strong>not</strong> an adequate substitute for flour when making banana bread…</li> </ol> Why do I hate Microsoft? Let me count the ways…. https://thunk.org/tytso/blog/2002/08/05/why-do-i-hate-microsoft-let-me-count-the-ways/ Mon, 05 Aug 2002 06:04:00 +0000 https://thunk.org/tytso/blog/2002/08/05/why-do-i-hate-microsoft-let-me-count-the-ways/ <p>For various reasons, I’ve had to deal with a large number of Microsoft systems (and Microsoft problems) a lot recently. And of course, it’s been frustating as all hell. But after having fighting through a large number of different problems, I’ve come to some conclusions about how and why it’s been so frustrating to me.</p> <p>The fundamental problem is that there are no real diagnostic tools which are avilable. Under Linux, if something strange happens, I can look at the various syslog files, or look at a ps listing to see what a process is doing, or in an extreme case, use lsof or strace to see what’s going on.</p> <p>With Windows, if an a Windows Internet Explorer service pack 2 install hangs at 88% for 10-15 minutes, there’s not much I can do other than let it sit, or cancel it. There are no tools to figure out what the heck is going on.</p> <p>Or if the ethernet interface on my Windows laptop suddenly stops functioning, and the device manager simply says, “there was an error initializing the device driver”, I have absolutely no idea what actually was wrong, or how to fix it. All I could do was to try several times to remove the network device, and then rebooting, and hoping Windows would notice the new hardware, and attempt to do something sane with this. Why it suddenly started worked after the third time I tried doing this, and not after the first or second time, I have no idea.</p> <p>All of this was summed up by a friend at a BBQ as follows: “With Unix, you know you’ve found the problem before you fix it. With Windows, you don’t know that you’ve found the problem until after you’ve fixed it.” (And sometimes after you’ve fixed it, you still don’t know what the problem was.)</p> <p>There is an old joke in the BSD fortune file about Brian Kernighan’s car: its only instrument is a big question mark on the dashboard, which lights when something goes wrong. According to the joke, Dr. Kernigham explained this by saying: “The experienced driver will know what’s wrong.” What I’ve found is this is actually far more appropriate for Windows than Unix. For anything other than most routine problems, Unix systems have far better diagnostics available to me than under Windows.</p> Temptation strikes… https://thunk.org/tytso/blog/2002/08/02/temptation-strikes/ Sat, 03 Aug 2002 02:15:00 +0000 https://thunk.org/tytso/blog/2002/08/02/temptation-strikes/ <p>I’ve recently been reading about <a href="http://www.powerchutes.com/swan.asp">powered parachutes</a> (also known as PPC’s), and they are very, very tempting! I’ll want to get demo flight first, of course, but I can see myself dangerously close to dropping $15,000 to get myself one of these babies.</p> <p>A PPC is basically a three-wheeled go-cart with a large fan attached on the back, and a parachute, which acts as the wing/airfoil for the aircraft — hence the name, “powered parachute”. It’s considered one of the safest aircraft around — if the engine quits, the parachute is already deployed! Another advantage is that they’re a lot cheaper than traditional fixed-wing aircraft — only $12,000 to $15,000 new. In comparison, a new Cessna Skyhawk is between $150,000 and $172,000.</p> <p>Speaking of costs, since they’re considered an ultralight by the FCC, you don’t need a private pilot’s license to fly one. Typically only three hours worth of instruction is necessary before you solo. That’s because they’re very easy to fly. There are only two controls: rudder foot pedals, which are turn the PPC left and right, and a throttle which controls altitude (and not airspeed — the airfoils are designed so that whether the engine is idling or at full power, the PPC always flies at a constant airspeed). There are no flaps or aerilons, or anything else!</p> <p>They do fly much more slowly (a constant 26-30 MPH, depending on the PPC model), so they’re not practical for getting from point A to point B. On the other hand, a low-end fixed wing aircraft isn’t all that practical for transportation either — and general aviation is generally never cost-effective. People fly for the joy of flying, and a PPC seems to be a nice, cheap way of doing effectively that!</p> <p><a href="http://www.flychutes.com">For more information about PPC’s, here’s a dealer in the Massachusetts area.</a></p> At home with me and my dad… https://thunk.org/tytso/blog/2002/07/28/at-home-with-me-and-my-dad/ Sun, 28 Jul 2002 19:17:00 +0000 https://thunk.org/tytso/blog/2002/07/28/at-home-with-me-and-my-dad/ <p>After a long and intense week in Austin (where we doing planning and prioritizing for about 200 folks for the next 100 days until the 2.5 Linux kernel feature freeze), I’m spending a couple of days in Chicago visiting my dad. (Ever since Mom died, I’ve been trying to spend more time visiting Dad; her death has reminded me how little time I might be able to have with my parents, so I should treasure them while they’re here.)</p> <p>Yesterday, I did some telephone rewiring so that the DSL modem would be stable. This way, I should be able to visit my Dad more often, and be able to work from his house in Libertyville. I also got to see my nephew Justin. He’s started walking much more confidently now — it’s amazing to see how much he’s grown since just three weeks ago.</p> <p>And now, it’s off to visit some of my father’s colleagues/friends at a Sunday morning brunch.</p> Jenny Jones: Brilliant and intelligent women unable to get dates? https://thunk.org/tytso/blog/2002/07/13/jenny-jones-brilliant-and-intelligent-women-unable-to-get-dates/ Sat, 13 Jul 2002 21:08:00 +0000 https://thunk.org/tytso/blog/2002/07/13/jenny-jones-brilliant-and-intelligent-women-unable-to-get-dates/ <p>Yesterday evening, I was paging through my TiVo’s “Now Playing List” when I found that my faithful Tivo (who was well aware of my preference for shoows like Buffy, Farscape, Hogan’s Heroes, Star Trek, etc.) had somehow decided that I might like Jenny Jones, which appears to be a daylight talk show. Oh, the shame — must find the thumbs down button on my remote fast!</p> <p>Anyway, the particular Jenny Jones show which the TiVo had recorded had the description, “Beautiful and intelligent women say they are unable to get dates.” Against my better judgement, I hit the play button. This was partially with the same kind of macabre fascination that draws onlookers to fatal car crashes; but it was also partially because I had trouble believing that smart and pretty women would really have problems finding dates. After all, I’ve been looking for one who’d be willing put up for me for quite a while, and from what I can tell, most of the smart and pretty women in the Boston area are either (a) taken, or (b) have no problem finding dates whatsoever.</p> <p>The feeling that I might volunteer to help these poor souls quickly died, however, the moment they were called on stage. Were they beautiful? Perhaps, if you like the huge-amounts-of-makeup look. And there was no denying that they were extremely large-busted, although I wasn’t entirely sure they were all natural.</p> <p>But then the quizmaster, who was dressed in stereotypical geek costume (complete with masking tape on his glasses), came on and started asking questions to “prove” that these allegedly college-educated women were actually smart. Questions like: “What’s the square root of 64?” and “What does the acronym CPR stand for?” — both of which one of the women couldn’t answer!</p> <p>What was worse, however, was the woman who was declared smart because she was able to successfully manage to answer the questions: “What does the E.P.A — as in the federal agency — stand for?” and “What natural resource is used to make paper”?</p> <p>I weep for the state of American culture.</p> The Blessing Path https://thunk.org/tytso/blog/2002/07/12/the-blessing-path/ Fri, 12 Jul 2002 07:58:00 +0000 https://thunk.org/tytso/blog/2002/07/12/the-blessing-path/ <p>I used the following excerpt for a spiritual reflection I led for a vestry meeting. It comes from a book by William John Fitzgerald, entitled <strong>Blessings for the Fast Paced and Cyberspaced</strong>. I really liked it, so I decided to include it here.</p> <blockquote> <!-- raw HTML omitted --> </blockquote> <pre><code>above the mountain it rises and my heart dances. </code></pre> <p>Now the light comes, the light that makes me one with all life. Like the tinamou I am, who sings in the dawn, who is humble with love, Who walks in the circle of the greater love and the greater power. &ndash; &ldquo;A Song Heard in the Dawn&rdquo;<!-- raw HTML omitted --></p> <p>In their daily walking, Native Americans enter the “circle of a greater power.” And the Navaho sing and speak of walking a “blessing path.” But in our modern fast paced, cyberspace culture, we disdain “going around in circles.” We move straight forward — racing ahead frantically, never really arriving because once we think we have arrived, we realize we are behind someone, somewhere, or something else and must race faster and faster, on and on over the ever-increasing obstacles that stand in our way.</p> <p>Native Americans of different tribes are renowned for their running. Many can run endless miles without stopping. But they don’t run all the time! Although they possess the grace and endurance of great runners, they’re not always “on the run.” Rather, Native American spirituality is intent on walking a “blessing path,” being connected to the rhythms of the earth, moon and sun. They haven’t written books about blessings, but they know intuitively what blessings are. They take time to notice. Perhaps in our ever-accelerating lives, we too need to discover the meaning of blessings. We need to take time to notice them and cultivate the ability to walk a blessing path.</p> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <h3 id="so-what-are-blessings">So, What are Blessings?</h3> <p>It’s fine you might say, to consider Native American pieties, but we live in busy, fast paced communities — not out on the plains hunting buffalo. So, what are blessings for us and our time? A fair enough question! It’s difficult to be aware of blessings unless they break through our busy schedules. Sometimes on TV we see the Pope blessing people from his balcony. When the Pope makes the sign of the cross, we know it is a blessing. But we may be puzzled when we see him alight from a plane, stoop down and kiss the ground. Is that also a blessing?</p> <p>If we reflect on blessings, many questions can come to mind. A priest praying over a religious medal is imparting a blessing. An evangelist laying on hands is definitely imparting a blessing. But what about a priest praying over a beer? What about the “aha!” of discovery, the “Wow!” of exuberance or the orgasmic moan — can these also be blessings?</p> <p>A basketball player seems to be performing a blessing when making the sign of the cross before an important free throw. If the shooter misses, does it still count as a blessing? Are high fives blessings?</p> <p>On rare occasions, a bishop anoints an altar table with oil, setting it aside for sacred use. We know that’s a blessing, but what about being rubbed with oil during a refreshing massage? Is that a blessing too? A baby is a “blessed event.” What about a honeymoon? Isn’t it true that the more sensual or erotic an activity, the less we might be inclined to use the word “blessing” or”holy?” But why isn’t that a blessing too?</p> <p>How about affirmations? Is “I love you!” a blessing? Surely it is, and one of the most powerful of blessings! Do we adequately identify simple but significant words and gestures as blessings?</p> <p>Besides invoking a blessing on someone, something, some place or some activity, we also experience being blessed. Think about the blessing of a hug from your child, a kiss from your spouse, a cool drink on a hot day, or a hot bath at the end of a long day. We can be blessed by a kind word, a friendly smile, a hug or a pat on the back.</p> <p>And what about beauty? When we glimpse a beautiful sunset or share the peacefulness of a tranquil lake, we might exclaim, “What a blessing!” Yet, how often are we that conscious? Are we attentive to the blessings all around, or is our path through life so hectic that too many of the blessings all around are lost in a blur?</p> <p>Perhaps we all need a graduate course in blessings. Perhaps we simply need to pay more attention to blessings close at hand. If we do, we might well develop a deeper consciousness about blessing and being blessed. This could help us develop a blessing-centered spirituality that might empower us both to give and receive blessings. When we learn to do that, we walk a blessing path.</p> <p>But we are on the run, and if we are to reap a harvest of blessings, we need sometimes to cease our frantic pace, to stop, look and listen! When we do stop, the first logical question might be, “Well, just what are blessings really?</p> <h3 id="the-meaning-of-blessing">The Meaning of Blessing</h3> <p>The dictionary gives several definitions for the verb “to bless”: to consecrate or sanctify, to request divine favor, to bestow good of any kind, to protect or guard from evil. And to <em>be</em> blessed is to be divinely or supremely favored, according to Webster.</p> <p>Perhaps that is the place to start when considering a spirituality of blessing. The primal blessing is God’s love overflowing, bestowing divine favor on the blessed. As Genesis assures us, in the very beginning God looked at what was created and said it was “very good!” This was the origin of each and every blessing.</p> <h3 id="attention">Attention</h3> <p>To walk a blessing path demands attention — really looking about with a spiritual perception. It’s an attitude of reverence that is always open and alert to blessings all around. Thomas Aquinas, thirteenth century philosopher and theologian, wrote that everything is perceived through the mode (attitude) of the perceiver. His insight is still true.</p> <h3 id="finding-time">Finding Time</h3> <p>In our rushed and busy lives it is quite difficult for many people to find extended times for prayer, although if we really prioritized our lives most of us could find more fruitful time than we realize. I once bought a guitar with the intent of learning to play. But it sat in the corner for months. One of my friends asked, “Have you started to play?” I responded, “I would like to but I haven’t had time.” She responded, “Oh? Do you only have a twenty three-hour day, or are you like the rest of us who have twenty-four hours? I’d guess you can find the time to do what you really value.”</p> <p>There is certainly is one way for almost everyone to find time for prayer — a time to bless, a time to reflect, a time to speak to the Spirit of God who is all around, no matter where we are. This newfound prayer time can come in the intervals where circumstances for us to wait: at a traffic light, the doctor’s office, the checkout line… These short pauses are like cracks in a sidewalk, from which amazingly a flower may sometimes take root and bloom. These cracks in the concrete of life can become pauses in the whirlwind — providing us opportunities to bless and be blessed.</p> <hr> <h3 id="questions-to-ponder">Questions to ponder</h3> <p>What blessings have I received today?</p> <p>When was the last time I blessed my my closest loved ones with five affirmations? Am I receiving enough affirmations? Giving enough? (Perhaps those two answers are related)</p> <p>Am I paying attention? Do I possess a “Blessing Attitude”? If not, how can I change the way I see things?</p> <hr> <h3 id="evening-blessing-prayer">Evening Blessing Prayer</h3> <blockquote> <!-- raw HTML omitted --> </blockquote> <pre><code>Deliver me from today's hyper-pace. </code></pre> <p>Blessed be stopping: pausing along God&rsquo;s way. Blessed be being: &ldquo;Just to be is a blessing&rdquo; Blessed be simplifying: Deliver me from polluting. Blessed be imagination: dreaming better dreams. Blessed be creative expectations: I think I can &mdash; tomorrow! Blessed be attention: being present to those I love. Blessed be transformations: tomorrow better than today. Bless this day! Bless this night! Deliver us from any fright.</p> <pre><code> Amen.&lt;/pre&gt;</code></pre> DDR fun https://thunk.org/tytso/blog/2002/07/10/ddr-fun/ Wed, 10 Jul 2002 20:49:00 +0000 https://thunk.org/tytso/blog/2002/07/10/ddr-fun/ <p>Hmm… I’m definitely in worse shape after not doing regular exercise while I was on the road. I’m finding myself losing my breath and getting winded after doing DDR songs which wouldn’t have bothered me at all a month ago. Some of it might be because I’m wearing sneakers now (instead of doing it barefeat) in the hopes that cushioning will help spare my knees from aching and in the long term, getting destroyed.</p> <p>On the plus side, I’m still able to do songs at the same level of difficulty that I was able to do before I went a-travelinig (i.e., most five-foot dances). I’m making a few more mistakes than before, and six foot dances which I could *almost* do before are now a complete and total loss, but on the whole, my skills survived mostly intact from the month of neglect.</p> Power's out :-( https://thunk.org/tytso/blog/2002/07/09/powers-out/ Wed, 10 Jul 2002 01:29:00 +0000 https://thunk.org/tytso/blog/2002/07/09/powers-out/ <p>… and we just lost power in Medford, MA. This will be the third time in four days that we’ve had a power outage. I thought this was only supposed to happen in California. <!-- raw HTML omitted -->😛 <!-- raw HTML omitted --></p> <p>(No, it’s not rolling blackouts. Just lots of antiquated equipment which is dying thanks to the increased summertime load, apparently.)</p> Vacation update, part I https://thunk.org/tytso/blog/2002/07/08/vacation-update-part-i/ Mon, 08 Jul 2002 12:09:00 +0000 https://thunk.org/tytso/blog/2002/07/08/vacation-update-part-i/ <p>So I’ve been traveling since June 6th, and so I haven’t had as much time to update my LJ log. (It seems that I’ve had network access, or time, but not both.) So here’s a quick summary of my vacation in June before the Kernel Summit/OLS….</p> <p><!-- raw HTML omitted --><!-- raw HTML omitted --></p> <p><strong>Sunday, June 16th</strong>: I checked out of my hotel in Monterey, and start driving up to San Jose. I took the scenic route, up route 1, and then swing by Santa Cruz. Just on a whim, I tried to contact two friends of mine from my VA Linux days. John wasn’t around, but Ben was. So I paid a surprise visit to Ben, who was thrilled to see me, and we had a lot of fun reminescing about old times at VA.</p> <p>Later that afternoon, I drove up to Sunnyvale to <!-- raw HTML omitted -->‘s house, where I stayed as a houseguest for a few days. We had dinner and had a really good, deep conversation about all sorts of things; where we’ve been, how we’ve grown, etc. As CJ put it, <a href="http://www.livejournal.com/talkpost.bml?journal=cjsmith&amp;itemid=102820">it was neat</a>.<!-- raw HTML omitted --></p> <p><strong>Monday, June 17th</strong>: Had lunch with my old manager at VA (and friend), Walt. He’s now at one of the large number of storage startups in Silly Valley. (There’s so many of them that they can’t all possibly all succeed.) It was really good to hear see how he was doing.</p> <p>Dinner was with some folks at MontaVista, who wanted to talk to me about GPL issues and Linux binary modules. I don’t know if they found it useful, but we covered some basic ground, it got me a free dinner. <!-- raw HTML omitted -->🙂 <!-- raw HTML omitted --></p> <p><strong>Tuesday, June 18th</strong>: Most of the day was speant making the final organizational touches for the kernel workshop in Ottawa the following week, and packing for an early start the next day. I had a quick lunch with <!-- raw HTML omitted -->. We didn’t have that much time to chat, but it was still fun to get together. Dinner was supposed to be with a second cousin living in San Francisco, but it turned out that she had to cancel on me at the last minute. So I had dinner by myself at a local sushi restaurant. Yum!<!-- raw HTML omitted --></p> <p><strong>Wednesday, June 19th</strong>: I got up at 6am (ugh) so I could catch an 8:30am flight to Reno, so I could visit another old friend from my VA Linux days, Leonard. After running a few errands he had in Reno, we drove up to his place in Lake Tahoe. After lunch, and we hike part of the Tahoe Rim trail. According to his new GPS (new toy!), we hiked 6.7 miles, and climbed approximately 1200 feet.</p> <p><strong>Thursday, June 20th</strong>: Disaster! I discovered in the morning that I had forgotten to pack my passport, and tomorrow I was supposed to fly to Ottawa. Oops. So I send out a e-mail to a bunch of friends, asking for help, and one of them Fedex’es it to me. But it does mean that I have to stay in Lake Tahoe one more day (good thing) and miss a Summer Solstice party in Ottawa that I had been planning on attending (bad thing).</p> <p><strong>Friday, June 21st</strong>: While waiting for my passport to arrive, Leonard and I have massages given by a professional massage therapist. Mmmm! Must find a good massage therapist in the Boston Area. After lunch, I’m finally reunited with my passport (whew!), and Leonard and I hike another part of the Tahoe Rim Trail, which was much more scenic.</p> <p>One good thing about getting stranded in Lake Tahoe for an extra day. It’s given me a lot more time to talk to Leonard, and as a result our friendship has deepened. We’ve had time to talk about experiences with past and (hopefully future) girlfriends, our perspectives on life, and lots of other topics. It turns out that Leonard also knows <!-- raw HTML omitted --> and <!-- raw HTML omitted --> from years ago.<!-- raw HTML omitted --><!-- raw HTML omitted --></p> <p><strong>Saturday, June 22nd</strong>: I get up way too early (5 a.m.), so I can get to the Reno airport, and then spend the rest of the day bouncing through San Jose, Chicago, and finally, Ottawa. I finally make it to my hotel in Ottawa at 11pm, and almost immediately fall into bed.</p> <p><strong>Sunday, June 23rd</strong>: Spend the morning catching up on e-mail, and in the afternoon, I wander over to the conference center, to make sure everything is in order for the kernel summit. Since I’m the program committee chair, I feel responsible…. but fortunately, the volunteers from OLS and the Usenix staff are completely on the ball, as always. Everything is all set up, including the wireless network. Whee! The opening reception begins at 6pm, and at 8pm we all adjourn to the bar….</p> Productive week (so far!) https://thunk.org/tytso/blog/2002/06/13/productive-week-so-far/ Thu, 13 Jun 2002 21:37:00 +0000 https://thunk.org/tytso/blog/2002/06/13/productive-week-so-far/ <p>So I’ve been in Monterey all week for the Usenix conference, but it’s still been a productive week. On Monday, I taught a Linux kernel tutorials class. I thought my friend Stephen Tweedie was going to be there so we could tag-team teach the class, but it turned out that I had to teach it by myself. So that worked out OK, although I was pretty exhausted.</p> <p>On Tuesday, I spent all day with my ipsec working group co-chair to organize things for the Yokohama IETF meeting. I probably won’t be able to attend, but we managed to move all of our work items forward, and were able to come up with a path forward forwards our primary, major work item.</p> <p>Yesterday, I spent most of the day organizing the agenda for the upcoming Linux Kernel Summit/Worshop in Ottawa.</p> <p>I still have lots of work to do, and the main Usenix conference have started — but if I can just keep things up, I should be in good shape.</p> In the nice try, but completely pointless department… https://thunk.org/tytso/blog/2002/06/11/in-the-nice-try-but-completely-pointless-department/ Tue, 11 Jun 2002 20:20:00 +0000 https://thunk.org/tytso/blog/2002/06/11/in-the-nice-try-but-completely-pointless-department/ <p>So here I am in Monterrey, having breakfast at the DoubleTree Hotel, and I order hot tea. A few minutes later, the waitress comes by and takes away my coffee mug, and replaces with a completely identical mug, a tea kettle, and selection of tea bugs. I was confused about the mug replacement, until I picked up the mug and found that it was hot.</p> <p>Ah, nice touch. They gave me pre-warmed mug, so I figured, in order that the water wouldn’t be cooled down when it was poured into the mug, so the tea could properly steep at just under boiling, as it should be. This mood of appreciation lasted just long enough for me to pour the water, and discovered that it was barely hot water that clearly had been sitting on the coffee machines warming element all morning. Oops. Nice try, but no cigar.</p> My Mom's memorial service https://thunk.org/tytso/blog/2002/05/28/my-moms-memorial-service/ Tue, 28 May 2002 18:32:00 +0000 https://thunk.org/tytso/blog/2002/05/28/my-moms-memorial-service/ <p>Things have been fairly busy, so I haven’t had time to update my Live Journal more frequently. I’d like to get better about that. In the meantime, I’ll play catchup with the some of the more important things that have happened in the past week or two.</p> <p>The weekend before last, I traveled out to Chicago to attend my mom’s memorial service. It was held in St. Lawrence Church in Libertyville, IL. We asked a number of friends and family to come up and say a few words about Mother. It was really moving; there was a lot about my mom that I didn’t know until last week, such as the fact that my mom was the first woman to graduate from Hong Kong’s Technical College, where she had studied engineering. I never knew she had been that kind of pioneer….</p> <p>I was asked to say a few words at the end of the sermon/eulogy time, and this is (as best as I can reconstruct from my note cards), what I said.</p> <p>&lt;lj -cut text=&ldquo;My Mom&rsquo;s Eulogy&rdquo;&gt;<!-- raw HTML omitted --></p> <p>Closing Eulogy for Linda Fung Quan Ts’o,</p> <p>spoken by Theodore Ts’o on May 19, 2002.</p> <p>Thank you all for coming.</p> <p>As I remarked to some friends and family last night, there are a few things which funerals and weddings have in common, in how they bring friends and family together. (So again, both in life and in death, Linda has brought us so many blessings…) But today, instead of celebrating the love between two people, today we are celebrating something just as precious — the life of our friend, our sister, my mother — Linda Ts’o.</p> <p>You’ve heard many stories about Linda from others who have spoken about her life:</p> <ul> <li>How she was the first (and in her class of 1959, the only) women to graduate from the Hong Kong Technical College.</li> <li>How she gave up a career in property management and civil engineering in Hong Kong to follow Dad to the United States.</li> <li>How she devoted all of her energies to raising a family.</li> <li>When Father started his private practice, how she stepped up to become Dad’s office manager.</li> <li>How she loved to practice Tai Chi, and how she dragged her friends and neighbors to Tai Chi class with her.</li> </ul> <p>What can I add to all of these loving remembrances? Only a few personal stories.</p> <p>SHE WAS A DEVOTED MOTHER. I remember her teaching me math when I was a small child, because she wasn’t satisfied with the quality of Public Schools in the U.S. (She didn’t think it was good as the British system which she went through in Hong Kong.) I remember her teaching me the multiplication tables in Chinese, and how it rhymed, so it could be chanted. (In Cantoneese: 3×1=3, 3×2=6, 3×3=9…)</p> <p>I remember her organizing a Cub Scout Den for my and the other buys in the neighborhood in Long Island.</p> <p>SHE WAS CONCERNED ABOUT FAMILY HEALTH. I remember her dragging us all to walks; her favorite place was the Chicago Botanical Gardens. I remember her nagging me about my weight; something I’m going to have to do on my own now.</p> <p>SHE WAS AN ARTIST. I remember her pouring over photographs in the darkroom in Long Island, and teaching me how to remove film from their metal canisters while having your hands in a light-tight bag. Although she no longer did her own developing after switching to color film, she always loved photography, which is something she passed on to me.</p> <p>SHE WAS AN ENGINEER. I remember Mom with oil in her clothes and grease in her hands, fixing the family car.</p> <p>SHE WAS A BUSINESS WOMEN. I remember her terrifying car dealers when negotiating prices for the family car. I remember her staying up late taking care of taxes and financial planning for the family.</p> <p>SHE WAS A GRANDMOTHER. I remember her being so happy when my sister’s son Justin was born. She spent a lot of time helping Sophia during the first few months. When Sophia went back to work, she spent two days a week babysitting Justin during the day — while still holding the fort at Father’s Office.</p> <p>These were all just a few facets of a wonderfully complex individual. I can’t hope to do her life justice; but it will have to suffice. I really miss her….</p> <p>I started by talking about how funerals and weddings have a certain amount in common. So as many weddings use a reading (On Marriage) from Kahil Gibram’s book, The Prophet, I thought I would close by quoting another passage from the same book. (Kahil Gibram was a Lebanese Christian who published The Prophet in 1923 — something which I want to acknowledge given the great suffering of Arab Christians in the Middle East today.)</p> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <p>“When you are sorrowful, look again in your heart, and you shall see that in truth you are weeping for that which has been your delight.”</p> <p>I count myself incredibly blessed that Linda was my mother, and that she could be with us all for this space of time. Our sorrow shows how much we have been blessed, and how much we have to be thankful for.</p> <p>Thanks be to God.</p> <hr> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <blockquote> </blockquote> Waiting to start watching Buffy… https://thunk.org/tytso/blog/2002/05/15/waiting-to-start-watching-buffy/ Wed, 15 May 2002 04:23:00 +0000 https://thunk.org/tytso/blog/2002/05/15/waiting-to-start-watching-buffy/ <p>Well, it should almost be time to start watching Buffy the Vampire Slayer… it’s far enough into the hour that I should be able to skip all of the commercials using my TiVo without running out of recorded material.</p> <p>I love my TiVo! (And Buffy is very addictive. 🙂</p> Dance Dance Revolution https://thunk.org/tytso/blog/2002/05/07/dance-dance-revolution/ Wed, 08 May 2002 01:48:00 +0000 https://thunk.org/tytso/blog/2002/05/07/dance-dance-revolution/ <p>For the past week or two, I’ve been using Dance Dance Revolution instead of my NordicTrack to get my daily dose of aerobic exercise, and it’s definitely been working out quite well.</p> <p>It’s a lot more fun, and much more interesting, since DDR is at least as much a mental game as it is a physical one. I just recently managed to reliably pass a five-foot song by realizing the trick was to expand by lookahead by one. Whee!</p> <p>Anyway, I’m working up a good sweat, and doing it regularly, so that’s definitely a good thing. I actually look forward to doing morning exercises now. 🙂</p> Busy weekend! https://thunk.org/tytso/blog/2002/05/06/busy-weekend/ Mon, 06 May 2002 20:33:00 +0000 https://thunk.org/tytso/blog/2002/05/06/busy-weekend/ <p>I haven’t updated my LJ in a while, mainly due to my being insanely busy, and not being terribly effective at work. I think it’s due to my not getting enough sleep; so that’s something I really need to work on.</p> <p>Last weekend two friends of mine from MIT, Carolyn and Jason, got married. The service was held at a historical estate in Canton, and both the weather and the service and the location was gorgeous. After the reception, I hosted a potluck dinner for some of Carolyn and Jason’s closer friends at my house.</p> <p>Although there were times that were rather stressful, due to the fact that my kitchen badly needs to be completely overhauled to add more counter space, and so a work triangle which doesn’t, I had a lot of fun hosting the party. Hmm… I must do more such party hosting in the future, when I have the time…</p> I need to get motivated https://thunk.org/tytso/blog/2002/04/19/i-need-to-get-motivated/ Fri, 19 Apr 2002 22:32:00 +0000 https://thunk.org/tytso/blog/2002/04/19/i-need-to-get-motivated/ <p>Blargh…. I’m having trouble getting motivated today.</p> <p>I think part of the problem is that I’m behind a whole bunch of different fronts, and actually working on tasks (so I can get catch up) reminds me of how far behind I am, and so I want to avoid working on stuff. It’s stupid; really stupid, but it’s still hard to fight.</p> <p>What makes even dumber is that I’ve finished up all of my tasks that do have tight timelines, so what’s left is a bunch of things for which it’s not a disaster that I’ve this far behind — but it’s just that I feel unhappy with myself about where I am with stuff. Sigh….</p> <p>I <em>so</em> need to make me a todo list, and start working on getting stuff finished on it, one at a time. Usually the psychic benefit of crossing stuff off the list is helpful. Hopefully this time it will be!</p> A good day…. https://thunk.org/tytso/blog/2002/04/18/a-good-day/ Thu, 18 Apr 2002 10:15:00 +0000 https://thunk.org/tytso/blog/2002/04/18/a-good-day/ <p>Hmm, I haven’t updated my LJ in a while, mainly because I’ve been insanely busy. I pulled my first all-nighter on Monday in quite a while, working on a paper for the Usenix conference in June. Then Tuesday I was up until Midnight finishing up final version of the paper, and getting my taxes done and filed. (Thank goodness New Englanders get an extra day this year to file taxes due to Patriot’s day!)</p> <p>Today, I recovered from the last two days, and start catching up on stuff which I neglected due to the short-term deadlines that had been keeping me busy. I also went to see a Dar William’s concert tonight in Club Passim! I was lucky, and managed to get seats right up front and center. She was amazing, and it was a real treat to hear her perform in such a small, intimate setting.</p> <p>I managed to take some pictures of her using my new Canon S-40 camera. It’s really wonderful; it has enough sensitivity that you can take pictures with the flash disabled, and they’re still not half-bad. I can even take capture some <a href="https://thunk.org/tytso/images/2002.darwilliams/crw_0004.wav">audio samples</a> to go with some of the pictures!</p> <p><a href="https://thunk.org/tytso/images/2002.darwilliams"><img src="https://thunk.org/tytso/images/2002.darwilliams/thumb/crw_0004.jpg" alt=""></a></p> <p>I can’t wait until the Canon D-60 which I have on order shows up. That will be even better at taking low-light shots without a flash….</p> To give witness…. https://thunk.org/tytso/blog/2002/04/11/to-give-witness/ Thu, 11 Apr 2002 21:44:00 +0000 https://thunk.org/tytso/blog/2002/04/11/to-give-witness/ <p>The following message is from the Episcopal bishop in Jerusalem, and talks about how the Israeli’s are treating Palestinians (including non-combatents and Arab Christians) in Ramallah.</p> <p>Granted that the suicide bombings which have targetted civillians is horrific and barbaric. But the Isreali’s are supposed to be “the good guys”; “the one functioning democracy in the Middle East”; our committed friends, according to our fearless leader, George W. Bush.</p> <p>I can’t make or influence national policy. I can’t stop the senseless killing and the violence. But I can give witness to the fact that This Is Not Just, no matter what the provocation might have been.</p> <p><!-- raw HTML omitted --><!-- raw HTML omitted --></p> <h2 id="bishop-riah8217s-easter-message-from-jerusalem">Bishop Riah’s Easter message from Jerusalem</h2> <p>Dear Friends,</p> <p>Salaam and grace in the name of our Lord Jesus Christ and blessed greetings from Jerusalem,</p> <p>It is Easter Day, the day of Resurrection. However, this year’s celebration of Christ’s new life is remembered in the middle of total chaos, and persistent suffering of a lonely people, who has long been fighting for their freedom and dignity. The services in the cathedral this morning took place with half the number of people we normally have due to closures and checkpoints. This year, the Easter story has been as vivid and clear as never before. The biblical drama continues; the actors change, but the plot remains the same. We have been witnessing the many Judas Iscariots, who continue to betray the Truth, and the many Pilates, who wash their hands, to defend their own safety. We weep before those who continue to watch the cross from afar, as if the scene means nothing to them.</p> <p>After the services, I left with clergy and heads of churches towards Ramallah on a mission of peace and justice, trying to break down the siege inflicted on the city and its people, and to visit President Arafat. Apart of the Anglican clergy with me, we had the Roman Catholic Patriarch and his clergy, the Greek Catholic Archimandrite, and representative of the Armenian, Lutheran, Coptic, and Franciscan Bishops and clergy. We were 15 people altogether. We gathered at St. George’s Cathedral and left in the afternoon hours towards the city of Ramallah.</p> <p>Prior to our departure from the cathedral, I spoke several times with the Deputy Foreign Minister of Israel, Rabbi Melcheor, who was part of the Alexandria Declaration, initiated by the Archbishop of Canterbury, as we committed ourselves to work for peace and justice as religious leaders. We asked for his help and intervention to mediate with the authorities, and allow us to enter into Ramallah; I have even challenged him to come with us, expressing readiness to meet with Sharon as well. But all our three-hour-endeavor to enter the city came to an empty hole. We felt that the authorities do not want the church to provide a channel for peace and reconciliation, to bring an end to all the suffering and pain of the peoples of this land. As we were waiting, some settlers were passing by, some cried at us with the words: “Go to hell.” Others spitted at us. We were forced to return back to Jerusalem.</p> <p>Ramallah has been declared a war zone, nobody allowed in or out. The reports that are coming from the city are incredibly horrendous. Our people could not attend church on Sunday. George Kopti, our priest in charge of the community, said his prayers with the immediate neighbours, who are living in the church close. He cannot walk out of his house, like everybody else, for fear of being shot dead. He reported that people were executed in the neighbouring Islamic Club with cold blood. There is lack of food and water supplies in the houses. President Arafat’s compound has run out of water, too. Ambulances have not been allowed to reach to the injured, and one of the hospitals has been invaded. The soldiers are threatening to blow it up, 10 minutes after they leave the building; and all this comes with the ongoing reports of lack of blood in the hospitals for the injured, a matter that is causing the death of many others; 25 dead Palestinians are still kept in one of the hospitals, while the Israelis are not allowing their burial. The hospitals report that there is no more space to keep more bodies. Some of those bodies have been recognized, others have not been recognized due to the extreme degree of torture. The church is planning tomorrow to donate blood here in the cathedral through one of the ambulances, the least we can do in our support for the community in Ramallah.</p> <p>Stephanie Koury, an American citizen, lives and works in Ramallah as the legal adviser on settlements for the Palestinian Negotiating team. She reported to me personally that on Saturday, March 30 at 1:45pm, 10 Israeli soldiers invaded her house, and threatened to kill her cat. They ate her fruits on the table, even when she told them that that was the only food left for her. One of the soldiers lay down and asked her to give him a massage, an act of total humiliation, if not a war crime. She witnessed them holding an 18-19 year old young man, the son of her neighbour, forcing him on his knees, and pointing the gun at his head. When they left her house after three hours of sheer humiliation, they ran over her car with their tanks.</p> <p>Israeli troops have surrounded Bethlehem and its area, and the people there are preparing for another Israeli invasion. All this comes to us, and to our people at a time when we remember and celebrate the life of God who makes the suffering and the death of these people his own. We remember how they flogged him, how they spitted on him, and how they crucified him. It all becomes clear how though we believe in the resurrection, we also believe that the resurrection does not cancel out the crucifixion. We are burdened with all this suffering, and total hopelessness. To whom do we turn to? We have no one to turn to except to him , who suffers, and dies with us, Jesus Christ our Lord. For he alone can raise us up.</p> <p>Know that this comes with my prayers, and best wishes,</p> <p>In Christ,</p> <p>+Riah Abu El-Assal</p> <p>Episcopal/Anglican Bishop</p> <p>Diocese of Jerusalem and the Middle East</p> <p><!-- raw HTML omitted --><!-- raw HTML omitted --></p> Industrial beef… https://thunk.org/tytso/blog/2002/04/01/industrial-beef/ Mon, 01 Apr 2002 10:23:00 +0000 https://thunk.org/tytso/blog/2002/04/01/industrial-beef/ <p>I just finished reading an article in the New York Times’ Sunday Magazine which was entitled <a href="http://www.nytimes.com/2002/03/31/magazine/31BEEF.html">Power Steer</a>. It described how modern beef is produced — and produced is the right word here.</p> <p>That article is making wonder (a) what does grass-fed beef taste like (it’s supposed to be more “flavorful” or, ah, “tough”) and (b) how much it costs compared to the industrial beef which most of us eat most of the time.</p> Busy day… https://thunk.org/tytso/blog/2002/03/26/busy-day/ Tue, 26 Mar 2002 09:07:00 +0000 https://thunk.org/tytso/blog/2002/03/26/busy-day/ <p>I spent the morning trying to get work done — or at least trying to; I wasn’t half as productive as I wanted to be. Sigh… Part of it is that that I don’t have my own space, so I’m just less efficient. Also, only having a dialup connection to the net doesn’t help. It’s also though that I’m getting easily distracted, for some reason.</p> <p>The Garmin Streetpilot III arrived today, via Federal Express. I got it for my Dad, since he was always complaining that he had trouble navigating, since he had a poor sense of direction. (My mom used to to do all of the driving to unfamiliar places.) I got it set up for him, and we used it while driving down to the estate lawyer at 1pm. It seemed to be really useful for him, and he was really appreciative; that was cool.</p> <p>We spent an two hours with the estate lawyer, and learned all sorts of stuff about how to disinherit Uncle Sam. It’s absolutely amazing; people who know what they are doing can basically avoid hundreds of thousands of dollars in estate tax — even people who are essentially middle-class folks, but who have been saving for retirement. (What’s even more frightening is how many people *aren’t* putting away money for their retirement, but that’s a rant for another time.) At some level, it really isn’t fair. Essentially, if you know what you’re doing, paying estate taxes is almost, but not quite, optional — assuming that you plan ahead, and have a sharp lawyer on your side. On the other hand, if you don’t know what you are doing, and don’t exploit the loopholes in the laws which Congress has so graciously left behind, your heirs will wait for 1-2 years while your estate goes through probate court, and between the U.S. government taking half, and probate lawyers taking another 10-20%, there might not be much left over by the time everything clears probate.</p> <p>On an interior landscape note, one thing which is bothering me a little is that I’ve been so busy, that I really haven’t had time to grieve. It’s been do this, do that, plan this, do that. And when I get back to Boston, I have a paper for a conference due on April 8th, and taxes due on April 15th, and so I don’t imagine things will let up for while. So mental note to self; must take time to remember Mother, and how much she meant to me.</p> <p>Anyway, it’s late now, and I’m trying to catch up on the work which I didn’t get done this morning, but which really needs to be done. Writing this LJ entry has been a way of procrastinating, so I should really bring this to a close and get back to work.</p> Back in Chicago… https://thunk.org/tytso/blog/2002/03/24/back-in-chicago/ Sun, 24 Mar 2002 08:20:00 +0000 https://thunk.org/tytso/blog/2002/03/24/back-in-chicago/ <p>The past week I was in Minneapolis attending the IETF meeting. Although network access was plentiful there, I was so busy I didn’t have any time to update my journal. It was a good meeting, though. A lot of good stuff got done. The two teams who had been proposing competing “son-of-IKE” proposals have agreed to work together toward a combined proposal. I announced the results of the nominating committee, which means my job as nomcom chair is pretty much done (thank goodness!). All-in-all, it was definitely one of the more personally satisfying and productive IETF meetings in a while.</p> <p>I added two additional books to my “to-read” list. The first is “The Endurance: Shackleton’s Legendary Antarctic Expedition” by Caroline Alexander. The IETF social was at the Minneapolis Science Museum, and we got to see an IMAX movie about Sir Shackelton’s amazing antarctic journey. The fact that he was able to bring all of his crew back after his ship was trapped in the ice is simply amazing, and after seeing the movie, I want to read more about it.</p> <p>The second is “Black Hawk Down”, by Mark Bowden. I haven’t see the movie, since I’ve been sorely lacking in a social life the past two years, but someone I was chatting with during the IETF meeting was raving about the book, and his descriptions interested me enough that I want to find and read it.</p> <p>Anyway, I’m back in Chicago now, and I’ve been helping my dad and my sister with the estate. My mom took care of all of the investments, so we’ve been helping my dad to assemble all of the investment information, so we can go meet with the lawyer on Monday, and to start activating my parent’s living trust plans. Of course, I also have a huge amount of work to get done, so I’ll be working (or at least trying to work) this week as well as taking care of family business. At least in theory, one of the nice things about working from home is that it’s possible to work from other locations, as well. We’ll see how well the theory actually works in practice…</p> Back home at last… https://thunk.org/tytso/blog/2002/03/16/back-home-at-last/ Sat, 16 Mar 2002 12:35:00 +0000 https://thunk.org/tytso/blog/2002/03/16/back-home-at-last/ <p>I’ve been off the air for a while (no Internet connectivity), and it seems that an eternity of stuff has happened in the mean time.</p> <p>Last week, on Saturday (on March 9th), I was woken up at 8am when my father called me. My parents were little over a week into a three week vacation in Australia, and I certainly wasn’t expecting a call from him then. In a completely emotion-less voice, he tells me to take a piece of paper, and to start writing down information. He then starts telling me which hotel he’s staying at, and what the room number was, and the phone number at the hotel.</p> <p>Of course, I was groggy from being woken up, so the alarm bells that should have been going off at 100+ decibels that something really bad must have happened were only going off faintly, but then he tells me that that afternoon, he and my mother were in a class learning how to snorkel, in preparation for seeing the Great Barrier Reef.</p> <p>The instructor noticed at 3:25pm that my mother was the only one of the class who hadn’t let go of the training/flotation ring, so he went over to check on her. She was unconscious, and had apparently aspirated a lot of water into her lungs. Why isn’t precisely clear yet; after all, the instructor was keeping his eye on everyone at the time. But they dragged her to the beach, and attempted to resuscitate her, and although they managed to get her heart beating again when the helicopter ambulance came to pick her up, she was pronounced dead on arrival at the Hospital in Cairns at 5:25pm.</p> <p><!-- raw HTML omitted --><!-- raw HTML omitted --></p> <p>My father is almost seventy, so he requested that I fly out to Cairns as soon as possible to help him deal with the funeral and the cremation, and then help him travel back to the States. (My mom was always the person who handled all of the logistics in the family, so he <em>really</em> didn’t want to travel alone.) So with my weekend (and my life) turned upside down, I immediately started planning to an emergency trip to Australia.</p> <p>This was amazingly stressful, for a number of reasons. (1) I found out that Airline’s “bereavement fares” were generally a fantasy, and (2) the IETF meeting in Minneapolis was coming up right afterwards. So I spent Saturday and Sunday packing, setting up airplane tickets to Australia, paying bills that couldn’t wait, sending e-mail messages prepping for the IETF meeting, etc. Even more stressful was all of the things which I *knew* I was dropping on the floor due to lack of time.</p> <p>The one bright part of an otherwise pretty horrid weekend was Saturday evening, when a friend of mine (whom I will call Brighid for the purposes of this journal) offered to come over and cook dinner for me, and keep me company. That was a very welcome distraction. I’m really glad to have Brighid as a friend; she really is a wonderful person, in so many different ways. I don’t know if we’ll ever be more than just friends (there are a one or two reasons why it might just not work out); still, I haven’t been this comfortable talking with someone for a very long time, and we’ve spent two evenings now talking until it was way too late. We’ll see…</p> <p>Anyway, Sunday evening I flew out on United (yay frequent flyer miles) to Los Angelos, and then on to Sydney, and then from their, to Cairns. Thanks to the international date line, I arrived on Tuesday around noontime, and met with my dad. Fortunately, my parents were traveling with a group of friends (three other couples), and two of them, Wayne and Roberta, had volunteered to sacrifice 2-3 days of their vacation to stay with my dad and support him until I could arrive. So I met the three of them at the airport, and we went back to the hotel.</p> <p>That afternoon, Jodie Blanchard from the Svendson’s Funeral Home arrives, and she’s amazingly great and sympathetic. She walks us through the all of the details. The autopsy had been scheduled for the next morning (Wednesday), and that in all likelihood, the body would be released by the police at that point, and so we could have a funeral service at the crematorium Wednesday afternoon.</p> <p>We had dinner at a restaurant called Ocean Palace Chinese Restaurant, whose head chef, Mr. Lum, was amazingly good cook, and a very kind person. My father had been having dinner there every night that he had been in Cairns; the first night with my mother, and the second night after the accident, and every night thereafter. Each night, it was chef’s choice, and Mr. Lum would ask some questions of my father about what sort of things he liked, and would come up with something new and wonderful — usually stuff that wasn’t on the menu. As it turned out, we ended up eating there for dinner for the rest of the week as well, and we never got bored. (Indeed, I think my dad liked having something that was stable and familiar to go to each evening.)</p> <p>Wednesday morning happens; after introducing my father to the joys of using a phone card (and paying 5 cents a minute to call the States, as opposed to the highway robbery rates charged by the hotel, especially for international calls), we make lots of phone calls, including coordinating with my sister, who has been holding down the fort back in Chicago. (My sister was really hit hard by the news of the death of Mother, and she really wanted to come down to Australia as well, but with a nine-month-old in the house, it really wasn’t practical.)</p> <p>I spent the rest of the morning hastily preparing the funeral service for my mother. Fortunately, I had enough presence of mind to pack a Book of Common Prayer (the book of rituals/prayers/liturgies used by the Episcopal church), and so I used that to sketch together a service. Also fortunately, among the MP3’s on my laptop was a collections of hymns that I had ripped from the CD, “Abide with me”. So a few hymns from that collection, plus the song “Psalm of Life” from an all-women’s acapella group called Taproot, would serve as the music for the service. My father, and I would serve as the congregation.</p> <p>After lunch, my dad takes a nap, while I try to catch up a little with some work that I had brought on my laptop. At 2:30pm the car from the funeral service arrives, and my father and I are driven to the Crematorium. My father asks me to do all of the readings and the prayers, since he fears that he’ll be overwhelmed by emotion. So at 3pm, we arrive, and I get to see my mom one last time before the casket is closed, and we start the service.</p> <p>After the service, we go around back, and watch as the casket is prepared to go into the cremation furnace. I saw one last prayer, committing my mom’s body to the elements, and then the furnace door is opened, and the casket is rolled into the furnace, and the door is closed. We go back to the hotel.</p> <p>Thursday is spent packing; first my stuff, then my dad’s stuff, and then my mother’s things. Before lunch, we spend a bit of time walking through the touristy downtown of Cairns, just to give ourselves something to do. One of the places we stop by is a photo gallery, where there was an amazing limited-edition photograph which I fall in love with. It’s one meter long, and shows a sunrise over a beach in New South Wales, and it is entitled, “Bach’s Air in G”. While I’m purchasing it, I ask if the photographer is based in Cairns, and it turns out the person I’ve been talking to is the artist himself! So here I was praising the photograph and it turns out I was talking to the photographer all along.</p> <p>That afternoon, we continue packing, and at 4pm, I stop to visit a church across the street from the hotel, where they had an amazing set of stained glass windows depicting the creation story in Genesis. My parents had visited that church on the first day in Cairns (one of the last things my mom went to see before the accident…), and I was told that I had to see it; the windows were both beautiful and powerfully symbolic. Every day at 4pm, the church plays a tape which describes all of the details and symbols found in the window, and my father strongly suggested that I see it.</p> <p>We go to the Ocean Palace Restaurant one last time, and then go to bed early, since we have a 5:40am flight out of Cairns on Friday morning.</p> <p>… and that brings things to present. After traveling for some 29 hours, we arrive safely in Chicago, where my sister picks me up, and drives us back to Libertyville.</p> <p>I’m scheduled to go to Minneapolis on Sunday, to attend the IETF meeting. I’m still way behind on my e-mail, and lost the previous week worth of work and items that I had planned to get done during that week. But life goes on, albeit with a empty space in my heart….</p> It's good to be famous. I think. https://thunk.org/tytso/blog/2002/03/01/its-good-to-be-famous-i-think/ Fri, 01 Mar 2002 07:40:00 +0000 https://thunk.org/tytso/blog/2002/03/01/its-good-to-be-famous-i-think/ <p>So apparently there’s a new window virus going around, which instead of using addresses out of the luser’s MS Lookout address book for the <strong>from&gt;</strong> and the <strong>to:</strong> fields, it uses a “well-known e-mail address” and sticks that in the sender field instead.</p> <p>And apparently, I happen to be one of the lucky ones, and my e-mail address has been hard-coded into some Windows e-mail virus.</p> <p>Oh happy, happy, joy, joy….</p> This is news? https://thunk.org/tytso/blog/2002/02/26/this-is-news/ Tue, 26 Feb 2002 21:04:00 +0000 https://thunk.org/tytso/blog/2002/02/26/this-is-news/ <p>In yesterday’s New York Times, I found an article entitled <a href="http://www.nytimes.com/2002/02/25/arts/25POPL.html">“A Boxed Set in One File? Online Music Finds a Way”</a>, on the front page of the Arts section. It described a new kind of technology that was promising to threaten the livelihood of record companies. Evil on-line music traders were using this technology to exchange not just singleton songs, <em>but entire albums</em>, complete with cover art.</p> <p>What was this new threat to world order? What was this new technology which was causing record labels to tremble, and might cause thousands of innocent children of music industry executives to starve?</p> <p><strong>Zip archives.</strong></p> <p>Yup, that’s right. Zip files. Apparently some users have taken to putting all of the mp3 files from a single album together, thrown in a gif or a jpeg file of the cover art, maybe a text file containing the lyrics, and then put it altogether into single zip file. Oh, horrors!</p> <p>One of my favorite quotes in the articles was from a music executive who at Maverick Records, who said that he had never heard of zip files. “The tech kids are moving much faster than we are. By the time we agree on anything, it’s already seven years old.”</p> <p>Hmm…. if zip files is new technology to the Music Industry, maybe that’s why they’re having problems coming up with an on-line music service that (a) doesn’t have a pathetic collection, and (b) isn’t way more expensive than buying the physical CD at full retail prices.</p> <p>I am a bit surprised that the New York Times thought this was news, though. I suppose no one in the Arts department talked to the folks who right the Technology section.</p> Mmmm…. it's good to be home https://thunk.org/tytso/blog/2002/02/23/mmmm-its-good-to-be-home/ Sun, 24 Feb 2002 02:24:00 +0000 https://thunk.org/tytso/blog/2002/02/23/mmmm-its-good-to-be-home/ <p>Last night I had a great reminder about why I like to be home — I treated myself to Wonderful Dinner ™.</p> <p>First course was jumbo shrimp with cocktail source, which took the edge off my hunger. Then it was off to the kitchen to start preparing the main dish, which was grilled Cajun-rubbed trout. After scaling the fish, and then rubbing the fish with a mixture of paprika, ground pepper, cayenne pepper, onion powder, garlic power, and Italian parsley, I threw it on the Foreman Grill (wonderful device!) along with some sliced cucumbers.</p> <p>Second course was an experiment. I took some freshly baked bread from a bakery in Medford Square, just five minutes walk from my house, and dipped it two different kinds of balasmic vinegar. The question I was trying to settle was whether I could tell the difference between the 6-year aged Manicardi balsamic vinegar and the 39-month aged Ortalli vinegar. I decided I could tell the difference, although the Ortalli was quite yummy. (I’m not sure it would be such a great idea to develop a taste for the 30+ year aged stuff, though — the only place where I’ve seen it is William Sonoma’s, and it’s <em>expensive</em>.)</p> <p>I also had some of the leftover sliced cucumbers, and then it was time to retrieve the grilled trout from the grill. The grilled trout was wonderful, although I decided the cucumbers was better fresh than grilled. I ate dinner while watching the “Graduation” episodes from Buffy the Vampire Slayer, which had been recorded on my Tivo while I had been traveling. (Yeah, I know that eating while watching TV isn’t the greatest thing to do, but hey, I was pampering myself.)</p> <p>Speaking of pampering, dessert was chocolate dipped strawberry. Yum!!</p> <p>All in all, last night was definitely a good evening. Mental note to self: must do this sort of thing more often.</p> The travelocity daemon swings at you with a +5 battleaxe called jet lag. More… https://thunk.org/tytso/blog/2002/02/21/the-travelocity-daemon-swings-at-you-with-a-5-battleaxe-called-jet-lag-more/ Thu, 21 Feb 2002 11:34:00 +0000 https://thunk.org/tytso/blog/2002/02/21/the-travelocity-daemon-swings-at-you-with-a-5-battleaxe-called-jet-lag-more/ <p>I gave my Linux kernel tutorial at NordU yesterday, and unfortunately the jet lag choose yesterday as the day to hit hard. With a vengence.</p> <p>I managed to give the class without many major screwups, but it definitely wasn’t my best effort. I had a few people complimenting me afterwards, which felt strange because I knew the talk wasn’t as coherent and as organized as I would have liked.</p> <p>Afterwards, I went to have dinner with an old friend (one of the FTP maintainers of ftp.funet.fi, the original host site for the Linux kernel, back in 1991 :-), and was a terrible dinner guest. I was practically nodding off between every other sentence. Part of it was the people smoking at the next table over — one of ah, “disadvantages”, of living in Massachusetts is that my ability to deal with second smoke has gone completely down tubes — but part of it was just how exhausted I was.</p> <p>A weird thing though is that I wasn’t tired when I finally came back to my hotel room and spent an hour or two catching up on e-mail on the laptop. Hmm…. people who feel energized when interacting with other people are called extroverts; is there a term for people who feel energized when they are working with computers? No wait, I’m not sure I want to know…</p> On the road again… https://thunk.org/tytso/blog/2002/02/17/on-the-road-again/ Mon, 18 Feb 2002 02:05:00 +0000 https://thunk.org/tytso/blog/2002/02/17/on-the-road-again/ <p>I’m currently sitting in JFK AA club, syncing up mail before I head off to Helsinki. Bleah. Ted Is Travelling Too Much.</p> <p>The good news is that I have a trip to Minneapolis in March, and then Monterrey (for Usenix) in June, but that’s all the trips I have scheduled for the moment, and hopefully, it’ll stay that way!</p> Life in Canberra https://thunk.org/tytso/blog/2002/02/12/life-in-canberra/ Tue, 12 Feb 2002 05:15:00 +0000 https://thunk.org/tytso/blog/2002/02/12/life-in-canberra/ <p>… is very pleasant. Last night, I went out to dinner with a bunch of OzLabs guys. We went to a Thai restaurant, and had a very nice meal, for $15 dollars — Australian! — each. It was a very reasonable price in U.S. dollars, but with the exchange being 2 for 1, at $7.50 USD, it was an absolute steal.</p> <p>This morning, I woke up, ate breakfast at the hotel, and then wandered over to a Newsagent, where I picked up another book by the Dalai Lama (“The Transformed Mind: Reflections on Truth, Love and Happiness”), and two chocolate croissants and two chease rolls for the princely sum of $4.00 AUD, so I’ll something to snack on later in the day. I couldn’t get just the two chocolate croissants for $4 US from Au Bon Pain….</p> <p>I then headed to the IBM office in Canberra, by way of a very pleasant walk through Telopia park. Lots of verdant green plants, like you might expect in a tropical or sub-tropical climate, but yet the temperature was quite mild and moderate. As I was walking through the park, I just felt incredibly calm and contented. Life is good.</p> <p>The other really nice thing about Australia is that people are in general, really warm, open, and friendly. On my first day, I got a bit confused about which way I was supposed to exit the park on my way to the office, and someone who noticed that I was looking a little lost asked me if I needed help finding my way. Compared to my the previous week in New York City, I could really tell the difference.</p> <p>As near as I can tell, there are only two problems with living in Australia. (1) It’s just way too far from the rest of the world. If I could fly from Boston to Sydney in six hours or less, I’d be really tempted to move out here. (2) Bandwidth is expensive. Folks generally pay 10 to 25 cents per megabyte. This is apparently mostly the fault of the U.S. ISP’s, which are charging really high settlement fees to the Australians. Bastards.</p> <p>I really wish I could spend more time in Canberra. The ideal work life would be living and socialize in Boston, and then commuting to work in Canberra and hanging out with the Ozlabs folks. So if anyone events a teleportation device, I’ll be eternally grateful…</p> Reflections on Intimacy https://thunk.org/tytso/blog/2002/02/10/reflections-on-intimacy/ Sun, 10 Feb 2002 06:03:00 +0000 https://thunk.org/tytso/blog/2002/02/10/reflections-on-intimacy/ <p>Five other IBM’ers and I flew into Canberra from Brisbane yesterday evening, at the end of the linux.conf.au conference. The last time I was in Canberra, it was two years ago, and they were working for LinuxCare, and I was working for VA Linux Systems. How things change, and yet how they stay the same…. it was so much fun spending time with them, as we traveled as a gaggle through the Brisbane and Sydney airports, geeking about Linux kernel internals, terrorizing Quantas Club attendants, etc. <!-- raw HTML omitted -->🙂<!-- raw HTML omitted --></p> <p>I woke up today, and instead of trying to find a local church, I decided to spend my Sunday morning resting and reflecting, and reading more of “The Art of Happiness” by the Dalai Lama. It’s definitely a book which requires multiple readings, and the metaphor which repeatedly came to mind was that each section required careful chewing, since there was so much there that required careful digesting.</p> <!-- raw HTML omitted --> <p>What is intimacy? There are lots of definitions, from those that focus on the purely physical aspects (“anything involving physical contact”), to the purely psychological ones (“the experience of connectivity”). The one which I most like defines intimacy as sharing one’s innermost self with another.<!-- raw HTML omitted --></p> <p>One of the observations in “The Art of Happiness” which I’ve been meditating over today and yesterday was Dr. Cutler’s observation that the concept of “That Special Someone” as the primary way of obtaining intimacy is really unique to the Western culture (and only in the past century at that). In other times and in other cultures, the definitions of privacy and intimacy, and when and how people share intimacy are quite different. For example, in Japan, the Japanese tend to rely more on a group of same-sex friends as their primary mains of gaining intimacy. And in Colonial America, the way that husbands and wives communicated with each other tended to be much more formal; not much different from how they communicated with acquaintances and strangers.</p> <p>I found this really thought-provoking, since it caused me to think about other ways in which people find intimacy — including writing their thoughts in public Live Journal entries. <!-- raw HTML omitted --> It’s also caused me to understand my Poly friends much more, even if I’m not wired that way. (Although I now wonder how much of it is cultural programming.)</p> <p>In the book, when the Dalai Lama is asked about why he isn’t lonely, despite being separated from his family, being raised as a monk from an early age, as a monk never marrying, etc., he explains that his model of intimacy is based on being willing to open himself up to many others: family, friends, even strangers, and by forming deep and genuine bonds with others based on his and their common humanity.</p> <p>Anyway, it’s certainly something to think about. Even if I don’t have someone special to share with, there are plenty of ways which I can find intimacy, simply by being open to the humanity in others.</p> <blockquote> <p>“If what we seek is happiness, and intimacy is an important ingredient of a happier life, then it clearly makes sense to conduct our lives on the basis of a model of intimacy that includes as many forms of connection with others as possible.”</p> </blockquote> <ul> <li> <ul> <li>*Mmmm…. as I’ve been typing this, I’ve been listening to Stan Rogers. What an incredible song-writer; some of his ballads are simply amazing. I’m really sorry that I wasn’t able get a chance to listen to him live before he passed away.<!-- raw HTML omitted --></li> </ul> </li> </ul> <blockquote> <!-- raw HTML omitted --> </blockquote> <p>…and thus ends my (somewhat unorthodox, but deeply satisfying) Sunday devotions. Now off to lunch, and then to meet with Paul Mackerras and his wife. We’re going to go visit the aquarium, and then if the weather holds, maybe have a barbecue at his house. Whee!</p> Travel down under https://thunk.org/tytso/blog/2002/02/07/travel-down-under/ Thu, 07 Feb 2002 10:38:00 +0000 https://thunk.org/tytso/blog/2002/02/07/travel-down-under/ <p>So here I am with a few spare minutes in the linux.conf.au terminal room in Brisbane, and feeling compelled to do an LJ update, so here goes….</p> <p><!-- raw HTML omitted --><!-- raw HTML omitted --></p> <p>Pulled an all nighter on Saturday (2/2) trying to finish up everything critical that has to be done at home before I leave for Australia. Showed up at church on Sunday at 7 a.m. to make sure that our supply priest didn’t need any help with the early service (Linda, our rector, was in Florida dealing with her mother’s funeral who very suddenly and unexpectedly passed away last week), and to install a new printer in the church office (since the 3 year old HP printer also suddenly but not-so-unexpectedly also passed away last week).</p> <p>After church, went home and finished packing, and then hurried to the airport to catch my flight to Brisbane. The flights was largely uneventful, although I had a bit of a scare in LA due to the fact that you have to leave the secure area when transfering between a domestic and international flight, and the security screening line was insanely long. But that’s a long and unpleasant story which I’ll omit…</p> <p>While in the air, I watched Shrek, which I had missed while it was in the movies. It was a really good movie, which I throughly enjoyed. I reflected on a bit about how I wish I had someone to go to see movies with, and how maybe I should just go and see movies by myself, since seeing more movies in theaters would be a Good Thing.</p> <p>While on the flight, I also started on “The Art of Happiness: A Handbook for Living”, by the Dalai Lama. Definitely a very good read, and very thought provoking. Sample nugget from the first few chapters: An important thing to consider is the difference between pleasure and happiness, and something can bring one but not the other.</p> <p>Arrived in Brisbane, and checked into the Rydges hotel on the South Bank region, which is very cleverly located on the southern bank of the Brisbane River, across from downtown. There is a very convenient “City Cat” service between the hotel and the University, where the conference is held. Travelling down the river on a catamaran is really nice. Brisbane is really, really beautiful, in general. I wish I knew how to scuba dive, and had the time so I could spend some time exploring the Great Barrier Reef….. maybe next time.</p> <p>The linux.conf.au conference is a lot of fun; it’s really good to meet lots of neat folks. Unfortunately network access is limited (only one gigabyte of network bandwidth spread across all of the conference attendees on each day), and so I’m definitely less able to keep up with what’s going on in the rest of the world. Also, talking to people at the conference tends to remind me of all of the other projects that I really want to get done, and I’m feeling frustrated that I don’t have enough time to do everything that I’d like to do. Must learn how to accept the fact that I Can’t Do Everything.</p> <p>Anyway, that’s enough for now. More later….</p> Home sweet home https://thunk.org/tytso/blog/2002/02/02/home-sweet-home/ Sun, 03 Feb 2002 00:18:00 +0000 https://thunk.org/tytso/blog/2002/02/02/home-sweet-home/ <p>So I get home from Linux World, and I have today to run a bunch of errands:</p> <ul> <li>Buy and install a new printer for my church</li> <li>Do Laundry</li> <li>Catch up with with my bills and expense vounchers</li> <li>Mail some very late Christmas presents</li> </ul> <p>…and then it’s off to get Australia for linux.conf.au. And after I get back from that, a few days later, it’s off to Helsinki where I’m teaching a tutorial for NordU 2002 conference. Yelch. <strong>Way</strong> too much travel. And I thought I was going to be able to cut back on my travel schedule. Hah.</p> <p>Well, it’s mostly my fault. The Helsinki trip was planned many months ago. It seemed like a fun thing to do, and I wasn’t planning to do anything else. Then came the e-mail message from Rusty just before Christmas.</p> <blockquote> <p>Congratulations! Your paper was accepted to linux.conf.au! Since you’re going to be in town, how would you like to do the Keynote?</p> </blockquote> <p>There was only one problem. I hadn’t submitted a paper.</p> <p>The note went on to say,</p> <p>Since you didn’t request travel funding, there’s no money in the budget for your travel expenses.</p> <p>Well, at least <em>that</em> part was true; I didn’t request travel funding — becuase I didn’t expect to bo going!!</p> <p>Well, Rusty was able to dig up funding, so I agreed to go, lest there be two rather large holes blown into his schedule. But it means that February is travel hell month. Don’t get me wrong. I do like travel; but there is such a thing as too much, and it’s really hard to have anything resembling a social life when you’re constantly on the road.</p> <p>Sigh, well, it’ll be good to be back. And after that, hopefully my life really will settle down.</p> One room bedroom plus boyfriend? https://thunk.org/tytso/blog/2002/01/30/one-room-bedroom-plus-boyfriend/ Wed, 30 Jan 2002 18:46:00 +0000 https://thunk.org/tytso/blog/2002/01/30/one-room-bedroom-plus-boyfriend/ <p>I was recently getting up to date with a <a href="http://www.osdi.org/">friend’s weblog</a>, when I came across an entry which linked to an entry on the “best of craigslist.org” — <a href="http://www.craigslist.org/best/2455060.html">One bedroom apartment plus boyfriend</a>. Dria described the page as:</p> <blockquote> <p>One of the most strangely romantic things I’ve read in a long time…especially the part about the ham sandwiches.</p> </blockquote> <p>I could kinda see how it might be viewed as romantic; it certainly describes some of the attributes of a romantic relationship. But the part which struck me as being slightly creepy was that the author was writing about this in a completely generic manner. And to me, love is about wanting to making ham sandwiches, spending time talking to someone, etc., because of a connection I have with <em>that person</em> — and not some person in the generic.</p> <p>Perhaps I’m overcompensating due to a tendency I’ve had in the past to “being in love with being in love”, as opposed to “being in love with the person that you’re with”. Maybe it’s just one of those “only in San Francisco; you East Coast people just don’t understand” things. Perhaps.</p> <!-- raw HTML omitted --> <p>But I see it as a much more extreme example of why a lot of people get into a relationship; it’s because they want the benefits of coupledom, or because they’re lonely, or whatever. If they’re lucky, perhaps the couple will actually get to know each other better, and it will deepen to something much stronger. But if not, then sooner or later they’ll discover that they’ve been dating a fantasy, and the real person simply can’t live up to that fantasy. In most cases, that just (“<em>just?</em>” Hah!) means they’d have to take the emotional hit of the breakup. But in this case, they’d be stuck with each other for the duration of the lease!<!-- raw HTML omitted --></p> <p>On the other hand, if you don’t start with that bit of fantasy (with the attendant risk of running your heart through a meat-grinder), how else does a relationship get off the ground? Clearly some amount of risk-taking is a good thing, or else the only way people would hook up with each other would be in “When Harry Met Sally” scenarios, and stuff like that only happens in the movies. Yet signing a one-year lease for “a one-room bedroom plus boyfriend” seems like it’s more than a bit over the line (at least, over my personal comfort line, anyway).</p> <p>So what’s the right level? I dunno. It’s an interesting question….</p> New York City https://thunk.org/tytso/blog/2002/01/29/new-york-city/ Tue, 29 Jan 2002 06:18:00 +0000 https://thunk.org/tytso/blog/2002/01/29/new-york-city/ <p>I goofed; I missed the last couple of LSB conference calls due to my being terminally busy, and it turns out the LSB meeting was moved to Tuesday (tomorrow). If I had known that, I could have taken the train down to NYC today, instead of getting into the City one day earlier. It also would have made my weekend much less stressful. Oops.</p> <p>On the other hand, it did mean that I got a lot of chores done on Sunday that I otherwise probably would have otherwise procrastinated, so it wasn’t all bad.</p> <p>I found that NYC wasn’t as unpleasant as I had remembered it being. I’m not sure why. It may be that I’m staying in a better part of the city (right in the middle of Times Square). Or it might be that I’ve gotten less picky about urban environments since the last time I’ve been down here. It still seems very big and impersonal, especially compared to Boston. Boston has always seemed to me to be about the “right” size for a city.</p> <p>Also, fortunately the hotel room had a fast Ethernet connection, so I spend the day productively getting work done. And this evening, I wasted time working on improvements to the emacs LJ client. It now handles pictures/user icons, and correctly handles requesting the LJ fast servers if the user has a paid account. Woo hoo! I had a blast. I haven’t had a chance to hack emacs lisp code in a long time; I had forgotten how much fun it was.</p> <p>(Yes, dear friends, Ted is a geek. Did you ever doubt it?)</p> <p>And now, time to get some dinner. And one thing NYC does have going for (despite all its faults) it is good food. <!-- raw HTML omitted --></p> My god…. it's full of todo items https://thunk.org/tytso/blog/2002/01/25/my-god-its-full-of-todo-items/ Fri, 25 Jan 2002 19:40:00 +0000 https://thunk.org/tytso/blog/2002/01/25/my-god-its-full-of-todo-items/ <p>The good news: I’ve started making a todo list, which helps me to be more efficient.</p> <p>The bad news: looking at the large number of items on it is causing me to stress out very badly…..</p> <p>The trick is to pretend 90% of the items on my todo list, aren’t; unless I get tempted to flitter away time, at which point I need to look at the whole list again.</p> <p>Blaaaargh.</p> Happy birthday, me. https://thunk.org/tytso/blog/2002/01/24/happy-birthday-me/ Thu, 24 Jan 2002 08:56:00 +0000 https://thunk.org/tytso/blog/2002/01/24/happy-birthday-me/ <p>Wow. I hadn’t realized until I looked at that last post that today’s my birthday. I had allowed it to completely slip my mind, what with all of the work that I have on my plate.</p> <p>I’m not sure what that says about me; but it’s almost certainly not good.</p> <p>Well, only five more minutes of my birthday. I’ll have to find some way of celebrating.</p> <p>Happy birthday, me.</p> First post! https://thunk.org/tytso/blog/2002/01/24/first-post/ Thu, 24 Jan 2002 08:50:00 +0000 https://thunk.org/tytso/blog/2002/01/24/first-post/ <p>OK, so I’ve done it. I’ve broken down and started doing the public journal / blog thing.</p> <p>I used to think that pouring one’s feelings in a public forum for all to see was either arrogant (Are my ramblings really worth publishing for all the world to see? Do I really want to bore people with tidbits out of my life?) or involved more exhibitionism than I was comfortable with (that Not Being My Kink).</p> <p>To a certain extent, those concerns are there, and still real. But having read enough web journals of friends and people who I know only more distantly, there were some comforting things which I found that encouraged me to give it a try for myself.</p> <p>What did I find? First of all, that my concerns, ramblings, neuroses, etc., aren’t all that different fr om others. And this is true not just of folks who I would expect; folks which I’d consider my friends. For example, there’s one person who I only know distantly, but whose rough (and truth be told, unpleasant) exterior hides a sensitive, thoughtful, and vulnerable soul. That’s something I only discovered by reading that person’s live journal. Although I doubt we’ll ever be close friends, it did demonstrate how we all are far more alike than we are different under our skin. Most people’s hopes and dreams simply aren’t all that different. And that’s a good and comforting thing to know.</p> <p>Secondly, it brought to mind Socrates’s oft-quoted line about how the unexamined life isn’t worth living. For the past two years, I’ve been so wrapped up at work that I haven’t really had time to think about whether I was happy with the direction of my life, and where it was heading. Part of it was certainly a reaction to my past breakups with previous SO’s, but part of it was simply getting sucked up into the go-go life of a Silly Valley startup. (Thank goodness I was only telecommuting as opposed to living there; I suspect I would have <strong>seriously</strong> gone over the workaholic edge if I had moved out West.) Reading other journals reminded me about my need to stop and take look at whether I’m satisified with where I am in my own personal journey.</p> <p>So we’ll see how things go. One of the advantages of my recent job change (I now work for IBM), is that I’m now working for a company which takes the work/life balance thing very seriously. Of course, having said this, February looks like a disastrous travel month. It’s not entirely my fault, though. I hadn’t planned to go to Australia; but last month, I received a “congratulations your paper has been accepted; and oh by the way, how would you like to do the keynote speech?” letter. The only problem was (a) I had never actually submitted a paper to that conference, and (b) it’s right before a conference in Helsinki where I had agreed to teach a kernel tutorial. The organizer of linux.conf.au is a good friend of mine though, so I let my arm be twisted into doing it as well as NordU/Usenix 2002. (I’m really too much of a soft-touch.)</p> <p>So my challenge for this upcoming year is not say “yes” to too many things, take better care of my body, and pay more attention to my social life. There! I’ve said it in public; so I’ve committed myself!</p>