-- MySQL dump 10.9 -- -- Host: localhost Database: gregariusdb -- ------------------------------------------------------ -- Server version 5.0.15-standard /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO" */; -- -- Table structure for table `cache` -- CREATE TABLE `cache` ( `cachekey` varchar(128) NOT NULL, `timestamp` datetime NOT NULL, `cachetype` enum('ts','icon','feed') NOT NULL, `data` blob, PRIMARY KEY (`cachekey`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `cache` -- /*!40000 ALTER TABLE `cache` DISABLE KEYS */; LOCK TABLES `cache` WRITE; INSERT INTO `cache` VALUES ('data_ts','2005-12-21 11:40:03','ts',NULL),('http://www.pycs.net/favicon.ico','2005-12-11 11:54:11','icon',0x0000010001001010020001000100B0000000160000002800000010000000200000000100010000000000000000000000000000000000000000000000000000000000FFFFFF000000000052F4000016840000168400001AF400001A84000012FF000000000000FFFF00007DC900007DBE00001DBE00006DBD00006ABB0000174C0000FFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000); UNLOCK TABLES; /*!40000 ALTER TABLE `cache` ENABLE KEYS */; -- -- Table structure for table `channels` -- CREATE TABLE `channels` ( `id` bigint(11) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `url` varchar(255) NOT NULL default '', `siteurl` varchar(255) default NULL, `parent` tinyint(4) default '0', `descr` varchar(255) default NULL, `dateadded` datetime default NULL, `icon` varchar(255) default NULL, `position` int(11) NOT NULL default '0', `mode` int(16) NOT NULL default '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `channels` -- /*!40000 ALTER TABLE `channels` DISABLE KEYS */; LOCK TABLES `channels` WRITE; INSERT INTO `channels` VALUES (1,'After thought','http://skiadas.dcostanet.net/afterthought/feed/','http://skiadas.dcostanet.net/afterthought',0,'A weblog about TextMate, the Universe, and Everything','2005-11-20 00:25:47','',0,1),(2,'Test Blog','http://dcostanet.net/wordpress/feed/atom/','http://dcostanet.net/wordpress',0,'Just another WordPress weblog','2005-12-09 00:11:08','',1,1),(3,'ongoing','http://www.tbray.org/ongoing/ongoing.atom','./',0,'ongoing fragmented essay by Tim Bray','2005-12-11 11:53:35','',2,1),(4,'bbum\'s blog-o-mat','http://www.pycs.net/bbum/rss.xml','http://www.pycs.net/bbum/',0,'...so that google can help organize my head.','2005-12-11 11:54:11','blob:http://www.pycs.net/favicon.ico',3,1); UNLOCK TABLES; /*!40000 ALTER TABLE `channels` ENABLE KEYS */; -- -- Table structure for table `config` -- CREATE TABLE `config` ( `key_` varchar(127) NOT NULL default '', `value_` text NOT NULL, `default_` text NOT NULL, `type_` enum('string','num','boolean','array','enum') NOT NULL default 'string', `desc_` text, `export_` varchar(127) default NULL, PRIMARY KEY (`key_`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `config` -- /*!40000 ALTER TABLE `config` DISABLE KEYS */; LOCK TABLES `config` WRITE; INSERT INTO `config` VALUES ('rss.output.cachedir','/tmp/magpierss','/tmp/magpierss','string','Where should magpie store its temporary files? (Apache needs write permissions on this dir.)','MAGPIE_CACHE_DIR'),('rss.output.encoding','UTF-8','UTF-8','string','Output encoding for the PHP XML parser.','MAGPIE_OUTPUT_ENCODING'),('rss.output.itemsinchannelview','2','10','num','Number of read items shown on for a single channel.',NULL),('rss.output.showfavicons','true','true','boolean','Display the favicon for the channels that have one. Due to a IE bug, some icons do not render correctly. You can either change the URL to the icon in the admin screen, or turn the display of favicons off globally here.',NULL),('rss.output.usemodrewrite','false','true','boolean','Make use of apache\'s mod_rewrite module to return sexy urls. Turn this off if your host doesn\'t allow you to change this apache setting.',NULL),('rss.config.dateformat','F jS, Y, g:ia T','F jS, Y, g:ia T','string','Format to use when displaying dates. See here for help on the format: http://ch.php.net/manual/en/function.date.php Note that direct access to a given feed\\\'s month and day archives more or less depends on the fact that this date format contains the \"F\" (Month) and \"jS\" (day) elements in this form. So feel free to change the order of the elements, but better leave those two tokens in :)',NULL),('rss.config.showdevloglink','false','false','boolean','Show a link to the gregarius devlog. This is mainly useful on the actual live gregarius site. You can safely set this to \'false\' if you don\'t want to display a link back.',NULL),('rss.meta.debug','true','false','boolean',' When in debug mode some extra debug info is shown and the error reporting is a bit more verbose.',NULL),('rss.output.compression','true','true','boolean','This variable turns output compression on and off. Output compression is handled by most browsers.',NULL),('rss.output.channelcollapse','true','true','boolean','Allow collapsing of channels on the main page. ',NULL),('rss.output.usepermalinks','true','true','boolean','Display a permalink icon and allow linking a given item directly.',NULL),('rss.config.markreadonupdate','false','false','boolean','Mark all old unread feeds as read when updating if new unread feeds are found.',NULL),('rss.output.lang','en,es,fr,dk,it,pt_BR,se,0','en,es,fr,dk,it,pt_BR,se,0','enum','Language pack to use.',NULL),('rss.config.absoluteordering','true','true','boolean','Allow ordering of channels and folders in the admin section. If false, channels and folders will be organized by their titles.',NULL),('rss.config.robotsmeta','index,follow','index,follow','string','How should spiders crawl us? (see http://www.robotstxt.org/wc/meta-user.html for more info).',NULL),('rss.config.serverpush','true','true','boolean','Use server push on update.php for a more user-friendly experience. This is only supported by Mozilla browsers (Netscape, Mozilla, Firefox,...) and Opera. These browsers will be autodetected. If you\\\'re not using one of these (you should) you can as well turn this off.',NULL),('rss.config.refreshafter','45','45','num','If this option is set the feeds will be refreshed after x minutes of inactivity. Please respect the feed providers by not setting this value to anything lower than thirty minutes. Set this variable to 0 turn this option off.',NULL),('rss.input.allowed','a:21:{s:1:\"a\";a:2:{s:4:\"href\";i:1;s:5:\"title\";i:1;}s:1:\"b\";a:0:{}s:10:\"blockquote\";a:0:{}s:2:\"br\";a:0:{}s:4:\"code\";a:0:{}s:3:\"del\";a:0:{}s:2:\"em\";a:0:{}s:1:\"i\";a:0:{}s:3:\"img\";a:2:{s:3:\"src\";i:1;s:3:\"alt\";i:1;}s:3:\"ins\";a:0:{}s:2:\"li\";a:0:{}s:2:\"ol\";a:0:{}s:1:\"p\";a:0:{}s:3:\"pre\";a:0:{}s:3:\"sup\";a:0:{}s:5:\"table\";a:0:{}s:2:\"td\";a:0:{}s:2:\"th\";a:0:{}s:2:\"tr\";a:0:{}s:2:\"tt\";a:0:{}s:2:\"ul\";a:0:{}}','a:21:{s:1:\"a\";a:2:{s:4:\"href\";i:1;s:5:\"title\";i:1;}s:1:\"b\";a:0:{}s:10:\"blockquote\";a:0:{}s:2:\"br\";a:0:{}s:4:\"code\";a:0:{}s:3:\"del\";a:0:{}s:2:\"em\";a:0:{}s:1:\"i\";a:0:{}s:3:\"img\";a:2:{s:3:\"src\";i:1;s:3:\"alt\";i:1;}s:3:\"ins\";a:0:{}s:2:\"li\";a:0:{}s:2:\"ol\";a:0:{}s:1:\"p\";a:0:{}s:3:\"pre\";a:0:{}s:3:\"sup\";a:0:{}s:5:\"table\";a:0:{}s:2:\"td\";a:0:{}s:2:\"th\";a:0:{}s:2:\"tr\";a:0:{}s:2:\"tt\";a:0:{}s:2:\"ul\";a:0:{}}','array','This variable controls input filtering. HTML tags and their attributes, which are not in this list, get filtered out when new RSS items are imported.',NULL),('rss.output.showfeedmeta','false','false','boolean','Display meta-information (like a web- and rss/rdf/xml url) about each feed in the feed side-column.',NULL),('rss.output.noreaditems','false','false','boolean','Show unread items only on the frontpage.',NULL),('rss.output.theme','default','default','string','The theme to use. Download more themes from the Gregarius Themes Repository.',NULL),('rss.output.cachecontrol','false','false','boolean','If true, Gregarius will negotiate with the browser and check whether it should get a fresh document or not.',NULL),('rss.config.plugins','a:1:{i:0;s:19:\"autohighlighter.php\";}','a:2:{i:0;s:13:\"urlfilter.php\";i:1;s:18:\"roundedcorners.php\";}','array','Plugins are third-party scripts that offer extended functionalities. More plugins can be found at the Plugin Repository.',NULL),('rss.input.allowupdates','true','true','boolean','Allow Gregarius to look for updates in existing items.',NULL),('rss.output.titleunreadcnt','false','false','boolean','Display unread count in the document title.',NULL),('rss.config.tzoffset','0','0','num','Timezone offset, in hours, between your local time and server time. Valid range: \"-12\" through \"12\"',NULL),('rss.output.numitemsonpage','100','100','num','Maximum number of items displayed on the main page. Set this variable to 0 to turn this option off.',NULL),('rss.config.feedgrouping','false','false','boolean','When true, Gregarius groups unread items per feed and sorts the feeds according to the rss.config.absoluteordering configuration switch. When false, unread items are not grouped by feed, but are sorted by date instead.',NULL),('rss.config.datedesc.unread','true','true','boolean','When true, Gregarius displays newer unread items first. If false, Gregarius will display older unread items first.',NULL),('rss.config.datedesc.read','true','true','boolean','When true, Gregarius displays newer read items first. If false, Gregarius will display older read items first.',NULL),('rss.config.autologout','false','false','boolean','When true, Gregarius will automatically remove the \"admin cookie\" when the browser window is closed, effectively logging you out.',NULL),('rss.config.publictagging','false','false','boolean','When true, every visitor to your Gregarius site will be allowed to tag items, when false only the Administrator (you) is allowed to tag.',NULL),('rss.config.rating','true','true','boolean','Enable the item rating system.',NULL),('rss.output.barefrontpage','false','false','boolean','Suppress the output of any read item on the front page.',NULL),('rss.output.title','Gregarius','Gregarius','string','Sets the title of this feedreader.',NULL),('rss.config.ajaxparallelsize','3','3','num','Sets the number of feeds to update in parallel. Remember to set rss.config.serverpush to false.',NULL),('rss.config.ajaxbatchsize','3','3','num','Sets the number of feeds in a batch when using the ajax updater. Remember to set rss.config.serverpush to false.',NULL),('rss.config.defaultdashboard','true','true','boolean','If the first page seen when entering the admin section should be the dashboard',NULL),('plugins.ah.keywords','a:2:{s:5:\"those\";s:4:\"blue\";s:3:\"hap\";s:6:\"yellow\";}','a:2:{s:5:\"those\";s:4:\"blue\";s:3:\"hap\";s:6:\"yellow\";}','array','',''),('plugins.ah.colors','a:2:{i:0;s:5:\"brown\";i:1;s:4:\"blue\";}','a:2:{i:0;s:3:\"red\";i:1;s:4:\"blue\";}','array','',''),('plugins.ah.pairsno','2','2','string','',''),('plugins.at.feeds','a:0:{}','a:1:{i:0;s:1:\"1\";}','array','',''),('rss.output.frontpage.numitems','2','100','num','Maximum number of items displayed on the main page. Set this variable to 0 to show no items on the main page.',NULL),('rss.output.frontpage.mixeditems','true','true','boolean','Show read items along with unread items on the front page?',NULL),('rss.output.frontpage.numreaditems','-1','-1','num','If there are no unread items then how many items to show on the frontpage. Set this to -1 if you want it to be the same as rss.output.numitemsonmainpage',NULL); UNLOCK TABLES; /*!40000 ALTER TABLE `config` ENABLE KEYS */; -- -- Table structure for table `folders` -- CREATE TABLE `folders` ( `id` tinyint(11) NOT NULL auto_increment, `name` varchar(127) NOT NULL default '', `position` int(11) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `folders` -- /*!40000 ALTER TABLE `folders` DISABLE KEYS */; LOCK TABLES `folders` WRITE; INSERT INTO `folders` VALUES (0,'',0); UNLOCK TABLES; /*!40000 ALTER TABLE `folders` ENABLE KEYS */; -- -- Table structure for table `item` -- CREATE TABLE `item` ( `id` bigint(16) NOT NULL auto_increment, `cid` bigint(11) NOT NULL default '0', `added` datetime NOT NULL default '0000-00-00 00:00:00', `title` varchar(255) default NULL, `url` varchar(255) default NULL, `enclosure` varchar(255) default NULL, `description` text, `unread` tinyint(4) default '1', `pubdate` datetime default NULL, `author` varchar(255) default NULL, PRIMARY KEY (`id`), KEY `url` (`url`), KEY `cid` (`cid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `item` -- /*!40000 ALTER TABLE `item` DISABLE KEYS */; LOCK TABLES `item` WRITE; INSERT INTO `item` VALUES (1,1,'2005-11-20 00:25:47','Open source software and the mac','http://skiadas.dcostanet.net/afterthought/2005/11/15/open-source-software-and-the-mac/','','

