<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Louis Taylor</title>
	<atom:link href="http://louistaylor.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://louistaylor.wordpress.com</link>
	<description>Random Python, Ubuntu and Free Software stuff.</description>
	<lastBuildDate>Tue, 12 Jul 2011 10:34:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='louistaylor.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Louis Taylor</title>
		<link>http://louistaylor.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://louistaylor.wordpress.com/osd.xml" title="Louis Taylor" />
	<atom:link rel='hub' href='http://louistaylor.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Control vagalume last.fm client with DBus from python</title>
		<link>http://louistaylor.wordpress.com/2010/06/01/control-vagalume-last-fm-client-with-dbus-from-python/</link>
		<comments>http://louistaylor.wordpress.com/2010/06/01/control-vagalume-last-fm-client-with-dbus-from-python/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 18:09:00 +0000</pubDate>
		<dc:creator>louistaylor</dc:creator>
				<category><![CDATA[pyGTK]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[DBus]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[programing]]></category>
		<category><![CDATA[vagalume]]></category>

		<guid isPermaLink="false">http://louistaylor.wordpress.com/?p=250</guid>
		<description><![CDATA[As I have been experimenting with the docky python bindings, I created a small media control helper for Vagalume, a lightweight last.fm client. I found the vagalume DBus methods and signals to be mostly undocumented, but I found them lurking around after a quick look at some of the source code. I created a smallish [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=250&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I have been experimenting with the docky python bindings, I created a small media control helper for <a title="Vagalume" href="http://vagalume.igalia.com/">Vagalume</a>, a lightweight last.fm client. I found the vagalume DBus methods and signals to be mostly undocumented, but I found them lurking around after a quick look at <a title="some of the source code" href="http://gitorious.org/vagalume/vagalume/blobs/master/src/dbus.h">some of the source code</a>.</p>
<p>I created a smallish class with the help of the excellent <a href="http://svn.majorsilence.com/pygtknotebook/trunk/pygtk-notebook-latest.html#toc-Chapter-7">PyGtk Notebook.</a></p>
<pre><span style="font-family:Lucida,Courier New;"><span style="color:#c00000;">import</span> <span style="color:#000000;">dbus</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">gtk</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">gobject</span>
<span style="color:#c00000;">from</span> <span style="color:#000000;">dbus</span><span style="color:#0000c0;">.</span><span style="color:#000000;">mainloop</span><span style="color:#0000c0;">.</span><span style="color:#000000;">glib</span> <span style="color:#c00000;">import</span> <span style="color:#000000;">DBusGMainLoop</span>

<span style="color:#c00000;">class</span> <span style="color:#000000;">vagalume</span><span style="color:#0000c0;">:</span>
    <span style="color:#c00000;">def</span> <span style="color:#000000;">__init__</span><span style="color:#0000c0;">(</span><span style="color:#000000;">self</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">:</span>
        <span style="color:#000000;">dbus</span><span style="color:#0000c0;">.</span><span style="color:#000000;">mainloop</span><span style="color:#0000c0;">.</span><span style="color:#000000;">glib</span><span style="color:#0000c0;">.</span><span style="color:#000000;">DBusGMainLoop</span><span style="color:#0000c0;">(</span><span style="color:#000000;">set_as_default</span><span style="color:#0000c0;">=</span><span style="color:#000000;">True</span><span style="color:#0000c0;">)</span>
        <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">bus</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">dbus</span><span style="color:#0000c0;">.</span><span style="color:#000000;">SessionBus</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span>

        <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">player</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">bus</span><span style="color:#0000c0;">.</span><span style="color:#000000;">get_object</span><span style="color:#0000c0;">(</span><span style="color:#004080;">"com.igalia.vagalume"</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">"/com/igalia/vagalume"</span><span style="color:#0000c0;">)</span>

        <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">bus</span><span style="color:#0000c0;">.</span><span style="color:#000000;">add_signal_receiver</span><span style="color:#0000c0;">(</span><span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">song_changed</span><span style="color:#0000c0;">,</span>
        <span style="color:#000000;">dbus_interface</span><span style="color:#0000c0;">=</span><span style="color:#004080;">"com.igalia.vagalume"</span><span style="color:#0000c0;">,</span>
        <span style="color:#000000;">signal_name</span><span style="color:#0000c0;">=</span><span style="color:#004080;">"notify"</span><span style="color:#0000c0;">)</span>

    <span style="color:#c00000;">def</span> <span style="color:#000000;">song_changed</span><span style="color:#0000c0;">(</span><span style="color:#000000;">self</span><span style="color:#0000c0;">,</span> <span style="color:#0000c0;">*</span><span style="color:#000000;">args</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">:</span>
        <span style="color:#000000;">self.state</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">args</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">0</span><span style="color:#0000c0;">]</span>
        <span style="color:#c00000;">if</span> <span style="color:#000000;">state</span> <span style="color:#0000c0;">==</span> <span style="color:#004080;">'stopped'</span><span style="color:#0000c0;">:</span>
            <span style="color:#008000;">#do something when the player is stopped</span>
        <span style="color:#c00000;">elif</span> <span style="color:#000000;">state</span> <span style="color:#0000c0;">==</span> <span style="color:#004080;">'playing'</span><span style="color:#0000c0;">:</span>
            self.<span style="color:#000000;">artist</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">args</span> <span style="color:#0000c0;">[</span><span style="color:#0080c0;">1</span><span style="color:#0000c0;">]</span>
            <span style="color:#000000;">self.title</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">args</span> <span style="color:#0000c0;">[</span><span style="color:#0080c0;">2</span><span style="color:#0000c0;">]</span>
            <span style="color:#000000;">self.album</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">args</span> <span style="color:#0000c0;">[</span><span style="color:#0080c0;">3</span><span style="color:#0000c0;">]</span>
            <span style="color:#008000;">#do something with the data here...</span>

<span style="color:#c00000;">if</span> <span style="color:#000000;">__name__</span> <span style="color:#0000c0;">==</span> <span style="color:#004080;">"__main__"</span><span style="color:#0000c0;">:</span>
    <span style="color:#000000;">app</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">vagalume</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span>
    <span style="color:#000000;">gtk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">main</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span></span></pre>
<p>I used the gtk mainloop for simplicity, but you could use</p>
<pre><span style="font-family:Lucida,Courier New;"><span style="color:#000000;">mainloop</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">gobject</span><span style="color:#0000c0;">.</span><span style="color:#000000;">MainLoop</span><span style="color:#0000c0;">(</span><span style="color:#000000;">is_running</span><span style="color:#0000c0;">=</span><span style="color:#000000;">True</span><span style="color:#0000c0;">)</span>
<span style="color:#000000;">mainloop</span><span style="color:#0000c0;">.</span><span style="color:#000000;">run</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span></span></pre>
<p>If you want to use the signals for change of song etc, it would be best to modify <code>vagalume()</code> to do what you want.</p>
<p>To interact with vagalume do something like:</p>
<pre>    vagalume = vagalume()

    #do anything you want with dbus.
    #take a look at http://gitorious.org/vagalume/vagalume/blobs/master/src/dbus.h
    #for all of the functions available
    vagalume.player.Play()
    vagalume.player.Skip()
    vagalume.player.LoveTrack()
    vagalume.player.BanTrack()
    vagalume.player.Stop()</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/louistaylor.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/louistaylor.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/louistaylor.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/louistaylor.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/louistaylor.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/louistaylor.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/louistaylor.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/louistaylor.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/louistaylor.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/louistaylor.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/louistaylor.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/louistaylor.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/louistaylor.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/louistaylor.wordpress.com/250/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=250&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://louistaylor.wordpress.com/2010/06/01/control-vagalume-last-fm-client-with-dbus-from-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13218384ce9602c93e4db9f0068911f8?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">louistaylor</media:title>
		</media:content>
	</item>
		<item>
		<title>How to take a screenshot using pyGTK</title>
		<link>http://louistaylor.wordpress.com/2010/05/26/how-to-take-a-screenshot-using-pygtk/</link>
		<comments>http://louistaylor.wordpress.com/2010/05/26/how-to-take-a-screenshot-using-pygtk/#comments</comments>
		<pubDate>Wed, 26 May 2010 18:09:33 +0000</pubDate>
		<dc:creator>louistaylor</dc:creator>
				<category><![CDATA[programing]]></category>
		<category><![CDATA[pyGTK]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://louistaylor.wordpress.com/?p=245</guid>
		<description><![CDATA[I needed to capture my screen very quickly from python, and needed to save these images into a Python Image Library (PIL) Image. I wrote a small python class to do the work, keeping as little processing as possible in the screenshot.take() function. import Image, gtk class screenshot: def __init__(self): self.img_width = gtk.gdk.screen_width() self.img_height = [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=245&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:#000000;">I needed to capture my screen very quickly from python, and needed to save these images into a Python Image Library (PIL) Image. I wrote a small python class to do the work, keeping as little processing as possible in the <code>screenshot.take()</code> function.<br />
</span></p>
<pre><span style="font-family:Lucida,Courier New;"><span style="color:#c00000;">import</span> <span style="color:#000000;">Image</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">gtk</span>
<span style="color:#c00000;">class</span> <span style="color:#000000;">screenshot</span><span style="color:#0000c0;">:</span>
    <span style="color:#c00000;">def</span> <span style="color:#000000;">__init__</span><span style="color:#0000c0;">(</span><span style="color:#000000;">self</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">:</span>
        <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">img_width</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">gtk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">gdk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">screen_width</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span>
        <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">img_height</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">gtk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">gdk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">screen_height</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span>

        <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">screengrab</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">gtk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">gdk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">Pixbuf</span><span style="color:#0000c0;">(</span>
            <span style="color:#000000;">gtk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">gdk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">COLORSPACE_RGB</span><span style="color:#0000c0;">,</span>
            <span style="color:#000000;">False</span><span style="color:#0000c0;">,</span>
            <span style="color:#0080c0;">8</span><span style="color:#0000c0;">,</span>
            <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">img_width</span><span style="color:#0000c0;">,</span>
            <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">img_height</span><span style="color:#0000c0;">)</span>

    <span style="color:#c00000;">def</span> <span style="color:#000000;">take</span><span style="color:#0000c0;">(</span><span style="color:#000000;">self</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">:</span>
        <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">screengrab</span><span style="color:#0000c0;">.</span><span style="color:#000000;">get_from_drawable</span><span style="color:#0000c0;">(</span>
            <span style="color:#000000;">gtk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">gdk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">get_default_root_window</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">,</span>
            <span style="color:#000000;">gtk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">gdk</span><span style="color:#0000c0;">.</span><span style="color:#000000;">colormap_get_system</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">,</span>
            <span style="color:#0080c0;">0</span><span style="color:#0000c0;">,</span> <span style="color:#0080c0;">0</span><span style="color:#0000c0;">,</span> <span style="color:#0080c0;">0</span><span style="color:#0000c0;">,</span> <span style="color:#0080c0;">0</span><span style="color:#0000c0;">,</span>
            <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">img_width</span><span style="color:#0000c0;">,</span>
            <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">img_height</span><span style="color:#0000c0;">)</span>

        <span style="color:#000000;">final_screengrab</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">Image</span><span style="color:#0000c0;">.</span><span style="color:#000000;">frombuffer</span><span style="color:#0000c0;">(</span>
          <span style="color:#004080;">"RGB"</span><span style="color:#0000c0;">,</span>
          <span style="color:#0000c0;">(</span><span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">img_width</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">img_height</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">,</span>
          <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">screengrab</span><span style="color:#0000c0;">.</span><span style="color:#000000;">get_pixels</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">,</span>
          <span style="color:#004080;">"raw"</span><span style="color:#0000c0;">,</span>
          <span style="color:#004080;">"RGB"</span><span style="color:#0000c0;">,</span>
          <span style="color:#000000;">self</span><span style="color:#0000c0;">.</span><span style="color:#000000;">screengrab</span><span style="color:#0000c0;">.</span><span style="color:#000000;">get_rowstride</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">,</span>
          <span style="color:#0080c0;">1</span><span style="color:#0000c0;">)</span>
        <span style="color:#c00000;">return</span> <span style="color:#000000;">final_screengrab</span>

<span style="color:#c00000;">if</span> <span style="color:#000000;">__name__</span> <span style="color:#0000c0;">==</span> <span style="color:#004080;">'__main__'</span><span style="color:#0000c0;">:</span>
    <span style="color:#c00000;">import</span> <span style="color:#000000;">time</span>
    <span style="color:#000000;">screenshot</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">screenshot</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span>
    <span style="color:#c00000;">while</span> <span style="color:#000000;">True</span><span style="color:#0000c0;">:</span>
        <span style="color:#000000;">ti</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">time</span><span style="color:#0000c0;">.</span><span style="color:#000000;">time</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span>
        <span style="color:#000000;">im</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">screenshot</span><span style="color:#0000c0;">.</span><span style="color:#000000;">take</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span>
        <span style="color:#000000;">tii</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">time</span><span style="color:#0000c0;">.</span><span style="color:#000000;">time</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span>
        <span style="color:#c00000;">print</span> <span style="color:#000000;">tii</span><span style="color:#0000c0;">-</span><span style="color:#000000;">ti</span></span></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/louistaylor.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/louistaylor.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/louistaylor.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/louistaylor.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/louistaylor.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/louistaylor.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/louistaylor.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/louistaylor.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/louistaylor.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/louistaylor.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/louistaylor.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/louistaylor.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/louistaylor.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/louistaylor.wordpress.com/245/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=245&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://louistaylor.wordpress.com/2010/05/26/how-to-take-a-screenshot-using-pygtk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13218384ce9602c93e4db9f0068911f8?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">louistaylor</media:title>
		</media:content>
	</item>
		<item>
		<title>TaylorType alpha testing needed!</title>
		<link>http://louistaylor.wordpress.com/2010/04/05/230/</link>
		<comments>http://louistaylor.wordpress.com/2010/04/05/230/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 18:02:07 +0000</pubDate>
		<dc:creator>louistaylor</dc:creator>
				<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[programing]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[GPLv3]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[taylortype]]></category>

		<guid isPermaLink="false">http://louistaylor.wordpress.com/2010/04/05/230/</guid>
		<description><![CDATA[TaylorType is a small program written in python which will compile any LaTeX document you give it with a single click. The emphasis is on a very lightweight and simple gui, the only interaction happens in the system tray, with two file selectors and a checkbox. All it is is a small icon in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=230&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>TaylorType is a small program written in python which will compile any LaTeX document you give it with a single click. The emphasis is on a very lightweight and simple gui, the only interaction happens in the system tray, with two file selectors and a checkbox.</p>
<p>All it is is a small icon in the system tray, which can be configured to compile any LaTeX document.<br />
<a href="http://louistaylor.files.wordpress.com/2010/04/screenshot01.png"><img class="size-full wp-image-234 alignleft" title="Screenshot01" src="http://louistaylor.files.wordpress.com/2010/04/screenshot01.png?w=283&#038;h=65" alt="" width="283" height="65" /></a> It has some simple preferences, an option for different pdf viewers will be added soon.<br />
It currently supports error messages for both LaTeX and BibTeX.</p>
<p><a href="http://louistaylor.files.wordpress.com/2010/04/screenshot06.png"><img class="alignright size-full wp-image-236" title="Screenshot06" src="http://louistaylor.files.wordpress.com/2010/04/screenshot06.png?w=473&#038;h=166" alt="" width="473" height="166" /></a></p>
<p>It uses gtk for the frontend and pure python for the backend.<br />
It depends on LaTeX, BibTeX and common gnome components. including pynotify and gconf.</p>
<p>Main code is hosted here: <a href="https://launchpad.net/taylortype">https://launchpad.net/taylortype</a></p>
<p>Download from <a href="https://launchpad.net/taylortype/+download">https://launchpad.net/taylortype/+download</a></p>
<p>Report all bugs to <a href="https://bugs.launchpad.net/taylortype">https://bugs.launchpad.net/taylortype</a></p>
<p>Main website (small): <a href="http://taylortype.sourceforge.net/">http://taylortype.sourceforge.net/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/louistaylor.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/louistaylor.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/louistaylor.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/louistaylor.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/louistaylor.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/louistaylor.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/louistaylor.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/louistaylor.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/louistaylor.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/louistaylor.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/louistaylor.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/louistaylor.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/louistaylor.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/louistaylor.wordpress.com/230/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=230&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://louistaylor.wordpress.com/2010/04/05/230/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13218384ce9602c93e4db9f0068911f8?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">louistaylor</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2010/04/screenshot01.png" medium="image">
			<media:title type="html">Screenshot01</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2010/04/screenshot06.png" medium="image">
			<media:title type="html">Screenshot06</media:title>
		</media:content>
	</item>
		<item>
		<title>Using LaTeX with python.</title>
		<link>http://louistaylor.wordpress.com/2010/03/14/using-latex-with-python/</link>
		<comments>http://louistaylor.wordpress.com/2010/03/14/using-latex-with-python/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 01:53:57 +0000</pubDate>
		<dc:creator>louistaylor</dc:creator>
				<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[launchpad]]></category>
		<category><![CDATA[programing]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[GPLv3]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://louistaylor.wordpress.com/?p=224</guid>
		<description><![CDATA[I have written a small (and buggy) python module to drive latex. This can be used in larger programs (eg taylortype https://launchpad.net/taylortype) All it does is execute the latex command, read the output and return a nicely formatted error message if something goes wrong. Here is the code: http://dl.dropbox.com/u/3746044/python-latex.py http://www.pasteall.org/11691/python #!/usr/bin/env python ##Copyright (C) 2010 Louis Taylor [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=224&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have written a small (and buggy) python module to drive latex. This can be used in larger programs (eg taylortype <a href="https://launchpad.net/taylortype">https://launchpad.net/taylortype</a>)</p>
<p>All it does is execute the latex command, read the output and return a nicely formatted error message if something goes wrong.</p>
<p>Here is the code:</p>
<p><a href="http://dl.dropbox.com/u/3746044/python-latex.py">http://dl.dropbox.com/u/3746044/python-latex.py</a></p>
<p><a href="http://www.pasteall.org/11691/python">http://www.pasteall.org/11691/python</a></p>
<pre><span style="font-family:Lucida,Courier New;"><span style="color:#008000;">#!/usr/bin/env python</span>

<span style="color:#008000;">##Copyright (C) 2010 Louis Taylor  </span>
<span style="color:#008000;">## _    ___ _____                                                              </span>
<span style="color:#008000;">##| |  | _ \_   _|                                                             </span>
<span style="color:#008000;">##| |__|  _/ | |                                                               </span>
<span style="color:#008000;">##|____|_|   |_| *programus optimus est*                                       </span>
<span style="color:#008000;">##                                                                             </span>
<span style="color:#008000;">##This program is free software: you can redistribute it and/or modify         </span>
<span style="color:#008000;">##it under the terms of the GNU General Public License as published by         </span>
<span style="color:#008000;">##the Free Software Foundation, either version 3 of the License, or            </span>
<span style="color:#008000;">##(at your option) any later version.                                          </span>
<span style="color:#008000;">##                                                                             </span>
<span style="color:#008000;">##This program is distributed in the hope that it will be useful,              </span>
<span style="color:#008000;">##but WITHOUT ANY WARRANTY; without even the implied warranty of               </span>
<span style="color:#008000;">##MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                </span>
<span style="color:#008000;">##GNU General Public License for more details.                                 </span>
<span style="color:#008000;">##                                                                            </span>
<span style="color:#008000;">##You should have received a copy of the GNU General Public License            </span>
<span style="color:#008000;">##along with this program.  If not, see http://www.gnu.org/licenses/gpl-3.0.txt  </span>

<span style="color:#c00000;">import</span> <span style="color:#000000;">os</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">subprocess</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">time</span>

<span style="color:#c00000;">def</span> <span style="color:#000000;">compile</span><span style="color:#0000c0;">(</span><span style="color:#000000;">latexfile</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">pdfdir</span><span style="color:#0000c0;">=</span><span style="color:#004080;">'/tmp'</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">rmlog</span><span style="color:#0000c0;">=</span><span style="color:#000000;">False</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">movepdf</span><span style="color:#0000c0;">=</span><span style="color:#000000;">False</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">usebibtex</span><span style="color:#0000c0;">=</span><span style="color:#000000;">True</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">:</span>
    <span style="color:#004080;">'''compiles latex document, saves it to the directory
    specified in *pdfdir* and returns any error messages it can find'''</span>
    <span style="color:#000000;">path</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">os</span><span style="color:#0000c0;">.</span><span style="color:#000000;">path</span><span style="color:#0000c0;">.</span><span style="color:#000000;">split</span><span style="color:#0000c0;">(</span><span style="color:#000000;">latexfile</span><span style="color:#0000c0;">)</span>
    <span style="color:#000000;">texfile</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">path</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">1</span><span style="color:#0000c0;">]</span>
    <span style="color:#000000;">directory</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">path</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">0</span><span style="color:#0000c0;">]</span>

    <span style="color:#000000;">rawname</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">os</span><span style="color:#0000c0;">.</span><span style="color:#000000;">path</span><span style="color:#0000c0;">.</span><span style="color:#000000;">splitext</span><span style="color:#0000c0;">(</span><span style="color:#000000;">texfile</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">0</span><span style="color:#0000c0;">]</span>

    <span style="color:#000000;">logfile</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">os</span><span style="color:#0000c0;">.</span><span style="color:#000000;">path</span><span style="color:#0000c0;">.</span><span style="color:#000000;">splitext</span><span style="color:#0000c0;">(</span><span style="color:#000000;">texfile</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">0</span><span style="color:#0000c0;">]</span><span style="color:#0000c0;">+</span><span style="color:#004080;">'.log'</span>
    <span style="color:#000000;">logpath</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">os</span><span style="color:#0000c0;">.</span><span style="color:#000000;">path</span><span style="color:#0000c0;">.</span><span style="color:#000000;">join</span><span style="color:#0000c0;">(</span><span style="color:#000000;">pdfdir</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">logfile</span><span style="color:#0000c0;">)</span>

    <span style="color:#000000;">pdffile</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">os</span><span style="color:#0000c0;">.</span><span style="color:#000000;">path</span><span style="color:#0000c0;">.</span><span style="color:#000000;">splitext</span><span style="color:#0000c0;">(</span><span style="color:#000000;">texfile</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">0</span><span style="color:#0000c0;">]</span><span style="color:#0000c0;">+</span><span style="color:#004080;">'.pdf'</span>
    <span style="color:#000000;">pdfpath</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">os</span><span style="color:#0000c0;">.</span><span style="color:#000000;">path</span><span style="color:#0000c0;">.</span><span style="color:#000000;">join</span><span style="color:#0000c0;">(</span><span style="color:#000000;">pdfdir</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">pdffile</span><span style="color:#0000c0;">)</span>

    <span style="color:#000000;">os</span><span style="color:#0000c0;">.</span><span style="color:#000000;">chdir</span><span style="color:#0000c0;">(</span><span style="color:#000000;">directory</span><span style="color:#0000c0;">)</span> <span style="color:#008000;">#change cwd to the dir to place all latex files</span>

    <span style="color:#008000;">#os.system('bibtex %s' % rawname) #this will be replaced by the new function</span>
    <span style="color:#000000;">bibtex_error</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">False</span>
    <span style="color:#c00000;">if</span> <span style="color:#000000;">usebibtex</span> <span style="color:#0000c0;">==</span> <span style="color:#000000;">True</span><span style="color:#0000c0;">:</span>
        <span style="color:#c00000;">print</span> <span style="color:#004080;">'using bibtex'</span>
        <span style="color:#000000;">bib_err</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">bibtex</span><span style="color:#0000c0;">(</span><span style="color:#000000;">rawname</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">pdfdir</span><span style="color:#0000c0;">)</span>
        <span style="color:#c00000;">if</span> <span style="color:#000000;">bib_err</span> <span style="color:#0000c0;">!=</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">:</span>
            <span style="color:#008000;">#get an error message</span>
            <span style="color:#000000;">bibtex_error</span> <span style="color:#0000c0;">=</span> <span style="color:#0000c0;">[</span><span style="color:#004080;">'error'</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">'BibTeX error'</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">bib_err</span><span style="color:#0000c0;">]</span>
        <span style="color:#c00000;">else</span><span style="color:#0000c0;">:</span>
            <span style="color:#c00000;">pass</span>

    <span style="color:#c00000;">else</span><span style="color:#0000c0;">:</span>
        <span style="color:#c00000;">print</span> <span style="color:#004080;">'not using bibtex'</span>

    <span style="color:#000000;">cmd</span> <span style="color:#0000c0;">=</span> <span style="color:#0000c0;">[</span><span style="color:#004080;">'pdflatex'</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">'--halt-on-error'</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">'-output-directory'</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">pdfdir</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">texfile</span><span style="color:#0000c0;">]</span>
    <span style="color:#000000;">latex</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">subprocess</span><span style="color:#0000c0;">.</span><span style="color:#000000;">Popen</span><span style="color:#0000c0;">(</span><span style="color:#000000;">cmd</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">shell</span><span style="color:#0000c0;">=</span><span style="color:#000000;">False</span><span style="color:#0000c0;">,</span>
                            <span style="color:#000000;">stdin</span><span style="color:#0000c0;">=</span><span style="color:#000000;">subprocess</span><span style="color:#0000c0;">.</span><span style="color:#000000;">PIPE</span><span style="color:#0000c0;">,</span>
                            <span style="color:#000000;">stdout</span><span style="color:#0000c0;">=</span><span style="color:#000000;">subprocess</span><span style="color:#0000c0;">.</span><span style="color:#000000;">PIPE</span><span style="color:#0000c0;">,</span>
                            <span style="color:#000000;">stderr</span><span style="color:#0000c0;">=</span><span style="color:#000000;">subprocess</span><span style="color:#0000c0;">.</span><span style="color:#000000;">PIPE</span><span style="color:#0000c0;">)</span>
    <span style="color:#000000;">message</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">latex</span><span style="color:#0000c0;">.</span><span style="color:#000000;">communicate</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">0</span><span style="color:#0000c0;">]</span> <span style="color:#008000;">#get the stdout, latex.communicate()[1] gives stderr</span>
    <span style="color:#008000;">#set the data to be returned on success</span>
    <span style="color:#000000;">returned</span> <span style="color:#0000c0;">=</span> <span style="color:#0000c0;">[</span><span style="color:#004080;">'success'</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">pdfpath</span><span style="color:#0000c0;">]</span>

    <span style="color:#c00000;">if</span> <span style="color:#004080;">'\n!'</span> <span style="color:#c00000;">in</span> <span style="color:#000000;">message</span><span style="color:#0000c0;">:</span>
        <span style="color:#000000;">name</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">False</span>
        <span style="color:#000000;">ln</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">False</span>
        <span style="color:#000000;">error_msg</span> <span style="color:#0000c0;">=</span> <span style="color:#004080;">''</span>
        <span style="color:#000000;">error_ln</span> <span style="color:#0000c0;">=</span> <span style="color:#004080;">''</span>
        <span style="color:#000000;">quote</span> <span style="color:#0000c0;">=</span> <span style="color:#004080;">''</span>

        <span style="color:#c00000;">for</span> <span style="color:#000000;">line</span> <span style="color:#c00000;">in</span> <span style="color:#000000;">message</span><span style="color:#0000c0;">.</span><span style="color:#000000;">split</span><span style="color:#0000c0;">(</span><span style="color:#004080;">'\n'</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">:</span>
            <span style="color:#c00000;">if</span> <span style="color:#000000;">line</span> <span style="color:#0000c0;">==</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">:</span>
                <span style="color:#c00000;">pass</span> <span style="color:#008000;">#pass if the line is blank</span>

            <span style="color:#c00000;">elif</span> <span style="color:#000000;">line</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">0</span><span style="color:#0000c0;">]</span> <span style="color:#0000c0;">==</span> <span style="color:#004080;">'!'</span> <span style="color:#c00000;">and</span> <span style="color:#c00000;">not</span> <span style="color:#000000;">name</span><span style="color:#0000c0;">:</span>
                <span style="color:#008000;">#find error message line</span>
                <span style="color:#000000;">name</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">True</span>
                <span style="color:#000000;">error_msg</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">line</span><span style="color:#0000c0;">.</span><span style="color:#000000;">replace</span><span style="color:#0000c0;">(</span><span style="color:#004080;">'!'</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">.</span><span style="color:#000000;">strip</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span>
                                        <span style="color:#008000;">#remove all whitespace around string</span>

            <span style="color:#c00000;">elif</span> <span style="color:#000000;">line</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">0</span><span style="color:#0000c0;">]</span> <span style="color:#0000c0;">==</span> <span style="color:#004080;">'l'</span> <span style="color:#c00000;">and</span> <span style="color:#000000;">name</span> <span style="color:#c00000;">and</span> <span style="color:#c00000;">not</span> <span style="color:#000000;">ln</span><span style="color:#0000c0;">:</span>
                <span style="color:#008000;">#find line number and quote.</span>
                <span style="color:#008000;">#only come to this line if:</span>
                <span style="color:#008000;">#the-- first character is an 'l', there has just been an error</span>
                <span style="color:#008000;">#line and there has not been a line number before.</span>
                <span style="color:#000000;">ln</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">True</span>
                <span style="color:#000000;">string</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">line</span><span style="color:#0000c0;">.</span><span style="color:#000000;">split</span><span style="color:#0000c0;">(</span><span style="color:#004080;">' '</span><span style="color:#0000c0;">)</span>
                <span style="color:#000000;">error_ln</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">string</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">0</span><span style="color:#0000c0;">]</span><span style="color:#0000c0;">.</span><span style="color:#000000;">replace</span><span style="color:#0000c0;">(</span><span style="color:#004080;">'l.'</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">)</span>
                <span style="color:#000000;">quote</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">line</span><span style="color:#0000c0;">.</span><span style="color:#000000;">replace</span><span style="color:#0000c0;">(</span><span style="color:#000000;">string</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">0</span><span style="color:#0000c0;">]</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">)</span>

            <span style="color:#c00000;">else</span><span style="color:#0000c0;">:</span>
                <span style="color:#c00000;">pass</span>

    <span style="color:#008000;">#repeat the BibTeX command, as requested by Peter Flynn</span>
    <span style="color:#c00000;">if</span> <span style="color:#000000;">usebibtex</span> <span style="color:#0000c0;">==</span> <span style="color:#000000;">True</span><span style="color:#0000c0;">:</span>
        <span style="color:#c00000;">print</span> <span style="color:#004080;">'using bibtex'</span>
        <span style="color:#000000;">bib_err</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">bibtex</span><span style="color:#0000c0;">(</span><span style="color:#000000;">rawname</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">pdfdir</span><span style="color:#0000c0;">)</span>
        <span style="color:#c00000;">if</span> <span style="color:#000000;">bib_err</span> <span style="color:#0000c0;">!=</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">:</span>
            <span style="color:#008000;">#get an error message</span>
            <span style="color:#000000;">bibtex_error</span> <span style="color:#0000c0;">=</span> <span style="color:#0000c0;">[</span><span style="color:#004080;">'error'</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">'BibTeX error'</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">bib_err</span><span style="color:#0000c0;">]</span>
        <span style="color:#c00000;">else</span><span style="color:#0000c0;">:</span>
            <span style="color:#c00000;">pass</span>

    <span style="color:#c00000;">else</span><span style="color:#0000c0;">:</span>
        <span style="color:#c00000;">print</span> <span style="color:#004080;">'not using bibtex'</span>

        <span style="color:#008000;">#set the data to be returned on error</span>
        <span style="color:#c00000;">try</span><span style="color:#0000c0;">:</span>
            <span style="color:#000000;">returned</span> <span style="color:#0000c0;">=</span> <span style="color:#0000c0;">[</span><span style="color:#004080;">'error'</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">error_msg</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">error_ln</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">quote</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">pdffile</span><span style="color:#0000c0;">]</span>
        <span style="color:#c00000;">except</span> <span style="color:#000000;">UnboundLocalError</span><span style="color:#0000c0;">:</span>
            <span style="color:#000000;">returned</span> <span style="color:#0000c0;">=</span> <span style="color:#0000c0;">[</span><span style="color:#004080;">'success'</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">pdfpath</span><span style="color:#0000c0;">]</span>

    <span style="color:#c00000;">if</span> <span style="color:#000000;">rmlog</span><span style="color:#0000c0;">:</span>
        <span style="color:#c00000;">try</span><span style="color:#0000c0;">:</span>
            <span style="color:#000000;">os</span><span style="color:#0000c0;">.</span><span style="color:#000000;">remove</span><span style="color:#0000c0;">(</span><span style="color:#000000;">logpath</span><span style="color:#0000c0;">)</span>
        <span style="color:#c00000;">except</span> <span style="color:#000000;">OSError</span><span style="color:#0000c0;">:</span>
            <span style="color:#c00000;">pass</span>

    <span style="color:#c00000;">if</span> <span style="color:#000000;">movepdf</span> <span style="color:#0000c0;">!=</span> <span style="color:#000000;">False</span><span style="color:#0000c0;">:</span>
        <span style="color:#008000;">#bit of a quick hack, use cp to do the work:</span>
            <span style="color:#008000;">#use python to do this?</span>
        <span style="color:#000000;">os</span><span style="color:#0000c0;">.</span><span style="color:#000000;">system</span><span style="color:#0000c0;">(</span><span style="color:#004080;">'cp "%s" "%s"'</span> <span style="color:#0000c0;">%</span> <span style="color:#0000c0;">(</span><span style="color:#000000;">pdfpath</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">movepdf</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">)</span>

    <span style="color:#c00000;">if</span> <span style="color:#000000;">returned</span> <span style="color:#0000c0;">==</span> <span style="color:#0000c0;">[</span><span style="color:#004080;">'success'</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">pdfpath</span><span style="color:#0000c0;">]</span> <span style="color:#c00000;">and</span> <span style="color:#000000;">bibtex_error</span> <span style="color:#0000c0;">==</span> <span style="color:#000000;">False</span><span style="color:#0000c0;">:</span>
        <span style="color:#004080;">'''return normal traceback if everything whent ok'''</span>
        <span style="color:#c00000;">return</span> <span style="color:#000000;">returned</span>
    <span style="color:#c00000;">if</span> <span style="color:#000000;">returned</span> <span style="color:#0000c0;">!=</span> <span style="color:#0000c0;">[</span><span style="color:#004080;">'success'</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">pdfpath</span><span style="color:#0000c0;">]</span> <span style="color:#c00000;">and</span> <span style="color:#000000;">bibtex_error</span> <span style="color:#0000c0;">==</span> <span style="color:#000000;">False</span><span style="color:#0000c0;">:</span>
        <span style="color:#004080;">'''return latex error message'''</span>
        <span style="color:#c00000;">return</span> <span style="color:#000000;">returned</span>
    <span style="color:#c00000;">if</span> <span style="color:#000000;">returned</span> <span style="color:#0000c0;">==</span> <span style="color:#0000c0;">[</span><span style="color:#004080;">'success'</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">pdfpath</span><span style="color:#0000c0;">]</span> <span style="color:#c00000;">and</span> <span style="color:#000000;">bibtex_error</span> <span style="color:#0000c0;">!=</span> <span style="color:#000000;">False</span><span style="color:#0000c0;">:</span>
        <span style="color:#004080;">'''return bibtex error'''</span>
        <span style="color:#c00000;">return</span> <span style="color:#000000;">bibtex_error</span>
    <span style="color:#c00000;">if</span> <span style="color:#000000;">returned</span> <span style="color:#0000c0;">!=</span> <span style="color:#0000c0;">[</span><span style="color:#004080;">'success'</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">pdfpath</span><span style="color:#0000c0;">]</span> <span style="color:#c00000;">and</span> <span style="color:#000000;">bibtex_error</span> <span style="color:#0000c0;">!=</span> <span style="color:#000000;">False</span><span style="color:#0000c0;">:</span>
        <span style="color:#004080;">'''let the latex error have preference over bibtex error'''</span>
        <span style="color:#c00000;">return</span> <span style="color:#000000;">returned</span>

<span style="color:#c00000;">def</span> <span style="color:#000000;">bibtex</span><span style="color:#0000c0;">(</span><span style="color:#000000;">rawtexname</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">directory</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">:</span>
    <span style="color:#008000;">#os.chdir(directory)</span>

    <span style="color:#000000;">cmd</span> <span style="color:#0000c0;">=</span> <span style="color:#0000c0;">[</span><span style="color:#004080;">'bibtex'</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">rawtexname</span><span style="color:#0000c0;">]</span>
    <span style="color:#000000;">bibtex</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">subprocess</span><span style="color:#0000c0;">.</span><span style="color:#000000;">Popen</span><span style="color:#0000c0;">(</span><span style="color:#000000;">cmd</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">shell</span><span style="color:#0000c0;">=</span><span style="color:#000000;">False</span><span style="color:#0000c0;">,</span>
                            <span style="color:#000000;">stdin</span><span style="color:#0000c0;">=</span><span style="color:#000000;">subprocess</span><span style="color:#0000c0;">.</span><span style="color:#000000;">PIPE</span><span style="color:#0000c0;">,</span>
                            <span style="color:#000000;">stdout</span><span style="color:#0000c0;">=</span><span style="color:#000000;">subprocess</span><span style="color:#0000c0;">.</span><span style="color:#000000;">PIPE</span><span style="color:#0000c0;">,</span>
                            <span style="color:#000000;">stderr</span><span style="color:#0000c0;">=</span><span style="color:#000000;">subprocess</span><span style="color:#0000c0;">.</span><span style="color:#000000;">PIPE</span><span style="color:#0000c0;">)</span>
    <span style="color:#000000;">message</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">bibtex</span><span style="color:#0000c0;">.</span><span style="color:#000000;">communicate</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">0</span><span style="color:#0000c0;">]</span> <span style="color:#008000;">#get the stdout, bibtex.communicate()[1] gives stderr</span>
    <span style="color:#c00000;">print</span> <span style="color:#000000;">message</span>

    <span style="color:#000000;">error</span> <span style="color:#0000c0;">=</span> <span style="color:#004080;">''</span>
    <span style="color:#c00000;">for</span> <span style="color:#000000;">line</span> <span style="color:#c00000;">in</span> <span style="color:#000000;">message</span><span style="color:#0000c0;">.</span><span style="color:#000000;">split</span><span style="color:#0000c0;">(</span><span style="color:#004080;">'\n'</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">:</span>
        <span style="color:#c00000;">if</span> <span style="color:#000000;">error</span> <span style="color:#0000c0;">!=</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">:</span>
            <span style="color:#008000;">#if we already have the first bibtex error message</span>
            <span style="color:#c00000;">break</span>
        <span style="color:#c00000;">else</span><span style="color:#0000c0;">:</span>
            <span style="color:#008000;">#if we do not have an error message yet</span>
            <span style="color:#000000;">words</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">line</span><span style="color:#0000c0;">.</span><span style="color:#000000;">split</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span>
            <span style="color:#c00000;">if</span> <span style="color:#000000;">line</span> <span style="color:#0000c0;">==</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">:</span>
                <span style="color:#c00000;">break</span>
            <span style="color:#c00000;">elif</span> <span style="color:#000000;">line</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">0</span><span style="color:#0000c0;">]</span> <span style="color:#0000c0;">==</span> <span style="color:#004080;">'I'</span><span style="color:#0000c0;">:</span>
                <span style="color:#008000;">#if line is one of the variations on "I couldn't..."</span>
                <span style="color:#c00000;">if</span> <span style="color:#000000;">words</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">1</span><span style="color:#0000c0;">]</span> <span style="color:#0000c0;">==</span> <span style="color:#004080;">'found'</span><span style="color:#0000c0;">:</span>
                    <span style="color:#000000;">error</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">line</span><span style="color:#0000c0;">.</span><span style="color:#000000;">replace</span><span style="color:#0000c0;">(</span><span style="color:#004080;">'I'</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">.</span><span style="color:#000000;">replace</span><span style="color:#0000c0;">(</span><span style="color:#004080;">'---'</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">' '</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">.</span><span style="color:#000000;">strip</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span>
                <span style="color:#c00000;">elif</span> <span style="color:#000000;">words</span><span style="color:#0000c0;">[</span><span style="color:#0080c0;">1</span><span style="color:#0000c0;">]</span> <span style="color:#0000c0;">==</span> <span style="color:#004080;">"couldn't"</span><span style="color:#0000c0;">:</span>
                    <span style="color:#000000;">error</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">line</span><span style="color:#0000c0;">.</span><span style="color:#000000;">replace</span><span style="color:#0000c0;">(</span><span style="color:#004080;">'I'</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">)</span><span style="color:#0000c0;">.</span><span style="color:#000000;">strip</span><span style="color:#0000c0;">(</span><span style="color:#0000c0;">)</span>

            <span style="color:#c00000;">elif</span> <span style="color:#004080;">'Warning--'</span> <span style="color:#c00000;">in</span> <span style="color:#000000;">line</span><span style="color:#0000c0;">:</span>
                <span style="color:#000000;">error</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">line</span><span style="color:#0000c0;">.</span><span style="color:#000000;">replace</span><span style="color:#0000c0;">(</span><span style="color:#004080;">'Warning--I '</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">''</span><span style="color:#0000c0;">)</span>
    <span style="color:#c00000;">return</span> <span style="color:#000000;">error</span>

<span style="color:#c00000;">if</span> <span style="color:#000000;">__name__</span> <span style="color:#0000c0;">==</span> <span style="color:#004080;">'__main__'</span><span style="color:#0000c0;">:</span>
    <span style="color:#008000;">#small self test</span>
    <span style="color:#000000;">error</span> <span style="color:#0000c0;">=</span> <span style="color:#000000;">compile</span><span style="color:#0000c0;">(</span><span style="color:#004080;">'/home/louis/Desktop/tex/text.tex'</span><span style="color:#0000c0;">,</span> <span style="color:#004080;">'/home/louis/Desktop/tex'</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">True</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">movepdf</span><span style="color:#0000c0;">=</span><span style="color:#000000;">False</span><span style="color:#0000c0;">,</span> <span style="color:#000000;">usebibtex</span><span style="color:#0000c0;">=</span><span style="color:#000000;">True</span><span style="color:#0000c0;">)</span>
    <span style="color:#c00000;">print</span> <span style="color:#000000;">error</span></span></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/louistaylor.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/louistaylor.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/louistaylor.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/louistaylor.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/louistaylor.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/louistaylor.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/louistaylor.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/louistaylor.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/louistaylor.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/louistaylor.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/louistaylor.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/louistaylor.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/louistaylor.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/louistaylor.wordpress.com/224/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=224&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://louistaylor.wordpress.com/2010/03/14/using-latex-with-python/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13218384ce9602c93e4db9f0068911f8?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">louistaylor</media:title>
		</media:content>
	</item>
		<item>
		<title>how to change the gnome wallpaper from python</title>
		<link>http://louistaylor.wordpress.com/2010/02/14/how-to-change-the-gnome-wallpaper-from-python/</link>
		<comments>http://louistaylor.wordpress.com/2010/02/14/how-to-change-the-gnome-wallpaper-from-python/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 13:54:37 +0000</pubDate>
		<dc:creator>louistaylor</dc:creator>
				<category><![CDATA[programing]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[GPLv3]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://louistaylor.wordpress.com/?p=213</guid>
		<description><![CDATA[here is a quick way to change the gnome wallpaper from python. The module is importable and can be used in another program. This work is licensed under a Creative Commons GNU General Public License License. download from: code on pasteall or code from dropbox the indentation on wordpress is rubbish, so this is just [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=213&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>here is a quick way to change the gnome wallpaper from python. The module is importable and can be used in another program.</p>
<p style="text-align:center;"><a rel="license" href="http://creativecommons.org/licenses/GPL/2.0/"><img class="aligncenter" style="border-width:0;" src="http://i.creativecommons.org/l/GPL/2.0/88x62.png" alt="Creative Commons License" /></a><br />
This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/GPL/2.0/">Creative Commons GNU General Public License License</a>.</p>
<p>download from: <a title="code on pasteall" href="http://www.pasteall.org/11029/python">code on pasteall</a> or <a title="dropbox" href="http://dl.dropbox.com/u/3746044/change_wallpaper.py">code from dropbox</a></p>
<p>the indentation on wordpress is rubbish, so this is just the lines of code without indentation:</p>
<p><code><br />
#!/usr/bin/env python<br />
import os<br />
def change_wallpaper(imagefile):<br />
cmd = 'gconftool-2 -s /desktop/gnome/background/picture_filename -t string "%s"' % imagefile<br />
os.system(cmd)</code></p>
<p><code><br />
if __name__ == '__main__':<br />
change_wallpaper ('background.jpg')<br />
</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/louistaylor.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/louistaylor.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/louistaylor.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/louistaylor.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/louistaylor.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/louistaylor.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/louistaylor.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/louistaylor.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/louistaylor.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/louistaylor.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/louistaylor.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/louistaylor.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/louistaylor.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/louistaylor.wordpress.com/213/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=213&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://louistaylor.wordpress.com/2010/02/14/how-to-change-the-gnome-wallpaper-from-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13218384ce9602c93e4db9f0068911f8?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">louistaylor</media:title>
		</media:content>

		<media:content url="http://i.creativecommons.org/l/GPL/2.0/88x62.png" medium="image">
			<media:title type="html">Creative Commons License</media:title>
		</media:content>
	</item>
		<item>
		<title>python class for looking at the connected machines on the network.</title>
		<link>http://louistaylor.wordpress.com/2010/02/01/python-class-for-looking-at-the-connected-machines-on-the-network/</link>
		<comments>http://louistaylor.wordpress.com/2010/02/01/python-class-for-looking-at-the-connected-machines-on-the-network/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 23:45:06 +0000</pubDate>
		<dc:creator>louistaylor</dc:creator>
				<category><![CDATA[programing]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[GPLv3]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nmap]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://louistaylor.wordpress.com/?p=190</guid>
		<description><![CDATA[class for looking at the connected machines on the network. Can give the same output available on the network router Must be run under root, this is necessary because of nmap depends on: * nmap * python 2.6 * ping To use, you must call the function refresh() again, the indentation on this website is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=190&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>class for looking at the connected machines on the network.<br />
Can give the same output available on the network router</p>
<p>Must be run under root, this is necessary because of nmap<br />
depends on:<br />
* nmap<br />
* python 2.6<br />
* ping</p>
<p>To use, you must call the function <code>refresh()</code></p>
<p>again, the indentation on this website is non-existent, so get the code from:<br />
<a id="directlink" title="link" href="http://www.pasteall.org/10698/python">http://www.pasteall.org/10698/python</a></p>
<p>download <a title="list-hosts.py" href="http://dl.dropbox.com/u/3746044/list-hosts.py">list-hosts.py</a></p>
<p>    <span class="string">&#8221;&#8217;#!/usr/bin/env python<br />
##Copyright (C) 2010 Louis Taylor<br />
## _    ___ _____<br />
##| |  | _ \_   _|<br />
##| |__|  _/ | |<br />
##|____|_|   |_| *programus optimus est*<br />
##This program is free software: you can redistribute it and/or modify<br />
##it under the terms of the GNU General Public License as published by<br />
##the Free Software Foundation, either version 3 of the License, or<br />
##(at your option) any later version.<br />
##<br />
##This program is distributed in the hope that it will be useful,<br />
##but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
##MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br />
##GNU General Public License for more details.<br />
##<br />
##You should have received a copy of the GNU General Public License<br />
##along with this program.  If not, see http://www.gnu.org/licenses/<br />
import os, sys, re<br />
class connected:<br />
    &#8221;&#8217;<br />
    class for looking at the connected machines on the network.<br />
    Can give the same output available on the network router<br />
    Must be run under root, this is necessary because of nmap<br />
    depends on:<br />
    * nmap<br />
    * python 2.6<br />
    * ping<br />
    &#8221;&#8217;<br />
    def __init__(self):<br />
        self.ipregex = re.compile(&#8216;\(.*?\)&#8217;)<br />
        self.hostregex = re.compile(&#8216;Host\.*is up&#8217;)<br />
        self.cmd = &#8216;nmap -sP 192.168.1.1-255&#8242;<br />
        self.peopleConnected = []<br />
        self.ipConnected = []<br />
        self.MACConnected = []<br />
        self.database = []<br />
        self.current = 0<br />
        if not os.getuid() == 0:<br />
            #raise Exception, &#8216;must be run as root&#8217; #uncomment and use this if you want<br />
                                                    #it to be run as part of a larger<br />
                                                    #program<br />
            print &#8216;must be run as root&#8217;<br />
            sys.exit(1)<br />
        else:<br />
            pass<br />
    def output(self, cmd):<br />
        &#8221;&#8217;outputs the text from cmd&#8221;&#8217;<br />
        self.outputtext=os.popen(cmd).read().split(&#8216;\n&#8217;)<br />
        return self.outputtext<br />
    def refresh(self):<br />
        &#8221;&#8217;refreshes the list of machines connected to the network<br />
        You must call this function every time you expect the values to change<br />
        and want to read these changes&#8221;&#8217;<br />
        ishost = False<br />
        hasMAC = True<br />
        for line in self.output(self.cmd):<br />
            splitline = line.split(&#8216; &#8216;)<br />
            if splitline[0] == &#8216;Host&#8217;:<br />
                if not hasMAC:<br />
                    self.MACConnected += ['unknown']<br />
                self.peopleConnected += [splitline[1].replace(&#8216;.home&#8217;, &#8221;)]<br />
                ipAddress = self.ipregex.search(line)<br />
                self.ipConnected += [ipAddress.group().replace('(', '').replace(')', '')]<br />
                ishost = True<br />
                hasMAC = False<br />
            #check if the line begins with &#8216;MAC&#8217; and is after a host line<br />
            elif ishost and splitline[0] == &#8216;MAC&#8217;:<br />
                brackets = self.ipregex.search(line)<br />
                brackets = brackets.group()<br />
                line = line.replace(brackets, &#8221;).replace(&#8216;MAC Address: &#8216;, &#8221;)<br />
                self.MACConnected += [line]<br />
                hasMAC = True<br />
                ishost = False<br />
        current = -1<br />
        self.database = []<br />
        for name in self.peopleConnected:<br />
            current += 1<br />
            self.database.append(name)<br />
            self.database.append([self.ipConnected[current], self.MACConnected[current]])<br />
    def ip(self, name):<br />
        &#8221;&#8217;returns the ip address of the given computer name<br />
        returns 000.000.000.000 if none found e.g. computer not connected&#8221;&#8217;<br />
        try:<br />
            index = self.database.index(name)+1 #get the index of the item<br />
                                                #add 1 to get to the next index<br />
        except ValueError:<br />
            return &#8217;000.000.000.000&#8242;<br />
        return self.database[index][0]<br />
    def mac(self, name):<br />
        &#8221;&#8217;returns the MAC address of the given computer name<br />
        returns 00:00:00:00:00:00 if none found e.g. computer not connected&#8221;&#8217;<br />
        try:<br />
            index = self.database.index(name)+1 #get the index of the item<br />
                                                #add 1 to get to the next index<br />
        except ValueError:<br />
            return &#8217;00:00:00:00:00:00&#8242;<br />
        return self.database[index][1]<br />
    def os(self, name):<br />
        &#8221;&#8217;will try to find the name and version of the os that the ip is running.<br />
        v. slow, so run in multithreaded or prepare for a freeze<br />
        * name can be an ip address or the bssid<br />
        Warning! this function does not work, do not use&#8221;&#8217;<br />
        cmd = &#8216;sudo nmap -O %s&#8217; % name<br />
        output = self.output(cmd)<br />
    def up(self, ip):<br />
        &#8221;&#8217;returns True if the ip address replies to a ping request&#8221;&#8217;<br />
        cmd = &#8216;ping -q -c 1 %s&#8217; % ip<br />
        output = os.popen(cmd).read()<br />
        if &#8216;ping: unknown host&#8217; in output:<br />
            #trys to see if the ip address entered is invalid.<br />
            return False<br />
        elif &#8217;1 received&#8217; in output:<br />
            #try to see if the computer has receved any packets.<br />
            return True<br />
        else:<br />
            #return false because there is nothing else to do if the<br />
            #output is in a different format than usual.<br />
            return False<br />
    def names(self):<br />
        &#8221;&#8217;returns the names of the computers connected to the network&#8221;&#8217;<br />
        return self.peopleConnected<br />
if __name__ == &#8216;__main__&#8217;:<br />
    &#8221;&#8217;small self test/example of use&#8221;&#8217;<br />
    people = connected()<br />
    people.refresh()<br />
    for name in people.names():<br />
        print name<br />
        print &#8216;&#8230; MAC:&#8217;, people.mac(name)<br />
        print &#8216;&#8230; ip:&#8217;, people.ip(name)&#8221;&#8217;</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/louistaylor.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/louistaylor.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/louistaylor.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/louistaylor.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/louistaylor.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/louistaylor.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/louistaylor.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/louistaylor.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/louistaylor.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/louistaylor.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/louistaylor.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/louistaylor.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/louistaylor.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/louistaylor.wordpress.com/190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=190&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://louistaylor.wordpress.com/2010/02/01/python-class-for-looking-at-the-connected-machines-on-the-network/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13218384ce9602c93e4db9f0068911f8?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">louistaylor</media:title>
		</media:content>
	</item>
		<item>
		<title>Some free wallpapers to download.</title>
		<link>http://louistaylor.wordpress.com/2009/12/23/some-free-wallpapers-to-download/</link>
		<comments>http://louistaylor.wordpress.com/2009/12/23/some-free-wallpapers-to-download/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 11:25:03 +0000</pubDate>
		<dc:creator>louistaylor</dc:creator>
				<category><![CDATA[photographs]]></category>
		<category><![CDATA[creative commons]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://louistaylor.wordpress.com/?p=135</guid>
		<description><![CDATA[Here are some free wallpapers to download, all of these where taken by me and my wonderful camera . This work is licenced under a Creative Commons Licence. ﻿﻿This one was taken with a modified fixed-lens digital camera that allowed me to take detailed photographs of objects about 5mm away from the lens.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=135&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">Here are some free wallpapers to download, all of these where taken by me and my wonderful camera <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p style="text-align:center;"><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/uk/"><img style="border-width:0;" src="http://creativecommons.org/images/public/somerights20.png" alt="Creative Commons License" /></a><br />
This work is licenced under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/uk/">Creative Commons Licence</a>.</p>
<p><!-- p, li { white-space: pre-wrap; } --></p>
<p style="text-align:center;"><a href="http://louistaylor.files.wordpress.com/2009/12/niceskyatsea-flipped.jpg"><img class="aligncenter size-medium wp-image-140" title="niceSkyatSea-flipped" src="http://louistaylor.files.wordpress.com/2009/12/niceskyatsea-flipped.jpg?w=300&#038;h=200" alt="" width="300" height="200" /></a></p>
<p style="text-align:center;">﻿﻿This one was taken with a modified fixed-lens digital camera that allowed me to take detailed photographs of objects about 5mm away from the lens.<!--EndFragment--></p>
<p><a href="http://louistaylor.files.wordpress.com/2009/12/closeupofthespinesofsomenationalgeographics.jpg"><img class="aligncenter size-medium wp-image-136" title="CloseUpOfTheSpinesOfSomeNationalGeographics" src="http://louistaylor.files.wordpress.com/2009/12/closeupofthespinesofsomenationalgeographics.jpg?w=300&#038;h=180" alt="" width="300" height="180" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/louistaylor.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/louistaylor.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/louistaylor.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/louistaylor.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/louistaylor.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/louistaylor.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/louistaylor.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/louistaylor.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/louistaylor.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/louistaylor.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/louistaylor.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/louistaylor.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/louistaylor.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/louistaylor.wordpress.com/135/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=135&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://louistaylor.wordpress.com/2009/12/23/some-free-wallpapers-to-download/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13218384ce9602c93e4db9f0068911f8?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">louistaylor</media:title>
		</media:content>

		<media:content url="http://creativecommons.org/images/public/somerights20.png" medium="image">
			<media:title type="html">Creative Commons License</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/niceskyatsea-flipped.jpg?w=300" medium="image">
			<media:title type="html">niceSkyatSea-flipped</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/closeupofthespinesofsomenationalgeographics.jpg?w=300" medium="image">
			<media:title type="html">CloseUpOfTheSpinesOfSomeNationalGeographics</media:title>
		</media:content>
	</item>
		<item>
		<title>How to make your own free* warhammer 40k drop pod from scratch.</title>
		<link>http://louistaylor.wordpress.com/2009/12/21/how-to-make-your-own-free-warhammer-40k-drop-pod-from-scratch/</link>
		<comments>http://louistaylor.wordpress.com/2009/12/21/how-to-make-your-own-free-warhammer-40k-drop-pod-from-scratch/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 11:49:18 +0000</pubDate>
		<dc:creator>louistaylor</dc:creator>
				<category><![CDATA[painting]]></category>
		<category><![CDATA[warhammer]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[paper models]]></category>
		<category><![CDATA[photos]]></category>

		<guid isPermaLink="false">http://louistaylor.wordpress.com/?p=116</guid>
		<description><![CDATA[*You must pay for the ink and paper. This work is licenced under a Creative Commons Licence. This is a very cheap way of making warhammer 40k drop pods, you can make tons of them very quickly and inexpensively. It takes me about 10 minutes to construct one. Leave a comment if you want it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=116&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h6>*You must pay for the ink and paper.</h6>
<p style="text-align:center;"><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/uk/"><img style="border-width:0;" src="http://creativecommons.org/images/public/somerights20.png" alt="Creative Commons License" /></a><br />
This work is licenced under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/uk/">Creative Commons Licence</a>.</p>
<p>This is a very cheap way of making warhammer 40k drop pods, you can make tons of them very quickly and inexpensively. It takes me about 10 minutes to construct one.</p>
<p>Leave a comment if you want it a different colour to match your army&#8217;s colour scheme and I will email you a copy with freshly coloured paintwork.</p>
<p>Save one of these images to your computer. (choose whatever colour you like)</p>
<p><a href="http://louistaylor.files.wordpress.com/2009/12/droppod1.jpg"><img class="aligncenter size-medium wp-image-154" title="drop~pod" src="http://louistaylor.files.wordpress.com/2009/12/droppod1.jpg?w=300&#038;h=283" alt="" width="300" height="283" /></a></p>
<p><a href="http://louistaylor.files.wordpress.com/2009/12/droppodblue.jpg"><img class="aligncenter size-medium wp-image-167" title="drop~pod~blue" src="http://louistaylor.files.wordpress.com/2009/12/droppodblue.jpg?w=300&#038;h=283" alt="" width="300" height="283" /></a></p>
<p><a href="http://louistaylor.files.wordpress.com/2009/12/droppodred.jpg"><img class="aligncenter size-medium wp-image-166" title="drop~pod~red" src="http://louistaylor.files.wordpress.com/2009/12/droppodred.jpg?w=300&#038;h=283" alt="" width="300" height="283" /></a></p>
<p><a href="http://louistaylor.files.wordpress.com/2009/12/droppodgreen.jpg"><img class="aligncenter size-medium wp-image-168" title="drop~pod~green" src="http://louistaylor.files.wordpress.com/2009/12/droppodgreen.jpg?w=300&#038;h=283" alt="" width="300" height="283" /></a></p>
<p><a href="http://louistaylor.files.wordpress.com/2009/12/droppodyellow.jpg"><img class="aligncenter size-medium wp-image-169" title="drop~pod~yellow" src="http://louistaylor.files.wordpress.com/2009/12/droppodyellow.jpg?w=300&#038;h=283" alt="" width="300" height="283" /></a></p>
<p><a href="http://louistaylor.files.wordpress.com/2009/12/droppodiceblueandblazingorange.jpg"><img class="aligncenter size-medium wp-image-172" title="drop~pod~iceblueandblazingorange" src="http://louistaylor.files.wordpress.com/2009/12/droppodiceblueandblazingorange.jpg?w=300&#038;h=283" alt="" width="300" height="283" /></a></p>
<p><a href="http://louistaylor.files.wordpress.com/2010/01/droppodblack2.jpg"><img src="http://louistaylor.files.wordpress.com/2010/01/droppodblack2.jpg?w=300&#038;h=283" alt="" title="drop~pod~black" width="300" height="283" class="aligncenter size-medium wp-image-187" /></a></p>
<p>Print it on thin card or thick paper, cut in out keeping the tabs intact.</p>
<p>fold everything inwards. For each tab: apply a thin layer of PVA glue to the tab then stick it onto the main model.</p>
<p>Enjoy! Any comments, feedback, ideas for improvement or constructive criticism are greatly appreciated!</p>
<p>Example of finished model:</p>
<p><a href="http://louistaylor.files.wordpress.com/2009/12/p1050890.jpg"><img class="aligncenter size-medium wp-image-119" title="P1050890" src="http://louistaylor.files.wordpress.com/2009/12/p1050890.jpg?w=300&#038;h=200" alt="" width="300" height="200" /></a></p>
<h2 style="text-align:center;">How I made the model</h2>
<p style="text-align:center;">I first made some prototypes in <a title="blender" href="http://www.blender.org">blender</a> to get the main shape.</p>
<p style="text-align:center;"><a href="http://louistaylor.files.wordpress.com/2009/12/blenderscreenshotdroppod.png"><img class="aligncenter size-medium wp-image-129" title="blenderScreenshot~drop~pod" src="http://louistaylor.files.wordpress.com/2009/12/blenderscreenshotdroppod.png?w=300&#038;h=233" alt="" width="300" height="233" /></a></p>
<p style="text-align:center;">I then used the unfold python script to get a paper model template from these 3d models.</p>
<p style="text-align:center;"><a href="http://louistaylor.files.wordpress.com/2009/12/space-marine-drop-pod.jpg"><img class="aligncenter size-medium wp-image-130" title="space marine drop pod" src="http://louistaylor.files.wordpress.com/2009/12/space-marine-drop-pod.jpg?w=300&#038;h=283" alt="" width="300" height="283" /></a></p>
<p style="text-align:center;">Using these templates, I painted in the detail with <a title="The Gimp" href="http://www.gimp.org">the Gimp</a> from scratch.</p>
<p><a href="http://louistaylor.files.wordpress.com/2009/12/droppod1.jpg"><img class="aligncenter size-medium wp-image-154" title="drop~pod" src="http://louistaylor.files.wordpress.com/2009/12/droppod1.jpg?w=300&#038;h=283" alt="" width="300" height="283" /></a></p>
<p>base .blend files can be downloaded from here (4 mb):</p>
<p><a href="http://dl.dropbox.com/u/3746044/drop_pop.blend">http://dl.dropbox.com/u/3746044/drop_pop.blend</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/louistaylor.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/louistaylor.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/louistaylor.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/louistaylor.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/louistaylor.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/louistaylor.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/louistaylor.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/louistaylor.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/louistaylor.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/louistaylor.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/louistaylor.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/louistaylor.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/louistaylor.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/louistaylor.wordpress.com/116/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=116&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://louistaylor.wordpress.com/2009/12/21/how-to-make-your-own-free-warhammer-40k-drop-pod-from-scratch/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13218384ce9602c93e4db9f0068911f8?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">louistaylor</media:title>
		</media:content>

		<media:content url="http://creativecommons.org/images/public/somerights20.png" medium="image">
			<media:title type="html">Creative Commons License</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/droppod1.jpg?w=300" medium="image">
			<media:title type="html">drop~pod</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/droppodblue.jpg?w=300" medium="image">
			<media:title type="html">drop~pod~blue</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/droppodred.jpg?w=300" medium="image">
			<media:title type="html">drop~pod~red</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/droppodgreen.jpg?w=300" medium="image">
			<media:title type="html">drop~pod~green</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/droppodyellow.jpg?w=300" medium="image">
			<media:title type="html">drop~pod~yellow</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/droppodiceblueandblazingorange.jpg?w=300" medium="image">
			<media:title type="html">drop~pod~iceblueandblazingorange</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2010/01/droppodblack2.jpg?w=300" medium="image">
			<media:title type="html">drop~pod~black</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/p1050890.jpg?w=300" medium="image">
			<media:title type="html">P1050890</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/blenderscreenshotdroppod.png?w=300" medium="image">
			<media:title type="html">blenderScreenshot~drop~pod</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/space-marine-drop-pod.jpg?w=300" medium="image">
			<media:title type="html">space marine drop pod</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/droppod1.jpg?w=300" medium="image">
			<media:title type="html">drop~pod</media:title>
		</media:content>
	</item>
		<item>
		<title>python temperature checker</title>
		<link>http://louistaylor.wordpress.com/2009/12/12/python-temperature-checker/</link>
		<comments>http://louistaylor.wordpress.com/2009/12/12/python-temperature-checker/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 22:51:26 +0000</pubDate>
		<dc:creator>louistaylor</dc:creator>
				<category><![CDATA[programing]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[GPLv3]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://louistaylor.wordpress.com/?p=89</guid>
		<description><![CDATA[here is a quick python module I wrote to return a list of the current temperatures of the cores in a duel core processor computer. Works fine on my computer, not sure about other peoples. It is more efficient than it looks, as the the file it is reading is stored in a pseudo-filesystem which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=89&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>here is a quick python module I wrote to return a list of the current temperatures of the cores in a duel core processor computer. Works fine on my computer, not sure about other peoples. It is more efficient than it looks, as the the file it is reading is stored in a pseudo-filesystem which is in memory (at least I think so anyway)</p>
<p>temperature.py</p>
<pre class="code"><span class="keyword">def</span> <span class="name">findtemperature</span><span class="operator">(</span><span class="operator">)</span><span class="operator">:</span>
    <span class="string">'''(c) 2009 Louis Taylor
       licensed under GPLv2

    returns an list of an integer for
    each processor in a duel-core computer, in Celcius.
    e.g. ['temperature for processor 0:', 38, 'temperature for processor 1:', 29]
    if your os != linux2 it will not work'''</span>

    <span class="name">process1file</span><span class="operator">=</span><span class="name">open</span><span class="operator">(</span><span class="string">'/proc/acpi/thermal_zone/TZS0/temperature'</span><span class="operator">,</span> <span class="string">'r'</span><span class="operator">)</span>
    <span class="name">process1file</span><span class="operator">=</span><span class="name">process1file</span><span class="operator">.</span><span class="name">readlines</span><span class="operator">(</span><span class="operator">)</span>
    <span class="name">process1file</span><span class="operator">=</span><span class="name">str</span><span class="operator">(</span><span class="name">process1file</span><span class="operator">)</span>
    <span class="name">temp1</span><span class="operator">=</span><span class="name">process1file</span><span class="operator">.</span><span class="name">split</span><span class="operator">(</span><span class="operator">)</span>
    <span class="name">temp1</span><span class="operator">=</span><span class="name">temp1</span><span class="operator">[</span><span class="number">1</span><span class="operator">]</span>

    <span class="name">process2file</span><span class="operator">=</span><span class="name">open</span><span class="operator">(</span><span class="string">'/proc/acpi/thermal_zone/TZS1/temperature'</span><span class="operator">,</span> <span class="string">'r'</span><span class="operator">)</span>
    <span class="name">process2file</span><span class="operator">=</span><span class="name">process2file</span><span class="operator">.</span><span class="name">readlines</span><span class="operator">(</span><span class="operator">)</span>
    <span class="name">process2file</span><span class="operator">=</span><span class="name">str</span><span class="operator">(</span><span class="name">process2file</span><span class="operator">)</span>
    <span class="name">temp2</span><span class="operator">=</span><span class="name">process2file</span><span class="operator">.</span><span class="name">split</span><span class="operator">(</span><span class="operator">)</span>
    <span class="name">temp2</span><span class="operator">=</span><span class="name">temp2</span><span class="operator">[</span><span class="number">1</span><span class="operator">]</span>

    <span class="keyword">return</span> <span class="name">list</span><span class="operator">(</span><span class="operator">[</span><span class="string">'temperature for processor 0:'</span><span class="operator">,</span><span class="name">temp1</span><span class="operator">,</span> <span class="string">'temperature for processor 1:'</span><span class="operator">,</span> <span class="name">temp2</span><span class="operator">]</span><span class="operator">)</span>
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/louistaylor.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/louistaylor.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/louistaylor.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/louistaylor.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/louistaylor.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/louistaylor.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/louistaylor.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/louistaylor.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/louistaylor.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/louistaylor.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/louistaylor.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/louistaylor.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/louistaylor.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/louistaylor.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=89&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://louistaylor.wordpress.com/2009/12/12/python-temperature-checker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13218384ce9602c93e4db9f0068911f8?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">louistaylor</media:title>
		</media:content>
	</item>
		<item>
		<title>monks of kazadurian standard bearer</title>
		<link>http://louistaylor.wordpress.com/2009/12/12/monks-of-kazadurian-standard-bearer/</link>
		<comments>http://louistaylor.wordpress.com/2009/12/12/monks-of-kazadurian-standard-bearer/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 15:09:19 +0000</pubDate>
		<dc:creator>louistaylor</dc:creator>
				<category><![CDATA[sculpting]]></category>
		<category><![CDATA[green stuff]]></category>
		<category><![CDATA[kneadite]]></category>
		<category><![CDATA[milliput]]></category>
		<category><![CDATA[monks]]></category>
		<category><![CDATA[warhammer]]></category>

		<guid isPermaLink="false">http://louistaylor.wordpress.com/?p=82</guid>
		<description><![CDATA[This was sculpted for my very slowly growing hand-sculpted army. I plan to cast this man using a one-piece mould. This is possible because I sculpted the banner separately (it is blue-tacked on in the picture). The banner is more complex, so I will sculpt a new one for each cast of this figure. If [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=82&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This was sculpted for my very slowly growing hand-sculpted army. I plan to cast this man using a one-piece mould. This is possible because I sculpted the banner separately (it is blue-tacked on in the picture). The banner is more complex, so I will sculpt a new one for each cast of this figure. If you look at the hands, you can see the oddness of my bad sculpting <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p><a href="http://louistaylor.files.wordpress.com/2009/12/dsci8106.jpg"><img class="aligncenter size-medium wp-image-83" title="dsci8106" src="http://louistaylor.files.wordpress.com/2009/12/dsci8106.jpg?w=224&#038;h=300" alt="green for standard bearer monk" width="224" height="300" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/louistaylor.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/louistaylor.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/louistaylor.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/louistaylor.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/louistaylor.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/louistaylor.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/louistaylor.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/louistaylor.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/louistaylor.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/louistaylor.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/louistaylor.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/louistaylor.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/louistaylor.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/louistaylor.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=louistaylor.wordpress.com&amp;blog=10678955&amp;post=82&amp;subd=louistaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://louistaylor.wordpress.com/2009/12/12/monks-of-kazadurian-standard-bearer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13218384ce9602c93e4db9f0068911f8?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">louistaylor</media:title>
		</media:content>

		<media:content url="http://louistaylor.files.wordpress.com/2009/12/dsci8106.jpg?w=224" medium="image">
			<media:title type="html">dsci8106</media:title>
		</media:content>
	</item>
	</channel>
</rss>
