<?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"
	>

<channel>
	<title>&#62;&#62;&#62; SWHarden.com</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>
	<pubDate>Mon, 05 Jan 2009 15:06:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Don&#8217;t Yell at Your PC Like I Do</title>
		<link>http://www.SWHarden.com/blog/2009-01-02-dont-yell-at-your-pc-like-i-do/</link>
		<comments>http://www.SWHarden.com/blog/2009-01-02-dont-yell-at-your-pc-like-i-do/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 01:18:43 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=579</guid>
		<description><![CDATA[<p>I&#8217;ve been stuck in the laboratory all day!  I&#8217;m currently writing software to convert data from images (microscope scans) into massive 4-dimensional arrays (handled by numpy and Python) which are then analyzed statistically (that&#8217;s the code I&#8217;m working on today).  Since these data files are so huge, it usually takes at least 30 [...]</p>]]></description>
			<content:encoded><![CDATA[<p><strong>I&#8217;ve been stuck in the laboratory all day!</strong>  I&#8217;m currently writing software to convert data from images (microscope scans) into massive 4-dimensional arrays (handled by <a href="http://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html" onclick="javascript:urchinTracker ('/outbound/article/docs.scipy.org');">numpy</a> and Python) which are then analyzed statistically (that&#8217;s the code I&#8217;m working on today).  Since these data files are so huge, it usually takes at least 30 seconds just to load these massive arrays into memory before the calculations can be performed (which only take a second).  The frustrating part is that the calculations don&#8217;t work right, so I make a change in the code and try again, and have to wait half a minute before another failed result.  After doing this for hours (with only about 10 minutes of actual work - the rest of the time spent waiting) I began screaming at my <span class="caps">PC. </span> It&#8217;s ironic that (in my frustration-spawned break) I logged into Facebook and noticed that <a href="http://blog.tomh.us/" onclick="javascript:urchinTracker ('/outbound/article/blog.tomh.us');">Tom Hayward</a> posted a video entitled &#8220;shouting at your computer increases hard drive latency&#8221;.  Do I need to say more?  [dies laughing]</p>

<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/tDacjrSCeq4&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/tDacjrSCeq4&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>]]></content:encoded>
			<wfw:commentRss>http://www.SWHarden.com/blog/2009-01-02-dont-yell-at-your-pc-like-i-do/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Merry Labmice</title>
		<link>http://www.SWHarden.com/blog/2008-12-23-merry-labmice/</link>
		<comments>http://www.SWHarden.com/blog/2008-12-23-merry-labmice/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 13:29:40 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=574</guid>
		<description><![CDATA[<p>The pain caused my eyes opened 5am this morning.  My alarm wasn&#8217;t set to go off until 7:30am, but I couldn&#8217;t sleep.  I was anxious.  Hundreds of thoughts continuously raced through my mind, all of them bad.  I&#8217;ve been rejected from one dental school, will another take me?  Will I [...]</p>]]></description>
			<content:encoded><![CDATA[<p><strong>The pain caused my eyes opened 5am this morning.</strong>  My alarm wasn&#8217;t set to go off until 7:30am, but I couldn&#8217;t sleep.  I was anxious.  Hundreds of thoughts continuously raced through my mind, all of them bad.  I&#8217;ve been rejected from one dental school, will another take me?  Will I ever graduate the program I&#8217;m in?  Why do I feel like my thesis project is going to fail?  My wife postponed starting nursing school for me because we were going to move for dental school, and now I&#8217;ve been rejected, what have I done to her? If I don&#8217;t get into any dental school, how could I get a job?  What would I do with a masters in biomolecular science?  Teach at a community college?  Get a PhD?  In what?  God, not the same subject, right?  Do they have a PhD in bioinformatics at my school?  Will I have to move to another state?  Have PhD application deadlines for enrollment in August have already come and gone?  What do I have to do today, just kill 6 mice in lab and they try to finish my Christmas shopping?  What am I going to get my wife for Christmas?  Was she serious when she said she didn&#8217;t want to exchange valuable gifts with each other in order to save money?  Should I make her something?  Should I buy her something?  Did I pay rent this month?  Power, did I pay that?  I don&#8217;t remember getting a power bill, but that doesn&#8217;t mean I don&#8217;t have to pay it anyway, right?</p>

<p><strong>You get the idea.</strong>  Anyway, stress and the lying-down position combined with acid reflux resulted in the fiery sensation of heartburn as I lay there pondering what felt like my imminent doom.  I couldn&#8217;t take it anymore.  I got up and left.  Yeah, I got to work a little early this morning (way early, actually) but I figure that a little more time (spent relaxing, spent blogging) and perhaps some Tums would help me out a bit.  So, here I am.  Walking into work today I realized that I didn&#8217;t have a lot of pictures documenting my time here.  So, in the cover of early darkness, I pranced around the building from room to room snapping pictures of the laboratories.  Then I got a cup of coffee, sat on a step, and watched the reflection of the rising sun from building I work in.  </p>

<p><img src="http://www.SWHarden.com/blog/images/labrise.jpg" alt="" title="labrise" width="500" height="375" class="aligncenter size-medium wp-image-577" /></p>

<p><strong>Thankfully this is not the building where I attended any of my classes,</strong> or the thought of sitting beside it for so long would likely be revolting instead of relaxing. On a separate note, as much as Adobe Photoshop&#8217;s PhotoMerge plugin disappoints me (it crashes right in front of me every time I try to create an image larger than 4,000&#215;4,000 pixels) I have to say that it worked nicely in my case.  This is my lab desk.  </p>

<p><a href="http://www.SWHarden.com/blog/images/labpanoyay.jpg" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/labpanoyay-500x183.jpg" alt="" title="labpanoyay" width="500" height="183" class="aligncenter size-medium wp-image-576" /></a></p>

<p><strong>It&#8217;s clickable too.  Go on, click it!</strong>  I changed desks a few months ago.  I thought it would be cool to have a photo of this so, years down the road, I can look back, remember all of the memories, and probably ask myself &#8220;why the heck did I choose the molecular biology and microbiology program?&#8221;</p>

<p>Currently, I&#8217;m listening to <i>Beethoven - Pathetique - Piano Sonata #8 c minor Op- 13.aac</i> at relatively high volume at my desk since no one is in the laboratory yet.  This is one of my favorite songs.  I have a copy saved on my website, but it&#8217;s kind of hidden and unlabeled so it can&#8217;t be found on Google and I can&#8217;t get in trouble for it (that&#8217;s the plan anyway).  If you&#8217;d like a copy, you can download it yourself (.aac files are like .mp3 files - they can be played with Winamp or Mplayer but they have better sound quality after extreme compression - this 18 and 1/2 minute song is a little over 3 megabytes).  Anyhow, the link is: <a href="http://www.swharden.com/tmp/song4.aac" >song4.aac</a> and all I ask of you is that you download the file instead of streaming it directly from the website (it&#8217;ll save a little bandwidth).  Thanks =o)</p>]]></content:encoded>
			<wfw:commentRss>http://www.SWHarden.com/blog/2008-12-23-merry-labmice/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Data Mismanagement / Infestation</title>
		<link>http://www.SWHarden.com/blog/2008-12-20-data-mismanagement-infestation/</link>
		<comments>http://www.SWHarden.com/blog/2008-12-20-data-mismanagement-infestation/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 19:14:29 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=553</guid>
		<description><![CDATA[<p>As if threat of impending doom doom weren&#8217;t already haunting my nightmares (possibly due to the intimidating threat of overlooked graduation requirements preventing my career from moving forward in a timely manner, but more likely due to terrifying possibility that my entire life will be spent stuck graduate school), yesterday I had two separate wrenches [...]</p>]]></description>
			<content:encoded><![CDATA[<p><strong>As if threat of impending doom doom weren&#8217;t already haunting my nightmares</strong> (possibly due to the intimidating threat of overlooked graduation requirements preventing my career from moving forward in a timely manner, but more likely due to terrifying possibility that my entire life will be spent stuck graduate school), yesterday I had two separate wrenches thrown into my academic gears.  First, although I succeeded in confirming my legal rights with respect to being bound only to program policies that were already enacted prior to my admission, I came across a disturbing amendment to the thesis policies which claims that no student can propose, submit, or defend their thesis in the same semester.  If this ruling applies to me, it will be devastating.  I&#8217;ve spent a year and a half figuring out a way to do something no body has ever done before (looking at something no one has ever seen before, developing a method to quantitatively measure it that was never used before, and drawing conclusions about a pathological condition that was only previously theorized), and now that I&#8217;ve perfected my technique I want to use the subject matter for my thesis, propose the thesis, formally write and submit the thesis, and formally defend it (in rapid succession), thus satisfying my thesis requirements for graduation.<br />
<strong>So, I&#8217;m gathering preliminary data together and forming an experimental plan when, oh my, do I need to write more Python code?</strong>  Yeah, I know I feel that I look for excuses to find reasons to program, but the truth is that Python is so versatile and my working knowledge of it is thorough enough that I can&#8217;t imagine what I&#8217;d do without it!  My department has an animal facility where they house literally thousands of mice of many different strains.  These mice are housed in cages (maximum 5 mice per cage), and each cage contains only one (occationally two) types of mice with respect to sex, age, strain, and heredity.  The project I&#8217;m working on will compare <span class="caps">OVE26 </span>(transgenic diabetic) mice with <span class="caps">FVB </span>(normal) controls.  I also have a small collection of <span class="caps">GFP </span>(fluorescent) mice which I plan to use on a separate project.<br />
<strong>So, what&#8217;s the problem?</strong>  These mice are randomly distributed in giant racks with 6 stacked rows and 7 columns.  Each rack has 46 cages, and racks are double-sided.  Thankfully, all of the <span class="caps">FVB, OVE26, </span>and <span class="caps">GFP </span>mice are located on two large racks for a total of 184 cages.  Unfortunately, interspersed are <span class="caps">C57BL </span>and other strains of mice I don&#8217;t plan to use.  Another issue is that I only plan to use male mice in my experiment.  A real pain is the fact that one rack is underground in the transgenic animal facility &#8220;headquarters&#8221; (for lack of a better word), and the other rack containing my mice is three stories up.  Not only are these mice seemingly randomly distributed in location, but there appears to be a total lack of species/strain/heridity/sex specific inventory.  The only inventory methods appear to be a total animal count.  So when I went to my boss to ask how many diabetic mice we have and of what ages, he talked to another person who works in the laboratory and they concluded that they don&#8217;t really know.  Do they have enough diabetic mice for my experiment?  Are they old or young?  <img src="http://www.SWHarden.com/blog/images/inventory_dumblook.jpg" alt="" title="inventory_dumblook" width="292" height="393" align="left" />Can we produce age-matched diabetic and control mice?  Are there enough mice for my experiment that I don&#8217;t have to ruin the project of another laboratory worker planning on using the same mice?  These are all questions that could not be answered, only speculated.</p>

<p><strong>With all of the uncertainties already afflicting my thesis process, I didn&#8217;t want animal confusion to be a problem.</strong>  From what I heard, about a dozen diabetic animals (in the age range I wanted most for my experiment) were recently killed.  I felt that this process needed to be organized before I could properly come up with a plan, and of course, Python would be involved.  I spent the morning downstairs manually inventorying mice.  I decided that a location-based system would be the most useful.  Each cage got its own line on a sheet of notebook paper (actually more like 8 sheets), and on each line I noted the cage location (in story/row/column coordinates), and information about the 1 or 2 groups of animals housed in the cage (count, sex, and date of birth for each group).  After a couple hours sweating beneath my disposable hairnet and lab coat, I completed the downstairs inventory.  To the side is a picture I took of myself half way through the monotonous process.  (I think blood was about to shoot out of my eyes) Later I ate lunch, then did the upstairs.  After I finished, I went home and manually entered this data into the computer (open office spreadsheet -&gt; <span class="caps">XLS</span>), so it looked like this:</p>

<p><img src="http://www.SWHarden.com/blog/images/inventory_excel.gif" alt="" title="inventory_excel" width="473" height="292" align="center" /></p>

<p><strong>Then I saved this data as a <span class="caps">CSV</span></strong> (comma separated values) file (using either open office or microsoft excel).  Note that this is done in such a way that it&#8217;s very easy to make modifications to the <span class="caps">XLS </span>file to reflect new cages, changing cage locations, or animal death.  Anyway, once it was in a <span class="caps">CSV </span>format, I wrote a Python script to convert the <span class="caps">CSV </span>format to a custom easy-to-analyze format which basically boils down to one line per mouse (not one line per cage).  This is the Python script:</p>



<pre class="prettyprint lang-py">
f=open(&quot;data.csv&quot;)
raw=f.readlines()
f.close()
animals=[] # [cage,sex,type,dob,age]
cages=[]
def addAnimals(animal,cage):
        if len(animal[0])==0: return False
        if cage not in cages: cages.append(cage)
        count=int(animal[0])
        if animal[1] == 'm': sex=&quot;male&quot;
        else: sex=&quot;female&quot;
        strain=animal[2]
        dob=animal[3]
        age=int(round(float(animal[4])))
        animal = [cage,sex,strain,dob,age]
        for i in range(count):
                animals.append(animal)
for i in range(len(raw)):
        line = raw[i].replace('&quot;','').replace('\n',&quot;&quot;)
        if &quot;-&quot; in line:
                line = line.split(&quot;,&quot;)               
                addAnimals(line[3:8],line[14])
                addAnimals(line[8:13],line[14])
f=open(&quot;data.txt&quot;,'w')
f.write('['+str(animals)+&quot;],[&quot;+str(cages)+']')
f.close()
</pre>



<p><strong>Running this script produced a file with content like this:</strong></p>


<pre class="prettyprint lang-py">
[[['d-a1', 'male', 'fvb', '09/26/08', 3], ['d-a2', 'male', 'fvb', '08/12/08', 4], ['d-a2', 'male', 'fvb', '08/12/08', 4], ['d-a3', 'male', 'fvb', '12/24/07', 12], ['d-a3', 'male', 'fvb', '12/24/07', 12], ['d-a4', 'male', 'fvb', '11/16/08', 1], ['d-a4', 'male', 'ove26', '11/16/08', 1], ['d-a4', 'male', 'ove26', '11/16/08', 1], ['d-a4', 'male', 'ove26', '11/16/08', 1], ['d-a5', 'male', 'fvb', '10/26/08', 2], ['d-a5', 'male', 'fvb', '10/26/08', 2],...
</pre>



<p><strong>From there, I wrote an analysis python script.</strong>  Should I post it?  [thinks about it]  Sure why not.  A warning though, the code is pretty rough.  It works though =o)</p>


<pre name="code" class="prettyprint lang-py:collapse">
import pylab

f=open('data.txt')
animals,cages=eval(f.read())
animals,cages=animals[0],cages[0]
f.close()
print &quot;Processing data for %d animals in %d cages...&quot; % (len(animals),len(cages))

##LIMITS######
sex=&quot;male&quot; #'male' or 'female'
strain=&quot;ove26&quot;
minage=3
maxage=9
##############

selected=[]

def passIt(animal): #['u-l7', 'male', 'ove26', '10/28/08', 2]
        global selected
        if not animal: #dscription 
                title=&quot;Displaing &quot;
                if sex: title = title+sex+&quot; &quot;
                if strain: title = title+strain+&quot; &quot;
                else: title = title+&quot;all &quot;
                title = title + &quot;mice from &quot;
                if minage: title = title+str(minage)+&quot; months to &quot;
                else: title = title+&quot;birth to &quot;
                if maxage: title = title+str(maxage)+&quot; months.&quot;
                else: title = title+&quot;death.&quot;
                return title
        if sex:
                if not animal[1]==sex: return False
        if strain:
                if not animal[2]==strain: return False
        if minage:
                if animal[4]&lt;minage : return False
        if maxage:
                if animal[4]&gt;maxage: return False
        selected.append(animal)
        return True

def histIt(strain=&quot;all&quot;,col='k',label=True,limitTest=False,lw=None):
        ages,xs,a=[],[],{}
        for animal in animals:
                if limitTest:
                        col='b'
                        if passIt(animal):
                                ages.append(animal[-1])
                                if not animal[-1] in a: a[animal[-1]]=0
                                a[animal[-1]]=a[animal[-1]]+1
                elif strain in animal or strain == &quot;all&quot;:
                        ages.append(animal[-1])
                        if not animal[-1] in a: a[animal[-1]]=0
                        a[animal[-1]]=a[animal[-1]]+1
        for x in range(max(ages)+1):
                xs.append(x-.45)
                if not x in a: a[x]=0
        if not limitTest: 
                pylab.title(&quot;Ages of %d (%s) Mice&quot;%(len(ages),strain))
                pylab.xticks(range(1,max(ages)+1))
        if not label: col,lw='0.9',0
        else: pylab.title(passIt(None))
        pylab.bar(xs,a.values(),color=col,lw=lw)
        for x in range(max(ages)+1):
                if label:
                        if a[x]&gt;0: pylab.text(x,a[x]+1,a[x],ha='center')

def showSelected():
        cages={}
        ids=[]
        m,f=0,0
        for animal in selected:
                if animal[1]==&quot;female&quot;:f=f+1
                if animal[1]==&quot;male&quot;:m=m+1
                if animal[0] not in cages: 
                        cages[animal[0]]=0
                        ids.append(animal[0])
                cages[animal[0]]=cages[animal[0]]+1
        ids.sort()
        x=0
        disp=&quot;Total of %d mice (%dm/%df)\n\n&quot;%(m+f,m,f)

        disp=disp+&quot;Animal Cage Locations:\n&quot;
        for cage in ids:
                disp = disp+&quot;%s(%d), &quot;%(cage,cages[cage])
                x=x+1
                if x&gt;7:
                        x=0
                        disp = disp + &quot;\n&quot;
        return disp

def getLimits():
        global sex, strain, minage, maxage
        answer=raw_input(&quot;Sex [m,f]:&quot;)
        if answer==&quot;&quot;: sex = None
        if answer==&quot;m&quot;: sex = &quot;male&quot;
        if answer==&quot;f&quot;: sex = &quot;female&quot;
        answer=raw_input(&quot;Strain [ove26,fvb,gfp]:&quot;)
        if answer==&quot;&quot;: strain = None
        else: strain=answer
        answer=raw_input(&quot;Minimum Age [3]:&quot;)
        if answer==&quot;&quot;: minage = None
        else: minage=int(answer)
        answer=raw_input(&quot;Maximum Age [9]:&quot;)
        if answer==&quot;&quot;: maxage = None
        else: maxage=int(answer)
        print &quot;\n\n&quot;
        print passIt(None)
        raw_input(&quot;\npress ENTER to start&quot;)
        return

getLimits()
fig = pylab.figure(figsize=(12,8))
histIt(label=False)
histIt(limitTest=True)
masterAxis = [0,pylab.axis()[1]+1,0,int(pylab.axis()[3]*1.15)]
pylab.axis(masterAxis)
pylab.figtext(.4,.85,showSelected(),va='top')
pylab.show()
#fname=raw_input(&quot;Enter a name for this image to save it or press ENTER to quit:&quot;)
#if len(fname)&gt;1:
#       pylab.savefig(fname+&quot;.png&quot;)
#       print &quot;\nsaved as [%s]&quot;%(fname+&quot;.png&quot;)
#       raw_input(&quot;\npress ENTER to exit...&quot;)
&lt;/minage&gt;</pre>



<p><strong>Running this code</strong> asks some questions about what type of information I should display.  if I have it display all male <span class="caps">OVE26 </span>animals (for example) the output looks like this (thanks to matplotlib):</p>

<p><a href="http://www.SWHarden.com/blog/images/ove_male1.png" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/ove_male1-500x335.png" alt="" title="ove_male1" width="500" height="335" class="aligncenter size-medium wp-image-564" align="center" /></a></p>

<p><strong>Here the gray bars are the total number of all animals, and the blue bars are the animals I searched for</strong> (in this case, all male ove26 animals).  Comparing <span class="caps">FVB </span>and <span class="caps">OVE26 </span>charts, I estimated that we had enough male 4-5 month old <span class="caps">OVE26 </span>and <span class="caps">FVB </span>animals to make the experiment work (about 12 of each group).  Searching for male ove26 mice at least 4 months and no older than 5 months old produces this chart:</p>

<p><a href="http://www.SWHarden.com/blog/images/use_ove261.png" onclick="javascript:urchinTracker ('/outbound/article/www.SWHarden.com');"><img src="http://www.SWHarden.com/blog/images/use_ove261-500x335.png" alt="" title="use_ove261" width="500" height="335" class="aligncenter size-medium wp-image-562" align="center"/></a></p>

<p>See how it lists the location of each of the cages and the number of animals I want from each <strong>cage?</strong>  For example, &#8220;d-<acronym title="1">I2</acronym>&#8221; means that there is a cage downstairs, along row I, in column 2, which contains 1 male <span class="caps">OVE26 </span>mouse 4 or 5 months old.  Awesome list generation!  Thanks Python =oD</p>

<p><strong>But wait, couldn&#8217;t I have just gone down and looked for 4-5 month old mice?</strong>  Yes and no.  Yes, it would be easy to find (and mark) these mice, but no because I would not have known to look for them.  The goal of yesterday&#8217;s little python project was to be able to see at one time everything we have, so I could best determine the criteria of the animals I wanted.  Before I made this program, I was planning on comparing mice between 5 and 7 months - something that appears would have been impossible based on the animals we currently have.  I can also tell what other experiments I will be able to do in a few months, when some of the mid-age <span class="caps">FVB </span>mice will grow older.  Additionally, this program is versatile and can be used again and again, for many different projects, with no modification to the code required.  Yay Python!</p>]]></content:encoded>
			<wfw:commentRss>http://www.SWHarden.com/blog/2008-12-20-data-mismanagement-infestation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Disappointing Sweaters</title>
		<link>http://www.SWHarden.com/blog/2008-12-19-disappointing-sweaters/</link>
		<comments>http://www.SWHarden.com/blog/2008-12-19-disappointing-sweaters/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 14:35:16 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=550</guid>
		<description><![CDATA[<p>Several months ago I had a bast attending a movie theater simulcast of Glenn Beck&#8217;s show &#8220;Unelectable&#8221;, which was essentially an hour of stand-up comedy followed by an hour of Glenn Beck pretending to running for the US presidency in 2008, delivering speeches filled with masterful political satire and some disturbingly transparent (and seemingly obvious) [...]</p>]]></description>
			<content:encoded><![CDATA[<p><strong>Several months ago I had a bast</strong> attending a movie theater simulcast of Glenn Beck&#8217;s show &#8220;Unelectable&#8221;, which was essentially an hour of stand-up comedy followed by an hour of Glenn Beck pretending to running for the US presidency in 2008, <img src="http://www.SWHarden.com/blog/images/unelectable.jpg" alt="" title="unelectable" width="342" height="491" align="left" />delivering speeches filled with masterful political satire and some disturbingly transparent (and seemingly obvious) truth that no one seemed to be saying at the time, and was very good to hear.  Before I lose anybody, I&#8217;d like to note that Glenn Beck is a popular conservative AM radio talk show host (currently the 3rd most listened to in the world, beat by Sean Hannity and Rush Limbaugh) that can be heard around the country from 9-12 <span class="caps">EST.</span> Anyhow, it was hilarious and amazingly entertaining.  My wife and I arrived an hour early and a line of at least a hundred people was already formed.  By the time the theater was filled, the crowd was incredibly rowdy and storms of laughter (and often clapping) were produced every time a joke was told.  The attendees were an interesting group - mostly families and older generations (I&#8217;d say that 80% of the crowd was over 50).  It was also impressively white! I think my wife was the only black person in the entire <span class="caps">IMAX </span>theater.  I felt kind of special.  Anyhow, here&#8217;s a little video I found from that night:<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/WnbsveUpsac&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/WnbsveUpsac&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>

<p><strong>Like I said, the entire night was amazingly entertaining.</strong>  My only regret is that I didn&#8217;t get to take the rest of my family!  I thought my dad (not too sure about my mom), and my dad&#8217;s parents would have liked it.  (My mom&#8217;s parents would have liked it too, but they don&#8217;t live in town)  After I left, I said that I wished I bought all of them tickets (even though they were 20$ a seat - for a movie theater!).  Yeah, it was that good.  So when I heard that Glenn Beck would be simulcasting another event, I jumped on the chance!  &#8220;The Christmas Sweater&#8221; was the title of this event, and I have to say (without going into too much detail) that it was very disappointing.  I guess I was expecting something similar to the previous show - two hours of laughter.  This was a stage show, in which Glenn Beck pranced around for two hours narrating and acting out each character of a Christmas story.  The story was somewhat emotional (about his parents dying and him running away as a 13 year old), and vaguely reminiscent of his life it seemed.  Far from a literary masterpiece, the story (that he wrote) contained the fatal &#8220;and I woke up and it was all a dream!&#8221; component, which made me regret going at all (and especially insisting that my parents attend!).  I actually felt the need to apologize to them in the parking lot on the way to our cars.  [Sigh]  I considered getting the (newly released) <span class="caps">DVD </span>recording of &#8220;unelectable&#8221; for my dad for Christmas, but being that this event was such a flop (and therefore the connotation of anything Glenn Beck related in my parents&#8217; eyes), I&#8217;ll be hunting for a different gift for him this year. Anyway, I need to get some lab work done today.  Out.</p>]]></content:encoded>
			<wfw:commentRss>http://www.SWHarden.com/blog/2008-12-19-disappointing-sweaters/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Molecular Purgatory</title>
		<link>http://www.SWHarden.com/blog/2008-12-17-molecular-purgatory/</link>
		<comments>http://www.SWHarden.com/blog/2008-12-17-molecular-purgatory/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 18:50:09 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=541</guid>
		<description><![CDATA[<p>In my program (the University of Central Florida’s Master of Science in Molecular Biology and Microbiology) there is a handbook distributed to each class during orientation.  The handbook lists the requirements of the program.  Presumably, when these requirements are met, one can graduate.  It clearly states that you need 30 credit hours [...]</p>]]></description>
			<content:encoded><![CDATA[<p>In my program (the University of Central Florida’s Master of Science in Molecular Biology and Microbiology) there is a handbook distributed to each class during orientation.  The handbook lists the requirements of the program.  Presumably, when these requirements are met, one can graduate.  It clearly states that you need 30 credit hours to graduate, of which 6 are thesis and 24 are non-thesis courses.  <img src="http://www.SWHarden.com/blog/images/enzyme.gif" alt="" title="enzyme" width="300" height="260" align="left" />Of the 24 hours of non-thesis coursework, there is a small list of required classes [core I (5hr), core II (5hr), Lab (4hr), Prac (2hr), Seminar I (1hr), and Seminar 2 (1hr)] totaling 18 hours.  Therefore, since 24 hours are required, but required courses only total 18 hours, it’s assumed that one needs to take 6 hours of elective courses to make-up for this deficiency.  I’m pulling my hair out today because my program advisor told me that I needed 10 hours of elective coursework to graduate – something that is not mentioned anywhere in the handbook.  (To be accurate, there is a single passing mention of a single 3 hour elective course, but it’s to be taken to help reach the requirement of 24 non-thesis credit hours.)  This change (requiring 10 hours of elective credit) was made after I began the program.  I do not believe that the program has the right (ethically, or legally) to hold this change against me and prevent my graduation (preventing graduation means that even if I do get accepted into dental school, I could not attend, because acceptance is dependent upon completion of the program I’m in).  I spent the last hour describing my plight to the members of the graduate office, in hopes that I can obtain legal documentation to support my case.  This stuff is so frustrating. [sigh]</p>]]></content:encoded>
			<wfw:commentRss>http://www.SWHarden.com/blog/2008-12-17-molecular-purgatory/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
