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

<channel>
	<title>spechal.com &#187; Python</title>
	<atom:link href="http://spechal.com/category/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://spechal.com</link>
	<description>[spesh-uhl]</description>
	<lastBuildDate>Thu, 21 Jan 2010 11:50:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Python Beale Cipher Decoder</title>
		<link>http://spechal.com/2009/12/30/python-beale-cipher-decoder/</link>
		<comments>http://spechal.com/2009/12/30/python-beale-cipher-decoder/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 08:09:25 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Beale]]></category>
		<category><![CDATA[cipher]]></category>
		<category><![CDATA[Decode]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=111</guid>
		<description><![CDATA[Here is a slimmed down version of my PHP Beale Cipher Decoder script using Python.  Usage is pretty straight forward.

#
#   Beale Decoder using Python
#   Copyright 2009 Travis Crowder
#   Published under the MIT License
#

class Beale(object):

    def __init__(self):
        self.__ciphers = []
 [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a slimmed down version of my PHP Beale Cipher Decoder script using Python.  Usage is pretty straight forward.</p>
<pre class="python" name="code">
#
#   Beale Decoder using Python
#   Copyright 2009 Travis Crowder
#   Published under the MIT License
#

class Beale(object):

    def __init__(self):
        self.__ciphers = []
        self.__ciphers.append([71, 194, 38, 1701, 89, 76, 11, 83, 1629, 48, 94, 63, 132, 16, 111,
                95, 84, 341, 975,14, 40, 64, 27, 81, 139, 213, 63, 90, 1120, 8, 15,
                3, 126, 2018, 40, 74, 758, 485,604, 230, 436, 664, 582, 150, 251,
                284, 308, 231, 124, 211, 486, 225, 401, 370,11, 101, 305, 139, 189,
                17, 33, 88, 208, 193, 145, 1, 94, 73, 416, 918, 263, 28, 500,538,
                356, 117, 136, 219, 27, 176, 130, 10, 460, 25, 485, 18, 436, 65,
                84, 200, 283,118, 320, 138, 36, 416, 280, 15, 71, 224, 961, 44, 16,
                401, 39, 88, 61, 304, 12, 21,24, 283, 134, 92, 63, 246, 486, 682,
                7, 219, 184, 360, 780, 18, 64, 463, 474, 131,160, 79, 73, 440, 95,
                18, 64, 581, 34, 69, 128, 367, 460, 17, 81, 12, 103, 820, 62,116,
                97, 103, 862, 70, 60, 1317, 471, 540, 208, 121, 890, 346, 36, 150,
                59, 568,614, 13, 120, 63, 219, 812, 2160, 1780, 99, 35, 18, 21,
                136, 872, 15, 28, 170, 88, 4,30, 44, 112, 18, 147, 436, 195, 320,
                37, 122, 113, 6, 140, 8, 120, 305, 42, 58, 461,44, 106, 301, 13,
                408, 680, 93, 86, 116, 530, 82, 568, 9, 102, 38, 416, 89, 71, 216,
                728, 965, 818, 2, 38, 121, 195, 14, 326, 148, 234, 18, 55, 131,
                234, 361, 824, 5,81, 623, 48, 961, 19, 26, 33, 10, 1101, 365, 92,
                88, 181, 275, 346, 201, 206, 86,36, 219, 324, 829, 840, 64, 326,
                19, 48, 122, 85, 216, 284, 919, 861, 326, 985,233, 64, 68, 232,
                431, 960, 50, 29, 81, 216, 321, 603, 14, 612, 81, 360, 36, 51, 62,
                194, 78, 60, 200, 314, 676, 112, 4, 28, 18, 61, 136, 247, 819, 921,
                1060, 464, 895,10, 6, 66, 119, 38, 41, 49, 602, 423, 962, 302, 294,
                875, 78, 14, 23, 111, 109, 62,31, 501, 823, 216, 280, 34, 24, 150,
                1000, 162, 286, 19, 21, 17, 340, 19, 242, 31,86, 234, 140, 607,
                115, 33, 191, 67, 104, 86, 52, 88, 16, 80, 121, 67, 95, 122, 216,
                548, 96, 11, 201, 77, 364, 218, 65, 667, 890, 236, 154, 211, 10,
                98, 34, 119, 56,216, 119, 71, 218, 1164, 1496, 1817, 51, 39, 210,
                36, 3, 19, 540, 232, 22, 141, 617,84, 290, 80, 46, 207, 411, 150,
                29, 38, 46, 172, 85, 194, 39, 261, 543, 897, 624, 18,212, 416, 127,
                931, 19, 4, 63, 96, 12, 101, 418, 16, 140, 230, 460, 538, 19, 27,
                88,612, 1431, 90, 716, 275, 74, 83, 11, 426, 89, 72, 84, 1300,
                1706, 814, 221, 132,40, 102, 34, 868, 975, 1101, 84, 16, 79, 23,
                16, 81, 122, 324, 403, 912, 227, 936,447, 55, 86, 34, 43, 212, 107,
                96, 314, 264, 1065, 323, 428, 601, 203, 124, 95, 216,814, 2906,
                654, 820, 2, 301, 112, 176, 213, 71, 87, 96, 202, 35, 10, 2, 41,
                17, 84,221, 736, 820, 214, 11, 60, 760])
        self.__ciphers.append([115, 73, 24, 807, 37, 52, 49, 17, 31, 62, 647, 22, 7, 15, 140, 47,
               29, 107, 79, 84, 56, 239, 10, 26, 811, 5, 196, 308, 85, 52, 160,
               136, 59, 211, 36, 9, 46, 316, 554, 122, 106, 95, 53, 58, 2, 42, 7,
               35, 122, 53, 31, 82, 77, 250, 196, 56, 96, 118, 71, 140, 287, 28,
               353, 37, 1005, 65, 147, 807, 24, 3, 8, 12, 47, 43, 59, 807, 45, 316,
               101, 41, 78, 154, 1005, 122, 138, 191, 16, 77, 49, 102, 57, 72, 34,
               73, 85, 35, 371, 59, 196, 81, 92, 191, 106, 273, 60, 394, 620, 270,
               220, 106, 388, 287, 63, 3, 191, 122, 43,  234, 400, 106, 290, 314,
               47, 48, 81, 96, 26, 115, 92, 158, 191, 110, 77, 85, 197, 46, 10,
               113, 140, 353, 48, 120, 106, 2, 607, 61, 420, 811, 29, 125, 14, 20,
               37, 105, 28, 248, 16, 159, 7, 35, 19, 301, 125, 110, 486, 287, 98,
               117, 511, 62, 51, 220, 37, 113, 140, 807, 138, 540, 8, 44, 287, 388,
               117, 18, 79, 344, 34, 20, 59, 511, 548, 107, 603, 220, 7, 66, 154,
               41, 20, 50, 6, 575, 122, 154, 248, 110, 61, 52, 33, 30, 5, 38, 8,
               14, 84, 57, 540, 217, 115, 71, 29, 84, 63, 43, 131, 29, 138, 47, 73,
               239, 540, 52, 53, 79, 118, 51, 44, 63, 196, 12, 239, 112, 3, 49, 79,
               353, 105, 56, 371, 557, 211, 515, 125, 360, 133, 143, 101, 15, 284,
               540, 252, 14, 205, 140, 344, 26, 811, 138, 115, 48, 73, 34, 205,
               316, 607, 63, 220, 7, 52, 150, 44, 52, 16, 40, 37, 158, 807, 37,
               121, 12, 95, 10, 15, 35, 12, 131, 62, 115, 102, 807, 49, 53, 135,
               138, 30, 31, 62, 67, 41,  85, 63, 10, 106, 807, 138, 8, 113, 20, 32,
               33, 37, 353, 287, 140, 47, 85, 50, 37, 49, 47, 64, 6, 7, 71, 33, 4,
               43, 47, 63, 1, 27, 600, 208, 230, 15, 191, 246, 85, 94, 511, 2270,
               20, 39, 7, 33, 44, 22, 40, 7, 10, 3, 811, 106, 44, 486, 230, 353,
               211, 200, 31, 10, 38, 140, 297, 61, 603, 320, 302, 666, 287, 2, 44,
               33, 32, 511, 548, 10, 6, 250, 557, 246, 53, 37, 52, 83, 47, 320, 38,
               33, 807, 7, 44, 30, 31, 250, 10, 15, 35, 106, 160, 113, 31, 102,
               406, 230, 540, 320, 29, 66, 33, 101, 807, 138, 301, 316, 353, 320,
               220, 37, 52, 28, 540, 320, 33, 8, 48, 107, 50, 811, 7, 2, 113, 73,
               16, 125, 11, 110, 67, 102, 807, 33, 59, 81, 158, 38, 43, 581, 138,
               19, 85, 400, 38, 43, 77, 14, 27, 8, 47, 138, 63, 140, 44, 35, 22,
               177, 106, 250, 314, 217, 2, 10, 7, 1005, 4, 20, 25, 44, 48, 7, 26,
               46, 110, 230, 807, 191, 34, 112, 147, 44, 110, 121, 125, 96, 41, 51,
               50, 140, 56, 47, 152, 540, 63, 807, 28, 42, 250, 138, 582, 98, 643,
               32, 107, 140, 112, 26, 85, 138, 540, 53, 20, 125, 371, 38, 36, 10,
               52, 118, 136, 102, 420, 150, 112, 71, 14, 20, 7, 24, 18, 12, 807,
               37, 67, 110, 62, 33, 21, 95, 220, 511, 102, 811, 30, 83, 84, 305,
               620, 15, 2, 108, 220, 106, 353, 105, 106, 60, 275, 72, 8, 50, 205,
               185, 112, 125, 540, 65, 106, 807, 188, 96, 110, 16, 73, 33, 807,
               150, 409, 400, 50, 154, 285, 96, 106, 316, 270, 205, 101, 811, 400,
               8, 44, 37, 52, 40, 241, 34, 205, 38, 16, 46, 47, 85, 24, 44, 15, 64,
               73, 138, 807, 85, 78, 110, 33, 420, 505, 53, 37, 38, 22, 31, 10,
               110, 106, 101, 140, 15, 38, 3, 5, 44, 7, 98, 287, 135, 150, 96, 33,
               84, 125, 807, 191, 96, 511, 118, 440, 370, 643, 466, 106, 41, 107,
               603, 220, 275, 30, 150, 105, 49, 53, 287, 250, 208, 134, 7, 53, 12,
               47, 85, 63, 138, 110, 21, 112, 140, 485, 486, 505, 14, 73, 84, 575,
               1005, 150, 200, 16, 42, 5, 4, 25, 42, 8, 16, 811, 125, 160, 32, 205,
               603, 807, 81, 96, 405, 41, 600, 136, 14, 20, 28, 26, 353, 302, 246,
               8, 131, 160, 140, 84, 440, 42, 16, 811, 40, 67, 101, 102, 194, 138,
               205, 51, 63, 241, 540, 122, 8, 10, 63, 140, 47, 48, 140, 288])
        self.__ciphers.append([317, 8, 92, 73, 112, 89, 67, 318, 28, 96, 107, 41, 631, 78, 146,
                397, 118, 98, 114, 246, 348, 116, 74, 88, 12, 65, 32, 14, 81, 19,
                76, 121, 216, 85, 33, 66, 15, 108, 68, 77, 43, 24, 122, 96, 117, 36,
                211, 301, 15, 44, 11, 46, 89, 18, 136, 68, 317, 28, 90, 82, 304, 71,
                43, 221, 198, 176, 310, 319, 81, 99, 264, 380, 56, 37, 319, 2, 44,
                53, 28, 44, 75, 98, 102, 37, 85, 107, 117, 64, 88, 136, 48, 154, 99,
                175, 89, 315, 326, 78, 96, 214, 218, 311, 43, 89, 51, 90, 75, 128,
                96, 33, 28, 103, 84, 65, 26, 41, 246, 84, 270, 98, 116, 32, 59, 74,
                66, 69, 240, 15, 8, 121, 20, 77, 89, 31, 11, 106, 81, 191, 224, 328,
                18, 75, 52, 82, 117, 201, 39, 23, 217, 27, 21, 84, 35, 54, 109, 128,
                49, 77, 88, 1, 81, 217, 64, 55, 83, 116, 251, 269, 311, 96, 54, 32,
                120, 18, 132, 102, 219, 211, 84, 150, 219, 275, 312, 64, 10, 106,
                87, 75, 47, 21, 29, 37, 81, 44, 18, 126, 115, 132, 160, 181, 203,
                76, 81, 299, 314, 337, 351, 96, 11, 28, 97, 318, 238, 106, 24, 93,
                3, 19, 17, 26, 60, 73, 88, 14, 126, 138, 234, 286, 297, 321, 365,
                264, 19, 22, 84, 56, 107, 98, 123, 111, 214, 136, 7, 33, 45, 40, 13,
                28, 46, 42, 107, 196, 227, 344, 198, 203, 247, 116, 19, 8, 212, 230,
                31, 6, 328, 65, 48, 52, 59, 41, 122, 33, 117, 11, 18, 25, 71, 36,
                45, 83, 76, 89, 92, 31, 65, 70, 83, 96, 27, 33, 44, 50, 61, 24, 112,
                136, 149, 176, 180, 194, 143, 171, 205, 296, 87, 12, 44, 51, 89, 98,
                34, 41, 208, 173, 66, 9, 35, 16, 95, 8, 113, 175, 90, 56, 203, 19,
                177, 183, 206, 157, 200, 218, 260, 291, 305, 618, 951, 320, 18, 124,
                78, 65, 19, 32, 124, 48, 53, 57, 84, 96, 207, 244, 66, 82, 119, 71,
                11, 86, 77, 213, 54, 82, 316, 245, 303, 86, 97, 106, 212, 18, 37,
                15, 81, 89, 16, 7, 81, 39, 96, 14, 43, 216, 118, 29, 55, 109, 136,
                172, 213, 64, 8, 227, 304, 611, 221, 364, 819, 375, 128, 296, 1, 18,
                53, 76, 10, 15, 23, 19, 71, 84, 120, 134, 66, 73, 89, 96, 230, 48,
                77, 26, 101, 127, 936, 218, 439, 178, 171, 61, 226, 313, 215, 102,
                18, 167, 262, 114, 218, 66, 59, 48, 27, 19, 13, 82, 48, 162, 119,
                34, 127, 139, 34, 128, 129, 74, 63, 120, 11, 54, 61, 73, 92, 180,
                66, 75, 101, 124, 265, 89, 96, 126, 274, 896, 917, 434, 461, 235,
                890, 312, 413, 328, 381, 96, 105, 217, 66, 118, 22, 77, 64, 42, 12,
                7, 55, 24, 83, 67, 97, 109, 121, 135, 181, 203, 219, 228, 256, 21,
                34, 77, 319, 374, 382, 675, 684, 717, 864, 203, 4, 18, 92, 16, 63,
                82, 22, 46, 55, 69, 74, 112, 134, 186, 175, 119, 213, 416, 312, 343,
                264, 119, 186, 218, 343, 417, 845, 951, 124, 209, 49, 617, 856, 924,
                936, 72, 19, 28, 11, 35, 42, 40, 66, 85, 94, 112, 65, 82, 115, 119,
                236, 244, 186, 172, 112, 85, 6, 56, 38, 44, 85, 72, 32, 47, 73, 96,
                124, 217, 314, 319, 221, 644, 817, 821, 934, 922, 416, 975, 10, 22,
                18, 46, 137, 181, 101, 39, 86, 103, 116, 138, 164, 212, 218, 296,
                815, 380, 412, 460, 495, 675, 820, 952])

    def decode(self, text, cipher):
        cipher = self.__ciphers[cipher]
        for cipherKey in cipher:
            try:
                print text[cipherKey],
            except Exception, e:
                pass # out of range

text = &quot;This is a test of the emergency broadcast system.  If this were an actual warning, something else would be said right about ... now!&quot;

obj = Beale()
obj.decode(text, 0)
</pre>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/12/30/python-beale-cipher-decoder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Button Command Parameter</title>
		<link>http://spechal.com/2009/12/02/python-button-command-parameter/</link>
		<comments>http://spechal.com/2009/12/02/python-button-command-parameter/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 10:05:15 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Button]]></category>
		<category><![CDATA[Tkinter]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=100</guid>
		<description><![CDATA[Here is a crude example of how to pass a parameter to the command of your Tkinter Button.

import Tkinter

def command(text):
    ButtonText.set(text)

root = Tkinter.Tk()

ButtonText = Tkinter.StringVar()
ButtonText.set("Do Callback")
Tkinter.Button(root, textvariable=ButtonText, command=lambda x="Hello World!": command(x)).pack()

root.mainloop()

]]></description>
			<content:encoded><![CDATA[<p>Here is a crude example of how to pass a parameter to the command of your Tkinter Button.</p>
<pre class="python" name="code">
import Tkinter

def command(text):
    ButtonText.set(text)

root = Tkinter.Tk()

ButtonText = Tkinter.StringVar()
ButtonText.set("Do Callback")
Tkinter.Button(root, textvariable=ButtonText, command=lambda x="Hello World!": command(x)).pack()

root.mainloop()
</pre>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/12/02/python-button-command-parameter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python MySQL Associative Array</title>
		<link>http://spechal.com/2009/11/27/python-mysql-associative-array/</link>
		<comments>http://spechal.com/2009/11/27/python-mysql-associative-array/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 23:26:04 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=87</guid>
		<description><![CDATA[By default, the MySQLdb module to access a MySQL database returns the data as an integer indexed array.  Sometimes this is not desirable and an associative array is preferred, such as the mysql_fetch_assoc function in PHP.  In addition, we will be using the pprint module which is similar PHP&#8217;s print_r
Here is the Python [...]]]></description>
			<content:encoded><![CDATA[<p>By default, the MySQLdb module to access a MySQL database returns the data as an integer indexed array.  Sometimes this is not desirable and an associative array is preferred, such as the mysql_fetch_assoc function in PHP.  In addition, we will be using the pprint module which is similar PHP&#8217;s print_r</p>
<p>Here is the Python equivalent:</p>
<pre class="python" name="code">
import MySQLdb
import pprint
# connect to the database here
db = MySQLdb.connect(...)
c = db.cursor(cursorclass=MySQLdb.cursors.DictCursor)
query = "SELECT `name`, `address` FROM `table`"
c.execute(query)
rows = c.fetchall()
c.close()
pprint.pprint(rows) # i.e. print_r($rows)
</pre>
<p>Hope that helps someone.</p>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/11/27/python-mysql-associative-array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python emulate mouse click in Windows</title>
		<link>http://spechal.com/2009/11/20/python-emulate-mouse-click-in-windows/</link>
		<comments>http://spechal.com/2009/11/20/python-emulate-mouse-click-in-windows/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 14:38:18 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=76</guid>
		<description><![CDATA[The following bit of code, which requires the win32api, simulates a mouse click using Python under the Windows OS.

import win32api, win32con

def click(x,y):
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)

click(100, 100) # simulate mouse click at 100px, 100px

]]></description>
			<content:encoded><![CDATA[<p>The following bit of code, which requires the win32api, simulates a mouse click using Python under the Windows OS.</p>
<pre class="python" name="code">
import win32api, win32con

def click(x,y):
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)

click(100, 100) # simulate mouse click at 100px, 100px
</pre>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/11/20/python-emulate-mouse-click-in-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Print Screen and Save Image in Windows</title>
		<link>http://spechal.com/2009/11/20/python-print-screen-and-save-image-in-windows/</link>
		<comments>http://spechal.com/2009/11/20/python-print-screen-and-save-image-in-windows/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 00:07:14 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=70</guid>
		<description><![CDATA[So you need to do a &#8220;Print Screen&#8221; and save the image in the clipboard huh?  I had that exact need too.  Let me save you a few hours of trouble and tell you that the win32clipboard does not yet have the ability to return the contents of the clipboard when the contents are BITMAP, [...]]]></description>
			<content:encoded><![CDATA[<p>So you need to do a &#8220;Print Screen&#8221; and save the image in the clipboard huh?  I had that exact need too.  Let me save you a few hours of trouble and tell you that the win32clipboard does not yet have the ability to return the contents of the clipboard when the contents are BITMAP, despite the CF_BITMAP constant.</p>
<p>How do you do it then?  I was wondering the same thing.  Behold, PIL.  PIL, the Python Image Library, saved me from a massive headache.</p>
<p>Here is the code to take a screen shot and save it.  You will need the win32api and PIL libraries.</p>
<pre class="python" name="code">
import win32api, win32con, ImageGrab
win32api.keybd_event(win32con.VK_SNAPSHOT, 1)
im = ImageGrab.grabclipboard()
im.save(&quot;screenshot.jpg&quot;, &quot;JPEG&quot;)
</pre>
<p>Now wasn&#8217;t that easy!</p>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/11/20/python-print-screen-and-save-image-in-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Abstract Snow Art using PyGame</title>
		<link>http://spechal.com/2009/11/17/python-abstract-snow-art/</link>
		<comments>http://spechal.com/2009/11/17/python-abstract-snow-art/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 02:27:12 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Abstract]]></category>
		<category><![CDATA[Art]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=56</guid>
		<description><![CDATA[
#
#   Abstract Random Snow Art
#   Copyright 2009 Travis Crowder
#   travis.crowder@spechal.com
#   Published under the MIT License
#
import pygame, sys, random
from pygame.color import THECOLORS

pygame.init()

screen = pygame.display.set_mode([640,480])
screen.fill([0,0,0])

for i in range(1, 2500):
    top = random.randint(2, 478)
    left = random.randint(2, 638)
    color_name = random.choice(THECOLORS.keys())
 [...]]]></description>
			<content:encoded><![CDATA[<pre class="python" name="code">
#
#   Abstract Random Snow Art
#   Copyright 2009 Travis Crowder
#   travis.crowder@spechal.com
#   Published under the MIT License
#
import pygame, sys, random
from pygame.color import THECOLORS

pygame.init()

screen = pygame.display.set_mode([640,480])
screen.fill([0,0,0])

for i in range(1, 2500):
    top = random.randint(2, 478)
    left = random.randint(2, 638)
    color_name = random.choice(THECOLORS.keys())
    color = THECOLORS[color_name]
    pygame.draw.rect(screen, color, [left, top, 1, 1], 1)
pygame.display.flip()
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
</pre>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/11/17/python-abstract-snow-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Abstract Box Art using PyGame</title>
		<link>http://spechal.com/2009/11/17/python-abstract-box-art/</link>
		<comments>http://spechal.com/2009/11/17/python-abstract-box-art/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 02:21:35 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Abstract]]></category>
		<category><![CDATA[Art]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=53</guid>
		<description><![CDATA[
#
#   Abstract Random Box Art
#   Copyright 2009 Travis Crowder
#   travis.crowder@spechal.com
#   Published under the MIT License
#
import pygame, sys, random
from pygame.color import THECOLORS

pygame.init()

screen = pygame.display.set_mode([640,480])
screen.fill([0,0,0])

for i in range(1, 100):
    width = random.randint(0, 250)
    height = random.randint(0, 250)
    top = random.randint(5, [...]]]></description>
			<content:encoded><![CDATA[<pre class="python" name="code">
#
#   Abstract Random Box Art
#   Copyright 2009 Travis Crowder
#   travis.crowder@spechal.com
#   Published under the MIT License
#
import pygame, sys, random
from pygame.color import THECOLORS

pygame.init()

screen = pygame.display.set_mode([640,480])
screen.fill([0,0,0])

for i in range(1, 100):
    width = random.randint(0, 250)
    height = random.randint(0, 250)
    top = random.randint(5, 435)
    left = random.randint(5, 375)
    color_name = random.choice(THECOLORS.keys())
    color = THECOLORS[color_name]
    line_width = random.randint(1,3)
    pygame.draw.rect(screen, color, [left, top, width, height], line_width)
pygame.display.flip()
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
</pre>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/11/17/python-abstract-box-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Temperature Converter (F to C)</title>
		<link>http://spechal.com/2009/11/16/python-temperature-converter-f-to-c/</link>
		<comments>http://spechal.com/2009/11/16/python-temperature-converter-f-to-c/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 21:43:53 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=49</guid>
		<description><![CDATA[
#
# Convert Fahrenheit to Centigrade
# Copyright 2009 Travis Crowder
# travis.crowder@spechal.com
# Published under the MIT License
#
degrees = input(&#34;Enter the temperature in Fahrenheit to convert: &#34;);
print degrees, &#34;Fahrenheit is&#34;, (degrees - 32.0) * 5/9, &#34;Centigrade&#34;

]]></description>
			<content:encoded><![CDATA[<pre class="python" name="code">
#
# Convert Fahrenheit to Centigrade
# Copyright 2009 Travis Crowder
# travis.crowder@spechal.com
# Published under the MIT License
#
degrees = input(&quot;Enter the temperature in Fahrenheit to convert: &quot;);
print degrees, &quot;Fahrenheit is&quot;, (degrees - 32.0) * 5/9, &quot;Centigrade&quot;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/11/16/python-temperature-converter-f-to-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Guessing Game</title>
		<link>http://spechal.com/2009/11/16/python-guessing-game/</link>
		<comments>http://spechal.com/2009/11/16/python-guessing-game/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 20:30:03 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=45</guid>
		<description><![CDATA[
#
#  Guessing Game
#  Copyright 2009 Travis Crowder
#  travis.crowder@spechal.com
#  Published under the MIT License
#
import random

secret = random.randint(1,100)
guess = 0
guesses = 0

print &#34;Guess the secret number between 1 and 100!&#34;

while guess != secret:
    guesses = guesses + 1
    guess = input(&#34;Enter your guess: &#34;)
    [...]]]></description>
			<content:encoded><![CDATA[<pre class="python" name="code">
#
#  Guessing Game
#  Copyright 2009 Travis Crowder
#  travis.crowder@spechal.com
#  Published under the MIT License
#
import random

secret = random.randint(1,100)
guess = 0
guesses = 0

print &quot;Guess the secret number between 1 and 100!&quot;

while guess != secret:
    guesses = guesses + 1
    guess = input(&quot;Enter your guess: &quot;)
    if guess &gt; secret:
        print &quot;Your guess is too high.  Try again!&quot;
    elif guess &lt; secret:
        print &quot;Your guess is too low.  Try again!&quot;
    else:
        print &quot;You guessed the secret in&quot;, guesses, &quot;guesses!  It was&quot;, secret
</pre>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/11/16/python-guessing-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
