<?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>hmmm.... &#187; geek</title>
	<atom:link href="http://michael.thegrebs.com/tag/geek/feed/" rel="self" type="application/rss+xml" />
	<link>http://michael.thegrebs.com</link>
	<description></description>
	<lastBuildDate>Mon, 12 Jul 2010 02:26:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Task Management with Hiveminder and Perl</title>
		<link>http://michael.thegrebs.com/2010/03/13/task-management-with-hiveminder-and-perl/</link>
		<comments>http://michael.thegrebs.com/2010/03/13/task-management-with-hiveminder-and-perl/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 23:08:25 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[hiveminder]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=247</guid>
		<description><![CDATA[This is how I manage my tasks with Hiveminder on a weekly basis and the Perl script that helps me do it. I don&#8217;t really expect the Perl script to be useful to anyone as-is but portions of it may &#8230; <a href="http://michael.thegrebs.com/2010/03/13/task-management-with-hiveminder-and-perl/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is how I manage my tasks with <a href="http://hiveminder.com/">Hiveminder</a> on a weekly basis and the Perl script that helps me do it.  I don&#8217;t really expect the Perl script to be useful to anyone as-is but portions of it may be useful to others, as well as the general work flow, so I&#8217;ve decided to share them.</p>
<p>At <a href="http://www.linode.com/">Linode</a> we have a wiki page where we list 5 or more tasks we wish to accomplish during the week.  There is a heading for each employee and below the heading we place our tasks.   Throughout the week we can add additional tasks or mark existing ones as done.</p>
<p>I&#8217;ve used <a href="http://hiveminder.com/">Hiveminder</a> for some time.  When we started the weekly task lists at <a href="http://www.linode.com/">Linode</a> I found that taking a few minutes to figure out which tasks I wish to complete in the coming week works quite well for me.  I started marking these tasks with the &#8216;week&#8217; tag in <a href="http://hiveminder.com/">Hiveminder</a>.  I quickly ended up writing a perl script, <a href="http://thegrebs.com/~michael/tasks/week.txt">week.pl</a>, to help me manage hem.</p>
<h3>My Weekly Workflow</h3>
<p>First thing Monday morning I run:</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ week.pl report</div></div>
<p>This prints a report with two sections.  The first section lists tasks that currently have the &#8216;week&#8217; tag with a line through the task ID if it is completed.  This gives me a nice summary of what I planned on accomplishing the previous week and how I did.  The second section lists all of my tasks currently visible in <a href="http://hiveminder.com/">Hiveminder</a>.  I hide tasks that I know I&#8217;m not going to work on in the next few weeks so this list is usually no more than 20 or 30 items.</p>
<p><img src="http://thegrebs.com/~michael/tasks/report.png" height="260" width="334" alt="Sample report Image"/></p>
<p>I take this report into the Monday morning meeting with me.  During the meeting, I&#8217;ll glance over this list and select items for the upcoming week.  I also use this page to take notes on during the meeting, writing down any new tasks that come up in the meeting.</p>
<p>After the meeting, I add any new tasks generated in the meeting that I won&#8217;t be working on this week to <a href="http://hiveminder.com/">Hiveminder</a>.</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ todo.pl braindump</div></div>
<p><tt>todo.pl</tt> comes from <a href="http://search.cpan.org/~alexmv/App-Todo-0.97/bin/todo.pl">App::Todo</a>, a command line <a href="http://hiveminder.com/">Hiveminder</a> interface.  The braindump command launches $EDITOR where I add new tasks, one per line.  The <a href="http://hiveminder.com/help/reference/tasklists/braindump.html">braindump syntax</a> allows for specifying tags, setting priorities, and other things as well.</p>
<p>Next, I prepare the task list for the upcoming week:</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ week.pl edit<br />
Carry over the following tasks?<br />
bring about world peace (y or n) [default y] y<br />
write some awesome pre<br />
do some other cool stuff<br />
create practical cold fusion (y or n) [default y] n<br />
return library book</div></div>
<p>The <tt>edit</tt> command iterates over each task tagged with &#8216;week&#8217; if  the task is not marked completed. It prompts whether or not I wish to carry the task over to this week (leave the tag). Any tasks marked completed have the tag removed automatically.</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ week.pl add<br />
Created:<br />
&nbsp; &nbsp; &nbsp; &nbsp; #YRVK write an awesome report for Tom [week dev]<br />
&nbsp; &nbsp; &nbsp; &nbsp; #YRVL test some new stuff for deployment [week admin]</div></div>
<p>The <tt>add</tt> command works the same as todo.pl&#8217;s braindump command except the &#8216;week&#8217; tag is automatically applied to the newly created tasks.  The full braindump syntax is available for specifying other properties of the tasks.</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ week.pl update https://path.to.trac/wiki/Tasks/2010-03-15<br />
Sup dawg, I heard you like tasks so I did ur shit for you</div></div>
<p>The <tt>update</tt> command grabs my tasks tagged with &#8216;week&#8217; and formats them one per line started with &#8216; * &#8216;, a wiki bullet list.  It grabs the current wiki page, finds my heading, substitutes the formatted task list under the heading, and submits the change.  It also stores the path given in the YAML config file.</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$week.pl go</div></div>
<p>This opens the stored URL for this week&#8217;s tasks wiki page in my default browser, allowing me to confirm week.pl did what it&#8217;s supposed to.</p>
<p>Later in the week once I&#8217;ve done something:</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ week.pl done tom<br />
#YH7T bring about world peace [dev week]<br />
#YRVL test some new stuff for deployment [week admin]<br />
[DONE] #YRVK write an awesome report for Tom [week dev]</div></div>
<p>This retrieves the task(s) tagged &#8216;week&#8217; that are not marked completed containing the given string.  If there was only one match, the script marks it as done and then outputs the current state of tasks tagged &#8216;week&#8217;.</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ week.pl update<br />
Sup dawg, I heard you like tasks so I did ur shit for you</div></div>
<p>Same as <tt>update</tt> before, except when no URL is given, the URL is read from the configuration file.  This way I only need to worry about the URL once per week, the first time I update for the week.</p>
<h3>Conclusion</h3>
<p>So there you have it.  If you are also using <a href="http://hiveminder.com/">Hiveminder</a>, maybe aspects of my work flow will make sense for you and pieces of the Perl script may be useful.  If you aren&#8217;t using <a href="http://hiveminder.com/">Hiveminder</a>, maybe you will be inspired to check it out.  I use michael@thegrebs.com on <a href="http://hiveminder.com/">Hiveminder</a> in case you feel the need to assign me a task or wish to gift me another year of Hiveminder Pro ;)</p>
<p><a href="http://thegrebs.com/~michael/tasks/week.txt">week.pl</a></p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2010/03/13/task-management-with-hiveminder-and-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YAPC&#124;10</title>
		<link>http://michael.thegrebs.com/2009/06/01/yapc10/</link>
		<comments>http://michael.thegrebs.com/2009/06/01/yapc10/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 17:53:44 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[yapc]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=227</guid>
		<description><![CDATA[I will be at YAPC&#124;10 in Pittsburgh the end of June. Here&#8217;s a schedule of the talks I plan to attend. There are a few holes not because the talks at those time suck but because they rock so hard &#8230; <a href="http://michael.thegrebs.com/2009/06/01/yapc10/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I will be at <a href="http://yapc10.org/yn2009/">YAPC|10</a> in Pittsburgh the end of June.  Here&#8217;s a schedule of the talks I plan to attend.  There are a few holes not because the talks at those time suck but because they rock so hard I can&#8217;t decide which I want to attend.</p>
<p><iframe src="https://www.google.com/calendar/hosted/thegrebs.com/embed?mode=AGENDA&amp;height=600&amp;wkst=1&amp;bgcolor=%23FFFFFF&amp;src=thegrebs.com_hoqmg0gv7oikpa0op34pjbm5tg%40group.calendar.google.com&amp;color=%23B1440E&amp;ctz=America%2FNew_York" style=" border:solid 1px #777 " width="500" height="600" frameborder="0" scrolling="no"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2009/06/01/yapc10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playing a Tone Through an Arduino Connected Piezo</title>
		<link>http://michael.thegrebs.com/2009/03/23/playing-a-tone-through-an-arduino-connected-piezo/</link>
		<comments>http://michael.thegrebs.com/2009/03/23/playing-a-tone-through-an-arduino-connected-piezo/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 02:27:52 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[piezo]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=214</guid>
		<description><![CDATA[I&#8217;m working on a top secret project, all I&#8217;ll say is it involves the Arduino, Twitter, and the refrigerator, and needed to play a tone through a piezo connected to the Arduino. I looked around and the closest I could &#8230; <a href="http://michael.thegrebs.com/2009/03/23/playing-a-tone-through-an-arduino-connected-piezo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on a top secret project, all I&#8217;ll say is it involves the Arduino, Twitter, and the refrigerator, and needed to play a tone through a piezo connected to the Arduino.  I looked around and the closest I could find was <a href="http://www.arduino.cc/en/Tutorial/PlayMelody">a tutorial  that included code to play a melody</a>.</p>
<p>This wasn&#8217;t quite what I wanted and the playTone function expects the notes and timing to be in global variables which makes the baby jesus cry.  The premise was simple though.  Take the period and divide by two then bring the output high then low for this amount of time, repeat to make up the desired duration.</p>
<div class="codecolorer-container c vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333;">int</span> pinSpeaker <span style="color: #339933;">=</span> <span style="color: #0000dd;">10</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #993333;">void</span> setup <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; pinMode<span style="color: #009900;">&#40;</span>pinSpeaker<span style="color: #339933;">,</span> OUTPUT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #993333;">void</span> loop <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; playTone<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">750</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">500</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; delay<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">750</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #666666; font-style: italic;">// duration in mSecs, frequency in hertz</span><br />
<span style="color: #993333;">void</span> playTone<span style="color: #009900;">&#40;</span><span style="color: #993333;">long</span> duration<span style="color: #339933;">,</span> <span style="color: #993333;">int</span> freq<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; duration <span style="color: #339933;">*=</span> <span style="color: #0000dd;">1000</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #993333;">int</span> period <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color:#800080;">1.0</span> <span style="color: #339933;">/</span> freq<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #0000dd;">1000000</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #993333;">long</span> elapsed_time <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span>elapsed_time <span style="color: #339933;">&lt;</span> duration<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #009900;">&#40;</span>pinSpeaker<span style="color: #339933;">,</span>HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; delayMicroseconds<span style="color: #009900;">&#40;</span>period <span style="color: #339933;">/</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #009900;">&#40;</span>pinSpeaker<span style="color: #339933;">,</span> LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; delayMicroseconds<span style="color: #009900;">&#40;</span>period <span style="color: #339933;">/</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; elapsed_time <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span>period<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>This simple sketch plays a 500Hz tone for 750 mSec, pauses 750 mSec and repeats.  To use it in your sketch simply define pinSpeaker and set it for output, copy playTone to your sketch and call it with the duration in milliseconds and the frequency in hertz.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2009/03/23/playing-a-tone-through-an-arduino-connected-piezo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>I am so totally a nerd</title>
		<link>http://michael.thegrebs.com/2009/03/03/i-am-so-totally-a-nerd/</link>
		<comments>http://michael.thegrebs.com/2009/03/03/i-am-so-totally-a-nerd/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 01:39:03 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[LOGO]]></category>
		<category><![CDATA[nerd]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=209</guid>
		<description><![CDATA[Somebody came into the IRC support channel for work and their nick was &#8216;turtle&#8217;. I made a logo joke and a co-worker corrected my short LOGO triangle. This prompted me to waste 20 minutes in a LOGO interpreter. RT 30 &#8230; <a href="http://michael.thegrebs.com/2009/03/03/i-am-so-totally-a-nerd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Somebody came into the IRC support channel for work and their nick was &#8216;turtle&#8217;.  I made a logo joke and a co-worker corrected my short LOGO triangle.  This prompted me to waste 20 minutes in a LOGO interpreter.</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RT 30<br />
REPEAT 3 [REPEAT 3 [FD 100 RT 120] RT 120]<br />
PENUP<br />
FD 100<br />
PENDOWN<br />
RT 90<br />
REPEAT 360 [FD 1.75 RT 1]</div></div>
<p>The output:<br />
<a href="http://michael.thegrebs.com/wp-content/uploads/2009/03/logo.png"><img src="http://michael.thegrebs.com/wp-content/uploads/2009/03/logo.png" alt="logo" title="logo" width="282" height="251" class="size-full wp-image-210" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2009/03/03/i-am-so-totally-a-nerd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pitz prepares to rock my socks</title>
		<link>http://michael.thegrebs.com/2009/02/22/pitz-prepares-to-rock-my-socks/</link>
		<comments>http://michael.thegrebs.com/2009/02/22/pitz-prepares-to-rock-my-socks/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 04:16:57 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=198</guid>
		<description><![CDATA[Matt Wilson must be spying on my dialogs in sekrit IRC channels. After setting up Task this evening I mentioned there being several project ticketing systems, like Ditz, that store data in the RCS. I was lamenting the fact that &#8230; <a href="http://michael.thegrebs.com/2009/02/22/pitz-prepares-to-rock-my-socks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.tplus1.com/">Matt Wilson</a> must be spying on my dialogs in sekrit IRC channels.  After setting up <a href="http://www.beckingham.net/task.html">Task</a> this evening I mentioned there being several project ticketing systems, like <a href="http://ditz.rubyforge.org/">Ditz</a>, that store data in the RCS.  I was lamenting the fact that there wasn&#8217;t any of these systems written in anything other than ruby that I was aware of.</p>
<p>Reading my RSS feeds before bed, I found <a href='http://blog.tplus1.com/index.php/2009/02/22/my-new-ticket-tracking-system-is-now-vaporware/'>&#8220;My new ticket tracking system is now vaporware&#8221;</a> from <a href="http://blog.tplus1.com/">Matt Wilson&#8217;s blog</a> talking about <a href="http://pitz.tplus1.com/">Pitz</a>, his soon to exist Python implementation of <a href="http://ditz.rubyforge.org/">Ditz</a>.</p>
<p>Please take a few moments to read over the feature set and example commands on the <a href="http://pitz.tplus1.com/">Pitz</a> site and let Matt know about any ideas/suggestions you may have.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2009/02/22/pitz-prepares-to-rock-my-socks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>~/.bashrc Perl Module Version Tip</title>
		<link>http://michael.thegrebs.com/2009/01/09/bashrc-perl-module-version-tip/</link>
		<comments>http://michael.thegrebs.com/2009/01/09/bashrc-perl-module-version-tip/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 16:41:12 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=189</guid>
		<description><![CDATA[I often need to quickly check the version of a perl module currently installed. A while back I got tired of running: $ perl -MPOE::Filter -E 'say $POE::Filter::VERSION' 1.2357 So I added a quick function to .bashrc: pm-vers &#40;&#41; &#123; &#8230; <a href="http://michael.thegrebs.com/2009/01/09/bashrc-perl-module-version-tip/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I often need to quickly check the version of a perl module currently installed.  A while back I got tired of running:</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ perl -MPOE::Filter -E 'say $POE::Filter::VERSION'<br />
1.2357</div></div>
<p>So I added a quick function to .bashrc:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">pm-vers <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">perl</span> -M<span style="color: #007800;">$1</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;print <span style="color: #000099; font-weight: bold;">\$</span>$1::VERSION, <span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span></div></div>
<p>Now I just run:</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ pm-vers POE::Filter<br />
1.2357</div></div>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2009/01/09/bashrc-perl-module-version-tip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>git diff and white space</title>
		<link>http://michael.thegrebs.com/2009/01/07/git-diff-and-whitespace/</link>
		<comments>http://michael.thegrebs.com/2009/01/07/git-diff-and-whitespace/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 04:44:04 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=182</guid>
		<description><![CDATA[So I&#8217;m getting ready to make a commit to wxperl and I run a git diff to check on changes and git yelled at me that I had some trailing white space. Well it didn&#8217;t yell but it hi-lighted the &#8230; <a href="http://michael.thegrebs.com/2009/01/07/git-diff-and-whitespace/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;m getting ready to make a commit to <a href="http://michael.thegrebs.com/software/wxperl/">wxperl</a> and I run a</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">git diff</div></div>
<p>to check on changes and git yelled at me that I had some trailing white space.  Well it didn&#8217;t yell but it hi-lighted the white space in red.  Way awesome!</p>
<p><a href="http://michael.thegrebs.com/wp-content/uploads/2009/01/git-diff-trailing-white-space.png"><img src="http://michael.thegrebs.com/wp-content/uploads/2009/01/git-diff-trailing-white-space-300x145.png" alt="git-diff-trailing-white-space" title="git-diff-trailing-white-space" width="300" height="145" class="aligncenter size-medium wp-image-185" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2009/01/07/git-diff-and-whitespace/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Geeky Weather Station Stuffs</title>
		<link>http://michael.thegrebs.com/2008/12/21/geeky-weather-station-stuffs/</link>
		<comments>http://michael.thegrebs.com/2008/12/21/geeky-weather-station-stuffs/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 03:08:55 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[weather]]></category>
		<category><![CDATA[wxperl]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=141</guid>
		<description><![CDATA[http://weather.thegrebs.com/ I recently received a nice Honeywell weather station. It turns out they are actually manufactured by a company called Irox which also sells stations under it&#8217;s own name but they seem to be more popular in Europe. Being a &#8230; <a href="http://michael.thegrebs.com/2008/12/21/geeky-weather-station-stuffs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://michael.thegrebs.com/wp-content/uploads/2008/12/wxperl.png" alt="wxperl" title="wxperl" width="200" height="385" class="alignright size-full wp-image-176" /><br />
<a href="http://weather.thegrebs.com/">http://weather.thegrebs.com/</a></p>
<p>I recently received a nice Honeywell weather station.  It turns out they are actually manufactured by a company called Irox which also sells stations under it&#8217;s own name but they seem to be more popular in Europe.  Being a geek, one of the first things I did was check out Linux or OS X support.  Unfortunately only one piece of software supports this weather station under Linux, <a href="http://www.weather-display.com/index.php">Weather Display</a>.  There Linux software is freeware but not open source and leaves quite a bit to be desired but at least it would talk to the weather station and collect data from it.</p>
<p>With a bit of Googling I found <a href="http://saratoga-weather.org/template/index.php">Saratoga Weather</a> which seems to be based on a template from <a href="http://www.carterlake.org/webtemplates.php">Carter Lakes</a>.  Unfortunately the PHP code is a bit of a mess with 43 separate php files all in a top level directory and including each other.  With a bit of work I was able to bend it to my will but every little change was a pain to accomplish.</p>
<p>I started slowly re-implementing things in Perl.  I found an <a href="http://www.tnetweather.com/wd-parser.php">online WD data-file parser</a> which greatly helped in figuring out what the fields in Weather Displays native log files meant.  Fast-forward a couple of weeks and I think things are pretty much done feature wise.  I lack NWS warning/watch/advisory notification, the thermometer image with today&#8217;s information is still PHP generated, and I don&#8217;t yet have a wind graph.  These last few details shouldn&#8217;t take too much work when I get around to it.  I also have a few features the original lacks, graphs, a daily tweet with today&#8217;s high/low, and sane code :p.</p>
<p>The information from my weather station is available online at <a href="http://weather.thegrebs.com/">http://weather.thegrebs.com/</a> and the source is available via git clone from http://git.thegrebs.com/git/wxperl.  You may also browse the repo via Git Web at <a href="http://git.thegrebs.com/?p=wxperl">http://git.thegrebs.com/?p=wxperl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2008/12/21/geeky-weather-station-stuffs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Join the FSF Today</title>
		<link>http://michael.thegrebs.com/2008/12/05/join-the-fsf-today/</link>
		<comments>http://michael.thegrebs.com/2008/12/05/join-the-fsf-today/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 03:24:46 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=139</guid>
		<description><![CDATA[The Free Software Foundation is having a year end fund drive. Go join today. Can you think of a better way to spend $10 per month? Tell them member 7097 sent you.]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.fsf.org/associate/support_freedom/join_fsf?referrer=7097">Free Software Foundation</a> is having a year end fund drive.  Go join today.  <strong>Can you think of a better way to spend $10 per month?</strong>  Tell them member 7097 sent you.</p>
<div align="center">
<a href="http://www.fsf.org/associate/support_freedom/join_fsf?referrer=7097"><img src="http://static.fsf.org/fsforg/img/thin-image.png" alt="Support freedom" title="Help protect your freedom, join the Free Software Foundation" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2008/12/05/join-the-fsf-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby&#8217;s not Ready</title>
		<link>http://michael.thegrebs.com/2008/11/11/rubys-not-ready/</link>
		<comments>http://michael.thegrebs.com/2008/11/11/rubys-not-ready/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 03:28:20 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=138</guid>
		<description><![CDATA[Was looking for a specific essay about some of the issues with Ruby to point my boss to and stumbled across this instead, still haven&#8217;t quite finished reading it yet but good stuff. Increases my desire to further my Python &#8230; <a href="http://michael.thegrebs.com/2008/11/11/rubys-not-ready/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Was looking for a specific essay about some of the issues with Ruby to point my boss to and stumbled across this instead, still haven&#8217;t quite finished reading it yet but good stuff.  Increases my desire to further my Python skillz.</p>
<p><a href="http://glyphobet.net/blog/essay/228">Ruby&#8217;s not Ready at glyphobet</a></p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2008/11/11/rubys-not-ready/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
