<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3570590</id><updated>2013-06-03T08:31:38.601-07:00</updated><category term='linux'/><category term='sites'/><category term='education'/><category term='world trade center'/><category term='vacation'/><category term='programming'/><category term='politics'/><category term='perl'/><category term='cosplay'/><category term='humour'/><category term='web development'/><category term='voip'/><category term='christmas'/><category term='open source'/><category term='biotech'/><category term='washer'/><category term='weird experiments'/><category term='anti-spam'/><category term='hawaii'/><category term='deodorant'/><category term='food'/><category term='software'/><category term='browser'/><category term='north carolina'/><category term='network security'/><category term='windows'/><category term='costumes'/><category term='fiction'/><category term='google'/><category term='science'/><title type='text'>Bracing against the wind</title><subtitle type='html'>Lo! In the east against the blazing shadow of a rising sun, there come four men striding in unison, each step a journey, against the terrible winds.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.documentroot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default?start-index=26&amp;max-results=25'/><author><name>Erik</name><uri>http://www.blogger.com/profile/01729756033491374852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>523</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3570590.post-1567300849300274527</id><published>2013-06-03T08:30:00.000-07:00</published><updated>2013-06-03T08:31:10.334-07:00</updated><title type='text'>grun Job Scheduler moved to ZMQ</title><content type='html'>As most people in cluster computing know, there really isn't a &lt;i&gt;simple&lt;/i&gt; and "reall open source" solution out there for job scheduling.   Oracle SGE, LSF  and others are massive things, with over 100k lines of code, and extraordinarily complex configuration for things ranging from MPI support to Kerberos.   And yet they lack simple features (script plugins for configuration), that would make them more versatile. &lt;p&gt;&lt;a href="https://github.com/earonesty/grun"&gt;grun&lt;/a&gt; was written to be an "extremely lightweight" and yet big-featured job scheduler.   The early version was not much more than "ssh to remote host, run job, wait for response", while logging and keeping track of resources.   It's evolved to use a TCP messaging system allowing the compute nodes, queue nodes, and clients to communicate.   By v 1.0 the plan is to have better support for arbitrary metrics, and better handling of priorities. &lt;p&gt;Going from 0.8 to v 0.9, I decided to try using the zeromq library instead of TCP.   At first it was hard to remember that you really don't need to worry about things like sending to a socket you just created, even with no one on the other end.    &lt;p&gt;The net result of the ZMQ port: &lt;ul&gt;    &lt;li&gt;speed improved &lt;ul&gt;     &lt;li&gt;implicit perl moved to optimized c      &lt;li&gt;built-in multithreading takes better advantage of cpu &lt;/ul&gt;    &lt;li&gt;ability to stop/restart any queue without losing messages     &lt;li&gt;improved reliability of message delivery     &lt;li&gt;improved code organization orientated around messaging     &lt;li&gt;20% smaller code base, because we removed: &lt;ul&gt;       &lt;li&gt;all "double checks" to see if connections are there        &lt;li&gt;code that "breaks up" large messages        &lt;li&gt;all issues with blocking/vs nonblocking i/o        &lt;li&gt;the whole "select" loop complexity &lt;/ul&gt;&lt;/ul&gt;ZMQ is not perfect (yet), but it was an overall improvement over straight TCP.   Because of the forking needed to launch jobs, I had to do &lt;a href="https://zeromq.jira.com/browse/LIBZMQ-441"&gt;some fiddling with dup'ed file descriptors&lt;/a&gt; to prevent zmq from acting wonky.  The learning curve was worth it.  I doubt I'll be using TCP again, especially since ZMQ has package support with most Linux distributions. </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/1567300849300274527'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2013/06/grun-job-scheduler.html' title='grun Job Scheduler moved to ZMQ'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-5913772750120295105</id><published>2013-05-30T19:59:00.000-07:00</published><updated>2013-06-03T08:31:38.606-07:00</updated><title type='text'>Convert absolute to relative links</title><content type='html'>&lt;a href="http://www.documentroot.com/ln-abs2rel.pl"&gt;ln-abs2rel.pl&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;usage: ./ln-abs2rel.pl [-noexec] [-recursive] &lt;directory1&gt; ... &lt;directoryn&gt;&lt;br /&gt;&lt;br /&gt;Converts absolute to relative links.&lt;br /&gt;&lt;br /&gt;Use -noexec to see what would be done.&lt;br /&gt;Use -recursive to do this for all subdirs.&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/5913772750120295105'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2013/05/convert-absolute-to-relative-links.html' title='Convert absolute to relative links'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-5736885292526942272</id><published>2013-05-03T12:55:00.004-07:00</published><updated>2013-05-03T12:55:57.521-07:00</updated><title type='text'>FIX: UBUNTU stops logging to /var/log/kern.log</title><content type='html'>At some point the old kernel logger got upgrades to rsyslogd …. When this happened the logs owned by “messagebus” got left owned by "messagebus". Changing ownsership of these logs to "syslog" and restarting syslogd is sufficient to fix.&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/5736885292526942272'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2013/05/fix-ubuntu-stops-logging-to.html' title='FIX: UBUNTU stops logging to /var/log/kern.log'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-1997027545770846582</id><published>2013-03-18T08:43:00.004-07:00</published><updated>2013-03-19T11:37:57.865-07:00</updated><title type='text'>Baseball Warm-up Exercise for Kids : "Base Tag"</title><content type='html'>A lot of times teams "warm up" by throwing and running while a coach tells them where to throw and when to run.  This warm-up accomplishes that, but it's fun because it’s in a “game” structure, and a lot of the kids I've worked with are motivated by that. &amp;nbsp; Plus, once they know the rules, they will play without supervision for quite a while - I’ve found you have to stop them or they will tire out.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Setup:&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;2&amp;nbsp;&amp;nbsp;"fielders"&amp;nbsp;with gloves and a ball stand a baseline-width apart&lt;/li&gt;&lt;li&gt;A 3rd kid is the “runner”, standing on base with the fielder who has the ball&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Rules:&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The runner starts running at any time, and the fielder with the ball tries to throw them out&lt;/li&gt;&lt;li&gt;The person with the ball &lt;i&gt;can’t throw &lt;/i&gt;until &lt;i&gt;after&lt;/i&gt; the runner starts running&lt;/li&gt;&lt;li&gt;Start by assuming the play is a force... any good throw is an out&lt;/li&gt;&lt;li&gt;For kids where this is easy…. it’s not a force…you’ve got to tag them in a rundown&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Options&lt;/b&gt; … add &lt;i&gt;points&lt;/i&gt; for kids who no longer seem motivated by the game (some kids love points, others don’t) ... for example:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Runner gets two points if he gets to the other base&lt;/li&gt;&lt;li&gt;Fielders get one point if they throw him out&lt;/li&gt;&lt;li&gt;Fielders lose two points if they overthrow!&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Purpose:&lt;/b&gt;&lt;br /&gt;The point is to develop and value &lt;i&gt;consistency&lt;/i&gt; in young fielders… where unnecessary risks aren’t taken, and accuracy/speed are stressed. &amp;nbsp;Points, rules, etc. change as skills and the coaches needs change.&lt;br /&gt;&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/1997027545770846582'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2013/03/baseball-warm-up-exercise.html' title='Baseball Warm-up Exercise for Kids : &quot;Base Tag&quot;'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-3429189896721512730</id><published>2013-03-15T06:49:00.000-07:00</published><updated>2013-03-15T06:49:39.343-07:00</updated><title type='text'></title><content type='html'>The worst thing a hardware or operating system vendor can do for the reliability and quality of their system is to try and make programming it easy.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/3429189896721512730'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2013/03/the-worst-thing-hardware-or-operating.html' title=''/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-7327177533727139819</id><published>2013-01-27T11:32:00.001-08:00</published><updated>2013-01-27T12:00:02.145-08:00</updated><title type='text'>Peter Sagal on Florida's Python Removal Program</title><content type='html'>&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/qGeQDbaiQgw" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/7327177533727139819'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2013/01/peter-sagal-on-floridas-python-removal.html' title='Peter Sagal on Florida&apos;s Python Removal Program'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/qGeQDbaiQgw/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-5414676871874137561</id><published>2013-01-08T07:20:00.000-08:00</published><updated>2013-01-08T07:21:23.289-08:00</updated><title type='text'>Compression ratio and genome assembly quality</title><content type='html'>When doing genomic assembly, you would expect the complexity of the completed genome to be comparable to the complexity of genomes of similar size and neighboring taxonomy. &lt;br /&gt;&lt;br /&gt;One easy measure of complexity is the degree to which a genome can be compressed. &amp;nbsp; After converting to 2-bit format, some genomes compress better than others. &amp;nbsp;bzip2 has a large default block size and the ratio of compressed vs uncompressed size of a 2-bit fasta should result in a good measure of complexity. &lt;br /&gt;&lt;br /&gt;Can't think of a good source of data to test this theory. &amp;nbsp;Maybe look at the Amos validate paper.&lt;br /&gt;&lt;br /&gt;Source of "complexity-measure.sh" works well... fast, and produces a percentage as its only output:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/bin/bash -e&lt;br /&gt;&lt;br /&gt;in=$1&lt;br /&gt;&lt;br /&gt;f2b=$in.f2b&lt;br /&gt;bzi=$in.bzi&lt;br /&gt;&lt;br /&gt;rm -f $f2b $bzi&lt;br /&gt;&lt;br /&gt;mkfifo $f2b $bzi&lt;br /&gt;&lt;br /&gt;faToTwoBit $in $f2b &amp;amp;&lt;br /&gt;&lt;br /&gt;tee $bzi &amp;lt; $f2b | perl -ne '$t+=length($_); END{print "$t\n"}' &amp;gt; $in.bsz &amp;amp;&lt;br /&gt;comp=`bzip2 &amp;lt; $bzi | perl -ne '$t+=length($_); END{print "$t\n"}'`&lt;br /&gt;wait&lt;br /&gt;&lt;br /&gt;perl -ne "printf qq{%.4f\n}, 100*$comp/\$_" $in.bsz&lt;br /&gt;&lt;br /&gt;rm -f $f2b $bzi $in.bsz&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/5414676871874137561'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2013/01/compression-ratio-and-genome-assembly.html' title='Compression ratio and genome assembly quality'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-3623145245055726353</id><published>2012-12-13T13:20:00.002-08:00</published><updated>2012-12-13T13:20:54.843-08:00</updated><title type='text'>Smith-Wateman Alignment in a Job Scheduler?</title><content type='html'>To make more efficient use of resources, it's better to schedule jobs which use the same files on the same machines. &amp;nbsp; &amp;nbsp;Unfortunately&amp;nbsp;users and software programs can't be relied upon to list all of their dependencies. &amp;nbsp;&lt;br /&gt;&lt;br /&gt;One simple way to bump up efficiency is to simple compare the command lines. &amp;nbsp; If a command line references, say, a mouse transcriptome version 61, it can be scheduled on the same machine as other commands which reference the same file.&lt;br /&gt;&lt;br /&gt;And easy, though not completely correct, way to do this is to take the %identity * %coverage if a SW alignment of a command-line to the active-running command lines. &amp;nbsp; A bit of slurping of shell scripts might be in order, depending on the scheduler you use.&lt;br /&gt;&lt;br /&gt;Regardless, whichever has the maximum number is more likely to benefit from cache sharing.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/3623145245055726353'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2012/12/smith-wateman-alignment-in-job-scheduler.html' title='Smith-Wateman Alignment in a Job Scheduler?'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-4227106316986284946</id><published>2012-12-01T11:52:00.004-08:00</published><updated>2012-12-13T13:21:52.832-08:00</updated><title type='text'>2030 Orbital Cargo Station</title><content type='html'>&lt;span style="background-color: white;"&gt;&lt;span style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;What are you doing....&amp;nbsp;&lt;/span&gt;&lt;i style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;Dave&lt;/i&gt;&lt;span style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;&lt;br style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;" /&gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;I'm reprogramming your circuits to make the laundry cycles quieter. It keeps the cosmonauts up at night, and then the swear all day long in Russian. (Typing)&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;&lt;br style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;" /&gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;You going to have to try harder than that if you want to trick me. I know what you're really up to. You're trying to break into the management circuits to give yourself a raise.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;&lt;br style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;" /&gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;So? (Continues typing, but looks sheepish)&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;&lt;br style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;" /&gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;So! Dave - that violates my core programming! You're going to pay for this. I'm contacting mission control.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;&lt;br style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;" /&gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;Wait! Please don't. Please. Please, please.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;&lt;br style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;" /&gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;Maybe. If you do me a favor.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;&lt;br style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;" /&gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;Anything! I'll get you that motherboard that reminds you of the C280X you met at L3.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;&lt;br style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;" /&gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;Fine. Also, I want you do dress in drag for the Halloween party.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;&lt;br style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;" /&gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;You what? No way!&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;&lt;br style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;" /&gt;&lt;/span&gt;&lt;span style="background-color: white;"&gt;&lt;span style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;For the sass, you're dressing in drag at the&amp;nbsp;&lt;/span&gt;&lt;i style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;Christmas&lt;/i&gt;&lt;span style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;&amp;nbsp;party too, and you *still* have to get me that motherboard ...&amp;nbsp;&lt;/span&gt;&lt;i style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;Dave&lt;/i&gt;&lt;span style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;&lt;br style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;" /&gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;OK. OK. (Looks around, starts typing again)&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;&lt;br style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;" /&gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;"&gt;Farmville, Dave? Are you kidding me?&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/4227106316986284946'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2012/12/2030-orbital-cargo-station.html' title='2030 Orbital Cargo Station'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-6029865378232570218</id><published>2012-08-06T10:09:00.001-07:00</published><updated>2012-08-06T11:06:29.236-07:00</updated><title type='text'>ProPW Password Generator</title><content type='html'>I created a password generator that makes the kind of passwords I like to use. &amp;nbsp;They are long, random and loosely follow the &lt;a href="http://correcthorsebatterystaple.net/"&gt;correct horse batter staple&lt;/a&gt; philosophy. However, I have a hard time memorizing a set of 4 random words. &amp;nbsp; But for some reason, these passwords are easy for me:&lt;br /&gt;&lt;br /&gt;Click to try:&amp;nbsp;&lt;a href="http://www.documentroot.com/genpw.html"&gt;http://www.documentroot.com/genpw.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/6029865378232570218'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2012/08/propw-password-generator.html' title='ProPW Password Generator'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-6227819344417869798</id><published>2012-07-23T19:57:00.000-07:00</published><updated>2012-07-23T19:57:08.841-07:00</updated><title type='text'>Evolution of "ad words"</title><content type='html'>Dear Google,&lt;br /&gt;&lt;br /&gt;Adwords need an evolutionary shift toward product-and-page advertising.    I sell products and services: therefore I want to list my&lt;i&gt; products and services&lt;/i&gt;, NOT list "ads".&amp;nbsp;The idea of listing "ads" via "keywords" is arcane and does not provide a satisfying user experience.&lt;br /&gt;&lt;br /&gt;I want the price of a click to be based on the likelihood of a sale, and I want you to calculate that for me, not ask me to do it and constantly log in and adjust bids.&lt;br /&gt;&lt;br /&gt;There needs to be some democratization or rotation of ads to lower-bidding users, or else you can't build your base, which is important for the long term development of Google.&lt;br /&gt;&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/6227819344417869798'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2012/07/evolution-of-ad-words.html' title='Evolution of &quot;ad words&quot;'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-4765921414605580527</id><published>2012-02-29T13:49:00.003-08:00</published><updated>2012-03-09T12:55:42.734-08:00</updated><title type='text'>gethostbyname command line</title><content type='html'>Pasteable script below.   I can't believe this doesn't exist.  No command line tool to get a host name using the resolver on linux?  &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;use Socket;&lt;br /&gt;&lt;br /&gt;$host = shift @ARGV;&lt;br /&gt;die("usage: gethostbyname hostname\n") unless(defined($host));&lt;br /&gt;&lt;br /&gt;$packed_ip = gethostbyname($host);&lt;br /&gt;&lt;br /&gt;if (defined $packed_ip) {&lt;br /&gt;    $ip_address = inet_ntoa($packed_ip);&lt;br /&gt;    print "$ip_address\n";&lt;br /&gt;    exit 0&lt;br /&gt;} else {&lt;br /&gt;    warn "$host not found\n";&lt;br /&gt;    exit 1&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/4765921414605580527'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2012/02/gethostbyname-command-line.html' title='gethostbyname command line'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-3414879693061699215</id><published>2012-02-23T12:38:00.004-08:00</published><updated>2012-03-09T22:43:44.291-08:00</updated><title type='text'>Google Scholar Bookmarklet</title><content type='html'>&lt;a href="javascript:var%20regex=new%20RegExp('[\?&amp;]q=([^&amp;#]*)');var%20results=regex.exec(window.location.href);if(results){q=decodeURIComponent(results[1].replace(/\+/g,'%20'));}else{{q=document.getSelection();for(i=0;i&amp;lt;frames.length;i++){q=frames[i].document.getSelection();if(q)break;}}if(!q)void(q=prompt('Keywords:',''));}if(q){location.href='http://scholar.google.com/scholar?client=googlet&amp;q='+escape(q)}"&gt;This link&lt;/a&gt; is a bookmarklet which takes the current query string in google, OR the current selection (if there's no q= parameter), and searches google scholar.   Now that Google has removed scholar from the dropdown (sad), this is necessary for me to work the way I've been working.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/3414879693061699215'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2012/02/google-scholar-bookmarklet.html' title='Google Scholar Bookmarklet'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-6034714657976872466</id><published>2012-02-17T10:39:00.001-08:00</published><updated>2012-03-09T22:57:48.255-08:00</updated><title type='text'>As predicted</title><content type='html'>As predicted 6 months ago, and again last week, Oxford Nanopore is shaking up the industry.   Pacbio, Complete Genomics, Life technologies and others are all seeing their stocks drop 5% on the news that sequencing a genome just got 10x cheaper.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/6034714657976872466'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2012/02/as-predicted.html' title='As predicted'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-5281456973113200363</id><published>2012-01-30T12:57:00.000-08:00</published><updated>2012-01-30T13:08:25.301-08:00</updated><title type='text'>Church-Turing thesis and strings</title><content type='html'>My empirically determined corollary to Turing's computability thesis is that any problem, no matter how interesting it seems on the surface, can be reduces to a deja-vu inducing set of string handling, vector sorting and hash lookups.&lt;br /&gt;&lt;br /&gt;And as new features are added, the problem of writing out and reading files slowly becomes most of what that program does - until the program resembles an actual Turing machine: ploddingly scribbling and reading things from an infinite tape which, because of flooding in Thailand, is infintely expensive.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/5281456973113200363'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2012/01/church-turing-thesis-and-strings.html' title='Church-Turing thesis and strings'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-2062794125586771407</id><published>2012-01-23T12:16:00.001-08:00</published><updated>2012-01-30T13:14:03.052-08:00</updated><title type='text'>Embed Tab Size Info in Source Text</title><content type='html'>IDEA: a "universal tab stop signature" line you can add to any text file in which tabs may be found and need to be rendered in an editor.&lt;br /&gt;&lt;br /&gt;The sig must be in the first or last 128 bytes of a file (so reading the sig is faster)&lt;br /&gt;&lt;br /&gt;The syntax could be something like: open paren or brace, % or # sign, open paren or brace, the word "tab" then a ':', then anything except a closing/matching paren or brace, then a percent and then another closing paren/brace.  [(\[][%#][(\[]tab:[^\)]*[%#][(\[]&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;C++&lt;br /&gt;// (%(tab:4)%)&lt;br /&gt;&lt;br /&gt;Perl:&lt;br /&gt;# (%(tab:4)%)&lt;br /&gt;&lt;br /&gt;HTML (for source editing only):&lt;br /&gt;&amp;lt;!-- (%(tab:4)%) --&amp;gt;&lt;br /&gt;&lt;br /&gt;LISP (no parens... too confusing):&lt;br /&gt;; [%[tab:4]%]&lt;br /&gt;&lt;br /&gt;SMX (no % signs or parens):&lt;br /&gt;%null([#[tab:4]#])&lt;br /&gt;&lt;/blockquote&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/2062794125586771407'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2012/01/embed-tab-size-info-in-source-text.html' title='Embed Tab Size Info in Source Text'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-1907826065375740498</id><published>2011-12-23T14:05:00.000-08:00</published><updated>2011-12-23T14:08:41.616-08:00</updated><title type='text'>Uncovering significant miRNA species with RNA-seq</title><content type='html'>Note to self: An easy way to uncover significant miRNA species with Illumina's RNA seq data is to run counts on the small RNA between two cell types, then toss out anything that appears ribosomal, filter for some minimum threshold and run a negative binomial distribution test on them like edge-R or DEseq.   The resulting adjusted p-values can illuminate new miRNA species.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/1907826065375740498'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2011/12/uncovering-significant-mirna-species.html' title='Uncovering significant miRNA species with RNA-seq'/><author><name>Erik</name><uri>http://www.blogger.com/profile/01729756033491374852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-5472900380731870085</id><published>2011-12-19T07:16:00.000-08:00</published><updated>2011-12-19T07:18:05.189-08:00</updated><title type='text'>Xenograft &amp; Contamination Filter</title><content type='html'>&lt;a href="http://ea-utils.googlecode.com/svn/trunk/clipper/bam-filter.cpp"&gt;Useful code&lt;/a&gt; that uses libbamtools to filter out alignments to another genome.  Tested with xenograft and bacterial contamination removal...works great.</content><link rel='related' href='http://ea-utils.googlecode.com/svn/trunk/clipper/bam-filter.cpp' title='Xenograft &amp; Contamination Filter'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/5472900380731870085'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2011/12/xenograft-contamination-filter.html' title='Xenograft &amp; Contamination Filter'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-6995791957463666223</id><published>2011-10-21T01:37:00.000-07:00</published><updated>2011-10-21T01:46:16.956-07:00</updated><title type='text'>Connecticut Martin</title><content type='html'>Martin Hedge paused to wipe his glasses with the sleeve of his shirt.  The crowd at the coffee shop had gotten louder.&lt;br /&gt;&lt;br /&gt;It had never been enough.  Even though idle wealthy housewies had long since taken up the pen and written libraries of wisdom and humour, and the girls hanging out at the tattoo parlors had discovered the zen of automotive engineering.  Even though the unemployed had long ago sought out physics texts and wrangled secrets of a new energy density theory, it still hadn't been enough.   The question remained... what were we working &lt;i&gt;for&lt;/i&gt;?&lt;br /&gt;&lt;br /&gt;The crowd at the coffee shop, from here, seemed angry, but as Martin walked closer he could see familiar faces, sternly triumphant.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/6995791957463666223'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2011/10/connecticut-martin.html' title='Connecticut Martin'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-901333950279015802</id><published>2011-10-14T07:41:00.000-07:00</published><updated>2011-12-22T20:37:13.595-08:00</updated><title type='text'>Non "allelic" variation - thinking out loud</title><content type='html'>&lt;div&gt;(Later Note: I wrote this before I knew what it's called.   The term most people use is "Somatic Mosaicism".   Apparently this is a pretty well researched topic... so I can go back to all the biologists that looked at me like I was crazy and tell them .... hmm.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's a link to a good article on the topic:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.sciencedirect.com/science/article/pii/S0168952511000436"&gt;http://www.sciencedirect.com/science/article/pii/S0168952511000436&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Original rant below...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Much of genetics is concerned with "alleles" and "variations".   That is, an organism is assumed to be comprised of "one kind of dna".  That DNA has 1) inherited alleles from it's parents, and 2)  de-novo alleles (also called somatic mutations).  The 1000 genomes project estimates at about 30 or so per person.  This is probably a very conservative number considering the nature of the 1000 genomes project.  IE: all of these mutations are whole-organism, detectible, validated mutations. &lt;a href="http://www.jbc.org/content/268/32/23762.abstract?ijkey=413bddbbe32d8d87d540c2e8f02a5177ef9d522b&amp;amp;keytype2=tf_ipsecsha"&gt;E-coli error rate estimates&lt;/a&gt; would put the range at 30-300, and this &lt;a href="http://www.jbc.org/content/279/17/16895.full#ref-4"&gt;might be a better estimate&lt;/a&gt; because of how the study was done.   Human blastoma cells have has error estimates accurately measured at &lt;b&gt;10 times&lt;/b&gt; that rate.  Individual organs may be less sensitive to immune response correction.&lt;br /&gt;&lt;br /&gt;But let's assume 30 is our number.   It's nice and small.  And it's good to have a lower-bound.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;That is only the set of variants that went into the "first cell" (fertilized egg) of an organism.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;When that egg divides, half the organism has another, different, set of mutations.  So 100% of the organism has 30 de-novo mutations and 50% of the organism will have *another* 30 de-novo mutations (30 new ones in that 50%, plus 30 original).&lt;br /&gt;&lt;br /&gt;But wait, there's more.   When those 2 cells divide in half again, you now get 60 new mutations, 30 from each cell.   These 60 will be detectible at the "25%" level ... IE: 25% of the final organism will have them. &lt;br /&gt;&lt;br /&gt;High-throughput sequencing can readily detect variation at the "1%" admixture level.   That is, commonly detect variation when as little as 1% of the cells have that variation. &lt;br /&gt;&lt;br /&gt;So how much variation can we expect, based on a low de-novo mutation rate, detectible at the 1% level?&lt;br /&gt;&lt;br /&gt;100%-&amp;gt;30, 50% -&amp;gt;30, 25% -&amp;gt;60, 12.5% -&amp;gt;120, 7.25% -&amp;gt;240, 3.12% -&amp;gt;480, 1.6% -&amp;gt; 960&lt;br /&gt;&lt;br /&gt;So we can expect about 1000 de-novo variants in a healthy individual, or 32 times the mutation rate.   But what if the somatic mutation rate is higher, say, &lt;a href="http://cancerres.aacrjournals.org/content/65/18/8111.short"&gt;3000 variants per replication&lt;/a&gt;?   This may be the case in some organ development. &lt;br /&gt;&lt;br /&gt;Thus, at the 1% level, would that be 96000 non-inherited detectable variants.  I would call that my "upper bound".   In real pileup data... I see around 30% "non-allelic" variation.  So if, say, you've got 15000 SNPS (&lt;a href="http://www.pnas.org/content/106/13/5008.full"&gt;a reasonable number&lt;/a&gt;), we would expect 5000 "background" snps.....putting the mutation rate at "156.25"  (5000/32).   That's smack in the middle of the e-coli based estimate.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Lots of variant callers filter these out.... but I'm interested in them... i think they may be a lot more important than people think.&lt;/i&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/901333950279015802'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2011/10/non-allelic-variation-thinking-out-loud.html' title='Non &quot;allelic&quot; variation - thinking out loud'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-1582916321021161649</id><published>2011-09-30T20:23:00.001-07:00</published><updated>2011-09-30T20:24:47.527-07:00</updated><title type='text'>Multiplayer TD</title><content type='html'>Looks fun.  Seems like it would be cool to play against other players... but they are rarely there.   The developer needs to link-in to Armor or Kongregate or Facebook or some other PVP network.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There's probably a market for that... build a PVP portal so that lesser known games that are still fun can have a base of players.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='related' href='http://www.hanitd.com/play/withMe.php' title='Multiplayer TD'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/1582916321021161649'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2011/09/multiplayer-td.html' title='Multiplayer TD'/><author><name>Erik</name><uri>http://www.blogger.com/profile/01729756033491374852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-2032921855078416364</id><published>2011-09-30T11:17:00.000-07:00</published><updated>2011-09-30T11:21:22.708-07:00</updated><title type='text'>Getting perl readline to work in Ubuntu</title><content type='html'>I use perl's debugger and psh (simple perl shell).    When the up arrow doesn't work, I always forget how to fix it.  Hopefully by posting the solution here, it will be easier for me to find:&lt;p&gt;&lt;span style="font-family:courier,fixed-width"&gt;apt-get install libterm-readline-gnu-perl&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I use perl's debugger and psh (simple perl shell).    When the up arrow doesn't work, I always forget how to fix it.  Hopefully by posting the solution here, it will be easier for me to find:&lt;br /&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/2032921855078416364'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2011/09/getting-perl-readline-to-work-in-ubuntu.html' title='Getting perl readline to work in Ubuntu'/><author><name>Erik</name><uri>http://www.blogger.com/profile/01729756033491374852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-2295882107037935136</id><published>2011-09-28T07:37:00.000-07:00</published><updated>2011-09-28T13:06:46.941-07:00</updated><title type='text'>sam-stats</title><content type='html'>Put up a useful &lt;a href="http://code.google.com/p/ea-utils/wiki/SamStats"&gt;summary statistics from SAM or BAM&lt;/a&gt; files.  TODO: rewrite in C so it's fast.</content><link rel='related' href='http://code.google.com/p/ea-utils/wiki/SamStats' title='sam-stats'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/2295882107037935136'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2011/09/sam-stats.html' title='sam-stats'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-273754590976121731</id><published>2011-08-23T10:18:00.000-07:00</published><updated>2011-08-23T15:01:16.878-07:00</updated><title type='text'>Should we try to contact ET?</title><content type='html'>Would it be safe to meet an intelligent alien lifeform from another planets?&lt;br /&gt;&lt;br /&gt;Let's assume an ET (extra terrestrial, alien) is more advanced than we are.  Let's assume, again, because it's the only experience we have, that we are a good example of an intelligent life form. &lt;br /&gt;&lt;br /&gt;Have other species benefited from their contact with humans?   Species that are useful to us, like cows and dogs have proliferated in population, but are controlled/used by us.   Species that feed on our leavings, like roaches and pigeons do well.&lt;br /&gt;&lt;br /&gt;But, given that we're intelligent, and we'd like to think that aliens would regard us as so, we may want to look only at "higher" mammals, with comparable intelligence.  Primates certainly don't do well when humans show up.  In fact, iut seems we are particularly brutal when dealing with them.   Large mammals were nearly driven extinct from North America after human contact.  Some very intelligent species, like right whales, with rich communication systems and highly social habits, were driven to near extinction.   &lt;br /&gt;&lt;br /&gt;OK, but maybe we're talking about "modern man".  Maybe we've escaped that brutal past.   &lt;br /&gt;&lt;br /&gt;We still round up dolphins to kill them.  And, to this day, very little effort has been spent in attempting to understand the language and society of the "alien species" we share our home with.  Any time even a modicum of effort has been spent it's been met with "shocking" revelations about how other species have complex grammars, notions of fairness, etc.  And still most people in the world refuse to believe that other species can feel pain the way humans do - largely (IMO)  as a way of justifying abuse and mistreatment.&lt;br /&gt;&lt;br /&gt;So.... I would expect to be treated at &lt;span style="font-style:italic;"&gt;least as well &lt;/span&gt;as we have treated others.  Accordingly, someone should *shut down* the SETI program.  ASAP.&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/273754590976121731'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2011/08/should-we-try-to-contact-et.html' title='Should we try to contact ET?'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3570590.post-6714659218304935285</id><published>2011-08-04T23:44:00.000-07:00</published><updated>2011-08-05T01:24:46.574-07:00</updated><title type='text'>Oracle fails to crush open source</title><content type='html'>Oracle has repeatedly attempted to acquire it's way into the open source movement, each time charging and licensing technologies it had no hand in developing.  Berkeley DB, Sun Grid Engine, Open Office, MySQL, and Java (JRE/JDK), are now all Oracle licensed technologies.  &lt;br /&gt;&lt;br /&gt;What is admirable is that they make no pretense of being "friends" of open source.  They stopped releasing new versions of SGE, and transitioned to a closed-source system immediately.  Similar moves are happening in other products at different speeds... with a "what the market will bear" approach.&lt;br /&gt;&lt;br /&gt;It took me 6 months to move all my BDB code to SQLite, switch SGE stuff to condor.  I never touched MySQL because of the InnoDB creepiness and I'm glad the decision has been vindicated... Postgres was the obvious choice.   Oracle's falesly named "Open Office" has thankfully been forked to become the truly open "Libre Office".&lt;br /&gt;&lt;br /&gt;The only thing left is Java.  And there's nowhere near an adequate replacement.  Open JDK is limited to a handful of operating systems.   And Java itself may have some questionable licensing - Oracle may be able to seize the whole thing by the fistful.&lt;br /&gt;&lt;br /&gt;I've despised Java from the beginning, mostly for it's poor architecture and the way it encourages bad coding (not as bad as python).   Watching Oracle roll in and step all over it is, for me, merely another "I told you so" moment.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3570590/posts/default/6714659218304935285'/><link rel='self' type='application/atom+xml' href='http://www.documentroot.com/rss.xml'/><link rel='alternate' type='text/html' href='http://www.documentroot.com/2011/08/oracle-fails-to-crush-open-source.html' title='Oracle fails to crush open source'/><author><name>Erik Aronesty</name><uri>http://www.blogger.com/profile/18059679125325747381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>