<?xml version="1.0" encoding="windows-1252"?>
<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>The Blogging Protagonist</title>
	<atom:link href="http://www.SWHarden.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.SWHarden.com/blog</link>
	<description>A collection of thoughts in technological degradation</description>
	<lastBuildDate>Wed, 10 Mar 2010 17:10:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to Destroy a Radio Operator</title>
		<link>http://www.SWHarden.com/blog/2010-03-10-how-to-destroy-a-radio-operator/</link>
		<comments>http://www.SWHarden.com/blog/2010-03-10-how-to-destroy-a-radio-operator/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 17:09:35 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=1814</guid>
		<description><![CDATA[After priding myself on my ingenuity a few weeks ago for documenting my homemade stealth indoor apartment antenna for 40m and 20m, it seems that the green movement has contrived a plan to cripple my successes.  So far I&#8217;ve made a few dozen contacts in Morse code with my humble little setup (~20 watts [...]]]></description>
			<content:encoded><![CDATA[<p><b>After <a href="http://www.SWHarden.com/blog/images/cwQsls.jpg" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/cwQsls-389x900.jpg" alt="cwQsls" title="cwQsls" width="100" class="aligncenter size-medium wp-image-1817" align="right" /></a>priding myself on my ingenuity</b> a few weeks ago for documenting my <a href="http://www.swharden.com/blog/2010-02-07-simple-diy-stealth-apartment-antenna-for-20m-and-40m/" >homemade stealth indoor apartment antenna for 40m and 20m</a>, it seems that the green movement has contrived a plan to cripple my successes.  So far I&#8217;ve made a few dozen contacts in Morse code with my humble little setup (~20 watts of power, direct conversion receiver, indoor homemade antenna).  The photo shows some QSL cards I&#8217;ve gotten.  Anyhow, my apartment manager decided that my apartment needed to have solar panels added to it.  It&#8217;s too early to tell for sure, but spinning the dial a few times and hearing *nothing* makes me think that it dramatically impacted my reception (and likely transmission) in a dramatic way.</p>
<p><b>A few days ago&#8230;</b><br />
<a href="http://www.SWHarden.com/blog/images/before.JPG" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/before-525x393.jpg" alt="before" title="before" width="525" height="393" class="aligncenter size-medium wp-image-1816" /></a></p>
<p><b>yesterday&#8230;</b><br />
<a href="http://www.SWHarden.com/blog/images/workers.JPG" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/workers-525x393.jpg" alt="workers" title="workers" width="525" height="393" class="aligncenter size-medium wp-image-1818" /></a></p>
<p><b>today</b><br />
<a href="http://www.SWHarden.com/blog/images/after.JPG" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/after-525x393.jpg" alt="after" title="after" width="525" height="393" class="aligncenter size-medium wp-image-1815" /></a></p>
<p><b>R.I.P. AJ4VD station&#8230;</b> [sigh]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.SWHarden.com/blog/2010-03-10-how-to-destroy-a-radio-operator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Overseas QRP Transmission</title>
		<link>http://www.SWHarden.com/blog/2010-03-09-captured-overseas/</link>
		<comments>http://www.SWHarden.com/blog/2010-03-09-captured-overseas/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 23:01:16 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=1806</guid>
		<description><![CDATA[While working on the spectrograph software I&#8217;m so psychotic about completing this spring break, I happened to capture a cool signal from Italy.  IW4DXW was sending some cool signals that I captured around 10.140 MHz.  See how his callsign is written &#8220;visually&#8221; on the spectrogram? I thought I&#8217;d post it because it&#8217;s an [...]]]></description>
			<content:encoded><![CDATA[<p><b>While working on the spectrograph software</b> I&#8217;m so psychotic about completing this spring break, I happened to capture a cool signal from Italy.  IW4DXW was sending some cool signals that I captured around 10.140 MHz.  See how his callsign is written &#8220;visually&#8221; on the spectrogram? I thought I&#8217;d post it because it&#8217;s an encouraging sign that my software is going in the right direction.  Also note the numerous QRSS FSK signals around it!  So cool.<br />
<a href="http://www.SWHarden.com/blog/images/iw4dxw.jpg" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/iw4dxw-525x384.jpg" alt="iw4dxw" title="iw4dxw" width="525" height="384" class="aligncenter size-medium wp-image-1807" /></a></p>
<p><b>UPDATE!</b> The guy emailed me his station information.<br />
<table><tr><td style="text-indent: 25px; background-color: #E5E5E5; padding: 10px; border-top-width: 1px; border-bottom-width: 1px; border-left-width: 7px;border-top-style: solid; border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-top-color: #B5B5B5; border-right-color: #B5B5B5;border-bottom-color: #B5B5B5; border-left-color: #B5B5B5;border-right-width: 1px;background-image: url(http://www.swharden.com/graphics/layout_2006_08_12/quotes.jpg); background-position: left top; background-repeat: no-repeat;">Hi Scott! Thank you so much for nice report. This is a short description of my homebrew beacon. The audio source is a normal MP3/WAV player. The file (.WAV) of my hell message (8&#215;8 char) is generated using Chirphel (program by DF6NM) with a fmax~=800Hz and BW=5Hz, and processed with Csound to obtain the phase relation R = L + 90° between channels (hilbert function). A 10.140MHz oven xtal oscillator (adjusted for +880Hz) is a PLL reference used to obtain a x4 frequency. This clock with the 2 audio channels are applied to a “Softrock style” SSB phasing modulator (double H-mixer with 74HC4053 ic).</p>
<p>The LSB output signal (10.140,080MHz @ ~ -3dBm) is amplified by a 2N2222 (driver stage) and a 2SC2314 (linear PA stage ~1W P.E.P. max, but 100 – 200 mW of average power). I’m using a 30m dipole (inverted vee @ about 50 feet). 30 meters looks good today! My signal heard in VK2 too…</p>
<p>Greetings from north Italy, dear Scott!<br />
73<br />
Riccardo, IW4DXW<br />
</td></tr></table></p>
<p><b>Holy&#8230;</b> 200mW? That&#8217;s so awesome.  Maybe one day I&#8217;ll build something equally as cool and epically useless =oD I will now return to my psychotic programming project what has been eating-up my spring break.  [boom] I just snapped a screenshot for the future memory of this break. Yes, I&#8217;m on a XP machine.  I&#8217;m at the W4DFU radio club station (they have nicer computers than I do!)<br />
<a href="http://www.SWHarden.com/blog/images/epicProgramming.jpg" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/epicProgramming-525x210.jpg" alt="epicProgramming" title="epicProgramming" width="525" height="210" class="aligncenter size-medium wp-image-1812" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.SWHarden.com/blog/2010-03-09-captured-overseas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m working too hard</title>
		<link>http://www.SWHarden.com/blog/2010-03-09-im-working-too-hard/</link>
		<comments>http://www.SWHarden.com/blog/2010-03-09-im-working-too-hard/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 16:26:19 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=1800</guid>
		<description><![CDATA[Several days straight of coding all day every day has started to mess with my mind.  I&#8217;ve got to incorporate some relaxation time!  Something good &#8216;ol youtube can assist with.  I share with you the following videos today instead of Python code (there&#8217;s always time for that later).


]]></description>
			<content:encoded><![CDATA[<p><b>Several days straight of coding all day every day</b> has started to mess with my mind.  I&#8217;ve got to incorporate some relaxation time!  Something good &#8216;ol youtube can assist with.  I share with you the following videos today instead of Python code (there&#8217;s always time for that later).</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/J9OLLHkcmqw&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/J9OLLHkcmqw&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p><object width="480" height="295"><param name="movie" value="http://www.youtube.com/v/fd_Cqj7tE9o&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/fd_Cqj7tE9o&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.SWHarden.com/blog/2010-03-09-im-working-too-hard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic Image Generation with Python</title>
		<link>http://www.SWHarden.com/blog/2010-03-07-dynamic-image-generation-with-python/</link>
		<comments>http://www.SWHarden.com/blog/2010-03-07-dynamic-image-generation-with-python/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 23:47:00 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=1788</guid>
		<description><![CDATA[So here&#8217;s the problem. I&#8217;m working on a software project and I&#8217;d love the startup screen to be flashy, but not tacky.  I want the program to be ENTIRELY scripted, so pretty bitmap images are out.  I have to generate it from the script, but how can I reliably print text on an [...]]]></description>
			<content:encoded><![CDATA[<p><b>So here&#8217;s the problem.</b> I&#8217;m working on a software project and I&#8217;d love the startup screen to be flashy, but not tacky.  I want the program to be ENTIRELY scripted, so pretty bitmap images are out.  I have to generate it from the script, but how can I reliably print text on an image with fonts vary across operating systems?  (i.e., many OS&#8217;s don&#8217;t have &#8220;arial.ttf&#8221;, or no truetype fonts at all!) The solution was a creative process which will unfold before you.</p>
<p><b>First, I created a 2D binary array to represent the alphabet</b> using pixel fonts <a href="http://img.nattawat.org/images/yus3i81of22r503eyjtw.png" onclick="javascript:urchinTracker ('/outbound/article/img.nattawat.org');">such as this</a> as a reference.  The word I&#8217;m trying to create is &#8220;QRSS VD&#8221; (the name of my program). I store the data in strings, as seen below. I use 1&#8217;s to mark pixels, and spaces to mark empty spaces.</p>
<pre class="prettyprint python">data="""
1111 1111 1111 1111   1  1 111
1  1 1  1 1    1      1  1 1  1
1  1 1111 1111 1111   1  1 1  1
1 11 1 1     1    1   1 1  1  1
1111 1 11 1111 1111    1   111
"""</pre>
<p><b>Once I think it looks nice</b>, I replace the spaces with zeros to make it take up a lot of visual space&#8230;</p>
<pre class="prettyprint python">data2="""
1111011110111101111000100101110
1001010010100001000000100101001
1001011110111101111000100101001
1011010100000100001000101001001
1111010110111101111000010001110
"""</pre>
<p><b>Then I further obscure it</b> by replacing linebreaks with a different symbol, such as the number 2, then break the lines so they&#8217;re not lined up&#8230;</p>
<pre class="prettyprint python">
b="1111011110111101111000100101110210010100101000010000001001010012"
b+="1001011110111101111000100101001210110101000001000010001010010012"
b+="1111010110111101111000010001110"
</pre>
<p><b>The result is a pretty cool way</b> to obscure the text.  I don&#8217;t know why you&#8217;d want to, but if you want to make sure that no one goes in and changes the letters around (at least without making them think pretty hard about it) you could look at ways to further encrypt this data stream.  From here, I create an image using the Python Imaging Library, setting pixel values to 255*b[x,y] (so 0 stays 0 and 1 becomes 255, perfect for an 8-bit image).  After enlarging, here&#8217;s the result:</p>
<p><a href="http://www.SWHarden.com/blog/images/nearest.png" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/nearest.png" alt="nearest" title="nearest" width="495" height="105" class="aligncenter size-full wp-image-1789" /></a></p>
<p>That&#8217;s cool huh?  Now let&#8217;s make it a little bit less pixelated. It&#8217;s not a cure-all method, but blurring it up a little with a bilinear filter helps a lot&#8230;</p>
<p><a href="http://www.SWHarden.com/blog/images/bilinear.png" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/bilinear.png" alt="bilinear" title="bilinear" width="495" height="105" class="aligncenter size-full wp-image-1790" /></a></p>
<p>Then I apply the code below which applies a cool colormap to the pixel values.  I&#8217;ll provide cleaner code for this later (I have a really cool way of generating colormaps and saving them as arrays of RGB tuples).  Then I go through and plot some random sin wavs on top of it.  Sweet!  Here are 6 images generated from the program run 6 times.  Notice the randomness of the sine wavs!</p>
<p><img src="http://www.SWHarden.com/blog/images/qrss-vd-logo-0.png" alt="qrss vd" title="qrss vd" width="490" height="190" align="center" /></p>
<p><img src="http://www.SWHarden.com/blog/images/qrss-vd-logo-1.png" alt="qrss vd" title="qrss vd" width="490" height="190" align="center" /></p>
<p><img src="http://www.SWHarden.com/blog/images/qrss-vd-logo-2.png" alt="qrss vd" title="qrss vd" width="490" height="190" align="center" /></p>
<p><img src="http://www.SWHarden.com/blog/images/qrss-vd-logo-3.png" alt="qrss vd" title="qrss vd" width="490" height="190" align="center" /></p>
<p><img src="http://www.SWHarden.com/blog/images/qrss-vd-logo-4.png" alt="qrss vd" title="qrss vd" width="490" height="190" align="center" /></p>
<p><img src="http://www.SWHarden.com/blog/images/qrss-vd-logo-5.png" alt="qrss vd" title="qrss vd" width="490" height="190" align="center" /></p>
<p><b>Vwa la!</b> A different image is generated every time the script runs, and it requires no external files (bitmaps or fonts) and should work well on all operating systems.  Take the idea and run with it!</p>
<pre class="prettyprint python">
from PIL import Image
from PIL import ImageOps
from PIL import ImageFilter
from random import randint
import scipy

def genLogo():
	colormap=[(0, 0, 129), (0, 0, 134), (0, 0, 139), (0, 0, 143), (0, 0, 148), (0, 0, 152), (0, 0, 157), (0, 0, 161), (0, 0, 166), (0, 0, 170), (0, 0, 175), (0, 0, 180), (0, 0, 184), (0, 0, 189), (0, 0, 193), (0, 0, 198), (0, 0, 202), (0, 0, 207), (0, 0, 211), (0, 0, 216), (0, 0, 220), (0, 0, 225), (0, 0, 230), (0, 0, 234), (0, 0, 239), (0, 0, 243), (0, 0, 248), (0, 0, 252), (0, 0, 255), (0, 0, 255), (0, 0, 255), (0, 0, 255), (0, 2, 255), (0, 7, 255), (0, 11, 255), (0, 14, 255), (0, 18, 255), (0, 23, 255), (0, 27, 255), (0, 31, 255), (0, 34, 255), (0, 39, 255), (0, 43, 255), (0, 47, 255), (0, 51, 255), (0, 54, 255), (0, 59, 255), (0, 63, 255), (0, 67, 255), (0, 71, 255), (0, 75, 255), (0, 79, 255), (0, 83, 255), (0, 87, 255), (0, 91, 255), (0, 95, 255), (0, 99, 255), (0, 103, 255), (0, 107, 255), (0, 111, 255), (0, 115, 255), (0, 119, 255), (0, 123, 255), (0, 127, 255), (0, 131, 255), (0, 135, 255), (0, 139, 255), (0, 143, 255), (0, 147, 255), (0, 151, 255), (0, 155, 255), (0, 159, 255), (0, 163, 255), (0, 167, 255), (0, 171, 255), (0, 175, 255), (0, 179, 255), (0, 183, 255), (0, 187, 255), (0, 191, 255), (0, 195, 255), (0, 199, 255), (0, 203, 255), (0, 207, 255), (0, 211, 255), (0, 215, 255), (0, 219, 254), (0, 223, 251), (0, 227, 248), (2, 231, 245), (5, 235, 241), (7, 239, 238), (11, 243, 235), (14, 247, 232), (18, 251, 228), (21, 255, 225), (23, 255, 222), (27, 255, 219), (31, 255, 215), (34, 255, 212), (37, 255, 208), (40, 255, 205), (44, 255, 203), (47, 255, 199), (50, 255, 195), (54, 255, 192), (57, 255, 189), (60, 255, 186), (63, 255, 183), (66, 255, 179), (70, 255, 176), (73, 255, 173), (76, 255, 170), (79, 255, 166), (83, 255, 163), (86, 255, 160), (89, 255, 157), (92, 255, 154), (95, 255, 150), (99, 255, 147), (102, 255, 144), (105, 255, 141), (108, 255, 137), (112, 255, 134), (115, 255, 131), (118, 255, 128), (121, 255, 125), (124, 255, 121), (128, 255, 118), (131, 255, 115), (134, 255, 112), (137, 255, 108), (141, 255, 105), (144, 255, 102), (147, 255, 99), (150, 255, 95), (154, 255, 92), (157, 255, 89), (160, 255, 86), (163, 255, 83), (166, 255, 79), (170, 255, 76), (173, 255, 73), (176, 255, 70), (179, 255, 66), (183, 255, 63), (186, 255, 60), (189, 255, 57), (192, 255, 54), (195, 255, 50), (199, 255, 47), (202, 255, 44), (205, 255, 41), (208, 255, 37), (212, 255, 34), (215, 255, 31), (218, 255, 28), (221, 255, 24), (224, 255, 21), (228, 255, 18), (231, 255, 15), (234, 255, 12), (238, 255, 8), (241, 252, 5), (244, 248, 2), (247, 244, 0), (250, 240, 0), (254, 236, 0), (255, 233, 0), (255, 229, 0), (255, 226, 0), (255, 221, 0), (255, 218, 0), (255, 215, 0), (255, 211, 0), (255, 207, 0), (255, 203, 0), (255, 199, 0), (255, 196, 0), (255, 192, 0), (255, 188, 0), (255, 184, 0), (255, 180, 0), (255, 177, 0), (255, 173, 0), (255, 169, 0), (255, 165, 0), (255, 162, 0), (255, 159, 0), (255, 155, 0), (255, 151, 0), (255, 147, 0), (255, 143, 0), (255, 140, 0), (255, 136, 0), (255, 132, 0), (255, 128, 0), (255, 125, 0), (255, 121, 0), (255, 117, 0), (255, 114, 0), (255, 110, 0), (255, 106, 0), (255, 102, 0), (255, 99, 0), (255, 95, 0), (255, 91, 0), (255, 88, 0), (255, 84, 0), (255, 80, 0), (255, 76, 0), (255, 73, 0), (255, 69, 0), (255, 65, 0), (255, 62, 0), (255, 58, 0), (255, 54, 0), (255, 51, 0), (255, 47, 0), (255, 43, 0), (255, 39, 0), (255, 36, 0), (255, 32, 0), (255, 28, 0), (255, 25, 0), (255, 21, 0), (253, 17, 0), (248, 14, 0), (244, 10, 0), (240, 6, 0), (235, 2, 0), (230, 0, 0), (225, 0, 0), (221, 0, 0), (217, 0, 0), (212, 0, 0), (207, 0, 0), (203, 0, 0), (198, 0, 0), (194, 0, 0), (189, 0, 0), (185, 0, 0), (180, 0, 0), (175, 0, 0), (171, 0, 0), (166, 0, 0), (162, 0, 0), (157, 0, 0), (152, 0, 0), (148, 0, 0), (144, 0, 0), (139, 0, 0), (134, 0, 0), (130, 0, 0), (134, 0, 0), (130, 0, 0)]
	def red(val):
		return colormap[val][0]
	def green(val):
		return colormap[val][1]
	def blue(val):
		return colormap[val][2]
	def colorize(im):
		r=Image.eval(im,red)
		g=Image.eval(im,green)
		b=Image.eval(im,blue)
		im=Image.merge("RGB",(r,g,b))
		return im
	b="1111011110111101111000100101110210010100101000010000001001010012"
	b+="1001011110111101111000100101001210110101000001000010001010010012"
	b+="1111010110111101111000010001110"
	b=b.split("2")
	im=Image.new("L",(33+15,7+13))
	data=im.load()
	for y in range(len(b)):
		for x in range(len(b[y])):
			data[x+6,y+6]=int(b[y][x])*255
	scale=15
	im=im.resize((im.size[0]*scale,im.size[1]*scale))
	data=im.load()
	def drawSin(width,height,vertoffset,horizoffset,thickness,darkness):
		for x in range(im.size[0]):
			y=scipy.sin((x-horizoffset)/float(width))*height+vertoffset
			for i in range(thickness):
				if 0&lt;=y+i&lt;im.size[1] and 0&lt;=x&lt;im.size[0]:
					#print x,im.size[0],y+i,im.size[1]
					data[x,y+i]=data[x,y+i]+darkness

	for i in range(5):
		print "line",i
		drawSin(randint(5,75),randint(-100,200),randint(0,im.size[1]),\
				randint(0,im.size[0]),randint(3,15),70)
	for i in range(10):
		im=im.filter(ImageFilter.SMOOTH_MORE)
	im=colorize(im)
	return im

im=genLogo()
im.save('logo.png',"PNG")
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.SWHarden.com/blog/2010-03-07-dynamic-image-generation-with-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brewing Excitement</title>
		<link>http://www.SWHarden.com/blog/2010-03-06-brewing-excitement/</link>
		<comments>http://www.SWHarden.com/blog/2010-03-06-brewing-excitement/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 04:49:08 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=1784</guid>
		<description><![CDATA[Wow, I can&#8217;t believe I took-on such a massive challenge this week! Some irony lies in the fact that I&#8217;ve worked harder and learned more in the last 4 days of all-day work (researching, reading, skimming other peoples&#8217; code, and writing my own) than of the last 9 months of dental school.  This is [...]]]></description>
			<content:encoded><![CDATA[<p><b>Wow, I can&#8217;t believe I took-on such a massive challenge this week!</b> Some irony lies in the fact that I&#8217;ve worked harder and learned more in the last 4 days of all-day work (researching, reading, skimming other peoples&#8217; code, and writing my own) than of the last 9 months of dental school.  This is an incredible feeling of accomplishment.  My program, *MINE*, which I coded 100% from scratch (using Python&#8217;s scripting platform as a strong base coupled with the Python Imaging Library (PIL), Tk bindings (Tkinter)).  It polls the soundcard continuously and makes incredibly large spectrographs.  I&#8217;ll explain more about it and its rationale later.  It&#8217;s not finished, but it&#8217;s working&#8230; and working pretty darn well.  I&#8217;m floored!</p>
<p><b>Here&#8217;s what it looks like when it&#8217;s running&#8230;</b><br />
<a href="http://www.SWHarden.com/blog/images/gotit.jpg" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/gotit.jpg" alt="gotit" title="gotit" width="441" height="851" class="aligncenter size-full wp-image-1785" /></a></p>
<p><b>Pretty nice &#8216;eh?</b>  Yeah, that&#8217;s a GUI, but it can be run entirely from a headless server through a console as well. (see where I&#8217;m going with this?)  Here&#8217;s some more of the output, cropped to emphasize QRSS signals.  Keep in mind that the image below was cropped to less than 3,000 pixels high, whereas the original is over 8,000 pixels high!!!<br /><a href="http://www.SWHarden.com/blog/images/qrss_big.jpg" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/qrss_big-525x170.jpg" alt="qrss_big" title="qrss_big" width="525" height="170" class="aligncenter size-medium wp-image-1786" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.SWHarden.com/blog/2010-03-06-brewing-excitement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- You've been  LOGGED!-->
    
    
<!--

LOG DETAILS:
date: 2010-03-11
time: 23:52:54
vistor: 38.107.191.84
method: GET
request: /blog/feed/
protocol: HTTP/1.1
referrer: -
agent: CCBot/1.0 (+http://www.commoncrawl.org/bot.html)

HTML LOG LINE:
38.107.191.84 - - "GET /blog/feed/ HTTP/1.1" 200 - "-" "CCBot/1.0 (+http://www.commoncrawl.org/bot.html)"

 -->

 