<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>chuyeow.wtf</title>
  <subtitle>Go, Ruby, Rails, Firefox, Anime, Mac</subtitle>
  <link rel="self" type="application/atom+xml" href="https://chuyeow.wtf/categories/blogging/feed.xml"/>
  <link rel="alternate" type="text/html" href="https://chuyeow.wtf"/>
  <generator uri="https://www.getzola.org/">Zola</generator>
  <updated>2009-07-05T14:50:00+00:00</updated>
  <id>https://chuyeow.wtf/categories/blogging/feed.xml</id>
  <entry>
    <title>Blog redesigned</title>
    <published>2009-07-05T14:50:00+00:00</published>
    <updated>2009-07-05T14:50:00+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2009/07/05/blog-redesigned/"/>
    <id>https://chuyeow.wtf/2009/07/05/blog-redesigned/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2009/07/05/blog-redesigned/">&lt;p&gt;After 5 long years of using the same old blog theme, which I&#x27;d handcrafted from scratch way back in 2004, I&#x27;ve finally got down to refreshing it to a more contemporary look. I&#x27;ve also updated the woefully outdated &lt;a href=&quot;&#x2F;about&#x2F;&quot;&gt;About page&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Here&#x27;s a before and after shot:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;assets&#x2F;blog-theme-before-and-after.png&quot; alt=&quot;Blog theme - before and after&quot; title=&quot;Blog theme - before and after&quot; width=&quot;515&quot; height=&quot;659&quot; class=&quot;alignnone size-full wp-image-1214&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I think it&#x27;s much better, definitely more modern and minimalist.&lt;&#x2F;p&gt;
&lt;p&gt;The new blog theme is basically a heavily modified version of the&lt;br &#x2F;&gt;
wonderful and free &lt;a href=&quot;http:&#x2F;&#x2F;designdisease.com&#x2F;blog&#x2F;compositio-wordpress-theme&#x2F;&quot;&gt;Compositio WordPress theme&lt;&#x2F;a&gt; -&lt;br &#x2F;&gt;
you can check out a &lt;a href=&quot;http:&#x2F;&#x2F;designdisease.com&#x2F;preview&#x2F;compositio&quot;&gt;demo of Compositio here&lt;&#x2F;a&gt; to see how different it is.&lt;&#x2F;p&gt;
&lt;p&gt;The only thing I kept from my old theme, which I affectionately called &quot;Clover&quot;, was the same clover logo. I did that with the shape tool in Photoshop - it&#x27;s a simple logo and no skill was required to create it, obviously!&lt;&#x2F;p&gt;
&lt;p&gt;If you&#x27;re reading this in a feed reader or one of those aggreggator-type sites, you can help me out by checking out the blog itself and giving me some good old constructive criticism.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>I&#x27;m still alive, and on FriendFeed and Twitter</title>
    <published>2009-03-24T22:48:58+00:00</published>
    <updated>2009-03-24T22:48:58+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2009/03/24/im-still-alive-and-on-friendfeed-and-twitter/"/>
    <id>https://chuyeow.wtf/2009/03/24/im-still-alive-and-on-friendfeed-and-twitter/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2009/03/24/im-still-alive-and-on-friendfeed-and-twitter/">&lt;p&gt;Wow, it seems like I haven&#x27;t posted anything this year. Don&#x27;t worry, you aren&#x27;t rid of me yet. I&#x27;m still alive and posting updates to &lt;a href=&quot;http:&#x2F;&#x2F;friendfeed.com&#x2F;chuyeow&quot;&gt;FriendFeed&lt;&#x2F;a&gt; and (less often) to &lt;a href=&quot;http:&#x2F;&#x2F;twitter.com&#x2F;chuyeow&quot;&gt;Twitter&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;If you belong to what I imagine must be now the microscopic population of loyal readers of my blog, please do hook up with me on &lt;a href=&quot;http:&#x2F;&#x2F;friendfeed.com&#x2F;chuyeow&quot;&gt;FriendFeed&lt;&#x2F;a&gt; or &lt;a href=&quot;http:&#x2F;&#x2F;twitter.com&#x2F;chuyeow&quot;&gt;Twitter&lt;&#x2F;a&gt;. I&#x27;ll follow you back if you&#x27;re a reader!&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>That &quot;Safari&quot; thing...</title>
    <published>2007-06-13T00:34:34+00:00</published>
    <updated>2007-06-13T00:34:34+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2007/06/13/that-safari-thing/"/>
    <id>https://chuyeow.wtf/2007/06/13/that-safari-thing/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2007/06/13/that-safari-thing/">&lt;p&gt;So what exactly is new in &lt;a href=&quot;http:&#x2F;&#x2F;www.apple.com&#x2F;safari&#x2F;&quot;&gt;Safari 3&lt;&#x2F;a&gt; (other than the big OMGWTFBBQ over Safari for Windows)? TUAW has the &lt;a href=&quot;http:&#x2F;&#x2F;www.tuaw.com&#x2F;2007&#x2F;06&#x2F;12&#x2F;beta-beat-new-to-safari-3&#x2F;&quot;&gt;best writeup (with screenshots of course) of the new features in Safari 3&lt;&#x2F;a&gt; I&#x27;ve seen so far. Check it out if you&#x27;re lazy to try it out - I did install the beta and took it for a test drive, but was never much of a Safari user to recognize what exactly did change in Safari 3 beta, so this helped. I must say the new Find interface is really slick and the draggable tabs has been a long time coming (one of my biggest annoyances with Safari and Camino).&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Pfft, it&#x27;s back to WordPress for me</title>
    <published>2006-10-25T01:12:24+00:00</published>
    <updated>2006-10-25T01:12:24+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2006/10/25/pfft-its-back-to-wordpress-for-me/"/>
    <id>https://chuyeow.wtf/2006/10/25/pfft-its-back-to-wordpress-for-me/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2006/10/25/pfft-its-back-to-wordpress-for-me/">&lt;p&gt;After 2 failed experiments with &lt;a href=&quot;http:&#x2F;&#x2F;typosphere.org&#x2F;&quot;&gt;Typo&lt;&#x2F;a&gt; and &lt;a href=&quot;http:&#x2F;&#x2F;mephistoblog.com&#x2F;&quot;&gt;Mephisto&lt;&#x2F;a&gt;, I caved and went back to &lt;a href=&quot;http:&#x2F;&#x2F;wordpress.org&#x2F;&quot;&gt;WordPress&lt;&#x2F;a&gt;. As you can see (if you&#x27;re on the site itself instead of reading from a feed reader), it&#x27;s all green and so 2005-looking (the year 2005, that is) - gonna have to convert the templates from the old Mephisto setup to WordPress.&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;&lt;img src=&quot;&#x2F;assets&#x2F;plink-screenshot.png&quot; alt=&quot;Screenshot of the Plink theme in action on my old Mephisto blog&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;What exactly went wrong with Typo and Mephisto? Well, Typo was &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;2006&#x2F;9&#x2F;1&#x2F;from-typo-to-mephisto&quot;&gt;beating the crap out of my VPS&lt;&#x2F;a&gt;, among other reasons. Mephisto was fine until the Mongrel processes running it started dying after a few hours - the 192MB or RAM that I have on the VPS was 100% used and the Rimuhosting guys have wrote me more than once suggesting a memory upgrade as I was causing way too much disk swappage on the host machine. I put the high memory usage down to comment spammers, but hell I wonder how everyone else manages to keep their Mephisto or Typo blogs up assuming not everyone has the luxury of an excess of 192MB of RAM to play with. If you&#x27;re running a Typo, Mephisto, or any other Rails-based blogging application under low memory conditions successfully, I want to know!&lt;&#x2F;p&gt;