Here’s a pretty good list of open source software for the mac. \nSameer will be very happy about those too (though he probably already knows about most of them). There’s definitely a lot of positive things to be said about open source projects, but I’m probably not the one to comment on that very much. [...]

\n',0,'2005-11-15 15:48:19','Haris'),(2,1,'2005-11-20 00:25:47','Adler and the Mac','http://skiadas.dcostanet.net/afterthought/2005/11/15/adler-and-the-mac/','','

A wonderful video that will be of great interest to mac developers is circulated online. It’s a 2.5 hour long discussion between some of the best independent mac programmers, including the creators of Quicksilver, VoodooPad, Fire, Delicious Library and NetNewsWire. It’s a relatively large download, about half a gig, but definitely worth it. It’s released [...]

\n',0,'2005-11-15 08:36:39','Haris'),(3,1,'2005-11-20 00:25:47','TextMate Rocks','http://skiadas.dcostanet.net/afterthought/2005/11/11/textmate-rocks/','','

It’s time to once again rave about my all time favorite editor TextMate. Since a picture is worth a thousand words, here’s how TextMate looks like when I have my thesis project open:

\n\n

First of all, notice the wonderful coloring scheme. It is fully customizable through the Preferences menu, and there are lots of custom themes [...]

\n',0,'2005-11-11 23:15:27','Haris'),(4,1,'2005-11-20 00:25:47','Measure for measure','http://skiadas.dcostanet.net/afterthought/2005/11/11/measure-for-measure/','','

Yesterday I had the great pleasure of watching the Shakespeare play “Measure for measure”, presented by Illinois Wesleyan’s School of Theatre Arts. It was directed by my good friend Tom Quinn, and it was truly a wonderful experience. Surprisingly enough I understood more than I expected to, and the actors (all undergraduates) did a really [...]

\n',0,'2005-11-11 16:14:20','Haris'),(5,1,'2005-11-20 00:25:47','Merging PDFs','http://skiadas.dcostanet.net/afterthought/2005/11/09/merging-pdfs/','','

Here’s a wonderful little app called PDFLab that does an excellent job manipulating PDF files and doing all sorts of useful things with them. I used it to merge together a bunch of 1-page PDF files, for easy two-sided printing.

\n',0,'2005-11-09 17:05:25','Haris'),(6,1,'2005-11-20 00:25:47','Flipping a coin','http://skiadas.dcostanet.net/afterthought/2005/11/09/flipping-a-coin/','','

Here’s my new favorite way for flipping a coin: In a command line, type:

\n\n

echo \"date \"+%S\"%2\" ¦ bc

\n\n

and press enter, or even better, from a file in TextMate, type this in a line and press Control-R.

\n\n

What’ s your favorite way?

\n\n

Later

\n',0,'2005-11-09 16:54:54','Haris'),(7,1,'2005-11-20 00:25:47','How far is too far?','http://skiadas.dcostanet.net/afterthought/2005/11/03/how-far-is-too-far/','','

How far will music companies go to ‘’protect their digital rights\'’?

\n\n

This article describes a mechanism that SONY uses as a DRM protection scheme on its CD’s, which mechanism is particularly intrusive, and in fact is not being mentioned as such in the EULA. In effect, when you play one of the SONY CD’s protected this [...]

\n',0,'2005-11-03 08:40:09','Haris'),(8,1,'2005-11-20 00:25:47','Walking the walk','http://skiadas.dcostanet.net/afterthought/2005/11/02/walking-the-walk/','','

I finally found a way to exercise a little bit! What that means in my case is walking for an hour or thereabouts, as many days a week as possible. And now I found a way to get myself to do that! I like going to work in “The Coffeehouse and Deli”, a pretty descent [...]

\n',0,'2005-11-02 17:32:57','Haris'),(9,1,'2005-11-20 00:25:47','Two talks and LaTeX Beamer','http://skiadas.dcostanet.net/afterthought/2005/10/29/two-talks-the-latex-beamer/','','

In the last couple of weeks I have been busy preparing for and giving two talks. One was a talk to the math department at Chicago State University, on stuff related to my research. The second was a general audience science colloquium here at Illinois Wesleyan University. They both have been great experiences, and have [...]

\n',0,'2005-10-29 15:09:26','Haris'),(10,1,'2005-11-20 00:25:47','Walking on bicycle paths','http://skiadas.dcostanet.net/afterthought/2005/10/19/walking-on-bicycle-paths/','','

A woman in the UK was arrested and held for four hours because she was walking along a cycle path, which was apparently illegal in that particular path!!

\n\n

Oh, did I mention she was arrested under the Terrorist Act?

\n\n

Later

\n',0,'2005-10-19 14:18:05','Haris'),(11,1,'2005-12-08 18:24:41','My second plugin!','http://skiadas.dcostanet.net/afterthought/2005/12/07/my-second-plugin/','','

Gregarius is coming along nicely! They have just created a nice setup for plugins to save user options on the database, and this prompted me to write my second plugin. It’s called Auto highlighter, and what it does is that you select a keyword, and a color, and it highlights that keyword anywhere in the [...]

\n',0,'2005-12-07 23:18:26','Haris'),(12,1,'2005-12-08 18:24:41','Resume in html','http://skiadas.dcostanet.net/afterthought/2005/12/05/resume-in-html/','','

I just finished converting my cv to html format, using Tim Bray’s template, which I must say I find wonderful. As he so eloquently puts it, “Why would anyone want a word processor any more?”

\n\n

It am very pleased with the result. Have a look and tell me what you think, and if you have a [...]

\n',0,'2005-12-05 23:36:51','Haris'),(13,1,'2005-12-08 18:24:41','LaTeX in TextMate, part 2','http://skiadas.dcostanet.net/afterthought/2005/12/03/latex-in-textmate-part-2/','','

After some discussion on the #textmate IRC channel, we decided to break the “Insert Environment/Command based on word” command in two commands. So I decided to take this opportunity to talk about TextMate’s LaTeX bundle in general, and how I go about using it.

\n\n

First of all, we have snippets for sections, subsections and subsubsections, triggered [...]

\n',0,'2005-12-03 23:11:16','Haris'),(14,1,'2005-12-08 18:24:41','bon bon','http://skiadas.dcostanet.net/afterthought/2005/11/29/bon-bon/','','

Recently I had the good fortune to visit once again a great chocolate store in Chicago named bon bon. I highly recommend it to everyone. They have an extensive collection of chocolates with the most unimaginable and interesting combinations of spices, from chili to anise to cardamom to green tea leaves. And they look amazing. [...]

\n',0,'2005-11-29 19:55:45','Haris'),(15,1,'2005-12-08 18:24:41','TextMate’s little surprises','http://skiadas.dcostanet.net/afterthought/2005/11/27/textmates-little-surprises/','','

Textmate never ceases to amaze me. This time I was editing an html file, and I used the internal html preview window that it has, and then I left the window open. The miracle that occurred is that as I continued editing, the preview window was automatically updated instantly! Without me even having to save [...]

\n',0,'2005-11-28 00:53:09','Haris'),(16,1,'2005-12-08 18:24:41','LaTeX in TextMate, part 1','http://skiadas.dcostanet.net/afterthought/2005/11/26/latex-in-textmate-part-1/','','

