<?xml version="1.0" encoding="utf-8"?>
<!-- generator="wordpress/2.1.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Mathrick no PATANKO PRESS!</title>
	<link>http://mathrick.org/blog</link>
	<description>Our software is not patent cucumbered</description>
	<pubDate>Thu, 08 May 2008 12:26:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.3</generator>
	<language>en</language>
			<item>
		<title>MoinMoin considered harmful</title>
		<link>http://mathrick.org/blog/archives/2008/05/08/moinmoin-considered-harmful/</link>
		<comments>http://mathrick.org/blog/archives/2008/05/08/moinmoin-considered-harmful/#comments</comments>
		<pubDate>Thu, 08 May 2008 12:26:07 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Computing]]></category>

		<category><![CDATA[FLOSS]]></category>

		<category><![CDATA[Intarweb]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2008/05/08/moinmoin-considered-harmful/</guid>
		<description><![CDATA[THIS IS A PUBLIC SERVICE ANNOUNCEMENT: Please don&#8217;t use MoinMoin. Using MoinMoin is actually worse than not having a wiki at all.
Tl;dr summary
It sucks so hard and will mislead your visitors in so many ways that you&#8217;re better off having a straight HTML dump with an email contact than trying to fight the hopeless failure [...]]]></description>
			<content:encoded><![CDATA[<p><strong>THIS IS A PUBLIC SERVICE ANNOUNCEMENT: Please don&#8217;t use MoinMoin</strong>. Using MoinMoin is actually worse than not having a wiki at all.</p>
<h2>Tl;dr summary</h2>
<p>It sucks so hard and will mislead your visitors in so many ways that you&#8217;re better off having a straight HTML dump with an email contact than trying to fight the hopeless failure of MoinMoin.</p>
<h2>Detailed explanation</h2>
<p>I&#8217;ve been using various sites using MoinMoin to keep their content for a long time. I&#8217;ve never particularly liked that wiki engine, and found it confusing on numerous occasions, but the recent re-stumbling upon a particularly egregious case of Moin going out of its way to make sure your visitors <strong>aren&#8217;t</strong> getting what you wanted to give them was the final straw: I realised that it&#8217;s the C++ of wikis &#8212; not only will it not solve your problems, it will cause new ones that will make you long for your original ones.</p>
<p>First off, a couple of comparatively minor offences: its UI sucks and is confusing all around. The famous combined login/register widget is a paragon of UI anti-design, its version diff widget sucks, its history view is unwieldy and doesn&#8217;t actually link to the first revision (!!), I&#8217;ve long had experiences with its search being less than helpful, and of course it uses CamelCaseWikiLinks, which all sane people agree are stupid and harmful ([[explicit wiki links]] being the only sane syntax, obviously).</p>
<p>Now, a far more serious sin: it comes with its DB prepopulated with filler content concerning MoinMoin itself. This alone should be enough to disqualify any wiki from being seriously considered, as it means that:</p>
<ol>
<li>unless you take active steps to combat it, any actual content you have will be drowned by the completely irreleveant bullshit that makes your site look like a page about $wiki_engine (I&#8217;M LOOKING AT YOU, TRAC) instead of what you actually want to talk about</li>
<li>the wiki help and your actual content have to compete for space, and as you add yours, you have to remove the (useful, after all) links to information about how to add and edit more</li>
<li>odds are that the filler content is in the same namespace as your primary one, increasing the chances of accidental clashes between unrelated pages</li>
</ol>
<p>Now, that doesn&#8217;t mean wikis shouldn&#8217;t come with docs, far from it. It just means they should be clearly marked as such, and available <em>separately</em> from any content. This way a wiki about guinea pig mating habits with no content added yet will look like an empty wiki, and not like a page about Trac (and if you think it&#8217;s not a problem, please consider that most experts on guinea pig mating habits will likely have no idea what Trac is and why it is here where they expected a place to share their knowledge about guinea pigs).</p>
<p>However, in case of MoinMoin, the above is <strong>not</strong> the worst it does. No, it takes the idea of filler content and does things with it that make Trac look like the well-behaved, helpful boy from the neighbourhood. But first, I need you to do the following:</p>
<ul>
<li>pick a non-English language you understand</li>
<li>make sure it&#8217;s one of:
<ul>
<li>Danish (this one I&#8217;m using myself, as I&#8217;m learning it)</li>
<li>Russian</li>
<li>Japanese</li>
</ul>
</li>
<li>the following will specifically <strong>not</strong> work for our demonstration (you will learn why in   a moment):
<ul>
<li>Swedish, Norwegian Bokmål [nb], Chinese [zh] (not self-contained)</li>
<li>Italian, Polish, Greek, Norwegian [no], Nynorsk [nn] (absent)</li>
</ul>
</li>
<li>if you know none of the suitable languages, just pick one that looks the least strange to you</li>
<li>make sure that the language you picked is <a href="http://www.w3.org/International/questions/qa-lang-priorities#answer">your preferred browsing language</a></li>
</ul>
<p>.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
(no, seriously, do it, I&#8217;ll wait)<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.</p>
<p>Okay, now we have you browsing in $language, go to <a href="http://codeville.org/doc/">http://codeville.org/doc/</a>. You&#8217;ll notice that:</p>
<p>1) It talks about wiki and MoinMoin and a couple of other wiki engines<br />
2) It&#8217;s completely in $language<br />
3) It doesn&#8217;t give you a slightest hint that it&#8217;s <strong><a href="http://codeville.org/doc/QuickStartGuide">NOT WHAT CODEVILLE AUTHORS INTENDED</a></strong>. Not a language selector, not a link, not even a URL in the addressbar. NOTHING.<br />
4) There&#8217;s not even a way to find the original English front page. Site map, title index, <a href=" http://codeville.org/doc/OrdListe">word index</a> etc. are all buried deep under layers upon layers of <a href="http://codeville.org/doc/WikiCourse/">irrelevant pages about MoinMoin</a> and twenty translated copies thereof (that is, after you wait 2 minutes for them to load).</p>
<p>The only way to see the actual intended content if you happen to be using one of the unlucky languages is to guess that it&#8217;s not really right, then guess the content will be probably in English, then guess that you can go there by manually entering the English root&#8217;s name in the URL bar, then guess the name of it, backtrack a couple of times on misses (like MainPage, StartPage) until you get to the correct one (ie. FrontPage), then vow solemnly never ever to use the goddamn thing again.</p>
<p>It also means that the entire site can, silently and untraceably, transform completely depending on a hidden, essentially random variable the site admins <em>will likely never discover and know to fix</em>. It is also <em>enabled by default</em> (I have previously discovered and reported the exact same problem on <a href="http://revctrl.org/">Revctrl wiki</a>, it has since been fixed).</p>
<p>Bottom line: in order to have MoinMoin even remotely resembling something useful, you have to essentially unbreak it on two separate levels, one of which is hidden so deeply that it can go undetected for years. Straight HTML, email, IRC, paper printouts, clay tablets, smoke signals, ANYTHING is better because at least what you see is what you get, unlike with MoinMoin.</p>
<p>Note also that the above is based solely on the problems I&#8217;ve been able to notice and track down based on my experiences with MoinMoin as a user. I have no idea what else you have to unbreak as an admin and what other problems might be lurking in other places, but I&#8217;d be <em>very</em> surprised if it turned out to be otherwise flawless.</p>
<p><b>PS.</b> If you have read the entire post, you&#8217;re welcome and encouraged to go back and try with different languages and report the results back to me, so I can expand the known working / non-working list. In order for a language to be suitable for the demo purposes, the translation has to exist, and be self-contained (which is defined as &#8220;doesn&#8217;t immediately suggest that something is amiss and doesn&#8217;t link directly to the English version&#8221;). It doesn&#8217;t mean that non-self-contained translations are not an issue, but I want to make sure the first impression gives the proper idea of the magnitude of the problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2008/05/08/moinmoin-considered-harmful/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Easter activities</title>
		<link>http://mathrick.org/blog/archives/2008/03/24/easter-activities/</link>
		<comments>http://mathrick.org/blog/archives/2008/03/24/easter-activities/#comments</comments>
		<pubDate>Sun, 23 Mar 2008 23:30:57 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2008/03/24/easter-activities/</guid>
		<description><![CDATA[Things I did this easter: go to church, drink, THROW SNOWBALLS.
]]></description>
			<content:encoded><![CDATA[<p>Things I did this easter: go to church, drink, <b>THROW SNOWBALLS</b>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2008/03/24/easter-activities/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What is love</title>
		<link>http://mathrick.org/blog/archives/2008/03/02/what-is-love/</link>
		<comments>http://mathrick.org/blog/archives/2008/03/02/what-is-love/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 02:36:31 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2008/03/02/what-is-love/</guid>
		<description><![CDATA[Life is good.
]]></description>
			<content:encoded><![CDATA[<p>Life is good.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2008/03/02/what-is-love/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CUA-mode and paredit.el, married happily</title>
		<link>http://mathrick.org/blog/archives/2008/02/17/cua-mode-and-pareditel-married-happily/</link>
		<comments>http://mathrick.org/blog/archives/2008/02/17/cua-mode-and-pareditel-married-happily/#comments</comments>
		<pubDate>Sun, 17 Feb 2008 00:52:13 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Emacs]]></category>

		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2008/02/17/cua-mode-and-pareditel-married-happily/</guid>
		<description><![CDATA[Just a quick drop: if you use paredit.el for editing in your Lisp buffers (as you should), and you happen to also use CUA-mode (which rocks, btw), you probably know that by default they don&#8217;t play together too well. Well, I&#8217;ve finally got fed up with that and wrote some glue to fix them up. [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick drop: if you use paredit.el for editing in your Lisp buffers (as you should), and you happen to also use CUA-mode (which rocks, btw), you probably know that by default they don&#8217;t play together too well. Well, I&#8217;ve finally got fed up with that and wrote some glue to fix them up. Details and code can be had from <a href="http://groups.google.com/group/comp.lang.lisp/msg/1dcbcd3e99137953">this c.l.l post</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2008/02/17/cua-mode-and-pareditel-married-happily/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I am not able to rightly comprehend the kind of confusion of ideas that could provoke such a claim</title>
		<link>http://mathrick.org/blog/archives/2008/01/14/i-am-not-able-to-rightly-comprehend-the-kind-of-confusion-of-ideas-that-could-provoke-such-a-claim/</link>
		<comments>http://mathrick.org/blog/archives/2008/01/14/i-am-not-able-to-rightly-comprehend-the-kind-of-confusion-of-ideas-that-could-provoke-such-a-claim/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 13:18:18 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2008/01/14/i-am-not-able-to-rightly-comprehend-the-kind-of-confusion-of-ideas-that-could-provoke-such-a-claim/</guid>
		<description><![CDATA[Update: For some reason WP disabled comments when I first posted this. Fixed now.
There&#8217;s a thread on c.l.l going, in which people try to find a reason macros haven&#8217;t caught on for the past 30 years, despite their immense usefulness. One of the cited arguments was this statement by one of the men in charge [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update:</strong> For some reason WP disabled comments when I first posted this. Fixed now.</p>
<p>There&#8217;s <a href="http://groups.google.com/group/comp.lang.lisp/msg/8dfcb1d5ada44c5f">a thread</a> on c.l.l going, in which people try to find a reason macros haven&#8217;t caught on for the past 30 years, despite their immense usefulness. One of the cited arguments was <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=5246">this statement</a> by one of the men in charge of Java process:</p>
<blockquote><p>
The advantages of Java is that it easily serves as a lingua franca - everyone can read a Java program and understand what is going on. User defined macros destroy that property. Every installation or project can (and will) define its own set of macros, that make their programs unreadable for everyone else. Programming languages are cultural artifacts, and their success (i.e., widespread adoption) is critically dependent on cultural factors as well as technical ones.
</p></blockquote>
<p>My claim is that this is about as true as C++&#8217;s approach to performance, in which people copy things all the time, because that&#8217;s what manual memory management makes them do. Just consider the &#8220;design patterns&#8221; omnipresent in Java. What is a macro, if not a structured transformation of source, following certain pattern? Of course, I&#8217;m saying nothing new here, but I just stumbled upon a particularly good demonstration of why &#8220;macros decrease legibility of code&#8221; is utter nonsense. Consider this snippet:</p>
<pre>
(restart-bind
    ((retry
      (lambda () (throw 'retry nil))
       :report-function
       (lambda (stream)
         (write "Retry reading the record." :stream stream))))
  (catch 'ok
    (loop do
         (catch 'retry
           (throw 'ok
             (unless (read-record)
               (error "Record not available.")))))))
</pre>
<p>Just try analysing it, how fast can you find out what exactly it does? Aren&#8217;t braided catch/throws fun? Now consider the same snippet using a macro:</p>
<pre>
(with-retry (:report "Retry reading the record.")
  (unless (read-record)
    (error "Record not available.")))
</pre>
<p>Not only is the code 4x shorter and uses idiomatic naming conventions and code structure, the macro also comes with a docstring and parameters to let you easily influence the working. And most importantly, you only have to understand it <em>once</em>. Whereas in Java every time you encounter a similar-looking snippet, you have to analyse it to see if it&#8217;s actually the same thing, or subtly different.</p>
<p>So, to sum up with a checklist, the macroless code is:</p>
<ul>
<li>More verbose</li>
<li>Really complex and confusing</li>
<li>Hard to spot and identify reliably</li>
<li><strong>Not documented</strong></li>
<li>Must be re-invented each time you need it</li>
<li>Does <strong>not</strong> ultimately prevent convoluted code from coming up. If your code needs retry functionality, then so it does, and no amount of &#8220;ours is a simple language for the masses&#8221; can change it. Though if you make it sufficiently painful, people will probably find ways to dillute the apparent complexity amongst modules, only compounding the problems, and/or pretend they don&#8217;t really need their program correct, because it&#8217;s such a massive PITA to do it.</li>
</ul>
<p>Now, to be fair, this is not to say that macros can&#8217;t be hard &#8212; very often they are, because you generally use macros to solve problems that would be even <em>harder</em> without them. You don&#8217;t deny surgeons access to endoscopy because they might not be skillfull enough to handle it &#8212; instead you make sure they are or have to find another trade. There&#8217;s no reason to treat programmers differently.</p>
<p>Saying &#8220;macros make code unreadable&#8221; is like saying &#8220;race bets can only be done on manure-covered floor, or else you won&#8217;t know you&#8217;re dealing with horses&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2008/01/14/i-am-not-able-to-rightly-comprehend-the-kind-of-confusion-of-ideas-that-could-provoke-such-a-claim/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Chattr</title>
		<link>http://mathrick.org/blog/archives/2008/01/03/chattr/</link>
		<comments>http://mathrick.org/blog/archives/2008/01/03/chattr/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 15:55:14 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2008/01/03/chattr/</guid>
		<description><![CDATA[Admit it, your Web 2.0 experience hasn&#8217;t been full up till now, has it? But now, with Chattr here, you can fix that and talk like a real Web 2.0 weenie with no effort. Its full glory can be had here. 
Executive summary: yes, it&#8217;s an XChat plugin, no, it has no use.
]]></description>
			<content:encoded><![CDATA[<p>Admit it, your Web 2.0 experience hasn&#8217;t been full up till now, has it? But now, with Chattr here, you can fix that and talk like a real Web 2.0 weenie with no effort. Its full glory <a href="http://mathrick.org/files/chattr.py">can be had here</a>. </p>
<p>Executive summary: yes, it&#8217;s an XChat plugin, no, it has no use.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2008/01/03/chattr/feed/</wfw:commentRss>
		</item>
		<item>
		<title>;_;</title>
		<link>http://mathrick.org/blog/archives/2007/12/18/_/</link>
		<comments>http://mathrick.org/blog/archives/2007/12/18/_/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 12:38:08 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2007/12/18/_/</guid>
		<description><![CDATA[
(with-christmas-gifts
  (visit family))
(setf *money* 0)
(print ";_;")

]]></description>
			<content:encoded><![CDATA[<pre>
(with-christmas-gifts
  (visit family))
(setf *money* 0)
(print ";_;")
</pre>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2007/12/18/_/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More useful bash prompt</title>
		<link>http://mathrick.org/blog/archives/2007/11/25/more-useful-bash-prompt/</link>
		<comments>http://mathrick.org/blog/archives/2007/11/25/more-useful-bash-prompt/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 16:22:59 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2007/11/25/more-useful-bash-prompt/</guid>
		<description><![CDATA[Working on a project with a rather deep directory hierarchy, I finally got tired of my prompt overflowing the line and wrapping around. So, here&#8217;s a handy bash function to put in your $PS1. It should be noted that I did not write it, I only wrapped it up in a function and added some [...]]]></description>
			<content:encoded><![CDATA[<p>Working on a project with a rather deep directory hierarchy, I finally got tired of my prompt overflowing the line and wrapping around. So, here&#8217;s a handy <code>bash</code> function to put in your <code>$PS1</code>. It should be noted that I did not write it, I only wrapped it up in a function and added some aesthetic options, but all the hard work and <code>bash</code> hackery was done by <i>BearPerson</i> from <code>#bash</code>.</p>
<pre>
# Produces the same effect as \w in $PS1, but makes sure that the
# result length doesn't exceed $1 chars. If any dirs are omitted, they
# are replaced with [...]. Optional $2 turns on ANSI VT100 escape
# sequences to dim the [...] part. Optional $3 specifies the colour
# code to dim to (otherwise 02, "dim")
bound_pwd ()
{
    limit=${1:-40}
    ansi=$2
    colour=${3:-2}

    regex="~$|~?/.{1,$limit}$|/[^/]*$"
    pre=$([ $ansi ] &#038;&#038; echo -n "\[\033[${colour}m\]")
    suf=$([ $ansi ] &#038;&#038; echo -n "\[\033[0m\]")

    CANDIDATE="${PWD/$HOME/~}"
    [[ $CANDIDATE =~ $regex ]]
    [[ $BASH_REMATCH != $CANDIDATE ]] &#038;&#038; CANDIDATE="$pre[...]$suf$BASH_REMATCH"

    echo $CANDIDATE
}
</pre>
<p>To use it, either put it in your <code>.bashrc</code>, or in a file that is sourced by <code>.bashrc</code>, then replace <code>\w</code> in your <code>$PS1</code> with <code>$(bound_pwd)</code>. Personally I use <code>$(bound_pwd 25 1)</code> to get at most 25 chars, with VT100 colour codes.</p>
<p>Obligatory screenshot:</p>
<p><a href='http://mathrick.org/blog/wp-content/uploads/bash_prompt.png' title='Bash prompt with the shortening'><img src='http://mathrick.org/blog/wp-content/uploads/bash_prompt.png' alt='Bash prompt with the shortening' /></a></p>
<p><s><strong>Update:</strong> If you use VT100 colours, remember to surround the <code>bound_pwd</code> invocation with <code>\[ \]</code>, otherwise non-printing characters will confuse <code>bash</code> and make it wrap lines incorrectly</s></p>
<p><strong>Update 2:</strong> The above update was wrong. It&#8217;s actually more complex than that, and due to the fact that <code>bash</code> doesn&#8217;t exactly have coherent escaping semantics, I had to rework the function. <em><strong>If you use VT100 colours and have downloaded an earlier version of bound_pwd, you have to download it again, it has changed</strong></em>. Additionally, to have it really work, you have to add this function:</p>
<pre>
set_ps1 ()
{
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:'"$(bound_pwd 25 1)"'$ '
}
</pre>
<p>And in <code>.bashrc</code>, add this:</p>
<pre>
# Yes, it's silly that ; alone is not valid syntax
PROMPT_COMMAND="${PROMPT_COMMAND:-true};set_ps1"
</pre>
<p><em><strong>Make sure it&#8217;s the last line to set <code>PROMPT_COMMAND</code></strong></em>. Especially if you&#8217;re on Debian/Ubuntu, as their default <code>.bashrc</code> sets it conditionally.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2007/11/25/more-useful-bash-prompt/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Routing complete Apache traffic to a CGI handler</title>
		<link>http://mathrick.org/blog/archives/2007/11/13/routing-complete-apache-traffic-to-a-cgi-handler/</link>
		<comments>http://mathrick.org/blog/archives/2007/11/13/routing-complete-apache-traffic-to-a-cgi-handler/#comments</comments>
		<pubDate>Tue, 13 Nov 2007 13:55:54 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Intarweb]]></category>

		<category><![CDATA[Lisp]]></category>

		<category><![CDATA[CGI-Lisp]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2007/11/13/routing-complete-apache-traffic-to-a-cgi-handler/</guid>
		<description><![CDATA[Following up on my CGI-Lisp work, here&#8217;s a short recipe on how to route the entire Apache traffic to a CGI handler. This is not trivial because of a few problems that need solving:

mod_actions will fall into  infinite loop if you try to associate a handler with &#60;Location /&#62; (as will mod_rewrite if you [...]]]></description>
			<content:encoded><![CDATA[<p>Following up on my CGI-Lisp work, here&#8217;s a short recipe on how to route the <em>entire</em> Apache traffic to a CGI handler. This is not trivial because of a few problems that need solving:</p>
<ol>
<li><code>mod_actions</code> will fall into  infinite loop if you try to associate a handler with <code>&lt;Location /&gt;</code> (as will <code>mod_rewrite</code> if you attempt to rewrite <code>/.*</code>)</li>
<li><code>mod_rewrite</code> will not execute CGI scripts by default</li>
<li><code>mod_rewrite</code> only serves physical paths under <code>DocumentRoot</code> (and it&#8217;s good practice <em>not</em> to have <code>/cgi-bin/</code> under DocumentRoot)</li>
</ol>
<p>These can be all solved, but require some searching and reading into the meaning of various options, so I&#8217;m posting a ready solution here:</p>
<pre>
&lt;VirtualHost *:80&gt;
    ...
    DocumentRoot /var/www/
    ...

    RewriteEngine On
    # PT means "passthrough" and will allow mod_rewritten URLs to be matched by
    # virtual locations, not just physical paths
    # T= specifies mime-type to ensure the CGI handler will be executed
    # sock.cgi is the handler we want to handle the entire traffic
    RewriteRule ^/(.*) /cgi-bin/sock.cgi/$1 [PT,T=application/x-httpd-cgi]

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    &lt;Directory "/usr/lib/cgi-bin"&gt;
        AllowOverride None
        #Add whatever options you normally use for your /cgi-bin/
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    &lt;/Directory&gt;
</pre>
<p>As an added bonus, it seems that the <code>REQUEST_URI</code> sent is the URL before rewriting, so you don&#8217;t have to do anything special to filter out <code>/cgi-bin/sock.cgi</code> from it.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2007/11/13/routing-complete-apache-traffic-to-a-cgi-handler/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CGI-Lisp 0.5</title>
		<link>http://mathrick.org/blog/archives/2007/11/12/cgi-lisp-05/</link>
		<comments>http://mathrick.org/blog/archives/2007/11/12/cgi-lisp-05/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 13:57:51 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Lisp]]></category>

		<category><![CDATA[CGI-Lisp]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2007/11/12/cgi-lisp-05/</guid>
		<description><![CDATA[Following the best agile methodologies, with rapid turnaround, short deliverables, tight customer feedback loop and probably something else involving &#8220;leveraging&#8221; and &#8220;assets&#8221;, I&#8217;m we&#8217;re proud to announce CGI-Lisp 0.5, the latest incarnation of the market-leading, award-winning product in the mod_lisp-compatible CGI-to-Lisp bridges space.
I call it 0.5 because I think it pretty much complete, but not [...]]]></description>
			<content:encoded><![CDATA[<p>Following the best agile methodologies, with rapid turnaround, short deliverables, tight customer feedback loop and probably something else involving &#8220;leveraging&#8221; and &#8220;assets&#8221;, <s>I&#8217;m</s> we&#8217;re proud to announce <a href="http://mathrick.org/software/cgi-lisp.tar.gz">CGI-Lisp 0.5</a>, the latest incarnation of the market-leading, award-winning product in the mod_lisp-compatible CGI-to-Lisp bridges space.</p>
<p>I call it 0.5 because I think it pretty much complete, but not enough to insist there are no bugs to be fixed or additions to be made.</p>
<p>Highlight of changes:</p>
<ul>
<li>POST now considered working. I haven&#8217;t actually done anything to make it so, but I tested it and mapped enough variables to have it actually useful (and it turns out to be working out of the box otherwise).</li>
<li>Much more complete mappings. It should have most of the variables anyone cares about now.</li>
<li>Tested a bit more. And by tested I mean &#8220;played with several Hunchentoot applications and found them not breaking horribly&#8221;.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2007/11/12/cgi-lisp-05/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CGI-Lisp</title>
		<link>http://mathrick.org/blog/archives/2007/11/10/cgi-lisp/</link>
		<comments>http://mathrick.org/blog/archives/2007/11/10/cgi-lisp/#comments</comments>
		<pubDate>Sat, 10 Nov 2007 15:06:35 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Intarweb]]></category>

		<category><![CDATA[Lisp]]></category>

		<category><![CDATA[CGI-Lisp]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2007/11/10/cgi-lisp/</guid>
		<description><![CDATA[I&#8217;m happy to announce the first release of CGI-Lisp. It&#8217;s a small hack that allows you to trampoline webserver requests into a long-running Lisp process, just like mod_lisp (and using the same protocol), except that it runs as a CGI handler. So you can run it on shared hosting.
The code was stolen from Rob Warnock, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy to announce the first release of CGI-Lisp. It&#8217;s a small hack that allows you to trampoline webserver requests into a long-running Lisp process, just like mod_lisp (and using the same protocol), except that it runs as a CGI handler. So you can run it on shared hosting.</p>
<p>The code was stolen from Rob Warnock, who hacked it years ago. I in turn hacked it into speaking unmodified mod_lisp, which allows it to be used as a drop-in replacement:</p>
<p><a href="http://mathrick.org/blog/wp-content/uploads/cgi-lisp.png" title="CGI-Lisp screenshot"><img src="http://mathrick.org/blog/wp-content/uploads/cgi-lisp.png" alt="CGI-Lisp screenshot" /></a></p>
<p>It&#8217;s been extensively tested by running it on exactly one machine in exactly one scenario. That means it will quite possibly break for you. If you still ain&#8217;t scared, <a href="http://mathrick.org/software/cgi-lisp.tar.gz" title="CGI-Lisp tarball">grab the tarball here</a>.</p>
<p><strong>Update</strong>: so yes, I realise you hate GLib and can&#8217;t install it on your server. Debugging it was sufficiently annoying, though, for me not to be willing to put up with the sorry excuse for string handling of plain C. And I don&#8217;t think it will be very useful without handling POST anyway. I will probably fix that later on, but I don&#8217;t have the time now.</p>
<p><strong> Update 2:</strong> I rewrote it not to require GLib. It&#8217;s slightly slower than before, but not much, and it&#8217;s good enough for me. POST non-handling still needs fixing though. You can grab the updated version <a href="http://mathrick.org/software/cgi-lisp.tar.gz" title="CGI-Lisp tarball">from the same place</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2007/11/10/cgi-lisp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Everything you (never) wanted to know about C++</title>
		<link>http://mathrick.org/blog/archives/2007/10/29/everything-you-never-wanted-to-know-about-c/</link>
		<comments>http://mathrick.org/blog/archives/2007/10/29/everything-you-never-wanted-to-know-about-c/#comments</comments>
		<pubDate>Mon, 29 Oct 2007 09:00:26 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2007/10/29/everything-you-never-wanted-to-know-about-c/</guid>
		<description><![CDATA[Ladies and gentlemen, the C++ FQA Lite!
If you hate C++, you&#8217;ll have a great time reading this brilliant and amusing rant that rings just so true. Occasionally you&#8217;ll weep when it rings a little bit too true, invoking painful memories.
If you love C++, it&#8217;s a big flaming rant, but written with technical competence that easily [...]]]></description>
			<content:encoded><![CDATA[<p>Ladies and gentlemen, the <a href="http://yosefk.com/c++fqa/">C++ FQA Lite</a>!</p>
<p>If you hate C++, you&#8217;ll have a great time reading this brilliant and amusing rant that rings just <em>so</em> true. Occasionally you&#8217;ll weep when it rings a little bit <em>too</em> true, invoking painful memories.</p>
<p>If you love C++, it&#8217;s a big flaming rant, but written with technical competence that easily shadows everything else out there that&#8217;s been written on the subject. You can&#8217;t claim any knowledge of C++ without having read it. And chances are that it&#8217;ll make you not love that sin against all good and just before it&#8217;s too late. Just think about it, the author is <em>still</em> trapped inside the warped world of C++, dealing with errors that have defeated everyone else on his team. The FQA is really a desperate cry from inside the asylum for you to stop while you still can. Think about it, you&#8217;ll be endlessly happier if you do.</p>
<p>If you don&#8217;t care about C++&#8230; Well, lucky you. But if you know someone who likes C++ more than they should (that is to say, <em>at all</em>), consider doing them a favour and pointing them to the FQA. <strong>Friends don&#8217;t let friends use C++.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2007/10/29/everything-you-never-wanted-to-know-about-c/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Common Lisp Tutorial</title>
		<link>http://mathrick.org/blog/archives/2007/09/28/common-lisp-tutorial/</link>
		<comments>http://mathrick.org/blog/archives/2007/09/28/common-lisp-tutorial/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 20:44:38 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2007/09/28/common-lisp-tutorial/</guid>
		<description><![CDATA[In case you don&#8217;t know it yet: Peter Seibel&#8217;s Practical Common Lisp is the best Common Lisp tutorial around. It&#8217;s also a great book on its own, and a recommended reading for anyone looking to pick up a new programming language (and Common Lisp is a recommended language for anyone, too :). Go read it.
My [...]]]></description>
			<content:encoded><![CDATA[<p>In case you don&#8217;t know it yet: Peter Seibel&#8217;s <em>Practical Common Lisp</em> is the best <a href="http://www.gigamonkeys.com/book/">Common Lisp tutorial</a> around. It&#8217;s also a great book on its own, and a recommended reading for anyone looking to pick up a new programming language (and Common Lisp is a recommended language for anyone, too :). Go read it.</p>
<p>My personal method of reading is, as it lack traditional textbook problem sections, to follow along with the problem specifications, but not with the code, and only compare the results once finished. This was the way for me to avoid lazily reading, but not actually comprehending, the code.</p>
<p>Also, if you choose to read the web version (there&#8217;s a dead tree edition to be picked up from Amazon, y&#8217;know), you will want to install the <a href="http://the.unwashedmeme.com/blog/2005/07/04/practical-common-lisp-footnotes-greasemonkey-script/">greasemonkey script for footnotes hyperlinkification</a>. And be sure to read it to the end, including all the practicals. A fair body of the code from the book got packaged into separate libraries and is actually used by many projects, this way you will be gathering knowledge of some very useful and widely employed packages.</p>
<p>And one final tip for any would-be Common Lisper: <a href="http://www.lisp.org/HyperSpec/FrontMatter/Starting-Points.html">CLHS</a> is your friend. Learn to read it today.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2007/09/28/common-lisp-tutorial/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ccharset 1.2.1</title>
		<link>http://mathrick.org/blog/archives/2007/09/22/ccharset-121/</link>
		<comments>http://mathrick.org/blog/archives/2007/09/22/ccharset-121/#comments</comments>
		<pubDate>Sat, 22 Sep 2007 21:14:49 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[日本 / Japan]]></category>

		<category><![CDATA[XChat]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2007/09/22/ccharset-121/</guid>
		<description><![CDATA[A new ccharset version is out, courtesy of LaC.
The installation and everything stay the same.
]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://mathrick.org/files/ccharset_1.2.1.py">new ccharset version</a> is out, courtesy of LaC.</p>
<p>The installation and everything <a href="http://mathrick.org/blog/archives/2005/12/15/ebisu-gentoru-man-ko/">stay the same</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2007/09/22/ccharset-121/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ALL HAIL THE MIGHTY BZR</title>
		<link>http://mathrick.org/blog/archives/2007/09/22/all-hail-the-mighty-bzr/</link>
		<comments>http://mathrick.org/blog/archives/2007/09/22/all-hail-the-mighty-bzr/#comments</comments>
		<pubDate>Sat, 22 Sep 2007 20:45:46 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2007/09/22/all-hail-the-mighty-bzr/</guid>
		<description><![CDATA[svn == ☹
svn + bzr-svn + merge-into == ☺ &#38;&#38; ♥
bzr is SO the best damn Subversion client around. It&#8217;s also an awesomely shinytastic SCM in general. I now have two svn repositories, one imported into a subdirectory of the other, while still retaining the ability to intelligently pull in changes made in the upstream [...]]]></description>
			<content:encoded><![CDATA[<p>svn == <span style="font-size: xx-large">☹</span></p>
<p>svn + bzr-svn + merge-into == <span style="font-size: xx-large">☺</span> &amp;&amp; <span style="font-size: xx-large">♥</span></p>
<p><a href="http://bazaar-vcs.org">bzr</a> is <strong>SO</strong> the best damn Subversion client around. It&#8217;s also an awesomely shinytastic SCM in general. I now have two svn repositories, one imported into a subdirectory of the other, <em>while still retaining the ability to intelligently pull in changes made in the upstream of the imported repo</em>, all managed by bzr-svn. And it&#8217;s not just svn branches imported one time into bzr. Those are actual svn working trees still fully visible and valid to any old svn client. In other words, bzr is so fucking cool it actually fixes design flaws in subversion! Ain&#8217;t got nobody nothing on that level of integration, no sir.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2007/09/22/all-hail-the-mighty-bzr/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Im in ur specs, synergistically leveragin ur award-winnin opportunities</title>
		<link>http://mathrick.org/blog/archives/2007/01/28/im-in-ur-specs-synergistically-leveragin-ur-award-winnin-opportunities/</link>
		<comments>http://mathrick.org/blog/archives/2007/01/28/im-in-ur-specs-synergistically-leveragin-ur-award-winnin-opportunities/#comments</comments>
		<pubDate>Sun, 28 Jan 2007 15:11:28 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Computing]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2007/01/28/im-in-ur-specs-synergistically-leveragin-ur-award-winnin-opportunities/</guid>
		<description><![CDATA[Quiz time: Guess what it is about?
The Hardware Start Button, (&#8230;), is designed to be an attractive and discoverable actuator for launching the new Start menu and search experiences in the Windows Vista family of operating systems. The Hardware Start Button creates and deepens affinity between physical hardware and the Windows Vista user experience while [...]]]></description>
			<content:encoded><![CDATA[<p>Quiz time: Guess what it is about?</p>
<blockquote><p><em>The Hardware Start Button, (&#8230;), is designed to be an attractive and discoverable actuator for launching the new Start menu and search experiences in the Windows Vista family of operating systems. The Hardware Start Button creates and deepens affinity between physical hardware and the Windows Vista user experience while complementing the brand platforms and product design languages of hardware manufacturers.</em></p></blockquote>
<p>If you guessed &quot;the Windows key&quot; (found on just about every keyboard manufactured after 1996), then you&#39;re right. And this ridiculous paragraph is the intro to a spec detailing such exciting aspects as what paint to use, or how polished the key surface can be.</p>
<p>&nbsp;More gems:</p>
<blockquote><p><em><u>What&rsquo;s new in Version 1.01?</u></em></p>
<p><em>Conventional Keycap Design Requirements (page 7)A matte finish with a consistent texture of MT11000 or equivalent may be used on the Hardware Start Button dome and chamfer instead of an SPI A2 gloss finish for an indefinite period of time, not until December 31, 2007 as the Version 1.0 specification stated.</em></p>
</blockquote>
<blockquote><p><em>The <a href="http://www.encyclopediadramatica.com/index.php/An_Hero" title="An Hero">Hero</a> Start Button functions as a Start Button just like the other implementations in this specification. It is not required and is provided as an option for keyboard manufactures that want to take advantage of its more dramatic look.</em></p></blockquote>
<p>And what is this &quot;more dramatic look&quot;? </p>
<blockquote><p><em>Larger size, clear dome, and full-color printing and placement on the keyboard. The Hero Start Button uses a lens insert and is placed directly below the space bar. </em></p>
</blockquote>
<p>If you feel brave, <a href="http://download.microsoft.com/download/d/e/1/de1e0c8f-a222-47bc-b78b-1656d4cf3cf7/HardwareStartButtonV101.doc" title="Windows Vista Hardware Start Button Specification">read for yourself</a>.</p>
<p>In other news, OpenOffice.org is a steaming pile of shit that leverages every fucking opportunity to fucking crash every fucking minute and present you with a completely useless and retarded recovery dialogue <em>even though I never changed a single character in that document.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2007/01/28/im-in-ur-specs-synergistically-leveragin-ur-award-winnin-opportunities/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Doodles</title>
		<link>http://mathrick.org/blog/archives/2006/10/23/doodles/</link>
		<comments>http://mathrick.org/blog/archives/2006/10/23/doodles/#comments</comments>
		<pubDate>Mon, 23 Oct 2006 18:58:10 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2006/10/23/90/</guid>
		<description><![CDATA[
&#160;
&#160;
Inkscape is nice. The above is a quick trace of a photo, because flexible image resolution adjustment was needed (and doesn&#39;t have anything to do with the Linux distro).
On the other hand, the original SVG (linked to if you click on the image) shows how little parity is there between freely available SVG implementations. Inkscape [...]]]></description>
			<content:encoded><![CDATA[<div align="left" style="text-align: center"><a href="http://mathrick.org/files/fedora.svg"><img src="http://mathrick.org/blog/wp-content/uploads/fedora.png" border="0" width="400" height="269" /></a></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://inkscape.org">Inkscape</a> is nice. The above is a quick trace of a photo, because flexible image resolution adjustment was needed (and doesn&#39;t have anything to do with the Linux distro).</p>
<p>On the other hand, the original SVG (linked to if you click on the image) shows how little parity is there between freely available SVG implementations. Inkscape displays it correctly (obviously), librsvg does a rather nice job, but can&#39;t display masked objects at all (there is a slight gradient on the brim which is masked), and FF simply butchers the image, unable to display something as simple as a gradient correctly.&nbsp;</p>
<p>As Ankh says, it&#39;s not good when the only widely-available, decent SVG viewer is Adobe plugin inside IE.&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2006/10/23/doodles/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#60;This title contains mature language. For your protection, it has been withheld&#62;</title>
		<link>http://mathrick.org/blog/archives/2006/10/07/this-title-contains-mature-language-for-your-protection-it-has-been-withheld/</link>
		<comments>http://mathrick.org/blog/archives/2006/10/07/this-title-contains-mature-language-for-your-protection-it-has-been-withheld/#comments</comments>
		<pubDate>Sat, 07 Oct 2006 12:15:39 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Intarweb]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2006/10/07/this-title-contains-mature-language-for-your-protection-it-has-been-withheld/</guid>
		<description><![CDATA[
&#160;Dear Mozilla,
&#160;You guys are fucking idiots.
Love,&#160;
&#160;Update: okay, so I checked, and that&#39;s a legitimate security issue, known as cross-protocol attacks. Or rather it would be, if it wasn&#39;t for the fact that a user-entered URL cannot usefully be a source of such attack. And there&#39;s a bug dating back to 2001 stating &#34;Add user UI [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mathrick.org/blog/wp-content/uploads/wtf_restricted1.png"><img src="http://mathrick.org/blog/wp-content/uploads/thumb-wtf_restricted1.png" border="0" alt="&quot;This address uses a network port which is normally used for purposes other than web browsing. Firefox has cancelled the request for your protection&quot;" title="WTF!?" width="500" height="331" align="middle" /></a></p>
<p>&nbsp;Dear Mozilla,</p>
<p>&nbsp;You guys are fucking idiots.</p>
<p>Love,&nbsp;</p>
<p><strong>&nbsp;Update: </strong>okay, so I checked, and that&#39;s a legitimate security issue, known as cross-protocol attacks. Or rather it <em>would</em> be, if it wasn&#39;t for the fact that a user-entered URL cannot usefully be a source of such attack. And there&#39;s a bug dating back to 2001 stating &quot;Add user UI for that&quot;. Still lame and just as enraging when I have to use another browser for one stupid address.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2006/10/07/this-title-contains-mature-language-for-your-protection-it-has-been-withheld/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Snippet of the day</title>
		<link>http://mathrick.org/blog/archives/2006/09/30/snippet-of-the-day/</link>
		<comments>http://mathrick.org/blog/archives/2006/09/30/snippet-of-the-day/#comments</comments>
		<pubDate>Sat, 30 Sep 2006 01:48:15 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/archives/2006/09/30/snippet-of-the-day/</guid>
		<description><![CDATA[_('of')
DEAR. GOD.
]]></description>
			<content:encoded><![CDATA[<p><code>_('of')</code></p>
<p>DEAR. GOD.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2006/09/30/snippet-of-the-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New CCharset</title>
		<link>http://mathrick.org/blog/archives/2006/09/12/new-ccharset/</link>
		<comments>http://mathrick.org/blog/archives/2006/09/12/new-ccharset/#comments</comments>
		<pubDate>Tue, 12 Sep 2006 19:39:14 +0000</pubDate>
		<dc:creator>mathrick</dc:creator>
		
		<category><![CDATA[日本 / Japan]]></category>

		<category><![CDATA[XChat]]></category>

		<guid isPermaLink="false">http://mathrick.org/blog/?p=78</guid>
		<description><![CDATA[Yep. It&#8217;s not my accomplishment, mind you, I was too lazy and just got used to the shortcomings. So the new version of ccharset comes courtesy of teh_LaC. Here you can get it. Readme stays the same as in the old version, but bear in mind the config file is no longer compatible, so you&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>Yep. It&#8217;s not my accomplishment, mind you, I was too lazy and just got used to the shortcomings. So the new version of <a href="http://mathrick.org/blog/archives/2005/12/15/ebisu-gentoru-man-ko/">ccharset</a> comes courtesy of teh_LaC. <a href="http://mathrick.org/software/ccharset1.1.py">Here</a> you can get it. Readme stays the same as in the old version, but bear in mind the config file is no longer compatible, so you&#8217;ll have to set channel encodings again. Ah, and topic setting doesn&#8217;t, and isn&#8217;t going to work, yay XChat.</p>
]]></content:encoded>
			<wfw:commentRss>http://mathrick.org/blog/archives/2006/09/12/new-ccharset/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
