<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Michael-Springer [dot] net &#187; Code</title>
	<atom:link href="http://michael-springer.net/category/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://michael-springer.net</link>
	<description>Random thoughts by a guy that knows way too much about computers.</description>
	<lastBuildDate>Thu, 29 Jul 2010 14:07:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MonsterGridv2.2.1 Released</title>
		<link>http://michael-springer.net/code/monstergridv2-2-1-released/</link>
		<comments>http://michael-springer.net/code/monstergridv2-2-1-released/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 03:09:21 +0000</pubDate>
		<dc:creator>Michael Springer</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://michael-springer.net/?p=155</guid>
		<description><![CDATA[Wait, what? Yep, I&#8217;ve been uber busy coding on the project for the last 5 days. So busy that I&#8217;ve already hit the 4th stable release. It&#8217;s not like I&#8217;m just releasing every little change I make but there has been quite the progress in the last week in the code itself. So let me [...]]]></description>
			<content:encoded><![CDATA[<p>Wait, what? Yep, I&#8217;ve been uber busy coding on the project for the last 5 days. So busy that I&#8217;ve already hit the 4th stable release. It&#8217;s not like I&#8217;m just releasing every little change I make but there has been quite the progress in the last week in the code itself. So let me just give a quick rundown of what is included with the most recent release:</p>
<ul>
<li>6 Preset Column layouts ranging from 1 to 3 column layout options</li>
<li>More content areas above and below the columns and inside the footer</li>
<li>Cleaned code, more semantic names</li>
<li>A proper README file (zomg O.O)</li>
<li>A demo custom style named &#8216;Foo&#8217; (like foo bar? get it?)</li>
</ul>
<p>Trust me, it&#8217;s been a hell of a week and MonsterGrid has grown like wild fire. Currently the only things that will be getting released soon is the long over due documentation. So you should also be expecting:</p>
<ul>
<li>A GettingStarted with MonsterGrid guide</li>
<li>Stylings explanation guide</li>
<li>How To Style guide just for demonstration purposes</li>
</ul>
<p>Well, that is it for now folks. So I guess the next thing to do would be go give MonsterGrid a try by downloading the archived release or checking out a copy via svn at <a href="http://code.google.com/p/monstergrid/">code.google.com/p/monstergrid</a></p>
]]></content:encoded>
			<wfw:commentRss>http://michael-springer.net/code/monstergridv2-2-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MonsterGrid Vanilla v1.0 Released</title>
		<link>http://michael-springer.net/code/monstergrid-vanilla-v1/</link>
		<comments>http://michael-springer.net/code/monstergrid-vanilla-v1/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 04:41:59 +0000</pubDate>
		<dc:creator>Michael Springer</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://michael-springer.net/?p=148</guid>
		<description><![CDATA[Today I finally managed to get enough time to sit down and clean up MonsterGrid to produce the first of the core in the project called MonsterGrid Vanilla. This release is extremely basic and exemplifies what I plan to do with the framework by keeping things simple. There is nothing special with this release aside [...]]]></description>
			<content:encoded><![CDATA[<p>Today I finally managed to get enough time to sit down and clean up MonsterGrid to produce the first of the core in the project called MonsterGrid Vanilla. This release is extremely basic and exemplifies what I plan to do with the framework by keeping things simple. There is nothing special with this release aside from the fact that it is a complete build which you can check out at its<a href="http://code.google.com/p/monstergrid"> google code page here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael-springer.net/code/monstergrid-vanilla-v1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Torrent Search</title>
		<link>http://michael-springer.net/code/python-torrent-search/</link>
		<comments>http://michael-springer.net/code/python-torrent-search/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 21:58:46 +0000</pubDate>
		<dc:creator>Michael Springer</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://michael-springer.net/?p=52</guid>
		<description><![CDATA[So the other day my roommate suggested I learn Python. So I simply figure, why not! I only know a handful of languages and markups, let&#8217;s add Python to the list. It seemed very easy to pick up and I decided to try and crank out an application. While I wanted to build a basic [...]]]></description>
			<content:encoded><![CDATA[<p>So the other day my roommate suggested I learn <a href="http://www.python.org" target="_blank">Python</a>. So I simply figure, why not! I only know a handful of languages and markups, let&#8217;s add Python to the list. It seemed very easy to pick up and I decided to try and crank out an application. While I wanted to build a basic app, I wanted to make it provide some sort of use. So I decided to build a Desktop based Torrent Search.</p>
<p>The app is a meta search that opens up a google search in your default browser specifically for any .torrent file that meets your query. Why .torrent files? BitTorrent is a protocol for filesharing that allows distribution of large amounts of data. It accounts for approximately 35% of the traffic on the internet. Most users tend to search for torrents on one or two torrent trackers, this one allows you to search the web with google.</p>
<h1>The Code</h1>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span>
<span style="color: #808080; font-style: italic;"># Torrent Search</span>
<span style="color: #808080; font-style: italic;"># Filename: torrentsearch.py</span>
<span style="color: #808080; font-style: italic;">#---------------------</span>
<span style="color: #808080; font-style: italic;"># A .torrent meta search written in Python.</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Author: Michael Springer</span>
<span style="color: #808080; font-style: italic;"># Website: michael-springer.net</span>
<span style="color: #808080; font-style: italic;">#</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">Tkinter</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">webbrowser</span>
&nbsp;
root = Tk<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
root.<span style="color: black;">title</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Torrent Search'</span><span style="color: black;">&#41;</span>
root.<span style="color: black;">maxsize</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">200</span>, <span style="color: #ff4500;">100</span><span style="color: black;">&#41;</span>
&nbsp;
l = Label <span style="color: black;">&#40;</span>root,text=<span style="color: #483d8b;">'Enter your search query'</span><span style="color: black;">&#41;</span>
l.<span style="color: black;">pack</span><span style="color: black;">&#40;</span>side=TOP,padx=<span style="color: #ff4500;">2</span>,pady=<span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>
&nbsp;
e = Entry<span style="color: black;">&#40;</span>root, width=<span style="color: #ff4500;">50</span><span style="color: black;">&#41;</span>
e.<span style="color: black;">pack</span><span style="color: black;">&#40;</span>side=TOP,padx=<span style="color: #ff4500;">2</span>,pady=<span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>
e.<span style="color: black;">delete</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, END<span style="color: black;">&#41;</span>
&nbsp;
search = <span style="color: #483d8b;">&quot;http://www.google.com/search?q=filetype:torrent+&quot;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> clear_entry<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
	e.<span style="color: black;">delete</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, END<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> doit<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
	<span style="color: #dc143c;">webbrowser</span>.<span style="color: black;">open_new</span><span style="color: black;">&#40;</span>search + e.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># For testing purposes..arrrrrgh</span>
<span style="color: #ff7700;font-weight:bold;">def</span> printit<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
	<span style="color: #ff7700;font-weight:bold;">print</span> search + e.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
b1 = Button<span style="color: black;">&#40;</span>root, text=<span style="color: #483d8b;">'Clear'</span>, command = clear_entry<span style="color: black;">&#41;</span>
b1.<span style="color: black;">pack</span><span style="color: black;">&#40;</span>side=LEFT<span style="color: black;">&#41;</span>
&nbsp;
b2 = Button<span style="color: black;">&#40;</span>root, text=<span style="color: #483d8b;">'Search'</span>, command = doit<span style="color: black;">&#41;</span>
b2.<span style="color: black;">pack</span><span style="color: black;">&#40;</span>side=RIGHT<span style="color: black;">&#41;</span>
&nbsp;
root.<span style="color: black;">mainloop</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Pretty simple right? Just 48 lines of Python using Tkinter modules for the GUI. It has a Clear button to empt the entry box and a Search button for, well searching. I plan to in the near future bind the search function to the carriage return key.</p>
<h1>Dependencies</h1>
<p>To run the Torrent Search application you will need the following:</p>
<ul>
<li>Python 2.5+</li>
<li>Tkinter</li>
</ul>
<p><strong>Update: </strong>I noticed there were unused lines of code, so I removed them and everything still seems to run fine.<br />
<span style="text-decoration: line-through;"><strong>Update2:</strong> After some feedback I found out it will not run in windows, I will look into getting it fixed.</span></p>
<p>Download the Python application <a href="http://michael-springer.net/blog/wp-content/uploads/2009/07/torrentsearch.tar.bz2" target="_blank">here</a>.</p>
<p>Feel free to tell me what you think of it, how it works for you, and any suggestions you may have; feedback is much appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael-springer.net/code/python-torrent-search/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
