<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0" 
   xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" 
   xmlns:html="http://www.w3.org/1999/html" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>
   <title>eccentric blog</title>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi</link>
   <description>random eccentric things</description>
   <language>en</language>
   <copyright>Copyleft 2009</copyright>
   <ttl>60</ttl>
   <pubDate>Wed, 30 Sep 2009 17:29 GMT</pubDate>
   <managingEditor>eccentric@slavery.cx</managingEditor>
   <generator>PyBlosxom http://pyblosxom.sourceforge.net/ 1.4.3 01/10/2008</generator>
<item>
   <title>Mortgage Calculators</title>
   <guid isPermaLink="false">general/mortgage_calculator</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/mortgage_calculator.ecc</link>
   <description><![CDATA[

<p>I've been following house prices for a few years, watching what I think is a huge housing bubble develope in Canada. Anyways, I often run little mortgage scenario's on houses just for fun to see how out of whack things are (the average family not being able to afford even a cheap home, etc, etc), and I did a google search for mortgage calculators and found something that I think is interesting.</p>

<p>This site: <a href="http://www.mortgagecalculator.net/">http://www.mortgagecalculator.net/</a> that is hosted by who knows, doesn't allow you to put in an interest rate above 9.0 percent. It seems to just not compute and won't show you any numbers? Anyways, that is just out to lunch since interest rates over the past 30 years have been up to 21%, and average around 8% or so. Yeah, they are stupid low now, but it doesn't mean they can't ever go past 9%? Just crazy.</p>

<p>And then I find this other site hosted by the BBC in the UK and they let you enter in your interest rate etc, and in the results they have a <i>"But be careful, at 12% it will be:"</i> amount. Which is exactly what people need to know! So anyways, a nice example of stupid vs sensible. <a href="http://www.bbc.co.uk/homes/property/mortgagecalculator.shtml">http://www.bbc.co.uk/homes/property/mortgagecalculator.shtml</a></p>



]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Wed, 30 Sep 2009 17:29 GMT</pubDate>
</item>
<item>
   <title>now with rss</title>
   <guid isPermaLink="false">general/rss</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/rss.ecc</link>
   <description><![CDATA[

Because there is one person who reads this blog I finally got around to hooking up the rss function. Link at the bottom of this page or <a href="index.rss20">right here</a>. Enjoy :) 


]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Thu, 16 Jul 2009 00:13 GMT</pubDate>
</item>
<item>
   <title>new blog</title>
   <guid isPermaLink="false">general/new_blog</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/new_blog.ecc</link>
   <description><![CDATA[
Well wordpress failed me again after I got lazy and didn't upgrade it for a while. It ended up getting hacked through a vulnerability in the image upload script. There didn't seem to be any real damage but it messed up my wordpress database somehow. Anyways, I'm rather sick of upgrading wordpress constantly and so I've switched to <a href="http://pyblosxom.sourceforge.net/">pyblosxom</a>. It's nice and simple, no comments, so no spam, and I was able to drop all my old wordpress posts into text files with a simple python script. 

]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Tue, 06 May 2008 02:46 GMT</pubDate>
</item>
<item>
   <title>python-mysql on maemo</title>
   <guid isPermaLink="false">general/python-mysql_on_maemo</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/python-mysql_on_maemo.ecc</link>
   <description><![CDATA[
Compiling python-mysql for use on a nokia n800. <br /><br />I got the libmysqlclient15 libraries that were released from the gmyth package.<br />http://sourceforge.net/project/showfiles.php?group_id=177106&package_id=225202<br /><br />I then downloaded MySQL-python-1.2.2.tar.gz <br /><br />export LD_LIBRARY_PATH=/usr/lib/mysql<br />I changed site.cfg file and set threadsafe to false, then ran python2.5 setup.py build<br />I then changed site.cfg to set threadsafe to true, then ran python2.5 setup.py build again<br />after that all went well, I ran python2.5 setup.py install and this created an egg /usr/lib/python2.5/site-packages/MySQL_python-1.2.2-py2.5-linux-armv5tel.egg<br /><br />I copied this to the nokia n800 in the same directory and installed libmysqlclient15_5.0.27_armel.deb and then I was able to import MySQLdb and use mysql.<br /><br />added /usr/lib/mysql to /etc/ld.so.conf and ran ldconfig
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Tue, 06 May 2008 02:22 GMT</pubDate>
</item>
<item>
   <title>Last.fm OMI (Open Mind Index)</title>
   <guid isPermaLink="false">general/Last.fm_OMI_(Open_Mind_Index)</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/Last.fm_OMI_%28Open_Mind_Index%29.ecc</link>
   <description><![CDATA[
I came across this <a href="http://www.musickum.com/omi/">OMI (Open Mind Index) generator</a> while browsing around <a href="http://www.last.fm/">last.fm</a> that is rather cool if your a last.fm junkie. As it's described on the website:<br /><br /><blockquote>The calculation is based on your top-artist of the last 12 months. The weighting of a tag depends on the quantity of your played songs of one artist, as well as the most frequently used tag for this artist. On the basis of quantity, distribution and weighting of the tags, the OMI will be calculated.</blockquote><br /><br />So it basically takes your last.fm stats and creates even more stats about your listening. And everyone loves statistics (well, last.fm users do). They also have a bunch of OMI stats based on age, country and so on.<br /><br />
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Fri, 02 Nov 2007 07:26 GMT</pubDate>
</item>
<item>
   <title>delayed sleep phase syndrome</title>
   <guid isPermaLink="false">general/delayed_sleep_phase_syndrome</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/delayed_sleep_phase_syndrome.ecc</link>
   <description><![CDATA[
My girlfriend recently found this article on wikipedia about <a href="http://en.wikipedia.org/wiki/Delayed_sleep_phase_syndrome">delayed sleep phase syndrome</a>, and immediately showed it to me since it describes my sleeping habits exactly. It's interesting as it seems just be a more extreme case of the natural circadian rhythm which has some people being "owls" or those who tend to go to sleep naturally later in the night (midnight - 2am). And on the flip side there are "Larks" who naturally go to bed earlier, and in turn wake up earlier. Along with that there is <a href="http://en.wikipedia.org/wiki/Advanced_sleep_phase_syndrome">advanced sleep phase syndrome</a> which is the exact opposite to delayed sleep phase syndrome. And in between are people who sleep more regular hours, sometimes referred to as "hummingbirds". From what I read Owls and Larks each account for about 15% of the population while the remaining 70% are hummingbirds.<br /><br />In the case of these sleeping problems the best solution seems to be to find a lifestyle that fits with your sleeping since the trouble isn't sleeping at all, it's just when you sleep. All through school, and while I was working 9-5 I always had massive trouble going to bed at night, and getting up in the morning. I tried all kinds of different methods to try and get myself to sleep earlier but nothing ever worked. Even after struggling to get up in the morning, working a long day and then trying to go to bed early I would just lay there forever not falling asleep until after 2am. And thus getting up in the morning would be a massive pain, and thus I've always been late for everything in life if it's in the morning hours. Now that I'm self employed I can pretty much work my own hours and so I just go to sleep when I'm tired at 4 or 5am and sleep until I'm not tired and get up around noon. Unfortunately the world doesn't really work on those hours so finding a lifestyle to fit the more extreme cases of owls and larks isn't always easy, and is almost always a problem during school. But knowing what the problem is certainly makes it easier to find a solution. All through school it was assumed that I just slept too much and the solution seems to be finding out why I slept such long hours, when in fact, I wasn't sleeping very much at all since I was mostly just laying in bed at night not sleeping, or at least not getting any good sleep, and then getting up way to early. In turn making me seem tired all of the time as school hours are nearly my natural sleep hours. <br /><br />This article titled <a href="http://scienceblogs.com/clock/2006/06/everything_you_always_wanted_t.php">Everything You Always Wanted To Know About Sleep (But Were Too Afraid To Ask)</a> is a great overview of sleep in general and worth reading if your interested. 
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Sun, 12 Aug 2007 09:46 GMT</pubDate>
</item>
<item>
   <title>pystone benchmarks</title>
   <guid isPermaLink="false">general/pystone_benchmarks</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/pystone_benchmarks.ecc</link>
   <description><![CDATA[
These aren't very sceintific tests, but it's interesting to see the difference from processor to processor. The test I'm performing is a builtin pystone benchmark from the test module in python that tests mostly cpu performance in executing python code. It is simply done by doing the following on a *unix box:<br /><pre><br />from test import pystone<br />pystone.main(500000)<br /></pre><br />It will then output the time it took and the pystones/second value. Run it a few times and take the lowest value. Here are the results from a bunch of machines I have access too:

<table border="1" cellpadding="1" cellspacing="0">
<tr><th>Machine</th><th>Time</th><th>pystones/second</th></tr>
<tr><td>Intel Core 2 Duo 6600 (2.4 ghz)</td><td>7.04</td><td>71022.7</td></tr>
<tr><td>Intel Xeon 5110 (1.6 ghz)</td><td>10.42</td><td>47984.6</td></tr>
<tr><td>Athlon s969 3200+ (2.0 ghz)</td><td>12.02</td><td>41597.3</td></tr><tr><td>Athlon s969 3000+ (1.8 ghz)</td><td>13.37</td><td>37397.2</td></tr>
<tr><td>AMD Hammer? (1.6 ghz)</td><td>14.95</td><td>33444.8</td></tr>
<tr><td>AMD Opteron 242 (1.6 ghz)</td><td>15.20</td><td>32894.7</td></tr>
<tr><td>Intel Pentium 4 (2.4 ghz)</td><td>16.53</td><td>30248.0</td></tr>
<tr><td>AMD Sempron (1.6 ghz)</td><td>17.01</td><td>29394.5</td></tr>
<tr><td>Epia M6000 (600 mhz)</td><td>74.54</td><td>6707.8</td></tr>
<tr><td>Intel Celeron (300 mhz)</td><td>100.89</td><td>4955.9</td></tr>
</table>
<br /><a href="/blogimages/20070602/pystones_graph.jpg"><img src="/blogimages/20070602/pystones_graph.jpg" alt="graph" /></a><br /><br />As can be seen from the graph the new Core 2 Duo chip I got outperforms my old AMD 64 3000+ by almost double in this test. And it really does make quite a noticeable difference in just day to day use. Well worth the upgrade I would say...

]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Sat, 02 Jun 2007 04:00 GMT</pubDate>
</item>
<item>
   <title>WD Raptor drives</title>
   <guid isPermaLink="false">general/WD_Raptor_drives</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/WD_Raptor_drives.ecc</link>
   <description><![CDATA[
I'm a big fan of these new WD Raptor 10k rpm SATA drives that have been out for a little while now. So far they've been really solid and they make quite the difference in IO speed. I just replaced a drive in a machine and had a chance to perform a little real world test on identical machines hardware wise except the drive.<br /><br />Machine A has a Seagate 7200rpm SATA drive (ST380013AS)<br />Machine B has a Western Digitial 10k rpm 36gig Raptor (WD360ADFD-00)<br /><br />Both machines are AMD64 3000+ w/1gig of ram (identical mainboards/ram/controllers and whatnot)<br /><br />First I did a little test with apt-get. Both machines are running Debian Etch and had an identical upgrade to do on firefox (or iceweasel). First I downloaded the packages to make sure they were starting from the same place:<br /><code>apt-get -d install mozilla-firefox</code><br /><br />Next I ran the install and timed them both:<br /><code>time apt-get -y install mozilla-firefox</code><br /><br />For the older seagate drive the time was 22.6 seconds:<br /><em>real    0m22.571s<br />user    0m2.956s<br />sys     0m1.032s<br /></em><br /><br />For the 10k WD Raptor it was done in 5.4 seconds:<br /><em>real    0m5.363s<br />user    0m1.332s<br />sys     0m0.496s<br /></em><br /><br />If you have the money I'd certainly recommend the Raptor drives as they really do make quite a noticeable difference in anything IO related.
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Tue, 27 Mar 2007 19:59 GMT</pubDate>
</item>
<item>
   <title>speeding up pygtk liststore/treeview</title>
   <guid isPermaLink="false">general/speeding_up_pygtk_liststoretreeview</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/speeding_up_pygtk_liststoretreeview.ecc</link>
   <description><![CDATA[
I was running into a problem when populating a pygtk liststore where it would take a rather long amount of time and thus slowed down the app quite a lot. I did some looking into ways of speeding it up and found that the slowdown was a rather expensive sort function I was using (soring by column a, then b, then c, then d). So each time it was adding a row to the liststore it would then run through the sort fucntion to find it's place in the list. So for the liststore I was working with I was adding 379 records and it was taking about 2.5 seconds to populate.<br /><br />Unfortunately there is no way to disconnect a sort function from a liststore, but you can basicly nullify it by creating a simple sort function that doesn't do anything and tell the list store to use that while you populate, then reconnect the complicated sort function after your done populating so it only needs to run the expensive sort function once instead of 379 times. <br /><br /><code>sort_func = lambda *args: 0<br />store.set_sort_func(2, sort_func)<br />store.clear()<br />... code to populate store ...<br />store.set_sort_func(2, self.aisort, (2, 3, 6))<br /></code><br /><br />This knocked the time down to 0.12 seconds which makes the app much more usable. I also found you could shave a little more time off by also disconnecting the liststore from the treeview to avoid having to update the treeview when each row is getting updated.<br /><br /><code>treeview.set_model(None)<br />... code to populate store ...<br />treeview.set_model(store)<br /></code><br /><br />This got things down to 0.10 seconds which isn't a big improvement but does make a difference. And would account for a bigger differene with more rows of data.<br />
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Mon, 05 Mar 2007 23:26 GMT</pubDate>
</item>
<item>
   <title>procmail filtering of exe files</title>
   <guid isPermaLink="false">general/procmail_filtering_of_exe_files</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/procmail_filtering_of_exe_files.ecc</link>
   <description><![CDATA[
I've been getting alot of spam/virus email lately that are just a blank email with an exe attachment named <em>Greeting Card.exe</em> or something equally retarded. My spam filter hasn't been picking up on them since there is no message to filter against so I decided to add a quick procmail rule to filter the messages out. I was able to do so by simply adding the following into my ~/.procmailrc file.<br /><blockquote>:0B:<br />* ^Content-Type: .*/.*;(.*$)?([ ].*$)*[ ]*name[ ]*=.*.(com|exe|pif|bat|scr)<br />badattachments</blockquote><br />The :0 is the procmail tag that says this is a rule, the B tells it to scan the message body which it does not do by default. The second line is the regular expression that matches the content type line for any attachments with com, exe, pif, bat, src extension. The thrid line simply moves all that mail into my mailbox called badattachments. This could be <em>/dev/null</em> as well if you wanted to just rid of them right away.
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Fri, 09 Feb 2007 06:54 GMT</pubDate>
</item>
<item>
   <title>APEv2 tags on mp3 files</title>
   <guid isPermaLink="false">general/APEv2_tags_on_mp3_files</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/APEv2_tags_on_mp3_files.ecc</link>
   <description><![CDATA[
I don't know why or how these got attached to some files in my music collection but it's been a problem thats been bugging me for some time. I use <a title="http://slimdevices.com/" href="http://eccentric.cx/wordpress/slimdevices">SlimServer</a> for music listening and a few mp3s were not showing the proper tags even though I've triple checked the id3v2 tags. I ended up looking into the file itself and noticed right at the end of the file the tag information I had been trying to remove with the header <strong>APETAGEXÐ</strong> and with a little searching found that its an <a title="APEv2 tag" href="http://wiki.hydrogenaudio.org/index.php?title=APEv2">APEv2 tag</a> attached to the file. I did some searching for a program to remove it but I couldn't find anything non-windows, however there is a library in python that can work with them called <a title="Mutagen" href="http://www.sacredchao.net/quodlibet/wiki/Development/Mutagen">Mutagen</a>. So I ended up scripting up a little program to rid of the tag and now the files index properly.<br /><br />If anyone else is running into this problem you can install the <em>python-mutagen</em> package (in debian) and then use the following simple python script <a title="apetag-remove" href="/blogimages/20070125/apetag-remove.py">apetag-remove</a>.
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Thu, 25 Jan 2007 20:14 GMT</pubDate>
</item>
<item>
   <title>icedove/thunderbird lightning calendar extension on debian etch</title>
   <guid isPermaLink="false">general/icedovethunderbird_lightning_calendar_extension_on_debian_etch</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/icedovethunderbird_lightning_calendar_extension_on_debian_etch.ecc</link>
   <description><![CDATA[
I came across this problem of the lightning extension not working on a newly setup debian/etch machine. It would install the extension and seem to load it but it would not load any calendars or allow you to create a calendar. When creating a new calendar it would prompt you for the name but when clicking next nothing would happen. I originally thought it must be the profile I was using but after testing with a clean user it seemed that wasn't the issue either. I decided to try running sunbird on the machine since they are very similar apps and upon running it I got a useful error message!<br /><br /><em>error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory</em><br /><br />So it seems it was just missing the standard c++ library it needed. I ran apt-get install libstdc++5 and then uninstalled the extension and installed it again and now it works great.
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Wed, 22 Nov 2006 22:43 GMT</pubDate>
</item>
<item>
   <title>ide harddrive brands</title>
   <guid isPermaLink="false">general/ide_harddrive_brands</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/ide_harddrive_brands.ecc</link>
   <description><![CDATA[
There are many different brands of hard drives out there (although the number seems to be shrinking as they buy each other up) and it's always a bit of a toss up which brand to buy. The latest two brands I've been buying over the past couple of years have been seagate and western digital. I've had better luck with western digital in terms of reliability, however I think I've bought most of them more recently so that could be why. However as I RMA'ed my first western digital drive (a 160gig IDE) that died I found a good reason to buy western digital over seagate, and that is the RMA process.<br /><br />I had to RMA 3 or 4 seagate drives recently and the process has not been all that good. First the website to handle RMA's only works in IE 5 or 6 which is fine when your running windows but makes it impossible to use if your not on a MS platform. I did get them to manually create an RMA for me without much trouble by emailing their support, but still not very convenient. The next problem is getting the proper packaging for them RMA together so they'll accept it. Foam packaging and whatnot which isn't all that big of a problem but it's not anything I have around the house, and thus because I'm super lazy I still haven't done the RMA.<br /><br />The western digital RMA on the other hand worked perfectly in firefox and was also really easy to fill out and submit. They also offer advance replacement in which I can give them my credit card number, they will ship me a new drive, and I can then ship them this drive back (and as long as I do the credit card charge gets reversed). Which also means I can use the packaging they send the new drive in to send the dead drive back in.<br /><br />So in the realm of cheap IDE drives I think I'm going to stick with Western Digital since it seems like all IDE drives fail at one point or another but at least the Western Digital RMA process is really good.
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Mon, 30 Oct 2006 22:35 GMT</pubDate>
</item>
<item>
   <title>oprius</title>
   <guid isPermaLink="false">general/oprius</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/oprius.ecc</link>
   <description><![CDATA[
<p>Just came across this web application that handles contact/calendar/tasks managment through a slick web interface. It's also nice and free which is always a bonus. You can give it a try at <a href="http://oprius.com/">oprius.com</a></p>
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Mon, 14 Aug 2006 15:29 GMT</pubDate>
</item>
<item>
   <title>more firefox extensions</title>
   <guid isPermaLink="false">general/more_firefox_extensions</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/more_firefox_extensions.ecc</link>
   <description><![CDATA[
Here are a couple of firefox extensions I've been using lately that are really handy. I keep forgetting the names of them and end up wasting time trying to find them again so I figure if I blog them I'll know where to look next time...<br /><br /><a href="https://addons.mozilla.org/firefox/1122/"><strong>Tab Mix Plus</strong></a><br /><blockquote><br />Tab Mix Plus enhances Firefox's tab browsing capabilities. It includes such features as duplicating tabs, controlling tab focus, tab clicking options, undo closed tabs and windows, plus much more. It also includes a full-featured session manager with crash recovery that can save and restore combinations of opened tabs and windows.<br /></blockquote><br /><br /><br /><br /><a href="https://addons.mozilla.org/firefox/1027/"><strong>All-In-One Sidebar</strong></a><br /><blockquote><br />All-in-One Sidebar is a sidebar control, inspired by Opera's. It lets you quickly switch between sidebars, view dialog windows such as downloads, extensions, and more in the sidebar, or view source code or websites in the sidebar. It includes a slide-out button and a toolbar, all of which can be extensively customized.<br /></blockquote><br /><br /><br /><a href="https://addons.mozilla.org/firefox/2607/"><strong>Torrent Search</strong></a><br /><blockquote><br />Search Torrents in more then 26 Top Torrent Search engines...<br /></blockquote><br /><br />
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Sun, 13 Aug 2006 22:08 GMT</pubDate>
</item>
<item>
   <title>benq sux0rs</title>
   <guid isPermaLink="false">general/benq_sux0rs</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/benq_sux0rs.ecc</link>
   <description><![CDATA[
I bought an el'cheapo benq projector (the PB6100) at the end of October 2004. It's worked alright but I was having some trouble with a flicker in the picture a long while ago and after trying a bunch of things I read on the net without any improvement I emailed benq on Jan 4th 2006 with a description of my problem to see if it was something they could fix and if the unit was still under warranty or not. Anyways it went without a reply and I pretty much forgot about it and I never did fix the flicker and I've just learned to live with it and don't notice it so much anymore. Then today I get an email:<br /><br /><blockquote><br />Dear BenQ Customer,<br /><br />A BenQ Customer Service Engineer has replied to your inquiry!<br /><br />...<br /><br />--------------------Replied by CSD Neva Seelley at 2006/06/14 03:36:55--------------------<br />Sorry for the delay in reply, if you still have problems or questionsplease call 866-600-2367<br /></blockquote><br /><br />Just over 6 months and they reply? I kinda assumed my email got trashed or lost but then they reply? Ugh. Anyways long story short when the bulb in my projector dies I think I'll just go buy a new projector and make sure it's not a BenQ.
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Wed, 14 Jun 2006 02:39 GMT</pubDate>
</item>
<item>
   <title>IE .focus() problem</title>
   <guid isPermaLink="false">general/IE_.focus()_problem</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/IE_.focus%28%29_problem.ecc</link>
   <description><![CDATA[
Another problem I just came across was the .focus() call not working in IE after adding a new INPUT element. The page I'm working on uses a input box to type in a product number, does a lookup and if it finds the product it provides a quantity box and if not displays an error along with the input box again. After the input/quantity box is created and displayed I call .focus() so that the user can continue typing in products/quantities without having to use the mouse and select the input box. In IE this seems to not work as the .focus() call doesn't seem to be doing anything. I did some searching and was able to fix the problem by adding a .select() call after the .focus() call. This seems to have fixed the problem and it's working quite well now.
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Thu, 01 Jun 2006 21:29 GMT</pubDate>
</item>
<item>
   <title>adding rows to tables using Javascript+DOM in IE</title>
   <guid isPermaLink="false">general/adding_rows_to_tables_using_Javascript+DOM_in_IE</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/adding_rows_to_tables_using_Javascript%2BDOM_in_IE.ecc</link>
   <description><![CDATA[
I've been doing some website work recently and came across an annoyance while checking to see how the page was working in Internet Explorer. The problem showed up when I was trying to add a row of data to a table using the <a href="http://www.mochikit.org/doc/html/MochiKit/DOM.html">mochikit.DOM API</a>. After doing some google searching I finally found the problem and it seems when adding a row you have to encapslate it in a tbody tag in order for IE to render it. I'm not exactly sure why this is but it's sloved the problem.<br /><br />So instead of appending &lt;tr&gt;&lt;td&gt;data&lt;td&gt;&lt;tr&gt;  to the table I append &lt;tbody&gt;&lt;tr&gt;&lt;td&gt;data&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt; and it now works in IE.
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Thu, 01 Jun 2006 21:04 GMT</pubDate>
</item>
<item>
   <title>using reportlab forms for page numbers</title>
   <guid isPermaLink="false">general/using_reportlab_forms_for_page_numbers</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/using_reportlab_forms_for_page_numbers.ecc</link>
   <description><![CDATA[
I've been doing alot of work with <a href="http://www.reportlab.org/">reportlab</a> recently and a problem that I ran into was creating a pdf with page numbers in the form of <em>page x of y</em>. After some digging around I found some posts about people talking about using forms to store the page number and referencing those on each page. However I couldn't find a working example and since I didn't have any experience with reportlab forms it took a while to finally get it working how I wanted. Anyways, I thought I'd post my findings as they might be useful to someone else trying to do the same.<br /><br />Basicly I started by using an example I found in the reportlab user mailing lists to create a flowable which I append to the document at the very end. This creates the form and draws the last page number.<br /><pre>class lastPageNumberFlowable(Flowable):<br /><br />	def __init__(self, xoffset = 0, yoffset = 0):<br />		Flowable.__init__(self)<br />		self._xoffset = xoffset<br />		self._yoffset = yoffset<br /><br />	def draw(self):<br />		canvas = self.canv<br />		if not canvas.hasForm("lastPageNumber"):<br />			canvas.beginForm('lastPageNumber')<br />			canvas.setFont('Times-Roman',9)<br />			canvas.drawString(PAGE_WIDTH - 2.2 * cm, 2 * cm, "%d" % (doc.page, ))<br />			canvas.endForm()<br />		<br />Story.append(lastPageNumberFlowable())<br /><br />doc.build(Story, onFirstPage=myFirstPage, onLaterPages=myLaterPages)<br /></pre><br /><br />Then in the myLaterPages function I call doForm which writes the last page number on the page, and I also write the <em>Page x of</em> string just before it.<br /><br /><pre><br />def myLaterPages(canvas, doc):<br />	canvas.saveState()<br />	canvas.doForm('lastPageNumber')<br />	canvas.setFont('Times-Roman',9)<br />	canvas.drawRightString(PAGE_WIDTH - 2.3 * cm, 2 * cm, "Page %d of" % (doc.page, ))<br />	canvas.restoreState()<br /></pre><br /><br />And I include the same thing in the myFirstPage function as well. This produces a Page x of y string on each page which also formats well enough due to the way the strings get drawn left and right of a specific point (it expands properly with more than single digit page numbers). <br /><br />I've created a working example which you can download. Run it and provide a filename and it will create a pdf with page x of y page numbers.<br /><a href="images/20060404/reportlab_pageof_example.py">reportlab_pageof_example.py</a>
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Tue, 04 Apr 2006 16:59 GMT</pubDate>
</item>
<item>
   <title>imdb change to cover url breaking imdbpy</title>
   <guid isPermaLink="false">general/imdb_change_to_cover_url_breaking_imdbpy</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/imdb_change_to_cover_url_breaking_imdbpy.ecc</link>
   <description><![CDATA[
I setup a script a while back using the <a href="http://imdbpy.sourceforge.net/">imdbpy</a> module for python which simply allows you to search and pull movie data from the <a href="http://www.imdb.com/">imdb</a> website. One specific way in which I was using it was to pull the cover url and download it locally to save a copy of the image for local access. This recently broke about a week or so ago and I just got around to digging around for a fix. I couldn't find any information about it online, but after inspecting the html parser from the imdbpy module I noticed it was finding the coverurl by parsing the html img tag on the site with the alt tag of "cover". I suspect imdb used to tag the cover like this, but recently moved to using the alt tag of the title of the movie instead. So I modified the <em>/usr/lib/python2.3/site-packages/imdb/parser/http/movieParser.py</em> file on my system and changed the following code on line 381 (or just search for cover):<br /><br /><code>elif alttex == 'cover':</code><br />to<br /><code>elif alttex == self.__movie_data.get('title').lower():</code><br /><br /> Saved the file and everything works like a charm again. 
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Tue, 31 Jan 2006 07:54 GMT</pubDate>
</item>
<item>
   <title>bfg 6600gt oc + Zalman VF700-Cu</title>
   <guid isPermaLink="false">general/bfg_6600gt_oc_+_Zalman_VF700-Cu</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/bfg_6600gt_oc_%2B_Zalman_VF700-Cu.ecc</link>
   <description><![CDATA[
I purchased a <a href="http://www.bfgtech.com/6600GT.html">BFG 6600 GT OC</a> a few days ago for use in my work machine that I dual boot into window for playing lan games from time to time. I quickly realized that the video card was by far the loudest component in my PC and was starting to bother me so I went looking for some way to help quiet it down. The best solution I found was the <a href="http://www.zalman.co.kr/eng/product/view.asp?idx=149&code=013">Zalman VF700-Cu</a> and so I went out and purcased one from <a href="http://www.kingstoncomputerplanet.com/">KCP</a> and installed it tonight. I did some searching around earlier to see if this heatsink/fan was compatible with the BFG card and didn't find a whole lot of details besides the fact that it should fit ok. <br /><br />So anyways, I got it home and went about installing it onto the card. My biggest problem was trying to get the old heatsink off which I was trying to do by using a pair of plyers and getting the little plastic pegs back through the pcb board. After trying that for about 5 minutes I gave up and used some wire cutters and just sniped the ends of which was a whole lot easier. You can push the hooks through to make them stick out from the card a little more which makes it easier to get a pair of cutters in there and then just snip the ends of. After getting the heatsink of I went about installing the ramsinks which I quickly realized don't fit on the memory along with the actual gpu heatsink, and thus I just left them off since there was never anything on them before anyways. I did manage to get one mostly covering the one memory bank and since it was stuck on there pretty good I left it (as you can see in the picture). Other than those two problems the install was very easy and just required following the instructions. I've got the fan hooked up to the 5V output from the attached fan controller which makes it run very quite (I can't hear it over the hard drive anyways). The 12V output probably helps cooling alot but does produce alot more noise obviously. I loaded up some counter strike source and it played without any problems, and the machine has been running now for hours without any issues. <br /><br />Here is a before and after shot of the card:<br /><br /><a href="http://eccentric.cx/blogimages/20060116/bfg6600gtoc-stock-high.jpg" title="bfg 6600gt oc stock"><img src="http://eccentric.cx/blogimages/20060116/bfg6600gtoc-stock.jpg" width="500" height="318" alt="bfg 6600gt oc stock" title="bfg 6600gt oc stock" /></a><br /><br /><a href="http://eccentric.cx/blogimages/20060116/bfg660gtoc-zalman-high.jpg" title="bfg 6600 gt oc with zalman vf700-cu"><img src="http://eccentric.cx/blogimages/20060116/bfg660gtoc-zalman.jpg" width="500" height="362" alt="bfg 6600 gt oc with zalman vf700-cu" title="bfg 6600 gt oc with zalman vf700-cu" /></a><br />
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Tue, 17 Jan 2006 03:29 GMT</pubDate>
</item>
<item>
   <title>firefox plugins</title>
   <guid isPermaLink="false">general/firefox_plugins</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/firefox_plugins.ecc</link>
   <description><![CDATA[
On the topic of annoyances I thought I'd do a quick post of the firefox plugins I've been using to help keep my browsing experience sane.<br /><br /><b><a href="http://flashblock.mozdev.org/">Flashblock</a></b><br />I used to just not install flash which worked quite well, but there are lots of places where you need it installed just to navigate the page, and there are some good uses of flash out there that you might still want to see. From the page, "Flashblock is an extension for the Mozilla, Firefox, and Netscape browsers that takes a pessimistic approach to dealing with Macromedia Flash content on a webpage and blocks ALL Flash content from loading. It then leaves placeholders on the webpage that allow you to click to download and then view the Flash content.". It works very well, and speeds up browsing since your not downloading the mostly useless flash content (or ads).<br /><br /><b><a href="http://www.noscript.net/whats">NoScript</a></b><br />"NoScript provides extra protection for your Mozilla/Firefox or Flock browser: this extension allows JavaScript and Java execution only for trusted domains of your choice (e.g. your home-banking web site).". I've been using this for the past week or so and it's been working great. You end up having to allow a bunch of sites that you end up going to alot when you first start using it, but after that things work swimmingly.<br /><br /><b><a href="http://adblock.mozdev.org/">Adblock</a></b><br />"Adblock is a content filtering plug-in for the Mozilla and Firebird browsers. It is both more robust and more precise than the built-in image blocker.". Not to much else to say about this one. It works well and webpages look sooo much better without advertising.
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Wed, 14 Dec 2005 16:57 GMT</pubDate>
</item>
<item>
   <title>comment spam</title>
   <guid isPermaLink="false">general/comment_spam</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/comment_spam.ecc</link>
   <description><![CDATA[
I've been getting a whole lot of comment spam for the past few months and it's really starting to get on my nerves so I've hired the help of a plugin called <a href="http://uberdork.supertwist.net/2005/03/13/plug-it-in-plug-it-in/">secureimage</a> which now adds one of those semi-annoying hard to read images that you have to type in before you can place a comment (unless you have an account in which case it isn't required). I'm still going to keep on comment moderation for the time being but if it works well I'm hoping I can turn that off. <br /><br />The plugin itself is pretty cool and uses imagemagik's convert untility to create the image. It adds a secureimage options tab in the options area of the wordpress administration as well which allows you to modify all the parameters of the image creation (by default it uses 8 character strings, so I turned that down to 3-5 characters). 
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Tue, 13 Dec 2005 16:31 GMT</pubDate>
</item>
<item>
   <title>acer al1916w</title>
   <guid isPermaLink="false">general/acer_al1916w</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/acer_al1916w.ecc</link>
   <description><![CDATA[
<img src="http://eccentric.cx/blogimages/20051114/acer-al1916w.jpg" width="250" height="250" alt="Acer AL1916W" title="Acer AL1916W" /><br />I purchased my first LCD monitor for myself tonight after seeing this Acer AL1916W on for $375 CAD at <a href="http://www.kingstoncomputerplanet.com/">Kingston Computer Planet</a> here in town. I was a little sceptical about it since it's pretty cheap for a widescreen lcd, but it turns out so far that it's a pretty sweet deal. I set it up and the image quaility is quite alot better than I expected and the 1440x900 resolution is very nice to work in. It's very chrisp, bright and has a much better image than the Viewsonic g220f CRT that it's replacing. Great deal if your looking for a widescreen lcd monitor.<br /><br />I had a bit of trouble finding information about running 1440x900 resolution in linux and it required me to setup a modeline for this specific monitor. I took an existing modeline I found for some laptop and just modified it to work with the specifics for this monitor that are listed in the manual. Insert the following into the "Monitor" section of the XF86Config-4 (or xorg.conf depending)<br /><br /><code>HorizSync       30-82<br />VertRefresh     56-76<br />Modeline "1440x900" 106.5 1440 1520 1672 1904 900 901 904 932 -HSync +VSync<br /></code><br /><br />And set your resolution to 1440x900. Press the autoconfig button on the monitor after your running in the new resolution and everything should look pretty sweet.
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Tue, 15 Nov 2005 01:31 GMT</pubDate>
</item>
<item>
   <title>linux hawg</title>
   <guid isPermaLink="false">general/linux_hawg</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/linux_hawg.ecc</link>
   <description><![CDATA[
I was cleaning up some stuff the other day and came across this pdf about Linux called <a href="/linux_hawg.pdf">The Hole Hawg of Operating Systems</a> that someone sent to me a long time ago. It's a really good explantion of linux in the form of a analogy about a tool called the Hole Hawg. If you haven't read it before, it's worth checking out as it's a very good explanation :) <br /><br />Update: I quickly <a href="/linux_hawg.html">converted it to html</a> as well since it wasn't really necessary as a pdf.
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Tue, 08 Nov 2005 05:47 GMT</pubDate>
</item>
<item>
   <title>darth vader</title>
   <guid isPermaLink="false">general/darth_vader</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/darth_vader.ecc</link>
   <description><![CDATA[
Thought I'd post some random image to liven up the page a little bit. This is my son going all vader with a light saber... And on that note if you haven't read the <a href="http://darthside.blogspot.com/">darth vader blog</a> before, and you enjoy star wars, you probably should :) <br /><br /><a href="http://eccentric.cx/blogimages/20051105/landon-red-saber.jpg"><img src="http://eccentric.cx/blogimages/20051105/_landon-red-saber.jpg" width="300" height="199" alt="light saber action" title="light saber action"  /></a>
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Sat, 05 Nov 2005 07:48 GMT</pubDate>
</item>
<item>
   <title>panoramio</title>
   <guid isPermaLink="false">general/panoramio</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/panoramio.ecc</link>
   <description><![CDATA[
Came across <a href="http://www.panoramio.com/">panoramio.com</a> in my random browsing. It's kind of a neat idea although I'm not sure what use it has, or how it'll work out in the long run. (i see people posting alot of crap and whatnot to it). It's a neat piece of technology though. <br />
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Sat, 05 Nov 2005 07:37 GMT</pubDate>
</item>
<item>
   <title>flock</title>
   <guid isPermaLink="false">general/flock</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/flock.ecc</link>
   <description><![CDATA[
<p>I noticed the <a href="http://www.flock.com/">flock</a> developer preview is out today. Just installed it here now, and I'm posting from it's blog feature in the browser. It's pretty sexy, and probably worth a look see if your intrested in that kind of thing.<br /></p>
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Fri, 21 Oct 2005 20:11 GMT</pubDate>
</item>
<item>
   <title>us dollar</title>
   <guid isPermaLink="false">general/us_dollar</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/us_dollar.ecc</link>
   <description><![CDATA[
This is getting pretty crazy. I just sorta randomly noticed this on my credit card statement just now, but I have purcahses in US dollars and it shows the exchange rate:<br /><br />Aug 22nd - 1.2360<br />Aug 29th - 1.2301<br />Sep 28th - 1.2066<br />Sep 30th - 1.1931<br />Oct 1st - 1.1929<br /><br />Thats a pretty consistent drop. Maybe someday soon the canadian loonie will be worth more than a us dollar :) 
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Thu, 06 Oct 2005 00:06 GMT</pubDate>
</item>
<item>
   <title>vonage voip</title>
   <guid isPermaLink="false">general/vonage_voip</guid>
   <link>http://eccentric.cx/cgi-bin/pyblosxom.cgi/general/vonage_voip.ecc</link>
   <description><![CDATA[
Well, I went and purchased a <a href="http://vonage.ca/">Vontage</a> voice over ip account sometime last week and the hardware came over the weekend. So far I've been pretty happy with it. The quality is quite good. The one thing I didn't really think about when I purchased it is that they don't have a hub in Kingston, and thus I can't get a local number. So anyone calling me is technically dialing long distance to Ottawa right now in order to reach me. However, I don't really mind too much as it will keep people from calling me as much. The main reason I bought it is that it's alot cheaper than bell ($19.95 /month) and it has some really good long distance rates overseas. Specifically Ethiopia where my girlfriend is right now. With this phone is $0.59/minute where as bell is $3 a minute without a long distance plan or $1.55 a minute with a long distance plan. So all in all I'm very happy with it, and if they get a hub in Kingston at some point it'll be just perfect. 
]]></description>
   <category domain="http://eccentric.cx/cgi-bin/pyblosxom.cgi"></category>
   <pubDate>Tue, 04 Oct 2005 03:25 GMT</pubDate>
</item>
</channel>
</rss>
