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

<channel>
	<title>LifeFormulae Blog</title>
	<atom:link href="http://blog.lifeformulae.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lifeformulae.com</link>
	<description></description>
	<pubDate>Tue, 24 Aug 2010 21:06:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Another Study on What Women Really Want</title>
		<link>http://blog.lifeformulae.com/2010/08/another-study-on-what-women-really-want/</link>
		<comments>http://blog.lifeformulae.com/2010/08/another-study-on-what-women-really-want/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 20:53:59 +0000</pubDate>
		<dc:creator>Pam</dc:creator>
		
		<category><![CDATA[Bioinformatics]]></category>

		<category><![CDATA[aerospace]]></category>

		<category><![CDATA[biotechnology]]></category>

		<category><![CDATA[engineering]]></category>

		<category><![CDATA[engineers]]></category>

		<category><![CDATA[IT]]></category>

		<category><![CDATA[science]]></category>

		<category><![CDATA[scientists]]></category>

		<category><![CDATA[women]]></category>

		<guid isPermaLink="false">http://blog.lifeformulae.com/?p=200</guid>
		<description><![CDATA[First, we had the guy from Harvard try to explain that women aren&#8217;t interested in science because there is an intrinsic aptitude for things scientific based on gender. Guess which gender is deemed as more scientific?
Now, we have a new observation brought to us by Wray Herbert (http://www.huffingtonpost.com/wray-herbert/women-science_b_652858.html).
According to Miami University psychological scientist Amanda Dickman, [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;">First, we had the guy from Harvard try to explain that women aren&#8217;t interested in science because there is an intrinsic aptitude for things scientific based on gender. Guess which gender is deemed as more scientific?</p>
<p style="margin-bottom: 0in;">Now, we have a new observation brought to us by Wray Herbert (<a title="Why Women Are Shunning Science Careers" href="http://www.huffingtonpost.com/wray-herbert/women-science_b_652858.html" target="_blank">http://www.huffingtonpost.com/wray-herbert/women-science_b_652858.html</a>).</p>
<p style="margin-bottom: 0in;">According to Miami University psychological scientist Amanda Dickman, there is a new explanation citing a difference in worthiness or values rather than ability.   It seems, according to the new theory, that women reject science, engineering, and math because they view the these fields as too ego and power driven for their tastes.</p>
<p style="margin-bottom: 0in;">The unambiguous results for the study found that  young women did see science and engineering careers as isolated and individualistic&#8211;and what&#8217;s more, as obstacles to finding meaning in their lives.</p>
<p style="margin-bottom: 0in;">The article goes on to state that it seems to be a perception thing.  I would agree that it could very well be the perception thing, but there I think there is a little more to it than that.</p>
<p style="margin-bottom: 0in;"><strong>A Little Background</strong></p>
<p style="margin-bottom: 0in;">My higher education endeavors began with a trip down the road that would merit approval from the study group quoted above. I got an undergraduate degree in Social and Behavioral Sciences and was just a few hours away from a graduate degree when I discovered I was bored to death.   Something was missing.  There was no challenge.</p>
<p style="margin-bottom: 0in;">I tried the MBA path.  Nothing doing.</p>
<p style="margin-bottom: 0in;">I had taken an intro to computers course as part of my undergraduate course work and a ton of statistics courses but neither appealed. It wasn&#8217;t until I ran into my first “micro-computer” (as they were then known), that I realized this little machine was really going to change things. I even got a Heath kit catalog, ordered the H-89 kit, and put it together.</p>
<p style="margin-bottom: 0in;">The closest decree to a computer science degree my university offered was a degree in mathematical sciences.  I signed up for that.</p>
<p style="margin-bottom: 0in;">Believe me, it wasn&#8217;t easy.  I had already gotten the required courses out of the way, so for three semesters every class I had was either math or computer science.  But it was interesting and definitely challenging.</p>
<p style="margin-bottom: 0in;"><strong>Group Members</strong></p>
<p style="margin-bottom: 0in;">The isolated and individualistic scientist, engineer, computer scientist as cited by the study does not exist in the real world.</p>
<p style="margin-bottom: 0in;">My first post graduation gig was at the Health Services Division of a  major aerospace company as a compiler developer.   I was part of the Systems Enhancements and Extensions <strong>Group</strong>.  From there, I transferred to the aircraft company in that same corporation.  I was part of the Flight  Test Research and Development <strong>Group</strong>.   I went to another aircraft company and the Instrumentation <strong>Group</strong>.  And so on.  You were always a member of a group. A group that together designed, developed, and produced things – computer software, digital data acquisition systems, aircraft manufacturing scheduling systems, etc.</p>
<p style="margin-bottom: 0in;">When I moved over to biotechnology, it was the same – you were a member of a <strong>group</strong>.  A lab group, a bioinformatics group developing LIMS systems, sequence analysis and imaging recognition software, and so on.</p>
<p style="margin-bottom: 0in;">However, I did find that scientists more that engineers were more power/ego driven. I think this is because of funding issues.  Although both areas receive the majority of their funds from the government, the basis of the awards is different.</p>
<p style="margin-bottom: 0in;">The individual scientist, as P.I., applies for the grant, writes the proposal and receives the funding – almost a personal assessment of that scientist&#8217;s capabilities.       Furthermore, I feel that the letters - “PhD”, carries a lot of baggage.</p>
<p style="margin-bottom: 0in;">For most engineers, the company applies for the grant, writes the proposal (after the engineers have okayed the design), and receives the funding. The engineer is associated with the program for which that proposal was submitted.   The engineer isn&#8217;t as personally involved.</p>
<p style="margin-bottom: 0in;"><strong>What I&#8217;ve Encountered</strong></p>
<p style="margin-bottom: 0in;">In the military industrial complex I encountered bored ex-military who used  weekly status reports to declare war on some other part of the division .   These attacks were mostly diversions and never amounted to much.  These could be construed as power plays, but I list them as “play” period.</p>
<p style="margin-bottom: 0in;">Believe me, there were some good ones – stopping just short of an exchange of blows.  It&#8217;s also amazing how far echoes carry in an aircraft hanger.</p>
<p style="margin-bottom: 0in;">The following examples are situations I encountered along the way.  They are mostly examples of misdirected intentions, but a few border on outright criminality.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">There were approximately 8 databases that all held the same information but for 8 different divisions.  The electronics parts – transducers, potentiometers, strain gauges, resistors etc, in each of the databases were exactly the same.  However, the nomenclature varied by division.  We tried to standardize on one database system with one naming standard, but ran straight into a brick wall.   Not one division was willing to cede to another.  It was only after word came down from on high that additional funding would not be forthcoming,  that everybody finally sat down to talk.</p>
<p style="margin-bottom: 0in;"><strong>Insane Budgeting Exercises </strong></p>
<p style="margin-bottom: 0in;">One division needed to get a new system but was offered an old barely breathing system with exorbitant maintenance costs.   The division was instructed to budget for and use the old system for the current fiscal year.    For the he next budget cycle, the department was  to state that a new system (the one originally requested) would save X amount of dollars over last year&#8217;s budget.  The new system  was then be given the green light.</p>
<p style="margin-bottom: 0in;">A director was undercutting his yearly budget to emphasize cost savings.  Consequently, his budget was always cut to that amount for the next year.  It was pointed out that he should over run this year&#8217;s budget by the amount he wanted for next year.  Then he would (and did) get the additional funding.</p>
<p style="margin-bottom: 0in;"><strong>A Simple Name Change can Work Wonders</strong></p>
<p style="margin-bottom: 0in;">it was ascertained that for less that the amount the department was paying IT for storage of design data, a new system, software, and personnel could be purchased and hired.  Department was notified that requesting a “computer system” would not meet with budgeting approval Only after the system was termed a “data multiplexer” to be administered by “data design personnel” was department able to proceed with system purchase.</p>
<p style="margin-bottom: 0in;"><strong>One Size Does Not Fit All</strong></p>
<p style="margin-bottom: 0in;">IT sends down list of “acceptable” software.  So-called software was specifically IT oriented and would not work in an engineering environment.  Division engineers take up collection and purchase needed software themselves.</p>
<p style="margin-bottom: 0in;"><strong>Almost Criminal</strong></p>
<p style="margin-bottom: 0in;">Vast amounts of money, time, manpower were spent developing a manufacturing scheduling system for aircraft manufacture.  System rated manufacturing personnel in terms of ability.  System was deemed a major success – avoiding bottlenecks, completion times, etc.  System was never deployed due to union demands that manufacturing personnel could not be rated in terms of ability.</p>
<p style="margin-bottom: 0in;">Decode system purchased for data acquisition decode and analysis ($150K) was purchased without installed hard drive for data storage ($15K).  It was determined system could use in-house data farm to store data.  Decode system required confirmation that contiguous data storage space was available  to go ahead and store data.</p>
<p style="margin-bottom: 0in;">Transfer mechanism did not provide this info, so decode system would not store data on data farm.    Contractor told department officials that the system software on the decode system and in-house data farm were incompatible.  Contractor sold department customized software for $750K to replace decode system.</p>
<p style="margin-bottom: 0in;"><strong>A Meaningful Life</strong></p>
<p style="margin-bottom: 0in;">I&#8217;ve never considered my career in engineering and biotechnology as isolated and individualistic.  Sure, you have individual work, but it is as part of a team.</p>
<p style="margin-bottom: 0in;">As far as letting the ego and power driven become obstacles,  I have to admit that my behavioral sciences background provided one of the most important career tools I have yet to encounter.  My “Advanced Abnormal Psychology” course taught me how to observe and analyze people.</p>
<p style="margin-bottom: 0in;">To find meaning in one&#8217;s life entails one heck of a lot more than a career.    Perhaps by observing and analyzing one&#8217;s misconceptions about one area will enhance our conceptions of life in general.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
]]></content:encoded>
			<wfw:commentRss>http://blog.lifeformulae.com/2010/08/another-study-on-what-women-really-want/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What is Old Is New Again - The Cloud</title>
		<link>http://blog.lifeformulae.com/2010/05/what-is-old-is-new-again-the-cloud/</link>
		<comments>http://blog.lifeformulae.com/2010/05/what-is-old-is-new-again-the-cloud/#comments</comments>
		<pubDate>Fri, 21 May 2010 20:44:05 +0000</pubDate>
		<dc:creator>Pam</dc:creator>
		
		<category><![CDATA[Bioinformatics]]></category>

		<category><![CDATA[Amazon Elastic Cloud]]></category>

		<category><![CDATA[Apache]]></category>

		<category><![CDATA[BCM Bioinformatics]]></category>

		<category><![CDATA[Bill Ballmer]]></category>

		<category><![CDATA[Bloom]]></category>

		<category><![CDATA[Cloud Computing]]></category>

		<category><![CDATA[comparative genomics]]></category>

		<category><![CDATA[data interoperability]]></category>

		<category><![CDATA[data ownership]]></category>

		<category><![CDATA[data separation]]></category>

		<category><![CDATA[DMTF]]></category>

		<category><![CDATA[elasticity]]></category>

		<category><![CDATA[Google App Engine]]></category>

		<category><![CDATA[Hadoop]]></category>

		<category><![CDATA[HPC]]></category>

		<category><![CDATA[hybervisor]]></category>

		<category><![CDATA[Internet]]></category>

		<category><![CDATA[IT]]></category>

		<category><![CDATA[libcloud]]></category>

		<category><![CDATA[Micosoft Azure]]></category>

		<category><![CDATA[MIT]]></category>

		<category><![CDATA[Open Cloud Standards Incubator]]></category>

		<category><![CDATA[Richard Stallman]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[StarCluster]]></category>

		<category><![CDATA[Use Cases]]></category>

		<category><![CDATA[W3c]]></category>

		<guid isPermaLink="false">http://blog.lifeformulae.com/?p=195</guid>
		<description><![CDATA[ Cloud computing is the current IT rage, said to cure all information management skills.
Cloud computing is just a new name for timeshare, a system in which various entities shared a centralized computing facility.  A giant piece or two of big iron and floors of tape decks provided information processing and storage capabilities for [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;" align="LEFT"><img src="file:///tmp/moz-screenshot.gif" alt="" /> Cloud computing is the current IT rage, said to cure all information management skills.</p>
<p style="margin-bottom: 0in;" align="LEFT">Cloud computing is just a new name for timeshare, a system in which various entities shared a centralized computing facility.  A giant piece or two of big iron and floors of tape decks provided information processing and storage capabilities for a price.</p>
<p style="margin-bottom: 0in;" align="LEFT">The user was connected to the mainframe by a dumb terminal and later on by PC&#8217;s.  The advantage (said the sales jargon), was that the user didn&#8217;t need to buy any additional hardware, worry about software upgrades or data backup and recovery.  They would only pay for the time and space their processes required.  Resources would be pooled and connected by a high speed network and could be accessed as demanded.  The user wouldn&#8217;t really know what computing resources were in use, they just got results. Everything depended on the network communications between the use and centralized computing source.</p>
<p style="margin-bottom: 0in;" align="LEFT"><strong>What is New</strong></p>
<p style="margin-bottom: 0in;" align="LEFT">Cloud computing is more powerful today because the communications network is the Internet.   Some Cloud platforms also offer Web access to the tools – programming language, database, web utilities needed  to create the cloud application.</p>
<p style="margin-bottom: 0in;" align="LEFT">The most important aspect I believer the Cloud offers is instant elasticity.   A process can be upgraded almost instantaneously to use more nodes and obtain more computing power.</p>
<p style="margin-bottom: 0in;" align="LEFT">There are quite a few blog entries out there concerning the “elastic” cloud.  For thoughts on “spin up” and “spin down” elasticity see <a title="Elasticity in the Cloud" href="http://timothyfitz.wordpress.com/2009/02/14/cloud-elasticity/" target="_blank">http://timothyfitz.wordpress.com/2009/02/14/cloud-elasticity/</a>.  For thoughts on “how elasticity could make you go broke, or On-demand IT overspending” see <a title="Elasticity Can Make You Go Broke" href="http://blogs.gartner.com/daryl_plummer/2009/03/11/cloud-elasticity-could-make-you-go-broke/" target="_blank">http://blogs.gartner.com/daryl_plummer/2009/03/11/cloud-elasticity-could-make-you-go-broke/</a>.</p>
<p style="margin-bottom: 0in;" align="LEFT">And finally, an article that spawned the “elasticity is a myth” connotation or “over-subscriptionand over-capacity are two different things, see – <a title="Elasticity Is A Myth" href="http://www.rationalsurvivability.com/blog/?p=1672&amp;cpage=1#comment-35881" target="_blank">http://www.rationalsurvivability.com/blog/?p=1672&amp;cpage=1#comment-35881</a>.</p>
<p style="margin-bottom: 0in;" align="LEFT">A good article that covers elasticity, hypervisors, and cloud security in general is located at <a title="Cloud Security" href="http://queue.acm.org/detail.cfm?id=1794516" target="_blank">http://queue.acm.org/detail.cfm?id=1794516</a>.  The queue.acm.org site is maintained by the Association for Computing Machinery. There are lots of articles on all sorts of computing topics including, “Why Cloud Computing Will Never Be Free” (<a title="Cloud Computing Will Never Be Free" href="http://queue.acm.org/detail.cfm?id=1772130" target="_blank">http://queue.acm.org/detail.cfm?id=1772130</a>).</p>
<p style="margin-bottom: 0in;" align="LEFT"><strong>The Clouds</strong></p>
<p style="margin-bottom: 0in;" align="LEFT">The most notable Clouds are Amazon&#8217;s Elastic Cloud, Google&#8217;s App Engine, and Microsoft&#8217;s Azure.</p>
<p style="margin-bottom: 0in;" align="LEFT">The three Cloud delivery models include:</p>
<ul>
<li>
<ul>
<li>
<p style="margin-bottom: 0in;" align="LEFT">Software as a service 		(SaaS), applications running on a cloud are accessed via a web 		browser</p>
</li>
<li>
<p style="margin-bottom: 0in;" align="LEFT">Platform as a service 		(PaaS), cloud-developed user applications such as databases</p>
</li>
<li>
<p style="margin-bottom: 0in;" align="LEFT">Infrastructure as a 		service (IaaS), provides computing resources to users on an 		as-needed basis</p>
<p style="margin-bottom: 0in;" align="LEFT">
</li>
</ul>
</li>
</ul>
<p style="margin-bottom: 0in;" align="LEFT"><strong>Pros and Cons </strong></p>
<p style="margin-bottom: 0in;" align="LEFT">There are pros and cons for Cloud Computing.   <span style="font-style: normal;">Microsoft&#8217;s Bill Ballmer is a proponent of Cloud computing.</span></p>
<p style="margin-bottom: 0in; font-style: normal;" align="LEFT">In a recent email (<a title="Ballmer Email" href="http://blog.seattlepi.com/microsoft/archives/196793.asp" target="_blank">http://blog.seattlepi.com/microsoft/archives/196793.asp</a>) to Microsoft&#8217;s employees, Ballmer make the following case for Cloud Computing.  He advises his employees to watch a video (<a title="Ballmer Cloud Video" href="http://www.microsoft.com/presspass/presskits/cloud/videogallery.aspx" target="_blank">http://www.microsoft.com/presspass/presskits/cloud/videogallery.aspx</a>) in which he makes the following points.</p>
<p style="font-style: normal;" align="LEFT">In my speech, I outlined the five dimensions that define the way people use and realize value in the cloud:</p>
<ul>
<li>
<p style="margin-bottom: 0in;">The cloud creates opportunities 	and responsibilities</p>
</li>
<li>
<p style="margin-bottom: 0in;">The cloud learns and helps you 	learn, decide and take action</p>
</li>
<li>
<p style="margin-bottom: 0in;">The cloud enhances your social and 	professional interactions</p>
</li>
<li>
<p style="margin-bottom: 0in;">The cloud wants smarter devices</p>
</li>
<li>The cloud drives server advances that drive the cloud</li>
</ul>
<p style="margin-bottom: 0in;" align="LEFT">Some very notable people are anti-cloud.</p>
<p style="margin-bottom: 0in;" align="LEFT">Richard Stallman, GNU software founder, said in recent interview for the London Guardian (<a title="Richard Stallman Interview" href="http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman" target="_blank">http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman</a>) that Cloud computing is a trap.</p>
<p style="margin-bottom: 0in;" align="LEFT">The Web-based programs like Google&#8217;s Gmail will force people to buy into locked, proprietary systems that will cost more and more over time, according to the free software campaigner.</p>
<p style="margin-bottom: 0in;" align="LEFT"><em>&#8216;It&#8217;s stupidity. It&#8217;s worse than stupidity: it&#8217;s a marketing hype campaign,&#8217; he told The Guardian. &#8216;Somebody is saying this is inevitable — and whenever you hear somebody saying that, it&#8217;s very likely to be a set of businesses campaigning to make it true.&#8217;&#8221;</em></p>
<p style="margin-bottom: 0in; font-style: normal;" align="LEFT">Aside from all that, what should a potential user be wary of in the Cloud?   I&#8217;ll try to answer that below.</p>
<p align="LEFT"><strong>Security in the Cloud</strong></p>
<p style="margin-bottom: 0in;" align="LEFT">Security in the cloud is a major concern.  Hackers are salivating because everything – applications, data, are all in the same place.</p>
<p style="margin-bottom: 0in;" align="LEFT">How do you know the node your process is accessing is real or virtual?  The Hypervisor (in Linux, a special version of the kernel) owns the hardware and spawns virtual nodes.  If the Hypervisor is hacked, the hacker owns all the nodes created by it.  http://www.linux-kvm. org has further explanations and discussions of virtual node creators/creations.</p>
<p style="margin-bottom: 0in;" align="LEFT">Data separation is a big concern.  Could your data become contaminated by data in other      environments in the cloud.?   What access restrictions are in place to protect sensitive data?</p>
<p style="margin-bottom: 0in;" align="LEFT">Can a user in another cloud environment inadvertently or intentionally get access to your data?</p>
<p style="margin-bottom: 0in;" align="LEFT">Data interoperability is another question mark.  A company cannot transfer data from a public cloud provider, such as Amazon, Microsoft, or Google, put it in a private IaasP that a private cloud provider develops for a company, and then copy that data from its private cloud to another cloud provider, public or private.    This is difficult because there are no standards for operating in this hybrid environment.</p>
<p style="margin-bottom: 0in;" align="LEFT"><strong>Data Ownership</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;" align="LEFT">Who is the custodian and who controls data if your company uses cloud providers, public and private?</p>
<p style="margin-bottom: 0in; font-weight: normal;" align="LEFT">Ownership concerns have no been resolved by the cloud computing industry.  At the same time, the industry has no idea when a standard will emerge to handle information exchanges.</p>
<p style="margin-bottom: 0in;" align="LEFT">W3C – <a title="W3c.org" href="http://www.w3.org/" target="_blank">http://www.w3.org/</a>, is sponsoring workshops and publishing proposals concerning standards for the Cloud.  You can subscribe to their weekly newsletter  and stay up on all sorts of web-based technologies.</p>
<p style="margin-bottom: 0in;" align="LEFT">Also, the Distributed Management Task Force  Inc.(<a title="Distributed Management Task Force" href="http://www.dmtf.org/home" target="_blank">http://www.dmtf.org/home</a>) is a consortium ofof IT companies focusing on, “Developing management standards &amp; promoting<br />
interoperability for enterprise &amp; Internet environments”.</p>
<p style="margin-bottom: 0in;" align="LEFT">The DMTF Open Cloud Standards Incubator  was launched to address management interoperability for Cloud Systems  (<a title="DMTF Cloud Incubator" href="http://www.dmtf.org/about/cloud-incubator" target="_blank">http://www.dmtf.org/about/cloud-incubator</a>).  The DMTF leadership board currently includes AMD,  CA Technologies, Cisco, Citrix Systems, EMC, Fujitsu, HP, Hitachi, IBM, Intel, Microsoft, Novell, Rack Space, RedHat, Savvis, Sun Guard, Sun Microsystems, and VMWare.</p>
<p style="margin-bottom: 0in;" align="LEFT"><strong>Working with the Cloud</strong></p>
<p style="margin-bottom: 0in;" align="LEFT">Working with the Cloud can be intimidating.  One suggestion is to build a private cloud in-house before moving on to the public cloud.</p>
<p style="margin-bottom: 0in;" align="LEFT">However, even that has its difficulties. Not to worry, there are several tools available to ease the transition.</p>
<p style="margin-bottom: 0in;" align="LEFT">There is  a Cloud programming language – Bloom, developed at UC Berkeley by Dr. Joseph Hellerstein.  HPC In The Cloud has published an interview with Dr. Hellerstein at <a title="Bloom Programming Language" href="http://www.hpcinthecloud.com/features/Clouds-New-Language-Set-to-Bloom-92130384.html?viewAll=y" target="_blank">http://www.hpcinthecloud.com/features/Clouds-New-Language-Set-to-Bloom-92130384.html?viewAll=y </a></p>
<p style="margin-bottom: 0in;" align="LEFT">Bloom is based on Hadoop (<a title="Hadoop" href="http://hadoop.apache.org/" target="_blank">http://hadoop.apache.org</a>) which is open source software for High Performace Computing (HPC) from Apache..</p>
<p style="margin-bottom: 0in;" align="LEFT">For ease of inter connectivity, Apache has released Apache libcloud, a standard client library written in python for many popular cloud providers – <a title="Apache libcloud" href="http://incubator.apache.org/libcloud/index.html" target="_blank">http://incubator.apache.org/libcloud/index.html</a>. But libcloud doesn&#8217;t cover data standards, just connectivity.</p>
<p style="margin-bottom: 0in;" align="LEFT">MIT StarCluster– <span style="font-weight: normal;"><a title="MIT Star Cluster" href="http://web.mit.edu/stardev/cluster" target="_blank">http://web.mit.edu/stardev/cluster</a> , </span><span style="color: #333333;"><span style="font-weight: normal;">is an open source utility for creating and managing general purpose computing clusters hosted on Amazon&#8217;s Elastic Compute Cloud (EC2). StarCluster minimizes the administrative overhead associated with obtaining, configuring, and managing a traditional computing cluster used in research labs or for general distributed computing applications.</span></span><span style="color: #fe0000;"><span style="font-weight: normal;"> </span></span></p>
<p>All that&#8217;s needed to get started with your own personal computing cluster on EC2 is an Amazon AWS account and StarCluster.</p>
<p style="margin-bottom: 0in;" align="LEFT"><span style="font-weight: normal;">HPC presents use cases as a means to understanding cloud computing.  <a title="HPC Use Cases" href="http://www.hpcinthecloud.com/features/25-Sources-for-In-Depth-HPC-Cloud-Use-Cases-93886489.html" target="_blank">http://www.hpcinthecloud.com/features/25-Sources-for-In-Depth-HPC-Cloud-Use-Cases-93886489.html</a>.</span></p>
<p style="margin-bottom: 0in;" align="LEFT"><span style="font-weight: normal;">BCM Bioinformatics has a new methodology article – Cloud Computing for Comparative Genomics that includes a cost analysis of using the cloud.  Download the .pdf at <a title="BCM Bioinformatics" href="http://www.biomedcentral.com/1471-2105/11/259/abstract" target="_blank">http://www.biomedcentral.com/1471-2105/11/259/abstract</a>.</span></p>
<p style="margin-bottom: 0in;" align="LEFT">I hope this will get you started.  Once again, a big thanks to Bill for his assistance.</p>
<p style="margin-bottom: 0in; font-weight: normal;" align="LEFT">
<p style="margin-bottom: 0in; font-weight: normal;" align="LEFT">
<p style="margin-bottom: 0in; font-weight: normal;" align="LEFT">
]]></content:encoded>
			<wfw:commentRss>http://blog.lifeformulae.com/2010/05/what-is-old-is-new-again-the-cloud/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Effective Bioinformatics Programming - Part 5</title>
		<link>http://blog.lifeformulae.com/2010/04/effective-bioinformatics-programming-part-5/</link>
		<comments>http://blog.lifeformulae.com/2010/04/effective-bioinformatics-programming-part-5/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 17:55:37 +0000</pubDate>
		<dc:creator>Pam</dc:creator>
		
		<category><![CDATA[Bioinformatics]]></category>

		<category><![CDATA[BMC]]></category>

		<category><![CDATA[EBI]]></category>

		<category><![CDATA[eWEEk.com]]></category>

		<category><![CDATA[GenBank]]></category>

		<category><![CDATA[Gene Ontology]]></category>

		<category><![CDATA[MIAME]]></category>

		<category><![CDATA[MIGS]]></category>

		<category><![CDATA[multi-processor programming]]></category>

		<category><![CDATA[scientific programming]]></category>

		<category><![CDATA[Sequence Ontology]]></category>

		<category><![CDATA[supercomputing]]></category>

		<category><![CDATA[WSDL]]></category>

		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.lifeformulae.com/?p=187</guid>
		<description><![CDATA[First, a little irony.  In the late &#8217;90&#8217;s I interviewed with BMC software in Houston.  At that time, BMC was a supporter of big iron, providing report facilities, etc.
When asked what software I currently used, I replied with “GNU software”.  The interviewer asked, “What is GNU? I&#8217;ve never heard of it.”
I explained [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;">First, a little irony.  In the late &#8217;90&#8217;s I interviewed with BMC software in Houston.  At that time, BMC was a supporter of big iron, providing report facilities, etc.</p>
<p style="margin-bottom: 0in;">When asked what software I currently used, I replied with “GNU software”.  The interviewer asked, “What is GNU? I&#8217;ve never heard of it.”</p>
<p style="margin-bottom: 0in;">I explained that it was free software that you could download from the web, etc. But they weren&#8217;t really interested.</p>
<p style="margin-bottom: 0in;">Anyway,   eWEEK.com had a feature this week  - &#8216;MindTouch Names 20 Most Powerful Open-Source Voices of 2010.  The first name mentioned was William Hurley.  The chief architect of Open Source strategy at BMC. (<a title="William Hurley" href="http://www.eweek.com/c/a/IT-Management/OSBC-Names-20-Most-Powerful-Open-Source-Voices-of-2010-758420/?kc=EWKNLEDP03232010A" target="_blank">http://www.eweek.com/c/a/IT-Management/OSBC-Names-20-Most-Powerful-Open-Source-Voices-of-2010-758420/?kc=EWKNLEDP03232010A</a>).</p>
<p style="margin-bottom: 0in;">I guess they&#8217;re interested now.</p>
<p style="margin-bottom: 0in;"><strong>Data Standards</strong></p>
<p style="margin-bottom: 0in;">There are any number of sequence data formats. This link at EBI – <a title="EBI Tutorials" href="http://www.ebi.ac.uk/2can/tutorials/formats.html " target="_blank">http://www.ebi.ac.uk/2can/tutorials/formats.html </a>describes several.</p>
<p style="margin-bottom: 0in;">What is really astounding is that most of these formats have remained to same over the years. The tab-delimited and CSV (comma separated values) format is as prolific as ever, as is the GenBank report.</p>
<p style="margin-bottom: 0in;">And equally astonishing is the fact that manipulating the data (e.g. parsing GenBank reports) is still the same.</p>
<p style="margin-bottom: 0in;">True, the Bio libraries such as BioPerl, BioJava, BioRuby, now provide modules that make this easier, (if you can install them) but it is still the same old download and parse.</p>
<p style="margin-bottom: 0in;">There are also several groups trying to standardize sequence data.   The SO (Sequence Ontology) group (<a title="Sequence Ontology" href="http://www.sequenceontology.org" target="_blank">http://www.sequenceontology.org</a>) is trying to do for sequence annotations what GO (Gene Ontology - <a title="Gene Ontology" href="http://www.geneontology.org" target="_blank">http://www.geneontology.org</a>) did for genes and gene product attributes.</p>
<p style="margin-bottom: 0in;">MIGS (Minimum Information About A Genome Sequence spec at <a title="MIGS" href="http://nora.nerc.ac.uk/5548/" target="_blank">http://nora.nerc.ac.uk/5548/</a>) is following the course of the MAGE MIAME Standard  (Minimum Information About a Microarray Experiment at <a title="MIAME" href="http://www.mged.org/Workgroups/MIAME/miame.html" target="_blank">http://www.mged.org/Workgroups/MIAME/miame.html</a>).  Good luck with that, as many scientists have openly voiced objections to that standard.</p>
<p style="margin-bottom: 0in;"><strong>XML and the Web </strong></p>
<p style="margin-bottom: 0in;">XML (eXtensible Markup Language) and WSDL (Web Services Description Language) are one method of easing the interchange of data.  Links at – <a title="XML" href="http://en.wikipedia.org/wiki/XML" target="_blank">http://en.wikipedia.org/wiki/XML</a> and <a title="WSDL" href="http://en.wikipedia.org/wiki/Web_Services_Description_Language" target="_blank">http://en.wikipedia.org/wiki/Web_Services_Description_Language</a>.</p>
<p style="margin-bottom: 0in;">There are a number of drawbacks to this setup.</p>
<p style="margin-bottom: 0in;">Not all of the sequence data is available in XML or well-formed XML.</p>
<p style="margin-bottom: 0in;">Some XML, such as NCBI XML, needs further interpretation.  For example, the sequence feature (annotation) locations must be “translated” for further use.</p>
<p style="margin-bottom: 0in;">XSLT has performance issues, and is size-delimited. We tried processing LARTS converted NCBI ASN.1 GenBank XML data to XSLT and found there were definite size limitations.</p>
<p style="margin-bottom: 0in;">Using WSDL means exposing yourself to the world via the web.</p>
<p style="margin-bottom: 0in;">Javascript has too many security questions to consider seriously.</p>
<p style="margin-bottom: 0in;"><strong>Software Development</strong></p>
<p style="margin-bottom: 0in;">Software development takes time and the right people.  True, there is a lot of open source software out there, but I&#8217;ve mentioned the perils of that method in a previous blog.</p>
<p style="margin-bottom: 0in;">A scientist with a grant to produce results dependent on computer analysis is only going to write code that is good enough to create code (or find someone (read post-doc) who can create that code very cheaply)  that will back up those findings.</p>
<p style="margin-bottom: 0in;">Has the code been extensively tested? Are the results produced by the code valid?  Can the code be used by future projects?  Is the software portable?  Is it robust?  Can it be ported to different hardware environments?</p>
<p style="margin-bottom: 0in;">There is a great article – “Are we taking supercomputing code seriously?” at (<a title="Supercomputing Code" href="http://www.zdnet.co.uk/news/it-strategy/2010/01/28/are-we-taking-supercomputing-code-seriously-40004192/" target="_blank">http://www.zdnet.co.uk/news/it-strategy/2010/01/28/are-we-taking-supercomputing-code-seriously-40004192/</a>).  This article, in turn, has links to other articles on methods and algorithms, and error behavior, for example. This one on scientific software considers how multi-processing has influenced algorithm development and the problem of different multi-processors co-existing on the same machine (<a title="Scientific Programming" href="http://www.scientific-computing.com/features/feature.php?feature_id=262" target="_blank">http://www.scientific-computing.com/features/feature.php?feature_id=262</a>).</p>
<p style="margin-bottom: 0in;">He states that in the rush to do science, scientists fail to spot software for what it is: the analogue of the experimental instrument.  Therefore the software must be treated with the same respect that a physical experiment would.</p>
<p style="margin-bottom: 0in;">When I started my career, I worked on a system that was a totally integrated database system for hospitals. It was one of those systems that was so very ahead of its time (mid-80&#8217;s), that a corporation bought the product and squashed it.</p>
<p style="margin-bottom: 0in;">Anyway, our Systems and Extensions group supported the 6 compilers that comprised the system software that made the system function.  The tailoring group wrote the code that created the screens that drove the system.</p>
<p style="margin-bottom: 0in;">At the inception of the system, a decision was to be made over the make up of the tailoring group: should they be programmers  that would be taught medical jargon, terms, etc; or should they be medical personnel – doctors, nurses, techs, that would be taught programming?</p>
<p style="margin-bottom: 0in;">The decision was to go with medical personnel, as it was surmised they would understand hospitals better.</p>
<p style="margin-bottom: 0in;">At the same time, a decision to limit the number of screens a hospital could request (called tailoring) to 500 was discussed.  The decision was to let the hospital have however many screens it wanted.</p>
<p style="margin-bottom: 0in;">The tailoring group got their training and set in to programming.  After a period of time, it was realized that the group had, in essence, created one bad program and copied it thousands of times.</p>
<p style="margin-bottom: 0in;">It was so bad, we did two things.  We created a program profiler that produced a performance summary of the programming aspects of that program. (We were immediately asked to remove it by the tailoring group, as it was too confusing.)  Two, we created an automated programming module that would create the code from the display widgets on the screen designed by the tailoring group.</p>
<p style="margin-bottom: 0in;">This approach was helping, but people were abandoning ship as talk of an acquisition was surfacing.  Our junior programmer went from new-hire to senior team member in 30 days.</p>
<p style="margin-bottom: 0in;">I think we would have done a lot better with programmers learning medical terms.</p>
<p style="margin-bottom: 0in;">As for the hospital screen limit, we had hospitals with 10,000 individual screens. We should have stuck with 500.</p>
<p style="margin-bottom: 0in;">One last thing.  When looking at any piece of scientific programming, please realize that in the Authors accreditation usually starts with the PI.  The people who did the actual work are generally listed at the end of the line. The PI may have had the idea, but likely as not could not code it.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
]]></content:encoded>
			<wfw:commentRss>http://blog.lifeformulae.com/2010/04/effective-bioinformatics-programming-part-5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Effective Bioinformatics Programming Part 4</title>
		<link>http://blog.lifeformulae.com/2010/03/effective-bioinformatics-programming-part-4/</link>
		<comments>http://blog.lifeformulae.com/2010/03/effective-bioinformatics-programming-part-4/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 19:46:20 +0000</pubDate>
		<dc:creator>Pam</dc:creator>
		
		<category><![CDATA[Bioinformatics]]></category>

		<category><![CDATA[Cilk]]></category>

		<category><![CDATA[Folding@home]]></category>

		<category><![CDATA[FPGA]]></category>

		<category><![CDATA[GPU]]></category>

		<category><![CDATA[grid computing]]></category>

		<category><![CDATA[InifiniBand]]></category>

		<category><![CDATA[LabView FPGA]]></category>

		<category><![CDATA[multicore processing]]></category>

		<category><![CDATA[Myrinet]]></category>

		<category><![CDATA[NoSQL]]></category>

		<category><![CDATA[ORM]]></category>

		<category><![CDATA[parallel processing]]></category>

		<category><![CDATA[Postgres]]></category>

		<category><![CDATA[QsNet]]></category>

		<category><![CDATA[SETI@home]]></category>

		<category><![CDATA[UML]]></category>

		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.lifeformulae.com/?p=169</guid>
		<description><![CDATA[All Things HPC 
Traditionally, High Performance Computing (HPC) means using high-end hardware like super computers to perform complex computational tasks.
A new definition of HPC (“High Productivity Computing”) means the entire processing and data handling infrastructure.  This includes  software tools, platforms (computer hardware and operation systems), and data management software.
Parallel or Multicore Processing
I think [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;"><span style="font-style: normal;"><strong>All Things HPC </strong></span></p>
<p style="margin-bottom: 0in;">Traditionally, High Performance Computing (HPC) means using high-end hardware like super computers to perform complex computational tasks.</p>
<p style="margin-bottom: 0in;">A new definition of HPC (“High Productivity Computing”) means the entire processing and data handling infrastructure.  This includes  software tools, platforms (computer hardware and operation systems), and data management software.</p>
<p style="margin-bottom: 0in;"><strong>Parallel or Multicore Processing</strong></p>
<p style="margin-bottom: 0in;">I think just about everybody has performed some sort of parallel programming.  Starting two processes at once on the same machine is parallelism.  If the program runs by itself and doesn&#8217;t need input from another program or product output for another program to use, it&#8217;s loosely coupled.  It&#8217;s tightly coupled if one program feeds another.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">PC architecture today supports multicore processors.  A two-core CPU is, in essence, two CPUs on the same chip.  These cores may share memory cache (tightly coupled) or not (loosely coupled).  They may implement a method of message passing – intercore communication.</p>
<p style="margin-bottom: 0in;">Cilk is a language for multi-threaded parallel processing based on ANSI C.  MIT was the initial developer of the Cilk technology.  The link to their page is at – <a title="Cilk Project at MIT" href="http://supertech.csail.mit.edu/cilk/" target="_blank">http://supertech.csail.mit.edu/cilk/.</a></p>
<p style="margin-bottom: 0in;">MIT had licensed Cilk to Cilk Arts, Inc.  Cilk Arts added support for C++, parallel loops, and interoperability with serial interfaces. The product has since been acquired by Intel and will be incorporated into the Intel C++ compiler. The Intel page is at  <a title="Intel Software Cilk++ Page" href="http://software.intel.com/en-us/articles/intel-cilk/" target="_blank">http://software.intel.com/en-us/articles/intel-cilk/</a>.</p>
<p style="margin-bottom: 0in;">Cilk++ makes multicore processing easy.  CILK++ uses keywords to adapt existing C++ code to multicore processing. (You will need a multi-core processor).</p>
<p style="margin-bottom: 0in;">Cilk++ is currently is a technical preview state.    This means they want you to use it and give them feedback. Download the Intel CILK++ SDK at <a title="Cilk++ Download Info" href="http://software.intel.com/en-us/articles/download-intel-cilk-sdk/" target="_blank">http:</a><a title="Cilk++ Download Info" href="//software.intel.com/en-us/articles/download-intel-cilk-sdk/" target="_blank">//software.intel.com/en-us/articles/download-intel-cilk-sdk/</a>. You will need to sign a license agreement.</p>
<p style="margin-bottom: 0in;"><span style="color: #000000;"><span style="text-decoration: none;">The page also presents download links for 32-bit and 64-bit Linux Cilk++. (You will need an Intel processor for the Linux apps.)</span></span></p>
<p style="margin-bottom: 0in;">There is an e-book on Multi-Processor programming available from Intel. The link is - <a title="Multi-Processor Programming Book" href="http://software.intel.com/en-us/articles/e-book-on-multicore-programming/" target="_blank">http://software.intel.com/en-us/articles/e-book-on-multicore-programming/</a>.</p>
<p style="margin-bottom: 0in;"><a href="http://www.cilk.com/home/try-and-buy-cilk/download-cilk/"><span style="color: #800000;"><span style="text-decoration: none;"> </span></span></a><span style="text-decoration: none;">The book contains a lot of information on multicore programming, parallelism, scheduling theory, shared memory hardware, concurrency platforms, race conditions, divide and conquer recurrences, and others.</span></p>
<p style="margin-bottom: 0in;">Grid computing is distributed, large scale, cluster computing. Two of the most famous grid projects are SETI@home and Folding@home (<a title="Folding@home" href="http://folding.stanford.edu" target="_blank">http://folding.stanford.edu</a>).</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;"><span style="color: #000000;"><span style="text-decoration: none;">SETI (the search for extra-terrestrial Intelligence) at home uses internet connected computers hosted by Space Sciences Laboratory at the UC, Berkeley.  Folding at home focuses on how proteins (biology&#8217;s workhorses) fold or assemble themselves to carry out important functions. </span></span></p>
<p style="margin-bottom: 0in;"><span style="color: #000000;"><span style="text-decoration: none;">Other lesser known grids are einstein@home (<a title="Einstein@home" href="http://www.einsteinathome.org" target="_blank">http://www.einsteinathome.org</a> - &#8220;Grab a wave from Space&#8221;) processing data from gravational wave detectors, and MilkyWay@home (<a title="MilkyWay@home" href="http://milkyway.cs.rpi.edu/milkyway" target="_blank">http://milkyway.cs.rpi.edu/milkyway</a>) creating a highly accurate 3-D model of the Milky Way Galaxy.</span></span></p>
<p style="margin-bottom: 0in;"><a href="mailto:SETI@home"><span style="color: #000000;"><span style="text-decoration: none;"><strong>Communication</strong></span></span></a></p>
<p style="margin-bottom: 0in;"><span style="color: #000000;"><span style="text-decoration: none;">The clusters mentioned above use the internet to exchange messages.  If fast messaging is not required, plain old ethernet should be sufficient for your messaging needs,  The problem with ethernet is latency. It takes a long time to set up and get that first message out there. After that, it&#8217;s solid.</span></span></p>
<p style="margin-bottom: 0in;"><span style="color: #000000;"><span style="text-decoration: none;">But if you&#8217;re looking for constant speed try Infiniband (<a title="InfiniBand" href="http://en.wikipedia.org/wiki/Infiniband" target="_blank">http://en.wikipedia.org/wiki/Infiniband</a>), Myriet (<a title="Myrinet" href="http://www.myri.com" target="_blank">www.myri.com</a>), or QsNet (<a title="QsNet" href="http://en.wikipedia.org/wiki/QsNet" target="_blank">http://en.wikipedia.org/wiki/QsNet</a>).</span></span></p>
<p style="margin-bottom: 0in;"><span style="color: #000000;"><span style="text-decoration: none;"><strong>Gamers</strong></span></span></p>
<p style="margin-bottom: 0in;"><span style="color: #000000;"><span style="text-decoration: none;">Oh, those gamers.  Without their demand for faster, bigger, better, where would we be?</span></span></p>
<p style="margin-bottom: 0in;"><span style="color: #000000;"><span style="text-decoration: none;">For example, do not overlook the gaming console. NCSA (National Center for Supercomputing Applications) has a cluster of Sony PlayStations.  The PlayStation 3 runs Yellow Dog Linux. The average PS3 retails for around $600. The Folding@home grid runs on PS3s and PCs.</span></span></p>
<p style="margin-bottom: 0in;"><span style="color: #000000;"><span style="text-decoration: none;">Then we come to the <strong>GPU</strong> (Graphics Processing Unit).  GPU computing means using the GPU to do general purpose scientific and engineering computing. The model for GPU computing couples a CPU with a GPU, with the GPU performing the heavy processing.    (<a title="GPU Programming" href="http://www.nvidia.com/object/GPU_Computing.html" target="_blank">http://www.nvidia.com/object/GPU_Computing.html</a>) </span></span></p>
<p style="margin-bottom: 0in;"><span style="color: #000000;"><span style="text-decoration: none;">One of the hottest GPU&#8217;s is the NVIDIA Tesla GPU which is based on the  CUDA GPU architecture code-named the &#8220;Fermi&#8221;. </span></span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;"><strong>FPGAs (Field Programmable Gate Arrays)</strong></span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">Technological devices keep getting smaller and smaller, and the machinery gets buried under tons of software burdened with the menu systems connected to the development environment from hell. </span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">FPGAs take you back to the schematic level. (I was known as a &#8220;bit-twiddler&#8221; at IBM.)<br />
</span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">My old friends at National Instruments (<a title="National Instruments FPGA" href="http://www.ni.com/fpga/" target="_blank">http://www.ni.com/fpga/</a>) have <strong>NI LabView FPGA</strong>.  LabView FPGA provides graphical programming of FPGAs. </span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">Their video on FPGA Technology is a good intro to FPGA. (<a title="FPGA Technology" href="http://www.ni.com/fpga_technology/" target="_blank">http://www.ni.com/fpga_technology/</a>). Several other videos are available at this same sight go into further detail. For more info on the FPGA hardware see <a title="FPGA Hardware" href="http://en.wikipedia.org/wiki/FPGA" target="_blank">http://en.wikipedia.org/wiki/FPGA</a>.</span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">(I still haven&#8217;t  forgiven NI for nuking my data acquisition PC with their demo. I lost a lot of stuff. All was backed up, but re-installing was not fun.)</span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">FYI -The industry is desperately seeking parallel and FPGA programmers. </span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;"><strong>Data Representation in Database Design</strong></span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">The most recent programming languages are object-oriented.  However, the most efficient databases are relational.  There are object-oriented database systems, but for the most part they are very expensive and very, very slow. Postgres is a RDBS (Relational Database Management System) that does implement a form of inheritance where one table may extend (inherit) another table.</span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">Then you have XML.  XML Schemas are adding another dimension to this complexity.  XML is popular for communication (SOAP) and representation (XSLT). Data comes from an RDMS, gets stuffed into objects, translated to XML on one end and sent as XML, translated to objects, and stored in a RDMS at the other end.</span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">The mapping of objects to RDBMS is known as object relational (O/R) impedance mismatch. See this link for a discussion (<a title="AgileData" href="http://www.agiledata.org./" target="_blank">http://www.agiledata.org./</a>) of software development processes and a link to a recent book on database techniques for mapping objects to relational datbases – <a title="Database Techniques" href="http://www.agiledata.org/essays/mappingObjects.html" target="_blank">http://www.agiledata.org/essays/mappingObjects.html</a>.</span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">But beware, as most of these ORMs (Object to Relational Mapping) sometimes produce a schema that wouldn&#8217;t be completely relational and therefore suffer in performance.  Also, the SQL produced by ORMs may not be optimal.</span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">To effectively design and develop a RDBMS , learn <strong>UML</strong> (Universal Modeling Language).  The Objects By Design web site (<a title="Objects By Design" href="http://www.objectsbydesign.com" target="_blank">http://www.objectsbydesign.com</a>) covers UML and a lot of other object-oriented topics and is worth a look.</span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">Rational Rose is the UML design tool that I use.  It&#8217;s now been purchased by IBM.  Rational uses what is known as the Rational Unified method, </span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">Speaking of XML, some of the UML design tools can now output XML directly from the data record definitions.</span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">See this link for a list of current UML products – <a title="Current UML Products" href="http://www.objectsbydesign.com/tools/umltools_byCompany.html" target="_blank">http://www.objectsbydesign.com/tools/umltools_byCompany.html</a>.</span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;"><strong>The End of SQL</strong></span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">The ComputerWorld blog sight has an interesting 3-part series entitled – <strong>The End of SQL and relational databases? </strong></span></p>
<p style="margin-bottom: 0in; font-weight: normal; text-decoration: none;"><span style="color: #000000;">Part 1 covers Relational Methodology and SQL.The link to part I is here – <a title="NoSQL Part 1" href="http://blogs.computerworld.com/15510/the_end_of_sql_and_relational_databases_part_1_of_3" target="_blank">http://blogs.computerworld.com/15510/the_end_of_sql_and_relational_databases_part_1_of_3</a>.</span></p>
<p style="margin-bottom: 0in; font-weight: normal; text-decoration: none;">
<p style="margin-bottom: 0in; font-weight: normal; text-decoration: none;"><span style="color: #000000;">Part 2 is a list of current NoSQL databases. The link to part 2 is here – <a title="NoSQL Part 2" href="http://blogs.computerworld.com/15556/the_end_of_sql_and_relational_databases_part_2_of_3" target="_blank">http://blogs.computerworld.com/15556/the_end_of_sql_and_relational_databases_part_2_of_3</a></span></p>
<p style="margin-bottom: 0in; font-weight: normal; text-decoration: none;"><span style="color: #000000;">Part 3 is a list of links to NoSQL sites, articles, and blog posts. The link to part 3 is here - <a title="NoSQL Part 3" href="http://blogs.computerworld.com/15641/the_end_of_sql_and_relational_databases_part_3_of_3" target="_blank">http://blogs.computerworld.com/15641/the_end_of_sql_and_relational_databases_part_3_of_3</a> </span></p>
<p style="margin-bottom: 0in; font-weight: normal; text-decoration: none;">
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;"><span style="font-weight: normal;">In short, the “NoSQL” (<a title="NoSQL " href="http://en.wikipedia.org/wiki/NoSQL" target="_blank">http://en.wikipedia.org/wiki/NoSQL</a>) movement and cloud-based data stores are striving to completely remove developers from </span>a reliance on SQL and relational databases.</span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;">In a post-relational world, they argue that a distributed, context-free key-value store is probably the way to go.  This makes sense when are can be thousands of sequence searchers, but only one updater. A transactional database would be overkill.</span></p>
<p style="margin-bottom: 0in; text-decoration: none;"><span style="color: #000000;"><strong>Part 5 </strong>of <strong>Effective Bioinformatics Programming</strong> coming soon..</span></p>
<p style="margin-bottom: 0in; text-decoration: none;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in; text-decoration: none;">
<p style="margin-bottom: 0in;"><a href="mailto:SETI@home"><span style="color: #000000;"><span style="text-decoration: none;"> </span></span></a></p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;" align="CENTER">
]]></content:encoded>
			<wfw:commentRss>http://blog.lifeformulae.com/2010/03/effective-bioinformatics-programming-part-4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Effective Bioinformatics Programming - Part 3</title>
		<link>http://blog.lifeformulae.com/2010/02/effective-bioinformatics-programming-part-3/</link>
		<comments>http://blog.lifeformulae.com/2010/02/effective-bioinformatics-programming-part-3/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 20:46:30 +0000</pubDate>
		<dc:creator>Pam</dc:creator>
		
		<category><![CDATA[Bioinformatics]]></category>

		<category><![CDATA[bash]]></category>

		<category><![CDATA[cygwin]]></category>

		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[Git]]></category>

		<category><![CDATA[Hungarian Notation]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[NetBeans]]></category>

		<category><![CDATA[OS X]]></category>

		<category><![CDATA[rsync]]></category>

		<category><![CDATA[Snapshot backup]]></category>

		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://blog.lifeformulae.com/?p=162</guid>
		<description><![CDATA[ All Things Unix
Bioinformatics started with Unix.  At the Human Genome Center, for a long time, I had the one and only PC.  (We got a request from our users for a PC-based client for the Search Launcher). Everything else was Solaris (Unix) and Mac, which was followed by Linux.
Unix supports a number [...]]]></description>
			<content:encoded><![CDATA[<p><img src="file:///tmp/moz-screenshot-2.png" alt="" /> <strong>All Things Unix</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;">Bioinformatics started with Unix.  At the Human Genome Center, for a long time, I had the one and only PC.  (We got a request from our users for a PC-based client for the Search Launcher). Everything else was Solaris (Unix) and Mac, which was followed by Linux.</p>
<p style="margin-bottom: 0in; font-weight: normal;">Unix supports a number of nifty commands like <strong>grep</strong>, <strong>strings</strong>, <strong>df</strong>, <strong>du</strong>, <strong>ls, </strong>etc.  These commands are run inside the shell, or command line interpreter, for the operating system (Unix).   There have been a number of these shells in the history of Unix development.</p>
<p>The <strong>bash </strong>shell <a title="bash" href="http://en.wikipedia.org/wiki/Bash" target="_blank">http://en.wikipedia.org/wiki/Bash</a> is the default shell for the <strong>Linux</strong> environment.  This shell provides several unique capabilities over other shells.  For instance, <strong>bash</strong> supports a history buffer of system commands.  With the history buffer, the “up” arrow will return the previous command.  The <strong>history</strong> command lets you view a history of past commands.   The <strong>bang </strong>operator (!) lets you rerun a previous command from the history buffer.     (Which saves a lot of typing!)</p>
<p style="margin-bottom: 0in; font-weight: normal;"><strong>bash </strong>enables a user to redirect program output. The pipeline feature allows the user to connect a series of commands.  With the pipeline (“|”) operator, a chain of commands can be linked together where the output of one command is the input to the next command an so forth.</p>
<p style="margin-bottom: 0in; font-weight: normal;">A <strong>shell script</strong> (<a title="Shell Script" href="http://en.wikipedia.org/wiki/Shell_script" target="_blank">http://en.wikipedia.org/wiki/Shell_script</a>) is script written for the shell or command line interpreter.  Shell scripts enable batch processing. Together with the <strong>cron</strong> command, these scripts can be set to run automatically at times when system usage is minimum.</p>
<p style="margin-bottom: 0in; font-weight: normal;">For  general information about bash, go to the Bash Reference Manual at <a title="Bash Reference Manual" href="http://www.gnu.org/software/bash/manual/bashref.html" target="_blank">http://www.gnu.org/software/bash/manual/bashref.html</a><a title="Bash Reference Manual" href="http://www.gnu.org/software/bash/manual/bashref.html" target="_blank">.</a></p>
<p style="margin-bottom: 0in; font-weight: normal;">A whole wealth of bash shell script examples is available at - <a title="Bash examples" href="http://tldp.org/LDP/abs/html/" target="_blank">http://tldp.org/LDP/abs/html/</a>.</p>
<p style="margin-bottom: 0in;"><strong>Unix on Other Platforms</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;"><strong>Cygwin </strong>(<a title="Cygwin" href="http://www.cygwin.com/" target="_blank">http://www.cygwin.com/</a>) is a Linux-like environment for windows.  The basic download installs a minimum environment, but you can add additional packages at any time.  Go to <a title="Cygwin Packages" href="http://cygwin.com/packages/ " target="_blank">http://cygwin.com/packages/</a><a title="Cygwin Packages" href="http://cygwin.com/packages/ " target="_blank"> </a>for a list of Cygwin packages available for download.</p>
<p style="margin-bottom: 0in; font-weight: normal;">Apple&#8217;s <strong>OS X </strong>is based on Unix.  Other than the MACH kernel, the OS is BSD-derived.  Their Java package is usually not the latest as Apple has to port Java due to differences such as the graphics portion.</p>
<p style="margin-bottom: 0in; font-weight: normal;">
<p style="margin-bottom: 0in;"><strong>All Things Software – Documenting and Archiving</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;">I&#8217;ve run into all sorts of approaches to program code documentation in my career.    A lead engineer  demanded that every line of assembler code be documented.  A senior programmer insisted that code should be self-documenting.</p>
<p style="margin-bottom: 0in; font-weight: normal;">By that, she used variable names such as save_the_file_to_the_home_directory, and so on.  Debugging these programs was a real pain.  The first thing you had to do was set up aliases for all the unwieldy names.</p>
<p style="margin-bottom: 0in; font-weight: normal;">The <strong>FORTRAN </strong>programmers cried when variable names longer than 6 characters were allowed in version 77 of VAX FORTRAN..  Personally, I thought it was great.  The same with IMPLICIT NONE.</p>
<p style="margin-bottom: 0in; font-weight: normal;">In the ancient times, FORTRAN integers variables had to start with i thru n.  Real variables could use the other letters.  The IMPLICIT NONE directive told the compiler to shut that off.</p>
<p style="margin-bottom: 0in; font-weight: normal;">All FORTRAN variables had to be in capital letters.  But you could stuff strings into integer variables which I found extremely useful.  All FORTRAN statements had to begin with a number.  This number usually started at 10 and went up in increments of 10.</p>
<p style="margin-bottom: 0in; font-weight: normal;">At one time Microsoft used Hungarian notation (<a title="Hungarian Notation" href="http://en.wikipedia.org/wiki/Hungarian_notation" target="_blank">http://en.wikipedia.org/wiki/Hungarian_notation</a>) for variables in most of their documentation.  In this method, the name of the variable indicated it&#8217;s use. For example, lAccountNumber was a long integer.</p>
<p style="margin-bottom: 0in; font-weight: normal;">The IDEs (<strong>Eclipse</strong>, <strong>NetBeans</strong>, and others) will automatically create the header comment with a list of variables.  The user just adds the proper definitions. (If you&#8217;re using Java, the auto comment is JavaDoc compatible, etc.)</p>
<p style="margin-bottom: 0in; font-weight: normal;">Otherwise, Java supports the JavaDoc tool, Python has PyDoc, and Ruby has RDoc.</p>
<p style="margin-bottom: 0in; font-weight: normal;">Personally, I feel that software programs should be read like a book, with documentation providing the footnotes, such as an overview of what the code in question does and  a definition of the main variables for both input and output.  Module/Object documentation should also note who uses the function and why.  Keep variable names short but descriptive and make comments meaningful.</p>
<p style="margin-bottom: 0in;">Keep code clean, but don&#8217;t go overboard.  I worked with one programmer who stated, “My code is so clean you could eat off it.”   I found that a little too obnoxious, not to mention overly optimistic as a number of bugs popped out as time went by.<strong></strong></p>
<p style="margin-bottom: 0in;"><strong>Archiving Code</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;">Version Control Systems (VCS) have evolved as source code projects became larger and more complex.</p>
<p style="margin-bottom: 0in; font-weight: normal;"><strong>RCS</strong> (Revision Control System) meant that the days of the keeping the Emacs numbered files (e.g. foo.~1~) as backups were over.  RCS used the diff concept (just kept a list of the changes make to a file as a backup strategy).</p>
<p style="margin-bottom: 0in; font-weight: normal;">I found this unsuited for what I had to do – revert to an old version in a matter of seconds.</p>
<p style="margin-bottom: 0in; font-weight: normal;"><strong>CVS </strong>was much, much better.  CVS was replaced by Subversion. But they&#8217;re centralized repository structure can create problems.  You basically check out what you want to work on from a library and check it back in when you&#8217;re done.  This can be a slow process depending on network usage or central server available.</p>
<p style="margin-bottom: 0in; font-weight: normal;">The current favorite is <strong>Git</strong>. Git was created by Linus Torvalds (of Linux fame).  Git is a free, open source distributed version control system. (<a title="Git" href="http://git-scm.com/" target="_blank">http://git-scm.com/)</a>.</p>
<p style="margin-bottom: 0in; font-weight: normal;">Everyone on the project has a copy of all project files complete with revision histories and tracking capabilities. Permissions allow exchanges between users and merging to a central location is fast.</p>
<p style="margin-bottom: 0in; font-weight: normal;">The IDE&#8217;s (<strong>Eclipse</strong> and <strong>NetBeans</strong>) will have CVS and Subversion plug ins already configured for accessing those repositories.  NetBeans also supports Mercurical.  Plug ins for the other versioning software  modules are available on the web.  The Eclipse plug in for Git is available at <a href="http://git.wiki.kernel.org/index.php/EclipsePlugin"></a><a title="Git Eclipse Plug In" href="http://git.wiki.kernel.org/index.php/EclipsePlugin" target="_blank">http://git.wiki.kernel.org/index.php/EclipsePlugin</a>.</p>
<p style="margin-bottom: 0in;"><strong>System Backup </strong></p>
<p style="margin-bottom: 0in; font-weight: normal;">Always have a plan B.  My plan A had IT backup my systems on a weekly to monthly basis based on usage.   A natural disaster completely decimated my systems.  No problem, I thought, I have system backup.  Imagine how I felt when I heard that IT had not archived a single on of my systems in over three years!  Well, I had a plan B.  I had a mirror of the most important stuff on an old machine and other media.  We were back up almost immediately.</p>
<p style="margin-bottom: 0in; font-weight: normal;">The early <strong>Tandem NonStop systems</strong> (now known as HP Integrity NonStop)  automatically mirrored your system in real-time, so down time was not a problem.</p>
<p style="margin-bottom: 0in; font-weight: normal;">Real-time backup is expensive and unless you&#8217;re a bank or airline, it&#8217;s not necessary.</p>
<p style="margin-bottom: 0in;"><strong>Snapshot Backup on Linux with rsync</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;">If you&#8217;re running Linux, Mac, Solaris, or any Unix-based system,  you can use <strong>rsync</strong> for generating automatic rotating “snapshot” style back-ups.  These systems generally have rsync already installed.  If not, the source is available at – http://rsync.samba.org/.</p>
<p style="margin-bottom: 0in;"><span style="font-weight: normal;">This website - <a title="rsync Snapshots" href="http://www.mikerubel.org/computers/rsync_snapshots/ " target="_blank">http://www.mikerubel.org/computers/rsync_snapshots/</a><a title="rsync Snapshots" href="http://www.mikerubel.org/computers/rsync_snapshots/ " target="_blank"> </a>will tell you everything you need to know to implement rsync based backups, complete with sample scripts.</span></p>
<p style="margin-bottom: 0in;">Properly configured, the method can also protect against hard disk failure, root compromises, or even back up a network of heterogeneous desktops automatically.</p>
<p style="margin-bottom: 0in;"><strong>Acknowledgment – Thanks, Bill!</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;">I want to thank Bill Eaton for his assistance with these blog entries on Effective Bioinformatics Programming.    He filled in a lot of the technical details, performed product analysis, and gave me direction in writing these blog entries.</p>
<p style="margin-bottom: 0in; font-weight: normal;"><strong>To Be Continued - Part 4</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;">Part 4 will cover relational database management systems (RDBMS), HPC (high performance computing) - parallel processing, FPGC, clusters, grids, and other topics.</p>
<p style="margin-bottom: 0in; font-weight: normal;">
<p style="margin-bottom: 0in; font-weight: normal;">
<p style="margin-bottom: 0in; font-weight: normal;">
<p style="margin-bottom: 0in; font-weight: normal;">
<p style="margin-bottom: 0in; font-weight: normal;">
]]></content:encoded>
			<wfw:commentRss>http://blog.lifeformulae.com/2010/02/effective-bioinformatics-programming-part-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Effective Bioinformatics Programming - Part 2</title>
		<link>http://blog.lifeformulae.com/2010/01/effective-bioinformatics-programming-part-2/</link>
		<comments>http://blog.lifeformulae.com/2010/01/effective-bioinformatics-programming-part-2/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 20:29:35 +0000</pubDate>
		<dc:creator>Pam</dc:creator>
		
		<category><![CDATA[Bioinformatics]]></category>

		<category><![CDATA[Bioinformatics Organization]]></category>

		<category><![CDATA[BioJava]]></category>

		<category><![CDATA[BioPerl]]></category>

		<category><![CDATA[BioPython]]></category>

		<category><![CDATA[BioRuby]]></category>

		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[freshmeat]]></category>

		<category><![CDATA[IDE]]></category>

		<category><![CDATA[instrumentation]]></category>

		<category><![CDATA[NetBeans]]></category>

		<category><![CDATA[Open Bioinformatics Foundation]]></category>

		<category><![CDATA[OpenSource]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[Public Domain Manifesto]]></category>

		<category><![CDATA[SourceForge]]></category>

		<guid isPermaLink="false">http://blog.lifeformulae.com/?p=154</guid>
		<description><![CDATA[Effective Bioinformatics Programming – Part 2
Instrumentation Programming
Instrumentation Programming usually concerns computer control over the actions of an instrument and/or the streaming or download of data from the device.  Instrumentation in the Life Sciences covers data loggers, waveform data acquisition systems, pulse generators, image capture, and others used extensively in LIMS (Laboratory Information Management Systems), [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;"><strong>Effective Bioinformatics Programming – Part 2</strong></p>
<p style="margin-bottom: 0in;"><strong>Instrumentation Programming</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;">Instrumentation Programming usually concerns computer control over the actions of an instrument and/or the streaming or download of data from the device.  Instrumentation in the Life Sciences covers data loggers, waveform data acquisition systems, pulse generators, image capture, and others used extensively in LIMS (Laboratory Information Management Systems), Spectroscopy, and other scientific arenas.</p>
<p style="margin-bottom: 0in; font-weight: normal;">Most instruments are controlled by codes called “control codes”.     These codes are usually sent or received by a C/C++ program.  Some instrumentation manufacturers, however,  have a proprietary programming language that must be used to “talk” to the instrument.</p>
<p style="margin-bottom: 0in; font-weight: normal;">Some companies are nice enough to provide information on the structure of the data that comes from their instrument.   When they don&#8217;t you may have to use good old “reverse engineering”.  That&#8217;s where the Unix/Linux <strong>od</strong> utility comes in handy, because lots of time will be spent poring over hex dumps.</p>
<p style="margin-bottom: 0in; font-weight: normal;">As you can tell, programming instruments requires a lot of patience.  This is especially true if everything hangs or gets into a confused state.  There is nothing you can do but recycle the power to everything and start over.  This is usually accompanied by a  banging of keyboards and the muttering of a few choice words.</p>
<p style="margin-bottom: 0in;"><strong>Development Platforms or IDEs (Integrated Development Environment)</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;">I have to mention development platforms as they can be useful, but also problematic.   My favorite is Eclipse (<a title="Eclipse IDE" href="http://eclipse.org" target="_blank">http://www.eclipse.org</a>).  Originating at IBM, Eclipse was supported by a consortium of software vendors.  Eclipse has now become the Eclipse open source community, supported by the Eclipse Foundation.</p>
<p style="margin-bottom: 0in;"><span style="font-weight: normal;">Eclipse is a development platform for programmers </span>comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle.   You can find plug-ins that will enable you to accomplish just about anything you want to do.  A plug-in is an addition to the Eclipse platform that is not included in the base package, like an Eclipse memory manager or a debugging a Tomcat servlet.</p>
<p style="margin-bottom: 0in;">Sun offers NetBeans (“The only IDE you need.”).  I used NetBeans (<a title="NetBeans IDE" href="http://netbeans.org" target="_blank">http://netbeans.org</a>) at lot on the Mac.  Previously, Sun offered StudioOne and Creator. I used StudioOne (on Unix) and Creator (on Linux).  I haven&#8217;t worked with NetBeans lately because they&#8217;re currently mostly Swing-centric (GUI) development and are not fully JSF (java Server Faces) aware.  NetBeans will make a template for JSF but doesn&#8217;t (as yet) provide an easy way to create a JSF interface.</p>
<p style="margin-bottom: 0in;">There are two main problems with development platforms.  For one, the learning curve is fairly steep.  There area lot of tutorials and examples available, but you still have take the time to do it.</p>
<p style="margin-bottom: 0in;">The best way to use a development platform is to divide the work. One group does web content, one group does database, one group does middleware (the glue that holds everything together), etc.  Each group or person can then become knowledgeable in their area and move on or absorb other areas as needed.</p>
<p style="margin-bottom: 0in;">The second problem with these tools in that you are stuck with their developmental approach.</p>
<p style="margin-bottom: 0in;">You have to do things a certain way and adhere to a certain structure.  Flexibility can be a problem.</p>
<p style="margin-bottom: 0in;">This is especially true of interface building. You are stuck with the code the tool generates and the files and file structures created.     With most tools, you have to use that tool to access files that the tool created.</p>
<p style="margin-bottom: 0in;">IDEs can be useful in that they will perform mundane coding tasks for you.  For instance, given a database record, the IDE can use those table elements to generate web forms and the SQL queries driving those forms.  You can then expand the simple framework or leave as is.</p>
<p style="margin-bottom: 0in;"><strong>Open Source/Free Software and Bioinformatics Libraries</strong></p>
<p style="margin-bottom: 0in;">There a lot of good an not-so-good Open Source code out there for the Life Sciences.</p>
<p style="margin-bottom: 0in;">There are several “gotchas” to look out for, including &#8211;</p>
<p style="margin-bottom: 0in; text-align: center;">Is the code reliable?  Are others using it?  Are they having problems?</p>
<p style="margin-bottom: 0in; text-align: center;">Will the code run on your architecture? What will it take to install</p>
<p style="margin-bottom: 0in; text-align: center;">What kind of user support is available?  What&#8217;s the response time?</p>
<p style="margin-bottom: 0in; text-align: center;">Is there a mailing list available for the library, package, or project of interest?</p>
<p style="margin-bottom: 0in;">The are several bioinformatics software libraries available for various languages.  All of these libraries are OpenSource/Free Software.  Installing these libraries takes a little more that just downloading and uncompressing a  package.  There are “dependencies” (other libraries, modules, programs, and access to external sites) that must be resident or accessible before a complete build of these libraries is possible.</p>
<p style="margin-bottom: 0in;">The following is a list of the most popular libraries and  their respective dependencies.</p>
<p style="margin-bottom: 0in;"><strong>BioPerl 1.6.1</strong>:  Modules section of <a title="CPAN" href="http://www.cpan.org" target="_blank">http://www.cpan.org/</a></p>
<pre><span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Required modules:</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">perl               =&gt; 5.6.1</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">IO::String         =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">DB_File            =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Data::Stag         =&gt; 0.11</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Scalar::Util       =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">ExtUtils::Manifest =&gt; 1.52</span></span>

<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Required modules for source build:</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Test::More    =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Module::Build =&gt; 0.2805</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Test::Harness =&gt; 2.62</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">CPAN          =&gt; 1.81</span></span>

<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Recommended modules:  some of these have circular dependencies</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Ace                       =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Algorithm::Munkres        =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Array::Compare            =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Bio::ASN1::EntrezGene     =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Clone                     =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Convert::Binary::C        =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Graph                     =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">GraphViz                  =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">HTML::Entities            =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">HTML::HeadParser          =&gt; 3</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">HTTP::Request::Common     =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">List::MoreUtils           =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">LWP::UserAgent            =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Math::Random              =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">PostScript::TextBlock     =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Set::Scalar               =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">SOAP::Lite                =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Spreadsheet::ParseExcel   =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Spreadsheet::WriteExcel   =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Storable                  =&gt; 2.05</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">SVG                       =&gt; 2.26</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">SVG::Graph                =&gt; 0.01</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Text::ParseWords          =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">URI::Escape               =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">XML::Parser               =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">XML::Parser::PerlSAX      =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">XML::SAX                  =&gt; 0.15</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">XML::SAX::Writer          =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">XML::Simple               =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">XML::Twig                 =&gt; 0</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">XML::Writer               =&gt; 0.4</span></span>

<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Some of these modules such as SOAP::Lite depend upon many other</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">modules.</span></span>

<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;"><strong>BioPython 1.53</strong>:  <a title="BioPython" href="http://biopython.org" target="_blank">http://biopython.org/</a></span></span>

<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Additional packages:</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">NumPy     (recommended) http://numpy.scipy.org/</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">ReportLab (optional)    http://www.reportlab.com/software/opensource/</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">MySQLdb   (optional)    May be in core Python distribution.</span></span>

<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;"><strong>BioRuby 1.4.0</strong>:  <a title="BioRuby" href="http://www.bioruby.org" target="_blank">http://www.bioruby.org/</a></span></span>

<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">The base distribution is self-contained and uses the RubyGems installer.</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Optional packages.</span></span>

<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">RAA:xmlparser</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">RAA:bdb</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">RubyForge:ActiveRecord and at least one driver (or adapter) from</span></span>
   <span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">RubyForge:MySQL/Ruby, RubyForge:postgres-pr, or RubyForge:ActiveRecord</span></span>
   <span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Oracle enhanced adapter.</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">RubyForge:libxml-ruby (Ruby language bindings for the GNOME Libxml2 XML toolkit)</span></span>

<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;"><strong>BioJava 1.7.1</strong>:  <a title="BioJava" href="http://www.biojava.org" target="_blank">http://www.biojava.org/</a></span></span>

<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">biojava-1.7.1-all.jar:  self-contained binary distribution with</span></span>
  <span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">all dependencies included.</span></span>

<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">biojava-1.7.1.jar:  bare distribution that requires the following additional</span></span>
  <span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">jar files.  These are required for building from source code.</span></span>
  <span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">Most are from http://www.apache.org/</span></span>

<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">bytecode.jar:                  required to run BioJava</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">commons-cli.jar:               used by some demos.</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">commons-collections-2.1.jar:   demos, BioSQL Access</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">commons-dbcp-1.1.jar:          legacy BioSQL access</span></span>
<span style="font-family: Liberation Serif,serif;"><span style="font-size: small;">commons-pool-1.1.jar:          legacy BioSQL access
jgraph-jdk1.5.jar:          NEXUS file parsing</span></span></pre>
<p style="margin-bottom: 0in;">Don&#8217;t forget to sign up for the mailing list for that library or libraries of interest to get the lastest news, problems, solutions, etc. for that library or just life science topics in general.</p>
<p style="margin-bottom: 0in;"><strong>Software Hosting and Indexing Sites</strong></p>
<p style="margin-bottom: 0in;">There are several Software Hosting and Indexing Sites that serve as software distribution points for bioinformatics software.</p>
<p style="margin-bottom: 0in;"><a title="SourceForge" href="http://sourceforge.net" target="_blank"><strong>SourceForge.net</strong></a> – Search on bioinformatics for a list of software available. Projects include:MIAMExpress - <a title="SourceForge" href="http://sourceforge.net/projects/miamexpress/" target="_blank">http://sourceforge.net/projects/miamexpress/</a></p>
<p style="margin-bottom: 0in;"><a title="freshmeat" href="http://freshmeat.net" target="_blank"><strong>freshmeat</strong></a>– The Web&#8217;s largest index of Unix and cross-platform software</p>
<p style="margin-bottom: 0in;"><a title="Bioinformatics Organization" href="http://www.bioinformatics.org" target="_blank"><strong>Bioinformatics Organization</strong></a> – The Open Access Institute<strong> </strong></p>
<p style="margin-bottom: 0in;"><strong> </strong><a title="Bioinformatics Org Projects" href="http://www.bioinformatics.org/softwaremap/?form_cat=2" target="_blank"></a></p>
<p style="margin-bottom: 0in;"><strong><a title="OpenBio" href="http://www.open-bio.org/wiki/Main_Page" target="_blank">Open Bioinformatics Foundation (O|B|F)</a> </strong>- Hosts Many Open Bioinformatics Projects</p>
<p style="margin-bottom: 0in;"><strong>Public Domain Manifesto</strong></p>
<p style="margin-bottom: 0in;">In this time of curtailment of civil rights, the Public Domain Manifesto seems appropriate (<a title="Public Domain Manifesto" href="http://www.publicdomainmanifesto.org/node/8" target="_blank">http://www.publicdomainmanifesto.org/node/8</a><a href="http://www.publicdomainmanifesto.org/node/8">)</a>. Sign the petition while you&#8217;re there.</p>
<p style="margin-bottom: 0in;">This is the end of Part 2.  Part 3 will explore more software skills, project management, and other computational topics.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lifeformulae.com/2010/01/effective-bioinformatics-programming-part-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Effective Bioinformatics Programming - Part 1</title>
		<link>http://blog.lifeformulae.com/2010/01/effective-bioinformatics-programming-part-1/</link>
		<comments>http://blog.lifeformulae.com/2010/01/effective-bioinformatics-programming-part-1/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 21:38:42 +0000</pubDate>
		<dc:creator>Pam</dc:creator>
		
		<category><![CDATA[Bioinformatics]]></category>

		<category><![CDATA[Science Communicaton]]></category>

		<category><![CDATA[C/C++]]></category>

		<category><![CDATA[debugging]]></category>

		<category><![CDATA[Fortran]]></category>

		<category><![CDATA[gdb]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[LISP]]></category>

		<category><![CDATA[MIT]]></category>

		<category><![CDATA[OpenCourseWare]]></category>

		<category><![CDATA[Perl]]></category>

		<category><![CDATA[PLOS]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Scheme]]></category>

		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://blog.lifeformulae.com/?p=148</guid>
		<description><![CDATA[The PLOS Computational Biology website recently published “A Quick Guide for Developing Effective Bioinformatics Programming Skills” by Joel T. Dudley and Atul J. Butte (http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1000589).
This article is a good that survey covers all the latest topics and mentions all the currently-popular buzzwords circulating above, around, and through the computing ionosphere.  It&#8217;s a good article, [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;">The PLOS Computational Biology website recently published “A Quick Guide for Developing Effective Bioinformatics Programming Skills” by Joel T. Dudley and Atul J. Butte (<a title="A Quick Guide for Developing Effective Bioinformatics Programming Skills" href="http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1000589" target="_blank">http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1000589</a><a href="http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1000589">).</a></p>
<p style="margin-bottom: 0in;">This article is a good that survey covers all the latest topics and mentions all the currently-popular buzzwords circulating above, around, and through the computing ionosphere.  It&#8217;s a good article, but I can envision readers&#8217; eyes glazing over about page 3.  It&#8217;s a lot of computer-speak in a little space.</p>
<p style="margin-bottom: 0in;">I&#8217;ll add in a few things they skipped or merely skimmed over to give a better overview of what&#8217;s out there and how it pertains to bioinformatics.</p>
<p style="margin-bottom: 0in;">They state that a biologist should  put together a Technology<strong> Toolbox</strong>. They continue, “The most fundamental and versatile tools in your technology toolbox are programming languages.”</p>
<p style="margin-bottom: 0in;"><strong>Programming Concepts</strong></p>
<p style="margin-bottom: 0in;">Programming languages are important, but I think that <strong>Programming Concepts</strong> are way, way more important.  A good grasp of programming concepts will enable you to understand any programming language.</p>
<p style="margin-bottom: 0in; font-weight: normal;">To get a good handle on programming concepts, I recommend at book.  This book,  <strong>Structure and Implementation of Computer Programs </strong><span style="font-weight: normal;">from MIT Press  (<a title="Structure and Implementation of Computer Programs" href="http://mitpress.mit.edu/sicp/" target="_blank">http://mitpress.mit.edu/sicp/</a>),</span>is the basis for an intro to computer science at MIT.  It&#8217;s called the Wizard Book or the Purple Book.</p>
<p style="margin-bottom: 0in; font-weight: normal;">I got the 1984 version of the book which used the LISP language. The current 1996 version is based on LISP/Scheme.  Scheme is basically a  cleaned-up LISP, in case you&#8217;re interested.</p>
<p style="margin-bottom: 0in;"><span style="font-weight: normal;">Best of all course (and the down loadable book) are freely available from MIT through the </span><strong>MIT OpenCourseWare</strong><span style="font-weight: normal;"> website – <a title="MIT OpenCourseWare Books" href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Spring-2005/CourseHome/index.htm" target="_blank">http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Spring-2005/CourseHome/index.htm</a>.</span></p>
<p style="margin-bottom: 0in;"><span style="font-weight: normal;">There&#8217;s a blog entry - <a title="Blog on MIT OpenCourseWare" href="http://onlamp.com/pub/wlg/8397 " target="_blank">http://onlamp.com/pub/wlg/8397 </a>- that goes into further explanation about the course and the book..</span></p>
<p style="margin-bottom: 0in; font-weight: normal;">And just because you can program, it doesn&#8217;t mean you know (or even need to know) all the concepts.  For instance, my partner for a engineering education extension course was an electrical engineer who was programming microprocessors.  When the instructor mentioned the term “scope” in reference to some topic, he turned to me and asked, “What&#8217;s scope?”</p>
<p style="margin-bottom: 0in;"><span style="font-weight: normal;">According to MIT&#8217;s purple book &#8211;” </span><span style="font-weight: normal;">In a procedure definition, the bound variables declared as the formal parameters of the procedure have the body of the procedure as their scope.”</span></p>
<p style="margin-bottom: 0in; font-weight: normal;">You don&#8217;t need to know about scope  to program in assembler, because everything you need is right there. (In case you&#8217;re wondering, I consider assembler programmers to be among the programming elites.)</p>
<p style="margin-bottom: 0in;"><strong>Programming Languages</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;">The article mentions Perl, Python, and Ruby as the “preferred and most prudent choices” in which to seek mastery for bioinformatics.</p>
<p style="margin-bottom: 0in; font-weight: normal;">These languages are selected because “they simplify the programming process by obviating the need to manage many lower level details of program execution (e.g. memory management), affording the programmer the ability to focus foremost on application logic&#8230;”</p>
<p style="margin-bottom: 0in; font-weight: normal;">Let me add the following. There are differences in programming languages. By that, I mean compiled vs scripted.   Languages such as C, C++, and Fortran are compiled.     Program instructions written in these languages are parsed and translated into object code, or a language specific to the computer architecture the code is to run on.    Compiled code has a definite speed advantage, but if the code is the main or any supporting module is changed, the entire project must be recompiled.  Since the program is compiled into the machine code of a specific computer architecture, portability of the code is limited.</p>
<p style="margin-bottom: 0in; font-weight: normal;">Perl, Python, and Ruby are examples of scripted or interpreted languages.  These languages are translated into byte code which is optimized and compressed, but is not machine code.  This byte code is then interpreted by a virtual machine (or byte code interpreter) usually written in C.</p>
<p style="margin-bottom: 0in; font-weight: normal;">An interpreted program runs more slowly than a compiled program. Every line of an interpreted  program must be analyzed as it is read. But the code isn&#8217;t particularly tied to one machine architecture making portability easier (provided the byte code interpreter is present). Since code is only interpreted at run time, extensions and modifications to the code base is easier, making these languages great for beginning programmers or rapid prototyping.</p>
<p style="margin-bottom: 0in; font-weight: normal;">But, let&#8217;s get back to the memory management.  This, and processing speed will be a huge deal in next gen data analysis and management.</p>
<p style="margin-bottom: 0in; font-weight: normal;">Perl automatic memory management has a problem with circularity, as Perl (and Ruby and Python)  count references.</p>
<p style="margin-bottom: 0in; font-weight: normal;">If object 1  points to object 2 and object 2 points back to 1 , but nothing else in the program points to either object 1 or object 2 (this is a weak reference), these objects don&#8217;t get destroyed.   They remain in memory.  If these objects get created again and again, it&#8217;s called  a memory leak.</p>
<p style="margin-bottom: 0in; font-weight: normal;">I also have to ask – What about C/C++ , Fortran, and even Turbo Pascal?  The NCBI Toolkit is written in C/C++.  If you work with foreign scientists, you will probably see a lot Fortran.</p>
<p style="margin-bottom: 0in;"><strong>Debugging</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;">You can&#8217;t mention programming with mentioning debugging.  I consider the act of debugging code an art form any serious programmer should doggedly pursue.</p>
<p style="margin-bottom: 0in; font-weight: normal;">Here&#8217;s a link to a ebook, <strong>The Art of Debugging </strong>– <a title="The Art of Debugging" href="http://www.circlemud.org/cdp/hacker/" target="_blank">http://www.circlemud.org/cdp/hacker/</a>.  It&#8217;s mainly Unix-based, C-centric and a little dated.  But good stuff never goes out of style.</p>
<p style="margin-bottom: 0in; font-weight: normal;">Chapter 4, <strong>Debugging: Theory </strong>explains various debugging techniques.  Chapter 5 – <strong>Profiling t</strong>alks about profiling your code, or determining where your program is spending most of its time.</p>
<p style="margin-bottom: 0in; font-weight: normal;">He also mentions <strong>core</strong> dumps.  A core is what happens when your C/C++/Fortran program crashes in Unix/Linux.  You can examine this core to determine where your program went wrong.  (It gives you a place to start.)</p>
<p style="margin-bottom: 0in; font-weight: normal;">The Linux Foundation Developer Network has an on-line tutorial – <strong>Zen and the Art of Debugging</strong> <strong>C/C++ in Linux with GDB –</strong> <a title="Debugging with gdb in Linux" href="http://ldn.linuxfoundation.org/article/zen-and-art-debugging-cc-linux-with-gdb" target="_blank">http://ldn.linuxfoundation.org/article/zen-and-art-debugging-cc-linux-with-gdb</a>.  They write a C program (incorporating a bug), create a make file, compile, and then use gdb to find the problem.  You are also introduced to several Unix/Linux commands in the process.</p>
<p style="margin-bottom: 0in; font-weight: normal;">You can debug Perl by invoking it with the -d switch.  Perl usually crashes at the line number that caused the problem and some explanation of what went wrong.</p>
<p style="margin-bottom: 0in; font-weight: normal;">The -d option also turns on parser debugging output for Python.</p>
<p style="margin-bottom: 0in;"><strong>Object Dumps</strong></p>
<p style="margin-bottom: 0in; font-weight: normal;">One of the most useful utilities in Unix/Linux is  <strong>od</strong> (object dump).  You can examine files in octal (default), hex, or ASCII characters</p>
<p style="margin-bottom: 0in; font-weight: normal;"><strong>od</strong> is very handy for examining data structures, finding hidden characters, and reverse engineering.</p>
<p style="margin-bottom: 0in; font-weight: normal;">If you think you&#8217;re code is right, the problem may be in what you are trying to read.    Use <strong>od</strong> to get a good look at the input data.</p>
<p style="margin-bottom: 0in; font-weight: normal;">That&#8217;s it for Part 1.    Part 2 will cover Open Source, project management, archiving source code and other topics.</p>
<p style="margin-bottom: 0in; font-weight: normal;">
<p><img src="file:///tmp/moz-screenshot-1.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lifeformulae.com/2010/01/effective-bioinformatics-programming-part-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Keep to Good Faith</title>
		<link>http://blog.lifeformulae.com/2009/11/keep-to-good-faith/</link>
		<comments>http://blog.lifeformulae.com/2009/11/keep-to-good-faith/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 20:28:43 +0000</pubDate>
		<dc:creator>Pam</dc:creator>
		
		<category><![CDATA[Bioinformatics]]></category>

		<category><![CDATA[Andre Comte-Sponville]]></category>

		<category><![CDATA[Cloud Computing]]></category>

		<category><![CDATA[Enron]]></category>

		<category><![CDATA[Good Faith]]></category>

		<category><![CDATA[inventory management system]]></category>

		<category><![CDATA[LIMS]]></category>

		<category><![CDATA[SaaS]]></category>

		<category><![CDATA[Virtues]]></category>

		<guid isPermaLink="false">http://blog.lifeformulae.com/?p=139</guid>
		<description><![CDATA[I was going through a box of textbooks last week and stumbled upon a copy of the Enron Code of Ethics.   I have another one stored away with a form, signed by Ken Lay, that states I have read and will comply with the Enron Code of Ethics.
I was employed at Enron from [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;">I was going through a box of textbooks last week and stumbled upon a copy of the Enron Code of Ethics.   I have another one stored away with a form, signed by Ken Lay, that states I have read and will comply with the Enron Code of Ethics.</p>
<p style="margin-bottom: 0in;">I was employed at Enron from 2000 through 2002 and was there when the wheels came off. Our department was left intact.  Otherwise, whole floors of the Enron building were vacated.    It really was a shame, because Enron was a great place to work.  Several friends and acquaintances lost most of what they had because of the malfeasance of a greedy few.</p>
<p style="margin-bottom: 0in;">This had to be the most blatant example of unethical conduct in the workplace I encountered.  There were others, that appeared seemingly minor, ended up costing companies money and talent.  Most of these losses were mostly the result of mismanagement and not outright unethical behavior. But, then again, is mismanagement itself unethical?</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">I book I read recently entitled <a href="http://www.amazon.com/Small-Treatise-Great-Virtues-Philosophy/dp/0805045562" target="_blank">“A Small Treatise of the Great Virtues, The Uses of Philosophy in Everyday Life” by Andre Comte-Sponville (Metropolitan Books)</a>, talks about truth as “Good Faith”.</p>
<p style="margin-bottom: 0in;">He states on page 196, that “at the very least that one speaks the truth about what one believes, and this truth, even if what one believes is false, is less true for all that.  Good faith, in this sense, is what we cal sincerity (or truthfulness or candor) and is the opposite of mendacity, hypocrisy, and duplicity, in short, the opposite of bad faith in all its private and public forms.”</p>
<p style="margin-bottom: 0in;">In my position at a major hardware/software developer I was told that I “didn&#8217;t need to know about a product to sell it.”</p>
<p style="margin-bottom: 0in;">At another position, I found that a few fraudulent claims by a contractor caused a company to fork over three quarters of a million dollars for custom software when a fifteen thousand dollar piece of hardware would have an enabled an already existing piece of commercial software to do the job.  With a more accurate accountability of the data, I might add.</p>
<p style="margin-bottom: 0in;">In fact, the whole program was completely mismanaged, to the detriment of the company, not the contractor. In fact, he was ready for the next program as he had one of his engineers hired in to head up  that project.   An engineer who didn&#8217;t have the slightest idea about our system, much less its theory.  Thankfully, we got him transferred out of there and back to design where he belonged.  The contractor was kicked out of the company.</p>
<p style="margin-bottom: 0in;">These are straight-forward examples of bad faith. The following are a little harder to classify.</p>
<p style="margin-bottom: 0in;">Beware the ulterior motive, especially if the new system you are proposing will impose on someone&#8217;s fiefdom.</p>
<p style="margin-bottom: 0in;">Data analysis for the existing program consisted of placing a request with the a data analysis group and waiting up to 3 days for results.  The system proposed (and later deployed) would give each and every engineer access to an analysis application that they could use to inspect the data one and a half hours after a particular test cycle was completed.  A little training and they were ready to go.</p>
<p style="margin-bottom: 0in;">Countless hours were spent in useless meetings defending the system.    Everybody shut up when the system came up on day one and stayed up through months of testing.</p>
<p style="margin-bottom: 0in;">This test/record/analysis cycle fits perfectly into the Laboratory Information Management Systems (LIMS) cycle of genomics research.   A successful LIMS implementation in one lab aroused the ire of yet another lab attempting to develop their own solution.   Let&#8217;s just say a lot of bad faith erupted.</p>
<p style="margin-bottom: 0in;">The real loser in the above examples is the company.  Money is wasted and talented people go elsewhere.</p>
<p style="margin-bottom: 0in;">Biotechnology is a hot commodity right now. Stimulus funding bringing fresh capital to many projects.   Companies are leveraging existing corporate products by repackaging them as biotech ready.</p>
<p style="margin-bottom: 0in;">National Instruments LabView is one of these. I used it a lot in engineering. Now it&#8217;s a big player in the  lab, incorporating interfaces for research lab instrumentation.</p>
<p style="margin-bottom: 0in;">What is a LIMS (Laboratory Information Management System)?  Is it an inventory management system? Is it a data pipeline?  Can one size fit all?</p>
<p style="margin-bottom: 0in;">Some companies have taken existing Inventory Management Systems and relabeled them as a Laboratory Information Management Systems. (At least the acronym fits.)  Most of these systems don&#8217;t distinguish between research and manufacturing environments.  They also don&#8217;t support basic validation of the LIMS application for its intended purpose. No wonder some 80% of LIMS users are dissatisfied.</p>
<p style="margin-bottom: 0in;">At a recent conference I talked with researchers from various pharmaceutical companies and they were thoroughly dissatisfied with their LIMS systems.  One scientist stated that they had a problem with their LIMS.  When they went to report the problem, they found the company was no longer in business.</p>
<p style="margin-bottom: 0in;">The latest IT (Information Technology) trends – SaaS, Cloud computing – may work in a business environment , but they won&#8217;t translate well to a pharmaceutical research area where they want everything safe behind the firewall.</p>
<p style="margin-bottom: 0in;">There are many, many factors that go into developing biotechnology applications.  Getting the right people, controlling the political environment, finding or developing the right software – it&#8217;s a jungle out there.</p>
<p style="margin-bottom: 0in;">Keep to Good Faith and please be careful.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
]]></content:encoded>
			<wfw:commentRss>http://blog.lifeformulae.com/2009/11/keep-to-good-faith/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Women In Technology</title>
		<link>http://blog.lifeformulae.com/2009/09/women-in-technology/</link>
		<comments>http://blog.lifeformulae.com/2009/09/women-in-technology/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 17:29:35 +0000</pubDate>
		<dc:creator>Pam</dc:creator>
		
		<category><![CDATA[Bioinformatics]]></category>

		<category><![CDATA[engineering]]></category>

		<category><![CDATA[life sciences]]></category>

		<category><![CDATA[next gen sequencing]]></category>

		<category><![CDATA[pipeline]]></category>

		<category><![CDATA[technology]]></category>

		<category><![CDATA[women]]></category>

		<guid isPermaLink="false">http://blog.lifeformulae.com/?p=137</guid>
		<description><![CDATA[ Today, one in ten engineers is a woman – http://www.dol.gov/wb/factsheets/hitech02.htm  In avionics, it&#8217;s fewer than that.
This is really a shame, because I find that women are extremely well suited for jobs in high tech careers.
Here&#8217;s a short list of why I think this is true along with explanations as to why I think [...]]]></description>
			<content:encoded><![CDATA[<p><img src="file:///tmp/moz-screenshot.png" alt="" /> Today, one in ten engineers is a woman – <a title="Women In Tech Statistics" href="http://www.dol.gov/wb/factsheets/hitech02.htm" target="_blank">http://www.dol.gov/wb/factsheets/hitech02.htm </a><a title="Women In Tech Statistics" href="http://www.dol.gov/wb/factsheets/hitech02.htm" target="_blank"> I</a>n avionics, it&#8217;s fewer than that.</p>
<p style="margin-bottom: 0in;">This is really a shame, because I find that women are extremely well suited for jobs in high tech careers.</p>
<p style="margin-bottom: 0in;">Here&#8217;s a short list of why I think this is true along with explanations as to why I think this is so.</p>
<ol>
<li> Women are more patient and determined</li>
<li>Women can juggle a lot of tasks simultaneously</li>
<li> Women can attend to small details and see the big picture at the same time</li>
<li> Women don&#8217;t get derailed by the small stuff</li>
<li> Women have a better support system.</li>
<li> Women are more sympathetic and understanding</li>
</ol>
<p style="margin-bottom: 0in;">I&#8217;ll stop at this group of six, although I could add a few more. They are not true of all women, but that&#8217;s probably because they haven&#8217;t had the experience.</p>
<p style="margin-bottom: 0in;">Just take a look at what current society expects of women and I think you&#8217;ll see why I think women are more patient and determined!  Case in point, I just got an email on “How to Create Perfect Eyes” through makeup application. Can you imagine a heterosexual male having the patience to take the time to apply all the goop we women have to put on our faces to be seen in public?  Also, remember how determined we were to walk in high heels so we could pretend we were grown-ups?</p>
<p style="margin-bottom: 0in;">Programming, system design and integration  requires patience and determination.  It&#8217;s a step-by-step process.  All the pieces have to work together to produce the correct outcome.    It&#8217;s no different that making a food dish from a recipe, although in most cases you&#8217;ll have only your experience to formulate the list of ingredients and right steps to finish the job.</p>
<p style="margin-bottom: 0in;">Think about getting the family ready for school/work in the morning. How many things are you trying to do at once?  Multi-tasking is standard operating procedure for most women, who can adapt to chaos in the blink of an eye.</p>
<p style="margin-bottom: 0in;">I know chaos. Other than being the oldest of nine children (5 girls, 4 boys), I drove a school bus for about 4 years while I was attending college.  I was given a long, country route that paid well and gave me enough hours to qualify for health insurance.  After I had driven the route for about six weeks, my supervisor asked me how i was doing and what did I think of the kids.  I said I thought I was doing okay and the kids were a little rowdy, but we got that under control.  Otherwise, I said the kids were a bright bunch and generally inquisitive about everything. (“Miss Pam, what&#8217;s a hickey? Our teacher says it&#8217;s something you get in dominoes.”)</p>
<p style="margin-bottom: 0in;">I found out later that these kids had been through 4 bus drivers in 4 weeks.  The last day of that school year the kids on the route gave me a plaque that said “World&#8217;s Best School Bus Driver”.    I was impressed, even though they misspelled my name.</p>
<p style="margin-bottom: 0in;">I&#8217;ve discovered that women, as a whole, performed better on mission critical tasks that required a lot on concentration and coordination of several activities that had to occur simultaneously.</p>
<p style="margin-bottom: 0in;">I couldn&#8217;t make a practice session for a particular field test, so the guys were going to fill in for me.  I heard that it took them an extra long time to get started, because they couldn&#8217;t figure out how to calibrate the instrumentation.  (They took the same training class that I did!)   Let&#8217;s just say that they were more than happy to let me take over the operation after they were introduced to all the steps involved in the pre and post fly-over operations.</p>
<p style="margin-bottom: 0in;" align="LEFT">Lots of tasks mean lots of details to keep track of with almost no time to double-check anything.   Women do this sort of thing all the time. Think about putting together a meal, folding clothes fresh from the dryer, putting on makeup.  You don&#8217;t really think about it, you just do it. Juggling home, family, and career by itself is one big accomplishment.</p>
<p style="margin-bottom: 0in;">We took two years to perfect all the pieces that made up the testing for the 727QF certification.  We worked out the weather station in Roswell, NM. We took the acoustic analyzer to Moses Lake, WA ( to work out the routine we needed for testing.  (Desert dust at 35 knots in no fun, but it can&#8217;t hold a candle to the volcanic ash from Mt. St. Helen&#8217;s that we ran into in Moses Lake.  They got about a foot of ash from that explosion and the ash was dumped at the airport.  Right where we were working!)</p>
<p style="margin-bottom: 0in;">The only missing piece was the data download from the data logger on the meteorological (met) plane.</p>
<p style="margin-bottom: 0in;">I sat under the wing of the small Cessna in the hot Texas August heat with a laptop atop my crossed legs, dodging fire ants, as I worked out the best method for our technician to save the data acquired after each run of the met plane.  I got it down to a few steps, ran through it with him, and we had the met data canned.</p>
<p style="margin-bottom: 0in;">All those pieces, met plane, weather station, acoustic analyzer and DAT (digital audio tape) data, were part of the big picture that was noise testing.  The other parts were the group support systems – data download, availability, and analysis,  There was so much data flowing through the pipeline, we held a meeting every morning to discuss who needed what, how much, how they wanted it, and what data could be taken to archive.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">The next-gen sequencing efforts are producing an astronomical amount of raw data.   Data that has to be stored, analyzed, and archived, creating one complex system.  It&#8217;s a massive task and one I can sympathize with.</p>
<p style="margin-bottom: 0in;" align="LEFT">Women don&#8217;t get derailed by the small stuff.</p>
<p style="margin-bottom: 0in;" align="LEFT">Maybe this wasn&#8217;t so small, and sometimes it hit close to home, but a lot of the things I did got satirized via a cartoon or paste-up on bulletin boards all over the plant on the 727QF program.</p>
<p style="margin-bottom: 0in;" align="LEFT">For instance, I developed this relational database model that would store measurement information for the two aircraft we were testing.</p>
<p style="margin-bottom: 0in;" align="LEFT">One of the technicians had started his own local database, but he had no understanding of relational data concepts. So he had thermocoupleA and thermocoupleB, where A represented on aircraft and B represented the other.    The thermocouple in question was the same on both aircraft, causing duplicate records for the same part info.</p>
<p style="margin-bottom: 0in;" align="LEFT">At a informal meeting we were having in the instrumentation lab, I said that his database design was stupid because we didn&#8217;t need more than one copy of the part&#8217;s basic attributes. The next day there was a flyer on the bulletin boards with a picture of the tech with a bubble over his head that said, “I stupid.”</p>
<p style="margin-bottom: 0in;" align="LEFT">There was some other verbiage, “Coming soon son of stupid. When relational is not enough.”</p>
<div id="attachment_145" class="wp-caption aligncenter" style="width: 510px"><a href="http://blog.lifeformulae.com/wp-content/uploads/2010/01/stupid.gif"><img class="size-full wp-image-145" title="Stupid Database Flyer" src="http://blog.lifeformulae.com/wp-content/uploads/2010/01/stupid.gif" alt="Stupid Database Flyer" width="500" height="524" /></a><p class="wp-caption-text">Stupid Database Flyer</p></div>
<p style="margin-bottom: 0in;" align="LEFT">Since the technician was a friend, this was funny.  There were others that weren&#8217;t so entertaining.</p>
<p style="margin-bottom: 0in;">I think women are more sympathetic and understanding of other people. The problem is to not be so understanding that you are taken for a ride.</p>
<p style="margin-bottom: 0in;">As a support system, we have probably the best weapon in the arsenal – we can cry.  Not in public, not on the job, but we can got somewhere private and cry.  Sometimes this is the only way to get it our of your system.</p>
<p style="margin-bottom: 0in;">I put a lot of dents in a lot of old hardware and ran miles and miles, but. sometimes. even that did not cover it.</p>
<p style="margin-bottom: 0in;">I will end by saying that I was pleasantly surprised at the number of women involved in the life sciences.   By this, I mean as directors, P.I.&#8217;s, or other positions of power.   However, men in the field still earn one-third more than the women.</p>
<p style="margin-bottom: 0in;">Maybe one day, women will wield as much power in all branches of technology, and their paychecks will actually reflect this status.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;"><span style="font-size: medium;"><strong>BioCamp 2009 at Rice University</strong></span></p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">Bill and I attended BioCamp 2009 at Rice University on Saturday, Sept. 12.  There were several presentations followed by lively question and answer sessions.</p>
<p style="margin-bottom: 0in;">The atttendance consisted of entrepreneurs, those seeking guidance on turning their ideas and research into viable products, consultants searching for marketable products, and members of the legal profession offering advice on intellectual property, patents, trademarks, and the like.</p>
<p style="margin-bottom: 0in;">
]]></content:encoded>
			<wfw:commentRss>http://blog.lifeformulae.com/2009/09/women-in-technology/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Science Communication</title>
		<link>http://blog.lifeformulae.com/2009/07/science-communication/</link>
		<comments>http://blog.lifeformulae.com/2009/07/science-communication/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 18:48:28 +0000</pubDate>
		<dc:creator>Pam</dc:creator>
		
		<category><![CDATA[Science Communicaton]]></category>

		<category><![CDATA[communication]]></category>

		<category><![CDATA[evolution]]></category>

		<category><![CDATA[Nature Biotechnology]]></category>

		<category><![CDATA[Salon]]></category>

		<category><![CDATA[science]]></category>

		<category><![CDATA[Teilhard de Chardin]]></category>

		<category><![CDATA[Texas Freedon Network]]></category>

		<guid isPermaLink="false">http://blog.lifeformulae.com/?p=126</guid>
		<description><![CDATA[A Commentary piece, &#8220;Science Communication Revisited&#8221;,  in the June, 2009, issue of Nature  Biotechnology discusses increasing public involvement in science issues and decision-making.
Concerns are raised about the state of science education and scientific literacy more generally.
If only the public were more knowledgeable about things scientific, the article states, they would see things through [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;">A Commentary piece, &#8220;Science Communication Revisited&#8221;,  in the June, 2009, issue of Nature  Biotechnology discusses increasing public involvement in science issues and decision-making.</p>
<p style="margin-bottom: 0in;">Concerns are raised about the state of science education and scientific literacy more generally.</p>
<p style="margin-bottom: 0in;">If only the public were more knowledgeable about things scientific, the article states, they would see things through the eyes of the expert.</p>
<p style="margin-bottom: 0in;"><span style="font-size: medium;"><span style="font-size: small;"><strong>Education</strong></span> </span></p>
<p style="margin-bottom: 0in;">I was fortunate enough to have attended private schools from elementary through high school.  Very few children are so lucky.</p>
<p style="margin-bottom: 0in;">My biology teacher was a Catholic nun.  She introduced us to Teilhard de Chardin (<a title="Teilhard de Chardin" href="http://en.wikipedia.org/wiki/Pierre_Teilhard_de_Chardin" target="_blank">http://en.wikipedia.org/wiki/Pierre_Teilhard_de_Chardin</a>).</p>
<p style="margin-bottom: 0in;">Teilhard was a Jesuit  priest who was trained as a paleontologist  and geologist and took part in the discovery of Peking Man.   He also studied botany and zoology. His book, The Phenomenon of Man,  talks about the unfolding of the material cosmos towards the Omega Point, a maximum level of consciousness, that is pulling all creation towards it. Evolution, according to Teilhard, was the process of matter becoming aware of itself.</p>
<p style="margin-bottom: 0in;">Therefore, I was able to receive a fairly sound exposure to evolution.   On the other hand, the chapters on male and female biology and the reproductive process was ripped out of my text book.</p>
<p style="margin-bottom: 0in;">(I know, because we found an unaltered book and read that forbidden text.)</p>
<p style="margin-bottom: 0in;">At any rate, I grew up in an agricultural environment and knew what it was all about.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">If you&#8217;re interested in the state of scientific education or education in public schools in Texas, I recommend the Texas Freedom Network (<a title="Texas Freedom Netword" href="http://txfree.convio.net/site/PageServer " target="_blank">http://txfree.convio.net/site/PageServer </a>).</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;"><span style="font-size: small;"><strong>Experts</strong></span></p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">Concerning experts, I remember my section chief telling me, &#8220;You have to forgive Bryan, he still believes in experts.&#8221; Brian was our lead engineer.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">As far as experts go, you have to be able to separate the good from the bad.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">I recommend this article, <strong>Crap Detection 101</strong> (<a title="Crap Detection 101" href="http://www.sfgate.com/cgi-bin/blogs/rheingold/detail?entry_id=42805" target="_blank">http://www.sfgate.com/cgi-bin/blogs/rheingold/detail?entry_id=42805</a>) and the <strong>CRAP Test</strong> (<a title="The CRAP Test" href="http://www.workliteracy.com/the-crap-test" target="_blank">http://www.workliteracy.com/the-crap-test</a>).</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;"><span style="font-size: small;">The CRAP test is a way to evaluate an internet source based on the following criteria: Currency, Reliability, Authority and Purpose/Point of View. </span></p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">The article and test&#8217;s main focus is the internet &#8212; how to tell real from bogus.  It&#8217;s not too hard to extrapolate the points they make to everyday life.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;"><strong>Scientific Literacy</strong></p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">Science and technology are changing so rapidly, that many people have simply given up on trying to keep up.  Their scientific literacy consists of newspaper articles or blurbs on the TV news.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">A lot of what is presented as science on network television is implausible (not to mention the technology used on these shows).</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">I think to really succeed, real scientists must pay attention to what is presented  to the general public and critique it through publications, such as letters to the editor, blogs, appearances, etc.  as much as possible.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">Scientists should also by of an open mind as to the intelligence of your audience.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">We have way too many people with 200 point IQ levels  digging ditches in this country.   We spend an inordinate amount of funds and interest on educating special children.  We should be spending just as much time and funds (if not more) identifying and encouraging the geniuses among us who find education boring  and quickly loose interest.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">The interest in science is out there, but scientists must take an interest in how what passs for science is disseminated, validate or invalidate that science, identify the appropriate target audience, and address that audience level to really open up the forum on true scientific communication.</p>
<p style="margin-bottom: 0in;">Salon, an e-zine, has a really good article. Why America is flunking science (<a title="Why America is flunking science" href="http://www.salon.com/env/feature/2009/07/13/science_illiteracy/?source=newsletter" target="_blank">http://www.salon.com/env/feature/2009/07/13/science_illiteracy/?source=newsletter</a>)  that is worth the read.</p>
<p style="margin-bottom: 0in;">Here&#8217;s another link where the author lists current &#8220;myths&#8221; surrounding scientists engaging with the media.</p>
<p style="margin-bottom: 0in;"><a title="When Discussing Scientists" href="http://scienceblogs.com/christinaslisrant/2009/07/when_discussing_scientists_eng.php" target="_blank">http://scienceblogs.com/christinaslisrant/2009/07/when_discussing_scientists_eng.php</a></p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
]]></content:encoded>
			<wfw:commentRss>http://blog.lifeformulae.com/2009/07/science-communication/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
