<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Lastkarrde.com</title>
	
	<link>http://lastkarrde.com</link>
	<description>Python, Javascript, PHP, Linux</description>
	<pubDate>Fri, 17 Apr 2009 22:24:46 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Lastkarrdecom" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Desktop Translator</title>
		<link>http://feedproxy.google.com/~r/Lastkarrdecom/~3/3L3Kwnx-1qM/</link>
		<comments>http://lastkarrde.com/2009/04/desktop-translator/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 20:40:53 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lastkarrde.com/?p=299</guid>
		<description><![CDATA[I&#8217;ve created an easy to use cross platform desktop translator using the Titanium runtime. It&#8217;s powered by Google&#8217;s Language APIs so you can translate over 40 languages accurately. No ads, no spyware and no premium version. It&#8217;s exactly the same on all platforms.

Download

Windows
Mac (10.5+)
Linux

Titanium App Page
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve created an easy to use cross platform desktop translator using the Titanium runtime. It&#8217;s powered by Google&#8217;s Language APIs so you can translate over 40 languages accurately. No ads, no spyware and no premium version. It&#8217;s exactly the same on all platforms.</p>
<p><img class="aligncenter size-full wp-image-300" title="screenshot_007" src="http://lastkarrde.com/wp-content/uploads/2009/04/screenshot_007.png" alt="screenshot_007" width="598" height="550" /></p>
<h3>Download</h3>
<ul>
<li><a href="http://get.titaniumapp.com/h2GGJnl">Windows</a></li>
<li><a href="http://get.titaniumapp.com/F2GGJnh">Mac (10.5+)</a></li>
<li><a href="http://get.titaniumapp.com/v2GGJmQ">Linux</a></li>
</ul>
<p><a href="http://get.titaniumapp.com/app/D2GG3MJ">Titanium App Page</a></p>
<img src="http://feeds.feedburner.com/~r/Lastkarrdecom/~4/3L3Kwnx-1qM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lastkarrde.com/2009/04/desktop-translator/feed/</wfw:commentRss>
		<feedburner:origLink>http://lastkarrde.com/2009/04/desktop-translator/</feedburner:origLink></item>
		<item>
		<title>Titanium App - Python Integration Example</title>
		<link>http://feedproxy.google.com/~r/Lastkarrdecom/~3/HtILZgHsdCY/</link>
		<comments>http://lastkarrde.com/2009/03/titanium-app-python-integration-example/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 23:04:15 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[titanium]]></category>

		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://lastkarrde.com/?p=250</guid>
		<description><![CDATA[Titanium App Pre-Release 2 has just hit the shelves. This release includes Python and Ruby support/integration. As of today there is little documented and no examples about Python integration so in this tutorial I&#8217;ll show you how to make a basic application that:

Set up Python imports
Allows Python classes to be called in Javascript

This isn&#8217;t a [...]]]></description>
			<content:encoded><![CDATA[<p>Titanium App Pre-Release 2 has just hit the shelves. This release includes Python and Ruby support/integration. As of today there is little documented and no examples about Python integration so in this tutorial I&#8217;ll show you how to make a basic application that:</p>
<ul>
<li>Set up Python imports</li>
<li>Allows Python classes to be called in Javascript</li>
</ul>
<p>This isn&#8217;t a beginners guide to Titanium, nor is it a tutorial in Python. The App itself has alot of flaws, you need to enter the full wikipedia URL (which is counter-productive) and if the &#8216;Page is up for citation&#8217; it doesn&#8217;t work. Feel free to develop/redistribute a better version. The tutorial is intended to show you Python/Titanium integration.</p>
<p><object width="425" height="344" data="http://www.youtube.com/v/Y7smjk7iuug&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Y7smjk7iuug&amp;hl=en&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /></object>&#8216;</p>
<p>The <span style="text-decoration: line-through;">well designed</span> final product.</p>
<h2>Getting Titanium</h2>
<p>The first step is to get Titanium itself. It has native packages for Mac, Linux and Windows. <a href="http://titaniumapp.com/download">Titanium Download Page</a>. You can also build the latest and greatest version from source on <a href="http://github.com/marshall/titanium/tree/master">github</a>. Create a new project. As of PR2 you can choose to include Javascript libraries in your project. These link off Google APIs which are horribly slow compared to including the library locally. I believe in future releases the libraries will be bundled with the application itself. For now I recommend downloading your own copy of jQuery and including it yourself.</p>
<h2>First Steps</h2>
<p>We&#8217;re going to need jQuery so download yourself a copy and put it in the Resources directory. Open up <em>index.html</em> and include jQuery..</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;jquery.js&quot;</span> type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>The CSS</p>

<div class="wp_syntax"><div class="code"><pre class="css css" style="font-family:monospace;">body<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#292929</span>;color<span style="color: #00AA00;">:</span><span style="color: #993333;">white</span><span style="color: #00AA00;">&#125;</span> <span style="color: #cc00cc;">#content</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">black</span>; <span style="color: #00AA00;">&#125;</span> a <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span>orange;<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>And set the HTML..</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;h1&gt;Quicky&lt;/h1&gt;
&lt;p&gt;
	&lt;input type=&quot;text&quot; id=&quot;f1&quot; style=&quot;width:300px;&quot; /&gt;
	&lt;input type=&quot;submit&quot; id=&quot;s1&quot; value=&quot;Look up Wiki Page&quot; /&gt;
&lt;/p&gt;
&lt;div id=&quot;content&quot;&gt;
&nbsp;
&lt;/div&gt;</pre></div></div>

<h2>Code Logic</h2>
<p>When the &#8220;Look up Wiki Page&#8221; is clicked, Javascript will capture the value of the form and send it to a Python function. We will then capture the response in Javascript and display it on the page.</p>
<h2>The Python</h2>
<p>For the application we are going to use the python library <a href="http://pyquery.org/">pyQuery</a>. It makes selecting HTML elements and getting their values a breeze. Download it and put the directory containing the pyquery files in the <em>Resources</em> directory. As of PR2 (march 4th, 09) Python <em>import</em>s do not work properly. They don&#8217;t check for the file specified in the local directory but do check the Titanium&#8217;s python path. To get around this we can just add the Resources directory to the python path. We want to add the below code to our <em>Index.html</em> file so we need to wrap it in script tags.</p>

<div class="wp_syntax"><div class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>script <span style="color: #008000;">type</span>=<span style="color: #483d8b;">&quot;text/python&quot;</span><span style="color: #66cc66;">&gt;</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>, <span style="color: #dc143c;">sys</span>
resources_dir = Titanium.<span style="color: black;">App</span>.<span style="color: black;">appURLToPath</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;app://index.html&quot;</span><span style="color: black;">&#41;</span>
resources_dir = <span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span>resources_dir<span style="color: black;">&#41;</span><span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span>
<span style="color: #dc143c;">sys</span>.<span style="color: black;">path</span>.<span style="color: black;">append</span><span style="color: black;">&#40;</span>resources_dir<span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&lt;</span>/script<span style="color: #66cc66;">&gt;</span></pre></div></div>

<p>We are going to write our own file/class for the wiki &#8220;scraper&#8221;. In <em>Resources</em> create a new file called <em>wiki.py</em></p>

<div class="wp_syntax"><div class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>, <span style="color: #dc143c;">sys</span>
<span style="color: #ff7700;font-weight:bold;">from</span> pyquery <span style="color: #ff7700;font-weight:bold;">import</span> PyQuery as pq
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">urllib</span> <span style="color: #ff7700;font-weight:bold;">import</span> FancyURLopener
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> MyOpener<span style="color: black;">&#40;</span>FancyURLopener<span style="color: black;">&#41;</span>:
	version = <span style="color: #483d8b;">'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> WikiGet:
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">def</span> fetch<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,url<span style="color: black;">&#41;</span>:
&nbsp;
		myopener = MyOpener<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
		page = myopener.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>url<span style="color: black;">&#41;</span>
		read = page.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
		d = pq<span style="color: black;">&#40;</span>read<span style="color: black;">&#41;</span>
		output = d<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;p:first&quot;</span><span style="color: black;">&#41;</span>.<span style="color: black;">html</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
		<span style="color: #ff7700;font-weight:bold;">return</span> output</pre></div></div>

<p>Our <em>fetch</em> method takes the parameter url, which will be &#8220;declared&#8221; by Javascript. We need to declare our own urllib class as Wikipedia requires a genuine user agent (otherwise a 403). As you can see the <span style="text-decoration: line-through;">poorly written</span> hackish code, we grab the first paragraph element on the page. We then <em>return</em> output. <strong><em>print</em>ing does not work!</strong></p>
<p>Back in <em>Resources/Index.html</em> we need to include the wiki class that we just wrote. We can do this with a basic Python import. (The below code goes after the import &#8216;hack&#8217; we wrote above). To use our Python class that we just wrote, we need to expose it to the API. To do that we attach the class to the window object. In this example we are attaching a class but it can easily be a method or variable.</p>

<div class="wp_syntax"><div class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> wiki <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span>
&nbsp;
window.<span style="color: black;">wiki</span> = WikiGet<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Thats the last of the Python code, we can finish it up in Javascript . The below code is jQuery, when the HTML submit button is pressed it gets the value from the form and sends it to the method fetch. Remember in the code above we attached the <em>WikiGet()</em> Python class to <em>window.wiki</em>? We can now access that in Javascript through <em>wiki</em> (ignoring the window. prefix). Since <em>fetch()</em> was a method of our class, we call it normally (<em>class.method</em>). We pass the parameter (the wikipedia URL) and save the output in the variable <em>result</em>. Finally we set the <em>div#content</em>&#8217;s innerHTML to <em>result</em>.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #006600;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#s1&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
from_form <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#f1&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006600;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
result <span style="color: #339933;">=</span> wiki.<span style="color: #006600;">fetch</span><span style="color: #009900;">&#40;</span>from_form<span style="color: #009900;">&#41;</span>;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#content&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006600;">html</span><span style="color: #009900;">&#40;</span>result<span style="color: #009900;">&#41;</span>;
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Thats it. If you&#8217;ve got any questions/comments about the post, Titanium or Python/Titanium integration. Please post them.</p>
<img src="http://feeds.feedburner.com/~r/Lastkarrdecom/~4/HtILZgHsdCY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lastkarrde.com/2009/03/titanium-app-python-integration-example/feed/</wfw:commentRss>
		<feedburner:origLink>http://lastkarrde.com/2009/03/titanium-app-python-integration-example/</feedburner:origLink></item>
		<item>
		<title>Flash 10 on 64 Bit Linux</title>
		<link>http://feedproxy.google.com/~r/Lastkarrdecom/~3/dqTrnqicGsg/</link>
		<comments>http://lastkarrde.com/2009/01/flash-10-on-64-bit-linux/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 20:13:52 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[sidux]]></category>

		<guid isPermaLink="false">http://lastkarrde.com/?p=236</guid>
		<description><![CDATA[I recently installed the 64 bit version of Sidux, a Debian based Linux distro, on my desktop. Sidux uses bleeding edge packages, the opposite of Debian Etch. I&#8217;ve always used a 32 bit distro and flash installation has always been straight foward. Flash 10 was recently released and Adobe offer a native Linux 64bit version. [...]]]></description>
			<content:encoded><![CDATA[<p>I recently installed the 64 bit version of Sidux, a Debian based Linux distro, on my desktop. Sidux uses bleeding edge packages, the opposite of Debian Etch. I&#8217;ve always used a 32 bit distro and flash installation has always been straight foward. Flash 10 was recently released and Adobe offer a native Linux 64bit version. It&#8217;s pretty easy to install.<br />
Download it from the <a href="http://labs.adobe.com/downloads/flashplayer10.html">Adobe website</a>.</p>
<p>Close Firefox/Iceweasel</p>
<p>Extract it, then copy it to the <em>~/.mozilla/plugins/ directory</em></p>
<p>Restart Firefox/Iceweasel</p>
<img src="http://feeds.feedburner.com/~r/Lastkarrdecom/~4/dqTrnqicGsg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lastkarrde.com/2009/01/flash-10-on-64-bit-linux/feed/</wfw:commentRss>
		<feedburner:origLink>http://lastkarrde.com/2009/01/flash-10-on-64-bit-linux/</feedburner:origLink></item>
		<item>
		<title>Python IRC Bot using Twisted</title>
		<link>http://feedproxy.google.com/~r/Lastkarrdecom/~3/SIbPToFq9Mg/</link>
		<comments>http://lastkarrde.com/2009/01/python-irc-bot-using-twisted/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 23:37:37 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Add new tag]]></category>

		<guid isPermaLink="false">http://lastkarrde.com/?p=219</guid>
		<description><![CDATA[I wanted to make an IRC bot for some channels I&#8217;m on that can do &#8216;useful&#8217; things. A not-so-useful but still pretty cool thing was tweeting from within IRC. The system isn&#8217;t dynamic - you need to hard code the twitter account&#8217;s username and password in but it works. I figure this will be useful [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to make an IRC bot for some channels I&#8217;m on that can do &#8216;useful&#8217; things. A not-so-useful but still pretty cool thing was tweeting from within IRC. The system isn&#8217;t dynamic - you need to hard code the twitter account&#8217;s username and password in but it works. I figure this will be useful in a collabarated project - you don&#8217;t need to give everyone the password to the twitter account, but they can still post to it. This isn&#8217;t going to be a redistributable bot, its a hack.</p>
<p>I&#8217;m basing my bot off of one provided by Twisted in their demos. <a href="http://twistedmatrix.com/projects/words/documentation/examples/ircLogBot.py">Linky</a>. It logs messages said in the channel to a file, which is a must for any bot. Building on that, it&#8217;s fairly easy to implement posting to twitter. We need to import a couple more Python modules. re (regular expressions) comes with Python, you need to download python-twitter and install it from <a href="http://code.google.com/p/python-twitter/">here</a>.</p>

<div class="wp_syntax"><div class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">re</span>
<span style="color: #ff7700;font-weight:bold;">import</span> twitter</pre></div></div>

<p>Around line 100 there is:</p>

<div class="wp_syntax"><div class="code"><pre class="python python" style="font-family:monospace;">        <span style="color: #ff7700;font-weight:bold;">if</span> msg.<span style="color: black;">startswith</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">nickname</span> + <span style="color: #483d8b;">&quot;:&quot;</span><span style="color: black;">&#41;</span>:
            msg = <span style="color: #483d8b;">&quot;Hello %s I am powered by Python&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: #dc143c;">user</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">msg</span><span style="color: black;">&#40;</span>channel, msg<span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">logger</span>.<span style="color: black;">log</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&lt;%s&gt; %s&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">nickname</span>, msg<span style="color: black;">&#41;</span></pre></div></div>

<p>We can copy that block of code and use it to build additional &#8216;modules&#8217; on. Just after that block we can start building our Twitter poster. We want the user to input <em>~twitter &#8220;message here&#8221;</em>.</p>

<div class="wp_syntax"><div class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">if</span> msg.<span style="color: black;">startswith</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;~tweet&quot;</span><span style="color: black;">&#41;</span>:</pre></div></div>

<p>We then need to get the text they are tweeting. We can do this with a rough regular expression.</p>

<div class="wp_syntax"><div class="code"><pre class="python python" style="font-family:monospace;">tweet = <span style="color: #dc143c;">re</span>.<span style="color: black;">findall</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'&quot;(.*?)&quot;'</span>, msg<span style="color: black;">&#41;</span></pre></div></div>

<p>Now that we&#8217;ve got the message we can easily post it to twitter.</p>

<div class="wp_syntax"><div class="code"><pre class="python python" style="font-family:monospace;">api = twitter.<span style="color: black;">Api</span><span style="color: black;">&#40;</span>username=<span style="color: #483d8b;">'twitter_username'</span>, password=<span style="color: #483d8b;">'twitter_password'</span><span style="color: black;">&#41;</span> 
status = api.<span style="color: black;">PostUpdate</span><span style="color: black;">&#40;</span>tweet<span style="color: black;">&#41;</span></pre></div></div>

<p>The message has posted, let&#8217;s return a message to the channel saying that the tweet was successful and log it.</p>

<div class="wp_syntax"><div class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #008000;">self</span>.<span style="color: black;">msg</span><span style="color: black;">&#40;</span>channel, <span style="color: #483d8b;">'Tweet Sent'</span><span style="color: black;">&#41;</span>
<span style="color: #008000;">self</span>.<span style="color: black;">logger</span>.<span style="color: black;">log</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&lt;%s&gt; %s&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">nickname</span>, <span style="color: #483d8b;">'Tweet Sent'</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>At the moment it&#8217;s pretty basic. Anyone can say ~tweet &#8220;I am an idiot&#8221; and it wll appear on your twitter page. We can easily setup nick name authentication.</p>

<div class="wp_syntax"><div class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">user</span> == <span style="color: #483d8b;">'ircnickname'</span>:</pre></div></div>

<p>So, the full code.</p>

<div class="wp_syntax"><div class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">user</span> == <span style="color: #483d8b;">'nickname'</span>:
      <span style="color: #ff7700;font-weight:bold;">if</span> msg.<span style="color: black;">startswith</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;~tweet&quot;</span><span style="color: black;">&#41;</span>:
&nbsp;
	    tweet = <span style="color: #dc143c;">re</span>.<span style="color: black;">findall</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'&quot;(.*?)&quot;'</span>, msg<span style="color: black;">&#41;</span>
	    api = twitter.<span style="color: black;">Api</span><span style="color: black;">&#40;</span>username=<span style="color: #483d8b;">'twitter_username'</span>, password=<span style="color: #483d8b;">'twitter_password'</span><span style="color: black;">&#41;</span> 
&nbsp;
	    status = api.<span style="color: black;">PostUpdate</span><span style="color: black;">&#40;</span>tweet<span style="color: black;">&#41;</span>
&nbsp;
            <span style="color: #008000;">self</span>.<span style="color: black;">msg</span><span style="color: black;">&#40;</span>channel, <span style="color: #483d8b;">'Tweet Sent'</span><span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">logger</span>.<span style="color: black;">log</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&lt;%s&gt; %s&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">nickname</span>, <span style="color: #483d8b;">'Tweet Sent'</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></div></div>

</pre>
<p>I&#8217;ll be writing some more &#8216;modules&#8217; and posting them later.</p>
<p>Enjoy <img src='http://lastkarrde.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/Lastkarrdecom/~4/SIbPToFq9Mg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lastkarrde.com/2009/01/python-irc-bot-using-twisted/feed/</wfw:commentRss>
		<feedburner:origLink>http://lastkarrde.com/2009/01/python-irc-bot-using-twisted/</feedburner:origLink></item>
		<item>
		<title>New Sciphone Firmware Release, i68+</title>
		<link>http://feedproxy.google.com/~r/Lastkarrdecom/~3/f1AmI_ql7Ys/</link>
		<comments>http://lastkarrde.com/2009/01/new-sciphone-firmware-release-i68/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 20:18:11 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[android]]></category>

		<category><![CDATA[sciphone]]></category>

		<guid isPermaLink="false">http://lastkarrde.com/?p=202</guid>
		<description><![CDATA[A few months ago I bought my Sciphone from DealExtreme for $130 ish USD. Since then a new online store, mysciphoneshop.com, has appeared and it offers a wider range of Sciphones including replacement screens, cables, headphones and a wider range of phones themselves. They offer a newer version of the Sciphone i68+ , which I [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago I bought my Sciphone from DealExtreme for $130 ish USD. Since then a new online store, mysciphoneshop.com, has appeared and it offers a wider range of Sciphones including replacement screens, cables, headphones and a wider range of phones themselves. They offer a newer version of the Sciphone i68+ , which I bought from DealExtreme, for $120 which is $10 less. From the looks of things it&#8217;s faster, slimmer and it allows you to change the icons on your &#8216;desktop&#8217; and background image. They also offer a Sciphone that comes with the Google Android operating system and it has Wifi! It has a 1500 mAh battery, apposed to the i68+&#8217;s 1200 mAh so it should last just as long, if not longer. This Android phone is $175, a bargain. Wifi, Android and no contract. If my current i68+ breaks down, I&#8217;m probably going to buy one of those.</p>
<img src="http://feeds.feedburner.com/~r/Lastkarrdecom/~4/f1AmI_ql7Ys" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lastkarrde.com/2009/01/new-sciphone-firmware-release-i68/feed/</wfw:commentRss>
		<feedburner:origLink>http://lastkarrde.com/2009/01/new-sciphone-firmware-release-i68/</feedburner:origLink></item>
		<item>
		<title>Introduction To Django</title>
		<link>http://feedproxy.google.com/~r/Lastkarrdecom/~3/o7J2Ckb2pSE/</link>
		<comments>http://lastkarrde.com/2009/01/introduction-to-django/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 18:48:49 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://lastkarrde.com/?p=198</guid>
		<description><![CDATA[Over the past few months I&#8217;ve been using the Django Web Framework more and more. It&#8217;s completely different from PHP (My previous server side language of choice). At first it was difficult, learning Python&#8217;s syntax, knowing what libraries to import and Django specific issues/requirements/aspects but now it feels as if I&#8217;m over the barrier. I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past few months I&#8217;ve been using the Django Web Framework more and more. It&#8217;s completely different from PHP (My previous server side language of choice). At first it was difficult, learning Python&#8217;s syntax, knowing what libraries to import and Django specific issues/requirements/aspects but now it feels as if I&#8217;m over the barrier. I&#8217;ve found the Django community alot smaller than PHP, yet alot more skilled and helpful.  Below are some aspects I found hard and some resources to get you started learning Django.</p>
<p>Coming from a PHP background there were several aspects of Django that I found completely foreign. Some things to remember:</p>
<ul>
<li>Django runs with a MVT (Model, View, Template) architecture. Most PHP frameworks use a MVC (Model, View , Controller) and pure PHP doesn&#8217;t have any structure.</li>
<li>Django is a Python framework, not a language. Because it is a framework you need to follow the MTV structure that they provide. There is very little room to &#8216;do your own thing&#8217;. Fortunately their system rocks and you&#8217;d be crazy to try and change it.</li>
<li>As Django is a Python framework you inherit all of the libraries and good things Python provides. You can use any module - PIL (Python Imaging Library) , Beautiful Soup (HTML parsing) as well as audio and visual processing libraries. This makes Django even more powerful!</li>
<li>Don&#8217;t try and code everything from scratch. <a href="http://djangoplugables.com/projects/">Django Pluggables</a> has reusable apps ranging from forums to graphing utilities as well as OpenID integration. All of these are extremely well coded and you can download them, set them up, and run from there.</li>
<li>Hosting your Django app is very different to hosting a PHP app. Python isn&#8217;t officially supported by cPanel so you won&#8217;t be able to use most shared webhosts. The select few shared companies have an incredible reputation. VPS hosting is advised as you need your own dedicated RAM. <a href="http://djangofriendly.com/hosts/">Django Friendly</a> provides a valuable insite of who is good in the hosting community.</li>
<li>Setting up your own VPS from scratch proves a bit daunting for some people. Background research is a must, finding out about mod_python, mod_wsgi, FastCGI but there are some tutorials that take you step by step on setting it up. I&#8217;ve found <a href="http://bart.whahay.net/2008/12/07/creating-my-django-server/">this</a> tutorial very good - Its a mod_python, lighthttpd, memcached setup. The VPS provider <a href="http://www.webbynode.com">WebbyNode</a> also looks very promising, being able to deploy a Django stack on a VPS at the click of a button.</li>
<li>Take your time learning it. For me, coming from a PHP background, I needed to learn Python and Django. You can&#8217;t pick these up in a few days. It takes a few weeks. Even now reading blog posts,<a href="http://www.reddit.com/r/django"> /django/</a> and listening in the IRC channel provides alot of new, useful information.</li>
</ul>
<p>There is a whole <span style="text-decoration: line-through;">array</span> list of Django resources. The items below should help you get started with Django.</p>
<ul>
<li>Beginner Screencast Series <a href="http://showmedo.com/videos/series?name=v7kABKL6R">Create a Wiki with Django</a> - Siddhi</li>
<li>Making a <a href="http://docs.djangoproject.com/en/dev/intro/tutorial01/">Poll Application</a> (Django Docs)</li>
<li>Intermediate 13 part screencast series on <a href="http://showmedo.com/videos/series?name=PPN7NA155">making a full website with Django</a> - <a href="http://startthedark.com">startthedark.com</a>. Covers everything from creating the project to deployment. - <a href="http://www.eflorenzano.com/">Eric Florenzano</a></li>
<li><a href="http://thisweekindjango.com">ThisWeekInDjango</a> (TWID) - Django podcasts, screencasts, news and more.</li>
<li><a href="http://twitter.com/twiderrific">TWID Twitter</a>. Announces releases of new Django (reusable) apps.</li>
<li><a href="http://docs.djangoproject.com/en/dev/#reference">Django Documentation</a>. Best documentation of any language I&#8217;ve used.</li>
<li><a href="http://www.djangoplugables.com">Django Plugables.com</a>. Repository of reusable apps. Read through the source and learn.</li>
<li><a href="http://code.djangoproject.com/wiki/DjangoResources">http://code.djangoproject.com/wiki/DjangoResources</a> huge list of resources.</li>
</ul>
<p>In no way am I an expert with Django but if you have any questions about Django or having some troubles starting out I should be able to help. Comment below.</p>
<img src="http://feeds.feedburner.com/~r/Lastkarrdecom/~4/o7J2Ckb2pSE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lastkarrde.com/2009/01/introduction-to-django/feed/</wfw:commentRss>
		<feedburner:origLink>http://lastkarrde.com/2009/01/introduction-to-django/</feedburner:origLink></item>
		<item>
		<title>Introducing CSS-Reset.com</title>
		<link>http://feedproxy.google.com/~r/Lastkarrdecom/~3/gymoc4xJtEo/</link>
		<comments>http://lastkarrde.com/2009/01/introducing-css-reset/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 22:13:34 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lastkarrde.com/?p=193</guid>
		<description><![CDATA[CSS-Reset.com is a website I&#8217;ve created. It hosts Reset Style Sheets such as Yahoo User Interface&#8217;s and Eric Meyer&#8217;s. It runs on Google App Engine so it can harness Google&#8217;s Content Delivery Network as well as the stability, speed and uptime. I created it because there was no one place that hosted them, unlike AJAX [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.css-reset.com">CSS-Reset.com</a> is a website I&#8217;ve created. It hosts Reset Style Sheets such as Yahoo User Interface&#8217;s and Eric Meyer&#8217;s. It runs on Google App Engine so it can harness Google&#8217;s Content Delivery Network as well as the stability, speed and uptime. I created it because there was no one place that hosted them, unlike AJAX libraries for which there is Google APIs. As it runs on App Engine, you can use the style sheets for full deployment and if anything you will notice a loading time decrease. I&#8217;ve compressed the stylesheets so they are all under 1kb.</p>
<p>Enjoy.</p>
<img src="http://feeds.feedburner.com/~r/Lastkarrdecom/~4/gymoc4xJtEo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lastkarrde.com/2009/01/introducing-css-reset/feed/</wfw:commentRss>
		<feedburner:origLink>http://lastkarrde.com/2009/01/introducing-css-reset/</feedburner:origLink></item>
		<item>
		<title>Titanium App</title>
		<link>http://feedproxy.google.com/~r/Lastkarrdecom/~3/4aQXzdo3Al0/</link>
		<comments>http://lastkarrde.com/2008/12/titanium-app/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 05:15:00 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[titanium]]></category>

		<guid isPermaLink="false">http://lastkarrde.com/?p=169</guid>
		<description><![CDATA[Titanium is fairly new on the scene. It&#8217;s an open source platform for building desktop applications using Javascript, CSS and HTML. It&#8217;s very similar to Adobe&#8217;s AIR. Like AIR, it uses Webkit for the rendering, which makes things like rounded corners very easy. I&#8217;m a big AIR fanboy, but i wanted to give this a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://titaniumapp.com">Titanium</a> is fairly new on the scene. It&#8217;s an open source platform for building desktop applications using Javascript, CSS and HTML. It&#8217;s very similar to Adobe&#8217;s AIR. Like AIR, it uses Webkit for the rendering, which makes things like rounded corners very easy. I&#8217;m a big AIR fanboy, but i wanted to give this a go. I downloaded the SDK and started messing around by editing the demo file they provide. I stripped out appcelerator, preferring to use pure jQuery instead. On the HTML/Javascript side of things, everything worked perfectly. But some gaps started to appear when I tried using some of their <a href="http://titaniumapp.com/documentation">API</a> functions.</p>
<p>I tried making a basic mp3 player. To do this i made a new project. I then stripped out all of the &#8216;garbage&#8217; out of the auto generated files. This involved deleting the appcelerator include scripts, cleaning the stylesheets out of things i didn&#8217;t need, setting the app to use system chrome and deleteing most of the code out of the index.html file.</p>
<blockquote><p>app create:project . player titanium</p></blockquote>
<p>I added my own buttons into the index.html file.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;input type=&quot;submit&quot; value=&quot;Play&quot; id=&quot;play&quot; /&gt;&lt;br /&gt;
&lt;input type=&quot;submit&quot; value=&quot;Pause&quot; id=&quot;pause&quot; /&gt; &lt;br /&gt;
&lt;input type=&quot;submit&quot; value=&quot;Resume&quot; id=&quot;resume&quot; /&gt;&lt;br /&gt;
&lt;input type=&quot;submit&quot; value=&quot;Select File&quot; id=&quot;open&quot; /&gt;&lt;br /&gt;
&lt;input type=&quot;submit&quot; value=&quot;Stop&quot; id=&quot;stop&quot;&gt;&lt;br /&gt;&lt;br /&gt;
&nbsp;
&nbsp;
&lt;input type=&quot;submit&quot; value=&quot;+&quot; id=&quot;increasevolume&quot; /&gt; &lt;input type=&quot;submit&quot; value=&quot;-&quot; id=&quot;decreasevolume&quot; /&gt;</pre></div></div>

<p>And made a custom.js script to put my javascript code into. I also put a sound file, ff.mp3, into the <em>package/public/audio/</em> directory.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #006600;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> s <span style="color: #339933;">=</span> ti.<span style="color: #006600;">Media</span>.<span style="color: #006600;">createSound</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;app://audio/ff.mp3&quot;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#pause&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
		s.<span style="color: #006600;">pause</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#play&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
		s.<span style="color: #006600;">play</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#resume&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
		s.<span style="color: #006600;">resume</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#stop&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
		s.<span style="color: #000066;">stop</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>This worked pretty well. When i pushed play the music would start, it would also pause and resume fine. If you kept hitting the play button, it would play more and more instances of the same song, it sounded pretty cool after awhile. It&#8217;s an obvious design flaw though and could easily be cured by adding<br />
$(this).hide(); when the play button is clicked.</p>
<p>I then tried working with the volume controls, this is where i encountered some problems. (I did the equivilant code for increasing).</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#decreasevolume&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
		volume <span style="color: #339933;">=</span> s.<span style="color: #006600;">getVolume</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
		decreasedvolume <span style="color: #339933;">=</span> volume <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span>;
		s.<span style="color: #006600;">setVolume</span><span style="color: #009900;">&#40;</span>decreasedvolume<span style="color: #009900;">&#41;</span>;
&nbsp;
&nbsp;
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>I found I could get the volume fine (alerting it during testing) but whenever i tried to set it, the music stopped playing. Whats more I could resume it or start it again. I&#8217;m not sure whether this is a problem in this very early release, or simply due to my bad coding (and the lack of documentation describing how to do these things properly). Another strange problem I had was during the compiling of the program. It would always compile to be adleast 19mb. I thought this was very strange, so i did a bit more testing. I added some large files in there, but the file size would always be 19mb + Other files I had added.</p>
<p>I think Titanium has <strong>alot</strong> of potential. I&#8217;m not too worried about these bugs as it is a preview release. I&#8217;m definately keeping an eye on this and will blog about it more in the future <img src='http://lastkarrde.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If your interested in Titanium, watch the <a href="http://titaniumapp.com/screencasts">screencasts</a>.</p>
<img src="http://feeds.feedburner.com/~r/Lastkarrdecom/~4/4aQXzdo3Al0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lastkarrde.com/2008/12/titanium-app/feed/</wfw:commentRss>
		<feedburner:origLink>http://lastkarrde.com/2008/12/titanium-app/</feedburner:origLink></item>
		<item>
		<title>Angry Linux Rant</title>
		<link>http://feedproxy.google.com/~r/Lastkarrdecom/~3/zjzi4gak420/</link>
		<comments>http://lastkarrde.com/2008/12/angry-linux-rant/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 03:58:59 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://lastkarrde.com/?p=159</guid>
		<description><![CDATA[I&#8217;m angry. This dick-wad has no clue what linux is. He obviously hasn&#8217;t used it enough yet writes about it critically in a condescending tone. Jimmy65 wrote this article, not chris pirillo or any of his blog writers.
http://chris.pirillo.com/2008/12/07/windows-vista-is-a-better-choice-than-linux/
Software Compatibility
XFire is more than just a simple chat client. It launches games, has an online frontend and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m angry. This dick-wad has no clue what linux is. He obviously hasn&#8217;t used it enough yet writes about it critically in a condescending tone. <a href="http://geeks.pirillo.com/profile/Jimmy65">Jimmy65</a> wrote this article, not chris pirillo or any of his blog writers.</p>
<p><a href="http://chris.pirillo.com/2008/12/07/windows-vista-is-a-better-choice-than-linux/">http://chris.pirillo.com/2008/12/07/windows-vista-is-a-better-choice-than-linux/</a></p>
<h2>Software Compatibility</h2>
<p>XFire is more than just a simple chat client. It launches games, has an online frontend and keeps track of stats. Xfire &#8216;alternatives&#8217; don&#8217;t exist simply because Xfire is in its own niche of software. If something like that was written for linux it would never pick up. You shouldn&#8217;t be angry at Linux because it&#8217;s too inferior to not have an Xfire equivilant, you should be angry at Xfire for not producing a linux client.</p>
<p>*Update, apparently Xfire works in WINE, <a href="http://gfire.site40.net/">a project to integrate Xfire with Pidgin</a>*</p>
<p><em>&#8220;so you will find a lot of bugs, instability, slow or lack of updates, and sometimes just all-round sloppy work&#8221;</em></p>
<p>Those keywords describe Windows more than Linux. Linux distros have very little bugs, are very secure and get updated frequently because of the community behind it. There are hundreds of mailing lists and issue trackers for open source software. If a person finds a bug in the piece of software, they can look at the code and submit their own patch. People start an open source project because they <strong>want</strong> to develop it. They&#8217;re not being forced by their boss to type 100 lines of code an hour, they enjoy creating it and will most likely use it themselves after its completed. Where is the Microsoft issue tracker? <a href="http://search.microsoft.com/results.aspx?form=MSHOME&amp;mkt=en-US&amp;setlang=en-US&amp;q=bug%20tracker" target="_blank">Not here</a>. Users can&#8217;t submit their bugs easily. Whats more, its up the developers of Windows Vista to fix the bugs. Since the source for Windows isn&#8217;t available, able hackers can&#8217;t write a quick patch. Vista is infamous for it&#8217;s backwards incompatibility. There was a huge outcry from gamers who&#8217;s games wouldn&#8217;t work with Vista without patching.</p>
<h2>Hardware Compatibility</h2>
<p><a href="http://www.google.co.nz/search?q=vista+hardware+fail&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a">Search for Vista Hardware Fail</a></p>
<p><a href="http://www.google.co.nz/search?hl=en&amp;client=firefox-a&amp;rls=org.mozilla:en-US:official&amp;hs=gOC&amp;sa=X&amp;oi=spell&amp;resnum=0&amp;ct=result&amp;cd=1&amp;q=my+hardware+doesn%27t+work+with+vista">Search for My hardware doesn&#8217;t work with Vista</a></p>
<p>Some of the latest and greatest hardware isn&#8217;t supported straight away with Linux, but drivers are never far behind. Nvidia and AMD have now started producing binary drivers for each new release of the windows driver, and initiatives like the <a href="http://www.linuxdriverproject.org/twiki/bin/view">Linux Driver Project</a> volunteer to make drivers for free, for those companies who want to have a linux driver for their product, but don&#8217;t have the skills or knowledge to. Do Vista&#8217;s engineers volunteer to make free drivers? No.</p>
<h2>Support</h2>
<p>The top and most obvious search result for <em>Windows Vista Support</em> lead to <a href="http://windowshelp.microsoft.com/Windows/en-us/default.mspx">this page</a>. The official microsoft support forum is buried a few links in and the majority of the posts have 0 replies to them. Jimmy65 points out that Vista has an inbuilt support/help system. Sure it teaches you how to install a program and bold a word in MS Word, but when error codes are flashing on your screen or you get the Blue Screen Of Death who&#8217;s going to help you then? Every major Linux distro has their own official support forum where both staff, community helpers, developers and coders not associated with the distro can help new users. Solutions are easy because alot of other users have come across the same problems, a quick search returns a huge array of results. And what if the bug is undocumented? Then you can submit it to the bug tracker. Developers are assigned bugs frequently and if not fixed immediately, will usually be fixed in the next release of the distro (6-12 months). How long do you need to wait for windows? 4 years.</p>
<h2>Style</h2>
<blockquote><p>Vista utilizes it’s desktop effects for realistic tasks</p></blockquote>
<p>Yeah, those bubbles on the screen help me code&#8230;.</p>
<p>Both Linux and Windows have some pretty useless eye candy, but on the other hand, Linux has more useful eye candy than Windows does. Previewing images and movies, intelligent zooming, desktop scaling, magnifying, brightness altering. All of these can be setup with hotkeys on linux. You don&#8217;t have to dig through control panels and click &#8220;Are you sure?&#8221; boxes if you want to change something. Style , in my books, also comes under User Interface. With Vista you can choose to have a very system intensive UI, or a very system intensive UI. Great choices. With Linux you can choose from the mainstream GNOME, KDE and XFCE Desktop Enviroments or use IceVM which uses something like 20mb of RAM - yet is still very attractive.</p>
<p>Please add your own points. For and against my argument.</p>
<img src="http://feeds.feedburner.com/~r/Lastkarrdecom/~4/zjzi4gak420" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lastkarrde.com/2008/12/angry-linux-rant/feed/</wfw:commentRss>
		<feedburner:origLink>http://lastkarrde.com/2008/12/angry-linux-rant/</feedburner:origLink></item>
		<item>
		<title>Dropbox Likes Me, Eleven2 Doesnt</title>
		<link>http://feedproxy.google.com/~r/Lastkarrdecom/~3/r-nPjuUFqow/</link>
		<comments>http://lastkarrde.com/2008/09/dropbox-likes-me-eleven2-doesnt/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 05:16:06 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[dropbox]]></category>

		<guid isPermaLink="false">http://lastkarrde.com/?p=140</guid>
		<description><![CDATA[I was lucky enough to win one of the 100 , free 50gb accounts that Dropbox were handing out. Im not sure how practicle it is going to be for me though. New Zealand has horrible broadband plans and speeds. Our data allowance / month is only 10gb. I&#8217;ll store installers and shizz there, but [...]]]></description>
			<content:encoded><![CDATA[<p>I was lucky enough to win one of the 100 , free 50gb accounts that <a href="http://www.getdropbox.com">Dropbox</a> were handing out. Im not sure how practicle it is going to be for me though. New Zealand has horrible broadband plans and speeds. Our data allowance / month is only 10gb. I&#8217;ll store installers and shizz there, but I don&#8217;t want to go anywhere near the 50gb mark.</p>
<p>In other news, i was inquiring at Eleven2 about hosting proxies on their network. It said nothing in their AUP or TOS about them. I emailed them just to double check and they said that they were prohibited. Grrr.</p>
<img src="http://feeds.feedburner.com/~r/Lastkarrdecom/~4/r-nPjuUFqow" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lastkarrde.com/2008/09/dropbox-likes-me-eleven2-doesnt/feed/</wfw:commentRss>
		<feedburner:origLink>http://lastkarrde.com/2008/09/dropbox-likes-me-eleven2-doesnt/</feedburner:origLink></item>
	</channel>
</rss>
