<?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>Murphy Bytes</title>
	<atom:link href="http://www.murphybytes.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.murphybytes.com</link>
	<description></description>
	<lastBuildDate>Wed, 17 Aug 2011 00:42:02 +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>Consume SOAP Webservices the Easy Way with JAX-WS and JRuby</title>
		<link>http://www.murphybytes.com/2011/08/16/consume-soap-webservices-the-easy-way-with-jax-ws-and-jruby/</link>
		<comments>http://www.murphybytes.com/2011/08/16/consume-soap-webservices-the-easy-way-with-jax-ws-and-jruby/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 00:42:02 +0000</pubDate>
		<dc:creator>John Murphy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.murphybytes.com/?p=296</guid>
		<description><![CDATA[SOAP has a bad reputation in the Ruby community. Most Rubyists prefer Restful services because they are a lot easier to consume and are well supported in tools like Rails. However, there are times where you have to consume a SOAP based web service. In this article, I&#8217;ll show you how you can easily consume [...]]]></description>
			<content:encoded><![CDATA[<p>SOAP has a bad reputation in the Ruby community.  Most Rubyists prefer Restful services because they are a lot easier to consume and are well supported in tools like Rails.  However, there are times where you have to consume a SOAP based web service.  In this article, I&#8217;ll show you how you can easily consume a SOAP client using JRuby and JAX-WS.  The source code for this exercise can be found <a href="https://github.com/murphybytes/SampleSoapClient">here.</a> </p>
<p>
First, I&#8217;m going to grab the wsdl that defines the service we want to consume. Then I&#8217;m going to use the JAX-WS wsimport utility to turn the wsdl into java code.  Then I&#8217;ll compile the Java code and create a jar that I will then use in my ruby code to interact with the web service.
</p>
<h3>Requirements</h3>
<p>You&#8217;ll need to install a couple of things to get started.  These include the following:</p>
<ul>
<li><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java Development Kit</a></li>
<li><a href="http://ant.apache.org/">Apache Ant</a></li>
<li><a href="http://www.jruby.org/">JRuby</a></li>
<li><a href="http://gembundler.com/">Bundler</a></li>
</ul>
<p>I&#8217;d also suggest <a href="https://rvm.beginrescueend.com/">RVM</a> but that is optional.  If you want to build something based on my example you&#8217;ll want to clone my git repository.<br />
<pre><code>
&gt; git clone ssh://git@github.com/murphybytes/SampleSoapClient.git
&gt; cd SampleSoapClient
&gt; bundle install
</code></pre></p>
<p>
So now you have your environment set up.  What next? Let&#8217;s think a bit about how we want to structure our project.  We are consuming the web service so lets make that a sub project of our main project.  We&#8217;ll put the web service artifacts in SampleSoapClient/Webservice  So we end up with something like this.
</p>
<p><pre><code>
SampleSoapClient/lib
SampleSoapClient/spec
SampleSoapClient/script
SampleSoapClient/Webservice/generated
SampleSoapClient/Webservice/test
SampleSoapClient/Webservice/wsdl
</code></pre></p>
<p>
I like to include the wsdl files defining the service in my project.  With the wsdl files in place I&#8217;ll need to write an ant build script that will turn my wsdl into a jar that I can use in my Ruby code.  Creating the build.xml is probably the hardest part of the project. Once you create your build script, you can use it as the template for the script to consume any SOAP based web service.  Here&#8217;s mine.<br />
<pre><code>
&lt;project name=&quot;OrderHistoryServiceAdapter&quot; basedir=&quot;.&quot; default=&quot;jar&quot;&gt;
&nbsp;&nbsp;&lt;taskdef name=&quot;wsimport&quot; classname=&quot;com.sun.tools.ws.ant.WsImport&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;classpath path=&quot;lib/jaxws-tools.jar&quot; /&gt;
&nbsp;&nbsp;&lt;/taskdef&gt;
&nbsp;&nbsp;&lt;target name=&quot;clean&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;delete includeemptydirs=&quot;true&quot; failonerror=&quot;false&quot; &gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;fileset dir=&quot;bin&quot; includes=&quot;**/*&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;fileset dir=&quot;generated&quot; includes=&quot;**/*&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;fileset dir=&quot;dist&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/delete&gt;
&nbsp;&nbsp;&lt;/target&gt;

&nbsp;&nbsp;&lt;target name=&quot;compile&quot; depends=&quot;clean&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsimport
wsdl=&quot;wsdl/OrdersHistoryService.wsdl&quot;
destdir=&quot;bin&quot;
sourcedestdir=&quot;generated&quot;
xadditionalHeaders=&quot;true&quot;
/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;javac destdir=&quot;bin&quot; &gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;src path=&quot;test&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;src path=&quot;src&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;classpath path=&quot;lib/junit-4.9b3.jar&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/javac&gt;
&nbsp;&nbsp;&lt;/target&gt;

&nbsp;&nbsp;&lt;target name=&quot;jar&quot; depends=&quot;compile&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;mkdir dir=&quot;dist&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;jar destfile=&quot;dist/OrdersHistoryService.jar&quot; basedir=&quot;bin&quot; /&gt;
&nbsp;&nbsp;&lt;/target&gt;

&nbsp;&nbsp;&lt;target name=&quot;test&quot; depends=&quot;jar&quot; &gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;junit printsummary=&quot;true&quot; showoutput=&quot;true&quot; &gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;classpath&gt;
&lt;pathelement path=&quot;dist/OrdersHistoryService.jar&quot; /&gt;
&lt;pathelement path=&quot;lib/junit-4.9b3.jar&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/classpath&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;formatter type=&quot;plain&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;test name=&quot;com.eris.orderhistory.test.SessionTokenManagerTest&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/junit&gt;
&nbsp;&nbsp;&lt;/target&gt;
&lt;/project&gt;
</code></pre>
</p>
<p>
Now, using <a href="http://www.jruby.org/">JRuby</a>, we can interact with our web service using pure Ruby code.  All we have to do is add the requisite requires and import the classes that we want to use.  Here&#8217;s an example.<br />
<pre><code>
# required to import native java
require &#039;java&#039;
# the jar that implements our web service
require &#039;WebServiceClient/dist/OrdersHistoryService.jar&#039;

# import native java classes
java_import com.currenex.webservice.definitions.AuthenticationPortType
java_import com.currenex.webservice.definitions.OrdersHistoryPortType
</code></pre><br />
That&#8217;s all there is to it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.murphybytes.com/2011/08/16/consume-soap-webservices-the-easy-way-with-jax-ws-and-jruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails Development Environment</title>
		<link>http://www.murphybytes.com/2011/04/24/rails-development-environment/</link>
		<comments>http://www.murphybytes.com/2011/04/24/rails-development-environment/#comments</comments>
		<pubDate>Sun, 24 Apr 2011 18:51:29 +0000</pubDate>
		<dc:creator>John Murphy</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.murphybytes.com/?p=250</guid>
		<description><![CDATA[I&#8217;ve experimented with different Rails development environments over the years. I started with an Emacs/shell based environment. Then switched to TextMate because I had a Mac and that seemed to be what all the cool kids were using. Then I switched to Netbeans because of it&#8217;s Rails support and the amount of Java development I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve experimented with different Rails development environments over the years.  I started with an Emacs/shell based environment.  Then switched to <a href="http://macromates.com/">TextMate</a> because I had a Mac and that seemed to be what all the cool kids were using.  Then I switched to <a href="http://netbeans.org/features/ruby/index.html">Netbeans</a> because of it&#8217;s Rails support and the amount of Java development I was doing at the time.  (I&#8217;m not very smart.  I prefer to conserve my limited intellectual resources by sticking to one editor) .  Unfortunately Netbeans stopped supporting Rails and Rails 3 so I went back to Emacs and the shell and I&#8217;m very happy I did.  The advantage of the other tools I mentioned is there is a short learning curve to get up to speed compared to the Emacs based system I use. IMHO the Emacs/shell bashed system is well worth the extra effort involved in getting up to speed.  Even if you opt to stick with your GUI based tools it can be very helpful to have a shell based environment in the event you have to do production support on *nix servers that typically don&#8217;t have a GUI.  I hope that this post will make it easier for you to become productive in a shell based development environment.  </p>
<p>I like my current setup for a number of reasons.  First, I&#8217;ve learned you can save yourself some unpleasant surprises if you develop on the same OS you deploy to.  Like most Rails devs, I deploy to Linux so I like to develop on Linux.  Unlike TextMate, Emacs runs on Linux, and unlike Netbeans, you don&#8217;t require a GUI to run emacs.  Note that Emacs runs fine on Windows, Mac, Linux, AIX, Solaris, and BSD.   No other development tool I know of save Vi does the same.  I find I&#8217;m a lot more productive if I can keep my hands on the keyboard and avoid interrupting my work flow by reaching for the mouse.  My shell based development environment helps me keep my hands on the keyboard.</p>
<p>OK, so here&#8217;s how I set everything up.  You&#8217;ll need to have  <a href="http://www.gnu.org/software/screen/">GNU Screen</a>, <a href="https://rvm.beginrescueend.com/">RVM</a>, and of course <a href="http://www.gnu.org/software/emacs/">Emacs</a> installed on your system. Emacs is your code editor of course.  RVM is a tool that I use to create a development sandbox with explicit ruby/jruby versions and gemsets, pretty much required if you work on multiple Rails projects.  The last thing is GNU Screen.  From the GNU Screen page, &#8220;Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.&#8221;.  I use screen because it lets me easily hot key through several shell screens as I work.  For Rails, I like to have the following:</p>
<ul>
<li>A shell running the Rails server</li>
<li>A shell where I tail the development log</li>
<li>A database console or mongodb shell</li>
<li>A  command prompt</li>
<li>Emacs running in nox mode</li>
<li>The Rails console</li>
</ul>
<p>  To get all this set up you&#8217;ll need to write some shell script.  Note that to my knowledge, the script I provide only works on Linux with Bash.  If you are using some other shell or OS you&#8217;ll need to adapt the script to use your shell and OS.  I add this script <strong>at the end of</strong> .bashrc.  The script will cause a menu to be displayed <a href='#menux'>(See Below)</a> when you open a shell.  You can select from your projects which in my example are hireme, naiku, and swap.  When you select a project from the menu RVM is invoked setting up the Ruby interpreter and the Gems you&#8217;ll be using, the directory is switched to that of the selected project and screen is kicked off setting up the several shell windows according to your preferences. Each project has a file in it&#8217;s root directory called screen-startup-commands that is used to control the tools and shells that will be launched. <a href='#commands'>(See Below)</a>.  When the script is finished  you&#8217;ll have Screen running several windows with all the stuff you need to develop productively in Rails.  </p>
<h3>Script</h3>
<p><pre><code>
# this goes at the end of .bashrc
[[ -s &quot;$HOME/.rvm/scripts/rvm&quot; ]] &amp;amp;&amp;amp; . &quot;$HOME/.rvm/scripts/rvm&quot;
[ -n &quot;$RAN_ONCE&quot; ] &amp;&amp; return
echo &quot;=========================================&quot;&nbsp;&nbsp;
echo &quot; Select Development Environment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;
echo &quot;=========================================&quot;
select selection in swap hireme naiku shell; do
&nbsp;&nbsp;export RAN_ONCE=&#039;y&#039;
&nbsp;&nbsp;case ${selection} in 
&nbsp;&nbsp;&nbsp;&nbsp;shell ) break ;;
&nbsp;&nbsp;&nbsp;&nbsp;swap )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;. rvm use ruby-1.9.2@swap
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cd ~/code/swap/ssrails
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;screen -c screen-startup-commands
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit 0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;
&nbsp;&nbsp;&nbsp;&nbsp;hireme )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;. rvm use ruby-1.8.7@hireme
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cd ~/code/hireme
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;screen -c screen-startup-commands
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit 0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;
&nbsp;&nbsp;&nbsp;&nbsp;naiku )
&nbsp;&nbsp;&nbsp;&nbsp; . rvm use ruby-1.9.2@naiku
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cd ~/code/naiku
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;screen -c screen-startup-commands
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit 0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;
&nbsp;&nbsp;esac
done
</code></pre></p>
<p><a name="menux"></p>
<h3>Startup Menu</h3>
<p></a></p>
<div>
<p><img src="http://www.murphybytes.com/wp-content/uploads/2011/04/menu.png" />
</div>
<p><a name="commands"></p>
<h3>Screen Startup Commands</h3>
<p></a></p>
<p><pre><code>
# screen startup commands
screen -t emacs emacs -nw .
screen -t console rails console
screen -t log tail -f log/development.log
screen -t shell
screen -t server rails server
</code></pre></p>
]]></content:encoded>
			<wfw:commentRss>http://www.murphybytes.com/2011/04/24/rails-development-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Down to the Metal</title>
		<link>http://www.murphybytes.com/2011/04/21/down-to-the-metal/</link>
		<comments>http://www.murphybytes.com/2011/04/21/down-to-the-metal/#comments</comments>
		<pubDate>Fri, 22 Apr 2011 02:11:06 +0000</pubDate>
		<dc:creator>John Murphy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.murphybytes.com/?p=245</guid>
		<description><![CDATA[I just spent a few days over at Pedal Brain programming (or trying to program) an MSP 430 Micro Controller. Embedded is hard but I think it&#8217;s worth trying if you are a coder. It&#8217;s kind of the essence of coding. Unlike most of the programming I&#8217;ve done, in embedded there is nothing between you [...]]]></description>
			<content:encoded><![CDATA[<p>I just spent a few days over at <a href='http://en.pedalbrain.com/'>Pedal Brain</a> programming (or trying to program) an <a href='http://focus.ti.com/mcu/docs/mcumspoverview.tsp?sectionId=95&#038;tabId=140&#038;familyId=342&#038;DCMP=MCU_other&#038;HQS=Other+IL+msp430'>MSP 430 Micro Controller.</a>  Embedded is hard but I think it&#8217;s worth trying if you are a coder.  It&#8217;s kind of the essence of coding.  Unlike most of the programming I&#8217;ve done, in embedded there is nothing between you and the machine.  Typically you don&#8217;t have a lot of memory or CPU so you have to be very efficient with resources.  I think in the long run the economy you pick up in the embedded realm makes you a better coder in other areas.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.murphybytes.com/2011/04/21/down-to-the-metal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kinney/Murphy Annual Holiday Message</title>
		<link>http://www.murphybytes.com/2010/12/25/kinneymurphy-annual-holiday-message/</link>
		<comments>http://www.murphybytes.com/2010/12/25/kinneymurphy-annual-holiday-message/#comments</comments>
		<pubDate>Sun, 26 Dec 2010 00:33:03 +0000</pubDate>
		<dc:creator>John Murphy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.murphybytes.com/?p=176</guid>
		<description><![CDATA[It&#8217;s Christmas Eve and we&#8217;re hanging out at home waiting for Santa. It&#8217;s been a busy year for our family. This was our first full year in our new house and Plymouth is now starting to feel like home. We love our neighborhood. Sam has other little boys nearby to play with and Lisa and [...]]]></description>
			<content:encoded><![CDATA[<p>    It&#8217;s Christmas Eve and we&#8217;re hanging out at home waiting for Santa.  It&#8217;s been a busy year for our family.  This was our first full year in our new house and Plymouth is now starting to feel like home. We love our neighborhood. Sam has other little boys nearby to play with and Lisa and I love our neighbors.  We were able to take a family vacation to Disney World this year and Lisa and I went to NYC in June.    We were thinking that our first year in our new house would be our last as my employer, Dow Jones, was asking me to relocate to Princeton, NJ.  However, the relocation was canceled and it looks like we&#8217;ll be staying in Minneapolis for the time being.  It&#8217;s going to be a white Christmas, <a target='_blank' href='http://flic.kr/p/91jzeX'>36 inches of snow</a> already this year.  I don&#8217;t need to go to the gym, I get all the exercise I need shoveling tons of snow out of the driveway.</p>
<div style="width:100%;" >
<div style='clear:both;height:auto;padding-top:20px;'>
<div style='float:left;width:50%;'>
<a href="http://www.flickr.com/photos/29938627@N02/5288784995/" title="Santa Meeting 2010 by murphy_bytes, on Flickr"><img src="http://farm6.static.flickr.com/5003/5288784995_0cac5e74a6.jpg" width="334" height="500" alt="Santa Meeting 2010" /></a></p>
<div 'style=padding-top:20px;'>
<a href="http://www.flickr.com/photos/29938627@N02/5288007551/" title="P1030005.JPG by murphy_bytes, on Flickr"><img src="http://farm6.static.flickr.com/5002/5288007551_47aec2d831.jpg" width="334" height="222" alt="P1030005.JPG" /></a>
</div>
<div style='padding-top:10px;'>
<a href="http://www.flickr.com/photos/29938627@N02/5288000493/" title="P1030455-adjust.JPG by murphy_bytes, on Flickr"><img src="http://farm6.static.flickr.com/5004/5288000493_5afc668f87.jpg" width="334" height="185" alt="P1030455-adjust.JPG" /></a>
</div>
<div style='padding-top:20px;'>
<a href="http://www.flickr.com/photos/29938627@N02/5291217013/" title="photo.JPG by murphy_bytes, on Flickr"><img src="http://farm6.static.flickr.com/5047/5291217013_8fae4c0382.jpg" width="334" height="445" alt="photo.JPG" /></a>
</div>
<div style='padding-top:20px;'>
<a href="http://www.flickr.com/photos/29938627@N02/5288551378/" title="P1030338.JPG by murphy_bytes, on Flickr"><img src="http://farm6.static.flickr.com/5044/5288551378_ccd71b38c6.jpg" width="334" height="445" alt="P1030338.JPG" /></a>
</div>
</p></div>
<div style='float:left;width:45%;background-color:white;zindex:1000;padding-left:10px;'>
<h3 style='border:none;'>Sam</h3>
<p>          This has been a big year for Sam.  He learned to swim and got a green belt in Karate.  Last year, Santa brought Sam an Australian Shepherd <a target='_blank' href='http://flic.kr/p/94knT3'>puppy named Pete.</a>   We all liked Pete so much we got him a little pal, another Aussie pup named <a target='_blank'                             href='http://flic.kr/p/94jVuS' >Gus.</a>  It&#8217;s pretty chaotic around our house with two Aussie pups and an energetic six year old running around.  Samuel started Chinese Immersion School in Excelsior this year.  He loves school and is doing great.   We love the school too.  We&#8217;d heard a lot in the media about how bad public schools are so we were concerned when Sam was ready to start school but Mrs. Tao and the Excelsior school is amazing.  We get email status updates on a regular basis and are able to dialog with the teacher whenever it is needed.  Sam is learning so much.  I observed his class one day last month and the whole class was conducted in Chinese.  We don&#8217;t want Sam to get behind in his English curricula so we work hard at home to help Sam with reading and arithmetic. Sam says 圣诞节快乐 to everyone. </p>
<h3 style='border:none;'>Audrey</h3>
<p>          Audrey enjoys posting humiliating pictures of me on Facebook.  Luckily for her, I won&#8217;t stoop to the same behavior on my blog, it wouldn&#8217;t be&#8230;. Christmas like.  Audrey has had a lot of great opportunities and experiences this year.  She recently started a new job at <a href='http://www.cfmoto.cn/'>CF Moto</a> where she is moving into marketing.  She also shot a PSA commercial in Los Angelos and will be on a TV show that has something to with hair salons.  She also has taken to attending <a href='http://www.ruby.mn'>Ruby Users of Minnesota (RUM)</a> with me.  I don&#8217;t know why.  Audrey says &#8216;because it&#8217;s awesome&#8217; but I think she likes to walk around in heels and distract the rest of the geeks there.</p>
<h3 style='border:none;'>Hannah</h3>
<p>Hannah is living in Ames.  She&#8217;s been gaining experience as a waitress this year and hoping to find a better job.  She and Lisa made a trip to Conifer Colorado to pick up the newest member of our family, <a target='_blank' href='http://flic.kr/p/94jVuS'>Gus the dog</a>.  </p>
<h3 style='border:none;'>Lisa</h3>
<p>Lisa finally admitted that she likes it here. She has been taking advantage of many of the wonderful shopping and educational opportunities that we enjoy here in the Twin Cities,  learning how to make stained glass and currently learning how to knit.  Lisa brought her job with Principal with us, and has been working from home.  This has provided welcome income for us, but unfortunately Principal is getting out of the health care business and Lisa will be losing her job along with 1500 others.  She will be done second quarter 2011.  On the bright side, getting a few months severance just as the weather starts to warm up around here could make for a nice summer. </p>
<h3 style='border:none'>John</h3>
<p>It&#8217;s been a great year for me. As always, I&#8217;m grateful for fabulous Lisa and my new family.  It&#8217;s never a dull moment around here.  Sam keeps me busy and Audrey is always an entertaining companion. I&#8217;ve been able to see a lot more of my family this year and it&#8217;s great to spend more time with my brothers and sisters.  I love you all.
        </p></div>
</p></div>
<div style='clear:both;height:auto;padding-top:20px;'></div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.murphybytes.com/2010/12/25/kinneymurphy-annual-holiday-message/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sick of Virii? Get Linux.</title>
		<link>http://www.murphybytes.com/2010/11/10/sick-of-virii-get-linux/</link>
		<comments>http://www.murphybytes.com/2010/11/10/sick-of-virii-get-linux/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 15:17:26 +0000</pubDate>
		<dc:creator>John Murphy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.murphybytes.com/?p=171</guid>
		<description><![CDATA[Recently I&#8217;ve noticed a rash of Facebook based attempts to get you to install malware on your system. These strategies masquerade as a message from one of your friends that try to get you to click on a link that will then run a program on your system. Do you want to know a sure [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve noticed a rash of Facebook based attempts to get you to install malware on your system.  These strategies masquerade as a message from one of your friends that try to get you to click on a link that will then run a program on your system.   Do you want to know a sure fire way to avoid these exploits?  Don&#8217;t run Windows,  use Linux instead.  I know some people will think that you have to be some sort of tech guru to use Linux or they may not even know what Linux is.  For these folks I&#8217;ll say that Linux is easy to use.  It has lots of free software that let you create documents, browse the web, and do pretty much anything that you commonly do on your Windows system and, most importantly, it&#8217;s immune to pretty much all of the bad things that hackers perpetrate on unsuspecting Windows users.  No anti virus software needed!  Here are some links for various Linux distributions to find out more:</p>
<ul>
<li><a href="http://www.ubuntu.com/">http://www.ubuntu.com/</a></li>
<li><a href="http://www.debian.org/">http://www.debian.org/</a></li>
<li><a href="http://fedoraproject.org/">http://fedoraproject.org/</a></li>
</ul>
<p>Feel free to contact me if you have questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.murphybytes.com/2010/11/10/sick-of-virii-get-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>GAE is Better than EC2</title>
		<link>http://www.murphybytes.com/2010/09/29/gae-is-better-than-ec2/</link>
		<comments>http://www.murphybytes.com/2010/09/29/gae-is-better-than-ec2/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 16:25:29 +0000</pubDate>
		<dc:creator>John Murphy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.murphybytes.com/?p=162</guid>
		<description><![CDATA[Recently, my friend Josh got me interested in Google Application Engine. I&#8217;ve been building distributed applications for a number of years now and have always assumed that if I were deploying to a cloud platform, it would be on EC2 because of choice of operating systems, and support for environments that I know well like [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, my friend Josh got me interested in <a href="http://code.google.com/appengine/">Google Application Engine</a>.  I&#8217;ve been building distributed applications for a number of years now and have always assumed that if I were deploying to a cloud platform, it would be on <a href="http://aws.amazon.com/ec2/">EC2</a> because of choice of operating systems, and support for environments that I know well like <a href="http://rubyonrails.org/">Rails</a>. GAE doesn&#8217;t support the same environments (at least not out of the box).  It also abstracts the OS away from you almost entirely. That is the reason that I think GAE is better.  I like the idea of not dealing with the OS at all.  OS is complicated.  To do a Unix application right you need to understand shell scripting, daemons and security.  I usually like to set up a user with limited privileges for my applications to run under (no login, limited file system access, etc.)  I also like to have a group for users who can admin the application and another group for a more limited set of users who can admin the machine.  This of course implies that you set up sudoers correctly so an application admin can start the application as root (the app is then demoted to run as a user with limited privileges after it&#8217;s gotten access to all resources it needs to run).  And of course you need to be cognizant of things you want the application administrators to have access to like read access to /var/logs.  Anyway, it&#8217;s complicated to get right.  GAE abstracts the OS away from you so you don&#8217;t have to worry about any of this stuff which is a good thing.  You just focus on the application logic and let Google worry about the OS which is a big win in my opinion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.murphybytes.com/2010/09/29/gae-is-better-than-ec2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>&#955; + concurrency = evil</title>
		<link>http://www.murphybytes.com/2010/09/24/concurrency-evil/</link>
		<comments>http://www.murphybytes.com/2010/09/24/concurrency-evil/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 01:52:39 +0000</pubDate>
		<dc:creator>John Murphy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.murphybytes.com/?p=154</guid>
		<description><![CDATA[I ran into an awful bug in some JavaScript the other day that I thought I&#8217;d share as one more reason that non-functional programming languages are really awful in concurrent or asynchronous execution environments. Without further ado, here&#8217;s the code: function update_watchlist() { &#160;&#160;&#160;&#160;var selected_instruments = $(&#039;div#instruments&#039;).data( &#039;selected_instruments&#039;); &#160;&#160;&#160;&#160;for( var selected =&#160;&#160;0; selected &#60; selected_instruments.length; [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into an awful bug in some JavaScript the other day that I thought I&#8217;d share as one more reason that non-functional programming languages are really awful in concurrent or asynchronous execution environments.  Without further ado, here&#8217;s the code:<br />
<pre><code>
function update_watchlist() {

&nbsp;&nbsp;&nbsp;&nbsp;var selected_instruments = $(&#039;div#instruments&#039;).data( &#039;selected_instruments&#039;);

&nbsp;&nbsp;&nbsp;&nbsp;for( var selected =&nbsp;&nbsp;0; selected &lt; selected_instruments.length; ++selected ) {
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.post( &#039;/getquote&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selected_instruments[selected],
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function( quote ) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#039;div#quote_last&#039; + selected ).html( quote.last );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#039;div#quote_volume&#039; + selected).html( quote.volume );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#039;div#quote_datetime&#039; + selected).html( quote.datetime );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;json&#039;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;
}
</code></pre></p>
<p>This code is supposed to use <a href='http://jquery.com/'>JQuery</a> and ajax to update a watch list of quotes.  Data values for each quote are stored in numbered divs where the div number matches the index in selected_instruments which is an array of information needed to look up a particular quote.  In other words we update div id=&#8217;quote_last0&#8242; with a quote that we look up using information in selected_instruments[0].  Can you spot the problem?  </p>
<p>What is the value of <b>selected</b> in the lambda function passed to $.post?  We don&#8217;t really know because post is an asynchronous call,  the lamda function<br />
<pre><code>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function( quote ) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#039;div#quote_last&#039; + selected ).html( quote.last );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#039;div#quote_volume&#039; + selected).html( quote.volume );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#039;div#quote_datetime&#039; + selected).html( quote.datetime );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
</code></pre><br />
is only called after the http post to the remote server returns.  By the time this has occurred, selected has passed out of scope.  The fix for this problem would have been to make lambda functions in JavaScript more like first class functions so in this case, the only way to pass the index data to the lambda function illustrated above would be to pass it in the post data, and then have the server return it in the argument passed in the lambda function as illustrated below.<br />
<pre><code>

function update_watchlist() {

&nbsp;&nbsp;&nbsp;&nbsp;var selected_instruments = $(&#039;div#instruments&#039;).data( &#039;selected_instruments&#039;);

&nbsp;&nbsp;&nbsp;&nbsp;for( var selected =&nbsp;&nbsp;0; selected &lt; selected_instruments.length; ++selected ) {
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.post( &#039;/getquote&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// selected is a valid variable here
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instrument : selected_instruments[selected],
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index : selected
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function( result ) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// result.index = selected passed to post target and returned
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#039;div#quote_last&#039; + result.index ).html( result.quote.last );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#039;div#quote_volume&#039; + result.index).html( result.quote.volume );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#039;div#quote_datetime&#039; + result.index).html( result.quote.datetime );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;json&#039;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;
}
</code></pre></p>
]]></content:encoded>
			<wfw:commentRss>http://www.murphybytes.com/2010/09/24/concurrency-evil/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Media Storage System</title>
		<link>http://www.murphybytes.com/2010/09/23/media-storage-system/</link>
		<comments>http://www.murphybytes.com/2010/09/23/media-storage-system/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 04:08:27 +0000</pubDate>
		<dc:creator>John Murphy</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.murphybytes.com/?p=147</guid>
		<description><![CDATA[I just picked up a Western Digital My Book network storage device. I needed something with a bit of space to manage backups for all our family computers and it had be networked so I could set up cron jobs ( or a scheduled task for Audrey ) to automate the backup process and insure [...]]]></description>
			<content:encoded><![CDATA[<div style="float: left; width: 60%;">I just picked up a <a href="http://www.wdc.com/en/products/Products.asp?DriveID=587">Western Digital My Book</a> network storage device.  I needed something with a bit of space to manage backups for all our family computers and it had be networked so I could set up cron jobs ( or a scheduled task for Audrey ) to automate the backup process and insure it occurs on a regular basis.  I was a little concerned when I went to purchase the device because, as is usually the case the device was advertised to support Mac OSX and Windows 7.  Nothing about Linux.  I was pleasantly surprised when I got the device home.  It has a cheesy web interface and after clicking the advanced management options, I discovered a check box that allows you to enable ssh which I did and connected to the box.  I then typed uname -a and discovered the device OS is Linux running on an ARM 9 processor.   A quick tour of /etc/init.d revealed the device had a series of network daemons that could be enabled by symlinks.  These included nsfd, sshd, mini_httpd, inetd, smbd, fuse and others so I knew I could mount the WD device on my Linux boxes to back them up.  I was unable to get NFS working,  I could mount the WD file system only  as read only which wasn&#8217;t terribly helpful.  Here is the entry I put in fstab.<br />
<pre><code>
192.168.1.14:/DataVolume/Public /mnt/nfs nfs default 0 0
</code></pre><br />
Anyway, I ended up using fuse instead and that works fine.  For reference, to get this working on an Ubuntu box do the following.<br />
<pre><code>
sudo apt-get install sshfs
sudo usermod -a -G&nbsp;&nbsp;fuse yourlocaluser
sshfs root@192.168.1.14:/DataVolume/Public /mnt/nfs
</code></pre></div>
<div style="float: right;"><img src="http://gopaultech.com/files/2009/02/western-digital-mybook-world.jpg" alt="WD Digital Image" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.murphybytes.com/2010/09/23/media-storage-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Florida Fruitcake</title>
		<link>http://www.murphybytes.com/2010/09/11/ff/</link>
		<comments>http://www.murphybytes.com/2010/09/11/ff/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 14:51:28 +0000</pubDate>
		<dc:creator>John Murphy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.murphybytes.com/?p=141</guid>
		<description><![CDATA[The following is an excerpt from a Facebook conversation about a Gainseville, Florida preacher gaining world media attention by threatening to burn the Qur&#8217;an. I reposted it here because I think it highlights what can be great about media today. To be specific, I&#8217;m referring to how new media allows us to add depth to [...]]]></description>
			<content:encoded><![CDATA[<p>The following is an excerpt from a Facebook conversation about a Gainseville, Florida preacher gaining world media attention by threatening to burn the Qur&#8217;an.  I reposted it here because I think it highlights what can be great about media today.  To be specific, I&#8217;m referring to how new media allows us to add depth to a particularly inane news item.</p>
<h3>Original Post</h3>
<p>This is a little frothy, but it gets the ball rolling.  We&#8217;ll call the author &#8216;Bob&#8217;. </p>
<blockquote><p>
Quit giving &#8220;religion&#8221; special rights. It&#8217;s fiction. Like Duck Tales. I&#8217;m going to burn my VHS copy of Duck Tales. It&#8217;s the SAME. THING. Remember when some guy was burning Harry Potter? I&#8217;m sure some hard core fan would be shattered by that. It&#8217;s all just a really old Japanese comic book convention. Would you threaten war and curtailment of the first amendment if I burned a Pokemon comic book?
</p></blockquote>
<h4>Entertaining rebuttal from &#8216;Sue&#8217;</h4>
<blockquote><p>
Dude. I would like to posit that burning a religious book is not about &#8220;religion.&#8221;<br />
It’s about social prejudice. Historically, societies that burn books are intellectually unsound, morally deficient, and violent. No one cares about the actual theological content of the book; it&#8217;s a symbolic act of hatred against an enemy. It&#8217;s a threat. It&#8217;s like saying, I would destroy all your people if I had the power. Book burning is the first step in a process of syndicated terror—and this is consistent across history—that leads to physical violence towards people in a specific social group, ethnicity, or culture.</p>
<p>&#8220;Where they burn books, they will also ultimately burn people.&#8221; &#8211;Heinrich Heine, prophetically, in a book that was ceremonially burned by Nazis in 1933.</p>
<p>It’s not about giving “religion” special rights—it’s about giving people the right to live without fear. To live without fear of being singled out and persecuted for their beliefs or their background. ( Like having to wear a yellow star.) Book burning is the first step. It’s just that religious books happen to make better effigies of entire cultures than comic books do. (Although I think with Duck Tales, you could support a legitimate argument for a spiritual paragon of culture&#8230;)
</p></blockquote>
<h4>Bob replies&#8230;</h4>
<blockquote>
<p>It&#8217;s true that there&#8217;s an element of deliberate symbolism going on here, a point being shot across using a something under the surface of the book itself. And in the right situation, I definitely see the horror of the symbolism present.</p>
<p>I would rather see a flag burn than a book, though neither would especially blow me away. I would be more amazed by how stupid these people are than offended by what they are doing. Which I feel is a better response to these people, because it&#8217;s not the reaction they&#8217;re trying to get out of us. When this story initially broke, I just ignored it, just another crazy guy doing something crazy. I thought this was a better story about how America needs a better education system, or better access to schizophrenia drugs.</p>
<p>My thing is, are we going to let some nobody in Florida send the official shot down the bow? In the internet age, anybody can burn a religious book, and in minutes, anybody in the world can see it. Here&#8217;s a guy burning a bible and a koran at the same time, just now. We don&#8217;t even need to wait for the Florida guy to do anything, the deed is done: <a href="http://www.youtube.com/watch?v=MZ4rBJfcIfE">http://www.youtube.com/watch?v=MZ4rBJfcIfE</a></p>
<p>In order for us to live in the new media world, we need to stop taking crackpots seriously, or we will not be able to live cohesively. There&#8217;s probably one Japanese guy in Japan that hates America and burns flags and burgers and whatnot. Do we let that destabilize our relationship with Japan? Is he flooded with reporters? Does the Prime Minister of Japan go to his house and beg him not to do it?</p>
<p>If it was somebody with real authority burning books, yes I would be very worried. But we&#8217;re talking about one screwball here and his tiny little whatever-it-is. He doesn&#8217;t have real political power, or a standing army. I really don&#8217;t understand how he become the official &#8220;okay we&#8217;re going to burn books now&#8221; guy, who is &#8220;negotiating with the mosque people&#8221; and after this whole thing is over, I would bet money we&#8217;ll never hear about him or of him ever again. If people settle down and realize nothing will come of this, it probably won&#8217;t even make the history books.
</p></blockquote>
<h4>&#8216;Sue&#8217; weighs in again&#8230;</h4>
<blockquote><p>
The difference is that Jones isn&#8217;t just a random guy in Japan burning a burger, or a guy on YouTube showing how both the Bible and the Koran are made of paper and therefore ignite easily.</p>
<p>Those are both merely random acts of silliness, definitely not to be taken seriously, I agree. So here&#8217;s why Jones is more dangerous than a random guy:</p>
<p>1) Jones is an established anti-Islam, anti-Muslim, anti-Arab author. He hates the entire religio-ethnic group and thinks they should die. And he has published books to that effect. So he&#8217;s not just a guy holding a Bic to some paper. He&#8217;s doing it out of outspokenly racist hatred.<br />
2) American soldiers are at war in places like Afghanistan, where there is violence between religio-ethnic groups. That is very different from a guy in Japan burning a burger, right? We&#8217;re not enemies at war there. Jones believes that American Christians are at war with Muslims at large. He is sending this as a message, almost as if the book-burning were an act of war itself.<br />
3) The burning was going to be on September 11th. That&#8217;s huge. That&#8217;s not just some guy on YouTube putting up a video of a fire. That&#8217;s an act of war. Jones sees that as the date on which Muslims declared war on Christians. If he commenced with the burning, Muslims abroad could get the impression that that&#8217;s what all Christians believe; that the two religions are opposed and hate each other. Which is NOT the case. The burning could legitimize the dynamic polarity between two sides which are not actually enemies. It could potentially be as large a catalyst as the German book-burnings of 1933, which were carried out by University students. Nobodies.</p>
<p>Anyway he&#8217;s already said he won&#8217;t go through with it, so you&#8217;re right, I don&#8217;t think it will make the history books in the end.
</p></blockquote>
<h4>Yours truly weighs in</h4>
<blockquote><p>
What a fabulous discourse. I really love how Sue ties in historical events to support her points. I have the historical perspective of having been around to experience the mass media during the sixties through today. When I was a kid, I don&#8217;t think we wouldn&#8217;t have heard of Jones. The US national news outlets were controlled by the big three networks who in turn voluntarily subscribed to certain standards of good taste (don&#8217;t remember what these were but it was the Better Broadcasting Bureau or some such). The upshot of this is that news reporting was much more fact based and the agendas of the broadcasters were expressed in what news they chose to report, not how they reported it. You saw things like real combat footage with blood and screaming (unlike sanitized war reporting of today) but not much about crackpots like Jones.  Of course we did have Abbie Hoffman, but he didn&#8217;t take over the news to the degree that Jones has, plus he actually had something to say.  Note that the their was a lot of coverage around the trial of the <a href="http://en.wikipedia.org/wiki/Chicago_seven">&#8216;Chicago 7&#8242;</a>  but it was not about Hoffman himself even though he was extremely flamboyant and media savvy.  My point is, that now there is no such control and it seems like things become significant through some sort of emergent mob mentality more than any other way. I don&#8217;t know if that is good or bad, but what&#8217;s scary to me is the degree to which people can be influenced by this and not even know that they are being influenced. It&#8217;s also disturbing to me how mainstream media focuses on sensational news that has high emotional impact to drive profits instead of news that has high impact from a economic/societal basis. I think that the upshot of all this is that there is a large cohort of educated critical thinkers are abandoning traditional media (TV/Radio) and getting their news from the internet.  Unfortunately, this trend further dumbs down the audience of people who still watch mainstream media which leads them to dumb down their content and pick up increasingly sensationalistic content that is often of no real importance.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.murphybytes.com/2010/09/11/ff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Do Be Do Be Do</title>
		<link>http://www.murphybytes.com/2010/06/05/do-be-do-be-do/</link>
		<comments>http://www.murphybytes.com/2010/06/05/do-be-do-be-do/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 16:51:18 +0000</pubDate>
		<dc:creator>John Murphy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.murphybytes.com/?p=137</guid>
		<description><![CDATA[I&#8217;ve been thinking a lot about why we do things. Not particular things mind you but things in general. Why do anything at all? Why think about why we do things? One might conclude that it&#8217;s inevitable that I write about being at this particular time and place if you believe as I do that [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking a lot about why we do things.  Not particular things mind you but things in general.  Why do anything at all?  Why think about why we do things?    One might conclude that it&#8217;s inevitable that I write about being at this particular time and place if you believe as I do that free will is largely illusory. <a href='http://en.wikipedia.org/wiki/Neuroscience_of_free_will'>More and more contemporary research*</a> seems to indicate we are nothing more than sophisticated genetically programmed meat machines with an incredible variety of possible execution paths.  Note that I don&#8217;t choose the particular path I&#8217;m on.  It would be more appropriate to say that I&#8217;m nudged down one branch or another by a combination of external stimuli and instinct.  In the past I have sometimes become fatalistic when pursuing such lines of reasoning ( one can also adopt a hedonistic stance for obvious reasons ).  I&#8217;m not fatalistic any more.  I am constrained by a certain set of possibilities and  my acting takes me down a path that will eventually end at the same outcome as it does for every other human on this planet.  The conclusion I arrive at is that I am here and I will do things and it is the doing that is the reason for being and vis versa.  If I&#8217;m going to do things I might as well enjoy what I&#8217;m doing.  If I&#8217;m going to be, I might as well choose to have a positive attitude about what being will be like in the future.  If I do I&#8217;m happier in the moment which seems to be a reasonable thing to strive for.  But wait.  Don&#8217;t I <i>decide</i> to enjoy what I&#8217;m doing?  Don&#8217;t I <i>decide</i> to adopt a certain attitude about the future?  Doesn&#8217;t that contradict what I was just saying? It&#8217;s pretty easy to experience in the mental equivalent of a dog chasing his tail thinking in this way.  My meat machine is about to experience a stack overflow so it&#8217;s time that I quit woolgathering and go on and do something else.</p>
<p>*I love Wikipedia<br />
*I give money to Wikipedia to express my love thereof, if you love Wikipedia, you should too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.murphybytes.com/2010/06/05/do-be-do-be-do/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