I just took my first steps in Ruby by improving on one of the LaTeX commands in TextMate. It’s the command used for creating environments, or it can also be used for plain commands. The way it works is as follows: Suppose the current word, or selection, is name. Then, upon executing the command (current [...]

\n',0,'2005-11-26 23:33:34','Haris'),(17,1,'2005-12-08 18:24:41','My first plugin!','http://skiadas.dcostanet.net/afterthought/2005/11/26/my-first-plugin/','','

I recently started helping out as much as I can with the development of Gregarius, a very neat open source feed aggregator which I use on a daily basis, so I figured I might as well help out with it, and learn some AJAX technology along the way. It is after all where I get [...]

\n',0,'2005-11-26 01:16:10','Haris'),(18,2,'2005-12-09 00:11:08','Dupes','http://dcostanet.net/wordpress/2005/12/07/dupes/','','

One advantage of having a web based aggregator that constantly pings away at sites (albiet very politely), is that you get to catch mistakes that feed publishers make. Notice any difference in these two items from Slashdot?.

\n

\"Slashdot

\n

Click the image for a close look…. I guess Slashdot is worried about getting sued by Microsoft \')\' ….\n

\n',0,'2005-12-07 20:56:00','Sameer'),(19,2,'2005-12-09 00:11:08','Misc links','http://dcostanet.net/wordpress/2005/12/04/misc-links/','',' \n

Update: This is my 101’st post.\n

\n',0,'2005-12-04 21:01:00','Sameer'),(20,2,'2005-12-09 00:11:09','Books','http://dcostanet.net/wordpress/2005/11/30/books/','','

I gave up midway on A feast for Crows and started reading Sundiver by David Brin. Time to make a trip down to the Library to pick up some books for the winter break. Any recommendations?\n

\n',0,'2005-11-30 19:56:00','Sameer'),(21,2,'2005-12-09 00:11:09','Fires on campus','http://dcostanet.net/wordpress/2005/11/19/fires-on-campus/','','

It looks they finally caught the person who has been setting fires on campus.\n

\n',0,'2005-11-19 11:12:00','Sameer'),(22,2,'2005-12-09 00:11:09','ibuzz','http://dcostanet.net/wordpress/2005/11/17/ibuzz/','','

Boingboing had a post yesterday about the iBuzz. I found it quite funny. N’s wife says that this could be very unfortunate if the song finishes before you do, especially if the next song on your playlist isn’t the right tempo. On the otherhand, it could start a very interesting subculture where people recommend “good” playlists.\n

\n',0,'2005-11-17 08:57:00','Sameer'),(23,2,'2005-12-09 00:11:09','Foreign students in the US','http://dcostanet.net/wordpress/2005/11/15/97/','','

Reuben has an interesting post about foreign student stats in the US. I have always wondered about what these numbers were. I am too lazy to say anything about them except that it is “interesting….” . Read for your self below.

\n
\n \n Here’s some stats of interest to those of us who went to school in the U.S. India continues to be the top exporter of students (80,466) into the United States, followed by China. 72 percent of Indian students enrolled at the graduate school level, while 20% enrolled for undergraduate programs. As a general trend though, international admissions into the U.S. seems to be declining, a pattern that emerged in the wake of post-9/11 rules and regulations.

\n

The second table shows the top 5 importers of foreign students among U.S. universities. I am not surprised at all by USC, UIUC and UT figuring in that list, but was intrigued that Columbia and NYU would show up. After all, both schools are private and have relatively high tuition fees (not to mention the costs of living in Manhattan) compared to state schools. Is New York truly the best college town in the U.S. now, as a friend of mine had once suggested?

\n

\n

Top Exporters of Students

\n

1. India
2. China
3. South Korea
4. Japan
5. Canada

\n

Top Importers of Students

\n

1. University of Southern California
2. University of Illinois, Urbana-Champaign
3. University of Texas, Austin
4. Columbia University
5. New York University\n\n

\n',0,'2005-11-15 22:52:00','Sameer'),(24,2,'2005-12-09 00:11:09','Blog That','http://dcostanet.net/wordpress/2005/11/15/blog-that/','','

I wrote a Gregarius plugin to send any item to a blog with 1 click. Yes I know another plugin!!. This is the last one for a while, I promise.. Maybe I should patent this one like amazon did. Anyway, here is a screenshot of what the output looks like.

\n Screenshots\n

\"blog

\n

You can edit the output by editing a template file just like you would do for a regular Gregarius theme.

\n Download\n

Nov 26, 2005. Download version 0.3.1

\n Older Versions\n \n \n \n Requirements\n

Gregarius version 0.5.2 +

\n Notes\n \n',0,'2005-11-15 12:08:00','Sameer'),(25,3,'2005-12-11 11:53:35','A Damn Fine Cup of Coffee','Brazza','','\n

A latte actually, at\nBrazza, on Lonsdale Road, in North\nVancouver.\nPictured, with a funny coffee story.

\n\"A\n

They have gelati as well and tasty-looking snacks; highly recommended.

\n

A couple of months ago, stopping by my\nlocal coffee joint, which is much more down-to-earth, for my daily latte, the\ncute plump barista caught my eye as she poured. I wandered over and she was\ndoing a pattern kind of like the one above, only heart-shaped.\nShe handed over the coffee and giggled at me: “It’s a bum!”

\n',0,'2005-12-10 14:00:00','Tim Bray'),(26,3,'2005-12-11 11:53:35','From Nob Hill','From-Nob-Hill','','\n

I stayed a night last week at a hotel on on Nob Hill in San Francisco which\nwas only OK so it gets no link, but my room was on the nineteenth floor\nlooking south, and the Fogtown morning air and the vista’s breadth were way\ntoo much \nfor my little pocket camera, but a couple are worth publishing anyhow just\nbecause they’re fun to look at.

\n

If I were a real PhotoShop pro I’d use a de-graining filter, but this is\nreally about how it looked.

\n\"San\n

Straight down nineteen stories, and lots of stories in that picture too.

\n\"San\n',0,'2005-12-10 14:00:00','Tim Bray'),(27,3,'2005-12-11 11:53:35','Writing and Speaking','Writing','','\n

Right now I’m working on my\nApacheCon\nkeynote. I decided not to use slides; actually, that’s not quite true, I have\nexactly four slides, which contain, in aggregate, five words. (I will, however,\nhave props). This means\nthat I pretty well have to write out the whole speech. I’m doing it here in\nongoing as a blog entry, simply because I’ve got a\nhighly-tuned writing environment where I can go fast. \nI’m not going to hit the “publish” button because unlike some people, I don’t\nhave the courage to show the world half-baked works-in-progress,\nand anyhow, it contains a real actual Product Announcement.\nWhat’s interesting is that as I go back and forth editing the text, I’m\nconscious that these are words to be spoken, rather than read off the\nscreen, and it makes a big difference. Among other things, it means that when\nI’m finished, if I decide to publish it here, I’m going to have\nto go back and do a major re-write, because while I hope it sounds natural\ncoming off the stage, it sure doesn’t read like anything I’d write.

\n',0,'2005-12-10 14:00:00','Tim Bray'),(28,3,'2005-12-11 11:53:35','Dominator','Dominator','','\n

I haven’t been watching that much hockey this year (basketball’s my\nwinter game) and I hadn’t seen Ottawa play, and I hadn’t seen one of\nthe new-rules shootouts. Until this evening; on TV mind you, but if they were\nall going to be like this I’d see about getting some tickets. The Canucks got\naway with the win, barely, four deep in the shootout. They actually didn’t\nplay as well I’ve seen them in a couple of other games this year, but still it\nwas good hockey on both sides.\nIf Vancouver had been playing a team that had an actual human being in goal,\nas opposed to\nDominik Hašek, the\nSenators would have been toast. I’ve always \nthought that the shootouts in soccer were lame and pathetic and stupid, but\nlet me tell you, a hockey shootout is first-rate fun. We’re starting to get\nthe occasional high-def game, too; I may become a fan.

\n',0,'2005-12-09 14:00:00','Tim Bray'),(29,3,'2005-12-11 11:53:35','FSS: Henna Hand','FSS','','\n

Friday Slide Scan #16 is from July 1983 and is labeled “Loni MM, hand\npainted: henna”.

\n\"Hand\n

I don’t know who Loni MM was.

\n

Images in the Friday Slide Scans are from 35mm slides taken between 1953\nand 2003 by (in rough chronological order)\nBill Bray, \nJean Bray, Tim Bray, Cath\nBray, and\nLauren Wood; when I know\nexactly who took one, I’ll say; in this case, Bill Bray. \nMost but not all of the slides were on Kodachrome; they were digitized using\na Nikon CoolScan 4000 ED scanner and cleaned up by a combination of the Nikon\nscanning software and PhotoShop Elements.

\n',0,'2005-12-09 14:00:00','Tim Bray'),(30,3,'2005-12-11 11:53:35','No Niagara!','No-Niagara','','\n

Kraigus Shmeggus (hey, he made it up, not me),\nexplains why\nsysadmins should stay away from Niagaras, and offers additional wisdom on the\nperfidiousness of professors.

\n',0,'2005-12-09 14:00:00','Tim Bray'),(31,3,'2005-12-11 11:53:35','Filesystem Lessons','ZFS','','\n

I had the idea that I’d chop up the disk on my Ultra 20 into a bunch of\npartitions and do some filesystem performance testing with UFS and ZFS and\nExt3 and Reiser. This turned out to be a really bad idea, but I still got\nsome interesting numbers.

\nSolaris vs. Partitions\n

I was\nhaving trouble\nfiguring out how to do the partitioning, and I started pestering some of the\nSolaris gurus that working here means you can pester, and their answers were\nkind of nervous and evasive. “Uh, why would you want to do that? The UFS and\nZFS buffering will collide, it won’t run well.” I ignored them and, after a\nlot of beating \nthrough the bushes, ran across\nHow to\ncreate a Solaris fdisk partition, which actually explains all\nthis stuff.

\n

This whole notion of partitioning is I think an artifact of “Personal\nComputer” culture, which includes Microsoft, Linux, and Macintosh computers;\nyou’d slice up your disk into partitions and have different\noperating systems and filesystems and so on.\nSolaris isn’t really comfortable with it; the tools are lousy and the docs are\nlousy and the terminology is really, really confusing.\nWhich makes sense in an OS with its roots in server space where you’ve always\nthought in terms of multiple disks, rather than slicing up individual\nones.

\n

So first of all, it was hard to get the partitions going. \nHard enough that I ended up re-partitioning and re-installing Solaris and\nLinux multiple times. \nThen, my \nBonnie benchmarking results were weirdly inconsistent and variable, up down\nand sideways, after each re-install, and I totally couldn’t correlate the\nperformance with anything. So I’m going to stick another disk in there\nand get some useful ZFS numbers.

\nBonnie\n

In the course of this work, I fiddled with\nBonnie some\nmore. I apologize to\nRussell Coker and the people\nwho do the\nSolaris HCL work and the people\nwho maintain Bonnie for various Linux distros, because I didn’t co-ordinate\nwith anyone, I just went ahead and did it.\nI guess I should get Bonnie a home on SourceForge or somewhere to bring some\norder to this chaos.

\n

The most interesting thing I did was add a -r option, which\nensures that the data in each 16K block Bonnie writes is randomized and different. This is to defeat compression (see below).

\nI ♥ ZFS\n

Just like all those guys said on their blogs, ZFS is ridiculously,\nlaughably easy for the sysadmin. It takes like three simple commands to make\na ZFS pool, a couple of filesystems on it, compress them, find out their\nstats, you name it.\nAssuming there isn’t some horrible gotcha that I haven’t seen yet, ZFS is\ngoing to be the way to go for all Solaris filesystems; of course, they have to\nfigure out the little matter of making it bootable.

\nThe Tests\n

In general, this Ultra seems to have what I would call pretty good I/O\nperformance for a desk-side machine. The machine has 2G of RAM so I ran all\nthe tests with 20G of \ndata, which should be effective at defeating caching.

\n

In no case did I twiddle any filesystem parameters, or take any non-default\nsettings.

\nLinux: Ext3 vs. Reiser4\n

Here are the results for the Ext3 (default) and Reiser4 filesystems, both\nrun under an updated Ubuntu with a nice recent 2.6 kernel.

\n
              -------Sequential Output-------- ---Sequential Input-- --Random--\n              -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---\nMachine    GB M/sec %CPU M/sec %CPU M/sec %CPU M/sec %CPU M/sec %CPU  /sec %CPU\nExt3       20  38.5 54.7  38.1 17.0  17.8  6.6  44.5 53.3  47.2  7.3    67  0.3\nReiser4    20  38.8 53.5  43.9 20.1  18.2  7.3  42.1 60.9  44.5 10.1    73  0.4\n
\n

In this test, Reiser is a little faster at writing data, a\nlittle slower at reading it, a little faster at random seeking, and burns\na little more CPU. But for the stuff that Bonnie measures, it’s pretty well a\nwash. This makes sense, since I understand Reiser4’s sweet spot to be\ndealing with huge numbers of tiny files.

\nSolaris: UFS vs. ZFS\n

I already pointed out that my results were weirdly variable in the aftermath\nof my partitioning misadventures, so these numbers have little stand-alone\nvalue; I’ve picked pairs of adjacent runs where I just changed one\nvariable.

\n

First, here’s ZFS and UFS.

\n
              -------Sequential Output-------- ---Sequential Input-- --Random--\n              -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---\nMachine    GB M/sec %CPU M/sec %CPU M/sec %CPU M/sec %CPU M/sec %CPU  /sec %CPU\nUFS        20  52.1 37.5  55.1 12.3   6.4  1.9  64.0 48.6  66.3  9.7    47  0.4\nZFS        20  36.7 22.0  42.5  9.6  26.6  4.9  61.9 42.9  62.2  4.6    48  0.2\n
\n

Interesting; in an environment that was clearly unfriendly to ZFS, ignoring\nall the best advice of my best experts, ZFS sort of hangs in there, in most\ntests burning less CPU than UFS while doing sequential I/O a bit slower, but\ndisk rewriting immensely faster.

\n

I want to run\nsome more tests before I do any comparisons of Linux vs. Solaris; as I said,\nthe Solaris\nnumbers wobbled wildly every time I re-partitioned. These aren’t the fastest\nI saw, but I also saw some much slower ones.

\nCompression!\n

ZFS allows you to run your filesystem compressed. Here are a pair of runs,\nthe first with compression turned on, the second with it turned on but the\ndata randomized and thus pretty well un-compressable (the data that Bonnie\nwrites by default is extremely compressable).

\n

It shows two things. First, that compression can make your I/O scream; the\nmain benefit isn’t saving disk space, it’s pumping less data\nback and forth to the disk, and thus saving time. \nThis is the same reason that modern office-document formats use XML stored in\na zipfile.\nThen there’s the\nsecond run, which is frankly weird and counter-intuitive... incredibly slow\nand using dramatically less CPU. Huh? None of these make sense. This shows\nthat Bonnie and Solaris (maybe abetted by the partition weirdness) are somehow\ngoing off the rails together, and I have \nto do a deep-dive to figure out what’s happening.

\n
              -------Sequential Output-------- ---Sequential Input-- --Random--\n              -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---\nMachine    GB M/sec %CPU M/sec %CPU M/sec %CPU M/sec %CPU M/sec %CPU  /sec %CPU\nCompr      20 105.2 56.6 166.4 34.6 101.2 21.7 110.8 81.0 327.7 40.9    62  0.3\nCompr+R    20  25.0 15.6  27.3  6.3  17.4  3.1  42.1 29.1  43.3  3.0    42  0.1\n
\n

There’s lots more work to do here.\nFirst I have to get another big disk.

\n',0,'2005-12-07 14:00:00','Tim Bray'),(32,3,'2005-12-11 11:53:35','2.0 is Read-Write?','Read-Write-Web','','\n

Hal\nStern says that if, wherever someone uses the phrase\n“Web 2.0”, you substitute “Read-Write Web”, you get a much more useful\ndescription of the same thing. Sounds plausible to me.

\n',0,'2005-12-08 14:00:00','Tim Bray'),(33,3,'2005-12-11 11:53:35','Niagara Day','Niagara','','\n

You can’t possibly imagine the amount of work it’s taken to get\nhere.\nRichard McDougall has put together a\nNiagara Blogging Carnival which is the\nright place to start\nif you’re the kind of person that the MSM (Main Stream Marketing, that stands\nfor) isn’t aimed at; i.e., not a CEO, CIO, or journalist.\nMy own personal favorite Niagara newsbites: Item: Nobody gets 100%\nyield on their chips. I gather that for the Niagaras that don’t turn out\nperfect, we’ll sell ’em cheaper as 7-core, 6-core, 4-core, or whatever.\nSome of these configs might turn out to be the deal of the century depending\nhow we price them. Item: They’re\nopen-sourcing\nthe hardware, too. I’m not sure exactly what that means in the big\npicture, and the licensing is going to matter, but it’s cool.\nItem: Those eight cores, when one’s not busy, they\nstop it. No,\nthey don’t idle-loop it, they stop it. Obvious when you think of it.\nItem: \nWhen not to use the\nnew stuff. Item:\nHow the I/O\nworks.\nItem: What makes chips wear out and fail? Lots of things, but\nespecially heat; so low-wattage chips are\nRAS winners.\nItem:\nMaximum geek-out!\nLast item: When you have Java threads that map real closely onto\nSolaris threads that map real closely on to hardware threads, and you also\nhave a lot of well-implemented hardware threads,\nthis is what\nhappens.\n

\n\n',0,'2005-12-06 14:00:00','Tim Bray'),(34,3,'2005-12-11 11:53:35','RFC 4287','RFC-4287','','\n

I hadn’t seen the announcement, but this looks like a\nstable official IETF link to\nRFC 4287, The Atom Syndication\nFormat. A little more work and we’ll have the publishing protocol done\nand I can\nreturn to my plow (or\nequivalent). The work of the WG and\neditors was just outstanding, and the IETF did, as advertised, provide a\nuseful quality-control process without unduly getting in the way. \nThanks everyone. The world now has a general-purpose syndication format that\nis small, stable, based on the last decade’s lessons, clean, and widely\nimplemented. I feel happy.\n

\n',0,'2005-12-05 14:00:00','Tim Bray'),(35,3,'2005-12-11 11:53:35','Search For Sale','Buying-Search-Traffic','','\n

In response to yesterday’s\nBuying Search\nTraffic,\nRussell Beattie \n(who works for Yahoo) writes:\n\nSearch is already determined by who pays the most for\nit! Everywhere you see a search box with a Google logo, be sure that there\'s a\ncompetitor out there that will pay for the same spot—because search\nadvertising is so monetizable. Google is everywhere because they\'re paying for\nit.\nWow, I had no idea. Now, this is just one person’s voice, but I’m running it\nbecause I think Russell is probably in a position to know, and is honest in my\nexperience. \nAnyone else want to confirm or refute?\n[Ah, Om Malik was\non the\nstory back in September.]

\n',0,'2005-12-05 14:00:00','Tim Bray'),(36,3,'2005-12-11 11:53:35','Google Analytics','Google-Analytics','','\n

Herewith a report on a fairly-typical week of Google Analytics numbers.\nI was going to work this into the regular\nweekly statistics report, but I’m\nnot at all sure I’m going to go on running analytics, so as a separate post\nthis will remain available either way.\n[Update on screen sizes.]

\n

GA is pretty easy to install, just a bit of javascript.\nGeneral impressions are, well... it’s OK. It has an implicit 1999-flavored\nview of the Web, assuming that you care a lot about “stickiness”, i.e. it’s a\ngood thing to attract people to your site and a bad thing when they leave it.\n(Uh, why would you have links then?)\n

\n

Anyhow, the graphs are kind of pretty. Here’s the overview, which you’ll\nneed to blow up to full size to see effectively.

\n\"Google\nThe Story in the Numbers\n

Let’s think about these four graphs one by one.

\n

The raw visits numbers seem \nplausible to me; the “Beyond Java” pieces I published early in the week drew a\npretty steady flow of visitors which fed on itself as the days went by,\nthen a\nvicious\nattack piece by Andrew Orlowski (I tend to share his disdain for the \n“Web 2.0” marketechture, but anything that touches on blogging predictably\ndrives him into spiteful gibbering) sent lots more visitors on Friday.\nSaturday was unusually quiet, everyone out shopping I guess.

\n

On the other hand, the lower-right graph is pretty good evidence that GA\nunder-counts blog readers. The two slices labeled “direct” and “bloglines.com”\n(together, a little over 30% of visitors) are probably almost all readers\narriving via a subscription feed. Just over \n60% of the articles here have only one paragraph and thus are completely there\neven in the RSS feed; so, that 30% of visits is the people who saw one of those\nmulti-paragraph pieces in their RSS feed and actually cared enough to click\nthrough to ongoing to read it.\nSo how many more feed-only or feed-mostly readers are there out there? Nobody\nknows.

\n

The “Geo Map Overlay” is kinda pretty I guess, but doesn’t really tell you\nmuch that’s surprising.

\n

There are two things here that seem wrong. First of all, the claim in\nthe top-right graph that 70% of the people visiting the site are first-timers?\nI’m not measuring that myself, but it’s really, really hard to believe.\nGA has been running for several weeks now, so it should have picked up the regulars.

\n

Also, in the bottom right, you can’t see it on this graph, but on some days\nand weeks, there’s a separate little “Google Images” slice. My own numbers\nshow more visitors from there than from Google itself; so I went back and\nchecked carefully, and I’m pretty sure I’m right and GA is wrong.\nI assume they’re mistakenly regarding some Google-Images searches as plain Google.\nI do plan a careful comparison, one of these days, of GA’s top-referer\nnumbers with my own, since this is one of the few areas where I’m pretty sure\nI’m right.

\n

So I reported that as a bug, but the reporting process had that familiar\nGoogle \n“we’re-too-busy-being-scalable-to-hear-you” tone.

\n

Next, let’s look at their article tracking:

\n\"Google\n

This shows that they’ve got a few internationalization kinks to work out;\nbut also that over half my readership comes neither from the front page nor\nfrom the current week’s pieces; these would be the people coming in from\nsearch engines or via links to popular old pieces.

\n

Next, browser versions.

\n\"Google\n

This is wildly inconsistent with my own numbers; I see a much higher\nproportion of visitors using IE. It’s possible, as some have suggested, that\nI’m being fooled by the huge numbers of scrapers and robots and idiot-ware\nthat claim to be IE. I do try to program around that, but maybe I’m missing\nthings. Still, I tend to suspicion on this one.

\n

Here’s the graph of operating systems.

\n\"Google\n

I’ve never tried to measure this myself, but find this picture pretty\nbelievable. Anyone disagree?

\n

Finally, here’s something I’ve always wondered about: are the 800x600\nscreens now finally mostly behind us? The answer would seem to be “Yes”.\n[Update: Rudi Gens writes to point out that the multipurpose handheld\ndevices that people carry around are just getting up into the 320×240 range;\nso maybe the small-screen problem will be back with a vengeance.]

\n\"Google\nThe Future\n

I think I’ll be more apt to use this now and again as a sanity check, as\nopposed to running it continuously. There really truly is a privacy issue\nhere; running this gives our big-G friends a whole lot of information\nand while I’m not convinced they’ll mis-use it, I’m also not convinced they\nwon’t. And at the end of the day, my hand-crafted tools tell me most of what\nI need to know. Except, of course, how many people read ongoing via\nsubscription feeds; and nobody seems to have a handle on that problem.

\n',0,'2005-12-04 14:00:00','Tim Bray'),(37,3,'2005-12-11 11:53:35','Buying Search Traffic','Search-Momentum','','\n

On impulse, I just twiddled \nthe ongoing software\non my staging server\nso that when you do a search in the little box up at the top, it goes to Yahoo\nnot Google. I ran a bunch of searches, and in terms of \nresult quality, there was nothing to choose from between them.\nYahoo seemed a little fresher; on this Sunday it had Friday’s\nentries pretty well indexed, while Google was only half there; they’re both OK\nfor Thursday.\nSo, at this moment in time, my search box, and a zillion others like it, are\npointing to Google just because that’s the way we set it up, and it’s actual\nreal work to go changing production systems, and the competition so far isn’t\nsignificantly better.\nI have no idea what the proportion of search coming through this kind of thing\nis, as compared to the volume going through the search-engine home \npages. I bet that if you count the toolbars on the browsers, it’s getting up\nthere. Via Google’s AdSense For Search, you can already get paid for sending\nsearches to Google. I won’t use it, though, because if I read the terms and\nconditions correctly, you have to include a Google logo. Screw that; I like\nmy minimalist little search box, and nobody but me and my employer get any\nbranding here.\nI’m sure Yahoo has a competitive offering, but I haven’t tracked it down.\nI’ll tell you one thing for sure though; if the search engines retain their\nquality-of-service parity, pretty soon the traffic will be dealt out totally\nbased on who’s willing to pay the most for it.\nWhere can I buy shares in Firefox?

\n',0,'2005-12-04 14:00:00','Tim Bray'),(38,3,'2005-12-11 11:53:35','Pix You Like','Pix-You-Like','','\n

The idea of the little picture on the right side of the screen, aside from\nthe fact that it pleases my eye, is that it’s supposed to tempt you into\nwandering into the back rooms here at ongoing. So,\ndoes it work? Not very well; there’ve been twenty-five thousand or so such\nvisits \nsince ongoing launched in 2003. It’s evenly\ndistributed; the top article so visited got 476 and the tenth most popular\n284.\nThe ten ongoing fragments most visited via the little\npicture are \nWhat Japan Looks Like,\nCalifornia Wedding,\nLustre-Lustrous,\nJavapolis Jet-lag,\nWarm Wind Off the Ocean,\nDynamic Java,\nThe Island Rose Trip: Day Two,\nFoo Camp 2004,\nMore Patent Funnies, and\nGenx Status.\nUnsurprisingly, most of them have lots of pictures, except for the last, which\nhas only one.

\n',0,'2005-12-04 14:00:00','Tim Bray'),(39,3,'2005-12-11 11:53:35','Statistics','BMS','','\n

Almost every Sunday I grab the week’s ongoing\nlogfiles and update my numbers.\nI find it interesting\nand maybe others will too, so \nthis entry is now the charts’ permanent home. I’ll update it most weeks,\nprobably.\n[Updated: 2005/12/04.]

\n\"Browser\n

Browsers visiting ongoing,\npercent.

\n\"Browser\n

Browsers visiting ongoing via\nsearch engines, percent.

\n\"Search\n

Search referrals to ongoing.

\n\"Rss\n

Fetches of the RSS 2.0 and Atom 1.0 feeds.

\n\n

The notes on usage and source code will return in coming weeks when I get\nthe cycles to rewrite this whole article.

\n',0,'2004-12-12 14:00:00','Tim Bray'),(40,3,'2005-12-11 11:53:35','Ils sont fous ces Français!','Ils-Sont-Fou','','\n

Translating from Goscinny/Uderzo to Hunter S. Thompson: there’s bad\ncraziness going on over in France.\nApparently, there’s a move afoot to\nban\nFree Software, and I can only think “Never ascribe\nto malice \nthat which can be explained by incompetence”. Malice or incompetence aside,\nin the unlikely event that this silly thing passes, it could hardly be enforced\nwithout building a cyber-police-state of an efficiency and comprehensiveness\nbeyond the wildest dreams of the Beijing regime.\nIf any of my readers are French citizens, you might want to call your local\npolitician’s office or write a letter to your local editor or whatever. \nHere’s some \nmore\nfrom Henry Story, with French-language links.\n[Update: Gilles Gravier writes: “It’s not all free software that they are\ntrying to \nban... Just software that enables distribution of copyrighted material which\nis not equiped with means of tracing who shares what with whom... Obviously,\nopen-source software makes it easy to remove such tracing means, so is a no-no\nfor SACEM (who are desperately trying to keep alive an old\nmodel for making money over artists instead of trying to turn to the future\nand find new adapted ways).” \nAnd now I see that \nhe’s\nwritten more on the subject.]\n

\n',0,'2005-12-04 14:00:00','Tim Bray'),(41,3,'2005-12-11 11:53:35','Old Chinatown','Chinatown','','\n

This morning took us down to old Chinatown on a shopping mission. We don’t\nlive that far away but it’d been a while; I’d forgotten its cheerful grubby\nintensity, and you can get some bargains. With a Cantonese-food lament.

\n

I don’t suppose Vancouver’s old Chinatown is that unique, most big old\nNorth American cities have them; although I’d heartily recommend a visit to\nthe\nDr. Sun Yat-Sen Garden.\nBoy, can you get bargains; starting with parking at a dollar for two hours; we\nwere on the sixth level of the parkade, which gave us an unusual angle on\ndowntown.

\n\"Downtown\n

Also, the produce on sale looked pretty good and was\npriced a lot cheaper than Safeway sells it.\nMind you, the foodstuffs included quite a few items that I am quite unable to\nidentify, some of them tasty-looking, some, not.

\n

The main streets seem to be doing OK, but in the various little malls and\narcades there are a few boarded-up storefronts. Chinatown’s economy would\nprobably be doing a lot better if it weren’t crammed right up against the\nDowntown\nEastside, with its aromas of hard drugs and slow death.\nSome of the decay, though, is picturesque.

\n\"Decaying\n

We stopped by some noodle house for lunch; given\nthe size of the community and the fierce competition, I assume Vancouver must\nbe one of the world headquarters for fine Cantonese cuisine. Unfortunately, I\ncan’t stand the stuff. I try it every year or two to make sure, and I’ve been\nwined and dined in Hong Kong by savvy locals trying to impress me, so I’ve\ngiven it a chance. Yes, this includes Dim Sum. Anyhow, the noodle house\nserved us huge lashings of food, I picked at mine and managed to\nenjoy some green beans. The kid, however, took one bite of his\nchicken and shrimp in egg sauce with flat noodles, brightened up and made a\nserious dent in a plateful approximately the size of his head, so maybe he’ll\nget more value out of Vancouver cuisine than I do.

\n

We wandered into a random arcade and ended up doing some unplanned\nChristmas shopping.\nOne of the stalls had its wares lined up densely behind dusty glass under a\nreally bright incandescent light; you might want to blow that one up for a\ncloser look.

\n\"Chinese\n

When we got back to the car, Winter’s sideways sun was really trying to\nmake the loveable beat-up old neighborhood look good.

\n\"Winter\n',0,'2005-12-03 14:00:00','Tim Bray'),(42,3,'2005-12-11 11:53:35','Sidetrack’s Back','Sidetrack','','\n

Anyone who bought one of the new since-October PowerBooks and who uses\nSideTrack\nwill have noticed that it stopped working. They’ve fixed that; which gives me\nan excuse to recommend it again to everyone. Macs now offer two-finger scrolling\nas opposed to Sidetrack’s side-of-the-pad scrolling; strictly a matter of\ntaste. But SideTrack lets you remap the trackpad button. If you use\ntap-to-click and tap-and-hold-to-drag, which I recommend, then with SideTrack\nyou can remap the button to be right-click, and in effect the trackpad is now\na three-button mouse.

\n',0,'2005-12-03 14:00:00','Tim Bray'),(43,3,'2005-12-11 11:53:35','FSS: Swirl','FSS','','\n

Friday Slide Scan #15 is a picture of, uh, well, I’m not sure what it is. \nThe other night I scanned through the relatively small number of surviving\nslides that\nDad had classified as “Art”,\nwhich we’ll be mining for the next two or three fridays.\nReasonable people might disagree about whether this is “Art”, but it is kind of\npretty.

\n\"Swirl\"\n

This would be from sometime around 1967.

\n

Images in the Friday Slide Scans are from 35mm slides taken between 1953\nand 2003 by (in rough chronological order)\nBill Bray, \nJean Bray, Tim Bray, Cath\nBray, and\nLauren Wood; when I know\nexactly who took one, I’ll say; in this case, Bill Bray. \nMost but not all of the slides were on Kodachrome; they were digitized using\na Nikon CoolScan 4000 ED scanner and cleaned up by a combination of the Nikon\nscanning software and PhotoShop Elements.

\n',0,'2005-12-02 14:00:00','Tim Bray'),(44,3,'2005-12-11 11:53:35','On the Naming of Roses','Naming-Roses','','\n

I have on several occasions linked to the UBC Botanical Garden\nBotany Photo of the Day\n(“In science, beauty. In beauty, science. Daily”), and while Lauren and I\ndid help by\nencouraging them to\nlaunch, I would have done this anyway, just because it’s great.\nYesterday’s entry, entitled\nRosa\n‘Harwanna’, is outstanding, both for the ethereal rose photo, not taken with\na camera, and for its discussion of the intersection of intellectual property\nand flower names. Did you know that flowers can be patented? And further,\ntrademarked? And further, that these practices damage our ability to talk\nabout flowers? This entry touches me at an uncanny number of points: Alex\nWaterhouse-Hayward, the featured artist, took the best picture of me that\nanyone ever has, and the flower is named after\nJacqueline du Pré!

\n',0,'2005-12-02 14:00:00','Tim Bray'),(45,4,'2005-12-11 11:54:11','bbum\'s weblog has MOVED!','http://www.pycs.net/bbum/2005/6/24/#200506242','','\n

[www.friday.com] is the new home for my weblog. Of course, there is also a new RSS Feed.

\n\n

You should be redirected in 7 seconds automatically.

\n\n\n

Comment

\n',0,'2005-06-24 23:16:44',''),(46,4,'2005-12-11 11:54:11','Big Fish & Moving.','http://www.pycs.net/bbum/2005/6/24/#200506241','','\n

\"Catfish\"

\n\n

Yup. That\'s a big fish. Biggest freshwater fish I have ever caught, anyway. It is a 9 pound catfish caught using turkey livers as bait while fishing in my parent\'s pond. The reel worked fine as long as you didn\'t catch anything over about a half a pound. As soon as that fish hit, the bloody reel would not wind and would freely spool line out when the catfish swam away from me. Fortunately, I have done enough handline fishing in the caribbean to know how to hand reel without losing a digit (a 15+ pound barracuda on a hand line puts up one hell of a lot more fight than a 9 pound catfish in a pond).

\n\n

In other news, I\'m moving the weblog. In particular, I\'m bringing friday.com back online and will be moving the weblog to that URL. I\'m also converting from bzero/pycs to WordPress. I can\'t say enough good things about Philippe and PyCS -- unlike Radio Userland, PyCS has been a total joy.

\n\n

When the move is complete (there is an ever growing python script that parses the old content and uses XML-RPC to push the posts, with a lot of odd gymnastics in between), I will push out a new posting here that redirects to the new location.

\n\n

Vacation hacking is fun.

\n\n\n

Comment

\n',0,'2005-06-24 00:50:57',''),(47,4,'2005-12-11 11:54:11','Make: World\'s cheapest fish trap','http://www.pycs.net/bbum/2005/6/22/#200506222','','\n

\"Fish

\n\n

Pictured to the right is the world\'s cheapest fish trap. Click on the image to for a higher resolution shot. I\'m sure this has been done before.

\n\n

It is made from a plastic soda bottle, a couple of push pins, and a bit of fishing line.

\n\n

(1) Cut off the top of the bottle where the cap screws on.

\n\n

(2) Cut the bottle in two a couple of inches down from the top of the bottle. You want to make this cut just after the main cylinder of the bottle\'s body starts. The one pictured is actually cut too far down the bottle by about an inch. Oops.

\n\n

(3) Invert the top of the bottle and shove it into the bottom of the bottle. You don\'t need to shove it all the way in. As pictured, it just needs to go

\n\n

(4) Use the push pins to secure the top in the bottom. Wire would work, as well.

\n\n

(5) Cut some holes in the bottom of the bottle.

\n\n

(6) Thread the fishing line through the holes and tie.

\n\n

(7) Throw a few bits of dog food or fish food into the bottle.

\n\n

(8) Submerge in a lake / stream where there are small fish.

\n\n

(9) Tie the fishing line to something so your trap doesn\'t wash away.

\n\n

We had fish in our trap within a few minutes. Since it is pretty small, you\'ll want to check and empty often. It works because the fish can\'t seem to find the hole to swim out, though they will randomly find it every now and then.

\n\n

If the bait floats, I have found that orienting the trap such that the opening is aimed a bit down works better in that the food floats to the back of the bottle, giving the fish clear line of site from the opening to the food.

\n\n

If you want to catch larger fish, use a bigger bottle. If you want to catch really large fish, it wouldn\'t be hard to build the same kind of a trap out of chicken wire or wire screen. Certainly, there are likely laws governing the use of traps above a certain size.

\n\n\n

Comment

\n',0,'2005-06-22 10:07:27',''),(48,4,'2005-12-11 11:54:11','Dead Programmer weblog','http://www.pycs.net/bbum/2005/6/22/#200506221','','\n

I ran across Dead Pr0grammer\'s Cafe this evening.

\n\n

As a former New York City resident and a programmer, Dead Programmer\'s Cafe is some powerful good stuff. Interesting writing and awesome photography.

\n\n\n

Comment

\n',0,'2005-06-22 01:12:04',''),(49,4,'2005-12-11 11:54:11','Hacking Tractors','http://www.pycs.net/bbum/2005/6/21/#200506211','','\n

\"Busted

\n\n

When you buy a modern car, you are pretty much out of luck when it comes to servicing it yourself unless you are willing to dump a lot of $$$ into special equipment and, potentially, training. Similarly, most electronic or mechanical systems now have seals that will void the warranty if broken.

\n\n

In other words, \"fix it yourself\" is actively discouraged. Personally, I think it is because the internal engineering is so shoddy that many companies want to hide their design sins behind scary tags.

\n\n

It is refreshing to work on something where \"do it yourself\" is not only supported, but actively encouraged.

\n\n

Which brings me to a story that involves a tractor and a beaver.

\n\n

I was using my dad\'s John Deere tractor to mow paths around the property, including in the valley. A beaver had gnawed off a tree such that there was a stump that was about 12\" high left behind. Now, being a beaver, the damned stump was shaped like a spike.

\n\n

That spike just happened to be the right height such that the front axle bounced over it. But, the front wheel tie rod -- the piece of model that connects the two front wheels for the purposes of steering -- did not. In fact, the tie rod bent. Severely. What was straight was now bent to about 75 degrees and the front wheels were aimed in completely different directions.

\n\n

This, of course, occurred about a half mile from the house down a road that can barely be traversed by a 4wd truck. Bump city. Kind of fun.

\n\n

So, we cut the stump off and are faced with removing the tie rod. This requires a special tool to remove the bolts that hold it in place. Upon visiting the John Deere store, they happily \"rent\" us the necessary tools for $26, refunding the full $26 upon return of the tools!

\n\n

Once we removed the tie rod, it was off to the JD store again. They had to order the part, but it took less than 12 hours to show up with no charges for shipping (regional supplier, I suppose). They also, for free, removed a bolt from the old piece that we couldn\'t loosen given our rather consumer oriented tool chain.

\n\n

So, in the end, what would have cost several hundred dollars if we had brought in a professional cost us $76 and a bit of sweat. Every step of the way, the John Deere folks were offering suggestions and providing useful guidance.

\n\n

In this day and age of sealed boxes, we found it quite enjoyable and, even, educational to be able to fix something ourselves.

\n\n

I wish more companies would follow suit. At the other end of the spectrum, Apple is certainly on that path with the fully user serviceable iMac. So, if a tractor company and a computer company can enable their customer\'s to fix their own damned equipment, maybe there is some hope?

\n\n\n

Comment

\n',0,'2005-06-21 22:08:41',''),(50,4,'2005-12-11 11:54:11','Quack Quack, Waddle Waddle, Life in the Midwest','http://www.pycs.net/bbum/2005/6/19/#200506191','','\n

\"Quack

\n\n

Roger and I are spending a week with my parents in Columbia, MO. Quite the nice father day\'s present.

\n\n

The duck pictured to the right is one of many of ducks that have been raised on my parent\'s pond for the benefit of various grandchildren. \"Quack Quack, Waddle Waddle\" refers to the silly duck song they play on Noggin. It is actually quite catchy. It also refers to the fact that the ducks are all trained such that my dad merely says \"Quack, quack, quack\" and they all waddle up to be fed.

\n\n

\"Evening

\n\n

The above is a panorama of the pond in the evening. The pole on the opposite bank is a martin house. Full of rather large catfish, a bunch of blue gill, ducks, water snakes and the occasional muskrat.

\n\n\n

Comment

\n',0,'2005-06-19 11:35:27',''),(51,4,'2005-12-11 11:54:11','Good Camera, Good Printer, Good Software & Bad Software.','http://www.pycs.net/bbum/2005/6/17/#200506171','','\n

\"Agapanthus

\n\n

I am totally digging the Digital Rebel XT. It is a hell of a lot of fun. As previously mentioned, Derrick\'s Digital Photography Pocket Guide has been tremendously helpful in getting me over the first-time-SLR-confusion hump.

\n\n

I also picked up a Canon Pixma iP6000D printer. The print quality is beautiful and the consumables are reasonably priced (though still quite the \"first hit is free\" business model). It will be interesting to see how the ink holds up over time. Epson\'s ink seems to be the most stable. Lexmark\'s ink was pathetic; images would fade to yellow in only a month or so.

\n\n

Canon\'s print drivers for Mac OS X are surprisingly good, it seems. It gives the user quite a bit of control over print quality, media type, and other parameters. As well, iPhoto has proven to be totally rock solid at handling and printing the images from the camera. There are any number of features I would love to see in iPhoto, but that it \"just works\" and, via Frasier Spear\'s FlickrExport, integrates seamlessly with Flickr makes up for the handful of rough edges. Also, being able to order prints and have them sent directly to family members makes for a wonderful source of personal gifts.

\n\n

Now, as far as the rest of the software that came with the Camera, it pretty much defines The Suck. Seriously. Worst user experience ever. All of the applications have totally weird-ass one off user interfaces that do not follow any standard guidelines. Worse, in all cases they are specifically optimized around an unworkable approach to a workflow.

\n\n

Example: When you launch \"Easy-PhotoPrint\", it displays an iTunes like interface only with the top level volumes on your computer where the playlists would be. If you want to print a photo, you are expected to start at that level and navigate down to wherever the bloody hell your photos are -- deep in iPhoto\'s world, in my case -- by toggling the stupid little disclosure triangles. And, no, this flaming piece of UI does not accept drag and drop.

\n\n

Given that atrocity, I have no idea what \"Easy-PhotoPrint\" even does. I couldn\'t get past the atrocity of the initial UI to find out.

\n\n

The \"Digital Photo Professional\" software is equally as painful to use. I did tolerate the pain long enough to process some images, given that it appears to be the only software provided with the camera that can process RAW images. A totally broken app, though. If you crop an image, there is no way to actually see the frickin\' crop in the work area. You effectively end up stacking up a series of \"effects\" that are then applied when you \"export\" the image. This makes it really difficult to tell exactly what is going to be exported.

\n\n

Canon also provides something called \"PhotoStitch\" that allows one to stitch together a series of photos into a larger shot, including a QTVR \"movie\". It works, but is also amazingly painful. For example, if it decides that you have images that are out of order or overlap too much, the software happily pops up a dialog box informing you that there are too many pictures or it wraps too far or it is being dense. The dialog is totally ambiguous and, far worse, the stupid software doesn\'t actually indicate which pictures or pictures are in err. Instead, it tells you to \"remove pictures that are unnecessary\". I\'m sorry, I have 60 bloody pictures in the damned panorama and I could really use a damned pointer or two. Especially since the software already figured out what was wrong. Sheesh. Dumbasses.

\n\n

\"PhotoStitch\" will also happily tell you that it looked at every photo and decided some photos have a different focal length than others and, therefore, it isn\'t going to bother trying to stitch anything together. Of course, the stupid POS software doesn\'t actually allow you to see the focal length anywhere. Again, the helpful \"remove pictures that are unnecessary\" message.

\n\n

About the only thing going for it is that the stitching algorithm is actually pretty good and the software doesn\'t crash. More than can be said for the software I had previously used.

\n\n

So. Canon camera good. Apple good. Canon printer good. Canon image software pathetically awful, but -- at least -- it works if you manage to keep from spewing on your keyboard in disgust at the UI/UE.

\n\n\n

Comment

\n',0,'2005-06-18 01:36:11',''),(52,4,'2005-12-11 11:54:11','PictureItPostage','http://www.pycs.net/bbum/2005/6/14/#200506141','','\n

\"UFU\"

\n\n

As a kid, I had a stamp collection. As a computer professional mostly dealing with data management, I have always been interested in how the USPS can route so many bits of mail so quickly for such a relatively low cost. As a result, news from the Postal front usually piques my interest.

\n\n

Endicia released PictureItPostage for Mac OS X Tiger. It is a little (2.1MB) Cocoa & Quartz Composer app that leverages your iPhoto library to enable the creation of custom postage stamps. You can then buy sheets of said stamps from Endicia to splat on your various paper envelopes.

\n\n

It is a neat little application. Given the 50 cent/stamp premium, I doubt I\'ll use the service for anything but the rare special occasion.

\n\n\n

Comment

\n',0,'2005-06-14 11:25:50',''),(53,4,'2005-12-11 11:54:11','Hacking Light','http://www.pycs.net/bbum/2005/6/12/#200506121','','\n

\"UFU\"

\n\n

I finally took the plunge and bought a new camera to replace the Sony F505 I have been using for the last 5 years. Upon the recommendation of several folks a hell of a lot more experienced & talented at photography than I am, I picked up a Canon Digital Rebel XT with the 17-85mm lens kit.

\n\n

Now, the Canon certainly does the point-and-shoot mode of operation extremely well. Much better results than the F505. Certainly, this is not a criticism of the F505 as much as an indication as to how much digital photography technology has changed in the last five years and that the Rebel XT is aimed at a different market than the F### series.

\n\n

The photo included in this post is my first attempt at actually taking a shot based on consciously hacking the various settings to achieve the desired composition. That is, trying to deal with the potential photospace that results from futzing with things like aperture, shutter speed, ISO, etc...

\n\n

Wow. Quite the change. Boy Howdy, do I have a lot to learn! I have no idea what I\'m doing yet. Well, that isn\'t quite true. I do have Derrick Story\'s incredibly useful Digital Photography Pocket Guide. It has definitely given me a leg up, but I\'m still a total newbie.

\n\n\n

Comment

\n',0,'2005-06-12 02:30:01',''),(54,4,'2005-12-11 11:54:11','PyObjC on Intel based Mac OS X','http://www.pycs.net/bbum/2005/6/8/#200506081','','\n

Ronald ported PyObjC to the Intel based Mac OS X environment last night. All of the unit tests pass except for the mach_inject related tests.

\n\n

It took about 2 hours to do so. Not bad for having to port a nasty bit of assembly that constructs stack frames on the fly.

\n\n

Nice.

\n\n\n

Comment

\n',0,'2005-06-08 12:49:22',''),(55,4,'2005-12-11 11:54:11','WWDC: And so it begins...','http://www.pycs.net/bbum/2005/6/4/#200506041','','\n

The Apple World Wide Developer\'s Conference starts, effectively, tonight. At least, badging will be open this evening and there are a series of special events tomorrow.

\n\n

I\'m heading to San Francisco in a few hours to settle in to my hotel room for the week. I am speaking several times throughout the week and am involved in a bunch of other sessions and events. It will be quite the show. Tiger is simply jam packed with cool new APIs for developers to leverage and being able to focus a developer conference on leveraging production quality APIs will be a welcome change!

\n\n

The festivities begin this evening with a sojourn to Tommy\'s Mexican Restaurant.

\n\n\n

Comment

\n',0,'2005-06-04 13:45:06',''),(56,1,'2005-12-11 11:54:53','Ruby tricks: escaping/unescaping','http://skiadas.dcostanet.net/afterthought/2005/12/10/ruby-tricks-escapingunescaping/','','

I am starting to really like Ruby! I was working on my plugin, for Gregarius, and I found myself having to often have the php code spit out javascript code using echo. So something like:

\n\n

function myinsert(node) {\n var ob = document.getElementById(\"maindiv\");\n ob.setAttribute(\'style\',\'display:none\');\n}

\n\n

would be converted to:

\n\n

.\"\\tfunction myinsert(node) {\\n\"\n.\"\\t\\tvar ob = [...]

\n',0,'2005-12-10 15:20:06','Haris'),(57,3,'2005-12-17 18:46:26','Adium is the Future','Adium','','\n

The people I work most closely with are located in New Jersey, Southampton\n(U.K.), Santa Cruz, North Carolina, Prague, and Hamburg. Instant messaging is\nan essential business tool. I use\nAdium, which relies on the\nGaim multi-protocol IM software.\nThere are a lot of things about it that prefigure the future of software.\n[Update: Wow! Check out\nEric\nMeyer’s follow-up.]

\n\"Adiumy\nBeauty\n

Adium has a generally wonderful user interface and is remarkably\ngood-looking on the screen, once you get past “Adiumy”, the dorky green duck\nmascot, pictured to your right. As long as Adium is running, the duck is\nstaring at you in the Dock; he closes his eyes when you’re offline and flaps\nhis wings when someone is chatting to you.

\n

If you don’t like him, you can\nreplace\nhim.\nIn fact, Adium is highly skinnable; out of the box, there’s a huge range of\nstyles you can apply to the buddies list and chat window itself.\n

\n

Here’s how I have the chat window set up. Note that it’s tabbed, so that\nunlike iChat, all my conversations are in one non-screen-cluttering window.\nYou can “pull off” one tab if you do want a separate window for one of your\nchats.

\n\"Adium\n

Also, check the little Safari icon at the top. Click on that, and (a\nsecond or so later, it ain’t fast) the URL of whatever you’re looking at in\nSafari (specifically Safari, not the current default browser) pops into your\ntransmit area. That’s how I got the BBC link at the top of that conversation\nwith Brent Simmons.

\n\"Adium\n

Here’s a little piece of my contacts list on a slow afternoon; this may\nstrike you as a little \nweird-looking, but if you’d like something a little more conventional, Adium can\ndo that too, or you can\ngo get\nyourself a really weird-looking skin.

\n

The take-away: it is obviously not true that Open Source software can’t\nlook good, or have a high-quality user interface.

\nOpen Source\n

Behind all that sugary OS X UI goo, there’s some pretty powerful software:\nGAIM, which without any fuss lets me talk to AIM and MSN and ICQ and Yahoo and\nJabber, hiding all the details.

\n

One hears that the operators of these networks occasionally make futile\nefforts to lock out non-proprietary clients; apparently GAIM interprets this\nas damage and routes around it.\n

\n

GAIM and hence Adium also offer really secure chat via OTR encryption; just\nthe ticket if you want to plan a revolution or consult your attorney.

\nAuto-Update\n

There are two kinds of software: the kind that offers to update itself\nwhen appropriate, and the kind that’s broken. Adium is the first kind; not\npushy, but doesn’t let you get out of date without knowing it.

\n

Lots of good companies, including my employer, ship software that doesn’t\nhave this characteristic. Please stop.

\nShortcomings\n

After some months of using Adium, there is one capability of iChat that I\nmiss; the ability to paste an image into the chat window and send it to the\nperson at the other end. It does have a “send file” feature, but that’s\nnowhere as immediate as saying “Look at this.”

\n

But hey, this is Open Source, if it bothers me enough, I can go and fix it.\n

\n

Oddly, I don’t miss the “A/V” capability of iChat A/V. I had a brief\nhoneymoon with the video capability but in the long run, it was too unreliable\nto be useful; only about a third of my attempted video calls got through, and so\nI eventually stopped trying.

\n

For audio chat I use Skype, which is frightening in its ability to cut\nthrough firewalls, NATs, and other Internet underbrush.

\nThe Future\n

Software of the future will be Open Source, will have a sophisticated and\nsmart user interface, will take responsibility for making sure it’s up to\ndate, and will meet essential human needs. Like Adium.

\n',1,'2005-12-16 14:00:00','Tim Bray'),(58,3,'2005-12-17 18:46:26','Yellow House','Yellow-House','','\n

It’s been bright and cold the last couple of days in Vancouver, and at\n49°N., the sun never gets that high, which makes for strong shadows wherever\nyou look.\nI walk by this yellow house on my way to work every day.

\n\"Yellow\n

A lot of houses here in Vancouver have stucco exteriors, which makes for\nlots of texture. Taken with the Canon S70.

\n',1,'2005-12-16 14:00:00','Tim Bray'),(59,3,'2005-12-17 18:46:26','Meta-Blogging','Meta-Blogging','','\n

So, here’s the good news: I walked into the bar at ApacheCon to get a\nbeer, there was another guy there waiting; when the bartender came around, he\nordered a drink then, pointing at me, said “... and whatever he’s having”. He\nturned to me said “Love the blog” and we shook hands and talked for a while.\nI’m terribly\nembarrassed that I’ve lost his name; Interesting guy, he’s at Google and was\nthere for the \nJCP Board meeting. That’s the first time my\nblog’s earned me a beer, what’s not to like?\nSo here’s the bad news:\nRecently, a colleague asked me what I thought about a subject that I’d just\nwritten a big piece on two days earlier. I harrumphed, and she said\n“Who has time to read all your stuff? There’s too much!” OK, so I write\nreally fast and I don’t sleep much, but she has a point.\nThe problem is that the creative flow is\nreally uneven. First half of the week, I was\non the road and\ndidn’t post much, now for some reason I have five big pieces squirming around\nin the back of my head wanting to be written; and the nasty bit is that if I\ndon’t write them, they don’t save up, they evaporate. I suspect\nthere isn’t a solution.

\n',0,'2005-12-16 14:00:00','Tim Bray'),(60,3,'2005-12-17 18:46:26','Gleanings','Old-and-New-Worlds','','\n

I’ve been kind of busy, in part due to my employer having\nmade some sort of announcement approximately every fifteen minutes for the\nlast three months. \nI’m still behind on more or less everything, but here are some things that\nhave built up in my tabs bar that I just can’t bring myself to bypass.\nItem: Quoting\nSimon\nPhipps: “It seems to me inevitable that eventually, the nobility of the\nold world will turn up at the doors of the frontiersmen of the new world and\ndemand payment of tribute in the form of patents royalties.”\nItem: Br’er Rob\nchannels\nGeorg channeling God.\nItem: Zawodny:\nDo Search\nEngines Censor Bloggers? Good question; the one time I’ve dropped into\nunmitigated-flame mode here about a company, the result is that if you type\ntheir name into Google, my flame’s right there beside their homepage. I feel\nguilty even \nthough they entirely earned the flame; people’s jobs are at stake.\nItem: Good\nRichard\nPryor eulogy. I still think the original Richard Pryor Live\nvideo is maybe the funniest thing I’ve ever seen, comedy striving for the\ndivine and not missing by much.\nItem: IBM\nlicensing its patent portfolio to startups via VCs. This\ndeserves more attention than it’s received. My initial reaction is visceral\nhorror, does it mean you can’t safely start a company without taking VC\nmoney?\nItem: Beau Hartshorne has\nabandoned databases in favor of Atom.\nItem: Amazingly cool\noptical\nillusion.\nUnifying theme: None.

\n',0,'2005-12-15 14:00:00','Tim Bray'),(61,3,'2005-12-17 18:46:26','John Cowan','Hire-John-Cowan','','\n

He’s a legend in the XML community, is the author of\nTagSoup, is\nridiculously erudite on any\nnumber of things, and is\nlooking for a new job.\nI think he’d be a good bet.

\n',0,'2005-12-15 14:00:00','Tim Bray'),(62,3,'2005-12-17 18:46:26','Christmas Spirit','Christmas-Spirit','','\n

I know it’s a little early, but I’ve got the feeling at the moment,\ncourtesy of a piece by Rob entitled\nWonderful.\n

\n',0,'2005-12-14 14:00:00','Tim Bray'),(63,3,'2005-12-17 18:46:26','ApacheCon Report','Apachecon-report','','\n

Herewith some notes and pix from\nApacheCon 2005.\nSummary: sessions laid-back, hallways good, parties intense.

\nParties\n

The Alaska Airlines jet taking me to San Diego had problems, so I arrived\nslightly after 1AM, to find a few of the Apache folks still having a lively\ntime in the bar.\nThese people like to stay up late and get loose and laugh.\nOne of the parties was sufficiently good that a divinity showed up.

\n\"Party\n

Dig the halo.

\nSessions\n

At the opposite extreme, the actual sessions were remarkably quiet,\ncivilized, and low-key. Verging, in fact, on boring. There are debates\nraging: WS-* vs. REST, EE vs. .NET vs. LAMP, Linux vs. Solaris vs. Windows.\nBut you don’t hear about any of this stuff coming off the stage at ApacheCon.\nYou do absolutely get a lot of extremely dense and valuable technical content\nthat will improve your ability to produce, deploy, and use web-related\nsoftware.\nPoliteness is a good thing; still, a little more intensity would be nice.

\n

Below, ASF chair Greg Stein addresses one of the opening plenaries.

\n\"ASF\nKeynote\n

Oh yes, I gave a speech.\nI talked about \nDerby\n(oops, “Java DB”)\nand\nNiagara\nand\nBeyond\nJava.

\nThe Rest\n

For me the best part was the hallways and exhibit areas, where there were a\nlot of very smart people just hanging out, most with computers, mostly talking\nabout pretty interesting stuff.

\n

Covalent showed up with a T2000,\nwhich got a lot of attention. They had a little Thinkpad plugged into it and\nwere running the\nab benchmark\nto establish how many requests it could handle.\nDan Price of the Solaris\ngroup decided he wasn’t satisfied with the numbers, so he buckled down and got\nto work on optimizing it.

\n\"Dan\n

By the time he’d finished tweaking, he had it cranking through around\n25,000 requests per second, which is good but not that impressive;\nthen we looked and noticed that the poor little Thinkpad was totally\nred-lined, I’m surprised it didn’t start to melt; plus we were pumping 290\nmegabits/second or so through the gigabit ethernet wire, which is not bad at\nall for HTTP traffic.

\n

For some reason, that machine kept all its fans turned on at all times,\nreally remarkably loud, which seems a little off in a machine that’s\nadvertised as running cool and being power-efficient.\nMy own Ultra 20 runs quiet except when I ask it to do some hard work.

\n

Long-time Apache stalwart Dirk-Willem van Gulik works for Covalent and he\ndecided there was something wrong with the fans running so hard, so he opened\nthe top and took them all out.

\n\"Dirk-Willem\n

After all, it’s a server-class machine, almost all parts field-replaceable,\nright? You just lift the hatch and pull out the fan.

\n

Well yes, after he’d pulled all the fans out, it was indeed quieter.\nWe didn’t have a console attached, so we don’t know exactly what happened to\nthe poor little disemboweled thing; but after a little while, it wasn’t on\nthe net any more.

\n',0,'2005-12-13 14:00:00','Tim Bray'),(64,3,'2005-12-17 18:46:26','Discipline?','Carr-on-Sun','','\n

Having recently\nagreed with Nicholas\nCarr on search economics, I’d now like to disagree with him on the subject\nof my employer. Carr is obviously a smart guy, but his recent\nSun\nand the data center meltdown seems bafflingly simplistic. He’s complaining,\nit would appear, that we’re doing too many things: we give Dell a hard time\n(yep), \nwe holler that eco-responsibility is good business (yep), we ship what\nwe claim is the fastest Web-server CPU on the planet (yep), \nwe focus on volume (yep), we let anyone try our software for free\n(yep), we seem to be having fun (“pod duel”—yep).\nHey, I’m with Carr on one item, I don’t want to go anywhere near “Web 2.0”,\nbut as for the rest... because we ship fast chips, we shouldn’t worry about\nvolume? Because we think Dell is losing focus, we shouldn’t push the\nfree-software idea? And so on. This is a big company. \nWe’re working on a lot of things. Is this perhaps nostalgia for a simpler era\nin which companies had one simple message at all times and spoke it with one\nvoice? I don’t think the world in general or the IT world in particular are\nlike that; there are a lot of problems and a lot of opportunities and we have\nthe scale to address a bunch of them. Anyhow, Carr left out Microsoft\ninteroperation and grid computing and new pricing models and and observability\nand lots of other good stuff\nwe’re working on. Right now is not the time to be doing less.

\n',0,'2005-12-12 14:00:00','Tim Bray'),(65,3,'2005-12-17 18:46:26','The Future Search Market','Search-Market','','\n

Recently, I learned that search providers\npay for\ntraffic, which makes all sorts of sense in a world where they’re offering\napproximately equal levels of service.\nSo, where to from here? I can see the opportunity to build a near-perfect\nmarket. (Please note for the record that in this piece, I agree with \nNicholas\nCarr).

\n

Here’s one scenario. Suppose I have a popular application, and it\nhas a search window. When someone types in “Britney Spears” or\n“Mayan Eschatology”, I send the query off three different search engines who\npay me a small retainer for the privilege of getting them. Each returns a\ntop-ten page of results, along with a small piece of extra metadata called the\n“ad bid”; how much they’ll pay for a click-through on the ads on\nthe page.

\n

The simplest thing to do would be to just take the highest ad bid.\nBut in fact, this particular app is smarter; it contains a regularly-updated\n“correction factor” for each engine; it’s a number based on what percentage of\nclick-throughs each engine gets, and maybe some other factors like how fast\nthey pay their bills.\nIn real-time, I select one of the results pages and show it to the user.

\n

The thing that’s wrong with this scenario is that the search engine ends up\ndoing a lot of useless searches that never get displayed. You could imagine\nan alternative setup in which you send the search terms to the engines and all\nthey come back with is their per-click bid price, and then you only send the\nactual search to the winner.

\n

This may be a little fanciful. But when you have a small number of\ncompetitors providing a commodity product to millions of customers, and the\nproduct is, per-unit, ultra-lightweight, economic theory as I understand it\nwould call for some sort of a radically-open market.\nIt’s just a matter of working out the details.

\n',0,'2005-12-11 14:00:00','Tim Bray'),(66,3,'2005-12-19 12:57:29','Orange, but Unhappy','Orange','','\n

If the IE team and the Firefox team\nagree\non something, can it be a bad idea?\nAccordingly, pages at ongoing now have a little orange\nhere’s-the-feed splodge at the bottom of the right margin. Despite that, it\nis a bad idea; a temporary measure at best. Based on recent\nexperience\nwith my Mom\nand another Mac newbie, this whole feed-reading thing ain’t gonna become\nmainstream until it’s really really integrated. By integrated I mean\nthat that if a page has a feed, there should be a standard button\nsomewhere in the browser, one click and you’re subscribed, and on that button\nshould be the word “Subscribe” in your native language. The\nnotions that\nthis should depend on a button that the\nauthor has to \nput in the page, \nthat it should be decorated with a vacuous icon or a geek acronym,\nand that the the user has to copy the link and paste it into\nsome other program, well that’s just lame-brained, and Mom won’t do it.\nTo be fair, the Mac now gets this partly right; it has the notion of a\n“default feed reader”, and it does autodiscovery, and a blue RSS glyph appears\nin the browser chrome as appropriate, with dispatch to the default reader.\nThere are still two problems: First, a blue rectangle with a white “RSS” on it\nmeans approximately nothing unless you’re already feed-savvy. Second, when\nmost people click on it, they get the Safari reader, which is pretty feeble.\nSteps in the right direction, but I look forward to amputating the orange\nlozenge sooner rather than later.\n[Update: It’s better than I thought; this will end up in both browsers’\nchrome. So in a couple of years, when maybe half the population has a browser\nwith one-click subscription, we’ll find out if feeds will ever become\nmainstream.]

\n',1,'2005-12-18 14:00:00','Tim Bray'),(67,3,'2005-12-19 12:57:29','Drop the ','Drop-the-Doctype','','\n

Back when we cooked up XML in 1996-97, there were good reasons\nto have that ugly upper-case gibberish\nat the top of your XML documents. \nThat was almost ten years ago;\nnow it’s time to do away with it, and also\ntime to have a spec for Doctype-free XML.

\nWhy DTDs?\n

The Doctype declaration is supposed to do three different things for you:

\n
    \n
  1. Say what the root element of your document is supposed to\nbe.

  2. \n
  3. Point to your DTD, so you can check if the document is\nvalid.

  4. \n
  5. Define entities. These are used as names for boilerplate strings, for\nspecial characters, and (in theory) to include external documents.

  6. \n
\n

The first two are are not only unnecessary but actively harmful. \nFirst of all, we have better technology than DTDs for doing syntax validation.\nSecond, it’s usually a bad idea for a document to express an\nopinion as to what its own schema is. Most useful languages have more than\none schema, and it’s the absolute right of someone receiving a document to\ndecide whether it meets their definition of “valid” before they use it, so\nthey’re going to make their own decisions as to which schema (if any) is\nappropriate.

\n

Entities as names for strings are handy but not essential.\nTheir use as names for non-ASCII characters will be missed; people who write\nmathematics in a plain-text buffer have become used to typing\nδ for “Δ”, for “∞”, and so on.\nBut I’m sitting here typing this document\nin a text editor and if I want to write Δ or ∞ or チムブレー, there are a\nbunch of ways I can do it without requiring any\nentities. The problem only bites you when, first of all, you’re hand-authoring\nyour document without any help from the editor, and second, you’re on an\noperating system that doesn’t let you enter those characters.\nThis problem space is getting smaller every year.

\n

The use of entities to include external documents has never really caught\non, although in principle it sounds useful. I suspect that at the end of the\nday, the encoding layer is just the wrong place to stick hyperlinking \nand document composition functions.

\nActively Harmful\n

A lot of XML is used in network protocols, and in network protocols,\n is actively harmful. Receiving software in\nprinciple might have to go and fetch an external DTD, or failing that, be\nprepared to deal with the voodoo around standalone=\"yes/no\" in\nthe XML declaration. For this reason, popular network applications of XML\nlike SOAP simply forbid the Doctype declaration.\nBut this is kind of bad behavior, as\nRFC 3470 (AKA BCP 70) points out, if\nyou’re going to use XML, it’s best to just say “Use XML” and not get into\nsubsetting the syntax.

\n

So the take-away is, it would be nice to have an actual single spec for\nthis kind of XML that leaves out all the complexity and black magic that falls\nout of the Doctype declaration.\nWe already have proposals.

\nProposals\n

The Simplest Thing That Could Possibly Work is Norm Walsh’s \nXMLK\nproposal from 2003, which \nmakes only one change to the XML specification: no\n.

\n

Norm later on got a bit more ambitious and cooked up an \nXML 2.0 proposal, which not only nuked the Doctype but had\nclever proposals for new namespace and entity syntax.

\n

Then there’s my own\nXML-SW, which actually\nsubstantially rewrites the XML \nspec, removing the Doctype and at the same time weaving in the Namespaces and\nInfoset specifications, giving you one place to go to read about all the basic\ncan’t-live-without-’em XML technologies.

\nThe Future\n

I suspect that nothing will happen; we’ll go forward indefinitely into the\nfuture, with XML implementors required to read the XML spec, learn to ignore\nall the Doctype stuff, then go read the Namespaces and Infoset specs, and\nsynthesize all that in their heads.

\n

That’s a pity; most interesting modern XML doesn’t have a\n, uses namespaces, and is specified via the Infoset;\nit would be nice if the specifications reflected that reality.

\n',0,'2005-12-15 14:00:00','Tim Bray'); UNLOCK TABLES; /*!40000 ALTER TABLE `item` ENABLE KEYS */; -- -- Table structure for table `metatag` -- CREATE TABLE `metatag` ( `fid` bigint(16) NOT NULL default '0', `tid` bigint(16) NOT NULL default '0', `ttype` enum('item','folder','channel') NOT NULL default 'item', KEY `fid` (`fid`), KEY `tid` (`tid`), KEY `ttype` (`ttype`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `metatag` -- /*!40000 ALTER TABLE `metatag` DISABLE KEYS */; LOCK TABLES `metatag` WRITE; UNLOCK TABLES; /*!40000 ALTER TABLE `metatag` ENABLE KEYS */; -- -- Table structure for table `rating` -- CREATE TABLE `rating` ( `iid` bigint(16) NOT NULL, `rating` tinyint(4) default '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `rating` -- /*!40000 ALTER TABLE `rating` DISABLE KEYS */; LOCK TABLES `rating` WRITE; UNLOCK TABLES; /*!40000 ALTER TABLE `rating` ENABLE KEYS */; -- -- Table structure for table `tag` -- CREATE TABLE `tag` ( `id` bigint(16) NOT NULL auto_increment, `tag` varchar(63) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `tag` (`tag`), KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `tag` -- /*!40000 ALTER TABLE `tag` DISABLE KEYS */; LOCK TABLES `tag` WRITE; UNLOCK TABLES; /*!40000 ALTER TABLE `tag` ENABLE KEYS */; -- -- Table structure for table `users` -- CREATE TABLE `users` ( `uid` bigint(16) NOT NULL auto_increment, `uname` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `ulevel` bigint(11) NOT NULL default '1', `realname` varchar(255) default NULL, `lastip` varchar(255) default NULL, `lastlogin` datetime default '0000-00-00 00:00:00', PRIMARY KEY (`uid`), KEY `uname` (`uname`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `users` -- /*!40000 ALTER TABLE `users` DISABLE KEYS */; LOCK TABLES `users` WRITE; INSERT INTO `users` VALUES (1,'admin','98a4b0bec61d0cb92a003397d270a286',99,'Administrator',NULL,'0000-00-00 00:00:00'); UNLOCK TABLES; /*!40000 ALTER TABLE `users` ENABLE KEYS */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;