&lt;p&gt;Another reason I had for abandoning Mephisto was the difficulties I had with its templating system. I could generally live with the lack of an easy way to display stuff like monthly archives unless I was following the trunk, but it was the lack of pagination (such as paged monthly archives) that really annoyed me. Rick Olson has &lt;a href=&quot;http:&#x2F;&#x2F;groups.google.com&#x2F;group&#x2F;MephistoBlog&#x2F;browse_thread&#x2F;thread&#x2F;dea07dd16c1d2ef5&quot;&gt;stated that pagination probably won&#x27;t go into the Mephisto core&lt;&#x2F;a&gt; and I disagree on its lack of usefulness (but this is another matter). I lacked the perserverance to finish up a pagination plugin when I realized that I had to work off the trunk which was already very much changed from the point release I was using.&lt;&#x2F;p&gt;
&lt;p&gt;Rails is such a wonderful framework, but throwing (another) templating layer into the mix (Mephisto uses &lt;a href=&quot;http:&#x2F;&#x2F;home.leetsoft.com&#x2F;liquid&quot;&gt;Liquid&lt;&#x2F;a&gt;) is a mixed blessing. The whole exercise felt very much like jumping through hoops when there&#x27;s already a clear path to goal - nevertheless, I&#x27;ll have to give the benefit of the doubt to the lack of documentation and the fast-moving development on Mephisto trunk. I&#x27;m probably geting too old for living on the edge where blogging software is concerned.&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, I&#x27;m glad to come back to WordPress and &lt;strong&gt;less downtime&lt;&#x2F;strong&gt;, I hope.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Google Reader - a Bloglines user&#x27;s perspective</title>
    <published>2006-10-24T20:46:53+00:00</published>
    <updated>2006-10-24T20:46:53+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2006/10/24/google-reader-a-bloglines-users-perspective/"/>
    <id>https://chuyeow.wtf/2006/10/24/google-reader-a-bloglines-users-perspective/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2006/10/24/google-reader-a-bloglines-users-perspective/">&lt;p&gt;With the &lt;a href=&quot;http:&#x2F;&#x2F;googlereader.blogspot.com&#x2F;2006&#x2F;09&#x2F;something-looks-different.html&quot;&gt;recent update&lt;&#x2F;a&gt; of &lt;a href=&quot;http:&#x2F;&#x2F;www.google.com&#x2F;reader&#x2F;&quot;&gt;Google Reader&lt;&#x2F;a&gt;, Google&#x27;s shot at an online feed reader, I just had to try it out even though I was rather contented with &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&quot;&gt;Bloglines&lt;&#x2F;a&gt;. I&#x27;ve been a long-time Bloglines user (since end 2003 I think), and even though there was little in terms of innovation and useful new features happening, Bloglines was, in my opinion, &lt;em&gt;ahead of its time&lt;&#x2F;em&gt; way back in end 2003, and it provided an unchanging interface that worked (well, my opinion on that changed after using Google Reader, as we will soon find out).&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;
&lt;img src=&quot;&#x2F;assets&#x2F;google-reader-using-screenshot.png&quot; alt=&quot;Google Reader interface&quot; &#x2F;&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear: both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;So, I took some time to clear the backlog of unread articles in my &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;public&#x2F;redemption&quot;&gt;289 feed subscriptions at Bloglines&lt;&#x2F;a&gt; recently so I can &quot;start over&quot; at Google Reader and not have to read the same unread articles twice. &lt;a href=&quot;http:&#x2F;&#x2F;www.bloglines.com&#x2F;export&quot;&gt;Export Bloglines to OPML&lt;&#x2F;a&gt;, import into Google Reader... It went painlessly and I noticed that Bloglines &quot;folders&quot; got converted into &quot;Tags&quot; in Google Reader - mmm, &lt;em&gt;taaaags&lt;&#x2F;em&gt;. But oh wait, what&#x27;s this when I try to &quot;manage my subscriptions&quot; - tags, folders and labels. I&#x27;m getting confused.&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;
&lt;img src=&quot;&#x2F;assets&#x2F;google-reader-tags-folders-label.png&quot; alt=&quot;Google Reader - tags, folders and labels&quot; &#x2F;&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear: both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Just to make sure that they really are the same thing, I created some test tags&#x2F;labels&#x2F;folders, and yes they are actually the same thing (meaning if you add a new folder, it becomes available as a label and tag). I&#x27;m sure the terms used will be made consistent as Google Reader moves out of beta (or rather, gets further along as a beta).&lt;&#x2F;p&gt;
&lt;p&gt;If you noticed how unorganized my &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;public&#x2F;redemption&quot;&gt;Bloglines subscriptions&lt;&#x2F;a&gt; are, that&#x27;s because organizing feeds was a pain on Bloglines back in the day (it was clumsy to organize feeds into folders, you had to select a feed, scroll to the dropdown, and select the action to move it into a folder), but that&#x27;s not really a problem now with the new drag and drop interface for managing subscriptions that Bloglines pushed out recently (I think). Thankfully, Google Reader makes managing subscriptions easy as well with the familiar Gmail-like labeling.&lt;&#x2F;p&gt;
&lt;p&gt;Anyhoo, I started using Google Reader for a bit to read new articles in my feeds, and it wasn&#x27;t long before I just found my &lt;strong&gt;killer&lt;&#x2F;strong&gt; feature: &#x27;mark items as read when you scroll past them&#x27;.&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;
&lt;img src=&quot;&#x2F;assets&#x2F;google-reader-mark-read-scroll.png&quot; alt=&quot;Google Reader&#x27;s &#x27;mark items as read when you scroll past them&#x27; preference&quot; &#x2F;&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear: both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This preference will tell Google Reader to only mark those items you have scrolled across as read. I hated it in Bloglines where clicking on a feed would mark &lt;em&gt;all&lt;&#x2F;em&gt; its articles as read, especially for those prolific blogs or those for which I have a backlog (200 entries is usually a little too much for one sitting for good blogs). I have to say it again, this is the killer functionality for me. I&#x27;ve been bitten by interruptions and crashed browsers once too many times. I always click on feeds (in Bloglines) with more than 50 unread articles with no small amount of trepidation, fearing that I won&#x27;t be able to read them all or that I&#x27;d do something to crash Firefox (which is surprisingly common when you&#x27;re working with large datasets in JavaScript). This often results in my reluctance to click on feeds with more than 50 unread posts, and with the vicious cycle 50 becomes 200 (the Bloglines limit for unread posts) and the feed rarely gets read (happens with blogs like Scoble or news websites like The Register). &lt;&#x2F;p&gt;
&lt;p&gt;With this feature in Google Reader, I can click on &quot;All items&quot; even if it says there are 1 gazillion unread posts and still feel safe about not losing my place. Those of you using non-web feed reader applications may scoff at this (I&#x27;m really not sure, I haven&#x27;t used one in a long time so I only assume something like this is common in applications like NetNewsWire or FeedDemon), but I&#x27;ve yet to see this done in a web application. Offline feed readers are not really an option for me unless they integrate to an online (i.e central) source (let me know if one exists!). For this feature alone, I decided to make a switch to Google Reader from Bloglines.&lt;&#x2F;p&gt;
&lt;p&gt;Google Reader can get a little slow though, but then I only have 512MB of RAM right now so it probably isn&#x27;t indicative of anything (the new Bloglines is slow on the Macbook Pro as well I noticed). Hopefully all this will be moot when I get the 2GB RAM upgrade that&#x27;s waiting at the store. Other than that, Google Reader seems faster to respond network-wise (which I&#x27;m not surprised at, considering that it&#x27;s Google (and their distribution channels)), and it&#x27;s also prettier. Yeah, looking good matters to some people, like me (not that Google Reader is fantastic aesthetically, but it&#x27;s far less staid than Bloglines).&lt;&#x2F;p&gt;
&lt;p&gt;Now all that&#x27;s left is to keep those fingers crossed for some sexy Gmail integration - I&#x27;m thinking something like &lt;a href=&quot;http:&#x2F;&#x2F;rssfwd.com&#x2F;&quot;&gt;RssFwd&lt;&#x2F;a&gt;, a wonderfully useful creation by &lt;a href=&quot;http:&#x2F;&#x2F;blog.yanime.org&quot;&gt;Choon Keat&lt;&#x2F;a&gt;. I use &lt;a href=&quot;http:&#x2F;&#x2F;rssfwd.com&#x2F;&quot;&gt;RssFwd&lt;&#x2F;a&gt; to track some important blogs and to track the latest releases of TV show torrents (Choon Keat is not gonna be happy about that though heh).&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>From Typo to Mephisto</title>
    <published>2006-09-01T20:34:25+00:00</published>
    <updated>2006-09-01T20:34:25+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2006/09/01/from-typo-to-mephisto/"/>
    <id>https://chuyeow.wtf/2006/09/01/from-typo-to-mephisto/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2006/09/01/from-typo-to-mephisto/">&lt;p&gt;So with the usual fickle-mindedness, I&#x27;ve changed my blog software from &lt;a href=&quot;http:&#x2F;&#x2F;typosphere.org&#x2F;&quot;&gt;Typo&lt;&#x2F;a&gt; to &lt;a href=&quot;http:&#x2F;&#x2F;mephistoblog.com&#x2F;&quot;&gt;Mephisto&lt;&#x2F;a&gt;. Well, it wasn&#x27;t so much based on a whim - there were some reasons I wanted to stop using Typo:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;For some reason, Typo is very unstable for me on my VPS with 160MB RAM. I deploy Typo on a mongrel_cluster of 2 mongrels, fronting it with Apache 2.2 + mod_proxy_balancer, and all 160MB RAM &lt;strong&gt;and&lt;&#x2F;strong&gt; 192MB of swap is used up whenever I post an article or sweep the cache. Comments also take noticeably longer to post on my blog than on other Typo blogs. I&#x27;m not sure what exactly I&#x27;ve done wrong.&lt;&#x2F;li&gt;
&lt;li&gt;I often get an obscure NilClass error that screws up the front page whenever pages are regenerated (often caused by someone posting a comment or an article).&lt;&#x2F;li&gt;
&lt;li&gt;Changing the blog&#x27;s design requires one to create or edit an existing Typo theme - I kinda missed WordPress&#x27;s Web-based template editing. This was a significant roadblock to me ever changing the look and feel of my Typo blog.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Coincidentally, my urge to swap to Mephisto coincided with the &lt;a href=&quot;http:&#x2F;&#x2F;mephistoblog.com&#x2F;2006&#x2F;8&#x2F;31&#x2F;mephisto-immortus-released&quot;&gt;release of mephisto 0.6 (Immortus)&lt;&#x2F;a&gt; just today, and after some minor hiccups, I managed to get Mephisto up and running with my articles imported from Typo. (Still couldn&#x27;t get Capistrano to play well though, which I&#x27;m guessing is due to Rails version conflicts - I guess I&#x27;ll just have to do with the release version.)&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;mephisto.stikipad.com&#x2F;&quot;&gt;Documentation&lt;&#x2F;a&gt; is rather sparse at the moment, especially on how to &lt;a href=&quot;http:&#x2F;&#x2F;mephisto.stikipad.com&#x2F;help&#x2F;show&#x2F;Converting+Typo+to+Mephisto&quot;&gt;convert from Typo to Mephisto&lt;&#x2F;a&gt; (I updated that wiki page while I was there). I dug around in Mephisto 0.6â€™s source and found the converters in vendor&#x2F;plugins&#x2F;mephisto_converter. Not sure if there is a web interface to this - either way, things worked almost perfectly just running this command:&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;script&#x2F;runner &quot;Mephisto.convert_from :typo&quot; -e production&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;You need to create a typo entry in database.yml that points to your existing Typo database. Also, the conversion will fail if any of your Typo users and email addresses are the same as the default Mephisto user admin. To avoid this just change the Mephisto user(s) login and email to something else.&lt;&#x2F;p&gt;
&lt;p&gt;So there&#x27;s that, hopefully some time this year I&#x27;ll update the look and feel.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>This blog is related to &quot;Cartoon Porn&quot;</title>
    <published>2006-08-18T20:12:15+00:00</published>
    <updated>2006-08-18T20:12:15+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2006/08/18/this-blog-is-related-to-cartoon-porn/"/>
    <id>https://chuyeow.wtf/2006/08/18/this-blog-is-related-to-cartoon-porn/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2006/08/18/this-blog-is-related-to-cartoon-porn/">&lt;p&gt;Got this in my email recently:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;Respected Webmaster,&lt;&#x2F;p&gt;
&lt;p&gt;I found your &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;12&#x2F;29&#x2F;nice-comment-postbit-from-vantanorg&#x2F;&quot;&gt;page&lt;&#x2F;a&gt; on Yahoo! when I was searching for Free Cartoon Porn (this topic is related to my site). You are running a great website and I would be happy to place your link on my site. If you would like to exchange text links with me, please submit your website on &lt;del&gt;deleted link&lt;&#x2F;del&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m sure you know that links exchange will help both of us to get better positions on search engines and have more visitors to our websites.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;I went to Yahoo! and &lt;a href=&quot;http:&#x2F;&#x2F;search.yahoo.com&#x2F;search?p=free+cartoon+porn+redemption&quot;&gt;searched for &quot;free cartoon porn redemption&quot;&lt;&#x2F;a&gt; and sure enough, that link was up there. A bunch of comment spam qualified my site for a link exchange, yippee! I was pretty amused.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Moved to Rimuhosting</title>
    <published>2006-08-11T19:58:04+00:00</published>
    <updated>2006-08-11T19:58:04+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2006/08/11/moved-to-rimuhosting/"/>
    <id>https://chuyeow.wtf/2006/08/11/moved-to-rimuhosting/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2006/08/11/moved-to-rimuhosting/">&lt;p&gt;If you&#x27;re seeing this, that means the new DNS settings have finally resolved and you&#x27;re being served by a plain old &lt;a href=&quot;http:&#x2F;&#x2F;mongrel.rubyforge.org&#x2F;&quot;&gt;Mongrel&lt;&#x2F;a&gt; server instance on my Rimuhosting VPS. It&#x27;s &lt;em&gt;so&lt;&#x2F;em&gt; much faster than before.&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;&lt;img src=&quot;&#x2F;assets&#x2F;mongrel-server-spy.png&quot; alt=&quot;Server spy extension showing my site running on Mongrel&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Before you start lecturing me on running just Mongrel, let me just say that now isn&#x27;t right time to get a proper setup - I&#x27;ll get it done over the weekend. There&#x27;re so many choices (combinations of Apache, lighttpd, pound, pen, mongrel, mongrel_cluster), I think I&#x27;m due for some reading before making a choice.&lt;&#x2F;p&gt;
&lt;p&gt;If you see any bugs, let me know! Of course, any deployment-related advice will be appreciated.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Moving to Rimuhosting VPS</title>
    <published>2006-08-10T19:54:28+00:00</published>
    <updated>2006-08-10T19:54:28+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2006/08/10/moving-to-rimuhosting-vps/"/>
    <id>https://chuyeow.wtf/2006/08/10/moving-to-rimuhosting-vps/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2006/08/10/moving-to-rimuhosting-vps/">&lt;p&gt;After being plagued with performance issues running &lt;a href=&quot;http:&#x2F;&#x2F;www.typosphere.org&#x2F;&quot;&gt;Typo&lt;&#x2F;a&gt; (the blog software on which this blog currently runs) on &lt;a href=&quot;http:&#x2F;&#x2F;dreamhost.com&#x2F;&quot;&gt;Dreamhost&lt;&#x2F;a&gt;, I decided it was time to give in and get a &lt;acronym title=&quot;Virtual Private Server&quot;&gt;VPS&lt;&#x2F;acronym&gt; once again. I was previously with &lt;a href=&quot;http:&#x2F;&#x2F;linode.com&#x2F;&quot;&gt;Linode.com&lt;&#x2F;a&gt; (they have a great control panel where you can drop in the distro you want - still have screenshots somewhere for an unpublished post), and then &lt;a href=&quot;http:&#x2F;&#x2F;jvds.com&#x2F;&quot;&gt;JVDS&lt;&#x2F;a&gt; (good hosting, usually quick replies to my support tickets, but slow to push out a VPS control panel they&#x27;ve been promising), running Gentoo on both VPSs. Right now, I&#x27;m on a shared hosting plan with &lt;a href=&quot;http:&#x2F;&#x2F;dreamhost.com&#x2F;&quot;&gt;Dreamhost&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Well, &lt;a href=&quot;http:&#x2F;&#x2F;dreamhost.com&#x2F;&quot;&gt;Dreamhost&lt;&#x2F;a&gt; has been good to me - I got so many referral credits from them that they paid for my subscription many times over after I &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2004&#x2F;10&#x2F;11&#x2F;dreamhost-hosting-at-077month&#x2F;&quot;&gt;posted about their $0.77&#x2F;month offer&lt;&#x2F;a&gt;. Unfortunately, Typo seems to be quite a monster (compared to Wordpress), and database access is &lt;a href=&quot;http:&#x2F;&#x2F;blog.zacharypinter.com&#x2F;articles&#x2F;2006&#x2F;03&#x2F;03&#x2F;switching-from-dreamhost-to-textdrive&quot;&gt;purportedly (and observably) slow on Dreamhost&lt;&#x2F;a&gt;. Still, Dreamhost is a great host for shared hosting, I&#x27;m sticking with them for delivering more static content. A VPS just makes sense now that I&#x27;ve been tinkering more with Ruby on Rails, plus which geek wouldn&#x27;t admit it just feels more &lt;em&gt;right&lt;&#x2F;em&gt; to be in full control of your server (well, it&#x27;s root on a virtual machine, but still root).&lt;&#x2F;p&gt;
&lt;p&gt;This time around, I chose &lt;a href=&quot;http:&#x2F;&#x2F;rimuhosting.com&#x2F;&quot;&gt;Rimuhosting&lt;&#x2F;a&gt;, a New Zealand-based hosting company (servers are US-based, of course), and here&#x27;s why (I did some research once again on &lt;a href=&quot;&quot;&gt;WebHostingTalk&lt;&#x2F;a&gt; and asked some people their experiences with their webhosts):&lt;&#x2F;p&gt;
&lt;p&gt;Pros:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Fairly affordable prices - I got their cheapest MiroVPS1 plan, which goes for $19.95&#x2F;month and get 30GB of transfer and 96MB of RAM (which &lt;em&gt;could&lt;&#x2F;em&gt; be a problem, but upgrading seems easy enough anyway from what they say on their site). Comparing to several other VPS hosts like &lt;a href=&quot;http:&#x2F;&#x2F;unixshell.com&#x2F;&quot;&gt;unixshell&lt;&#x2F;a&gt;, Tektonic.net, &lt;a href=&quot;http:&#x2F;&#x2F;www.serveraxis.com&#x2F;&quot;&gt;ServerAxis&lt;&#x2F;a&gt;, their plans are somewhat mid-range.&lt;&#x2F;li&gt;
&lt;li&gt;Their reputation is great. Yup, I&#x27;ve heard and read only good things about them, something that&#x27;s quite hard to find in the world of web hosting. We use them at work to setup servers sometimes too.&lt;&#x2F;li&gt;
&lt;li&gt;Seems to be run by competent people - they have a &lt;a href=&quot;http:&#x2F;&#x2F;bliki.rimuhosting.com&#x2F;&quot;&gt;bliki&lt;&#x2F;a&gt; (blog + wiki) with some nice posts. The one that really caught my eye is the one on their &lt;a href=&quot;http:&#x2F;&#x2F;bliki.rimuhosting.com&#x2F;space&#x2F;knowledgebase&#x2F;linux&#x2F;miscapplications&#x2F;ruby+on+rails&quot;&gt;Ruby on Rails hosting stack&lt;&#x2F;a&gt;. Not that I&#x27;d use it since I&#x27;m on Ubuntu, but it shows that the folks at Rimuhosting are up-to-date.&lt;&#x2F;li&gt;
&lt;li&gt;They run &lt;a href=&quot;http:&#x2F;&#x2F;www.cl.cam.ac.uk&#x2F;Research&#x2F;SRG&#x2F;netos&#x2F;xen&#x2F;&quot;&gt;Xen&lt;&#x2F;a&gt;, which &lt;a href=&quot;http:&#x2F;&#x2F;deepak.jois.name&#x2F;&quot;&gt;Deepak&lt;&#x2F;a&gt;, among others, tells me is the most efficient server virtualization software. Yeah, whatever, score one for statistics (and lies).&lt;&#x2F;li&gt;
&lt;li&gt;Support is reasonably fast - got replies to my pre-sales queries reasonably fast (more than a few hours, but it wasn&#x27;t during working hours anyway). Of course, I&#x27;ll have to see how it goes now that I&#x27;m a real customer.&lt;&#x2F;li&gt;
&lt;li&gt;A simple web-based control panel where I can reboot the VPS. It&#x27;s no &lt;a href=&quot;http:&#x2F;&#x2F;www.swsoft.com&#x2F;en&#x2F;products&#x2F;virtuozzo&#x2F;tools&#x2F;vzpp&#x2F;&quot;&gt;Virtuozzo Power Panels&lt;&#x2F;a&gt;, but it&#x27;s enough. JVDS didn&#x27;t have one and it started to get old sending support tickets to do a reboot.
&lt;div class=&quot;img&quot;&gt;&lt;img src=&quot;&#x2F;assets&#x2F;rimuhosting-vps-cp.png&quot; alt=&quot;Screenshot of Rimuhosting VPS control panel&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both&quot; &#x2F;&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Cons:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;They don&#x27;t support &lt;a href=&quot;http:&#x2F;&#x2F;gentoo.org&#x2F;&quot;&gt;Gentoo&lt;&#x2F;a&gt;, my Linux distro of choice. Only RHEL, Ubuntu, Debian and Fedora Core are supported. I went with Ubuntu, not having much experience with it (excluding a brief affair with Debian). I was wary of this at first, but my fears of bungling around with an unfamiliar distro have vanished after I saw how easy it is to install stuff with apt-get, and things are &lt;em&gt;not&lt;&#x2F;em&gt; placed in weird places in the filesystem hierarchy. I think I could get used to it, this &quot;not compiling everything that moves&quot; idea ;).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;http:&#x2F;&#x2F;serveraxis.com&#x2F;vds.php?ps=1&quot;&gt;ServerAxis&lt;&#x2F;a&gt; supports Gentoo, and offers much better &quot;value for money&quot;, except that their lowest priced plan is much higher ($30). But you get &lt;strong&gt;512MB RAM&lt;&#x2F;strong&gt;, 200GB RAM, and &lt;strong&gt;5 IP addresses&lt;&#x2F;strong&gt;... Too bad I&#x27;d rather pay out of my PayPal funds.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Well, less blogging, more server migration. Actually the application installs are mostly done. I&#x27;ve never had apt-get play so nice back when I was experimenting with Debian - just&lt;br &#x2F;&gt;
&lt;typo :code&gt;apt-get install [package]&lt;&#x2F;typo&gt; and things are installed quite cleanly (keyword: &quot;cleanly&quot;). I think this may grow on me (yeah yeah laugh and point at the Ubuntu noob) - perhaps you don&#x27;t need to compile everything (&lt;em&gt;gasp&lt;&#x2F;em&gt;, I said it!).&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>From Wordpress 2 to Typo 4</title>
    <published>2006-08-06T19:33:05+00:00</published>
    <updated>2006-08-06T19:33:05+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2006/08/06/from-wordpress-2-to-typo-4/"/>
    <id>https://chuyeow.wtf/2006/08/06/from-wordpress-2-to-typo-4/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2006/08/06/from-wordpress-2-to-typo-4/">&lt;p&gt;It was a slow day so I decided to cross one thing off my to-do list, and that&#x27;s getting &lt;a href=&quot;http:&#x2F;&#x2F;www.typosphere.org&#x2F;&quot;&gt;Typo&lt;&#x2F;a&gt; installed and migrating from WordPress. I&#x27;ve been looking at getting Typo installed for awhile ever since I saw (and liked) its AJAX-y comments form, plus &lt;a href=&quot;http:&#x2F;&#x2F;www.typosphere.org&#x2F;trac&#x2F;wiki&#x2F;DownloadStable&quot;&gt;Typo 4&lt;&#x2F;a&gt; being just released did help.&lt;&#x2F;p&gt;
&lt;p&gt;The install went straightforward enough, though I didn&#x27;t get to try out the new installer gem. I didn&#x27;t bother because I&#x27;m on a Dreamhost shared hosting account, though &lt;a href=&quot;http:&#x2F;&#x2F;scottstuff.net&#x2F;blog&#x2F;articles&#x2F;2006&#x2F;07&#x2F;28&#x2F;how-to-install-gems-when-youre-not-root&quot;&gt;installing the gem without root privileges&lt;&#x2F;a&gt; seems like it should work. I simply followed this &lt;a href=&quot;http:&#x2F;&#x2F;blog.aidenbordner.com&#x2F;articles&#x2F;2006&#x2F;07&#x2F;24&#x2F;getting-typo-4-0-0-running-on-dreamhost&quot;&gt;guide to getting Typo 4 running on Dreamhost&lt;&#x2F;a&gt;. Ran into some trouble running the Wordpress import script (found in &#x2F;db&#x2F;converters&#x2F;wordpress2.rb), but Google turned up &lt;a href=&quot;http:&#x2F;&#x2F;www.typosphere.org&#x2F;trac&#x2F;ticket&#x2F;1053&quot;&gt;the solution&lt;&#x2F;a&gt; (basically a patch to the Articles model that tries to send pings when importing posts). This should already be fixed in Typo SVN, but it&#x27;s not in release 4.0.&lt;&#x2F;p&gt;
&lt;p&gt;Anyhow, Typo seems spiffy, though I am still getting the occasional &quot;Application Error&quot;, but that&#x27;s most likely a Dreamhost thing. Liking the near-minimalist theme as well - I&#x27;m already missing the green clover though heh.&lt;&#x2F;p&gt;
&lt;p&gt;Things I&#x27;m already liking:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Sidebar modules that you can add to your blog - for example, getting the del.icio.us links I have at the side to show is just a matter of dragging the del.icio.us sidebar item to the &quot;Active&quot; list and pointing it to my del.icio.us feed. There&#x27;re sidebar items for Flickr, tags, 43things, Amazon, and even the categories and archives are sidebar items.
&lt;div class=&quot;img&quot;&gt;&lt;img src=&quot;&#x2F;assets&#x2F;typo-sidebar.png&quot; alt=&quot;Screenshot of Typo 4&#x27;s sidebar items administration&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both;&quot; &#x2F;&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;A Blacklist section where you can enter blacklisted words and &lt;strong&gt;regexes&lt;&#x2F;strong&gt;! Take that texas holdem poker!&lt;&#x2F;li&gt;
&lt;li&gt;Live preview of your posts as you type - can get a little sluggish though.&lt;&#x2F;li&gt;
&lt;li&gt;The ability to search and delete all comments - Wordpress was missing that and running SQL statements in phpmyadmin stopped being fun.&lt;&#x2F;li&gt;
&lt;li&gt;The nice &lt;a href=&quot;http:&#x2F;&#x2F;quotedprintable.com&#x2F;pages&#x2F;scribbish&quot;&gt;Scribbish theme&lt;&#x2F;a&gt; that comes with the Typo package.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Things that I don&#x27;t like:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Linking to uploaded files was confusing. I like the whole &quot;Attachments&quot; idea, but I didn&#x27;t know how to link to them until I browsed to the Resources section and copied the link to the image I just uploaded (by saving the post I was making - there wasn&#x27;t a way to upload an attachment while writing the post).
&lt;div class=&quot;img&quot;&gt;&lt;img src=&quot;&#x2F;assets&#x2F;typo-attachments.png&quot; alt=&quot;Screenshot of Typo Attachments feature&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both;&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m probably doing things the wrong way though, seeing as this is way too obtuse. Would be nice to see improvements (such as, upload file as you write your post, click on uploaded file to include into post, all on the same page with AJAX).&lt;&#x2F;li&gt;
&lt;li&gt;Um, nothing further!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Need to use it more to decide whether I&#x27;ll like this or not.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Getting back on track</title>
    <published>2005-07-28T12:26:47+00:00</published>
    <updated>2005-07-28T12:26:47+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2005/07/28/getting-back-on-track/"/>
    <id>https://chuyeow.wtf/2005/07/28/getting-back-on-track/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2005/07/28/getting-back-on-track/">&lt;p&gt;It&#x27;s been a while since I last blogged huh? Well, I actually &lt;em&gt;was&lt;&#x2F;em&gt; back, until a particularly unfortunate incident with my &lt;acronym title=&quot;Virtual Private Server&quot;&gt;VPS&lt;&#x2F;acronym&gt; where the database tables for WordPress got corrupted (likely due to overflowing backups and running out of space) threw me off track and got me real grief-stricken that I lost my blog template&#x2F;theme and a couple of posts (I&#x27;ve managed to restore the template&#x2F;theme since).&lt;&#x2F;p&gt;
&lt;p&gt;Excuses, all. I&#x27;m horrified that I&#x27;ve actually allowed my blog to fall into a state of disuse and disrepair. I&#x27;m back and I hope to stay back. But first I&#x27;ve to clean up all this crud that&#x27;s on my blog (comment spam, Trackback spam, etc.).&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Public Service Announcement&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
I lost a post entitled &quot;Ooh look at this old website I dug up&quot;. I believe I offered something to the person who guessed correctly, but I only have Jed Brown&#x27;s comment in my email. Whoever guessed first before Jed did, please do send me an email (chuyeow at gmail dot com).&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Mr Ruderman has switched</title>
    <published>2005-03-14T22:40:51+00:00</published>
    <updated>2005-03-14T22:40:51+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2005/03/14/mr-ruderman-has-switched/"/>
    <id>https://chuyeow.wtf/2005/03/14/mr-ruderman-has-switched/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2005/03/14/mr-ruderman-has-switched/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.squarefree.com&#x2F;2005&#x2F;03&#x2F;13&#x2F;switching-from-movable-type-to-wordpress&#x2F;&quot;&gt;Jesse Ruderman: Switching from Movable Type to WordPress&lt;&#x2F;a&gt;. Gotta upgrade to &lt;a href=&quot;http:&#x2F;&#x2F;wordpress.org&#x2F;&quot;&gt;WordPress&lt;&#x2F;a&gt; 1.5 soonish.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>The ones I read first in my long blogroll</title>
    <published>2005-01-13T21:57:08+00:00</published>
    <updated>2005-01-13T21:57:08+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2005/01/13/the-ones-i-read-first-in-my-long-blogroll/"/>
    <id>https://chuyeow.wtf/2005/01/13/the-ones-i-read-first-in-my-long-blogroll/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2005/01/13/the-ones-i-read-first-in-my-long-blogroll/">&lt;p&gt;I have a long &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;public&#x2F;redemption&quot;&gt;list of blogs&#x2F;websites&lt;&#x2F;a&gt; (233 feeds at this moment) to read in my &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;&quot;&gt;Bloglines&lt;&#x2F;a&gt; account. I don&#x27;t have the time to read all of them nowadays (I used to), so I&#x27;m finding myself skimming through a select few blogs. Weirdly, even though bloggers like &lt;a href=&quot;http:&#x2F;&#x2F;radio.weblogs.com&#x2F;0001011&#x2F;&quot;&gt;Scoble&lt;&#x2F;a&gt; make very interesting posts, I tend to not read them because he&#x27;s just too damn prolific and I don&#x27;t have the time to read all the posts. Hmm... Interesting... I was just about to check whether there was a way to keep a post unread in Bloglines and there is (there&#x27;s a &quot;Keep New&quot; checkbox at the bottom of every feed item). Well, maybe this will get me reading Scoble again.&lt;&#x2F;p&gt;
&lt;p&gt;As I was saying, I don&#x27;t read every feed I subscribe to nowadays. (By the way, Bloglines only keeps 200 entries per feed before it stops keeping track of new ones.) What I do now is go through the list from top to bottom and check out the ones that I seem to be more interested in. It&#x27;s interesting to see a pattern. I tend to give feeds with too many unread items a miss, resulting in a vicious cycle of them never getting read. Feeds with 30 new items a day, these I also tend to not read. I also read too many Mozilla-related blogs. Here&#x27;s my list of &quot;To Read&quot; blogs (arranged in no particular order) whenever I&#x27;m short on time or just too plain lazy to read everything:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;www.hicksdesign.co.uk&#x2F;journal&#x2F; &quot;&gt;Jon Hicks&#x27; hicksdesign&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  One of my favorite designers who also happens to be a mean programmer (at least from what I can tell from Jon&#x27;s hacking of Textpattern, which powers his blog and portfolio).
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;www.bernzilla.com&#x2F;&quot;&gt;Bernie Zimmermann&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Mozilla blogger and Firefox GrayModern Theme author
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;www.chrispederick.com&#x2F;blog&#x2F;&quot;&gt;Chris Pederick&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Chris Pederick is the author of the Web Developer Tools Firefox extension, among other cool projects.
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;forevergeek.com&#x2F;&quot;&gt;Forever Geek&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Which I contribute to, but I&#x27;m on hiatus now.
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;www.gadgetopia.com&#x2F;&quot;&gt;Gadgetopia&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Lots of neat posts and links on technology
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;www.gentoo.org&#x2F;&quot;&gt;Gentoo Linux News&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Not a blog, but I love Gentoo!
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;www.gravatar.com&#x2F;blog&#x2F;&quot;&gt;Gravatar blog&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  I think Gravatars are pretty sweet, this keeps me in the loop of what Tom Werner&#x27;s up to.
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;lifeatngeeann.blogspot.com&#x2F;&quot;&gt;Life At Ngee Ann&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  This is a fellow Singaporean&#x27;s blog, quite humorous. &quot;Ngee Ann&quot; refers to Ngee Ann polytechnic, a local academic institution.
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;popagandhi.com&#x2F;&quot;&gt;life in mono&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Fellow Singaporean &lt;a href=&quot;http:&#x2F;&#x2F;popagandhi.com&#x2F;about&#x2F;&quot;&gt;Adrianna&lt;&#x2F;a&gt;&#x27;s a cool techie Mac evangelist.
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;weblogs.mozillazine.org&#x2F;asa&#x2F;&quot;&gt;adot&#x27;s notblog*&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Asa Dotzler&#x27;s blog. Mozilla stuff is always interesting.
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;cheeaun.phoenity.com&#x2F;weblog&#x2F;&quot;&gt;cheeaunblog&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Author of the famous Phoenity theme, who happens to live in Penang where I some relatives stay. Maybe we can meet up when I go there, huh, Chee Aun?
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;www.neilturner.me.uk&#x2F;&quot;&gt;Neil&#x27;s World&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Neil Turner blogs stuff that I would blog myself if I could. Well, mostly. Mozilla and tech blog.
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;photomatt.net&#x2F;&quot;&gt;Photo Matt&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Matthew Mullenweg&#x27;s the lead developer of WordPress, and &lt;a href=&quot;http:&#x2F;&#x2F;photomatt.net&#x2F;2005&#x2F;01&#x2F;11&#x2F;hot-barely-legal-matt&#x2F;&quot;&gt;turned 21&lt;&#x2F;a&gt; not long ago.
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;philwilson.org&#x2F;blog&#x2F;&quot;&gt;philwilson.org&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Phil Wilson blogs mostly on Firefox and the Semantic Web.
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;vantan.org&#x2F;&quot;&gt;vantan.org: The Daily Weblog&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Fellow Singaporean Vanessa Tan is a &quot;devoted Netizen&quot; who works in an environment unfriendly to Firefox.
&lt;&#x2F;li&gt;
&lt;li&gt;
  &lt;a href=&quot;http:&#x2F;&#x2F;www.squarefree.com&#x2F;burningedge&#x2F;&quot;&gt;The Burning Edge&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
  Used to follow this religiously, but a little less now because of more infrequent posts and also because much of the work now is bug fixing since the Aviary branch landing.
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Not too many A-list bloggers in that list, but that&#x27;s probably because people like &lt;a href=&quot;http:&#x2F;&#x2F;simon.incutio.com&#x2F;&quot;&gt;Simon Willison&lt;&#x2F;a&gt; and &lt;a href=&quot;http:&#x2F;&#x2F;www.stopdesign.com&#x2F;&quot;&gt;Doug Bowman&lt;&#x2F;a&gt; have been posting less of late. Give these blogs&#x2F;sites a visit or two and let me know if you know of any related blog that I can add to my feed aggregator (yes, I&#x27;m still interested in more despite an unread list of hundreds).&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Another one switches to WordPress</title>
    <published>2005-01-04T21:04:55+00:00</published>
    <updated>2005-01-04T21:04:55+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2005/01/04/another-one-switches-to-wordpress/"/>
    <id>https://chuyeow.wtf/2005/01/04/another-one-switches-to-wordpress/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2005/01/04/another-one-switches-to-wordpress/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;ben.milleare.com&#x2F;2005&#x2F;01&#x2F;01&#x2F;mt-to-wordpress&#x2F;&quot;&gt;Ben Milleare switches to WordPress&lt;&#x2F;a&gt;. Don&#x27;t you just love the way his Gravatars are set up? :P&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Full disclosure (of useless Web statistics), Dec 2004</title>
    <published>2005-01-02T14:58:44+00:00</published>
    <updated>2005-01-02T14:58:44+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2005/01/02/full-disclosure-of-useless-web-statistics-dec-2004/"/>
    <id>https://chuyeow.wtf/2005/01/02/full-disclosure-of-useless-web-statistics-dec-2004/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2005/01/02/full-disclosure-of-useless-web-statistics-dec-2004/">&lt;p&gt;How fun, starting a new year with a bland post on Web statistics.&lt;&#x2F;p&gt;
&lt;p&gt;December 2004 was a record month for this blog, with record highs in visits, pages and bandwidth. I exceeded my monthly transfer limit of 20GB by just a little bit as well.&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;&lt;img src=&quot;&#x2F;assets&#x2F;awstats-summary-dec-2004.png&quot; alt=&quot;Web statistics summary for Dec 2004&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Getting an average of 4.7K visits per day, or 10K pages per day.&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;&lt;img src=&quot;&#x2F;assets&#x2F;awstats-daily-dec-2004.png&quot; alt=&quot;Daily Web statistics for Dec 2004&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Thanks to the &quot;&lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2004&#x2F;12&#x2F;14&#x2F;homer-simpson-uses-tabbed-browsing&#x2F;&quot;&gt;Homer Simpson uses tabbed browsing&lt;&#x2F;a&gt;&quot; post, transfer spiked to almost 3GB on Dec 15.&lt;&#x2F;p&gt;
&lt;p&gt;Top referrers included &lt;a href=&quot;http:&#x2F;&#x2F;spreadfirefox.com&#x2F;&quot;&gt;SpreadFirefox.com&lt;&#x2F;a&gt; and Bloglines. There was a referrer spammer (brushed out in the screenshot) which made it to the top 10 before I caught it and blocked it.&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;&lt;img src=&quot;&#x2F;assets&#x2F;awstats-referrers-dec-2004.png&quot; alt=&quot;Top referrers for Dec 2004&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Here&#x27;s how referrers are blocked (with .htaccess), for those who are still looking for a solution. What these 2 rewrite rules do is to, respectively, rewrite the listed IP addresses, and rewrite the referrers with the following strings in them, back to the client&#x27;s IP. This works extremely well, and I know because I&#x27;ve had my server (a VPS) brought to its knees from constant referrer spamming. The hit rates from these spammers were so high that it practically became a &lt;acronym title=&quot;Denial of Service&quot;&gt;DOS&lt;&#x2F;acronym&gt; attack. Since I&#x27;ve implemented these rewrite rules, all has been peaceful and I can finally see uptimes of more than 3 days (believe it or not, the VPS &lt;em&gt;did&lt;&#x2F;em&gt; go down that often).&lt;&#x2F;p&gt;
&lt;p&gt;RewriteCond %{REMOTE_ADDR} ^195.175.37.26 [OR]&lt;br &#x2F;&gt;
RewriteCond %{REMOTE_ADDR} ^195.175.37.24&lt;br &#x2F;&gt;
RewriteRule ^.* http:&#x2F;&#x2F;%{REMOTE_ADDR}&#x2F; [L]&lt;&#x2F;p&gt;
&lt;p&gt;RewriteCond %{HTTP_REFERER} texasholdem [OR]&lt;br &#x2F;&gt;
RewriteCond %{HTTP_REFERER} example\.com [OR]&lt;br &#x2F;&gt;
RewriteCond %{HTTP_REFERER} example2\.com&lt;br &#x2F;&gt;
RewriteRule ^.* http:&#x2F;&#x2F;%{REMOTE_ADDR}&#x2F; [L]&lt;&#x2F;p&gt;
&lt;p&gt;The referrer spammers are still going at it (though they don’t appear in AWStats) - I can see them hitting me when I check my server-status page (see the &lt;a href=&quot;http:&#x2F;&#x2F;httpd.apache.org&#x2F;docs-2.0&#x2F;mod&#x2F;mod_status.html&quot;&gt;mod_status&lt;&#x2F;a&gt; module).&lt;&#x2F;p&gt;
&lt;p&gt;I don&#x27;t think I&#x27;ll need to upgrade my hosting plan yet, since the bandwidth spike was a one time thing caused by the crazy Homer Simpson entry.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;ins&gt;And here&#x27;s the top 10 browsers &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2005&#x2F;01&#x2F;02&#x2F;full-disclosure-of-useless-web-statistics-dec-2004&#x2F;#comment-6180&quot;&gt;as requested&lt;&#x2F;a&gt;. Unsurprising that Firefox tops the list.&lt;&#x2F;ins&gt;&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;&lt;img src=&quot;&#x2F;assets&#x2F;awstats-browsers-dec-2004.png&quot; alt=&quot;Browser stats for Dec 2004&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Well, here&#x27;s to a better year ahead for everyone. For myself, I look forward to having a good time at my new job, (finally) getting published, finding religion, and finally getting a move on in life. I&#x27;m not one for &quot;Happy New Year&quot;s and new year resolutions though. So blah, have fun.&lt;&#x2F;p&gt;
&lt;p&gt;Look me up in the Cenarius server if any of you are playing World of Warcraft - my main character&#x27;s Lucita (gnome rogue).&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>#1 Word of the Year for 2004: &quot;Blog&quot;</title>
    <published>2004-12-04T21:01:18+00:00</published>
    <updated>2004-12-04T21:01:18+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/12/04/1-word-of-the-year-for-2004-blog/"/>
    <id>https://chuyeow.wtf/2004/12/04/1-word-of-the-year-for-2004-blog/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/12/04/1-word-of-the-year-for-2004-blog/">&lt;p&gt;The word &quot;blog&quot; is the &lt;a href=&quot;http:&#x2F;&#x2F;www.m-w.com&#x2F;info&#x2F;04words.htm&quot;&gt;most looked up word of 2004&lt;&#x2F;a&gt; over at &lt;a href=&quot;http:&#x2F;&#x2F;www.m-w.com&#x2F;&quot;&gt;Merriam-Webster Online&lt;&#x2F;a&gt;. Via &lt;a href=&quot;http:&#x2F;&#x2F;blog.lidan.net&#x2F;archives&#x2F;000238.html&quot;&gt;Dan Li&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Open to ads on your blog?</title>
    <published>2004-11-23T23:52:59+00:00</published>
    <updated>2004-11-23T23:52:59+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/11/23/open-to-ads-on-your-blog/"/>
    <id>https://chuyeow.wtf/2004/11/23/open-to-ads-on-your-blog/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/11/23/open-to-ads-on-your-blog/">&lt;p&gt;If you&#x27;re open to advertisements on your blog, the enterprising &lt;a href=&quot;http:&#x2F;&#x2F;ensight.org&#x2F;&quot;&gt;Jeremy Wright&lt;&#x2F;a&gt; is &lt;a href=&quot;http:&#x2F;&#x2F;www.ensight.org&#x2F;archives&#x2F;2004&#x2F;11&#x2F;15&#x2F;want-advertising-on-your-blog&#x2F;&quot;&gt;looking to gather&lt;&#x2F;a&gt; a, um, gathering of bloggers (&lt;acronym title=&quot;Gathering of Bloggers&quot;&gt;GOB&lt;&#x2F;acronym&gt;, usage mine) for an informal blog advertising network.&lt;&#x2F;p&gt;
&lt;p&gt;The story goes something like this:&lt;&#x2F;p&gt;
&lt;p&gt;Jeremy knows advertisers. Advertisers want to put ads on other blogs (other then Jeremy&#x27;s, that is). Jeremy gets bright idea. Jeremy &lt;a href=&quot;http:&#x2F;&#x2F;www.ensight.org&#x2F;archives&#x2F;2004&#x2F;11&#x2F;15&#x2F;blog-advertising-thing-update&#x2F;&quot;&gt;posts on blog&lt;&#x2F;a&gt;. Now he&#x27;s aiming for 50 bloggers for a combined 10 million pageviews a month. Advertisers pay bloggers for ad spots. Everybody&#x27;s happy because we took out the middleman ad networks (and replaced it with Jeremy, who should be a lesser evil ;-)).&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m pretty sure Jeremy will take a fair cut for his work and he should be able to get higher prices for ads. Frankly, I don&#x27;t think I want to do &lt;a href=&quot;http:&#x2F;&#x2F;blogads.com&#x2F;&quot;&gt;BlogAds&lt;&#x2F;a&gt; anymore, because of those annoying pictures that advertisers keep changing and because they pay late and take a 20% cut. If this goes well, we should get nicer looking, unobtrusive ads. These ads pay for my VPS hosting but recently I&#x27;ve been tempted to approve more ads than the number that actually covers hosting. Gah I feel like a sneaky sell-out, though I probably needn&#x27;t be, because if I&#x27;m not wrong, most of you would be reading via RSS aggregators. Show of hands, how many of you hate the ads here? How many don&#x27;t care?&lt;&#x2F;p&gt;
&lt;p&gt;Ah I digress... So, if you&#x27;re looking for a little something to pay for hosting or earn a little pocket money, why not hook up with &lt;a href=&quot;http:&#x2F;&#x2F;www.ensight.org&#x2F;archives&#x2F;2004&#x2F;11&#x2F;15&#x2F;want-advertising-on-your-blog&#x2F;&quot;&gt;Jeremy&lt;&#x2F;a&gt; by writing him an &lt;a href=&quot;mailto:jeremy@ensight.org&quot;&gt;email&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>WordPress devs: &quot;No, we are not dead&quot;</title>
    <published>2004-11-18T21:30:03+00:00</published>
    <updated>2004-11-18T21:30:03+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/11/18/wordpress-devs-no-we-are-not-dead/"/>
    <id>https://chuyeow.wtf/2004/11/18/wordpress-devs-no-we-are-not-dead/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/11/18/wordpress-devs-no-we-are-not-dead/">&lt;p&gt;Ryan Boren, one of the developers of &lt;a href=&quot;http:&#x2F;&#x2F;wordpress.org&#x2F;&quot;&gt;WordPress&lt;&#x2F;a&gt; (which powers this blog), has an interim &lt;a href=&quot;http:&#x2F;&#x2F;wordpress.org&#x2F;development&#x2F;2004&#x2F;11&#x2F;whats-going-on&#x2F;&quot;&gt;update on what&#x27;s going on&lt;&#x2F;a&gt; behind the scenes in WordPress development and the new features in WordPress 1.3. Pages, themes, enclosures, and a richer plugin API are some things to look forward to.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Simple anti-comment spam measure</title>
    <published>2004-11-05T17:47:18+00:00</published>
    <updated>2004-11-05T17:47:18+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/11/05/simple-anti-comment-spam-measure/"/>
    <id>https://chuyeow.wtf/2004/11/05/simple-anti-comment-spam-measure/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/11/05/simple-anti-comment-spam-measure/">&lt;p&gt;Thanks to &lt;a href=&quot;http:&#x2F;&#x2F;www.e.kth.se&#x2F;~strang&#x2F;blog&#x2F;archives&#x2F;2004&#x2F;10&#x2F;spam_measures_m.html&quot;&gt;Patrick Strang&lt;&#x2F;a&gt; who pointed me to &lt;a href=&quot;http:&#x2F;&#x2F;www.stefangeens.com&#x2F;000381.html&quot;&gt;Steven Geen&#x27;s simple anti-comment spam measure&lt;&#x2F;a&gt; for MovableType, I managed to stem the current flow of &quot;Please approve this comment&quot; emails flooding my inbox. This has been happening since last Saturday! Argh! Why are they doing this even when everything goes into the moderation queue?&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, it&#x27;s so simple to get this into WordPress - just edit wp-comments.php and wp-comments-post.php to add the field to the comment form (see below) and die() when the correct &quot;letter of the day&quot; isn&#x27;t entered. (Though die()ing isn&#x27;t the most elegant way, but WordPress does this for the other fields as well.)&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;&lt;img src=&quot;&#x2F;assets&#x2F;anti-spam-todays-letter.png&quot; alt=&quot;Screenshot of anti-spam field&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Check out the &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2004&#x2F;11&#x2F;05&#x2F;simple-anti-comment-spam-measure&#x2F;#commentReply&quot;&gt;comment form&lt;&#x2F;a&gt; if the picture above is too small. Sorry to have to put you commentors through this, but it&#x27;s really for my sanity. At least it isn&#x27;t one of those randomly-generated graphical thingies that really ensures you are human (or an equivalent intelligent lifeform).&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Portions of Spamx plugin for Geeklog minimally based on MT-Blacklist Updater</title>
    <published>2004-10-24T14:07:52+00:00</published>
    <updated>2004-10-24T14:07:52+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/10/24/portions-of-spamx-plugin-for-geeklog-minimally-based-on-mt-blacklist-updater/"/>
    <id>https://chuyeow.wtf/2004/10/24/portions-of-spamx-plugin-for-geeklog-minimally-based-on-mt-blacklist-updater/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/10/24/portions-of-spamx-plugin-for-geeklog-minimally-based-on-mt-blacklist-updater/">&lt;p&gt;Part of the &lt;a href=&quot;http:&#x2F;&#x2F;www.pigstye.net&#x2F;gplugs&#x2F;staticpages&#x2F;index.php&#x2F;spamx&quot;&gt;Spamx plugin&lt;&#x2F;a&gt; for &lt;a href=&quot;http:&#x2F;&#x2F;geeklog.net&quot;&gt;Geeklog&lt;&#x2F;a&gt; (a PHP blogging script) proclaims to be based on &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;scripts&#x2F;blacklistupdater&#x2F;&quot;&gt;MT-Blacklist Updater&lt;&#x2F;a&gt; (&lt;a href=&quot;http:&#x2F;&#x2F;cvs.geeklog.net&#x2F;co.php&#x2F;geeklog-1.3&#x2F;plugins&#x2F;spamx&#x2F;MassDelete.Admin.class.php&quot;&gt;MassDelete.Admin.class.php&lt;&#x2F;a&gt; and &lt;a href=&quot;http:&#x2F;&#x2F;cvs.geeklog.net&#x2F;co.php&#x2F;geeklog-1.3&#x2F;plugins&#x2F;spamx&#x2F;Import.Admin.class.php&quot;&gt;Import.Admin.class.php&lt;&#x2F;a&gt;). I hardly see the similarity though.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>LiveSearch hack for WordPress</title>
    <published>2004-10-24T00:06:57+00:00</published>
    <updated>2004-10-24T00:06:57+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/10/24/livesearch-hack-for-wordpress/"/>
    <id>https://chuyeow.wtf/2004/10/24/livesearch-hack-for-wordpress/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/10/24/livesearch-hack-for-wordpress/">&lt;p&gt;I found this old link on &lt;a href=&quot;http:&#x2F;&#x2F;blog.bitflux.ch&#x2F;wiki&#x2F;LiveSearch&quot;&gt;LiveSearch&lt;&#x2F;a&gt; that I&#x27;d wanted to implement here but never got around to doing so until now. It&#x27;s really quite a bit of a hack right now, with most of the code coming from the &lt;a href=&quot;http:&#x2F;&#x2F;blog.bitflux.ch&#x2F;wiki&#x2F;LiveSearch&quot;&gt;LiveSearch page on the Bitflux Blog wiki&lt;&#x2F;a&gt; and with direct calls to PHP&#x27;s MySQL functions to get it to work with WordPress.&lt;&#x2F;p&gt;
&lt;p&gt;Instead of replacing the default WordPress search box, I decided to add another one instead (that you can see right now on the left just below the &quot;standard&quot; search box) and label it a &quot;LiveSearch&quot; box. I do this because livesearch.js seems to crash Firefox randomly on occasion (as mentioned on &lt;a href=&quot;http:&#x2F;&#x2F;blog.bitflux.ch&#x2F;archive&#x2F;livesearch_roundup.html&quot;&gt;Bitflux blog&lt;&#x2F;a&gt;). Besides, it&#x27;s hardly fully done, as it currently only does simple SQL LIKE matching on post titles, and the CSS is somewhat inelegant.&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, what I did was to add livesearch.js to the WordPress index template, and added the LiveSearch form.&lt;&#x2F;p&gt;
&lt;div class=&quot;code&quot;&gt;&amp;lt;form id=&quot;livesearchform&quot; method=&quot;get&quot; action=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;livesearch.php&quot;&amp;gt;&lt;br &#x2F;&gt;
  &amp;lt;input autocomplete=&quot;off&quot; id=&quot;livesearch&quot; name=&quot;q&quot; onkeypress=&quot;liveSearchStart()&quot; type=&quot;text&quot; &#x2F;&amp;gt;&lt;br &#x2F;&gt;
  &amp;lt;input id=&quot;submitted&quot; name=&quot;submitted&quot; value=&quot;yes&quot; type=&quot;hidden&quot; &#x2F;&amp;gt;&lt;br &#x2F;&gt;
  &amp;lt;div id=&quot;LSResult&quot; style=&quot;display: none;&quot;&amp;gt;&amp;lt;div id=&quot;LSShadow&quot;&amp;gt;&amp;lt;&#x2F;div&amp;gt;&amp;lt;&#x2F;div&amp;gt;&lt;br &#x2F;&gt;
&amp;lt;&#x2F;form&amp;gt;&lt;&#x2F;div&gt;
&lt;p&gt;Next, I hacked out a livesearch.php script (&lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;livesearch.phps&quot;&gt;source listing for livesearch.php&lt;&#x2F;a&gt;) that performs the relevant query on WordPress&#x27; wp_posts table (may be differently named on your installation) and returns an XML document containing the matching post titles and their URLs. The tricky part was to map the matching post titles to their URLs (since I&#x27;m using SEO-friendly permalinks). All it took was to include the wp-blog-header.php file and have the get_permalink(ID) function return the correct URL.&lt;&#x2F;p&gt;
&lt;p&gt;The other tricky part involved preventing searches in the LiveSearch box from going to the livesearch.php page, because that&#x27;d return an XML page that the user would hardly know how to proceed from. Adding a hidden form field was a quick hack, but it works just fine and redirects the user to the search results page that WordPress spews.&lt;&#x2F;p&gt;
&lt;div class=&quot;code&quot;&gt;&#x2F;&#x2F; If the LiveSearch form was actually submitted (as opposed to being requested&lt;br &#x2F;&gt;
&#x2F;&#x2F; via a XMLHttpRequest, we redirect to the standard WP search page.&lt;br &#x2F;&gt;
if( isset($_GET[&#x27;submitted&#x27;]) &amp;&amp; $_GET[&#x27;submitted&#x27;] == &#x27;yes&#x27; ) {&lt;br &#x2F;&gt;
  header(&#x27;Location: &#x27; . get_settings(&#x27;siteurl&#x27;) . &#x27;&#x2F;?s=&#x27; . $_GET[&#x27;q&#x27;]);&lt;br &#x2F;&gt;
  exit;&lt;br &#x2F;&gt;
}&lt;&#x2F;div&gt;
&lt;p&gt;Well, that&#x27;s it for now. It feels really like a hackjob but it works just fine. Perhaps someone could roll this up into a WordPress plugin or we could get LiveSearch as a feature in WordPress in future (as &lt;a href=&quot;http:&#x2F;&#x2F;s9y.org&#x2F;&quot;&gt;Serendipity&lt;&#x2F;a&gt; already does).&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>WordPress hosting up for grabs</title>
    <published>2004-10-17T20:28:03+00:00</published>
    <updated>2004-10-17T20:28:03+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/10/17/wordpress-hosting-up-for-grabs/"/>
    <id>https://chuyeow.wtf/2004/10/17/wordpress-hosting-up-for-grabs/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/10/17/wordpress-hosting-up-for-grabs/">&lt;p&gt;&lt;ins&gt;Update: All gone! Thanks everyone!&lt;&#x2F;ins&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;ins&gt;Update: seeing how pathetic the (non-)response has been, I&#x27;ve lowered the donation amount to USD2. C&#x27;mon people. Even as a gift for your non-tech-savvy uncle&#x2F;auntie&#x2F;grandma who wants to blog, it&#x27;s a good deal!&lt;&#x2F;ins&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;ins&gt;Update: There &lt;del datetime=&quot;2004-10-5T14:3:37--8:00&quot;&gt;are 3 of the accounts&lt;&#x2F;del&gt; is 1 account left. Thanks Jannah and Phu for making the donations to WordPress!&lt;&#x2F;ins&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Jeff Holman of &lt;a href=&quot;http:&#x2F;&#x2F;www.revisemedia.com&#x2F;&quot;&gt;Revise Media&lt;&#x2F;a&gt; wrote me awhile back to put up ads for his new &lt;a href=&quot;http:&#x2F;&#x2F;www.revisemedia.com&#x2F;services&#x2F;wordpress&#x2F;&quot;&gt;WordPress weblog hosting&lt;&#x2F;a&gt; service, and I gladly agreed because I was kind of a WordPress fan (caution: heavy understatement in use). His ad is on the left where you&#x27;ve probably been seeing it for awhile (if you&#x27;re not reading via a feed reader). (On the subject of ads, well, they fund the webhosting for this blog and then a little more.)&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, Jeff offered to give me 5 &lt;a href=&quot;http:&#x2F;&#x2F;www.revisemedia.com&#x2F;services&#x2F;wordpress&#x2F;compare.html&quot;&gt;Plus plans&lt;&#x2F;a&gt; &lt;ins&gt;(1 year subscription)&lt;&#x2F;ins&gt; for free to give away to you, my dearest readers. There was supposed to be some contest, but I gave up trying to think of a good idea for one. So I spoke with Jeff on this other idea I had and he has agreed to let them go for a &lt;a href=&quot;http:&#x2F;&#x2F;wordpress.org&#x2F;donate&#x2F;&quot;&gt;donation to WordPress&lt;&#x2F;a&gt; (rather than for &quot;free&quot;).&lt;&#x2F;p&gt;
&lt;p&gt;Well, the Plus plans are going at $9.95&#x2F;year each, and I ask of you to &lt;a href=&quot;http:&#x2F;&#x2F;wordpress.org&#x2F;donate&#x2F;&quot;&gt;make a donation to WordPress&lt;&#x2F;a&gt; of at least &lt;del&gt;$5&lt;&#x2F;del&gt; &lt;ins&gt;$2&lt;&#x2F;ins&gt; (this amount was of my choosing). &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;contact&#x2F;&quot;&gt;Write me&lt;&#x2F;a&gt; first (or leave a comment) if you&#x27;re thinking of donating and claiming a free Plus plan - Jeff has 5 of them for me to give away.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>MT Friend or Foe hack</title>
    <published>2004-09-06T21:34:58+00:00</published>
    <updated>2004-09-06T21:34:58+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/09/06/mt-friend-or-foe-hack/"/>
    <id>https://chuyeow.wtf/2004/09/06/mt-friend-or-foe-hack/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/09/06/mt-friend-or-foe-hack/">&lt;p&gt;Ever since Movable Type started to have the comments redirection feature (since &lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;docs&#x2F;mtchanges.html#2.66%20(2004.01.13)&quot;&gt;version 2.66&lt;&#x2F;a&gt;), comment authors&#x27; URLs have been redirected via a simple redirection script that prevents them from appearing directly on blog entries. This (partially) solved the problem of comment spammers because links from comments no longer benefit from backlinks that add to their &lt;a href=&quot;http:&#x2F;&#x2F;www.google.com&#x2F;technology&#x2F;&quot;&gt;PageRank&lt;&#x2F;a&gt;. However, legitimate commentors also have their URLs redirected, which to me seems just quite a bit unfriendly.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.neilturner.me.uk&#x2F;&quot;&gt;Neil Turner&lt;&#x2F;a&gt; has worked around this with his aptly named &lt;a href=&quot;http:&#x2F;&#x2F;www.neilturner.me.uk&#x2F;2004&#x2F;Sep&#x2F;05&#x2F;friend_or_foe.html&quot;&gt;Friend or foe hack&lt;&#x2F;a&gt; for &lt;acronym title=&quot;Movable Type&quot;&gt;MT&lt;&#x2F;acronym&gt;. A simple but still neat bit of PHP (and a good example of MT&#x27;s excellent template tags). If you use &lt;acronym title=&quot;Movable Type&quot;&gt;MT&lt;&#x2F;acronym&gt; and want to &quot;reward&quot; your legitimate commentors, you won&#x27;t want to miss this.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Movable Type 3.1 released</title>
    <published>2004-09-01T14:31:10+00:00</published>
    <updated>2004-09-01T14:31:10+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/09/01/movable-type-31-released/"/>
    <id>https://chuyeow.wtf/2004/09/01/movable-type-31-released/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/09/01/movable-type-31-released/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;news&#x2F;2004&#x2F;08&#x2F;movable_type_31_launched.shtml&quot;&gt;Movable Type 3.1 launched&lt;&#x2F;a&gt; - since &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2004&#x2F;08&#x2F;23&#x2F;movabletype-to-wordpress&#x2F;&quot;&gt;the switch&lt;&#x2F;a&gt;, life is still good with WordPress. I do miss MT&#x27;s flexible templating (like &lt;a href=&quot;http:&#x2F;&#x2F;hicksdesign.co.uk&#x2F;journal&#x2F;563&#x2F;textpattern-2-months-on&quot;&gt;Jon Hicks&lt;&#x2F;a&gt;), but the rest of it works great. WordPress devs are working on the templating issue though. As for me, I submitted a bad patch to WordPress - not a good start. Via &lt;a href=&quot;http:&#x2F;&#x2F;photomatt.net&#x2F;2004&#x2F;08&#x2F;31&#x2F;movable-type-31&#x2F;&quot;&gt;Photomatt&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>The &quot;other&quot; switch: From MovableType to WordPress</title>
    <published>2004-08-23T00:55:19+00:00</published>
    <updated>2004-08-23T00:55:19+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/08/23/movabletype-to-wordpress/"/>
    <id>https://chuyeow.wtf/2004/08/23/movabletype-to-wordpress/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/08/23/movabletype-to-wordpress/">&lt;p&gt;Somewhat in relation to my last post on &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2004&#x2F;08&#x2F;22&#x2F;looking-for-hosting&#x2F;&quot;&gt;my search for new a webhost&lt;&#x2F;a&gt;, I&#x27;ve switched from Perl-based &lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;&quot;&gt;MovableType&lt;&#x2F;a&gt; to PHP-powered &lt;a href=&quot;http:&#x2F;&#x2F;wordpress.org&#x2F;&quot;&gt;WordPress&lt;&#x2F;a&gt;. The connection between hosting and the weblog script switch isn&#x27;t really obvious, but it will be once I tell you that the server &quot;admin&quot; on the dedicated server that I&#x27;m currently on (and sharing with several other guys) showed me that MovableType was causing MySQL load to spike. Not to mention the recent rash of comment spam, a particularly bad case totaling over 400 comment spam from a single source. I can imagine how the rebuilding frenzy brought the server to its metaphorical knees.&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;&lt;img src=&quot;&#x2F;assets&#x2F;wp-website-header.png&quot; alt=&quot;Screenshot of WordPress website banner&quot; width=&quot;317&quot; height=&quot;107&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;And that, my friends, is the technical reason I&#x27;m being booted from that dedicated server. I was spitting curses when requests to the codefront.net domain were redirected to a &quot;suspended&quot; page yesterday. It turned out that the server admin suspended my account intending to bring it back up, but forgot to. Anyway, I have been refunded my pre-payment for the next 5 months hosting (plus 1 month from July to August), and given my walking orders. So I am now looking for alternative hosting. Of course I don&#x27;t think I was being fairly treated, but I&#x27;m not going to argue my case here. My advice to you: if you share a dedicated server with several peeps, make sure you appoint a server admin and &lt;strong&gt;pay&lt;&#x2F;strong&gt; him for it. Have agreements (preferably in contract form) on what would cause account suspension and termination.&lt;&#x2F;p&gt;
&lt;p&gt;Having put that aside, let&#x27;s go back to the much more interesting &quot;switch&quot;.&lt;&#x2F;p&gt;
&lt;p&gt;WordPress. Ah written in a language I can understand. And having to tweak certain things to keep this blog as it was when running on MovableType made me delve into &lt;a href=&quot;http:&#x2F;&#x2F;www.cenamayo.com&#x2F;wpxref&#x2F;nav.html?index.html&quot;&gt;the source&lt;&#x2F;a&gt;. And I realize that being based on &lt;a href=&quot;http:&#x2F;&#x2F;cafelog.com&#x2F;&quot;&gt;b2&lt;&#x2F;a&gt; (another weblog script) has meant that WordPress has a lot of cruft to clean up. But working on a nightly build (2004-08-04), I could see that the developers are hard at work cleaning and firming up the code.&lt;&#x2F;p&gt;
&lt;p&gt;The main beef I have with WordPress is the way it has everything running of a single index.php page. Well, there isn&#x27;t anything really wrong with that, but having it this way makes the code a little more complicated when you have to differentiate between a single blog entry page and, say, a category page (which lists several entries and is sort of an index page). WordPress has this is_single() function to tell you which situation you are in. Which is good, except that it isn&#x27;t exposed to users. I had to look at the source code to discover that function. I&#x27;m not sure if it&#x27;s meant to be exposed, but here I am using it because there doesn&#x27;t seem to be another way to determine which of the 2 contexts the page being displayed is in. Let me know if I&#x27;m wrong here.&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, I&#x27;m so glad I persevered and made the switch. It was tedious because the dedicated server was sometimes borked (there were times when FTP didn&#x27;t work, shell access definitely didn&#x27;t and Apache seemed to have gone down too) today. But other than that, being able to read and understand the source code of WordPress is a very, very uplifting feeling. It makes me want to contribute as a developer.&lt;&#x2F;p&gt;
&lt;p&gt;In short, I&#x27;m happier because:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;I can read PHP code.&lt;&#x2F;li&gt;
&lt;li&gt;No more nasty long rebuilds.&lt;&#x2F;li&gt;
&lt;li&gt;Visitors can comment with speeds 100X faster (non-scientific estimate). And no more double-postings too.&lt;&#x2F;li&gt;
&lt;li&gt;A very nice and fast admin control panel.&lt;&#x2F;li&gt;
&lt;li&gt;Comment spam doesn&#x27;t bring the server down as easily as for MovableType.&lt;&#x2F;li&gt;
&lt;li&gt;There&#x27;s a neat &quot;Post Slug&quot; field that you can use to define each entry&#x27;s URL. For example, this entry has a URL ending with &quot;movabletype-to-wordpress&quot; instead of &quot;the-other-switch-from-movabletype-to-wordpress&quot;. Frequent readers would have noticed by now that I like long titles.&lt;&#x2F;li&gt;
&lt;li&gt;I feel like I can contribute to WordPress (if they&#x27;d have me). That is a good feeling because I&#x27;ve always wanted to write some MovableType plugins but never got around to it because of my fear of Perl CGI (I can do Perl string manipulation pretty well, just not CGI).&lt;&#x2F;li&gt;
&lt;li&gt;Fast is good!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Time to submit some bugs to &lt;a href=&quot;http:&#x2F;&#x2F;mosquito.wordpress.org&quot;&gt;WordPress Mosquito&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Testing Meme Propagation In Blogspace: Add Your Blog!</title>
    <published>2004-08-03T03:11:53+00:00</published>
    <updated>2004-08-03T03:11:53+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/08/03/testing-meme-propagation-in-blogspace-add-your-blog/"/>
    <id>https://chuyeow.wtf/2004/08/03/testing-meme-propagation-in-blogspace-add-your-blog/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/08/03/testing-meme-propagation-in-blogspace-add-your-blog/">&lt;p&gt;This posting is a community experiment started by &lt;a href=&quot;http:&#x2F;&#x2F;novaspivack.typepad.com&#x2F;nova_spivacks_weblog&#x2F;2004&#x2F;08&#x2F;a_sonar_ping_of.html&quot;&gt;Minding the Planet&lt;&#x2F;a&gt; to see how a meme represented by a blog posting spreads across blogspace, physical space and time. It will help to show how ideas travel across blogs in space and time and how blogs are connected. It may also help to show which blogs are most influential in the propagation of memes. The original posting for this experiment is located at: Minding the Planet; results and commentary will appear there in the future.&lt;&#x2F;p&gt;
&lt;p&gt;Please join the test by adding your blog (see instructions, below) and inviting your friends to participate — the more the better. The data from this test will be public and open; others may use it to visualize and study the connectedness of blogspace and the propagation of memes across blogs.&lt;&#x2F;p&gt;
&lt;p&gt;The GUID for this experiment is: &lt;span style=&quot;font-size:65%&quot;&gt;as098398298250swg9e98929872525389t9987898tq98wteqtgaq62010920352598gawst&lt;&#x2F;span&gt; (this GUID enables anyone to easily search Google for all results of this experiment). Anyone is free to analyze the data of this experiment. Please publicize your analysis of the data, and&#x2F;or any comments by adding comments onto the &lt;a href=&quot;http:&#x2F;&#x2F;novaspivack.typepad.com&#x2F;nova_spivacks_weblog&#x2F;2004&#x2F;08&#x2F;a_sonar_ping_of.html&quot;&gt;original post at Minding the Planet&lt;&#x2F;a&gt;; Note: it would be interesting to see a geographic map or a temporal animation, as well as a social network map of the propagation of this meme.&lt;&#x2F;p&gt;
&lt;h4&gt;Instructions&lt;&#x2F;h4&gt;
&lt;p&gt;To add your blog to this experiment, copy this entire posting to&lt;br &#x2F;&gt;
your blog, and fill out the info below, substituting your own&lt;br &#x2F;&gt;
information in your posting, where appropriate.&lt;&#x2F;p&gt;
&lt;h4&gt;Required Fields &lt;&#x2F;h4&gt;
&lt;p&gt;(Note: Replace the answers below with your own answers)&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;I found this experiment at URL: &lt;a href=&quot;http:&#x2F;&#x2F;www.nocertainty.com&quot;&gt;http:&#x2F;&#x2F;www.nocertainty.com&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;I found it via &quot;Newsreader Software&quot; or &quot;Browsing or Searching the&lt;br &#x2F;&gt;
Web&quot; or &quot;An E-Mail Message&quot;: Newsreader (Bloglines&lt;&#x2F;li&gt;
&lt;li&gt;I posted this experiment at URL: &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;&quot;&gt;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;I posted this on date (day, month, year): 03 August 2004&lt;&#x2F;li&gt;
&lt;li&gt;I posted this at time (24 hour time): 02:05:00&lt;&#x2F;li&gt;
&lt;li&gt;My posting location is (city, state, country): Singapore, Singapore, Singapore&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h4&gt;Optional Survey Fields&lt;&#x2F;h4&gt;
&lt;p&gt;(Replace the answers below with your own answers):&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;My blog is hosted by: Myself&lt;&#x2F;li&gt;
&lt;li&gt;My age is: 24&lt;&#x2F;li&gt;
&lt;li&gt;My gender is: Male&lt;&#x2F;li&gt;
&lt;li&gt;My occupation is: Webmaster&lt;&#x2F;li&gt;
&lt;li&gt;I use the following RSS&#x2F;Atom reader software: Bloglines, Mozilla Thunderbird&lt;&#x2F;li&gt;
&lt;li&gt;I use the following software to post to my blog: Movable Type&lt;&#x2F;li&gt;
&lt;li&gt;I have been blogging since (day, month, year): 24 May 2003&lt;&#x2F;li&gt;
&lt;li&gt;My web browser is: Firefox&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;There it is, my very first participation in a &lt;a href=&quot;http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Meme&quot; title=&quot;View the Wikipedia entry for &amp;quot;meme&amp;quot;&quot;&gt;meme&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>An interim weblog report</title>
    <published>2004-07-22T23:41:45+00:00</published>
    <updated>2004-07-22T23:41:45+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/07/22/an-interim-weblog-report/"/>
    <id>https://chuyeow.wtf/2004/07/22/an-interim-weblog-report/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/07/22/an-interim-weblog-report/">&lt;p&gt;I was just thinking how it&#x27;s been ages since I last did one of those monthly reports where I mention website statistics for this site - the last was &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2004&#x2F;01&#x2F;02&#x2F;the_monthly_report_december_2003.php&quot;&gt;December 2003&lt;&#x2F;a&gt;. A look at the figures goes to show how little traffic and viewership I got (compared to, er, right now). 6 months ago I was getting 13,728 visits, or 442 visits daily. I&#x27;d got 65K visits last month and it&#x27;s at 60K for the first 20 days of this month - almost 3K visits daily. Nothing to shout at but it is a significant increase (for a nobody like me especially). I&#x27;ll give a shout when I get the holy PageRank 7 (which just about seems the &#x27;cap&#x27; for conventional blogs). Right.&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, what has me most pleased is the &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;userdir?siteid=12846&quot;&gt;number of subscribers&lt;&#x2F;a&gt; to my RSS feed at &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;&quot;&gt;Bloglines&lt;&#x2F;a&gt;. 224 total subscribers is about a little more than I ever expected possible out of this. And Technorati says there are &lt;a href=&quot;http:&#x2F;&#x2F;www.technorati.com&#x2F;cosmos&#x2F;search.html?rank=links&amp;url=chuyeow.wtf&quot;&gt;256 Links from 196 Sources&lt;&#x2F;a&gt; pointing to this site. Chief among them is &lt;a href=&quot;http:&#x2F;&#x2F;www.kottke.org&#x2F;&quot;&gt;kottke.org&lt;&#x2F;a&gt; - even getting listed on his &lt;em&gt;linkblog&lt;&#x2F;em&gt; gave me 1000+ visits. Amazing! And I started noticing the spike in traffic in June, when I wrote &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2004&#x2F;06&#x2F;21&#x2F;gexodus_a_graphical_gmail_import_tool.php&quot;&gt;gExodus&lt;&#x2F;a&gt; and also quite a few posts on Firefox-related matters which were well-linked.&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, I&#x27;ve just begun to notice that the new ad at that I&#x27;d approved is screwing up the website layout and I think I&#x27;ve begun to forget the point of this post, so I&#x27;ll stop now with the chest-beating. My CSS has always been unsightly and there is a case of slight divitis in the sidebar too - I&#x27;ve been too lazy to do anything though and probably still am.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>MT-Blacklist Updater version 0.3</title>
    <published>2004-07-21T10:34:12+00:00</published>
    <updated>2004-07-21T10:34:12+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/07/21/mt-blacklist-updater-version-03/"/>
    <id>https://chuyeow.wtf/2004/07/21/mt-blacklist-updater-version-03/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/07/21/mt-blacklist-updater-version-03/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.bloged.co.uk&#x2F;&quot;&gt;Ed Morris&lt;&#x2F;a&gt; wrote me earlier today regarding an insidious bug in &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;scripts&#x2F;blacklistupdater&#x2F;&quot;&gt;MT-Blacklist Updater&lt;&#x2F;a&gt; (well, not so much an insidious bug as a logical error on my part). It all started when Ed discovered an annoying (but non-critical) bug:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;I noticed that if there is an addition for a site in the changes RSS and then a deletion for that same site in the same changes file then it adds the site to the blacklist and then removes it every time the updater script is run.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;When he tried to write a patch for this bug, Ed discovered a more major bug:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;I realised that if a site were deleted and then re-added to the blacklist in the same changes file, the site would never get re-added locally (well it would briefly), as all deletions are carried out after additions in the script.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;Notice how I like to quote him instead of paraphrasing - a sure sign of... something. I don&#x27;t know what. Anyway, he fixed the entire damn thing and sent the patch over to me in the same email. All I had to do was to copy over the fixes (don&#x27;t worry Ed, your PHP&#x27;s great).&lt;&#x2F;p&gt;
&lt;p&gt;So, if you have an existing installation of &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;scripts&#x2F;blacklistupdater&#x2F;&quot;&gt;MT-Blacklist Updater&lt;&#x2F;a&gt;, update it to &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;scripts&#x2F;blacklistupdater&#x2F;&quot;&gt;version 0.3&lt;&#x2F;a&gt; if you don&#x27;t want it to miss any re-added blacklist entries (only those that appear at the same time in the MT-Blacklist changes feed - see Ed&#x27;s explanation above).&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Can you say &quot;Best Programming of a Weblog&quot;?</title>
    <published>2004-07-19T00:19:00+00:00</published>
    <updated>2004-07-19T00:19:00+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/07/19/can-you-say-best-programming-of-a-weblog/"/>
    <id>https://chuyeow.wtf/2004/07/19/can-you-say-best-programming-of-a-weblog/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/07/19/can-you-say-best-programming-of-a-weblog/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.1976design.com&#x2F;blog&#x2F;&quot;&gt;Dunstan Orchard&lt;&#x2F;a&gt; has released &lt;a href=&quot;http:&#x2F;&#x2F;www.1976design.com&#x2F;blog&#x2F;archive&#x2F;2004&#x2F;07&#x2F;17&#x2F;version-2&#x2F;&quot;&gt;Version 2&lt;&#x2F;a&gt; of his weblog and it is good. I mean really good (good enough for me to write a whole blog entry on it). &lt;a href=&quot;http:&#x2F;&#x2F;www.1976design.com&#x2F;blog&#x2F;archive&#x2F;2004&#x2F;07&#x2F;17&#x2F;version-2&#x2F;&quot;&gt;Read more&lt;&#x2F;a&gt; about the amazing plumbing job he did.&lt;&#x2F;p&gt;
&lt;p&gt;Dunstan didn&#x27;t win &lt;a href=&quot;http:&#x2F;&#x2F;2004.bloggies.com&#x2F;&quot;&gt;the 2004 Bloggies&lt;&#x2F;a&gt; (too bad there aren&#x27;t any id hooks for me to link directly to the &quot;best programming of a weblog site&quot; section), but he almost surely will win the 2005 Bloggies at this rate.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Bloglines gets much cooler</title>
    <published>2004-07-08T01:35:43+00:00</published>
    <updated>2004-07-08T01:35:43+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/07/08/bloglines-gets-much-cooler/"/>
    <id>https://chuyeow.wtf/2004/07/08/bloglines-gets-much-cooler/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/07/08/bloglines-gets-much-cooler/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;&quot;&gt;Bloglines&lt;&#x2F;a&gt; turned 1 not too long ago and crikey(!) did they add a some cool new features to the plain old feed aggregator. The new look is also a refreshing change (though the old utilitarian look suited me just fine too).&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;&lt;img alt=&quot;Sceen capture of new Bloglines look&quot; src=&quot;&#x2F;assets&#x2F;bloglines-new-look.png&quot; width=&quot;353&quot; height=&quot;117&quot; border=&quot;0&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;about&#x2F;clipblog&quot;&gt;Clip Blog&lt;&#x2F;a&gt; feature is perhaps the very coolest. It&#x27;s a convenient way to save &quot;clippings&quot; from blogs or sites you read in Bloglines.&lt;&#x2F;p&gt;
&lt;p&gt;Bloglines &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;about&#x2F;clipblog&quot;&gt;explains&lt;&#x2F;a&gt; what Clip Blogs are for:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;When you see something you want to save or share in your feeds, just one click posts it to your Bloglines Clip Blog.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;I have mine setup &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;blog&#x2F;redemption&quot;&gt;right here&lt;&#x2F;a&gt; to play around with. The unfortunate thing is that there is no RSS feed to it (there is a &quot;Subscribe&quot; link, but it seems to be in a Bloglines-specific format). It works fine within Bloglines though, and that&#x27;s the whole idea I guess.&lt;&#x2F;p&gt;
&lt;p&gt;And finally, I can get Bloglines to sort my feeds. I have a &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;public&#x2F;redemption&quot;&gt;whole lot of them&lt;&#x2F;a&gt; (on the right sidebar) and they were sorted by the date I added them. Not the best arrangement but it&#x27;s grown so big I just couldn&#x27;t get down to organizing them into folders. Well, at least alphabetical sorting is slightly better. I&#x27;m not sure if this is new, but I noticed I can now check a box next to each feed and move them into folders.&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;&lt;img alt=&quot;Screenshot of Bloglines feed organization&quot; src=&quot;&#x2F;assets&#x2F;bloglines-organize.png&quot; width=&quot;236&quot; height=&quot;327&quot; border=&quot;0&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;And this &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;citations&quot;&gt;citations search feature&lt;&#x2F;a&gt; doesn&#x27;t beat &lt;a href=&quot;http:&#x2F;&#x2F;technorati.com&#x2F;&quot;&gt;Technorati&lt;&#x2F;a&gt;, but it keeps track of &lt;strong&gt;all&lt;&#x2F;strong&gt; citations to date (whereas in Technorati, old backlinks drop off the listings).&lt;&#x2F;p&gt;
&lt;p&gt;Bloglines made Time Magazine&#x27;s list of &lt;a href=&quot;http:&#x2F;&#x2F;www.time.com&#x2F;time&#x2F;techtime&#x2F;200406&#x2F;&quot;&gt;50 coolest websites&lt;&#x2F;a&gt; and it deserves to be there. If you use a RSS reader or feed aggregator of some sort, and are disatisfied with it in some way, give &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&quot;&gt;Bloglines&lt;&#x2F;a&gt; a go.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Looking for video editing blogs</title>
    <published>2004-07-06T16:40:53+00:00</published>
    <updated>2004-07-06T16:40:53+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/07/06/looking-for-video-editing-blogs/"/>
    <id>https://chuyeow.wtf/2004/07/06/looking-for-video-editing-blogs/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/07/06/looking-for-video-editing-blogs/">&lt;p&gt;Help me out here. I&#x27;m looking for blogs focused on video editing, video editing software, or more generally, video-related blogs. Blogs on the topic of taking videos too.&lt;&#x2F;p&gt;
&lt;p&gt;If you know if any of these, post a comment or &lt;a href=&quot;&#x2F;contact&quot;&gt;drop me a line&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Thanks!&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Top 10 referrers</title>
    <published>2004-06-28T22:34:30+00:00</published>
    <updated>2004-06-28T22:34:30+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/06/28/top-10-referrers/"/>
    <id>https://chuyeow.wtf/2004/06/28/top-10-referrers/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/06/28/top-10-referrers/">&lt;p&gt;In the spirit of &lt;a href=&quot;http:&#x2F;&#x2F;weblog.wlkr.net&#x2F;archives&#x2F;000182.html&quot;&gt;http:&#x2F;&#x2F;weblog.wlkr.net&#x2F;archives&#x2F;000182.html&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;table style=&quot;width:300px;font-size:0.8em&quot;&gt;
&lt;colgroup&gt;
&lt;col width=&quot;70%&quot; &#x2F;&gt;
&lt;col width=&quot;30%&quot; &#x2F;&gt;
&lt;&#x2F;colgroup&gt;
&lt;tr&gt;
&lt;th&gt;Referrer&lt;&#x2F;th&gt;
&lt;th&gt;Visits&lt;&#x2F;th&gt;
&lt;&#x2F;tr&gt;
&lt;tr&gt;
&lt;td&gt;http:&#x2F;&#x2F;gemal.dk&#x2F;mozilla&#x2F;blogupdates.html&lt;&#x2F;td&gt;
&lt;td&gt;983&lt;&#x2F;td&gt;
&lt;&#x2F;tr&gt;
&lt;tr&gt;
&lt;td&gt;http:&#x2F;&#x2F;feedhouse.mozillazine.org&lt;&#x2F;td&gt;
&lt;td&gt;812&lt;&#x2F;td&gt;
&lt;&#x2F;tr&gt;
&lt;tr&gt;
&lt;td&gt;http:&#x2F;&#x2F;www.javablogs.com&#x2F;Welcome.action&lt;&#x2F;td&gt;
&lt;td&gt;569&lt;&#x2F;td&gt;
&lt;&#x2F;tr&gt;
&lt;tr&gt;
&lt;td&gt;http:&#x2F;&#x2F;forums.anandtech.com&#x2F;messageview.cfm&lt;&#x2F;td&gt;
&lt;td&gt;440&lt;&#x2F;td&gt;
&lt;&#x2F;tr&gt;
&lt;tr&gt;
&lt;td&gt;http:&#x2F;&#x2F;www.neilturner.me.uk&#x2F;2004&#x2F;Jun&#x2F;09&#x2F;firefox_09_tour.html&lt;&#x2F;td&gt;
&lt;td&gt;414&lt;&#x2F;td&gt;
&lt;&#x2F;tr&gt;
&lt;tr&gt;
&lt;td&gt;http:&#x2F;&#x2F;www.bloglines.com&#x2F;myblogs_display&lt;&#x2F;td&gt;
&lt;td&gt;294&lt;&#x2F;td&gt;
&lt;&#x2F;tr&gt;
&lt;tr&gt;
&lt;td&gt;http:&#x2F;&#x2F;www.thauvin.net&#x2F;linkblog&#x2F;&lt;&#x2F;td&gt;
&lt;td&gt;257&lt;&#x2F;td&gt;
&lt;&#x2F;tr&gt;
&lt;tr&gt;
&lt;td&gt;http:&#x2F;&#x2F;gemal.dk&#x2F;mozilla&#x2F;blogupdates-beta.html&lt;&#x2F;td&gt;
&lt;td&gt;229&lt;&#x2F;td&gt;
&lt;&#x2F;tr&gt;
&lt;tr&gt;
&lt;td&gt;http:&#x2F;&#x2F;animetopia.com&#x2F;search.php&lt;&#x2F;td&gt;
&lt;td&gt;215&lt;&#x2F;td&gt;
&lt;&#x2F;tr&gt;
&lt;tr&gt;
&lt;td&gt;http:&#x2F;&#x2F;www.sitepoint.com&#x2F;forums&#x2F;showthread.php&lt;&#x2F;td&gt;
&lt;td&gt;180&lt;&#x2F;td&gt;
&lt;&#x2F;tr&gt;
&lt;&#x2F;table&gt;
&lt;p&gt;And yes, a table is entirely appropriate.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Weblog categorized using Dewey Decimal System</title>
    <published>2004-06-22T09:58:34+00:00</published>
    <updated>2004-06-22T09:58:34+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/06/22/weblog-categorized-using-dewey-decimal-system/"/>
    <id>https://chuyeow.wtf/2004/06/22/weblog-categorized-using-dewey-decimal-system/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/06/22/weblog-categorized-using-dewey-decimal-system/">&lt;p&gt;Lisa Williams of &lt;a href=&quot;http:&#x2F;&#x2F;www.cadence90.com&#x2F;wp&quot;&gt;Learning The Lessons of Nixon&lt;&#x2F;a&gt; has her &lt;a href=&quot;http:&#x2F;&#x2F;www.cadence90.com&#x2F;wp&quot;&gt;weblog&lt;&#x2F;a&gt; entries &lt;a href=&quot;http:&#x2F;&#x2F;www.cadence90.com&#x2F;wp&#x2F;index.php?p=2763&quot;&gt;categorized using the Dewey Decimal System&lt;&#x2F;a&gt;! Nice!&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;d do the same too, only I think most of my categories would belong under the big umbrellas of Technology and Computers.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Gmail invite for loyal reader</title>
    <published>2004-06-22T00:22:32+00:00</published>
    <updated>2004-06-22T00:22:32+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/06/22/gmail-invite-for-loyal-reader/"/>
    <id>https://chuyeow.wtf/2004/06/22/gmail-invite-for-loyal-reader/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/06/22/gmail-invite-for-loyal-reader/">&lt;p&gt;&lt;ins&gt;Update: I&#x27;ve invited &lt;a href=&quot;http:&#x2F;&#x2F;weblog.anthonyeden.com&#x2F;&quot;&gt;Anthony Eden&lt;&#x2F;a&gt; - Anthony used to offer &lt;a href=&quot;http:&#x2F;&#x2F;freeroller.net&quot;&gt;FreeRoller&lt;&#x2F;a&gt; (a site that offers free blog hosting) for free, but has since &lt;a href=&quot;http:&#x2F;&#x2F;weblog.anthonyeden.com&#x2F;archives&#x2F;000001.html&quot;&gt;moved on&lt;&#x2F;a&gt; and FreeRoller is now &lt;a href=&quot;http:&#x2F;&#x2F;jroller.com&#x2F;&quot;&gt;JRoller&lt;&#x2F;a&gt; (still free). I used to have a FreeRoller account myself.&lt;&#x2F;ins&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Note: If you haven&#x27;t been a reader for awhile, I&#x27;ll know, so don&#x27;t try and fake it.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m giving out 1 Gmail invite to a reader who has been with me for awhile. If you could show yourselves, by commenting and telling me a bit about yourself, I&#x27;ll send you an invite. No, I&#x27;m not whoring out my invites (at least I don&#x27;t think so) - I just thought this would help me to get to know my readers a bit better. redemption in a blog has been steadily growing with about 2,000 visits a day, but I&#x27;m not seeing many of my readers commenting. I sometimes wonder if anybody actually reads what I write or there&#x27;s some bot out there periodically requesting my webpages at an approximately linearly increasing rate.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m not giving it out based on who posts first, but rather genuine readers (I&#x27;d have make educated guesses, unless I know of you from the &quot;before time&quot;).&lt;&#x2F;p&gt;
&lt;p&gt;Initially I&#x27;d wanted to give out 2 invites, but that has quickly whittled away to just 1. Oh well, I&#x27;ll get more invites soon I guess.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Thanks for the Gmail invite</title>
    <published>2004-06-18T00:35:15+00:00</published>
    <updated>2004-06-18T00:35:15+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/06/18/thanks-for-the-gmail-invite/"/>
    <id>https://chuyeow.wtf/2004/06/18/thanks-for-the-gmail-invite/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/06/18/thanks-for-the-gmail-invite/">&lt;p&gt;Well, a reader was kind enough to &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2004&#x2F;06&#x2F;13&#x2F;gmail_invites_for_sale_everywhere.php#comment5&quot;&gt;offer me a Gmail invite&lt;&#x2F;a&gt; gratuitously:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;Want a gmail invite? I think I’ve got one left and I’d much rather give it to someone who cares about web standards (yay) than compromise what I think is my moral integrity by whoring out something I got for free in the first place.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;You can&#x27;t deny there is some truth in the bit about &quot;whoring out&quot; Gmail invites that seem to have been happening of late heh (heard of &lt;a href=&quot;http:&#x2F;&#x2F;www.gmailswap.com&#x2F;&quot;&gt;Gmail Swap&lt;&#x2F;a&gt;?). Well, not everyone is whoring out their invites - some of them go to a good cause (like donations to charity or non-profit organizations).&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, I&#x27;d like to thank &lt;a href=&quot;http:&#x2F;&#x2F;blog.lukema.net&#x2F;archives&#x2F;000573.html&quot;&gt;Luke&lt;&#x2F;a&gt; for his kind gesture. Luke &lt;a href=&quot;http:&#x2F;&#x2F;blog.lukema.net&#x2F;archives&#x2F;000573.html&quot;&gt;wrote about his Gmail invites&lt;&#x2F;a&gt; as such:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;I&#x27;ve got 2 invites left and although free stuff (or auctioning it off for cash through ebay) is tempting, it doesn&#x27;t sit right with me morally, ethically, or somethin&#x27;.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;Nice.&lt;&#x2F;p&gt;
&lt;p&gt;Luke keeps a blog at &lt;a href=&quot;http:&#x2F;&#x2F;blog.lukema.net&#x2F;&quot;&gt;http:&#x2F;&#x2F;blog.lukema.net&#x2F;&lt;&#x2F;a&gt; and also an &lt;a href=&quot;http:&#x2F;&#x2F;anime.lukema.net&#x2F;&quot;&gt;anime blog&lt;&#x2F;a&gt; with mini-reviews of anime like Naruto and Full Metal Alchemist. Visit his &lt;a href=&quot;http:&#x2F;&#x2F;lukema.net&#x2F;&quot;&gt;website&lt;&#x2F;a&gt; sometime.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Comment spam masquerading as a TrackBack ping</title>
    <published>2004-06-02T23:05:03+00:00</published>
    <updated>2004-06-02T23:05:03+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/06/02/comment-spam-masquerading-as-a-trackback-ping/"/>
    <id>https://chuyeow.wtf/2004/06/02/comment-spam-masquerading-as-a-trackback-ping/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/06/02/comment-spam-masquerading-as-a-trackback-ping/">&lt;p&gt;I&#x27;ve been getting hundreds of comment spam but this particular one was different because it was meant to appear like a TrackBack ping at a cursory glance.&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;A new comment has been posted on your blog redemption in a blog, on entry&lt;br &#x2F;&gt;
#156 (How to really kill Windows Messenger).&lt;br &#x2F;&gt;
https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;11&#x2F;21&#x2F; how_to_really_kill_windows_messenger.php&lt;&#x2F;p&gt;
&lt;p&gt;IP Address: 218.145.25.80&lt;br &#x2F;&gt;
Name: *****&lt;br &#x2F;&gt;
Email Address: edrufk@yahoo.com&lt;br &#x2F;&gt;
URL: http:&#x2F;&#x2F;www.*******.com&lt;&#x2F;p&gt;
&lt;p&gt;Comments:&lt;&#x2F;p&gt;
&lt;p&gt; Read on for the skinny... redemption in a blog: How to really kill Windows Messenger...&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;And some of the things in those spam comments are just plain sick. You guys are sick, you hear that?&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>One year of blogging</title>
    <published>2004-05-25T01:32:15+00:00</published>
    <updated>2004-05-25T01:32:15+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/05/25/one-year-of-blogging/"/>
    <id>https://chuyeow.wtf/2004/05/25/one-year-of-blogging/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/05/25/one-year-of-blogging/">&lt;p&gt;One year ago today (well, it&#x27;s actually yesterday, since it just crossed midnight), 24 May 2003, I wrote my very first blog entry. Of course, I started with good old &lt;a href=&quot;http:&#x2F;&#x2F;blogger.com&#x2F;&quot;&gt;Blogger&lt;&#x2F;a&gt;, moved on to &lt;a href=&quot;http:&#x2F;&#x2F;www.blog-city.com&#x2F;&quot;&gt;Blog-City&lt;&#x2F;a&gt;, and then &lt;a href=&quot;http:&#x2F;&#x2F;www.freeroller.net&#x2F;&quot;&gt;FreeRoller&lt;&#x2F;a&gt; (now renamed to &lt;a href=&quot;http:&#x2F;&#x2F;www.jroller.com&#x2F;&quot;&gt;JRoller&lt;&#x2F;a&gt;), before I finally settled on using Movable Type on my own hosting account. Probably going to stick around, at least until I manage to move to WordPress without losing my customizations to my Movable Type installation.&lt;&#x2F;p&gt;
&lt;p&gt;In the one year that&#x27;s passed, this weblog has undergone just 3 major redesigns (which I regrettably haven&#x27;t archived for future, er, contemplation). It started out as a Java blog, before getting more involved with web development topics, and then Mozilla (Firefox, Thunderbird) news. I think I&#x27;ve settled comfortably on the topics of &quot;web development, Mozilla, Firefox, Thunderbird, CSS, programming&quot; plus any tech bits that interest me.&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, I&#x27;m glad that people are still reading :), and I am honored to have actually made a good number of blogrolls. Thanks for having me.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>One ping (service) to rule them all: Ping-O-Matic</title>
    <published>2004-05-24T00:13:23+00:00</published>
    <updated>2004-05-24T00:13:23+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/05/24/one-ping-service-to-rule-them-all-ping-o-matic/"/>
    <id>https://chuyeow.wtf/2004/05/24/one-ping-service-to-rule-them-all-ping-o-matic/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/05/24/one-ping-service-to-rule-them-all-ping-o-matic/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;pingomatic.com&#x2F;&quot;&gt;Ping-o-Matic&lt;&#x2F;a&gt; is now not only a HTML form-based service that you can use to notify multiple sites of your new weblog entry. This &lt;a href=&quot;http:&#x2F;&#x2F;pingomatic.com&#x2F;blog&#x2F;archives&#x2F;2004&#x2F;05&#x2F;20&#x2F;metapinging&#x2F;&quot;&gt;weblog entry&lt;&#x2F;a&gt; let us in on the new ping URL http:&#x2F;&#x2F;rpc.pingomatic.com&#x2F; that you can use to replace the long list of URLs you&#x27;re currently pinging everytime you make a new weblog entry.&lt;&#x2F;p&gt;
&lt;div class=&quot;img&quot;&gt;&lt;img alt=&quot;Screenshot of MT ping form section&quot; src=&quot;&#x2F;assets&#x2F;mt-ping-form.png&quot; width=&quot;305&quot; height=&quot;175&quot; border=&quot;0&quot; &#x2F;&gt;&lt;&#x2F;div&gt;
&lt;p&gt;&lt;br style=&quot;clear:both&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This means no more waiting for your weblog software (be it Movable Type, WordPress, or something else) as it pings multiple services.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>MT-Blacklist Updater 0.2 - user-contributed improvement</title>
    <published>2004-05-21T17:52:58+00:00</published>
    <updated>2004-05-21T17:52:58+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/05/21/mt-blacklist-updater-02-user-contributed-improvement/"/>
    <id>https://chuyeow.wtf/2004/05/21/mt-blacklist-updater-02-user-contributed-improvement/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/05/21/mt-blacklist-updater-02-user-contributed-improvement/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;blog.edbateman.com&#x2F;&quot;&gt;Edward Bateman&lt;&#x2F;a&gt; wrote me last week to suggest an improvement to &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;scripts&#x2F;blacklistupdater&#x2F;&quot;&gt;MT-Blacklist Updater&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;I then realised that if large numbers of users began to use your script, then Jay&#x27;s server would be under extremely high load just around the hour of each day, and especially during specific US times.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;He then went on to suggest a tiny bit of code for how to workaround this problem - it works by generating a random interval of time for the script to sleep before accessing the MT-Blacklist master blacklist changes RSS feed. Er, yes I didn&#x27;t think of this at all and all credit to Edward for pointing this out.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;scripts&#x2F;blacklistupdater&#x2F;&quot;&gt;Go get it&lt;&#x2F;a&gt; if you&#x27;re interested - to upgrade from 0.1, just simply replace the existing files with the current ones. Of course, you have to change the configuration settings in updateblacklist.php again, so make sure you copy them out from the old file.&lt;&#x2F;p&gt;
&lt;p&gt;Also, I haven&#x27;t upgraded MT-Blacklist since version 1.62 so it would be nice to know someone could tell me if MT-Blacklist Updater breaks in the newer versions.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Singaporeans found blogging</title>
    <published>2004-05-07T01:39:59+00:00</published>
    <updated>2004-05-07T01:39:59+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/05/07/singaporeans-found-blogging/"/>
    <id>https://chuyeow.wtf/2004/05/07/singaporeans-found-blogging/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/05/07/singaporeans-found-blogging/">&lt;p&gt;Pardon the newsy (and awkward) title for this entry - it&#x27;s hard trying to think up creative titles when that juice dries up. Anyway, this is more of a gratuitous, promotional linking entry than a real blog entry (although some of you will not be unaccustomed to blogs that are full-on linkblogs - and I&#x27;m not talking about side link-blogs).&lt;&#x2F;p&gt;
&lt;p&gt;So yeah, recently I&#x27;ve encountered a couple of local (Singaporean) webloggers whom I&#x27;ve had to pleasure of speaking to. They are one &lt;a href=&quot;http:&#x2F;&#x2F;motherblogger.blogspot.com&#x2F;&quot;&gt;Alex Choo&lt;&#x2F;a&gt; and one &lt;a href=&quot;http:&#x2F;&#x2F;www.sodesires.com&#x2F;weblog&#x2F;&quot;&gt;Jaime Wong&lt;&#x2F;a&gt;, both very different people and rather unrelated in fact, so I should speak of each in turn.&lt;&#x2F;p&gt;
&lt;p&gt;Well, Alex is someone I&#x27;ve had the pleasure of speaking with at length (via &lt;acronym title=&quot;Instant Messenger&quot;&gt;IM&lt;&#x2F;acronym&gt;) and will be someone I&#x27;ll be working with on a clandestine project that will save the world from the Antediluvians when Gehenna comes...  yes, something like that. Alex is also the owner of &lt;a href=&quot;http:&#x2F;&#x2F;google-apps.com&#x2F;&quot;&gt;Google Apps&lt;&#x2F;a&gt;, a collection of tools that use the Google API. This includes &quot;&lt;a href=&quot;http:&#x2F;&#x2F;google-apps.com&#x2F;adsense&#x2F;adsense.php&quot;&gt;Adsense serves...&lt;&#x2F;a&gt;&quot;, which tells you which ads a particular webpage would serve, and also &lt;a href=&quot;http:&#x2F;&#x2F;google-apps.com&#x2F;glocalnews&#x2F;glocalnews.php&quot;&gt;Glocal News&lt;&#x2F;a&gt;. &lt;a href=&quot;http:&#x2F;&#x2F;google-apps.com&#x2F;glocalnews&#x2F;glocalnews.php&quot;&gt;Glocal News&lt;&#x2F;a&gt; lets you search for news on &lt;a href=&quot;http:&#x2F;&#x2F;news.google.com&#x2F;&quot;&gt;Google News&lt;&#x2F;a&gt; related to a particular country:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;Glocal News does not just check for country names, it also checks for commonly used terms associated with that country.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;You may ask: &quot;why don&#x27;t I just go to &lt;a href=&quot;http:&#x2F;&#x2F;news.google.com&#x2F;&quot;&gt;Google News&lt;&#x2F;a&gt; and key in &#x27;USA&#x27; to find USA-related news?&quot; The difference lies in there being other keywords related to each country, and these are entered in the search for you invisibly. That gives you a rather good set of results, if you do try it out. The bad thing, however, is there&#x27;s no way you can add more keywords and the application depends on the author appending more keywords as they become relevant.&lt;&#x2F;p&gt;
&lt;p&gt;Now, &lt;a href=&quot;http:&#x2F;&#x2F;www.sodesires.com&#x2F;weblog&#x2F;&quot;&gt;Jaime Wong&lt;&#x2F;a&gt; is a freelance web designer who wrote me simply because you don&#x27;t see many Singaporeans who know what &lt;a href=&quot;http:&#x2F;&#x2F;webstandards.org&#x2F;about&#x2F;&quot;&gt;Web Standards&lt;&#x2F;a&gt; mean - we need to stick together, all 4 of us. We did talk a bit about starting a local interest group, but as of this time there&#x27;re so very few of us. Probably needs to gather more momentum and weight first before a thrust of any sort is to do any good. If you&#x27;re Singaporean and are interested in a local interest group dealing with Web Standards, do &lt;a href=&quot;&#x2F;contact&#x2F;&quot;&gt;write me&lt;&#x2F;a&gt; or &lt;a href=&quot;http:&#x2F;&#x2F;www.sodesires.com&#x2F;contact&#x2F;&quot;&gt;Jaime&lt;&#x2F;a&gt;, just for a chat or anything at all.&lt;&#x2F;p&gt;
&lt;p&gt;By the way, Jaime&#x27;s &lt;a href=&quot;http:&#x2F;&#x2F;www.sodesires.com&#x2F;weblog&#x2F;index.html&quot;&gt;weblog&lt;&#x2F;a&gt; is absolutely stunning. You have to check it out. It was even &lt;a href=&quot;http:&#x2F;&#x2F;www.cssvault.com&#x2F;gallery&#x2F;so_desires.php&quot;&gt;listed on CSS Vault&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Hmm... Well, this didn&#x27;t turn out to be a linkblog-like entry after all.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Smarter referrer spam?</title>
    <published>2004-04-06T00:26:50+00:00</published>
    <updated>2004-04-06T00:26:50+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/04/06/smarter-referrer-spam/"/>
    <id>https://chuyeow.wtf/2004/04/06/smarter-referrer-spam/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/04/06/smarter-referrer-spam/">&lt;p&gt;Ugh more referrer spam innovation. Check out these sites &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;www.klaha.net&#x2F;pers&#x2F;index.php&quot;&gt;[1]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;www.yuki-no-kisho.net&#x2F;my&#x2F;index.php&quot;&gt;[2]&lt;&#x2F;a&gt;. &lt;&#x2F;p&gt;
&lt;p&gt;Notice this bit over at both sites, where there is a link back to this website:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;If your just looking to relax take a look here. It&#x27;s a good site and recommended.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;Just a hyperlink pointing to the referrer, so it seems an innocuous enough (and legitimate) backlink. What&#x27;s more, the style is randomized, so if you refresh the page, you get a different-looking site.&lt;&#x2F;p&gt;
&lt;p&gt;Blocked with mod_rewrite in &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;htaccess.txt&quot;&gt;my .htaccess&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Referrer spam revisited</title>
    <published>2004-03-01T22:05:43+00:00</published>
    <updated>2004-03-01T22:05:43+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/03/01/referrer-spam-revisited/"/>
    <id>https://chuyeow.wtf/2004/03/01/referrer-spam-revisited/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/03/01/referrer-spam-revisited/">&lt;p&gt;Less than 3 weeks ago I wrote about &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2004&#x2F;02&#x2F;11&#x2F;the_new_referrer_spam_technique_blogger_beware.php&quot;&gt;referrer spam from fake blog sites&lt;&#x2F;a&gt;. Today, as I peruse my access logs as part of my end-of-the-month ritual, I find myself again a victim of referrer spam.&lt;&#x2F;p&gt;
&lt;p&gt;I am getting hits from &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;collegedictionary.net&quot;&gt;[1]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;studio-8.net&quot;&gt;[2]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;crunchsoccer.com&quot;&gt;[3]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;consulmex-la.com&quot;&gt;[4]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;sound-computing.com&quot;&gt;[5]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;savetheweb.org&quot;&gt;[6]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;gogreenpower.org&quot;&gt;[7]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;acl02.org&quot;&gt;[8]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;bushido-online.com&quot;&gt;[9]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;synapseiowa.com&quot;&gt;[10]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;drnapr.net&quot;&gt;[11]&lt;&#x2F;a&gt; (all redirected via JavaScript so that search engines ignore them). It doesn&#x27;t take a Photohunt expert to notice the similarities in each site. Amazing how this sites are appear to be purely legitimate - there is a dictionary site, a Bushido site and even an academic society&#x27;s anniversy meeting website . Most are just simply facades once you try to click around - links either lead back to the webroot or take you to some external site.&lt;&#x2F;p&gt;
&lt;p&gt;My conjecture: someone owns this collection of sites and is trying to get a high PageRank for the sites, either to later sell them off or for further abuse. Anyone else have a theory?&lt;&#x2F;p&gt;
&lt;p&gt;Anyhow, you can &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;htaccess.txt&quot;&gt;view my .htaccess&lt;&#x2F;a&gt; to see my blacklist of referrer spamming sites as well as a mod_rewrite method of blocking referrers.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>The new referrer spam technique - blogger beware!</title>
    <published>2004-02-11T12:04:17+00:00</published>
    <updated>2004-02-11T12:04:17+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/02/11/the-new-referrer-spam-technique-blogger-beware/"/>
    <id>https://chuyeow.wtf/2004/02/11/the-new-referrer-spam-technique-blogger-beware/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/02/11/the-new-referrer-spam-technique-blogger-beware/">&lt;p&gt;I was checking my referrer logs the other day and came across several peculiar entries. There were mostly weblogs (except for 1), and at first glance would seem to be legitimate. Until I noticed a few things:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;There is no sign of a link back to my site.&lt;&#x2F;li&gt;
&lt;li&gt;There are links to smut sites which appear to be the same throughout these sites.&lt;&#x2F;li&gt;
&lt;li&gt;The weblogs are new - in some cases there is only 1 entry, and no sign of an archive.&lt;&#x2F;li&gt;
&lt;li&gt;Certain elements are repeated across the sites.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Take a look at the sites (all redirected via JavaScript so that search engines ignore them): &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;www.veronicabee.com&#x2F;&quot;&gt;[1]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;www.evesmith.com&#x2F;&quot;&gt;[2]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;www.jennyknicks.com&#x2F;&quot;&gt;[3]&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;redirect&#x2F;?url=http:&#x2F;&#x2F;www.princessnina.com&#x2F;&quot;&gt;[4]&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Unmistakably, these are sites owned by a single person (or group of persons) who is out to seek referral links back to their sites, what is colloquially called &quot;referral spam&quot;. Whatever for, you say? Well, here&#x27;s a hypothesis (obvious as it is, it probably should be called &quot;the truth&quot; rather than a hypothesis).&lt;&#x2F;p&gt;
&lt;p&gt;First and foremost, this person (let&#x27;s just say, for ease of writing, that it is 1 person and it is a guy) is clearly someone intent on capitalizing on the weblog linking phenom that allows weblogs to have high PageRanks. A discerning eye will notice how the sites have domain names that can be turned around into sites of pornographic nature. Strong evidence that these either were porn sites before or are going to be once their Google PageRank gets high enough. By putting up some seemingly legitimate content to throw off webloggers, this person hopes to have his referral links unnoticed, unblocked (and implicitly acknowleged as legitimate). Referrer spammers are probably having a hard time with the increased awareness about referrer spam among webloggers, including tools and scripts to stop them. I can almost hear the imaginary light bulb switching on in their minds - why not use blogs as well? Place referrer links from a dummy weblog, link to several sites, get linked back (illegitimately), and get away with it. Just sit back and watch the PageRank and backlinks grow. Smart, but not smart enough.&lt;&#x2F;p&gt;
&lt;p&gt;Notice how the links to smut sites are almost consistent across all 4 sites - dead giveaway. That was what set the alarm bells ringing for me - why the hell would a weblog link to pornographic sites? In this case, this person is getting ahead of himself. The intention, as I see it, would be to make use of these fake blogs to boost search engine rankings for his existing sites by linking to them. Ah greedy, greedy. And what&#x27;s more, those links go to a porn site which I&#x27;ve blocked. Folly, folly.&lt;&#x2F;p&gt;
&lt;p&gt;Curiousity piqued, I Googled in hope of finding someone else reporting the same phenomenon. Here&#x27;s what I found:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Ministry of Propaganda notices something strange - &lt;a href=&quot;http:&#x2F;&#x2F;www.ministryofpropaganda.co.uk&#x2F;oldpropaganda&#x2F;20031117-referer.shtml&quot;&gt;Blog referrer spamming?&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;A preponderance of evidence does an investigation in &lt;a href=&quot;http:&#x2F;&#x2F;blog.netwarriors.org&#x2F;d&#x2F;site&#x2F;related&#x2F;2003&#x2F;11&#x2F;17&#x2F;more_referrer_spamming&quot;&gt;More referrer spamming&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;That last link led me to this: &lt;a href=&quot;http:&#x2F;&#x2F;idly.org&#x2F;2003&#x2F;11&#x2F;14&#x2F;porn_sites_hiding_behind_blogs&quot;&gt;Porn Sites Hiding Behind Blogs&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;So this is not new (4 months old news isn&#x27;t news). I wonder, how many webloggers have heard of this or seen this before though. I&#x27;m not clear on the how high the level of awareness is, but if you do have a weblog, do warn your readers (who are probably bloggers themselves). (&lt;em&gt;And no, you don&#x27;t have to link back to me - hypocrite I am not ;)&lt;&#x2F;em&gt;)&lt;&#x2F;p&gt;
&lt;p&gt;As for a solution, I use mod_rewrite to block out unwanted referrers, thanks to &lt;a href=&quot;http:&#x2F;&#x2F;www.unix-girl.com&#x2F;blog&#x2F;archives&#x2F;001080.html&quot;&gt;kasia in a nutshell&lt;&#x2F;a&gt;. You can &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;htaccess.txt&quot;&gt;view my .htaccess&lt;&#x2F;a&gt; (which contains my list of blocked referrers as well). For an explanation of how this works, check out &lt;a href=&quot;http:&#x2F;&#x2F;www.sitepoint.com&#x2F;forums&#x2F;member.php?u=11964&quot; title=&quot;View pippo&#x27;s profile&quot;&gt;pippo&lt;&#x2F;a&gt;&#x27;s &lt;a href=&quot;http:&#x2F;&#x2F;www.sitepoint.com&#x2F;forums&#x2F;showthread.php?t=151215&quot;&gt;reply to my thread at SitePoint Forums&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Kuro5shin article insults MovableType and MT bloggers</title>
    <published>2004-02-05T02:05:31+00:00</published>
    <updated>2004-02-05T02:05:31+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/02/05/kuro5delsdelhin-article-insults-movabletype-and-mt-bloggers/"/>
    <id>https://chuyeow.wtf/2004/02/05/kuro5delsdelhin-article-insults-movabletype-and-mt-bloggers/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/02/05/kuro5delsdelhin-article-insults-movabletype-and-mt-bloggers/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.kuro5hin.org&#x2F;story&#x2F;2004&#x2F;2&#x2F;2&#x2F;171117&#x2F;8823&quot; title=&quot;Read the &amp;quot;Why your Movable Type blog must die&amp;quot;&quot; article at Kuro5hin&quot;&gt;Why your Movable Type blog must die goes out of the way to spectacularly insult weblogs. In particular, the author slams &lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;&quot; title=&quot;Go to the Movable Type website&quot;&gt;Movable Type&lt;&#x2F;a&gt; for &quot;bad design&quot; and being vulnerable to comment-spamming scripts. Funny. Provoking (to MT users and bloggers at least). Read it, laugh, and move on.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;ins&gt;&lt;br &#x2F;&gt;
Doug provides some insight into the Kuro5shin article:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;The K5 article is not a simple rant by an individual. It is part of a script-kiddie assault on MT weblogs.&lt;&#x2F;p&gt;
&lt;p&gt;...&lt;&#x2F;p&gt;
&lt;p&gt;The K5 posting was written by one of the script-kiddies, and not surprisingly it provides a link to the crapflood script.
&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;Read Doug&#x27;s &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2004&#x2F;02&#x2F;05&#x2F;kuro5shin_article_insults_movabletype_and_mt_bloggers.php#comment9&quot;&gt;entire comment&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;James Joyce, the article author, has also made a &lt;a href=&quot;http:&#x2F;&#x2F;www.kuro5hin.org&#x2F;story&#x2F;2004&#x2F;2&#x2F;5&#x2F;171058&#x2F;4778&quot; title=&quot;Read &amp;quot;Why Movable Type bloggers must die: a response&amp;quot;&quot;&gt;response&lt;&#x2F;a&gt; where he says of this weblog:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;There was also the person who made two identical TrackBacks and thought it was funny.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;The article was funny, yes, but &quot;making&quot; 2 identical TrackBacks wasn&#x27;t my intention nor was it meant to be funny. I&#x27;m not saying MT doesn&#x27;t have it&#x27;s flaws, erm, dude, I&#x27;m just saying your insulting tone is simply that, insulting, which makes it harder to take you seriously.&lt;br &#x2F;&gt;
&lt;&#x2F;ins&gt;&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Sorry if you came in from QueerFilter.com</title>
    <published>2004-02-01T02:13:37+00:00</published>
    <updated>2004-02-01T02:13:37+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/02/01/sorry-if-you-came-in-from-queerfiltercom/"/>
    <id>https://chuyeow.wtf/2004/02/01/sorry-if-you-came-in-from-queerfiltercom/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/02/01/sorry-if-you-came-in-from-queerfiltercom/">&lt;p&gt;If you came to my site, either now or previously, via &lt;a href=&quot;http:&#x2F;&#x2F;www.queerfilter.com&#x2F;&quot; title=&quot;Go to QueerFilter.com - GLBT weblogs &amp; journals feed aggregator&quot;&gt;QueerFilter&lt;&#x2F;a&gt;, you were obviously expecting some &lt;acronym title=&quot;Gay, Lesbian, Bisexual, and Transgendered&quot;&gt;GLBT&lt;&#x2F;acronym&gt; content. The problem is, I&#x27;m neither of those, nor does this weblog have related content. So why the heck am I on QueerFilter?&lt;&#x2F;p&gt;
&lt;p&gt;Well, erm, the reason, you see, is a little dumb (and I&#x27;m a little dumbass). There was a period when I was looking for feed aggregators and weblog directories to add my weblog to, and when I came across QueerFilter, I added redemption in a blog summarily without checking out what QueerFilter was really all about. &lt;em&gt;Duh!&lt;&#x2F;em&gt; Apologies if I wasted your time.&lt;&#x2F;p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;http:&#x2F;&#x2F;www.edifyingspectacle.org&#x2F;pcstuff&#x2F;archives&#x2F;gay_weblogging&#x2F;hey_you_slack_gay_weblogg.php#comments-ask&quot; title=&quot;Read Richard&#x27;s entry on QueerFilter - &amp;quot;Hey, you slack gay webloggers!&amp;quot;&quot;&gt;Richard Evans Lee&#x27;s blog entry on QueerFilter&lt;&#x2F;a&gt;, I found out my mistake. I sent an email to the QueerFilter owner&#x2F;webmaster to remove my feed. Let&#x27;s see if this entry appears up there now shall we?&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Blacklist weblog.cemper.com if you don&#x27;t want vaguely related TrackBacks</title>
    <published>2004-01-07T20:14:54+00:00</published>
    <updated>2004-01-07T20:14:54+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2004/01/07/blacklist-weblogcempercom-if-you-dont-want-vaguely-related-trackbacks/"/>
    <id>https://chuyeow.wtf/2004/01/07/blacklist-weblogcempercom-if-you-dont-want-vaguely-related-trackbacks/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2004/01/07/blacklist-weblogcempercom-if-you-dont-want-vaguely-related-trackbacks/">&lt;p&gt;I&#x27;m deliberately making a point to let everyone know of my recommendation that they should blacklist &lt;strong&gt;weblog.cemper.com&lt;&#x2F;strong&gt; if they do not wish to receive TrackBacks that are only marginally related from the aforementioned weblog. I &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;12&#x2F;29&#x2F;sending_trackback_pings_indiscriminately_makes_you_a_trackback_spammer.php&quot; title=&quot;Read me entry entitled &amp;quot;Sending TrackBack pings indiscriminately makes you a TrackBack spammer&amp;quot;&quot;&gt;wrote about this&lt;&#x2F;a&gt; before and I haven&#x27;t forgotten that I said &lt;a href=&quot;http:&#x2F;&#x2F;weblog.cemper.com&#x2F;&quot; title=&quot;Read Christoph Cemper&#x27;s weblog&quot;&gt;Christoph Cemper&lt;&#x2F;a&gt; &quot;isn&#x27;t a TrackBack spammer&quot;. That opinion still hasn&#x27;t changed because he isn&#x27;t a spammer in the conventional sense, as Jay Allen has &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;12&#x2F;29&#x2F;sending_trackback_pings_indiscriminately_makes_you_a_trackback_spammer.php#comment6&quot; title=&quot;Read Jay&#x27;s comment&quot;&gt;mentioned&lt;&#x2F;a&gt;. I also don&#x27;t want to begin a debate on what qualifies as TrackBack spam and what doesn&#x27;t.&lt;&#x2F;p&gt;
&lt;p&gt;I do, however, want to point out to anyone who chances upon this entry that Christoph has had a series of complaints made against him for his TrackBack pings. All are dismayed to find his entries from which the TrackBack pings were sent are minimally related to their own entries. Therefore, I recommend those of you with blacklist software of some sort like &lt;a href=&quot;http:&#x2F;&#x2F;jayallen.org&#x2F;projects&#x2F;mt-blacklist&#x2F;&quot; title=&quot;Go to the MT-Blacklist project website&quot;&gt;MT-Blacklist&lt;&#x2F;a&gt; to put &quot;&lt;strong&gt;weblog.cemper.com&lt;&#x2F;strong&gt;&quot; into your blacklist to save yourselves future work in removing TrackBacks you most likely would rather not have.&lt;&#x2F;p&gt;
&lt;p&gt;At this point though, I&#x27;d like to make a disclaimer that this is solely &lt;em&gt;my&lt;&#x2F;em&gt; opinion and &lt;em&gt;my&lt;&#x2F;em&gt; own recommendation that you do so. You also shouldn&#x27;t just do what I say - if this issue concerns you at all, take it upon yourself to investigate the grounds for my recommendation. To that end, I have compiled a list of related weblog entries and links to start you off with at the bottom of this entry.&lt;&#x2F;p&gt;
&lt;p&gt;Christoph Cemper also addresses the complaints made in his &lt;a href=&quot;http:&#x2F;&#x2F;weblog.cemper.com&#x2F;a&#x2F;200312&#x2F;28-trackback-spam-complaints.php&quot; title=&quot;Christoph addesses TrackBack Spam complaints&quot;&gt;entry addressing TrackBack Spam complaints&lt;&#x2F;a&gt;. Another blogger, &lt;a href=&quot;http:&#x2F;&#x2F;www.confusedkid.com&#x2F;&quot; title=&quot;Go to Camilo&#x27;s weblog, Mecurial&quot;&gt;Camilo&lt;&#x2F;a&gt;, wrote a nicely composed argument on &lt;a href=&quot;http:&#x2F;&#x2F;www.confusedkid.com&#x2F;primer&#x2F;archives&#x2F;001590.html&quot; title=&quot;Camilo speaks on &amp;quot;Spam and censorship&amp;quot;&quot;&gt;Spam and censorship&lt;&#x2F;a&gt;. In his entry, he questions the use of a clearinghouse as a form of censorship. I &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;12&#x2F;29&#x2F;sending_trackback_pings_indiscriminately_makes_you_a_trackback_spammer.php#comment8&quot; title=&quot;Read my reply to his entry&quot;&gt;agree with him&lt;&#x2F;a&gt; and have made it clear that it wasn&#x27;t my intention to censor Cemper.&lt;&#x2F;p&gt;
&lt;p&gt;To Mr. Christoph Cemper: Don&#x27;t take this as a personal attack. I just don&#x27;t see your side of the argument and as far as I can tell you are still doing it and annoying other bloggers.&lt;&#x2F;p&gt;
&lt;p&gt;This is the list (so far) of bloggers I know who complained (and links to their corresponding entry, if any):&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http:&#x2F;&#x2F;weblog.cemper.com&#x2F;a&#x2F;200312&#x2F;28-trackback-spam-complaints.php&quot; title=&quot;Read the comments as Christoph addesses TrackBack Spam complaints&quot;&gt;Comments in Christoph Cemper&#x27;s entry addressing TrackBack Spam complaints&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;http:&#x2F;&#x2F;ben.milleare.com&#x2F;archives&#x2F;000273.html&quot; title=&quot;Ben speaks on his encounter with TrackBack Spammers&quot;&gt;Ben&#x27;s Thought Crimes&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.ensight.org&#x2F;archives&#x2F;2004&#x2F;01&#x2F;05&#x2F;what_the_hell_cempercom.html&quot; title=&quot;Jeremy asks of Cemper.com: &amp;quot;What The Hell&amp;quot;&quot;&gt;Jeremy Wright&#x27;s Ensight&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.edifyingspectacle.org&#x2F;pcstuff&#x2F;archives&#x2F;weblogging&#x2F;trackback_spam.php&quot; title=&quot;Read Richard&#x27;s entry entitled &amp;quot;Trackback spam&amp;quot;&quot;&gt; Richard Evans Lee&#x27;s Computer Toaster weblog&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.swagu.com&#x2F;archives&#x2F;000072.html&quot; title=&quot;David Clain askes whether TrackBack spamming could be next?&quot;&gt;David Clain&#x27;s Swagu&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.hebig.com&#x2F;archives&#x2F;001778.shtml&quot; title=&quot;Heiko muses over &amp;quot;TrackBack spam from cemper.com&amp;quot;&quot;&gt;Heiko Hebig&#x27;s weblog&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.scsy.de&#x2F;~mas&#x2F;archiv&#x2F;000155.html&quot; title=&quot;#!&#x2F;bin&#x2F;blog asks &amp;quot;WTF is Cemper?&amp;quot;&quot;&gt;#!&#x2F;bin&#x2F;blog&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
  </entry>
  <entry>
    <title>Nice comment postbit from vantan.org</title>
    <published>2003-12-29T02:08:57+00:00</published>
    <updated>2003-12-29T02:08:57+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/12/29/nice-comment-postbit-from-vantanorg/"/>
    <id>https://chuyeow.wtf/2003/12/29/nice-comment-postbit-from-vantanorg/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/12/29/nice-comment-postbit-from-vantanorg/">&lt;p&gt;Fellow Singaporean Vanessa Tan has a nicely designed &lt;a href=&quot;http:&#x2F;&#x2F;vantan.org&#x2F;&quot; title=&quot;Read Vanessa Tan&#x27;s weblog, vantan.org&quot;&gt;weblog&lt;&#x2F;a&gt;, totally deserving of being nominated for &lt;a href=&quot;http:&#x2F;&#x2F;www.flyingchair.net&#x2F;vote.php?categoryID=13&quot; title=&quot;View the nominees for Best Designed Blog at the Asia Weblog Awards 2003&quot;&gt;Best Designed Blog&lt;&#x2F;a&gt; at the &lt;a href=&quot;http:&#x2F;&#x2F;www.flyingchair.net&#x2F;awards.php&quot; title=&quot;Go to the Asia Weblog Awards 2003 webpage&quot;&gt;Asia Weblog Awards 2003&lt;&#x2F;a&gt;. One of the nicest bits is the comment postbit (&quot;postbit&quot; as in &quot;forum postbit&quot; parlance) which I had oohed and aahed over for some time before deciding to copy it. Yup &lt;i&gt;copy&lt;&#x2F;i&gt; it I did, and left a comment for Vanessa to let her know I was using her idea. Of course I said that I would take it down if she didn&#x27;t like me stealing her idea.&lt;&#x2F;p&gt;
&lt;p&gt;Naturally, it was my bad for assuming that I could do something like this, because Vanessa actually had a &lt;a href=&quot;http:&#x2F;&#x2F;creativecommons.org&#x2F;licenses&#x2F;by-nd&#x2F;1.0&#x2F;&quot; title=&quot;Read the Creative Commons Attribution-NoDerivs 1.0 license&quot;&gt;no derivative works Creative Commons license&lt;&#x2F;a&gt; and I had not attributed her. I found out when she posted an &lt;a href=&quot;http:&#x2F;&#x2F;vantan.org&#x2F;archives&#x2F;2003&#x2F;12&#x2F;28_copyright_notice.php&quot; title=&quot;Vanessa speaks on her change in copyrights license&quot;&gt;entry on her copyright notice&lt;&#x2F;a&gt;, and have been trying to figure out how to attribute her in a way that is at once visible yet non-intrusive to readers. I think I have figured out a way by placing this bit of text in the comments section:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;The paper doll icon that precedes each comment is an idea conceived by &lt;a href=&quot;http:&#x2F;&#x2F;vantan.org&#x2F;&quot; title=&quot;Read Vanessa Tan&#x27;s weblog&quot;&gt;Vanessa Tan&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;Want to see it? Post a (non-spam!) comment on this weblog.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Sending TrackBack pings indiscriminately makes you a TrackBack spammer</title>
    <published>2003-12-29T00:11:25+00:00</published>
    <updated>2003-12-29T00:11:25+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/12/29/sending-trackback-pings-indiscriminately-makes-you-a-trackback-spammer/"/>
    <id>https://chuyeow.wtf/2003/12/29/sending-trackback-pings-indiscriminately-makes-you-a-trackback-spammer/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/12/29/sending-trackback-pings-indiscriminately-makes-you-a-trackback-spammer/">&lt;p&gt;Yesterday I received 2 TrackBack pings for my entries on &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;12&#x2F;12&#x2F;mtblacklist_updater.php&quot; title=&quot;Read my entry on &amp;quot;MT-Blacklist Updater&amp;quot;&quot;&gt;MT-Blacklist Updater&lt;&#x2F;a&gt; and my &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;11&#x2F;03&#x2F;the_monthly_report_october_2003.php&quot; title=&quot;Read the October 2003 monthly report for redemption in a blog&quot;&gt;October 2003 monthly report&lt;&#x2F;a&gt;. What is interesting about these TrackBack pings is that the entries they were sent from had almost nothing to do with what was discussed in &lt;em&gt;my&lt;&#x2F;em&gt; entries. I began to think that I have got my very first TrackBack spam. Am I really &lt;a href=&quot;http:&#x2F;&#x2F;www.geekblog.net&#x2F;kyrah&#x2F;005653.html&quot; title=&quot;Read Kyrah Jade&#x27;s blog entry that mentions my name in the same line Mark Pilgrim and Dave Shea - me famous? Maybe if aforementioned stick was extraordinarily long&quot;&gt;famous&lt;&#x2F;a&gt;? The answer to that question, of course, is an emphatic &lt;strong&gt;no&lt;&#x2F;strong&gt; (thanks for the compliments though, Kyrah).&lt;&#x2F;p&gt;
&lt;p&gt;Being curious and, as I&#x27;d like to think, benevolent, I decided to post a &lt;a href=&quot;http:&#x2F;&#x2F;weblog.cemper.com&#x2F;a&#x2F;200312&#x2F;27-technorati-plugin-rules-over-technoratis-watchlists.php#comments&quot; title=&quot;Read my comment (the 1st one)&quot;&gt;comment&lt;&#x2F;a&gt; on one of the suspect TrackBack-happy entries:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;I&#x27;ve no idea why you sent a TrackBack ping to my weblog entry which has totally nothing to do with the things discussed here. I have deleted it.&lt;&#x2F;p&gt;
&lt;p&gt;I looked through your entries and noticed that you pinged other people too.&lt;&#x2F;p&gt;
&lt;p&gt;I hope you aren&#x27;t offended if I begin to think you are a Trackback spammer! Unless you have a good explanation, I will submit your Trackbacks as spam to Jay&#x27;s comment spam clearinghouse!&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;It was later that I found out that at least 2 other guys, &lt;a href=&quot;http:&#x2F;&#x2F;www.hebig.com&#x2F;archives&#x2F;001778.shtml&quot; title=&quot;Read Heiko Hebig&#x27;s entry that mostly just quotes my comment&quot;&gt;Heiko Hebig&lt;&#x2F;a&gt; and &lt;a href=&quot;http:&#x2F;&#x2F;www.scsy.de&#x2F;~mas&#x2F;archiv&#x2F;000155.html&quot; title=&quot;Read Martin&#x27;s entry on &amp;quot;WTF is Cemper?&amp;quot;&quot;&gt;Martin&lt;&#x2F;a&gt;, received the TrackBack pings of the same suspect nature as I did. Hmmm... it &lt;em&gt;seemed&lt;&#x2F;em&gt; that we may be onto a spammer here. But that would be jumping to conclusions a little too early. I have been going on without saying anything about the person or the weblog which sent the TrackBacks, but I have to make it clear here that it is my view that the mentioned person &lt;strong&gt;isn&#x27;t&lt;&#x2F;strong&gt; a TrackBack spammer, but rather a &lt;strong&gt;(very) misguided TrackBack-trigger-happy blogger&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;weblog.cemper.com&#x2F;&quot; title=&quot;Read Christoph Cemper&#x27;s weblog&quot;&gt;Christoph Cemper&lt;&#x2F;a&gt; has responded to our complaints with an entry entitled &lt;a href=&quot;http:&#x2F;&#x2F;weblog.cemper.com&#x2F;a&#x2F;200312&#x2F;28-trackback-spam-complaints.php&quot; title=&quot;Read Christoph Cemper&#x27;s response in his entry &amp;quot;TrackBack Spam complaints&amp;quot;&quot;&gt;TrackBack Spam complaints&lt;&#x2F;a&gt;. He says the purpose of sending TrackBack pings is to&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;notify others that you wrote about the same thing&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;and later goes on to say:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;to notify Person B was my intention.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;Yes that is very much the reason for sending TrackBack pings, but I have to question how what Christoph wrote about can qualify as the &quot;same thing&quot; when they can hardly be qualified as vaguely related. Don&#x27;t think so? Check out my entries and the pings Christoph sent (see bottom of this entry). Ahem! Just because my entry mentions &quot;Google PageRank&quot; doesn&#x27;t mean that your entry on Google PageRank is a form of &quot;continuing the discussion&quot;, much less writing about the same thing. At least, that is how I interpret the way TrackBack should work.&lt;&#x2F;p&gt;
&lt;p&gt;As a last note, I leave it to readers to judge for themselves the relatedness of the entries from which TrackBack pings were sent to my entries. For my entry on &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;12&#x2F;12&#x2F;mtblacklist_updater.php&quot; title=&quot;Read my entry on &amp;quot;MT-Blacklist Updater&amp;quot;&quot;&gt;MT-Blacklist Updater&lt;&#x2F;a&gt;, this is the &lt;a href=&quot;http:&#x2F;&#x2F;weblog.cemper.com&#x2F;a&#x2F;200312&#x2F;27-technorati-plugin-rules-over-technoratis-watchlists.php&quot;&gt;pinging entry&lt;&#x2F;a&gt;. For my &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;11&#x2F;03&#x2F;the_monthly_report_october_2003.php&quot; title=&quot;Read the October 2003 monthly report for redemption in a blog&quot;&gt;October 2003 monthly report&lt;&#x2F;a&gt;, this is the &lt;a href=&quot;http:&#x2F;&#x2F;weblog.cemper.com&#x2F;a&#x2F;200312&#x2F;28-estimate-your-pagerank-without-the-google-toolbar.php&quot;&gt;pinging entry&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Use Bloglines subscribe to email mailing lists</title>
    <published>2003-12-23T17:57:42+00:00</published>
    <updated>2003-12-23T17:57:42+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/12/23/use-bloglines-subscribe-to-email-mailing-lists/"/>
    <id>https://chuyeow.wtf/2003/12/23/use-bloglines-subscribe-to-email-mailing-lists/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/12/23/use-bloglines-subscribe-to-email-mailing-lists/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;&quot; title=&quot;Visit Bloglines, a free online blog and newsfeed aggregator&quot;&gt;Bloglines&lt;&#x2F;a&gt; just pushed out a new feature they call email subscriptions. I&#x27;ve been using Bloglines as my weblog RSS feed and newsfeed aggregator for quite a while and always been pleased with the fast response times and easy-to-use interface. This new feature just about makes wanna be a Bloglines pimp.&lt;&#x2F;p&gt;
&lt;p&gt;So what the heck is this new feature email subscriptions? Let me quote Bloglines first:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;Email subscriptions are great for announce-only or broadcast mailing lists that don&#x27;t provide RSS feeds. They are also useful as temporary email addresses.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;What Bloglines does is to setup an email account for you upon request (just click a link) and you can then use this email address to subscribe to your favorite mailing lists or newsletters (like the &lt;a href=&quot;http:&#x2F;&#x2F;newsletter.mozdev.org&#x2F;&quot; title=&quot;Visit and subscribe to the Mozilla Links newsletter&quot;&gt;Mozilla Links newsletter&lt;&#x2F;a&gt;). Any email you receive in that email account then appears in your &quot;My Blogs&quot; section just like any other newsfeed or blog RSS entries! How cool is that? Not cool enough for you Mr.&#x2F;Ms. Cynic? Think of this: you have a way of reading emails without an email client (whether web-based like Hotmail or application-based like Thunderbird or Outlook Express), &lt;strong&gt;AND&lt;&#x2F;strong&gt; a free &quot;junk&quot; email account just like those described &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;12&#x2F;17&#x2F;email_addresses_for_dodgy_websitespeople.php&quot; title=&quot;Read my weblog entry on free online services that give you instant, disposable email addresses&quot;&gt;here&lt;&#x2F;a&gt; that you can use for any purposes. What&#x27;s more, there is a measure of permanence to these accounts since the email address is yours to keep until you choose to delete it. Even better, Bloglines will be adding the ability to reply to messages soon.&lt;&#x2F;p&gt;
&lt;p&gt;If you haven&#x27;t tried out &lt;a href=&quot;http:&#x2F;&#x2F;bloglines.com&#x2F;&quot; title=&quot;Visit Bloglines, a free online blog and newsfeed aggregator&quot;&gt;Bloglines&lt;&#x2F;a&gt; yet, give it a shot. You may just like it. Oh and Bloglines doesn&#x27;t pay me to do any pimping like this. I&#x27;m not even sure how they make money in the first place.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Movable Type 2.65 released, version 3.0 details dangled tantalizingly</title>
    <published>2003-12-22T21:39:35+00:00</published>
    <updated>2003-12-22T21:39:35+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/12/22/movable-type-265-released-version-30-details-dangled-tantalizingly/"/>
    <id>https://chuyeow.wtf/2003/12/22/movable-type-265-released-version-30-details-dangled-tantalizingly/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/12/22/movable-type-265-released-version-30-details-dangled-tantalizingly/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;movabletype.org&#x2F;&quot; title=&quot;Go to the Movable Type website&quot;&gt;Movable Type&lt;&#x2F;a&gt; 2.65 has just been released - mostly a bugfix release with a few added features. The &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;11&#x2F;27&#x2F;movable_type_spam_vulnerability.php&quot; title=&quot;Read my entry on the relay vulnerability of mt-send-entry.cgi&quot;&gt;mt-send-entry.cgi fix&lt;&#x2F;a&gt; is included (it already was included in any MT 2.64 packages after the flaw was discovered and summarily fixed), of course. As is a security issue with the XML-RPC server, details of which are, I think, intentionally undisclosed to prevent exploitation in the interim. MT users are encouraged to either upgrade to 2.65 or grab the &lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;downloads&#x2F;XMLRPCServer.zip&quot; title=&quot;Download the fixed version of XMLRPCServer.pm from Movable Type (zip format)&quot;&gt;fixed version of XMLRPCServer.pm&lt;&#x2F;a&gt; immediately.&lt;&#x2F;p&gt;
&lt;p&gt;Added features include an Atom syndication template and 2 template tags &lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;docs&#x2F;mtmanual_tags.html#item_MTIfNonEmpty&quot; title=&quot;Read the &amp;lt;MTIfNonEmpty&amp;gt manual entry&quot;&gt;&amp;lt;MTIfNonEmpty&amp;gt; tag&lt;&#x2F;a&gt; and &lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;docs&#x2F;mtmanual_tags.html#item_MTEntryModifiedDate&quot; title=&quot;Read the &amp;lt;$MTEntryModifiedDate$&amp;gt; manual entry&quot;&gt;&amp;lt;$MTEntryModifiedDate$&amp;gt; tag&lt;&#x2F;a&gt;. In particular the &amp;lt;MTIfNonEmpty&amp;gt tag frees you from having to install the &lt;a href=&quot;http:&#x2F;&#x2F;www.bradchoate.com&#x2F;past&#x2F;mtifempty.php&quot; title=&quot;Check out Brad Choate&#x27;s MTIfEmpty plugin&quot;&gt;MTIfEmpty plugin&lt;&#x2F;a&gt; to achieve a similar effect.&lt;&#x2F;p&gt;
&lt;p&gt;Details about Movable Type 3.0 were also &lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;news&#x2F;2003_12.shtml#000878&quot; title=&quot;Read Movable Type&#x27;s news on MT 3.0&quot;&gt;released&lt;&#x2F;a&gt;, tantalizingly dangling nice new features in front of MT users&#x27; collective monitor-reflecting eyes&#x2F;glasses.&lt;&#x2F;p&gt;
&lt;p&gt;Support for the &lt;a href=&quot;http:&#x2F;&#x2F;www.intertwingly.net&#x2F;wiki&#x2F;pie&#x2F;FrontPage&quot; title=&quot;Visit the Atom wiki, where you can find the Atom API specification and more&quot;&gt;Atom API&lt;&#x2F;a&gt; is promised - yummy! Read &lt;a href=&quot;http:&#x2F;&#x2F;www.xml.com&#x2F;pub&#x2F;a&#x2F;2003&#x2F;10&#x2F;15&#x2F;dive.html&quot; title=&quot;Read Mark Pilgrim&#x27;s Atom API article on XML.com&quot;&gt;Mark Pilgrim&#x27;s article&lt;&#x2F;a&gt; on the Atom API if you&#x27;re clueless about it.&lt;&#x2F;p&gt;
&lt;p&gt;Comment registration will also be added in response to comment spammers. Nice, but I&#x27;m still thinking I&#x27;d rather not comment on someone else&#x27;s weblog if I had to register first - I&#x27;m doubtful it will be well-received, but I&#x27;d like to be surprised at what Six Apart can do. Surprise me, Six Apart, you hear? What I&#x27;d really like to see is something along the lines of Jay Allen&#x27;s &lt;a href=&quot;http:&#x2F;&#x2F;jayallen.org&#x2F;projects&#x2F;mt-blacklist&#x2F;&quot; title=&quot;Go to the MT-Blacklist project site&quot;&gt;MT-Blacklist&lt;&#x2F;a&gt; incorporated into MT. It is by far the most indispensable MT plugin I&#x27;ve ever used.&lt;&#x2F;p&gt;
&lt;p&gt;It also seems that moblogging will also make an appearance, judging from this bit in Movable Type&#x27;s news article:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;Additionally, for those interested in posting from mobile devices, we expect this to be a welcome release.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;The rest of the announced features seem pretty mundane. I&#x27;m pretty sure the developers are hiding the good stuff from us.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>MT-Blacklist Updater</title>
    <published>2003-12-14T08:00:00+00:00</published>
    <updated>2003-12-14T08:00:00+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/12/14/mt-blacklist-updater/"/>
    <id>https://chuyeow.wtf/2003/12/14/mt-blacklist-updater/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/12/14/mt-blacklist-updater/">&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;scripts&#x2F;blacklistupdater&#x2F;&quot;&gt;MT-Blacklist Updater&lt;&#x2F;a&gt; is back up and works, this time. I&#x27;m still in need of testers so do try it out and let me know of any bugs you may find. Thanks!&lt;&#x2F;p&gt;
&lt;p&gt;Comments, suggestions, bug reports are highly appreciated.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;del&gt;I used to use a very simple PHP &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;scripts&#x2F;blacklistupdater&#x2F;getblacklist-old.phps&quot; title=&quot;View the source of this script&quot;&gt;script&lt;&#x2F;a&gt; which simply grabs the latest master blacklist and overwrites the local copy on my server. I didn’t think too much of having any entries I’d made myself being overwritten then. Now I do, after I received quite some spam that wasn’t caught by &lt;a href=&quot;http:&#x2F;&#x2F;www.jayallen.org&#x2F;projects&#x2F;mt-blacklist&#x2F;&quot; title=&quot;Visit the MT-Blacklist website - MT-Blacklist is a Movable Type plugin to eradicate&lt;br &#x2F;&gt;
comment and trackback spam&quot;&gt;MT-Blacklist&lt;&#x2F;a&gt;, and decided to rewrite it so that it uses the &lt;a href=&quot;http:&#x2F;&#x2F;www.jayallen.org&#x2F;comment_spam&#x2F;feeds&#x2F;blacklist-changes.rdf&quot; title=&quot;MT-Blacklist blacklist changes RSS 1.0 feed&quot;&gt;blacklist changes RSS feed&lt;&#x2F;a&gt; to update my &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;blacklist.txt&quot; title=&quot;My local blacklist file&quot;&gt;local blacklist&lt;&#x2F;a&gt; non-destructively.&lt;&#x2F;p&gt;
&lt;p&gt;The results of a few hours work (mostly spent writing documentation!): &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;scripts&#x2F;blacklistupdater&#x2F;&quot; title=&quot;Check out MT-Blacklist Updater&quot;&gt;MT-Blacklist Updater&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Didn&#x27;t work! See &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;12&#x2F;12&#x2F;mtblacklist_updater.php#comment3&quot;&gt;this&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;12&#x2F;12&#x2F;mtblacklist_updater.php#comment5&quot;&gt;this&lt;&#x2F;a&gt;.&lt;&#x2F;del&gt;&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Easy charity with Buck-a-Hit</title>
    <published>2003-12-10T01:25:16+00:00</published>
    <updated>2003-12-10T01:25:16+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/12/10/easy-charity-with-buck-a-hit/"/>
    <id>https://chuyeow.wtf/2003/12/10/easy-charity-with-buck-a-hit/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/12/10/easy-charity-with-buck-a-hit/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;bojack.org&#x2F;&quot; title=&quot;Visit Jack Bog&#x27;s blog&quot;&gt;Jack Bog&lt;&#x2F;a&gt; and his wife are giving USD1 for each hit they receive today (Wednesday, December 10, 2003) from 12:01 a.m. to 11:59 p.m. &lt;acronym title=&quot;Pacific Standard Time&quot;&gt;PST&lt;&#x2F;acronym&gt; (GMT-0800) to charity.&lt;&#x2F;p&gt;
&lt;p&gt;Want to feel charitable without any hard commitments? Visit his &lt;a href=&quot;http:&#x2F;&#x2F;bojack.org&#x2F;&quot; title=&quot;Visit Jack Bog&#x27;s blog&quot;&gt;blog&lt;&#x2F;a&gt; once or twice today Or 24 times. Quoting Jack:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;If you go away and come back more than an hour later, however, that will count as two hits.&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;Well, seems like a good way to promote your site too - of course I do not doubt the altruistic motives behind Jack&#x27;s move.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Spam Wait for Movable Type - Humans wait, bots don&#x27;t</title>
    <published>2003-12-08T23:47:59+00:00</published>
    <updated>2003-12-08T23:47:59+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/12/08/spam-wait-for-movable-type-humans-wait-bots-dont/"/>
    <id>https://chuyeow.wtf/2003/12/08/spam-wait-for-movable-type-humans-wait-bots-dont/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/12/08/spam-wait-for-movable-type-humans-wait-bots-dont/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.johnwehr.com&#x2F;spamwait&#x2F;&quot; title=&quot;Go to the Spam Wait webpage&quot;&gt;Spam Wait&lt;&#x2F;a&gt; is a &lt;a href=&quot;http:&#x2F;&#x2F;movabletype.org&#x2F;&quot; title=&quot;Visit the Movable Type website - Movable Type is the personal publishing system that powers this blog&quot;&gt;Movable Type&lt;&#x2F;a&gt; hack cum plugin that forces your visitors to wait for a set period of time before being allowed to post comments. A decidedly smart move to avoid comment spamming by spam bots. The idea behind it? Human users would spend some time to read your entries&#x2F;articles first. Spam bots wouldn&#x27;t.&lt;&#x2F;p&gt;
&lt;p&gt;I won&#x27;t install this, yet, but it is a smart idea. &lt;a href=&quot;http:&#x2F;&#x2F;www.jayallen.org&#x2F;projects&#x2F;mt-blacklist&quot; title=&quot;Go to the MT-Blacklist website&quot;&gt;MT-Blacklist&lt;&#x2F;a&gt; has been very good at blocking comment spammers and only 2 have filtered past it since I&#x27;ve installed it. Besides, judging from the behavior of past comment spammer activity, the majority of spammers at this site are human spammers, not bots. And now that my PageRank has dropped from 6 to 5, I&#x27;m pretty sure I&#x27;d see a sudden drop in comment spam activity here. Sort of a mixed blessing, that.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Movable Type spam vulnerability</title>
    <published>2003-11-27T13:55:17+00:00</published>
    <updated>2003-11-27T13:55:17+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/11/27/movable-type-spam-vulnerability/"/>
    <id>https://chuyeow.wtf/2003/11/27/movable-type-spam-vulnerability/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/11/27/movable-type-spam-vulnerability/">&lt;p&gt;If you&#x27;re a &lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;&quot; title=&quot;Movable Type publishing system&quot;&gt;Movable Type&lt;&#x2F;a&gt; user, you probably already heard of the &lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;news&#x2F;2003_11.shtml#000873&quot; title=&quot;Read &amp;quot;Movable Type Spam Vulnerability&amp;quot; at the Movable Type website&quot;&gt;spam vulnerability of the &quot;Email this to a friend&quot; script&lt;&#x2F;a&gt; in Movable Type. Six Apart has posted a &lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;downloads&#x2F;mt-send-entry.zip&quot; title=&quot;Download the fixed mt-send-entry.cgi and replace yours with it&quot;&gt;fix&lt;&#x2F;a&gt;, of course, with a disclaimer that the fix only &lt;em&gt;discourages&lt;&#x2F;em&gt; spammers, not prevent spamming outright. What is the vulnerability anyway, you ask? You may want to read this &lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;support&#x2F;index.php?act=ST&amp;f=14&amp;t=31153&quot; title=&quot;Read the related thread at Movable Type support forums&quot;&gt;thread&lt;&#x2F;a&gt; for the skinny.&lt;&#x2F;p&gt;
&lt;p&gt;What can you do? Well, you should remove &lt;span class=&quot;monospaced&quot;&gt;mt-send-entry.cgi&lt;&#x2F;span&gt; completely if you don&#x27;t use it. I doubt too many end users actually use any of that &quot;Email this to a friend&quot; functionality anyway so you probably have nothing to lose. Why do I say so? One word: usability.&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Your users have to be able to find the link first to use it.&lt;&#x2F;li&gt;
&lt;li&gt;Your users probably are accustomed to using email or &lt;acronym title=&quot;Instant Messaging&quot;&gt;IM&lt;&#x2F;acronym&gt; to send links (think &lt;acronym title=&quot;I Seek You&quot;&gt;ICQ&lt;&#x2F;acronym&gt;&#x27;s Send URL functionality).&lt;&#x2F;li&gt;
&lt;li&gt;The average surfer is unlikely to be so enthusiastic as to send links to his&#x2F;her friends. Of course, this assumes that your average surfer has friends.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;The point? Scrap that functionality, delete that file.&lt;br &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Bloggers against comment spam</title>
    <published>2003-11-10T01:14:47+00:00</published>
    <updated>2003-11-10T01:14:47+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/11/10/bloggers-against-comment-spam/"/>
    <id>https://chuyeow.wtf/2003/11/10/bloggers-against-comment-spam/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/11/10/bloggers-against-comment-spam/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;kalsey.com&#x2F;blog&#x2F;&quot; title=&quot;Adam Kalsey&#x27;s blog - Measure Twice&quot;&gt;Adam Kalsey&lt;&#x2F;a&gt; has issued a &lt;a href=&quot;http:&#x2F;&#x2F;kalsey.com&#x2F;2003&#x2F;11&#x2F;comment_spam_manifesto&#x2F;&quot;&gt;Comment Spam Manifesto&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;
Bloggers will track you down and notify your hosting providers about your activities. We will tell your ISPs what you are using their connections for. We will let the makers of the products you are advertising know of your despicable sales methods. We will hit you where it hurts by attacking your source of income.
&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;The efforts of Jay Allen in coming up with &lt;a href=&quot;http:&#x2F;&#x2F;www.jayallen.org&#x2F;misc&#x2F;projects&#x2F;mt-blacklist&#x2F;&quot;&gt;MT-Blacklist&lt;&#x2F;a&gt; are highly commendable. For once, bloggers have a &lt;em&gt;defensive&lt;&#x2F;em&gt; tool against blog spammers. The manifesto, however, propounds that bloggers get on the offensive. &lt;a href=&quot;http:&#x2F;&#x2F;kalsey.com&#x2F;2003&#x2F;11&#x2F;cutting_comment_spammers_off_at_the_knees&#x2F;&quot; title=&quot;Adam Kalsey writes on how to take the sword to comment spammers&quot;&gt; Cut comment spammers off at their knees&lt;&#x2F;a&gt;. Report them to their ISP after performing a &lt;a href=&quot;http:&#x2F;&#x2F;www.arin.net&#x2F;whois&#x2F;&quot;&gt;WHOIS&lt;&#x2F;a&gt; with their IP addresses.&lt;&#x2F;p&gt;
&lt;p&gt;A PageRank of 6 has meant this weblog has been target of a good number of comment spammers. Installing MT-Blacklist has stopped a good number in their tracks. From now, repeated offenders will be reported to your ISP or your affiliate program owner.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Introduction to weblogs</title>
    <published>2003-11-03T23:35:44+00:00</published>
    <updated>2003-11-03T23:35:44+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/11/03/introduction-to-weblogs/"/>
    <id>https://chuyeow.wtf/2003/11/03/introduction-to-weblogs/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/11/03/introduction-to-weblogs/">&lt;p&gt;Diego Doval has written 2 very nice pieces on weblogging, entitled &lt;a href=&quot;http:&#x2F;&#x2F;www.dynamicobjects.com&#x2F;d2r&#x2F;archives&#x2F;002399.html&quot;&gt;An Introduction to Weblogs&lt;&#x2F;a&gt; and &lt;a href=&quot;http:&#x2F;&#x2F;www.dynamicobjects.com&#x2F;d2r&#x2F;archives&#x2F;002400.html&quot;&gt;An Introduction to Weblogs, part two: syndication&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Your Blogger code</title>
    <published>2003-09-11T17:11:45+00:00</published>
    <updated>2003-09-11T17:11:45+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/09/11/your-blogger-code/"/>
    <id>https://chuyeow.wtf/2003/09/11/your-blogger-code/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/09/11/your-blogger-code/">&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.leatheregg.com&#x2F;bloggercode&#x2F;&quot;&gt;The Blogger Code&lt;&#x2F;a&gt; lets you describe your blogging life as a code (much like &lt;a href=&quot;http:&#x2F;&#x2F;www.geekcode.com&#x2F;geek.html&quot;&gt;The Geek Code&lt;&#x2F;a&gt;) by answering a dozen questions. (via &lt;a href=&quot;http:&#x2F;&#x2F;www.adampolselli.com&#x2F;archives&#x2F;2003&#x2F;09&#x2F;08&#x2F;mamma_mia.php&quot;&gt;AdamPolselli.com&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;p&gt;My blogger code:&lt;&#x2F;p&gt;
&lt;blockquote&gt;&lt;p&gt;B2 d t+ k s u f i o x-- e- l- c+&lt;&#x2F;p&gt;&lt;&#x2F;blockquote&gt;
&lt;p&gt;That doesn&#x27;t make too much sense - at least without a &lt;a href=&quot;http:&#x2F;&#x2F;travis.kroh.net&#x2F;archives&#x2F;blogger_decoder.html&quot;&gt;decoder&lt;&#x2F;a&gt; it doesn&#x27;t. Here&#x27;s my blogger code, &lt;a href=&quot;http:&#x2F;&#x2F;travis.kroh.net&#x2F;blogger_decoder&#x2F;?code=B2%20d%20t%2B%20k%20s%20u%20f%20i%20o%20x--%20e-%20l-%20c%2B&quot;&gt;decoded&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Tracking entry referrers with PHP in MT</title>
    <published>2003-08-16T19:30:18+00:00</published>
    <updated>2003-08-16T19:30:18+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/08/16/tracking-entry-referrers-with-php-in-mt/"/>
    <id>https://chuyeow.wtf/2003/08/16/tracking-entry-referrers-with-php-in-mt/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/08/16/tracking-entry-referrers-with-php-in-mt/">&lt;p&gt;I&#x27;ve always wanted to track referrers for each entry and at the same time be able to tell which entries are the more popular ones by keeping track of each entry&#x27;s hit count.&lt;&#x2F;p&gt;
&lt;p&gt;So I did the &lt;em&gt;smart&lt;&#x2F;em&gt; thing first by Googling to see if anyone else had done it. I found the &lt;a href=&quot;http:&#x2F;&#x2F;mt-plugins.org&#x2F;archives&#x2F;entry&#x2F;awstatsreferers.php&quot;&gt;AWStatsReferers&lt;&#x2F;a&gt; MT plugin at the &lt;a href=&quot;http:&#x2F;&#x2F;mt-plugins.org&#x2F;&quot;&gt;MT Plugin Directory&lt;&#x2F;a&gt; but it requires your host to have &lt;a href=&quot;http:&#x2F;&#x2F;awstats.sourceforge.net&#x2F;&quot;&gt;AWStats&lt;&#x2F;a&gt; installed. My host doesn&#x27;t, and I wasn&#x27;t going to get them to install AWStats just so I can track referrers for my blog. &lt;a href=&quot;http:&#x2F;&#x2F;www.textism.com&#x2F;tools&#x2F;refer&#x2F;&quot;&gt;Refer&lt;&#x2F;a&gt; is a referrer tracking script that turned up - it actually seems like it could do what I wanted with a little tweaking, but a look at the code left me thinking there should be a simpler way to achieve my more specific goals (i.e. track referers and, consequently, hit count for each entry).&lt;&#x2F;p&gt;
&lt;p&gt;So, hey, I decided to whip up a simple hack of sorts using PHP and a database table to store the referrers.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;a name=&quot;tutorial&quot;&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3&gt;Tracking entry referrers with PHP in MT&lt;&#x2F;h3&gt;
&lt;p&gt;Requirements: MovableType, webhost that supports PHP, database (MySQL in this tutorial)&lt;&#x2F;p&gt;
&lt;p&gt;&lt;del&gt;
&lt;p&gt;A plain text version of this tutorial is also available &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;08&#x2F;16&#x2F;tracking_entry_referrers_with_php_in_mt.txt&quot;&gt;here&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;&#x2F;del&gt;&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;
First off, any page where you wish to display the referrers or hit count, including your archives and main index page, need to have a .php extension (or any other extension that will cause the file to be pre-processed by PHP). You can do so by renaming your &lt;em&gt;Archive File Templates&lt;&#x2F;em&gt; to have a .php extension (go to &lt;em&gt;Weblog Config&lt;&#x2F;em&gt; -&gt; &lt;em&gt;Archiving&lt;&#x2F;em&gt;). The same goes for your main index page (go to &lt;em&gt;Templates&lt;&#x2F;em&gt;) .
&lt;&#x2F;li&gt;
&lt;li&gt;Create the database table. The SQL is:&lt;br &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;div class=&quot;code&quot;&gt;CREATE TABLE `mt_entryhits` (&lt;br &#x2F;&gt;
  `entry_id` INT(11) NOT NULL&lt;br &#x2F;&gt;
    REFERENCES mt_entry(entry_id)&lt;br &#x2F;&gt;
    ON DELETE CASCADE&lt;br &#x2F;&gt;
    ON UPDATE CASCADE,&lt;br &#x2F;&gt;
  `referer` VARCHAR(255) NOT NULL&lt;br &#x2F;&gt;
);&lt;&#x2F;div&gt;
&lt;p&gt;You can use either phpMyAdmin, the MySQL command-line client or whatever suits your boat.
&lt;&#x2F;li&gt;
&lt;li&gt;Create a file named &lt;span class=&quot;monospaced&quot;&gt;db-config.php&lt;&#x2F;span&gt; with the following code:&lt;br &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;div class=&quot;code&quot;&gt;
&amp;lt;?php&lt;br &#x2F;&gt;
$host = &#x27;host&#x27;;  &#x2F;&#x2F; database server hostname&lt;br &#x2F;&gt;
$user = &#x27;user&#x27;;  &#x2F;&#x2F; database username&lt;br &#x2F;&gt;
$password = &#x27;password&#x27;;  &#x2F;&#x2F;  database password&lt;br &#x2F;&gt;
$database = &#x27;database&#x27;;  &#x2F;&#x2F; MT database&lt;br &#x2F;&gt;
?&amp;gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Replace the values of the variables as per your configuration. Upload it in your blog&#x27;s top level directory (i.e. the &lt;em&gt;Local Site Path&lt;&#x2F;em&gt; of your weblog, as specified in the &lt;em&gt;Weblog Configuration&lt;&#x2F;em&gt; screen).
&lt;&#x2F;li&gt;
&lt;li&gt;
Login to your MovableType installation and  &lt;em&gt;Manage your weblog&lt;&#x2F;em&gt;. Go to &lt;em&gt;Manage&lt;&#x2F;em&gt; -&gt; &lt;em&gt;Templates&lt;&#x2F;em&gt; -&gt; &lt;em&gt;Archive-Related Templates&lt;&#x2F;em&gt; -&gt; &lt;em&gt;Individual Entry Archive&lt;&#x2F;em&gt;.
&lt;&#x2F;li&gt;
&lt;li&gt;
At the top of the template, add the following lines:&lt;&#x2F;p&gt;
&lt;div class=&quot;code&quot;&gt;
&amp;lt;?php&lt;br &#x2F;&gt;
error_reporting(0);&lt;&#x2F;p&gt;
&lt;p&gt;include( &#x27;&amp;lt;$MTBlogSitePath$&amp;gt;db-config.php&#x27; );&lt;&#x2F;p&gt;
&lt;p&gt;mysql_connect( $host, $user, $password );&lt;br &#x2F;&gt;
mysql_select_db( $database );&lt;&#x2F;p&gt;
&lt;p&gt;&#x2F;&#x2F; this is the list of referrers you don&#x27;t want to record&lt;br &#x2F;&gt;
&#x2F;&#x2F; use the following format within the parentheses:&lt;br &#x2F;&gt;
&#x2F;&#x2F;   &#x27;http:&#x2F;&#x2F;domain1.com&#x27;, &#x27;http:&#x2F;&#x2F;domain2.com&#x27;, ...&lt;br &#x2F;&gt;
&#x2F;&#x2F; leave it blank if you want to record all referrers&lt;br &#x2F;&gt;
$ignore_list = array( &#x27;http:&#x2F;&#x2F;referrer.you.want.to.ignore&#x27; );&lt;&#x2F;p&gt;
&lt;p&gt;&#x2F;&#x2F; check referrer string to determine if we want to record it&lt;br &#x2F;&gt;
$ignore_referrer = false;&lt;br &#x2F;&gt;
foreach( $ignore_list as $ignore ) {&lt;br &#x2F;&gt;
  if( stristr( $_SERVER[&#x27;HTTP_REFERER&#x27;], $ignore ) !== false ) {&lt;br &#x2F;&gt;
    $ignore_referrer = true;&lt;br &#x2F;&gt;
     break;&lt;br &#x2F;&gt;
  }&lt;br &#x2F;&gt;
}&lt;&#x2F;p&gt;
&lt;p&gt;&#x2F;&#x2F; record the referer&lt;br &#x2F;&gt;
if( !$ignore_referrer ) {&lt;br &#x2F;&gt;
  mysql_query( &quot;INSERT INTO mt_entryhits(entry_id, referer) VALUES (&amp;lt;$MTEntryID$&amp;gt;, &#x27;{$_SERVER[&#x27;HTTP_REFERER&#x27;]}&#x27;)&quot; );&lt;br &#x2F;&gt;
}&lt;&#x2F;p&gt;
&lt;p&gt;&#x2F;&#x2F; get the no. of times this entry has been read&lt;br &#x2F;&gt;
$rs = mysql_query( &#x27;SELECT COUNT(*) FROM mt_entryhits WHERE entry_id=&amp;lt;$MTEntryID$&amp;gt;&#x27; );&lt;br &#x2F;&gt;
$row = mysql_fetch_row( $rs );&lt;br &#x2F;&gt;
$hits = $row[0];&lt;&#x2F;p&gt;
&lt;p&gt;&#x2F;&#x2F; get the list of referers&lt;br &#x2F;&gt;
$sql =&lt;br &#x2F;&gt;
&#x27;SELECT referer, COUNT(*) AS count&lt;br &#x2F;&gt;
FROM mt_entryhits&lt;br &#x2F;&gt;
WHERE entry_id=&lt;$MTEntryID$&gt;&lt;br &#x2F;&gt;
GROUP BY referer&lt;br &#x2F;&gt;
ORDER BY count DESC&#x27;;&lt;&#x2F;p&gt;
&lt;p&gt;$rs = mysql_query( $sql );&lt;br &#x2F;&gt;
?&amp;gt;
&lt;&#x2F;p&gt;&lt;&#x2F;div&gt;
&lt;p&gt;This code snippet is specific to MySQL - you should be able to change it easily for PostgreSQL or SQLite (if not, &lt;a href=&quot;https:&#x2F;&#x2F;chuyeow.wtf&#x2F;contact&#x2F;&quot;&gt;let me know&lt;&#x2F;a&gt; and I&#x27;ll post code snippets for those &lt;acronym title=&quot;Relational Database Management Systems&quot;&gt;RDBMS&lt;&#x2F;acronym&gt;s too). Of course, you can plug in a database abstraction library like the excellent &lt;a href=&quot;php.weblogs.com&#x2F;adodb&quot;&gt;ADODB&lt;&#x2F;a&gt;, but I leave out that portable solution in favor of database-specific built-in function calls because MovableType supports only MySQL, PostgreSQL, or SQLite.
&lt;&#x2F;li&gt;
&lt;li&gt;
In the same template (the &lt;em&gt;Individual Entry Archive&lt;&#x2F;em&gt; template), look for a good place to display the entry hit count and insert the following code:&lt;br &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;div class=&quot;code&quot;&gt;
Read &amp;lt;?=$hits?&amp;gt; time&amp;lt;?php if($hits != 1) echo &#x27;s&#x27;;?&amp;gt;
&lt;&#x2F;div&gt;
&lt;p&gt;I place them in the &quot;Posted by&quot; bit at the end of each entry, which for the default MT template is&lt;&#x2F;p&gt;
&lt;div class=&quot;code&quot;&gt;
&amp;lt;span class=&quot;posted&quot;&amp;gt;Posted by &amp;lt;$MTEntryAuthor$&amp;gt; at &amp;lt;$MTEntryDate$&amp;gt;&lt;br &#x2F;&gt;
&amp;lt;MTEntryIfAllowPings&amp;gt;&lt;br &#x2F;&gt;
| &amp;lt;a href=&quot;&amp;lt;$MTCGIPath$&amp;gt;&amp;lt;$MTTrackbackScript$&amp;gt;?__mode=view&amp;entry_id=&amp;lt;$MTEntryID$&amp;gt;&quot; onclick=&quot;OpenTrackback(this.href); return false&quot;&amp;gt;TrackBack&amp;lt;&#x2F;a&amp;gt;&lt;br &#x2F;&gt;
&amp;lt;&#x2F;MTEntryIfAllowPings&amp;gt;&lt;br &#x2F;&gt;
&lt;span style=&quot;color:red;&quot;&gt;| Read &amp;lt;?=$hits?&amp;gt; time&amp;lt;?php if($hits != 1) echo &#x27;s&#x27;;?&amp;gt;&lt;&#x2F;span&gt;&lt;br &#x2F;&gt;
&amp;lt;br &#x2F;&amp;gt;&amp;lt;&#x2F;span&amp;gt;
&lt;&#x2F;div&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
Now, it&#x27;s time to display the referrers. Again in the same template, add the following code where you wish to display the referrers.&lt;&#x2F;p&gt;
&lt;div class=&quot;code&quot;&gt;
&amp;lt;?php&lt;br &#x2F;&gt;
&#x2F;&#x2F; display the list of referers&lt;br &#x2F;&gt;
echo &#x27;&amp;lt;div class=&quot;sidetitle&quot;&amp;gt;Referrers&amp;lt;&#x2F;div&amp;gt;&#x27;, &quot;\n&quot;;&lt;br &#x2F;&gt;
echo &#x27;&amp;lt;div class=&quot;side&quot;&amp;gt;&#x27;, &quot;\n&quot;;&lt;br &#x2F;&gt;
echo &#x27;&amp;lt;ul&amp;gt;&#x27;, &quot;\n&quot;;&lt;br &#x2F;&gt;
while( $row = mysql_fetch_assoc( $rs ) ) {&lt;&#x2F;p&gt;
&lt;p&gt;  $referer = $row[&#x27;referer&#x27;];&lt;br &#x2F;&gt;
  $count = $row[&#x27;count&#x27;];&lt;&#x2F;p&gt;
&lt;p&gt;  echo &#x27;&amp;lt;li&amp;gt;&#x27;;&lt;&#x2F;p&gt;
&lt;p&gt;  if( strpos( $referer, &#x27;http:&#x2F;&#x2F;&#x27; ) !== false ) {&lt;br &#x2F;&gt;
    echo &#x27;&amp;lt;a href=&quot;&#x27;, $referer, &#x27;&quot; target=&quot;_blank&quot;&amp;gt;&#x27;;&lt;&#x2F;p&gt;
&lt;p&gt;    &#x2F;&#x2F; truncate URL if too long&lt;br &#x2F;&gt;
    if( strlen($referer) &amp;gt; 90 ) {&lt;br &#x2F;&gt;
      $referer = substr($referer, 0, 90) . &#x27;...&#x27;;&lt;br &#x2F;&gt;
    }&lt;br &#x2F;&gt;
    echo $referer, &#x27;(&#x27;, $count, &#x27;)&#x27;;&lt;br &#x2F;&gt;
    echo &#x27;&amp;lt;&#x2F;a&amp;gt;&#x27;;&lt;br &#x2F;&gt;
  }&lt;br &#x2F;&gt;
  else {&lt;br &#x2F;&gt;
    &#x2F;&#x2F; truncate URL if too long&lt;br &#x2F;&gt;
    if( strlen($referer) &amp;gt; 90 ) {&lt;br &#x2F;&gt;
      $referer = substr($referer, 0, 90) . &#x27;...&#x27;;&lt;br &#x2F;&gt;
    }&lt;&#x2F;p&gt;
&lt;p&gt;    &#x2F;&#x2F; handle cases where there is no referrer&lt;br &#x2F;&gt;
    if( $referer == &#x27;&#x27; ) {&lt;br &#x2F;&gt;
      $referer = &#x27;Direct hit or unknown referrer&#x27;;&lt;br &#x2F;&gt;
    }&lt;br &#x2F;&gt;
    echo $referer, &#x27;(&#x27;, $count, &#x27;)&#x27;;&lt;br &#x2F;&gt;
  }&lt;br &#x2F;&gt;
  echo &#x27;&amp;lt;&#x2F;li&amp;gt;&#x27;;&lt;br &#x2F;&gt;
  echo &quot;\n&quot;;&lt;br &#x2F;&gt;
}&lt;br &#x2F;&gt;
echo &quot;\n&quot;;&lt;br &#x2F;&gt;
echo &#x27;&amp;lt;&#x2F;ul&amp;gt;&#x27;, &quot;\n&quot;;&lt;br &#x2F;&gt;
echo &#x27;&amp;lt;&#x2F;div&amp;gt;&#x27;;&lt;br &#x2F;&gt;
?&amp;gt;
&lt;&#x2F;p&gt;&lt;&#x2F;div&gt;
&lt;p&gt;You can format the &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;&#x2F;acronym&gt; to suit your current template.
&lt;&#x2F;li&gt;
&lt;li&gt;
Phew! The hardest part is now over. All that&#x27;s left is to display the number of times each entry has been read in the other archive pages and the main page (&lt;em&gt;Main Index&lt;&#x2F;em&gt;). I&#x27;ll only work through the changes to the &lt;em&gt;Main Index&lt;&#x2F;em&gt; template, since it will be similar for the other templates (&lt;em&gt;Category Archive&lt;&#x2F;em&gt;, &lt;em&gt;Date-Based Archive&lt;&#x2F;em&gt;, any other templates you have created that displays blog entries).&lt;&#x2F;p&gt;
&lt;p&gt;At the top of the template, add the following lines:&lt;&#x2F;p&gt;
&lt;div class=&quot;code&quot;&gt;
&amp;lt;?php&lt;br &#x2F;&gt;
error_reporting(0);&lt;&#x2F;p&gt;
&lt;p&gt;include( &#x27;&amp;lt;$MTBlogSitePath$&amp;gt;db-config.php&#x27; );&lt;&#x2F;p&gt;
&lt;p&gt;mysql_connect( $host, $user, $password );&lt;br &#x2F;&gt;
mysql_select_db( $database );&lt;br &#x2F;&gt;
?&amp;gt;
&lt;&#x2F;p&gt;&lt;&#x2F;div&gt;
&lt;p&gt;Look for the &lt;span class=&quot;monospaced&quot;&gt;&amp;lt;MTEntries&amp;gt;&lt;&#x2F;span&gt; tag in the template and add the following lines after it:&lt;&#x2F;p&gt;
&lt;div class=&quot;code&quot;&gt;
&amp;lt;?php&lt;br &#x2F;&gt;
&#x2F;&#x2F; get the no. of times this entry has been read&lt;br &#x2F;&gt;
$rs = mysql_query( &#x27;SELECT COUNT(*) FROM mt_entryhits WHERE entry_id=&amp;lt;$MTEntryID$&amp;gt;&#x27; );&lt;br &#x2F;&gt;
$row = mysql_fetch_row( $rs );&lt;br &#x2F;&gt;
$hits = $row[0];&lt;br &#x2F;&gt;
?&amp;gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Now that we&#x27;ve the number of hits in the variable &lt;span class=&quot;monospaced&quot;&gt;$hits&lt;&#x2F;span&gt;, we can display the entry hit count as before by adding the following line of code within the &lt;span class=&quot;monospaced&quot;&gt;&amp;lt;MTEntries&amp;gt;&lt;&#x2F;span&gt; tag:&lt;&#x2F;p&gt;
&lt;div class=&quot;code&quot;&gt;
Read &amp;lt;?=$hits?&amp;gt; time&amp;lt;?php if($hits != 1) echo &#x27;s&#x27;;?&amp;gt;
&lt;&#x2F;div&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
Do the same for the other archive templates (&lt;em&gt;Category Archive&lt;&#x2F;em&gt;, &lt;em&gt;Date-Based Archive&lt;&#x2F;em&gt;, any other templates you have created that displays blog entries).
&lt;&#x2F;li&gt;
&lt;li&gt;
Rebuild your site and you&#x27;re done!
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;
Thanks to everyone who gave comments and asked questions at the &lt;a href=&quot;http:&#x2F;&#x2F;www.movabletype.org&#x2F;support&#x2F;&quot;&gt;MovableType support forums&lt;&#x2F;a&gt; and elsewhere, who pointed out things I overlooked.&lt;&#x2F;p&gt;
&lt;p&gt;
&lt;strong&gt;Update&lt;&#x2F;strong&gt;: &lt;a href=&quot;http:&#x2F;&#x2F;www.tbotcotw.com&#x2F;&quot; title=&quot;Matt Moore&#x27;s blog&quot;&gt;Matt Moore&lt;&#x2F;a&gt; has an alternative (based on this very post! ;-)) that includes collection of the page title of the referrer, and also the search terms used to get to your blog entry. Check out his entry entitled &quot;&lt;a href=&quot;http:&#x2F;&#x2F;www.tbotcotw.com&#x2F;archives&#x2F;001159.php&quot;&gt;How to collect referrer data&lt;&#x2F;a&gt;&quot;&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>&quot;Go to referrer&quot; bookmarklet</title>
    <published>2003-08-13T05:00:57+00:00</published>
    <updated>2003-08-13T05:00:57+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/08/13/go-to-referrer-bookmarklet/"/>
    <id>https://chuyeow.wtf/2003/08/13/go-to-referrer-bookmarklet/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/08/13/go-to-referrer-bookmarklet/">&lt;p&gt;Apparently, Simon Willison&#x27;s surfing habit is similar to mine, judging from his entry on &lt;a title=&quot;Simon Willison: On blogging technique and better tabbed browsing&quot; href=&quot;http:&#x2F;&#x2F;simon.incutio.com&#x2F;archive&#x2F;2003&#x2F;08&#x2F;13&#x2F;bloggingTechnique&quot;&gt;On blogging technique and better tabbed browsing&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ve always found the problem of losing the &quot;back&quot; button particularly annoying when opening multiple tabs in &lt;a href=&quot;http:&#x2F;&#x2F;mozilla.org&#x2F;products&#x2F;firebird&#x2F;&quot;&gt;Mozilla Firebird&lt;&#x2F;a&gt; via middle-clicking (which opens pages in a new tab). &lt;a href=&quot;http:&#x2F;&#x2F;www.squarefree.com&#x2F;&quot;&gt;Jesse Ruderman&#x27;s&lt;&#x2F;a&gt; &quot;&lt;a href=&quot;javascript:if(!document.referrer) alert(&amp;quot;No referrer!&amp;quot;); document.location = document.referrer; void 0&quot;&gt;go to referrer&lt;&#x2F;a&gt;&quot;  bookmarklet solves this bit of annoyance for me, at least until this is implemented directly into Firebird or as an extension.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Meaningful URLs in MovableType</title>
    <published>2003-07-26T17:30:39+00:00</published>
    <updated>2003-07-26T17:30:39+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/07/26/meaningful-urls-in-movabletype/"/>
    <id>https://chuyeow.wtf/2003/07/26/meaningful-urls-in-movabletype/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/07/26/meaningful-urls-in-movabletype/">&lt;p&gt;Thanks to this &lt;a href=&quot;http:&#x2F;&#x2F;contactsheet.org&#x2F;articles&#x2F;2003&#x2F;07&#x2F;23&#x2F;friendly_urls_site_maintenance.html&quot;&gt;entry at Contact Sheet&lt;&#x2F;a&gt;, this blog now features friendly, meaningul URLs. Previously, individual entry archives (permalinks) were named like so: 00034.html. With simple changes to the archiving configuration, individual archives are now named like so: https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;07&#x2F;26&#x2F;button_maker.html, monthly archives like so: https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;2003&#x2F;07&#x2F;index.html, and category archives like so: https:&#x2F;&#x2F;chuyeow.wtf&#x2F;archives&#x2F;Blogging&#x2F;index.html.&lt;&#x2F;p&gt;
&lt;div class=&quot;pullquote&quot;&gt;
... this blog now features friendly, meaningul URLs.
&lt;&#x2F;div&gt;
&lt;p&gt;There isn&#x27;t a trick to it. In fact it&#x27;s in the MovableType documentation itself. If you have a MT blog yourself, go to &#x27;Weblog Config&#x27;, then &#x27;Archiving&#x27;, and click on the question mark next to &#x27;Archive File Template&#x27;. It&#x27;s all there, even with examples.&lt;&#x2F;p&gt;
&lt;p&gt;How to do it:&lt;br &#x2F;&gt;
- go to &#x27;Weblog Config&#x27;&lt;br &#x2F;&gt;
- go to &#x27;Archiving&#x27;&lt;br &#x2F;&gt;
- for &#x27;Individual&#x27;, under &#x27;Archive File Template&#x27;, enter: &lt;$MTArchiveDate format=&quot;%Y&#x2F;%m&#x2F;%d&#x2F;&quot;$&gt;&lt;$MTEntryTitle dirify=&quot;1&quot;$&gt;.html&lt;br &#x2F;&gt;
- for &#x27;Daily&#x27;, enter: &lt;$MTArchiveDate format=&quot;%Y&#x2F;%m&#x2F;%d&#x2F;index.html&quot;$&gt;&lt;br &#x2F;&gt;
- for &#x27;Monthly&#x27;, enter: &lt;$MTArchiveDate format=&quot;%Y&#x2F;%m&#x2F;index.html&quot;$&gt;&lt;br &#x2F;&gt;
- for &#x27;Category&#x27;, enter: &lt;$MTArchiveCategory$&gt;&#x2F;index.html&lt;br &#x2F;&gt;
- rebuild!&lt;&#x2F;p&gt;
&lt;p&gt;Of course, you are free to tweak the names of the archive files. Some of you may want to keep your archives by category instead of by date, so something like &lt;$MTEntryCategory dirify=&quot;1&quot;$&gt;&#x2F;&lt;$MTEntryTitle dirify=&quot;1&quot;$&gt;.html would give &#x27;category_name&#x2F;entry_title.html&#x27; for individual entries.&lt;&#x2F;p&gt;
&lt;p&gt;Rest assured that your old permalinks that have been spidered by Googlebots and linked to by other sites will be safe - MT does not delete the old files, but leaves them intact. It is prudent though to make this change as soon as possible , if you ever intend to do so.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Button maker</title>
    <published>2003-07-26T10:04:24+00:00</published>
    <updated>2003-07-26T10:04:24+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/07/26/button-maker/"/>
    <id>https://chuyeow.wtf/2003/07/26/button-maker/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/07/26/button-maker/">&lt;p&gt;I recently came across this great &lt;a href=&quot;http:&#x2F;&#x2F;www.minimalverbosity.com&#x2F;2003&#x2F;May&#x2F;19&#x2F;buttons.htm&quot;&gt;button maker &lt;&#x2F;a&gt; at &lt;a href=&quot;http:&#x2F;&#x2F;www.minimalverbosity.com&quot;&gt;minimal verbosity&lt;&#x2F;a&gt; written in PHP by Bill Zeller. The source is &lt;a href=&quot;http:&#x2F;&#x2F;www.minimalverbosity.com&#x2F;button.php?leftFill=FFCC00A&amp;leftText=R&amp;leftTextPosition=8&amp;rightFill=CCCC94&amp;rightText=in%20a%20blog&amp;barPosition=18&amp;rightTextPosition=26&quot;&gt;here&lt;&#x2F;a&gt; - images are generated using the GD 2 library.&lt;&#x2F;p&gt;
&lt;p&gt;Adam Kalsey has also written a user interface to that script &lt;a href=&quot;http:&#x2F;&#x2F;kalsey.com&#x2F;tools&#x2F;buttonmaker&#x2F;&quot;&gt;here&lt;&#x2F;a&gt;, so you don&#x27;t have to play around with the query string (which I did). I came up with this in a few seconds playing around with the query string: &lt;img alt=&quot;redemption in a blog button&quot; src=&quot;&#x2F;assets&#x2F;RIAB.png&quot; width=&quot;80&quot; height=&quot;15&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Cool stuff.&lt;&#x2F;p&gt;
</content>
  </entry>
  <entry>
    <title>Back from the dead</title>
    <published>2003-07-26T09:50:13+00:00</published>
    <updated>2003-07-26T09:50:13+00:00</updated>
    <author><name>Chu Yeow</name></author>
    <link rel="alternate" type="text/html" href="https://chuyeow.wtf/2003/07/26/back-from-the-dead/"/>
    <id>https://chuyeow.wtf/2003/07/26/back-from-the-dead/</id>
    <content type="html" xml:base="https://chuyeow.wtf/2003/07/26/back-from-the-dead/">&lt;p&gt;There&#x27;ve been some recent problems with hosting, primarily because of my sites (I&#x27;m on a shared hosting plan with 8 other domains being hosted). I do have no idea why this is so though, but it seems my robots.txt and favicon.ico files caused the server to go into very high loads (more than 90%). Funny thing is there weren&#x27;t any in the paths provided in the logs, but I went ahead and deleted all that I could find. Guess I&#x27;ll never know the exact cause of that, unless my webhosting service provider has a clue.&lt;&#x2F;p&gt;
&lt;p&gt;Anyhow, my recent installation of &lt;a href=&quot;http:&#x2F;&#x2F;drupal.org&quot;&gt;Drupal&lt;&#x2F;a&gt; on &lt;a href=&quot;http:&#x2F;&#x2F;codefront.net&quot; title=&quot;CodeFront.net - coding in the front lines&quot;&gt;CodeFront.net&lt;&#x2F;a&gt; caused my MovableType blogs, including this one, to be uneditable - no new entries or comments. It was only until recently that I discovered the problem was due to the .htaccess file in the Drupal installation, which prevented .cgi files from being executed.&lt;&#x2F;p&gt;
&lt;p&gt;So I&#x27;m back, not from the dead, but nevertheless with a vengeance, of sorts.&lt;&#x2F;p&gt;
</content>
  </entry>
</feed>
