<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2287334962409609224</id><updated>2012-02-24T12:49:18.591+13:00</updated><category term='code'/><category term='docs'/><category term='recipes'/><category term='links'/><category term='gluten free'/><title type='text'>Carey Himself</title><subtitle type='html'>Blogger: showcasing my lack of design skills since 2011.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://words.carey.geek.nz/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-7420578790180090181</id><published>2012-01-02T15:12:00.000+13:00</published><updated>2012-01-26T10:14:42.348+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gluten free'/><category scheme='http://www.blogger.com/atom/ns#' term='recipes'/><title type='text'>Recipe: Burger Patties</title><content type='html'>&lt;div itemscope itemtype="http://schema.org/Recipe"&gt;&lt;p itemprop=description&gt;Low carb, gluten free hamburger patties for our whole family.&lt;p&gt;&lt;p&gt;You will need:&lt;/p&gt;&lt;ul&gt;&lt;li itemprop=ingredients&gt;400g cheap minced beef&lt;/li&gt;&lt;li itemprop=ingredients&gt;3 cloves of garlic, crushed&lt;/li&gt;&lt;li itemprop=ingredients&gt;½ teaspoon mustard powder&lt;/li&gt;&lt;li itemprop=ingredients&gt;¼ teaspoon ground black pepper&lt;/li&gt;&lt;li itemprop=ingredients&gt;a pinch of paprika&lt;/li&gt;&lt;li itemprop=ingredients&gt;1 small egg&lt;/li&gt;&lt;/ul&gt;&lt;div itemprop=recipeInstructions&gt;&lt;p&gt;Combine all ingredients and mix well with your hands. Separate the mixture into balls about 5&amp;nbsp;cm across, or about 60&amp;nbsp;g.&lt;/p&gt;&lt;p&gt;To cook, flatten the balls to less than 1&amp;nbsp;cm, and cook with a little dripping on a frying pan or barbecue until done, turning once when the bottom is brown.&lt;/p&gt;&lt;p&gt;Uncooked patties can be frozen with baking paper between them.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-7420578790180090181?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://words.carey.geek.nz/feeds/7420578790180090181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://words.carey.geek.nz/2012/01/recipe-burger-patties.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/7420578790180090181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/7420578790180090181'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/2012/01/recipe-burger-patties.html' title='Recipe: Burger Patties'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-6363265765492430041</id><published>2011-10-29T15:42:00.000+13:00</published><updated>2011-11-26T21:37:18.144+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gluten free'/><category scheme='http://www.blogger.com/atom/ns#' term='recipes'/><title type='text'>Recipe: Lamb Rogan Josh</title><content type='html'>This recipe is based on the excellent &lt;a href="http://www.route79.com/food/rogan-josh.htm"&gt;Route 79 Rogan Josh recipe&lt;/a&gt;, updated to ensure it contains absolutely no chilli or wheat products, so my wife and kids can eat it. It’s one of the kids’ favorite meals, and the only way Trina will eat lamb.&lt;br /&gt;&lt;br /&gt;This recipe makes far too much, so we freeze the extra for another few kids’ meals when they’re tired and we don’t have time to cook.&lt;br /&gt;&lt;br /&gt;You will need: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;About 700g of lamb.&lt;/li&gt;&lt;li&gt;A thumb-sized chunk of ginger.&lt;/li&gt;&lt;li&gt;Two or three cloves of garlic.&lt;/li&gt;&lt;li&gt;2 teaspoons salt.&lt;/li&gt;&lt;li&gt;1 teaspoon turmeric.&lt;/li&gt;&lt;li&gt;4 teaspoons whole coriander seed.&lt;/li&gt;&lt;li&gt;3 teaspoons whole cumin seed.&lt;/li&gt;&lt;li&gt;3 cardamom pods.&lt;/li&gt;&lt;li&gt; 1/4 teaspoon ground cinnamon.&lt;/li&gt;&lt;li&gt;3 cloves.&lt;/li&gt;&lt;li&gt;1/4 teaspoon peppercorns.&lt;/li&gt;&lt;li&gt;A pinch of ground nutmeg.&lt;/li&gt;&lt;li&gt;One star anise.&lt;/li&gt;&lt;li&gt;One bay leaf.&lt;/li&gt;&lt;li&gt;Chilli powder to taste.&lt;/li&gt;&lt;li&gt;One large onion.&lt;/li&gt;&lt;li&gt;A sploosh of oil. &lt;/li&gt;&lt;li&gt;Two 400g tins of chopped tomatoes.&lt;/li&gt;&lt;li&gt;A cup or so of coriander leaves (cilantro).&lt;/li&gt;&lt;li&gt;A large pot, and a couple of hours until dinner&lt;/li&gt;&lt;li&gt;A cup or so of basmati rice.&lt;/li&gt;&lt;/ul&gt;Remove the lamb from the bone, and chop it into bite size pieces, removing the worst of the fat. Roughly peel then grate the ginger with a Microplane or similar, peel and crush the garlic, and grind the coriander seed, cumin seed and pepper in an electric grinder.&lt;br /&gt;&lt;br /&gt;Sploosh some oil into the pot, and chop the onion while it is heating. Fry the onion with the garlic and ginger until it goes soft, then add the salt and all the ground spices and keep frying. Some of the spices may stick to the pot, but keep stirring to make sure they don’t burn.&lt;br /&gt;&lt;br /&gt;After a few minutes, add the lamb, the bay leaf and the rest of the spices. (Keep the coriander leaves for later.) Keep stirring while browning the lamb. As the fat cooks off the lamb you should be able to start scraping off any spices that were stuck to the bottom of the pot.&lt;br /&gt;&lt;br /&gt;Once the lamb is browned and coated with the spices, add the tins of tomatoes. Put the lid on the pot and bring it to the boil, then turn it right down. Put the rice in lots of water to soak.&lt;br /&gt;&lt;br /&gt;Let the pot simmer quietly for half an hour, then give it a stir. After another half an hour, chop the coriander leaves and stir them in, then keep cooking, stirring regularly to make sure it doesn’t catch. Drain and rinse the rice, and start cooking it however you prefer.&lt;br /&gt;&lt;br /&gt;When the rice is done, serve it with the lamb on top, and put any leftover lamb in the freezer for later. Try not to serve the bay leaf or the star anise to the kids. Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-6363265765492430041?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://words.carey.geek.nz/feeds/6363265765492430041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://words.carey.geek.nz/2011/10/recipe-lamb-rogan-josh.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/6363265765492430041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/6363265765492430041'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/2011/10/recipe-lamb-rogan-josh.html' title='Recipe: Lamb Rogan Josh'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-8008085155773211492</id><published>2006-01-26T19:55:00.001+13:00</published><updated>2011-10-24T14:02:04.429+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Greasemonkey User Scripts for Firefox</title><content type='html'>&lt;p&gt;Greasemonkey is an extension for the&lt;a href="http://www.mozilla.com/firefox/"&gt;Firefox web browser&lt;/a&gt; that lets users run theirown &lt;a href="http://developer.mozilla.org/en/docs/JavaScript"&gt;JavaScript&lt;/a&gt; programs onany or all web pages they visit. I've written a few Greasemonkey scripts, two of which are&lt;a href="#user-scripts"&gt;listed below&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;For more information about Greasemonkey, see one of the following links:&lt;/p&gt;&lt;ul&gt; &lt;li&gt;&lt;a href="http://www.greasespot.net/"&gt;Greasemonkey development&lt;/a&gt; at Greasespot.&lt;/li&gt; &lt;li&gt;&lt;a href="http://web.archive.org/web/20110726001221/http://diveintogreasemonkey.org/"&gt;Dive Into Greasemonkey&lt;/a&gt; online book by Mark Pilgrim.&lt;/li&gt; &lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Greasemonkey"&gt;Greasemonkey article&lt;/a&gt; on &lt;a href="http://en.wikipedia.org/"&gt;Wikipedia&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;&lt;a href="http://userscripts.org/"&gt;userscripts.org&lt;/a&gt; Greasemonkey scripts repository.&lt;/li&gt;&lt;/ul&gt;&lt;h4 id="user-scripts"&gt;User Scripts&lt;/h4&gt;&lt;p&gt;After installing Greasemonkey, click the user script name below to view and install the script.&lt;/p&gt;&lt;dl&gt; &lt;dt&gt;&lt;a href="http://carey.geek.nz/code/userscripts/ibm-infocenter-cleanup.user.js"&gt;IBM Infocenter Cleanup&lt;/a&gt;&lt;/dt&gt; &lt;dd&gt;Makes the &lt;a href="http://publib.boulder.ibm.com/eserver/"&gt;IBM Information Centers&lt;/a&gt;  easier to use by removing the large header, and making sure the navigation and content  have white backgrounds.&lt;/dd&gt; &lt;dt&gt;&lt;a href="http://carey.geek.nz/code/userscripts/gc-gmaps-travel-bug.user.js"&gt;Geocaching Google Maps Travel Bug&lt;/a&gt;&lt;/dt&gt; &lt;dd&gt;Adds a link to the Trackable Item Options on  &lt;a href="http://www.geocaching.com/"&gt;geocaching.com&lt;/a&gt; to open travel bugs tracks  in Google Maps, as well as Google Earth. See  &lt;a href="http://www.geocaching.com/track/details.aspx?guid=0e20ec3f-9966-4194-a861-98c76b4a1f86"&gt;Pop’s Green Jeep Racers Geocoin&lt;/a&gt;  for an example.&lt;/dd&gt;&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-8008085155773211492?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/8008085155773211492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/8008085155773211492'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/2006/01/userscripts.html' title='Greasemonkey User Scripts for Firefox'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-4354836868154972419</id><published>2004-10-05T00:25:00.000+13:00</published><updated>2011-10-24T10:54:36.721+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Wikipedia Search Plugins for Firefox and IE 7+</title><content type='html'>&lt;p&gt;This is a collection of search plugins for&lt;a href="http://www.wikipedia.org/"&gt;Wikipedia&lt;/a&gt; for a selection of languages.Other versions of some of them are available from from&lt;a href="http://mycroft.mozdev.org/quick/wikipedia.html"&gt;Mycroft&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;These days, you’re best to install the search plugins directly from Wikipedia.&lt;/p&gt;&lt;p&gt;Select a site from the list below to install the search plugin.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;ul id="plugins"&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-af.xml"&gt;Wikipedia – Afrikaans (Afrikaans Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-als.xml"&gt;Wikipedia – Alemannisch (Alemannic Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-an.xml"&gt;Biquipedia – Aragonése (Aragonese Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ar.xml"&gt;ويكيبيديا – العربية (Arabic Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ast.xml"&gt;Uiquipedia – Asturien (Asturian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-az.xml"&gt;Wikipedia – Azərbaycan (Azerbaijani Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-be.xml"&gt;Вікіпэдыя – Беларускі (Belarusian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-bg.xml"&gt;Уикипедия – Български (Bulgarian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-bn.xml"&gt;উইকিপিডিয়া – বাংলা (Bengali Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-br.xml"&gt;Wikipedia – Brezhoneg (Breton Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-bs.xml"&gt;Wikipedia – Bosanski (Bosnian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ca.xml"&gt;Viquipèdia – Català (Catalan Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ceb.xml"&gt;Wikipedya – Sinugboanong Binisaya (Cebuano Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-co.xml"&gt;Wikipedia – Corsu (Corsican Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-cs.xml"&gt;Wikipedie – Čeština (Czech Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-cv.xml"&gt;Википеди  – Чӑваш (Chuvash Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-cy.xml"&gt;Wicipedia – Cymraeg (Welsh Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-da.xml"&gt;Wikipedia – Dansk (Danish Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-de.xml"&gt;Wikipedia – Deutsch (German Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-el.xml"&gt;Βικιπαιδεια – Ελληνικά (Greek Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-en.xml"&gt;Wikipedia – English (English Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-eo.xml"&gt;Vikipedio – Esperanto (Esperanto Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-es.xml"&gt;Wikipedia – Español (Spanish Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-et.xml"&gt;Vikipeedia – Eesti (Estonian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-eu.xml"&gt;Wikipedia – Euskara (Basque Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-fa.xml"&gt;ویکی‌پدی – فارسی (Persian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-fi.xml"&gt;Wikipedia – Suomi (Finnish Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-fo.xml"&gt;Wikipedia – Føroyskt (Faroese Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-fr.xml"&gt;Wikipédia – Français (French Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-fy.xml"&gt;Wikipedy – Frysk (West Frisian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ga.xml"&gt;Vicipéid – Gaeilge (Irish Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-gd.xml"&gt;Wikipedia – Gàidhlig (Scottish Gaelic Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-gl.xml"&gt;Wikipedia – Galego (Galician Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-gu.xml"&gt;વિકિપીડિયા – ગુજરાતી (Gujariti Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-he.xml"&gt;ויקיפדיה – עברית (Hebrew Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-hi.xml"&gt;विकिपीडिया – हिंदी (Hindi Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-hr.xml"&gt;Wikipedija – Hrvatski (Croatian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ht.xml"&gt;Wikipedia – Kreyòl ayisyen (Haitian Creole Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-hu.xml"&gt;Wikipédia – Magyar (Hungarian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ia.xml"&gt;Wikipedia – Interlingua (Interlingua Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-id.xml"&gt;Wikipedia – Indonesian (Indonesian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ilo.xml"&gt;Wikipedia – Ilokano (Ilokano Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-io.xml"&gt;Wikipedio – Ido (Ido Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-is.xml"&gt;Wikipedia – Íslenska (Icelandic Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-it.xml"&gt;Wikipedia – Italiano (Italian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ja.xml"&gt;ウィキペディア – 日本語 (Japanese Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-jbo.xml"&gt;uikipedias – lojban (Lojban Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-jv.xml"&gt;Wikipedia – Basa Jawi (Javanese Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ka.xml"&gt;ვიკიპედია  – ქართული (Georgian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-kn.xml"&gt;ವಿಕಿಪೀಡಿಯ  – ಕನ್ನಡ (Kannada Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ko.xml"&gt;위키백과 – 한국어 (Korean Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ku.xml"&gt;Wîkîpediya – Kurdî (Kurdish Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-kw.xml"&gt;Wîkîpediya – Kernewek (Cornish Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-la.xml"&gt;Vicipædia – Latine (Latin Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-lb.xml"&gt;Wikipedia – Lëtzebuergesch (Luxembourgish Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-li.xml"&gt;Wikipedia – Limburgs (Limburgish Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-lt.xml"&gt;Wikipedija – Lietuvių (Lithuanian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-lv.xml"&gt;Wikipēdija – Latviešu (Latvian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-mi.xml"&gt;Wikipedia – Māori (Maori Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-mk.xml"&gt;Википедија  – Македонски (Macedonian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ml.xml"&gt;വിക്കിപീഡിയ – മലയാളം (Malayalam Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-mr.xml"&gt;विकिपीडिया – मराठी (Marathi Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ms.xml"&gt;Wikipedia  – Bahasa Melayu (Malay Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-nap.xml"&gt;Wikipedia  – Nnapulitano (Neapolitan Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-nds.xml"&gt;Wikipedia  – Platdüütsch (Low Saxon Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-nl.xml"&gt;Wikipedia – Nederlands (Dutch Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-nn.xml"&gt;Wikipedia  – Nynorsk (Norwegian (Nynorsk) Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-no.xml"&gt;Wikipedia – Bokmål (Norwegian (Bokmaal) Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-oc.xml"&gt;Oiquipedià – Occitan (Occitan Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-os.xml"&gt;Википеди – Иронау (Ossetic Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-pl.xml"&gt;Wikipedii – Polski (Polish Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-pt.xml"&gt;Wikipédia – Português (Portuguese Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ro.xml"&gt;Wikipedia – Română (Romanian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ru.xml"&gt;Википедия – Русский (Russian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-sa.xml"&gt;Wikipedia – संस्कृत (Sanskrit Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-scn.xml"&gt;Wikipedia – Sicilianu (Sicilian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-sco.xml"&gt;Wikipedia – Scots (Scots Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-sh.xml"&gt;Wikipedija – Srpskohrvatski (Serbo-Croatian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-simple.xml"&gt;Wikipedia – Simple English (Simple English Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-sk.xml"&gt;Wikipédia – Slovenský (Slovak Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-sl.xml"&gt;Wikipedija – Slovenščina (Slovenian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-sq.xml"&gt;Wikipedia – Shqipe (Albanian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-sr.xml"&gt;Википедија – Српски (Serbian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-su.xml"&gt;Wikipédia – Basa Sunda (Sundanese Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-sv.xml"&gt;Wikipedia – Svenska (Swedish Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-ta.xml"&gt;விக்கிபீடியா – தமிழ் (Tamil Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-te.xml"&gt;వికీపీడియా – తెలుగు (Telegu Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-th.xml"&gt;วิกิพีเดีย  – ไทย (Thai Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-tl.xml"&gt;Wikipedia – Tagalog (Tagalog Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-tr.xml"&gt;Vikipedi – Türkçe (Turkish Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-tt.xml"&gt;Wikipediä – Tatarça (Tatar Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-uk.xml"&gt;Вiкiпедiя – Українська (Ukrainian Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-vi.xml"&gt;Wikipedia – Tiếng Việt (Vietnamese Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-wa.xml"&gt;Wikipedia  – Walon (Walloon Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-war.xml"&gt;Wikipedia  – Winaray (Waray-Waray Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-yi.xml"&gt;װיקיפּעדיע – ייִדיש (Yiddish Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-zh-min-nan.xml"&gt;Wikipedia  – Bân-lâm-gú (Min Nan Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikipedia-zh.xml"&gt;維基百科 – 中文 (Chinese Wikipedia)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikiquote-bg.xml"&gt;Уикицитат – Български (Bulgarian Wikiquote)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikiquote-de.xml"&gt;Wikiquote – Deutsch (German Wikiquote)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikiquote-en.xml"&gt;Wikiquote – English (English Wikiquote)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikiquote-it.xml"&gt;Wikiquote – Italiano (Italian Wikiquote)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikiquote-pl.xml"&gt;Wikicytaty – Polski (Polish Wikiquote)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins/wikiquote-pt.xml"&gt;Wikiquote – Português (Portuguese Wikiquote)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You can also download the &lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/wikipedia-searchplugin.ods"&gt;plugin generator&lt;/a&gt;or a ZIP file containing &lt;a href="http://carey.geek.nz/code/wikipedia-searchplugin/plugins.zip"&gt;all the plugins&lt;/a&gt;, or&lt;a href="http://spreadsheets.google.com/pub?key=parRiCIrf7XmRT8MOBwsERw"&gt;view the spreadsheet&lt;/a&gt;describing the plugins.&lt;/p&gt;&lt;p&gt;These plugins are released to the public domain.&lt;/p&gt;&lt;h4&gt;Changes&lt;/h4&gt;&lt;dl&gt; &lt;dt&gt;2006-05-10: Version 1.6.2&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;  &lt;li&gt;Remove “go” parameter since Wikipedia now defaults to title search.&lt;/li&gt;  &lt;li&gt;Fix plugins generated for Mycroft.&lt;/li&gt; &lt;/ul&gt;&lt;/dd&gt; &lt;dt&gt;2006-05-06: Version 1.6.1&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;&lt;li&gt;Fix some character encoding problems.&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt; &lt;dt&gt;2006-04-29: Version 1.6&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;  &lt;li&gt;Generate the plugins from an OpenDocument Spreadsheet using OpenOffice.org Basic.   This means that we get a lot more plugins, &lt;a href="http://opensearch.a9.com/"&gt;OpenSearch&lt;/a&gt;   support for Firefox 2 and Internet Explorer 7, but worse support for several Mac OS 9   character encodings in Sherlock files for Firefox 1.0 and 1.5.&lt;/li&gt; &lt;/ul&gt;&lt;/dd&gt; &lt;dt&gt;2006-01-18: Version 1.5&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;  &lt;li&gt;New icon from David Fockens.&lt;/li&gt;  &lt;li&gt;Fix result item matching.&lt;/li&gt;  &lt;li&gt;Switch to title lookup rather than full-text search by default, after Steve Cooney   pointed out the new behaviour when there is no match.&lt;/li&gt; &lt;/ul&gt;&lt;/dd&gt; &lt;dt&gt;2005-11-13: Version 1.4.4&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;  &lt;li&gt;Add Faroese Wikipedia from Poul J. Clementsen.&lt;/li&gt;  &lt;li&gt;Use correct update URL for Mycroft versions.&lt;/li&gt; &lt;/ul&gt;&lt;/dd&gt; &lt;dt&gt;2005-07-30: Version 1.4.3&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;&lt;li&gt;Fix language code for Hungarian Wikipedia.&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt; &lt;dt&gt;2005-07-27: Version 1.4.2&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;&lt;li&gt;Use English and US-ASCII for Mycroft versions.&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt; &lt;dt&gt;2005-07-24: Version 1.4.1&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;  &lt;li&gt;Use UTF-8 encoding for Danish, Dutch and Swedish Wikipedias.&lt;/li&gt;  &lt;li&gt;Add remaining Wikipedias with over 10&amp;nbsp;000 articles:   Estonian, Hungarian, Indonesian, Slovak and Serbian.&lt;/li&gt; &lt;/ul&gt;&lt;/dd&gt; &lt;dt&gt;2005-07-02: Version 1.4&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;&lt;li&gt;Interpret results correctly in Mozilla with current version of MediaWiki software.&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt; &lt;dt&gt;2005-07-02: Version 1.3.1&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;&lt;li&gt;Changed English Wikipedia search plugin to use UTF-8 encoding.&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt; &lt;dt&gt;2005-03-03: Version 1.3&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;&lt;li&gt;Use correct values for &lt;a href="http://philringnalda.com/blog/2005/01/proper_charset_encoding_in_mozilla_firefox_toolbar_search_sherlock_src_files.php"&gt;character sets and encodings&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt; &lt;dt&gt;2005-01-19: Version 1.2.1&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;&lt;li&gt;Add Slovene Wikipedia search plugin from Jernej Kovacic.&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt; &lt;dt&gt;2005-01-08: Version 1.2&lt;/dt&gt; &lt;dd&gt;&lt;ul&gt;  &lt;li&gt;Updated location of additional result pages.&lt;/li&gt;  &lt;li&gt;Added parameter to use full text search.&lt;/li&gt;  &lt;li&gt;Added all languages with more than 10000 articles.&lt;/li&gt; &lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;script&gt;function install(link) { if (typeof(window.external) !== 'undefined' &amp;&amp; typeof(window.external.AddSearchProvider) !== 'undefined') {  window.external.AddSearchProvider(link.href);  return false; } else if (window.sidebar &amp;&amp; window.sidebar.addSearchEngine) {  window.sidebar.addSearchEngine(   link.href.replace(/xml$/, 'src'),   link.href.replace(/xml$/, 'png'),   link.firstChild.nodeValue,   'Reference');  return false; } else {  return confirm("The plugin couldn't be installed automatically.  Display it instead?"); }}(function () {  var a = document.getElementById("plugins").getElementsByTagName("a"), i;  function r(el) { el.onclick = function () { return install(el); }; };  for (i = 0; i &lt; a.length; i++) { r(a[i]); }})();&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-4354836868154972419?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/4354836868154972419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/4354836868154972419'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/2004/10/wikipedia-searchplugin.html' title='Wikipedia Search Plugins for Firefox and IE 7+'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-1613874620471972330</id><published>2004-06-22T20:00:00.000+12:00</published><updated>2011-10-23T14:55:55.623+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Nokia M11 Interface Address via SNMP</title><content type='html'>&lt;p&gt;I used to use a Nokia M11 to connect to the Internet.  The M11 actsas a router, so the IP address of the router on the Internet bore noresemblance to the IP address of my computer.  However, I needed thatexternal address to send to &lt;a href="http://www.dyndns.org/"&gt;DynDNS.org&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The M11 supports SNMP, so I wrote a short shell script using&lt;a href="http://www.net-snmp.org/"&gt;NET-SNMP&lt;/a&gt;.  It finds theexternal IP address in two steps:&lt;/p&gt;&lt;ol&gt; &lt;li&gt;&lt;p&gt;Loop through the network interface descriptions under &lt;a href="http://www.alvestrand.no/objectid/1.3.6.1.2.1.2.2.1.2.html"&gt;&lt;var&gt;ifDescr&lt;/var&gt;&lt;/a&gt; to find the &lt;a href="http://www.alvestrand.no/objectid/1.3.6.1.2.1.2.2.1.1.html"&gt;&lt;var&gt;ifIndex&lt;/var&gt;&lt;/a&gt; of the PPP interface.&lt;/p&gt;&lt;/li&gt; &lt;li&gt;&lt;p&gt;Loop through the IP addresses under &lt;var&gt;ipAdEntIfIndex&lt;/var&gt; to find the matching index, and get the IP address of the selected interface from &lt;var&gt;ipAdEntAddr&lt;/var&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The command line syntax has probably changed since I used this program,so you might need to make some minor changes.&lt;/p&gt;&lt;ul&gt; &lt;li&gt;&lt;a href="http://carey.geek.nz/code/m11addr/m11addr.sh"&gt;m11addr.sh&lt;/a&gt; (2K)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-1613874620471972330?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/1613874620471972330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/1613874620471972330'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/2004/06/m11addr.html' title='Nokia M11 Interface Address via SNMP'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-4950435060279887278</id><published>2004-05-07T19:35:00.000+12:00</published><updated>2011-10-26T13:03:30.406+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Interesting Links</title><content type='html'>&lt;h4&gt;Computers and the World Wide Web&lt;/h4&gt;&lt;ul&gt; &lt;li&gt;&lt;a href="http://www.mnot.net/cache_docs/"&gt;Caching Tutorial for Web Authors and Webmasters&lt;/a&gt; by Mark Nottingham&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.htmlhelp.com/"&gt;HTML Help&lt;/a&gt; by the Web Design Group&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.icra.org/"&gt;Internet Content Rating Association&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://archive.ict.govt.nz/plone/archive/standards/web-standards/web-guidelines-v-2-1/chapter6.html"&gt;NZ Government Web Guidelines 2.1&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Main_Page"&gt;Wikipedia&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Language and Literature&lt;/h4&gt;&lt;ul&gt; &lt;li&gt;&lt;a href="http://www.hackcraft.net/SunTzu/"&gt;The Art of War&lt;/a&gt; by Sun Tzu&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.boop.org/jan/justso/cat.htm"&gt;The Cat that Walked by Himself&lt;/a&gt; by Rudyard Kipling&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.guardian.co.uk/styleguide"&gt;Guardian Style Guide&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.cherryh.com/www/latin1.htm"&gt;Latin 1: The Easy Way&lt;/a&gt; by C.J. Cherryh&lt;/li&gt; &lt;li&gt;&lt;a href="http://tlt.its.psu.edu/suggestions/international/bylanguage/ipachart.html"&gt;Unicode Entity Codes for Phonetic Symbols&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Mathematics and Science&lt;/h4&gt;&lt;ul&gt; &lt;li&gt;&lt;a href="http://metamath.org/"&gt;Metamath&lt;/a&gt; by Norm Megill&lt;/li&gt; &lt;li&gt;&lt;a href="http://pi.lacim.uqam.ca/eng/"&gt;Plouffe’s Inverter&lt;/a&gt; by Simon Plouffe&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Shopping&lt;/h4&gt;&lt;ul&gt; &lt;li&gt;&lt;a href="http://www.kleinbottle.com/"&gt;Acme Klein Bottle&lt;/a&gt; by Cliff Stoll&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.thinkgeek.com/"&gt;ThinkGeek&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-4950435060279887278?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/4950435060279887278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/4950435060279887278'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/2004/05/interesting-links.html' title='Interesting Links'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-7915703366107921717</id><published>2004-02-20T20:24:00.000+13:00</published><updated>2011-10-24T10:38:23.417+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Python fcrypt</title><content type='html'>&lt;p&gt;I’ve written a pure Python implementation of the &lt;a      href="http://www.opengroup.org/onlinepubs/7908799/xsh/crypt.html"&gt;Unix       crypt(3)&lt;/a&gt; algorithm, and packaged it with &lt;a      href="http://www.python.org/community/sigs/current/distutils-sig/"&gt;Distutils&lt;/a&gt;    and with doc strings for &lt;a href="http://pydoc.org/"&gt;pydoc&lt;/a&gt;    and &lt;a href="http://www.python.org/doc/current/lib/module-doctest.html"&gt;doctest&lt;/a&gt;.     It’s based on Eric A. Young’s optimised fcrypt code, which was    written in C.&lt;/p&gt;  &lt;p&gt;Download the most recent version:&lt;/p&gt;  &lt;ul&gt;    &lt;li&gt;&lt;a href="http://carey.geek.nz/code/python-fcrypt/fcrypt-1.3.1.tar.gz"&gt;fcrypt-1.3.1.tar.gz&lt;/a&gt; (11K)&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;There are some known problems with this software:&lt;/p&gt;  &lt;ul&gt;    &lt;li&gt;&lt;p&gt;The bitwise arithmetic relies on the specific behaviour of Python 2.2 and earlier when overflowing an integer on 32-bit architectures.  Python 2.3 works the same but generates a very large number of warnings.  Python 2.4 converts many of the intermediate results from the &lt;tt&gt;int&lt;/tt&gt; to the &lt;tt&gt;long&lt;/tt&gt; type, which still works, but is a bit slower.&lt;/p&gt;      &lt;p&gt;Since I don’t really understand how the original algorithm and C code works, fixing this is quite difficult for me.&lt;/p&gt;&lt;/li&gt;    &lt;li&gt;&lt;p&gt;If you try to use MD5-crypted passwords which use a salt beginning with &lt;tt&gt;$1$&lt;/tt&gt;, the current version uses &lt;tt&gt;$1&lt;/tt&gt; as the salt, and the DES crypt algorithm.&lt;/p&gt;&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;In view of the preceding points, and the low security provided by    the DES-based password hashing algorithm, I recommend that you use    Michal Wallace’s &lt;a      href="http://www.sabren.net/code/python/crypt/md5crypt.py"&gt;md5crypt&lt;/a&gt;     unless you really need compatibility with other software using the    same algorithm.  In a future version, I may try to provide    MD5-based hashing in addition to the current algorithm.&lt;/p&gt;  &lt;p&gt;If you’re still on Python 2.3 and you’d like to just get rid of the    warnings, you have two options.  You could add a command line option    when you start Python:&lt;/p&gt;  &lt;pre&gt;    python2.3 -Wignore::FutureWarning:fcrypt ...&lt;/pre&gt;  &lt;p&gt;Or you could include extra code before importing the module:&lt;/p&gt;  &lt;pre style="overflow-x:auto"&gt;    import warnings&lt;br /&gt;    warnings.filterwarnings('ignore', '', FutureWarning, 'fcrypt$', 0)&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-7915703366107921717?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/7915703366107921717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/7915703366107921717'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/2004/02/python-fcrypt.html' title='Python fcrypt'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-2486663463506254191</id><published>2004-01-19T15:33:00.000+13:00</published><updated>2011-10-23T15:34:43.821+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>CD-ROM Access in Python</title><content type='html'>&lt;p&gt;Quite some time ago I had the idea of writing a&lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; program to access the&lt;a href="http://www.freedb.org/"&gt;CDDB&lt;/a&gt;.This didn’t get very far, but the code samples I came up with might beuseful to someone else.&lt;/p&gt;  &lt;p&gt;If you’re looking for other software like this,Ben Gertzfield has his own&lt;a href="http://cddb-py.sourceforge.net/"&gt;CDDB modules forPython&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;There are three files for download here:&lt;/p&gt;  &lt;ul&gt;    &lt;li&gt;&lt;a href="http://carey.geek.nz/code/python-cdrom/cddbid.py"&gt;cddbid.py&lt;/a&gt; is a small module tocalculate the CDDB ID for a CD-ROM, given the track lengths.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://carey.geek.nz/code/python-cdrom/cdtoc.py"&gt;cdtoc.py&lt;/a&gt; is some example code that usesthe ioctl functions in Python to retrieve the track lengths from aCD-ROM, at least under x86 Linux.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://carey.geek.nz/code/python-cdrom/CDROM.py"&gt;CDROM.py&lt;/a&gt; is an automatically generatedfile from the Linux cdrom.h header, that provides constants needed bycdtoc.py.&lt;/li&gt;  &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-2486663463506254191?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/2486663463506254191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/2486663463506254191'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/2004/01/python-cdrom.html' title='CD-ROM Access in Python'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-9210643905056722954</id><published>2003-08-01T12:00:00.000+12:00</published><updated>2011-10-25T07:43:03.410+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='docs'/><title type='text'>XSLT, CDATA and disable-output-escaping</title><content type='html'>&lt;p&gt;This document elaborates on my ideas about XSLT in response toKevin Davis’s&lt;a href="http://web.archive.org/web/20070704012627/http://alazanto.org/weblog/mt_carbon/a_small_demonstration.php"&gt;experimentswith Movable Type&lt;/a&gt; at &lt;a href="http://alazanto.org/"&gt;Alazanto&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Be warned that really understanding this document will require agood knowledge of XML and XSLT, although I have tried to make theexplanation and examples as clear as possible.&lt;/p&gt;&lt;h2&gt;The Problem&lt;/h2&gt;&lt;p&gt;Kevin has been experimenting with using XSLT to format simple XMLoutput from Movable Type into a complete web page.  Originally, heincluded the data for each weblog entry in a CDATA section containingliteral XHTML, in much the same way as many RSS feeds.  See thefollowing example, reformatted for clarity:&lt;/p&gt;&lt;pre style="border: solid 1x #333; background: #ccc; overflow-x: scroll;"&gt;&lt;code&gt;&amp;lt;entry&amp;gt;&lt;br /&gt; &amp;lt;title&amp;gt;entry with images&amp;lt;/title&amp;gt;&lt;br /&gt; &amp;lt;date&amp;gt;August 09, 2003&amp;lt;/date&amp;gt;&lt;br /&gt; &amp;lt;author&amp;gt;Kevin&amp;lt;/author&amp;gt;&lt;br /&gt; &amp;lt;idnum&amp;gt;000033&amp;lt;/idnum&amp;gt;&lt;br /&gt; &amp;lt;permalink&amp;gt;http://alazanto.org/xml/archives/000033.xml&amp;lt;/permalink&amp;gt;&lt;br /&gt; &amp;lt;body xmlns:html="http://www.w3.org/1999/xhtml"&amp;gt;&amp;lt;![CDATA[&amp;lt;p&amp;gt;&amp;lt;img&lt;br /&gt;  class="archive" align="right" src="http://alazanto.org/images/sample.jpg"&lt;br /&gt;  alt="photograph of a flower, just for show"/&amp;gt;Mauris felis elit, varius&lt;br /&gt;  quis, pulvinar vel, sodales vehicula, mi. Nunc elementum pharetra elit.&lt;br /&gt;  &amp;lt;/p&amp;gt;]]&amp;gt;&lt;br /&gt; &amp;lt;/body&amp;gt;&lt;br /&gt; &amp;lt;more xmlns:html="http://www.w3.org/1999/xhtml"&amp;gt;&amp;lt;![CDATA[]]&amp;gt;&amp;lt;/more&amp;gt;&lt;br /&gt; &amp;lt;comment-link&amp;gt;http://alazanto.org/xml/archives/000033_comments.xml&amp;lt;/comment-link&amp;gt;&lt;br /&gt; &amp;lt;comment-count&amp;gt;6&amp;lt;/comment-count&amp;gt;&lt;br /&gt;&amp;lt;/entry&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The XML CDATA markup indicates that the data between&lt;code&gt;&amp;lt;![CDATA[&lt;/code&gt; and &lt;code&gt;]]&amp;gt;&lt;/code&gt; should not beinterpreted as XML with elements and entity references resolved.Instead, the data is included as a literal string, &lt;em&gt;exactly&lt;/em&gt; asif each &lt;code&gt;&amp;lt;&lt;/code&gt;, &lt;code&gt;&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;amp;&lt;/code&gt;had been encoded as &lt;code&gt;&amp;amp;lt;&lt;/code&gt;, &lt;code&gt;&amp;amp;gt;&lt;/code&gt; and&lt;code&gt;&amp;amp;amp;&lt;/code&gt; respectively.  The result is a DOM tree likethe following:&lt;/p&gt;&lt;ul style="border: solid 1x #333; background: #ccc;"&gt;&lt;li&gt;&lt;code&gt;&amp;lt;entry&amp;gt;&lt;/code&gt;&lt;ul&gt; &lt;li&gt;&lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'entry with images'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;date&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'August 09, 2003'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;author&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'Kevin'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;idnum&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'000033'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;permalink&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'http://alazanto.org/xml/archives/000033.xml'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'&amp;lt;p&amp;gt;&amp;lt;img class="archive" align="right"   src="http://alazanto.org/images/sample.jpg" alt="photograph of a   flower, just for show"/&amp;gt;Mauris felis elit, varius quis, pulvinar   vel, sodales vehicula, mi. Nunc elementum pharetra elit.&amp;lt;/p&amp;gt;'  &lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;more&amp;gt;&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;comment-link&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'http://alazanto.org/xml/archives/000033_comments.xml'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;comment-count&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'6'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Note that in this DOM, the child text node of the&lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; element is &lt;em&gt;just a string,&lt;/em&gt; withno special meaning to an XML parser or an XSLT processor, even if itlooks to you like a paragraph from an XHTML document.&lt;/p&gt;&lt;p&gt;We can write fairly simple XSLT templates to turn this XML intoXHTML for the browser.  To include the literal XHTML in the result, wecan try the&lt;a href="http://www.w3.org/TR/xslt#disable-output-escaping"&gt;XSLT&lt;code&gt;disable-output-escaping&lt;/code&gt;&lt;/a&gt; attribute, with a templatesomething like this:&lt;/p&gt;&lt;pre style="border: solid 1x #333; background: #ccc; overflow-x: scroll;"&gt;&lt;code&gt;&amp;lt;xsl:template match="entry"&amp;gt;&lt;br /&gt;  &amp;lt;div class="entry"&amp;gt;&lt;br /&gt;    &amp;lt;h2&amp;gt;&amp;lt;xsl:value-of select="title"/&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;    &amp;lt;xsl:value-of select="body" disable-output-escaping="yes"/&amp;gt;&lt;br /&gt;  &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Without the &lt;code&gt;disable-output-escaping&lt;/code&gt; attribute, thestring value of the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; element would be writtento the output so that it could be read in again by another XML parser.In other words, each &lt;code&gt;&amp;lt;&lt;/code&gt; would be escaped as&lt;code&gt;&amp;amp;lt;&lt;/code&gt;, each &lt;code&gt;&amp;amp;&lt;/code&gt; as&lt;code&gt;&amp;amp;amp;&lt;/code&gt;, and each &lt;code&gt;&amp;gt;&lt;/code&gt; as&lt;code&gt;&amp;amp;gt;&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;When processed in Internet Explorer, or a stand-alone XSLTprocessor, the &lt;code&gt;disable-output-escaping&lt;/code&gt; attribute disablesthis escaping step, so that the text child of the&lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; node is included literally in the outputfile as shown below, which is what Kevin expected:&lt;/p&gt;&lt;pre style="border: solid 1x #333; background: #ccc; overflow-x: scroll;"&gt;&lt;code&gt;&amp;lt;div class="entry"&amp;gt;&lt;br /&gt; &amp;lt;h2&amp;gt;entry with images&amp;lt;/h2&amp;gt;&lt;br /&gt; &amp;lt;p&amp;gt;&amp;lt;img class="archive" align="right"&lt;br /&gt;  src="http://alazanto.org/images/sample.jpg"&lt;br /&gt;  alt="photograph of a flower, just for show"/&amp;gt;Mauris felis elit,&lt;br /&gt; varius quis, pulvinar vel, sodales vehicula, mi. Nunc elementum&lt;br /&gt; pharetra elit... &amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The problem occurs when trying to use the same templates inMozilla.  The Mozilla XSLT processor doesn’t support&lt;code&gt;disable-output-escaping&lt;/code&gt;, since it transforms directlyfrom the source DOM to a destination DOM tree, without an output stepin which to disable escaping.  The DOM that Mozilla constructs isquite predictable, but not what Kevin wanted:&lt;/p&gt;&lt;ul style="border: solid 1x #333; background: #ccc;"&gt; &lt;li&gt;&lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;@class='entry'&lt;/code&gt;&lt;/li&gt;  &lt;li&gt;&lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt;&lt;ul&gt;   &lt;li&gt;&lt;code&gt;'entry with images'&lt;/code&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;/li&gt;  &lt;li&gt;&lt;code&gt;'&amp;lt;p&amp;gt;&amp;lt;img class="archive" align="right"   src="http://alazanto.org/images/sample.jpg"   alt="photograph of a flower, just for show"/&amp;gt;Mauris felis elit,   varius quis, pulvinar vel, sodales vehicula, mi. Nunc elementum   pharetra elit... &amp;lt;/p&amp;gt;'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This means that Mozilla displays the markup to theuser, complete with &lt;samp&gt;&amp;lt;p&amp;gt;&lt;/samp&gt; and&lt;samp&gt;&amp;lt;img&amp;gt;&lt;/samp&gt; tags, instead of the paragraph text with afloating image. &lt;a href="http://bugzilla.mozilla.org/show_bug.cgi?id=98168"title="&amp;lt;xsl:text disable-output-escaping=&amp;#34;yes&amp;#34;&amp;lt; notworking"&gt;Mozilla bug 98168&lt;/a&gt; is about this behaviour, and&lt;a href="http://bugzilla.mozilla.org/show_bug.cgi?id=98168#c11"&gt;comment11&lt;/a&gt; states quite clearly that it is expected and will not be changed.&lt;/p&gt;&lt;h2&gt;The Solution&lt;/h2&gt;&lt;p&gt;The solution for Kevin is to create the original XML file withoutenclosing the paragraph in a CDATA section, making the image andparagraph tags real elements in the source XML DOM, so that they canbe copied directly to the destination XHTML DOM.  This small change tothe source XML gives us a very different source DOM tree:&lt;/p&gt;&lt;ul style="border: solid 1x #333; background: #ccc;"&gt;&lt;li&gt;&lt;code&gt;&amp;lt;entry&amp;gt;&lt;/code&gt;&lt;ul&gt; &lt;li&gt;&lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'entry with images'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;date&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'August 09, 2003'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;author&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'Kevin'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;idnum&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'000033'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;permalink&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'http://alazanto.org/xml/archives/000033.xml'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;&lt;ul&gt;   &lt;li&gt;&lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;@class='archive'&lt;/code&gt;&lt;/li&gt;    &lt;li&gt;&lt;code&gt;@align='right'&lt;/code&gt;&lt;/li&gt;    &lt;li&gt;&lt;code&gt;@src='http://alazanto.org/images/sample.jpg'&lt;/code&gt;&lt;/li&gt;    &lt;li&gt;&lt;code&gt;@alt='photograph of a flower, just for show'&lt;/code&gt;&lt;/li&gt;   &lt;/ul&gt;&lt;/li&gt;   &lt;li&gt;&lt;code&gt;'Mauris felis elit, varius quis, pulvinar vel, sodales vehicula, mi. Nunc elementum pharetra elit.'&lt;/code&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;more&amp;gt;&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;comment-link&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'http://alazanto.org/xml/archives/000033_comments.xml'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;&amp;lt;comment-count&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;'6'&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;With this input, the XSLT to copy the nodes can be just as simple,using &lt;code&gt;xsl:copy-of&lt;/code&gt; to copy all the elements &lt;em&gt;under&lt;/em&gt;the source &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; element, but not the elementitself:&lt;/p&gt;&lt;pre style="border: solid 1x #333; background: #ccc;"&gt;&amp;lt;xsl:template match="entry"&amp;gt;&lt;br /&gt; &amp;lt;div class="entry"&amp;gt;&lt;br /&gt;  &amp;lt;h2&amp;gt;&amp;lt;xsl:value-of select="title"/&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;  &amp;lt;xsl:copy-of select="body/*"/&amp;gt;&lt;br /&gt; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;/pre&gt;&lt;p&gt;By copying elements instead of literal XHTML source code, Mozilladisplays the page from the correct DOM tree, and it works just as well withInternet Explorer and external XSLT processors.  The result looks verysimilar to the input DOM:&lt;/p&gt;&lt;ul style="border: solid 1x #333; background: #ccc;"&gt; &lt;li&gt;&lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;@class='entry'&lt;/code&gt;&lt;/li&gt;  &lt;li&gt;&lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt;&lt;ul&gt;   &lt;li&gt;&lt;code&gt;'entry with images'&lt;/code&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;/li&gt;  &lt;li&gt;&lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;&lt;ul&gt;   &lt;li&gt;&lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;@class='archive'&lt;/code&gt;&lt;/li&gt;    &lt;li&gt;&lt;code&gt;@align='right'&lt;/code&gt;&lt;/li&gt;    &lt;li&gt;&lt;code&gt;@src='http://alazanto.org/images/sample.jpg'&lt;/code&gt;&lt;/li&gt;    &lt;li&gt;&lt;code&gt;@alt='photograph of a flower, just for show'&lt;/code&gt;&lt;/li&gt;   &lt;/ul&gt;&lt;/li&gt;   &lt;li&gt;&lt;code&gt;'Mauris felis elit, varius quis, pulvinar vel, sodales vehicula, mi. Nunc elementum pharetra elit.'&lt;/code&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You can see the result of this in &lt;ahref="http://alazanto.org/xml/archives/000033.xml"&gt;Kevin’sexample XML weblog&lt;/a&gt;, in any web browser that supports XSLT.&lt;/p&gt;&lt;p&gt;(Finally, thanks to Kevin for using the&lt;code&gt;&amp;lt;xsl:copy-of&amp;gt;&lt;/code&gt; element, which I’d managed to miss infour years of reading the XSLT spec.)&lt;/p&gt;&lt;h2&gt;Further Reading&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Meyer, Eric,‘&lt;a href="http://www.meyerweb.com/eric/comment/chech.html"&gt;ConsideredHarmful Essays Considered Harmful&lt;/a&gt;’, 2002.&lt;/li&gt;&lt;li&gt;Walsh, Norman,‘&lt;a href="http://www.xml.com/pub/a/2003/08/20/embedded.html"&gt;EscapedMarkup Considered Harmful&lt;/a&gt;’, &lt;cite&gt;XML.com&lt;/cite&gt;, 2003.&lt;/li&gt;&lt;li&gt;Rossney, Robert, ‘&lt;a href="http://web.archive.org/web/20050301093936/http://www.azureus.com/xml/art_creating_cdata_sections_in_xslt.htm"&gt;Creating CDATA sections with XSLT&lt;/a&gt;’, 2002.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-9210643905056722954?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://words.carey.geek.nz/feeds/9210643905056722954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://words.carey.geek.nz/2003/08/xslt-cdata-escaping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/9210643905056722954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/9210643905056722954'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/2003/08/xslt-cdata-escaping.html' title='XSLT, CDATA and disable-output-escaping'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-2098651587375836060</id><published>1999-11-28T15:43:00.000+13:00</published><updated>2011-10-22T17:32:09.888+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Perl File::Sync</title><content type='html'>This module provides the POSIX &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;fsync()&lt;/span&gt; function call to Perl. It has been obsoleted by &lt;a href="http://perldoc.perl.org/IO/Handle.html#$io-%3Esync" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;IO::Handle&lt;/a&gt;, but you can still download it here, or from &lt;a href="http://search.cpan.org/%7Ecevans/File-Sync-0.09/"&gt;CPAN&lt;/a&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://carey.geek.nz/code/perl-file-sync/File-Sync-0.09.tar.gz"&gt;File-Sync-0.09.tar.gz&lt;/a&gt; (4KB)&lt;/li&gt;&lt;/ul&gt;The module is licensed under the same license as Perl itself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-2098651587375836060?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/2098651587375836060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/2098651587375836060'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/1999/11/perl-filesync.html' title='Perl File::Sync'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-5293772579370606797</id><published>1999-08-26T23:26:00.000+12:00</published><updated>2011-10-21T21:44:47.652+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Humorous RFCs</title><content type='html'>&lt;p&gt;This is a collection of Internet standards documents, with adifference from the usual ones describing the intricacies ofnegotiating the parameters of a PPP connection, for example.  Many ofthem were published on April 1.  A similar list to this one isavailable from the &lt;a href="http://www.apps.ietf.org/"&gt;IETF Applications Area&lt;/a&gt;’s&lt;a href="http://www.apps.ietf.org/rfc/apr1list.html"&gt;April 1st/Humor RFCs&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The links on this pages lead to the&lt;a href="http://tools.ietf.org/html/"&gt;HTML-formatted RFCs at the IETF&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Last updated: 21 October 2011.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;h2 id="april1"&gt;April 1&lt;/h2&gt;&lt;dl&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc748"&gt;RFC748&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;TELNET RANDOMLY-LOSE Option (M. Crispin, 1 April 1978)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1097"&gt;RFC1097&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;TELNET SUBLIMINAL-MESSAGE Option (B. Miller, 1 April 1989)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1149"&gt;RFC1149&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;A Standard for the Transmission of IP Datagrams on Avian Carriers (D. Waitzman, 1 April 1990)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1216"&gt;RFC1216&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Gigabit Network Economics and Paradigm Shifts (Poorer Richard and Prof. Kynikos, 1 April 1991)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1217"&gt;RFC1217&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Memo from the Consortium for Slow Commotion Research (CSCR) (V. Cerf, 1 April 1991)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1313"&gt;RFC1313&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Today’s Programming for KRFC AM 1313 — Internet Talk Radio (C. Partridge, 1 April 1992)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1437"&gt;RFC1437&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;The Extension of MIME Content-Types to a New Medium (N. Borenstein and M. Linimon, 1 April 1993)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1438"&gt;RFC1438&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Internet Engineering Taskforce — Statements of Boredom (L. Chapin and C. Huitema, 1 April 1993)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1605"&gt;RFC1605&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;SONET to Sonnet Translation (W. Shakespeare, 1 April 1994)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1606"&gt;RFC1606&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;A Historical Perspective On The Usage Of IP Version 9 (J. Onions, 1 April 1994)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1607"&gt;RFC1607&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;A View from the 21st Century (V. Cerf, 1 April 1994)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1776"&gt;RFC1776&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;The Address is the Message (S. Crocker, 1 April 1995)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1924"&gt;RFC1924&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;A Compact Representation of IPv6 Addresses (R. Elz, 1 April 1996)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1925"&gt;RFC1925&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;The Twelve Networking Truths (R. Callon, Editor, 1 April 1996)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1926"&gt;RFC1926&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;An Experimental Encapsulation of IP Datagrams on Top of ATM (J. Eriksson, 1 April 1996)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1927"&gt;RFC1927&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Suggested Additional MIME Types for Associating Documents (C. Rogers, 1 April 1996)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc2321"&gt;RFC2321&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;RITA — The Reliable Internetwork Troubleshooting Agent (A. Bressen, 1 April 1998)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc2322"&gt;RFC2322&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Management of IP numbers by peg-dhcp (K. van den Hout, A. Koopal, R. van Mook, 1 April 1998)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc2323"&gt;RFC2323&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;IETF Identification and Security Guidelines (A. Ramos,  1 April 1998)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc2324"&gt;RFC2324&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) (L. Masinter, 1 April 1998)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc2325"&gt;RFC2325&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Definitions of Managed Objects for Drip-Type Heated Beverage Hardware Devices using SMIv2 (M. Slavitch, 1 April 1998)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc2549"&gt;RFC2549&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;IP over Avian Carriers with Quality of Service (D. Waitzman, 1 April 1999)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc2550"&gt;RFC2550&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Y10K and Beyond (S. Glassman, M. Manasse and J. Mogul, 1 April 1999)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc2551"&gt;RFC2551&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;The Roman Standards Process — Revision III (S. Bradner, I April MCMXCIX)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc2795"&gt;RFC2795&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;The Infinite Monkey Protocol Suite (IMPS) (S. Christey, 1 April 2000)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc3091"&gt;RFC3091&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Pi Digit Generation Protocol (H. Kennedy, 1 April 2001)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc3092"&gt;RFC3092&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Etymology of “Foo” (D. Eastlake 3rd, C. Manros and E. Raymond, 1 April 2001)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc3093"&gt;RFC3093&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Firewall Enhancement Protocol (FEP) (M. Gaynor and S. Bradner, 1 April 2001)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc3251"&gt;RFC3251&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Electricity over IP (B. Rajagopalan, 1 April 2002)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc3252"&gt;RFC3252&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Binary Lexical Octet Ad-hoc Transport (H. Kennedy, 1 April 2002)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc3514"&gt;RFC3514&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;The Security Flag in the IPv4 Header (S. Bellovin, 1 April 2003)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc3751"&gt;RFC3751&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Omniscience Protocol Requirements (S. Bradner, 1 April 2004)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc4041"&gt;RFC4041&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Requirements for Morality Sections in Routing Area Drafts (A. Farrel, 1 April 2005)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc4042"&gt;RFC4042&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;UTF-9 and UTF-18 Efficient Transformation Formats of Unicode (M. Crispin, 1 April 2005)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc4824"&gt;RFC4824&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;The Transmission of IP Datagrams over the Semaphore Flag Signaling System (SFSS) (J. Hofmueller, A. Bachman, IO. zmoelnig, 1 April 2007)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc5241"&gt;RFC5241&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Naming Rights in IETF Protocols (A. Falk, S. Bradner, 1 April 2008)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc5242"&gt;RFC5242&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;A Generalized Unified Character Code: Western European and CJK Sections (J. Klensin, H. Alvestrand, 1 April 2008)&lt;/dd&gt;&lt;/dl&gt;&lt;h2 id="poetry"&gt;Poetry&lt;/h2&gt;&lt;dl&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc527"&gt;RFC527&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;ARPAWOCKY (R. Merryman, 22 June 1973)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc968"&gt;RFC968&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Twas the Night Before Start-up (V. Cerf, December 1985)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1121"&gt;RFC1121&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Act One — The Poems (J. Postel, L. Kleinrock, V. Cerf and B. Boehm, September 1989)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1300"&gt;RFC1300&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Remembrances of Things Past (S. Greenfield, February 1992)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1882"&gt;RFC1882&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;The 12 Days of Technology Before Christmas (B. Hancock, December 1995)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc2100"&gt;RFC2100&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;The Naming of Hosts (J. Ashworth, 1 April 1997)&lt;/dd&gt;&lt;/dl&gt;&lt;h2 id="misc"&gt;Miscellaneous&lt;/h2&gt;&lt;dl&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc602"&gt;RFC602&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;The Stockings Were Hung by the Chimney with Care (B. Metcalfe, December 1973)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1439"&gt;RFC1439&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;The Uniqueness of Unique Identifiers (C. Finseth, March 1993)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc1876"&gt;RFC1876&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;A Means for Expressing Location Information in the Domain Name System (C. Davis, P. Vixie, T. Goodwin, I. Dickinson, January 1996)&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://tools.ietf.org/html/rfc2410"&gt;RFC2410&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;The NULL Encryption Algorithm and Its Use With IPsec (R. Glenn and S. Kent, November 1998)&lt;/dd&gt;&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-5293772579370606797?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/5293772579370606797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/5293772579370606797'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/1999/08/humorous-rfcs.html' title='Humorous RFCs'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-2338860533129332560</id><published>1998-11-08T21:55:00.000+13:00</published><updated>2011-11-27T08:07:45.376+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='docs'/><title type='text'>Using x3270 with an IBM AS/400</title><content type='html'>&lt;p&gt;There have been a few questions asked on &lt;a href="http://groups.google.com/group/comp.sys.ibm.as400.misc"&gt;comp.sys.ibm.as400.misc&lt;/a&gt; aboutaccessing an AS/400 “green screen” display from Unix. This pagedescribes how I had it set it up very nicely under Linux using the&lt;a href="http://x3270.bgp.nu/"&gt;x3270 terminal emulator.&lt;/a&gt;&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;My environment was:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;A model 4609-510 AS/400 with OS/400 V4R2, and configured forTCP/IP on an Ethernet LAN.&lt;/li&gt;&lt;li&gt;A IBM PC with a Pentium processor running &lt;a href="http://www.debian.org/"&gt;Debian GNU/Linux&lt;/a&gt; 2.0.&lt;/li&gt;&lt;li&gt;The version of x3270 from this version of Debian, which is3.1.1.9.&lt;/li&gt;&lt;li&gt;I’ve used this basic setup for versions of x3270 from before3.1.1.5, and from OS/400 V3R6.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;(Since I first wrote this document, a few links to it have    appeared on various web pages, and I’ve started then stopped    maintaining x3270 for Debian.)&lt;/p&gt;&lt;h4&gt;Introduction&lt;/h4&gt;&lt;p&gt;The first thing to do is to get x3270 compiled, installed andconfigured to connect to the AS/400 system.  This is all fairly wellcovered in x3270’s documentation, so I won’t expand on it here.&lt;/p&gt;&lt;p&gt;When you connect to the AS/400 using x3270, you will (surprise!)be using a 3270 data stream, which the AS/400 converts to a 5250 datastream for you.  Recent versions of x3270 emulate a 3279 device, whichhas the enhanced features necessary for all the colours andhighlighting to be displayed. In fact, I found the effects to becloser to what is described in the &lt;a href="http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/QB3AUI01/3.36.2"&gt;DDSReference&lt;/a&gt; than any other PC emulator.&lt;/p&gt;&lt;h4&gt;System Request support&lt;/h4&gt;&lt;p&gt;A problem with all official releases of x3270 up to 3.1.1.7, isthat there is no way to use System Request to interrupt a display thathas the keyboard locked. The new TN3270E RFC defines the 3270 Attnfunction as sending a telnet ‘Interrupt Process’ code, which is notwhat x3270 normally sends.  It turns out that the AS/400 supports thiscode for System Request.&lt;/p&gt;&lt;p&gt;For System Request to work properly, I recommend compiling thelatest version of x3270.&lt;/p&gt;&lt;h4&gt;Configuring for AS/400&lt;/h4&gt;&lt;p&gt;All the configuration you need should be taken care of by my &lt;a href="http://carey.geek.nz/doc/x3270-as400/x3270pro"&gt;.x3270pro&lt;/a&gt; file.  Make sure there’s nothing youwant to keep in your current one, then drop mine in your homedirectory.  If you’re the latest version of x3270, use the &lt;a href="http://carey.geek.nz/doc/x3270-as400/x3270pro.patches"&gt;.x3270pro patched&lt;/a&gt; file instead. Then startup x3270 and try it!&lt;/p&gt;&lt;p&gt;This is what the file actually does:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The first long section following“&lt;samp&gt;x3270.keymap.5250&lt;/samp&gt;” defines a new keyboard mapping thattranslates the key you press (like F2) into what the AS/400 emulatorwants to see (PA1 followed by PF2).  A special one is Shift-Home,which is useful with SDA.  You’ll know if you need it.&lt;/li&gt;&lt;li&gt;You must use a model 2 (with an 80x24 screen) because that’sthe size of screen the AS/400 draws on.&lt;/li&gt;&lt;li&gt;I use the ‘alt’ character set to enable my Alt key,overridden by the 5250 mappings above.&lt;/li&gt;&lt;li&gt;The ‘us-intl’ character set seems to correspond almostexactly with CCSID 37, which is the default CCSID at my site. Thisrepresents the US English code page.  In particular, the brackets ‘[’and ‘]’ work.  (See some of the members in QSYSINC/H for examples.)Only the pilcrow sign ‘¶’ is represented differently.&lt;/li&gt;&lt;li&gt;‘blankFill’ makes entry fields work better when inserting atthe start.&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Problems&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Unfortunately, the 3270 display does not support the keyboardshift and validation of a real 5250 and these functions are providedby the AS/400.  This means that input in an uppercase only field willappear however you type it.&lt;/li&gt;&lt;li&gt;The Field Exit, Field + and Field - keys are not supported bythe AS/400’s emulation, so my key mappings simulate it by erasing tothe end of the field then tabbing to the next field. This usuallyworks fine except with negative numbers, which I have trouble with.ISTR having other problems on V3R6.&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Links&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Mike Madore and others are working on a&lt;a href="http://tn5250.sf.net/"&gt;5250 emulator&lt;/a&gt; for Linux.&lt;/li&gt;&lt;li&gt;IETF &lt;a href="http://www.ietf.org/html.charters/OLD/tn3270e-charter.html"&gt;Telnet TN3270 Enhancements&lt;/a&gt; working group&lt;/li&gt;&lt;li&gt;&lt;a href="http://publib.boulder.ibm.com/pubs/html/as400/online/homeeng1.htm"&gt;IBM AS/400 online manuals&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/QB3ANL01/8.4"&gt;TCP/IPConfiguration and Reference V4R2 / TELNET Server / 3270 Full-ScreenMode&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/QB3AUI01/D.0"&gt;DDSReference V4R2 / DDS for 3270 Remote Attachment&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/QB3AQ501/CCONTENTS"&gt;InternationalApplication Development V4R2&lt;/a&gt; — Appendices A and F&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-2338860533129332560?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/2338860533129332560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/2338860533129332560'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/1998/11/using-x3270-with-ibm-as400.html' title='Using x3270 with an IBM AS/400'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-2287334962409609224.post-6915511617016556573</id><published>1998-08-10T19:00:00.000+12:00</published><updated>2011-10-24T08:13:33.854+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='docs'/><title type='text'>Introduction to Scripting</title><content type='html'>&lt;p&gt;In August 1998, the local &lt;a href="http://christchurch.lug.net.nz/"&gt;LinuxUsers’ Group&lt;/a&gt; had a meeting for its members, where three presentationswere given about topics related to Linux.  This page links tomaterials from my presentation about scripting.&lt;/p&gt;&lt;p&gt;My presentation focussed on four languages:&lt;/p&gt;&lt;ul&gt; &lt;li&gt;sh&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.tcl.tk/"&gt;Tcl&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.perl.com/"&gt;Perl&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You can download three files containing material for my presentation:&lt;/p&gt;&lt;ul&gt; &lt;li&gt;The &lt;a href="http://carey.geek.nz/doc/script-intro/scriptintro.pdf"&gt;PDF file of the slides&lt;/a&gt;;&lt;/li&gt; &lt;li&gt;The &lt;a href="http://carey.geek.nz/doc/script-intro/scriptintro.tex"&gt;LaTeX source&lt;/a&gt; for the slides;&lt;/li&gt; &lt;li&gt;The gzipped tar file containing the &lt;a href="http://carey.geek.nz/doc/script-intro/scriptex-1.1.tar.gz"&gt;example scripts&lt;/a&gt; I prepared.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Not all the examples described in the slides were written.  The GUIexample was not written for sh, because there is no GUI libraryavailable on Linux.  With &lt;ahref="http://www.opengroup.org/desktop/cde/"&gt;CDE&lt;/a&gt; installed, theremight be dtksh, but I’ve never used CDE.  The scripts to check a webpage were not written due to lack of time.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2287334962409609224-6915511617016556573?l=words.carey.geek.nz' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/6915511617016556573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2287334962409609224/posts/default/6915511617016556573'/><link rel='alternate' type='text/html' href='http://words.carey.geek.nz/1998/08/script-intro.html' title='Introduction to Scripting'/><author><name>Carey Evans</name><uri>https://profiles.google.com/111954423307774106515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2qpH_Qzrlco/AAAAAAAAAAI/AAAAAAAAAxc/sO9CAtRtK8o/s512-c/photo.jpg'/></author></entry></feed>
