<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ideonexus.com &#187; Geeking Out</title>
	<atom:link href="http://ideonexus.com/category/geeking-out/feed/" rel="self" type="application/rss+xml" />
	<link>http://ideonexus.com</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 00:24:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Adventures in Personal Genomics</title>
		<link>http://ideonexus.com/2012/04/16/adventures-in-personal-genomics/</link>
		<comments>http://ideonexus.com/2012/04/16/adventures-in-personal-genomics/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 05:00:06 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=10150</guid>
		<description><![CDATA[Jump To: Introduction Closed-Source Genetics Open-Source Genetics Going Public With My Genome Better Living Through Personal Genomics DIY Genomic Sequencing for Programmers My Personal Genomic Results Further Reading Single Nucleotide Polymorphism (SNP) Introduction It&#8217;s been over a year since I signed up with 23andMe and several months now since I downloaded my raw genomic data [...]]]></description>
			<content:encoded><![CDATA[<p><b>Jump To:</b><br />
<a href="http://ideonexus.com/2012/04/16/adventures-in-personal-genomics/#Introduction">Introduction</a><br />
<a href="http://ideonexus.com/2012/04/16/adventures-in-personal-genomics/#ClosedSource">Closed-Source Genetics</a><br />
<a href="http://ideonexus.com/2012/04/16/adventures-in-personal-genomics/#OpenSource">Open-Source Genetics</a><br />
<a href="http://ideonexus.com/2012/04/16/adventures-in-personal-genomics/#GoingPublic">Going Public With My Genome</a><br />
<a href="http://ideonexus.com/2012/04/16/adventures-in-personal-genomics/#BetterLiving">Better Living Through Personal Genomics</a><br />
<a href="http://ideonexus.com/2012/04/16/adventures-in-personal-genomics/#Programmers">DIY Genomic Sequencing for Programmers</a><br />
<a href="http://ideonexus.com/2012/04/16/adventures-in-personal-genomics/#PersonalGenomicResults">My Personal Genomic Results</a><br />
<a href="http://ideonexus.com/2012/04/16/adventures-in-personal-genomics/#FurtherReading">Further Reading</a><br />
<br/><br/><br />
<center></p>
<div align="center" style="background-color:#ffffff;width:416px;height:521px;">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/snp.png" border="0" width="416" height="521" alt="Single Nucleotide Polymorphism (SNP)">
</div>
<p><b>Single Nucleotide Polymorphism (SNP)</b><br />
</center><br />
<a name="Introduction"></a><br />
<h2>Introduction</h2>
<p>It&#8217;s been over a year since I signed up with 23andMe and several months now since I downloaded my raw genomic data from them and started seeing what I could learn from it on my own. Although very few services out there will fully sequence your personal genome, by focusing on sequencing an individual&#8217;s <a href="http://en.wikipedia.org/wiki/Single-nucleotide_polymorphism">Single Nucleotide Polymorphisms (SNPs)</a>, pronounced &#8220;Snips&#8221; for short, which are the <em>variables</em> between human genomes, we can focus on what&#8217;s of interest in our personal genomic data and get this data relatively cheaply. By comparing the differences in our genes, our <a href="http://en.wikipedia.org/wiki/Genotype">genotypes</a>, my wife and I could learn about how they differently express themselves in our lives, our <a href="http://en.wikipedia.org/wiki/Phenotype">phenotypes</a>, to gain insights about our health risks as well as interesting traits about ourselves that may explain our behaviors and experiences throughout life.<br />
<span id="more-10150"></span><br />
<a name="ClosedSource"></a><br />
<h2>Closed-Source Genetics</h2>
<p>For $1,100 <a href="http://www.decodeme.com/">deCODEme</a> will &#8220;Calculate your genetic risk for 47 conditions and traits,&#8221; but not include any ancestry analysis. Alternatively, <a href="http://www.navigenics.com/">Navigenics</a> offers genome scans for <a href="http://www.wired.com/wiredscience/2009/01/navigenics-lame-attempt-at-cut-price-genetics/">$2,750</a> according to a 2009 <em>Wired</em> article (they don&#8217;t post prices online themselves), and <a href="http://www.knome.com">Knome</a> offers total genome sequencing for $3,750.</p>
<p>So at $207 test + year-subscription deal <a href="https://www.23andme.com">23andMe</a> has far and away the best deal for getting your personal genome sequenced. Although 23andMe doesn&#8217;t fully sequence your genome, it does sequence 960,520 SNPs and you get to download the whole thing to keep and take with you&#8211;<b>which is crucially important</b> (as I will get to in the <em>open-source</em> part further down).</p>
<h3>The Good Stuff</h3>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/traits.jpg" border="0" width="540" height="308" alt="My Traits"><br />
<b>My Traits</b>
</div>
<p>The best thing about 23andMe is the interface. They take your results and break them down into your disease risks, drug responses, and various traits. Right off the bat it impresses me for correctly identifying my phenotype as expressing brown eyes (<a href="http://snpedia.com/index.php/Rs12913832">rs12913832(A;G)</a>), curly hair (what hasn&#8217;t fallen out (<a href="http://snpedia.com/index.php/Rs17646946">rs17646946(G;G)</a>)), lactose tolerance (<a href="http://snpedia.com/index.php/Lactose_intolerance">rs4988235(A;G)</a>), and a tendency to smoke like a chimney if I smoked (which I did at a pack or more a day for 10 years (<a href="http://snpedia.com/index.php/Rs1051730">rs1051730(A;G)</a>)).</p>
<p>But it&#8217;s the stuff you don&#8217;t know about yourself that makes it worth it. I learned that I cannot perceive bitter tastes (<a href="http://snpedia.com/index.php/Rs713598">rs713598(C,C)</a>), which was interesting, while my wife&#8217;s apparent ability to taste bitter could explain some of our differing culinary preferences (although we couldn’t think of anything). Then there was the norovirus resistance (<a href="http://snpedia.com/index.php/Rs601338">rs601338(A;A)</a>), which could explain why I usually get off easy when a stomach flu goes around. </p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/aact3.png" border="0" width="444" height="330" alt="ACTN3"><br />
<b>ACTN3</b>
</div>
<p>But most enlightening was finding I lack any copies of alpha-actinin-2 (ACTN3) in my fast-twitch muscle fiber (<a href="http://snpedia.com/index.php/Rs1815739">rs1815739(T;T)</a>), meaning I am a terrible sprinter and throughout my public school years I was indeed consistently a poor-performer at short-distance sprints. As my father, a runner of marathons now approaching his 70s, liked to say, &#8220;In the running world there are gazelles and there are plough horses. I am a plough horse.&#8221; Now I know that my inability to make a half-marathon in less than two hours is likely hereditary. At the same time, the TT genotype may confer some ability to make greater gains at strength training, which would explain my enjoyment of weight lifting.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/neanderthalDNA.jpg" border="0" width="431" height="205" alt="Neanderthal DNA"><br />
<b>Neanderthal DNA</b>
</div>
<p>23andMe also offers some fun stuff, like calculating how much Neanderthal DNA you have. I was proud to learn that I share 3.0% of my genes with our distant cousins, putting me in the 96th percentile, which I hope means that my ancestors made a bigger contribution to breeding them out of existence. </p>
<h3>The Neutral Stuff</h3>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/diseaserisk.jpg" border="0" width="550" height="254" alt="Disease Risk"><br />
<b>Disease Risk</b>
</div>
<p>According to the &#8220;Disease Risk&#8221; section of 23andMe, I&#8217;m 1.22 times more likely than the average person to develop Type II Diabetes. If this was Type I Diabetes, which is purely genetic, this result would mean something to me, but Type II is largely a matter of lifestyle. So what does it mean for me to have an elevated risk? The site says that the disease is only 26% heritable, meaning if I eat right and exercise, I should be fine&#8230; right? According to <a href="http://www.yourdiseaserisk.wustl.edu/hccpquiz.pl?lang=english&#038;func=start&#038;quiz=diabetes">this survey</a> my risk is extremely low and my <a href="http://www.nhlbisupport.com/bmi/">BMI</a> is borderline&#8211;but then BMI is useless for people who lift weights. Then there&#8217;s also the fact that, drilling down into the data, I find this &#8220;risk&#8221; is computed using 11 genetic markers, the red ones show increased risk, the green ones decreased risk:</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/diabetesmarkers.jpg" border="0" width="403" height="242" alt="Diabetes Markers"><br />
<b>Diabetes Markers</b>
</div>
<p>I&#8217;m ambivalent about the usefulness of this data. It&#8217;s really difficult to determine how concerned or unconcerned I should be or even how seriously I should take this information. Apparently I&#8217;m also at risk for a greater tendency to overeat on average if I were an &#8220;<a href="http://www.ncbi.nlm.nih.gov/sites/entrez?cmd=Search&#038;db=pubmed&#038;term=19782709">Old Order Amish woman</a>.&#8221;</p>
<p>But these are less criticisms of 23andMe and more problems with the whole of personal genomics in general. The research is still coming in and will continue coming in for decades, maybe even centuries. So it&#8217;s important to not just accept the initial third-party extrapolations from your genetic data, but to check in on it from time to time and learn what new developments have come up.</p>
<h3>The Bad Stuff</h3>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/parkinsonsadvertisement.jpg" border="0" width="550" height="281" alt="23andMe Parkinsons Disease Campaign"><br />
<b>23andMe Parkinsons Disease Campaign</b>
</div>
<p>The one complaint I have about 23andMe&#8217;s services is the monthly subscription fee. Paying even $5.00 a month is unacceptable, even for a great service, when it is accompanied with constant pressure to take research surveys to help the company determine the purpose of even more genetic markers. 23andMe appears to have the research to extrapolate the phenotypic expression of some genotypes, like my having curly hair, from just these surveys that no other genotyping service can offer. The site even features an advertisement with Muhammed Ali that they are using the surveys to <a href="https://www.23andme.com/pd/">hone in on the markers for Parkinson’s disease</a>.</p>
<p>To be clear: I don&#8217;t mind the surveys and I don&#8217;t mind the subscription fee. I mind <em>the combination of the two</em>. I mind paying a company for access to their research while simultaneously contributing to their research to give them a proprietary edge over the competition. If 23andMe were a free service where you had to take one survey a month to maintain your access, I would think it the greatest thing in the world. The company has tremendous potential to harness information from its user community in the name of Citizen Science and reap fantastic profits from that data, but I&#8217;m not going to pay them to collect my data and then let them go off to make even more money from it.</p>
<p>Make access to the site conditional on buying a gene test from them and taking monthly surveys and I think 23andMe could be a wonderful thing for society.</p>
<p><a name="OpenSource"></a><br />
<h2>Open-Source Genetics</h2>
<p>Because 23andMe lets you download your results, you are free to take them with you to other online services or even conduct your own research. That&#8217;s awesome and a bit daunting at the same time. Looking at a spreadsheet with nearly one-million SNPs on it doesn&#8217;t seem like the best place to start, and plugging SNPs Reference Cluster IDs (rs#) into google at random will only confuse you (despite the fact that you will get results from lots of databases). Probably the best source for randomly plugging in rs#&#8217;s is the <a href="http://www.ncbi.nlm.nih.gov/SNP/">National Center for Biotechnology Information&#8217;s (NCBI) Single-Nucleotide Polymorphism (SNP) database</a>, where plugging in a random SNP will get you a wonderfully comprehensive block of information that looks something like this:</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/nihresult.png" border="0" width="550" height="642" alt="Partial View of NCBI Results "><br />
<b>Partial View of NCBI Results </b>
</div>
<p>Incomprehensible to me, and I bet if someone were to explain it I would find that data fairly boring and irrelevant too.</p>
<p>So we&#8217;ll leave it to the many many many experts out there to figure out what&#8217;s interesting and what&#8217;s important. Luckily, a great, fairly down-to-earth resource I found online is <a href="http://www.snpedia.com">SNPedia</a>, a human genetics wiki. I&#8217;ll read about a trait or risk factor in the wiki and then run a &#8220;find&#8221; in my spreadsheet, locate the marker, and make a note beside it about what it means&#8211;but there&#8217;s an even better way.</p>
<h3>Promethease</h3>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/promethease.png" border="0" width="550" height="275" alt="Promethease"><br />
<b>Promethease</b>
</div>
<p>SNPedia has a free software tool called <a href="http://bots.snpedia.com/index.php/Promethease">Promethease</a> that will take results from 23andMe or another service and run through your results to generate a custom report based on the information in the wiki. It takes about four hours to generate the report, but for a $2 Amazon payment, you can get the report in a few minutes (it took 412 seconds versus six hours for me running the report paid versus unpaid).</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/ryanvickych1.png" border="0" width="409" height="202" alt="Ryan and Vicky Chromosome 1 Comparison"><br />
<b>Ryan and Vicky Chromosome 1 Comparison</b>
</div>
<p>One of the cooler enhancements you get with the paid version of the report is the ability to compare your results to someone else. I ran my report with a comparison to Vicky&#8217;s results and got some experimental results back comparing our genomes. In the above image you can see our comparison for the first chromosome with light blue being a match (57%), dark blue being a halfmatch (37%), and the red being conflicts (6%).</p>
<p>A <a href="http://www.youtube.com/watch?v=R5W4KPNWgag">video tutorial</a> of the features in the paid Promethease 0.1.99 version report shows some really neat additional comparison reports that <b>did not</b> show up in my report, such as seeing the probabilities of genotypes showing up in Vicky and my offspring and a Venn diagram of our genetic relatedness. I was unable to find out why, but I did find other ways of looking at my results in the report, such as the following screenshot (not that I&#8217;ve figured out what this means yet):</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/promeathesereport.png" border="0" width="550" height="420" alt="Promethease Visualization"><br />
<b>Promethease Visualization</b>
</div>
<p>The Promethease report gave me some additional tidbits about myself that 23andMe either didn&#8217;t provide or didn&#8217;t present as important such as my SNP for being &#8220;optimistic and empathetic&#8221; (<a href="http://snpedia.com/index.php/Rs53576(G;G)">rs53576(G;G)</a>, increased memory performance (<a href="http://snpedia.com/index.php/Rs17070145(C;T)">rs17070145(C;T)</a>), and better odds of living to 100 (<a href="http://snpedia.com/index.php/Rs2542052(C;C)">rs2542052(C;C)</a>). The information suffers the same issues of probability and environment as the 23andMe presentation, but the exercise demonstrates that it&#8217;s interesting and important to look at your genomic information in different ways.</p>
<h3>DIY Genealogy with Personal Genomics</h3>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/ryanhaplogroupH1.png" border="0" width="502" height="206" alt="Ryan's Maternal Haplogroup (h1)"><br />
<b>Ryan&#8217;s Maternal Haplogroup (h1)</b>
</div>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/ryanpaternalhaplogroupJ2.png" border="0" width="508" height="210" alt="Ryan's Paternal Haplogroup (J2)"><br />
<b>Ryan&#8217;s Paternal Haplogroup (J2)</b>
</div>
<p>Five years ago, I paid $100 to get <a href="http://ideonexus.com/2007/07/09/my-genetic-ancestry/">my genealogical results</a> from the <a href="http://genographic.nationalgeographic.com">Genographic Project</a>, which took a DNA sample from my cheek and then showed me where in the course of human migrations my ancestors got off the caravan.</p>
<p>Using 23andMe&#8217;s Maternal and Paternal Line reading of our haplogroups, we can now save $100 and take our haplogroup information to <em>National Geographic</em> to find out for ourselves. Navigating to the <a href="http://genographic.nationalgeographic.com/genographic/lan/en/atlas.html">Atlas of Human Journey</a>, we can look up these haplogroups for more detailed information from their Genetic Markers list.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/genographicProject-maternal.png" border="0" width="550" height="424" alt="Genographic Project Maternal (H1)"><br />
<b>Genographic Project Maternal (H1)</b>
</div>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/genographicProject.png" border="0" width="550" height="433" alt="Genographic Project Paternal (J2)"><br />
<b>Genographic Project Paternal (J2)</b>
</div>
<p><a href="http://www.isogg.org/tree/">International Society of Genetic Genealogy</a> provides an <a href="http://www.isogg.org/tree/ISOGG_YDNATreeTrunk.html">index to Y-DNA SNPs</a> that I, unfortunately, could not figure out how to use to divine my haplogroups from my raw data. Maybe in the future I&#8217;ll figure out how to get this information without going through 23andMe.</p>
<p><a name="GoingPublic"></a><br />
<h2>Going Public with My Genome</h2>
<p>SNPedia has a <a href="http://bots.snpedia.com/index.php/Genomes">long list</a> of users who have shared their genomes with the online world that includes entrepreneur <a href="http://bots.snpedia.com/index.php/User:Esther_Dyson">Esther Dyson</a>, author <a href="http://bots.snpedia.com/index.php/User:Steven_Pinker">Steven Pinker</a>, biologist and entrepreneur <a href="http://bots.snpedia.com/index.php/User:Venter">Craig Venter</a>, and Nobel-prize winner <a href="http://bots.snpedia.com/index.php/User:Watson">James D. Watson</a>. <a href="http://www.personalgenomes.org/">PersonalGenomes.org</a> also gathers genomic data from users who freely donate their results for citizen science.</p>
<p>When 23andMe had their genome test sale last year and I promoted it, I got a lot of feedback from friends who said they would never submit to such a test because they were afraid of the Government or Corporations getting ahold of that data. The <a href="http://www.genome.gov/24519851">Genetic Information Nondiscrimination Act of 2008</a> bars health insurance companies from denying you coverage for a genetic predisposition and employers from discriminating against you for what&#8217;s in your genotype. There are legitimate debates over whether the law goes too far or not far enough, but the intention is clear and based on the uncertainty of what&#8217;s revealed in a personal genomics test, the threat appears small.</p>
<p>But that does not mean I approach posting my genetic results lightly. SNPedia has a cautionary rs#, <a href="http://bots.snpedia.com/index.php/Rs666">rs666</a>, a fictional SNP that represents the worst possible genetic trait you could possibly imagine. What would it mean if future research revealed to the world that you had this genotype? Such a revelation would not only impact you, but your children as well.</p>
<p>I am posting my genetic data, raw and in reports, online for others to view (see below), but it is not something I do lightly. I believe information should be free, and I believe in the ideal of a world where I shouldn&#8217;t need to fear sharing this data.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/ancestorpainting.jpg" border="0" width="550" height="536" alt="My 23andMe Ancestry Painting (100% European)"><br />
<b>My 23andMe Ancestry Painting (100% European)</b>
</div>
<h3>The Future of Healthcare with Personal Genomics</h3>
<p>Erza Klein predicts <a href="http://www.washingtonpost.com/blogs/ezra-klein/post/how-a-1000-test-could-destroy-the-health-insurance-industry/2012/03/08/gIQA33KVzR_blog.html?wprss=rss_ezra-klein">personal genome sequencing spells the death of Health Insurance Companies</a>:</p>
<blockquote><p>
As we sequence more genomes, mine more data, and conduct more studies, we’ll find a lot more of these connections. Eventually, genomic testing will be a powerful predictor of future illness. And it raises the potential that young people will get themselves tested and then purchase insurance based off the result. So those with a clean genomic result might go for a cheap catastrophic plan, while those with a high risk of developing pricey illnesses will opt for more comprehensive insurance.</p>
<p>The result would be, in insurance terms, an “adverse-selection death spiral,” as the healthy opt out of expensive insurance, the sick opt into it, and premiums spin out of control.</p>
<p>“For all of human history, humans have not had the readout of the software that makes them alive,” Larry Smarr, a member of the Complete Genomics scientific advisory board, told The New York Times. “Once you make the transition from a data poor to data rich environment, everything changes.”
</p></blockquote>
<p>The problem with this is, as I mentioned before, my results <em>don&#8217;t predict my likelihood of getting a disease</em>, they give me a better understanding of the odds to bet on, but if I have a 1.22-times  chance of Type II Diabetes, there&#8217;s no way to customize my insurance plan to these odds. It&#8217;s all or nothing. Not only that, but would this even be legal? Congress has made it illegal for my insurance company to drop me for having an increased chance of manifesting one disease, so giving me a discount for having a lower propensity for another disease discriminates against those who have a higher propensity for it.</p>
<p><a name="BetterLiving"></a><br />
<h2>Better Living Through Personal Genomics</h2>
<p>With states like New York and California having <a href="http://www.forbes.com/2008/04/17/genes-regulation-testing-biz-cx_mh_bl_0418genes.html">strict laws</a> prohibiting or severely restricting genome tests or <a href="http://www.nytimes.com/2010/03/20/business/20consumergenebar.html?_r=1&#038;partner=rss&#038;emc=rss">requiring the test results be explained by a doctor</a> and the <a href="http://www.wired.com/wiredscience/2011/02/american-medical-association-you-cant-look-at-your-genome-without-our-supervision/">American Medical Association (AMA) lobbying</a> the FDA to restrict access to our genomes, we have to wonder: What&#8217;s the harm?</p>
<p>My gut reaction is that doctors don&#8217;t like giving up their power. As I&#8217;ve discussed above, the data being provided only speaks to increased and decreased chances, and then we are talking about such tiny differences that it&#8217;s impossible to make an informed decision about what learned, especially in regards to cancelling a health insurance policy or forgoing doctor visits. Despite the best and worst-case prediction from both sides of the personal genomics debate, it would be foolish to do anything but work to improve your health after learning about your disease risks and genotypic traits.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/naturenurture.png" border="0" width="422" height="242" alt="Nature VS Nurture"><br />
<b>Nature VS Nurture</b>
</div>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/naturenurture02.png" border="0" width="440" height="97" alt="Nature/Nurture II">
</div>
<p>My SNP <a href="http://genewikiplus.org/wiki/Rs9834312">Rs9834312</a> expresses as (G,G), which should make me an inch taller than other expressions, but I was a scrawny, malnourished nerd-boy in grade school, which stunted my growth to 5&#8217;9&#8243; by the time I turned 20, about an <a href="http://en.wikipedia.org/wiki/Human_height#Average_height_around_the_world">inch shorter than the average American male</a>. My lifestyle as a youth stunted my growth, but I don&#8217;t think knowing I had the genes for growing tall would have further encouraged that lifestyle. In fact, I think just the opposite would be true. </p>
<p><em>Knowledge</em> of my genetic predispositions and <em>education</em> about how lifestyle choices impact phenotypic expression <em>encourage people to take better care of themselves</em>. The Navigenics website&#8217;s <a href="http://www.navigenics.com/">purpose statement</a> hits the nail on the head that this information has the capacity &#8220;&#8230;to empower you with personal, confidential genetic insights to help motivate you to improve your health.&#8221; Knowing about our disease risks and other genetic shortcomings should inspire us to work harder for better health to improve our quality of life and odds of going further through it.</p>
<p><a name="Programmers"></a><br />
<h2>Appendix: DIY Genomic Sequencing for Programmers</h2>
<p>This part of my article is technical, so feel free to skip it unless you are a computer programmer who wants to fill in the gaps in your genomic data.</p>
<h3>SNPedia</h3>
<p>SNPedia runs on MediaWiki, the same software running Wikipedia. Additionally, it runs <a href="http://semantic-mediawiki.org">Semantic mediawiki</a>, meaning you can run semantic queries against it using the <a href="">Ask Page</a>:</p>
<table border="1" align="center">
<tr>
<td><b>Query</b></td>
<td><b>Properties</b></td>
</tr>
<tr>
<td>[[Rsnum::Rs1234]]</td>
<td>
?Rsnum<br/><br />
?Allele1<br/><br />
?Allele2<br/><br />
?Genotype<br/><br />
?Category<br/><br />
?In gene<br/><br />
?On chromosome<br/><br />
?Chromosome position<br/><br />
?Magnitude<br/><br />
?Summary
</td>
</tr>
</table>
<p>Which will produce results like so:</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/semanticresults.png" border="0" width="550" height="185" alt="Semantic Results"><br />
<b>Semantic Results</b>
</div>
<p>Each of the nodes in this table has a &#8220;class&#8221; attribute with the property name, making it fairly easy to pluck the data from the table. You can then iterate through your results and query SNPedia with a query string like so, adjusting the RS# to match:</p>
<p><a href="http://www.snpedia.com/index.php/Special:Ask?title=Special%3AAsk&#038;q=%5B%5BRsnum%3A%3ARs1234%5D%5D&#038;po=%3FRsnum%0D%0A%3FAllele1%0D%0A%3FAllele2%0D%0A%3FGenotype%0D%0A%3FCategory%0D%0A%3FIn+gene%0D%0A%3FOn+chromosome%0D%0A%3FChromosome+position%0D%0A%3FMagnitude%0D%0A%3FSummary&#038;sort_num=&#038;order_num=ASC&#038;eq=yes&#038;p%5Bformat%5D=broadtable&#038;p%5Blimit%5D=&#038;p%5Bsort%5D=&#038;p%5Boffset%5D=&#038;p%5Bheaders%5D=show&#038;p%5Bmainlabel%5D=&#038;p%5Blink%5D=all&#038;p%5Bsearchlabel%5D=&#038;p%5Bintro%5D=&#038;p%5Boutro%5D=&#038;p%5Bdefault%5D=&#038;p%5Bclass%5D=sortable+wikitable+smwtable&#038;eq=yes">http://www.snpedia.com/index.php/Special:Ask?title=Special%3AAsk&#038;q=%5B%5BRsnum%3A%3A<b>Rs1234</b>%5D%5D<br/>&#038;po=%3FRsnum%0D%0A%3FAllele1%0D%0A%3FAllele2%0D%0A%3F<br/>Genotype%0D%0A%3FCategory%0D%0A%3FIn+gene%0D%0A%3F<br/>On+chromosome%0D%0A%3FChromosome+position%0D%0A%3F<br/>Magnitude%0D%0A%3FSummary&#038;sort_num=&#038;order_num=ASC<br/>&#038;eq=yes&#038;p%5Bformat%5D=broadtable&#038;p%5Blimit%5D=&#038;p%5B<br/>sort%5D=&#038;p%5Boffset%5D=&#038;p%5Bheaders%5D=show&#038;p%5B<br/>mainlabel%5D=&#038;p%5Blink%5D=all&#038;p%5Bsearchlabel%5D=&#038;p%5B<br/>intro%5D=&#038;p%5Boutro%5D=&#038;p%5Bdefault%5D=&#038;p%5B<br/>class%5D=sortable+wikitable+smwtable&#038;eq=yes</a></p>
<p>SNPedia also offer <a href="http://www.snpedia.com/index.php/Bulk">tips for getting bulk data</a>, <a href="http://www.snpedia.com/index.php/Special:ExportRDF/Rs1234">RDF Export</a> (which I could not get to provide useful data), and <a href="http://bots.snpedia.com/api.php">MediaWiki API</a>.</p>
<h3>dbSNP</h3>
<p>The NCBI also makes its data available for querying, but it&#8217;s more technical and complex to find useful information to align with your personal results. Using the list of <a href="http://www.ncbi.nlm.nih.gov/snp/">SNP Database Fields</a> and the <a href="http://www.ncbi.nlm.nih.gov/books/NBK25500/#chapter1.ESearch">Entrez ESearch Interface</a> for query strings, you can get <a href="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=snp&#038;id=53576&#038;version=2.0">document summaries</a> or <a href="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=snp&#038;id=53576&#038;retmode=xml">SNP Properties</a> in XML format.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/04/dbsnpdiagrampng.png" border="0" width="550" height="368" alt="dbSNP ER Diagram (Partial View)"><br />
<b>dbSNP ER Diagram (Partial View)</b>
</div>
<p>Most intriguing is the fact that you can <a href="https://cgsmd.isi.edu/dbsnpq/downloads.php">Dowload Entire dbSNP Database (179.81 GB)</a> (MySQL), or <a href="https://cgsmd.isi.edu/dbsnpq/">query the database directly</a> (see also <a href="ftp://ftp.ncbi.nih.gov/snp/database/b124/mssql/schema/erd_dbSNP.pdf">database diagrams (PDF)</a>).</p>
<p><a name="PersonalGenomicResults"></a><br />
<h2>My Personal Genomic Results</h2>
<p>You can <a href="http://www.ryansomma.com/genomics/Promethease_2012_04_07_genome_Ryan_Somma_Full_20111128074317.html">browse my Promethease report online here</a> and I&#8217;ve got an XLSX spreadsheet with both my 23andMe and Promethease data <a href="http://www.ryansomma.com/genomics/genome_Ryan_Somma_Full_20111128074317.xlsx">here to download</a>. Alternatively, you can download a tab-delimited <a href="http://www.ryansomma.com/genomics/genome_Ryan_Somma_Full_20111128074317.txt">copy of my 23andMe Results</a> or my <a href="http://www.ryansomma.com/genomics/Promethease_2012_04_07_genome_Ryan_Somma_Full_20111128074317_Tab.txt">Annotated Promethease results</a>.</p>
<p><a name="FurtherReading"></a><br />
<h2>Further Reading/Viewing</h2>
<p>BBC <a href="http://www.youtube.com/watch?v=toRIkRa1fYU">The Ghost in your Genes</a> documentary on epigenetics.</p>
<p><a href="http://munnecke.com/blog/?p=229">Esther Dyson Interview</a> about her decision to  Share her Genome.</p>
<p><em>Nature</em> article on the <a href="http://www.nature.com/news/2010/101215/full/468880a.html">Rise of Genome Bloggers</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2012/04/16/adventures-in-personal-genomics/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Star Trek Online and Avoiding the Grind</title>
		<link>http://ideonexus.com/2012/02/27/star-trek-online-and-avoiding-the-grind/</link>
		<comments>http://ideonexus.com/2012/02/27/star-trek-online-and-avoiding-the-grind/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 05:00:50 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=9382</guid>
		<description><![CDATA[&#8220;Time you enjoyed wasting was not wasted.&#8221; ~ John Lennon &#8220;Time is the fire in which we burn.&#8221; ~ Tolian Soran, Star Trek Generations The Dilemma We have a finite amount of time in this life, and we should be mindful of how we spend it. I&#8217;ve recently become highly cognizant of the fact that [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;<em>Time you enjoyed wasting was not wasted.</em>&#8221; ~ John Lennon</p>
<p>&#8220;<em>Time is the fire in which we burn.</em>&#8221; ~ Tolian Soran, <em>Star Trek Generations</em></p>
<h2>The Dilemma</h2>
<p>We have a finite amount of time in this life, and we should be mindful of how we spend it. I&#8217;ve recently become highly cognizant of the fact that the majority of games are simply <a href="http://en.wikipedia.org/wiki/Skinner_box">Skinner Boxes</a>, tricking players into pushing buttons in return for meaningless rewards. Truly challenging games like <a href="http://en.wikipedia.org/wiki/Portal_(video_game)">Portal</a> and <a href="http://en.wikipedia.org/wiki/SpaceChem">SpaceChem</a> keep you playing because the gameplay is its own reward, while Skinner Box games keep you performing repetitive tasks with virtual rewards. Other games, like <a href="http://en.wikipedia.org/wiki/Skyrim">Skyrim</a> or <a href="http://en.wikipedia.org/wiki/Final_Fantasy_VII">Final Fantasy VII</a>, keep you playing because the story and graphics are simply that engaging.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/starbase_original.jpg" border="0" width="550" height="413" alt="The Original Earth Starbase Was Just Okay"><br />
<b>The Original Earth Starbase Was Just Okay</b>
</div>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/starbase_new.jpg" border="0" width="550" height="309" alt="The Redesigned Earth Starbase Looks More Familiar"><br />
<b>The Redesigned Earth Starbase Looks More Familiar</b>
</div>
<p>For the past two years I have played <em>Star Trek Online</em> (STO) casually, probably investing maybe a hundred hours in the game, two weeks of my life out of 104. So the question arises: <em>Is STO time wasted?</em> The game was never challenging, but was it at least entertaining? I think this is a question we should be mindful of with any game in which we choose to invest our time to make sure we aren&#8217;t burning it.<br />
<span id="more-9382"></span></p>
<h2>The Star Trek Online Grind</h2>
<p>I love <em>Star Trek</em>. I mean I really love love love it. When <em>STO</em> came out, it was going to be my MMORPG, I wanted to fully immerse myself in it. I purchased a lifetime membership precisely so I wouldn&#8217;t feel pressured to play all the time, and I measured my engagement with the STO universe into the <a href="http://www.stowiki.org/List_of_missions">storyline missions</a>, avoiding <a href="http://startrekonline.wikia.com/wiki/Defend_the_Sirius_Sector_Block">defend sector space</a> and <a href="http://www.stowiki.org/List_of_missions#Exploration">exploration missions</a> which are vapid and repetitive.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/ideonexusMemoryAlpha.jpg" border="0" width="550" height="344" alt="Memory Alpha is the Science Hub of the Federation"><br />
<b>Memory Alpha is the Science Hub of the Federation, but &#8220;Science&#8221; really means &#8220;Crafting&#8221;</b>
</div>
<p>I <a href="http://ideonexus.com/2010/01/25/star-trek-online-explore-strange-new-worlds-seek-out-new-life-and-new-civilizations-and-kill-them-looking-for-science-in-star-trek-online-beta/">previously complained</a> about the game&#8217;s focus on combat while I prefer exploration and discovery, and learned from reading <em>World of Warcraft</em> forums that this problem is known as <em><a href="https://en.wikipedia.org/wiki/Grinding_(video_gaming)">the grind</a></em>. </p>
<p>Starship battles can be a grind at times. They are slow and ponderous, which is exactly what I was looking for in this game. I want every battle to feel like <em>The Wrath of Khan</em>, and <em>STO</em> does a great job with it. The problem is that there are <em>too many</em> starship battles and too little variation between them. I dreaded missions where the goal was to eliminate all enemies from around a planet, where you fly from battle to battle, phasers and torpedoes auto-firing at the same kinds of ships over and over again. I&#8217;d have preferred fewer, longer space battles where I would need to concentrate on exploiting an opponent&#8217;s failing shields or strategically deal with an enemy ship&#8217;s special abilities. <em>STO</em> space battles can be quite tactical at times, but they can also be repetitive at others.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/hologramattack.jpg" border="0" width="550" height="399" alt="My Character Using a Hologram Display to Set an Opponent on Fire."><br />
<b>My Character Using a Hologram Display to Set an Opponent on Fire. &#8220;Any sufficiently advanced technology is indistinguishable from magic.&#8221;  ~ Clarke&#8217;s Third Law</b>
</div>
<p>During my two years of playing, ground combat was a total chore. It was also slow and ponderous, with every phaser blast taking off just a tiny bit of an opponent&#8217;s shields or life. It got to the point where I would set my away team to fight for me while I read a book or surfed the web. Recently, however, <em>STO</em> has dramatically improved ground combat, making it much more face-paced and interesting. Ground combat is also much more tactical than space combat, which is nice. I enjoy having my engineers set up some mines and turrets and then leading enemies into an ambush; unfortunately, there are still missions where there is just <em>too much combat</em>.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/Guardian.jpg" border="0" width="550" height="344" alt="The Guardian Introduces One of My Favorite Episodes"><br />
<b>The Guardian Introduces One of My Favorite Episodes</b>
</div>
<p>Your typical STO mission goes like this: (1) Warp to system X to [investigate, protect, deliver] something. (2) Fly around the [planet, asteroid field] either blasting [badguy ships, badguy stations] or [scanning, repairing, sabotaging] [anomalies, bases, satellites] at four to six different locations. (3) Beam down to the [space station, planet, enemy base]. (4) Run around [blasting badguys, sabotaging stuff, scanning stuff] at four to six different locations. Repeat (2) through (4) as needed until the mission is completed and collect the reward. Deconstructing the action down to this makes it sound extremely tedious, but it depends on the path you take through the game.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/DeferiBorgInvasion.jpg" border="0" width="550" height="309" alt="A Borg Cube Haunts the Skies of the Deferi Homeworld"><br />
<b>A Borg Cube Haunts the Skies of the Deferi Homeworld</b>
</div>
<p>The average STO player takes <a href="http://forums.startrekonline.com/showthread.php?t=128870">50 &#8211; 90 hours</a> to peak out at the rank of Vice Admiral. As a casual player, I spread that out over two years. I&#8217;ve seen people on the forums get ridiculed for taking more than 100 hours to top-out in the game; after all, if you just focus on exploration missions, you can max out in just 40 hours! </p>
<p>The problem is that the exploration missions are also the most generic and boring. You don&#8217;t even have to pay much attention as your ship will fire its weapons automatically while you cruise lazy circles in space and your away team can take care of most bad guys while you watch <em>Big Bang Theory</em> episodes. Playing through the game like this is a complete waste of your life. So why bother?</p>
<h2>The Star Trek Online Odyssey</h2>
<p><em>STO</em> takes place in the universe Spock left when he failed in his mission to <a href="https://en.wikipedia.org/wiki/Romulus_(Star_Trek)#Romulans_in_Alternate_reality">save Romulus from its star going supernova</a> and got wormholed into the <em>Star Trek</em> reboot universe of the 2009 movie. The Romulan Empire is in chaos, the Klingons have declared war, the Gorn are back, and the Borg are invading. The Universe feels dark, intense, and dramatic, and there are some great storylines to play out filled with characters and references that <em>Star Trek</em> fans will appreciate and the technology is more advanced than anything seen in the shows.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/drydock.jpg" border="0" width="550" height="309" alt="Contitution and Excelsior Class Starships in Drydock"><br />
<b>Contitution and Excelsior Class Starships in Drydock</b>
</div>
<p>Also working in <em>STO&#8217;s</em> favor is that the game is <em>beautiful</em>, and keeps getting more dazzling. I knock the exploration missions, but they make nice filler for discovering fascinating-looking planets. The game is also very large; however, it doesn&#8217;t feel as big as it should because of the way the game designers compartmentalized environments (deep space doesn&#8217;t flow into planet space, planet space doesn&#8217;t flow into ground locations), and you can tour the entire universe in under an hour. With each promotion through the ranks, you get to explore deeper in space with each new area introduced through narration by Leonard Nimoy.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/sto_aliens02.jpg" border="0" width="550" height="550" alt="Ferengi, Gorn, Romulans, Undine, Klingons, and Orions, Oh My!"><br />
<b>Ferengi, Gorn, Romulans, Undine, Klingons, and Orions, Oh My!</b>
</div>
<p>Undine, Remans, Romulans, Vulcans, Klingons, Orions, Gorn, Cardasians, Mirror Universe Federation, Hyugen, Devidians, Ferengi, Jem&#8217;Hadar, and other aliens infuse <em>STO</em> with variety as well. Just as each of these aliens has their own cultures and strategies in the show, they present different challenges in the game as well. What makes the storyline missions great is meeting recurring villains who get you more invested in the action.</p>
<p>The <em>STO</em> developers have also demonstrated what&#8217;s really possible in game with their <a href="http://startrekonline.com/feature_episodes">feature episodes</a>. There are large cities heavily populated with aliens and skies filled with ships , space stations the size of <a href="http://en.memory-alpha.org/wiki/V%27Ger">V&#8217;ger</a> to fly through, giant monsters, and engaging plots in these extended storylines. With new content always on the way, I really do look forward to each new episode.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/avatars.jpg" border="0" width="550" height="397" alt="Human-Players Push the Boundaries of Interesting Avatars"><br />
<b>Human-Players Push the Boundaries of Interesting Avatars</b>
</div>
<p>Most importantly however, is the importance of remembering that <em>STO</em> is an <a href="https://en.wikipedia.org/wiki/Mmorpg">MMORPG</a>. The twin M&#8217;s in that acronym are the deciding factor in whether the game is a hit or miss, and the <em>Star Trek</em> franchise has the greatest fans on Earth. I loved participating in chats during the game&#8217;s first few months, reminiscing about favorite episodes, trading treklore and tips on good in-game episodes and events. There are also Player VS Player (PvP) sessions, which are like team deathmatches with starships and phasers, and the Player VS Environment’s (PvE), which are missions requiring teamwork to complete.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/assimilated_gorn.jpg" border="0" width="550" height="504" alt="Assimilated Gorn is a Concept so Cool only a fan could come up with it"><br />
<b>Assimilated Gorn is a Concept so Cool only a fan could come up with it</b>
</div>
<p>But <em>STO</em> has taken the &#8220;MM&#8221; part of the equation even further with <a href="http://www.startrekonline.com/foundry">player-authored missions</a>, which is pure genius. The fans are designing missions that are more epic, faster paced, and more creative than anything else in the <em>STO</em> universe and that&#8217;s because their doing it out of <em>love</em>. The rewards for these missions are minor, but they are by far more fun than anything else in the game and are keeping me playing.</p>
<h2>Is STO Worth It?</h2>
<p>Since <em>STO</em> has gone <a href="http://www.startrekonline.com/f2p">Free To Play</a> (F2P), with all missions and content available to anyone who downloads it, that doesn&#8217;t mean it&#8217;s really <em>FREE</em>. There is still a sizable time investment required to play the game and we have to weigh that against other activities on which we could be spending this precious hourglass sand. My conclusion is that it is worth it <em>if you&#8217;re a fan and play casually</em>.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/borgifiedstarship02.jpg" border="0" width="550" height="309" alt="Vice Admirals Get Access to Borg Technologies to Trick Out their Ships"><br />
<b>Vice Admirals Get Access to Borg Technologies to Trick Out their Ships</b>
</div>
<p>The gamers who reached Vice Admiral in 40 hours fell prey to the Skinner Box. They behaved no better than rats pushing a button to get a reward, and you need to be aware of the animal propensity to fall into this trap if you play <em>STO</em>. I wasn&#8217;t fully cognizant of how in-game rewards were tainting my perceptions until I reached Vice Admiral, where experience points are capped and you can no longer increase your skill levels.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/sto_my_ships.jpg" border="0" width="550" height="541" alt="The ships I earned in STO Waygate, Asimov, Beagle, Sagan, Odyssey, Feynman, and the Enlightenment."><br />
<b>The ships I earned in <em>STO</em> Waygate, Asimov, Beagle, Sagan, Odyssey, Feynman, and the Enlightenment.</b>
</div>
<p>As a reward to myself for maxing-out my character, I splurged on the $25 to purchase a <a href="http://startrekonline.com/ships/galaxy_dreadnought">Galaxy Dreadnought Starship</a>. My thought was that I would go sightseeing and just appreciate the game play. I visited the planet Vulcan and picked up a detective-style mission to find out who threatened the life of a visiting Romulan dignitary. I ran around the planet, picking up clues for awhile, and realized, <em>Wow, this is really lame.</em></p>
<p>Without the rewards, the mission seemed quite silly. Sure, I was learning interesting stuff about Vulcan and Romulan history, but I was having to run back and forth and all around to pick up each tidbit of trivia. I realized that, without the Skinner Box rewards, I simply didn&#8217;t have the patience for most missions and would abandon them once they got tedious.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2012/02/ships.jpg" border="0" width="550" height="309" alt="Player Ships Hanging Out at DS9 Look Like a Formidable Fleet"><br />
<b>Player Ships Hanging Out at DS9 Look Like a Formidable Fleet</b>
</div>
<p>I <em>could</em> jump back in the Skinner Box, I&#8217;ve got six character slots left on my account, but that holds no appeal. I could also try playing through the game as a member of the Klingon Empire, but the idea of playing one of those backwards-evolving meatheads is antithesis to what appeals to me about <em>Star Trek</em>. </p>
<p>To maintain my enjoyment of the game, I&#8217;ve decided to focus on playing it in <em>moderation</em>, which is how I mostly played it through the last two years. It&#8217;s like getting a <em>Next Generation</em> box set and only watching a few episodes a week. It&#8217;s F2P, so there&#8217;s no urgency, just play an episode a week, do a little exploring, adventure with some other players, or try out a fan-fiction episode for some real novelty. It&#8217;s a wide, expansive virtual world, and it&#8217;s best to savor and appreciate what it gets right.</p>
<h2>Further Reading</h2>
<p><a href="http://www.stowiki.org/List_of_missions">List of all STO Mission</a>. Stick to &#8220;storyline&#8221; and &#8220;episode&#8221; content. These missions take longer and give you less rewards for your time, but they are also the most engaging and interesting. Also a <a href="http://www.stoacademy.com/datacore/missions.php">filterable list of missions here</a>.</p>
<p>My <a href="http://www.flickr.com/photos/ideonexus/collections/72157629393821429/">flickr collection</a> of my adventures in <em>STO</em>.</p>
<p>Here&#8217;s my <a href="http://ideonexus.com/2010/01/25/star-trek-online-explore-strange-new-worlds-seek-out-new-life-and-new-civilizations-and-kill-them-looking-for-science-in-star-trek-online-beta/">original post</a> on <em>STO</em>, complaining about the lack of science in the game. There still isn&#8217;t much science in the game.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2012/02/27/star-trek-online-and-avoiding-the-grind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Science Fiction Versus Fantasy &#8211; Uncensored</title>
		<link>http://ideonexus.com/2011/09/26/9041/</link>
		<comments>http://ideonexus.com/2011/09/26/9041/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 05:00:40 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Enlightenment Warrior]]></category>
		<category><![CDATA[Geeking Out]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=9041</guid>
		<description><![CDATA[This is the uncensored version of my Science Fiction VS Fantasy piece I wrote for the Science Creative Quarterly several years ago. I&#8217;ve also written much more extensively on this topic in the past. This is the abbreviated version with 10% more snark: I Fanboy: Hey gang! Did you read The Sword of Shanara? The [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is the uncensored version of my <a href="http://www.scq.ubc.ca/science-fiction-vs-fantasy-an-opinionated-guide/">Science Fiction VS Fantasy</a> piece I wrote for the Science Creative Quarterly several years ago. I&#8217;ve also written <a href="http://ideonexus.com/2007/08/20/science-fiction-vs-fantasy/">much more extensively on this topic in the past</a>. This is the abbreviated version with 10% more snark:</em></p>
<p>
<center><br />
<H2>I</H2><br />
</center></p>
<p>
<b>Fanboy</b>: Hey gang! Did you read <i>The Sword of Shanara</i>? The characters traveled hundreds of miles described in excruciating detail for hundreds of pages, until they reached the ultimate battle between good and evil! Cool huh?</p>
<p>
<b>Scientist:</b> <i>Whatever.</i> The characters in <i>Red Planet</i> traveled 48 million miles to Mars, while those in <i>2001</i> traveled 369 million miles to Jupiter. Characters in Asimov&#8217;s <i>Foundation</i> books travel millions of light-years all over the Milky Way galaxy in routine manner. Isn&#8217;t it amazing what people can accomplish when they don&#8217;t have to walk everywhere? Thank a scientist for your planes, trains, automobiles, and spaceflight whydontcha.</p>
<p>
<b>Fanboy</b>: Yeah, but did you see in <i>The Lord of the Rings</i> when Gandalf fought the Balrog all the way down a really deep hole and then all the way back up to the top of a mountain peak!?!?</p>
<p>
<b>Scientist:</b> <i>Big whoop.</i> The adventurers in <i>The Core</i> traveled to the very center of the Earth, fighting technological, natural, and human hazards all the way down and all the way back up to the Earth&#8217;s crust again. Characters in <i>Fantastic Voyage</i> and <i>Innerspace</i> fought their way all through the human body in microscopic form. </p>
<p>
<b>Fanboy</b>: Ooookay&#8230; But did you see all those maps having to do with the <i>Wheel of Time</i> books? It&#8217;s a huge continent! Pretty epic, huh?<br />
<span id="more-9041"></span></p>
<p>
<b>Scientist:</b> <i>Thpppt. Not.</i> The film <i>Contact</i> opens with a satellite shot of Earth and pulls away, out of the solar system, out of the galaxy, and out to a view of many galaxies. The film <i>Men in Black</i> pulls out past many galaxies to many universes. Maybe you can find some flat-Earthers to impress with you dinky little maps.</p>
<p><table border="0" cellpadding="10" cellspacing="0" width="0" align="center">
<tr>
<td align="center" nowrap>
<center><br />
<img src="http://ideonexus.com/wp-content/uploads/2011/09/sffantasyscopes.jpg" width="400" height="270" border="0" alt="Fantasy and SF Scopes"><br />
</center><br />
<b>Fantasy and SF Scopes</b>
</td>
</tr>
</table>
<p>
<b>Fanboy</b>: The Dragon Riders in <i>Eragon</i> spent thousands of years protecting and guarding and stuff. <b><i>Thousands of years!!!</i></b> Isn&#8217;t that amazing?</p>
<p>
<b>Scientist:</b> <i>No, that&#8217;s &#8220;we todd did.&#8221; (Say that outloud until you get it.)</i> The film <i>A.I.</i> begins in our near future and then jumps 10,000 years ahead of that. And you know what? <b>Things changed</b>. Technology advanced incomprehensibly, society changed and its inhabitants evolved. Compare this to a bunch of dumbass Dragon Riders who never updated their swords to guns or dragons to fighter jets despite having <b>millenia</b> to do so? Dude, that&#8217;s Weak.</p>
<p>
<b>Fanboy</b>: The Balrog, Godzilla, and Dragons are really big. That&#8217;s got to count for something. Right?</p>
<p>
<b>Scientist:</b> <i>Whaddya want, a cookie?</i> V&#8217;ger, from <i>Star Trek, The Motion Picture</i>, is so large that much of the movie is spent showing the Enterprise traveling through it. The living ocean in <i>Solaris</i> covers an entire planet. V&#8217;ger wants to find god. Solaris is so advanced we cannot even decipher it&#8217;s motivations. Colossal Science Ficiton beings,  have much bigger aspirations than growling and smashing things.</p>
<p>
<b>Fanboy</b>: There were thousands of monsters and people on the battlefields of <i>Lord of the Rings</i>. When Sauron is destroyed a volcano erupts and the earth swallows its legions of monsters. Now <b>that</b> was awesome! Am I right? I mean, am I right???</p>
<p>
<b>Scientist:</b> (<i>Rolling eyes and pantomiming masturbation.</i>) <i>War of the Worlds</i> reduced entire cities to rubble. <i>Star Wars</i> blew up entire planets. <i>2010</i> transformed Jupiter into a star just to thaw out Europa for life to evolve there. Your &#8220;epic&#8221; armies are kind of cute though.</p>
<p>
<b>Fanboy</b>: Okay. Okay. Okay. I got one. In <i>LOTR</i> Arwen Evenstar&#8217;s father warns her that, as an immortal, if she abandons her elfin people, her mortal lover will eventually die and she will be alone forever. <i>Forever!</i> Top that Science Fiction!</p>
<p>
<b>Scientist:</b> <i>Bite me fanboy.</i>  In Science Fiction, <i>all</i> of the immortal elves would be cursed, as eventually the Universe would dissipate to an entropic state of absolute zero, leaving them frozen in total darkness forever, completely devoid of emotional, intellectual, or spiritual growth (Not too different from sitting through all 16-plus hours of the extended DVD version of <i>Lord of the Rings</i>). Sucks to be an elf.</p>
<p><p>
<center><br />
<H2>II</H2><br />
</center></p>
<p>
In <i>Star Trek</i> human beings travel through space in a type of flying saucer, secretly visiting primitive civilizations like the one we live in presently, never interfering with them so as not to violate the &#8220;Prime Directive.&#8221; <i>Star Trek</i> provides a powerfully positive vision of what the human race may become through scientific understanding, technological progress, and human ambition.</p>
<p>
<i>Conan, The Barbarian</i> is about a barbarian. He travels around a teensy-weensy percentage of planet Earth&#8217;s total landmass, chopping things with his sword, and seeking revenge against the man who killed his parents. <i>Conan</i> presents a glimpse into a single lifetime from ancient human history, and one we may aspire to if we abandon all technology, burn down all libraries, abolish all Universities, and stop wiping our butts.</p>
<p>
I love <i>Star Trek</i>. <i>Star Trek</i> inspires me to educate and improve myself. I know I can&#8217;t achieve in my lifetime what <i>Star Trek</i> presents, but I also know my children&#8217;s children&#8217;s children will one day make similarly fantastic accomplishments, so long as they remain as inspired as I am by Science Fiction&#8217;s vision.</p>
<p><table border="0" cellpadding="10" cellspacing="0" width="0" align="right">
<tr>
<td align="center" nowrap>
<center><br />
<img src="http://ideonexus.com/wp-content/uploads/2011/09/chosenone.jpg" width="200" height="286" border="0" alt="Typical Chosen One"><br />
</center><br />
<b>Typical<br />
&#8220;Chosen One&#8221;</b>
</td>
</tr>
</table>
<p>At the same time, <i>Conan</i>, while entertaining, doesn&#8217;t provide a practical model for inspiring present-day action. I like having a clean butt, and I want my children to have clean butts; therefore, <i>Conan</i> doesn&#8217;t hold much appeal as role-model. The <i>Lord of the Rings</i> films were entertaining, but we all know the reality is that Frodo would be missing lots of teeth, Gandalf would be a very stinky old man, and Aragorn would have a serious flea problem.</p>
<p>
Not that we could aspire to anything in fantasy stories even if we wanted to. That&#8217;s because fantasy stories are about &#8220;chosen ones,&#8221; be they kings, hobbits, or wizards. Only these elites, born into their castes, may save the world.</p>
<p>
It&#8217;s also really boring. Here&#8217;s every single &#8220;chosen one&#8221; story line:</p>
<p>
<b>Someguy:</b> I think he is the chosen one!</p>
<p>
<b>Choosen One:</b> But I&#8217;m just some doofy pud-wacker!</p>
<p>
<b>Everybody Else:</b> He is the chosen one!!!</p>
<p>
<b>The Grand Poo-Bah:</b> He has defeated the melodramatic personification of pure concentrated evil!!! Thus, proving his status as the chosen one!!!</p>
<p>
<b>Everybody:</b> Hooray for the chosen one! Let&#8217;s party!</p>
<p>
<b>Chosen One:</b> Hooray for me!</p>
<p>
There, now you can skip seeing <i>Lord of the Rings</i> <i>Eragon</i>, <i>Harry Potter</i>, <i>Willow</i>,, <i>Star Wars</i>, <i>Highlander</i>, <i>Dragonslayer</i>, <i>Flash Gordon</i>, <i>Transformers The Movie</i>, <i>The Golden compass</i>, <i>The Lion, the Witch, and the Wardrobe</i>, <i>The Matrix</i>, <i>The Neverending Story</i>, <i>Dune</i>, <i>Legend</i>, <i>Excalibur</i>, and the <i>New Testament</i>.</p>
<p>
If you weren&#8217;t born with &#8220;metachlorians&#8221; in your blood, superpowers, a magical birthmark, a fair complexion, blonde hair, blue eyes, and a penus, then I&#8217;m sorry, but you don&#8217;t qualify as a chosen one, and no amount of body building, martial arts training, gender reassignment surgery, motivational speakers, higher education, psychotherapy, hard work or determination will every make you the &#8220;chosen one.&#8221;</p>
<p>
Compare this to <i>Star Trek</i>, where a team of experts regularly collaborate on problem solving. <i>Star Trek</i> heroes are heroic because they went to Starfleet Academy. They study in their spare time to keep on top of the latest advances in their fields. They are perpetually exploring and broadening their horizons to become better heroes, and anyone, even the audience, can do the same. In Scence Fiction, heroism is open to <i>everyone</i>.</p>
<p>
<center><br />
<H2>III</H2><br />
</center></p>
<p>
Fantasy sells. Bookstores and theaters are brimming with works of fantasy, be they <i>Harry Potter</i>, C.S. Lewis, <i>Dragonology</i>, <i>Eragon</i>, or <i>Lord of the Rings</i>. Science Fiction sales are in decline, while Fantasy sales are shooting through the roof. </p>
<p>
C.S. Lewis (<i>Chronicles of Narnia</i>) and J.R.R. Tolkien (<i>Lord of the Rings</i>) were English faculty at Oxford. Robert Jordan (<i>Wheel of Time</i>) has a BS in Physics. J.K. Rowling (<i>Harry Potter</i>) has a BA in French. Christopher Paolini (<i>Eragon</i>) has no higher education as of yet.</p>
<p>
These fantasy writers have inspired countless fans to stand in long lines at movie theaters and books stores sporting capes, light-sabers, and elf-ears, while endlessly debating which of their favorite trilogies is superior based on purely subjective criteria. </p>
<p>
In contrast, David Brin (<i>Uplift</i>) has a Ph.D. in Space Science. Stanislaw Lem (<i>Solaris</i>) could not attain his medical degree because he refused to accept <a href=" http://en.wikipedia.org/wiki/Lysenkoism" target="_blank">Lysenkoism</a>, but did work as a scientific researcher. Dr. Isaac Asimov (<i>Foundation</i>) was a professor of biochemistry, Vice President of Mensa International, president of the American Humanist Association, and wrote <b>hundreds</b> of books on science, politics, and human improvability. </p>
<p>
These science fiction authors have accurately predicted the future from cell phones to the Internet. They have contributed to the human race&#8217;s collective body of knowledge, and they have inspired countless others to do the same. </p>
<p>
Science Fiction fans are intellectually engaged with their subject matter, taking the speculation beyond what is presented, and internalizing its vision to inspire their own accomplishments and contributions to society. Science Fiction walks alongside civilization, evolving and growing in potential as we grow and evolve as a society and a species.</p>
<p>
Fantasy books use printing presses and desktop publishing software to glorify times when most people were illiterate. Fantasy movies use computer animation and special effects technologies to let people escape to worlds without films and special effects. Fantasy video games whisk players away to realms devoid of computers. Fantasy wants to delude us into thinking things were better, more exciting and morally clear in mythical ancient times without electricity, running water, toothpaste, toiletpaper, fast food, equal rights, aspirin, diet soft drinks, or any of the other myriad conveniences of modern life that science has betowed upon us. All fantasy fans have to look forward to is bigger swords, flashier magic, and more gruesome monsters. Fantasy is an intellectual dead end.</p>
<p>
While fantasy broods on an overly idealized dramatization of the past, science fiction looks upwards and outwards to the future. As L. Ron Hubbard said:</p>
<blockquote><p>
<i>[Science Fiction] is the herald of possibility. It is the plea that someone should work on the future. Yet it is not prophecy. It is the dream that precedes the dawn when the inventor or scientist awakens and goes to his books or his lab saying, ‘I wonder whether I could make that dream come true in the world of real science.’</i>
</p></blockquote>
<p>Science Fiction argues that the best times lay ahead of us, but only if we make them happen.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2011/09/26/9041/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Computer Science in Tron Legacy</title>
		<link>http://ideonexus.com/2011/04/04/computer-science-in-tron-legacy/</link>
		<comments>http://ideonexus.com/2011/04/04/computer-science-in-tron-legacy/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 05:00:58 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=8720</guid>
		<description><![CDATA[Tron and Tron Legacy I attended the Experiments with the Imagination session at Science Online 2011, where we discussed what made good versus bad inclusion of science in fiction. Interesting points were made, such as audience members being able to excuse bad science for kick-ass portrayals of scientists, like in the movie 2012, and a [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/04/tronoldnewposters.jpg" border="0" width="500" height="339" alt="Tron and Tron Legacy"><br />
<b><em>Tron</em> and <em>Tron Legacy</em></b>
</div>
<p>I attended the <a href="http://memexplex.com/Meme/255/">Experiments with the Imagination</a>  session at <a href="http://scienceonline2011.com/">Science Online 2011</a>, where we discussed what made good versus bad inclusion of science in fiction. Interesting points were made, such as audience members being able to excuse bad science for kick-ass portrayals of scientists, like in the movie <em>2012</em>, and a deep concern for how science is portrayed in film because Hollywood blockbusters carry so much cultural influence in America.</p>
<p>There was also an intriguing question about working scientific elucidation into fiction, which stuck in my mind when a member of the audience mentioned how terrible was the film <a href="http://disney.go.com/tron/"><em>Tron Legacy</em></a> and was met with lots of head-nodding and murmurs of agreement. I had actually enjoyed <em>Legacy</em>, and, after rewatching it, realized that I was seeing a very different film than the average audience member.<br />
<span id="more-8720"></span></p>
<h2>Unexplained Computer Science in <em>Tron Legacy</em></h2>
<p><em>Legacy</em> starts out promising enough, with hard SF possibilities and discussions of deeper, real-world issues being tackled in software development. Alan Bradley, the programmer who invented Tron in the first film, questions the cost of the software his company markets at a software release meeting, &#8220;Given the prices that we charge to students and schools, what sort of improvements have been made in Flynn&#8211;I mean, <em>Encom OS 12</em>?&#8221; To which, the CEO cynically replies, &#8220;This year we put a &#8217;12&#8242; on the box.&#8221; The story appears to be setting up a conflict between open and closed source software, but then doesn’t.</p>
<p>When Sam Flynn puts the latest version of Encom&#8217;s software online for free, Edward Dillinger, the company&#8217;s star programmer and potential villain for the sequel, hops onto the server and types in: <em>ps -ef | grep -i os12</em>. The <em>ps -ef</em> part tells the OS to provide a full listing of every process running on the server. The <em>grep -i os12</em> performs a case-insensitive search for files with name and contents matching &#8220;os12&#8243;. He then types in the command <em>kill -9 17319</em>, telling the OS to kill the process identified by the number 17319 with the &#8220;-9&#8243; part forcing the termination in the most forceful way possible. Sam put the file online for free, Edward killed it.</p>
<div align="center">
<a href="http://www.flickr.com/photos/driph/3045140292/"><img src="http://ideonexus.com/wp-content/uploads/2011/04/tronarcade.jpg" border="0" width="500" height="375" alt="TRON Arcade Game"></a><br />
<b>TRON Arcade Game</b><br />
Credit: <a href="http://www.flickr.com/photos/driph/3045140292/">driph</a>
</div>
<p>When Sam finds his father&#8217;s workstation still up and running after 20 years in the old arcade, the first thing he does when he sits down at the console is type <em>whoami</em> to find out what user was working on it last. The answer is that his father, Kevin Flynn was the last person to work on it. He then types <em>uname -a</em> to find out the current system&#8217;s basic name information and follows that with an unsuccessful attempt to login to the system with full privileges. Finally, he tries the <em>history</em> command, revealing the last dozen commands his father performed on the system. The last of these is an ominous sounding &#8220;<em>LLLSDLaserControl -ok 1</em>,&#8221; but preceding it is a little joke, if you understand that the <em>vi</em> command stands for &#8220;Visual Editor,&#8221; a text-editing program:</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/04/flynndesktop.jpg" border="0" width="500" height="294" alt="Kevin Flynn's Final System Commands"><br />
<b>Kevin Flynn&#8217;s Final System Commands</b>
</div>
<p>This is what I saw happen in the first 20 minutes of <em>Tron Legacy</em>, and it made for a much more engaging film. It got me primed to really geek-out when the protagonist inevitably gets zapped into the special-effects laden fantasy world.  But what did anyone unfamiliar with a command-line operating system see? People looking serious and typing gobbledeegook. I appreciate the inside-jokes for computer geeks, but would it have hurt the film&#8217;s pace to clue the audience in a little more as to what was going on here?</p>
<h2>Missed Possibilities in the Fantasy World</h2>
<p>The film throws some important terms around in describing what is taking place on the &#8220;Grid,&#8221; Kevin Flynn&#8217;s personal server where the world of the original <em>TRON</em> is preserved and evolving. Alan Bradley mentions that Kevin was working with <a href="http://en.wikipedia.org/wiki/Genetic_algorithm">genetic algorithms</a>, a fascinating realm of computer science where software developers actually <em>grow and evolve</em> programs through a kind of natural selection, where the programs that perform their tasks most efficiently are allowed to propagate. The mention of this term got me leaning forward in my seat, but since the film doesn&#8217;t define the term for the audience, they continue to twiddle their thumbs waiting for the action to start.</p>
<p>Once on the grid, we learn a little about Flynn&#8217;s history in creating it, establishing order and producing a digital mirror of himself in the character Clu to help with his plan. Then, the ISOs emerged from the system. <a href="http://mathworld.wolfram.com/Isomorphic.html">Isomorphic Algorithms</a> are objects that are similar in their structural properties if you can ignore their minor differences. In the case of the grid, the ISOs are identical in their consciousnesses and in their digital DNA, but they are remarkable for their differences and what we can learn from them,<br />
&#8220;a digital frontier to reshape the human condition&#8221; as Kevin Flynn calls them. </p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/04/flynnclu.jpg" border="0" width="500" height="333" alt="Flynn VS Clu"><br />
<b>Flynn VS Clu</b>
</div>
<p>There is a fascinating evolution taking place on the grid, and the director even refered to the computer system as a <a href="http://www.wired.com/underwire/2010/11/tron-legacy-evolved/">digital Galapagos island</a> where life is evolving along divergent lines in isolation. With this background, we can see Clu as an artificial intelligence who does not understand the complexities of evolution. It is a being who believes life on the Grid will best evolve through games of life and death, survival of the fittest, but that is <em>unnatural selection</em>.</p>
<p>We can&#8217;t fault Clu for his misunderstanding; after all, Clu itself is the product of artificial selection. Genetic algorithms are selected by the programmer for traits the experimenter finds desirable. Clu imposes order on the grid the way Flynn imposed order: unnatural selection. The ISOs are an unexpected, messy development, undesigned and unplanned, and Flynn has lost interest in actively directing the evolution of life on the grid. So Clu purges them both.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/04/quora.jpg" border="0" width="500" height="375" alt="Quora the Isomorph"><br />
<b>Quora the Isomorph</b>
</div>
<h2>The Computer Science Fiction Frontier</h2>
<p>It&#8217;s easy to indulge in cynical speculation as to why the creators of <em>Tron Legacy</em> decided to gloss over all of these deeper aspects of the plot. Maybe they didn&#8217;t trust audiences to appreciate the philosophical conflicts. Maybe they wanted to avoid the geek-factor that many use to explain the original <em>Tron</em> being such a flop.</p>
<p>1982&#8242;s <em>Tron</em> was unabashed geekdom. Kevin Flynn wasn&#8217;t a fighter, he was a programmer and a gamer. He&#8217;s an intellectual renegade and his coworkers are serious nerds. The film was brimming with little techie inside jokes, like the Bit who can only answer with &#8220;yes&#8221; and &#8220;no&#8221; to questions put to it and an actuarial program named Ram who got great satisfaction from his work before being assimilated by the Master Control Program (MCP). The MCP itself was an evolved being, a chess program that grew by assimilating the intellectual property of other software developers and crushing the faith of programs who believed in the existence of &#8220;Users.&#8221;</p>
<p>Such nerd-appeal may have doomed <em>Tron&#8217;s</em> box office take, but it&#8217;s also what made the film a cult classic. Does <em>Legacy</em> delve into its philosophical issues deeply enough to stay engaging into the future? Or is it just another CGI orgy destined to be forgotten with all the other action films overloading theaters each year?</p>
<p>For science fiction enthusiasts, <em>Tron Legacy</em> does at least have the benefit of trying something different. Computer science has opened a new frontier for fiction, from <em>Tron</em>, <em>The 13th Floor</em>, <em>The Matrix</em>, and <em>Dark City</em>, there are deeper and shallower explorations of what it means to create a tiny, virtual world and the unique ethical conundrums that possibility brings. If you think of <em>Tron Legacy</em> in this context, the film is a quite enjoyable piece of science fiction.</p>
<hr width="90%" />
<p><b>Additional Notes</b></p>
<li>Gotta plug my book here, <a href="http://ideonexus.com/2010/09/07/entropy-of-imagination-a-creative-commons-ebook/"><em>Entropy of Imagination</em></a>, written before <em>Tron Legacy</em>, deals with a World Wide Web populated by AIs abandoned by the minds that created them and the inevitable breakdown of ideas that will doom them.</li>
<li>For a deeper engagement of the philosophical issues in <em>Tron Legacy</em> I recommend Alasdair Stuart&#8217;s <a href="http://www.alasdairstuart.com/?p=333">Digital Galapagos: Tron Legacy</a>, which deals more with the character-driven drama.</li>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2011/04/04/computer-science-in-tron-legacy/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>&#8220;Kill Your Darlings&#8221; is a Programming Principle Too</title>
		<link>http://ideonexus.com/2011/02/28/kill-your-darlings-is-a-programming-principle-too/</link>
		<comments>http://ideonexus.com/2011/02/28/kill-your-darlings-is-a-programming-principle-too/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 04:16:29 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=7940</guid>
		<description><![CDATA[Proce55ing Source Code Credit: Niels Heidenreich In his book On Writing Stephen King argued that to be a good writer, you must be able to &#8220;Kill your darlings,&#8221; where, for the sake of keeping the prose moving, you must cut out the non-essential parts, no matter how well-written: Mostly when I think of pacing, I [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<a href="http://www.flickr.com/photos/schoschie/8821223/"><img src="http://ideonexus.com/wp-content/uploads/2011/02/processingcode.jpg" border="0" width="550" height="480" alt="Proce55ing Source Code"></a><br />
<b>Proce55ing Source Code</b><br />
Credit: <a href="http://www.flickr.com/photos/schoschie/8821223/">Niels Heidenreich</a>
</div>
<p>In his book <em>On Writing</em> Stephen King argued that to be a good writer, you must be able to &#8220;<a href="http://memexplex.com/Meme/238/">Kill your darlings</a>,&#8221; where, for the sake of keeping the prose moving, you must cut out the non-essential parts, no matter how well-written:</p>
<blockquote><p>
Mostly when I think of pacing, I go back to Elmore Leonard, who explained it so perfectly by saying he just left out the boring parts. This suggest cutting to speed the pace, and that’s what most of us end up having to do (kill your darlings, kill your darlings, even when it breaks your egocentric little scribbler’s heart, kill your darlings)&#8230;I got a scribbled comment that changed the way I rewrote my fiction once and forever. Jotted below the machine-generated signature of the editor was this mot: “Not bad, but PUFFY. You need to revise for length. Formula: 2nd Draft = 1st Draft – 10%. Good luck.”
</p></blockquote>
<p>Writing code is much like writing prose, but I think it&#8217;s even harder to cut your most beautiful ideas from a computer program. In software design, we have to research heavily and go through hours of trial and error to produce some of our solutions. It&#8217;s one thing to slash several paragraphs of prose crafted in a hour of brilliant inspiration, it&#8217;s quite another to throw away an inventive solution and the wisdom that came with it.<br />
<span id="more-7940"></span><br />
When we refactor, we seek to both reduce the amount of code and improve its logical flow. We use the term &#8220;<a href="http://web.eecs.utk.edu/~mclennan/papers/Elegance.html">elegance</a>&#8221; to convey the ideal of well-written code. But there&#8217;s a nuance to this, we also need to avoid <a href="http://c2.com/cgi/wiki?KillYourDarlings">being clever for the sake of being clever</a>:</p>
<blockquote><p>
In software design, when you find yourself feeling particularly proud of a neat little bit of design or code, stop and ask yourself how someone who didn&#8217;t give birth to it will regard it. If it turns out to be overwrought or too slick for the need, you should probably kill your darling and replace it with an ordinary solution that others can actually use, and not just marvel at. <em>Darlings are sometimes characterized as being &#8220;ever so clever.&#8221; For an example, the phrase &#8220;ever so clever&#8221; is ever so clever.</em>
</p></blockquote>
<p>Reading this passage, I can think of lots of times I&#8217;ve had to refactor code that was &#8220;ever so clever&#8221; and make it more straightforward. There is nothing inelegant about being straightforward, and your peers will appreciate it.</p>
<p>Some code falls on the borderline. Consider the following snippet from the <a href="http://code.google.com/p/memexplex/source/browse/">MemexPlex codebase</a>:</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/02/decoratorpattern.jpg" border="0" width="503" height="316" alt="Decorator Pattern"><br />
<b>Decorator Pattern</b>
</div>
<p>I managed to eliminate about 300 lines of code with this design pattern, and that&#8217;s great, but I also made the code much more difficult to comprehend. This is an example of the <a href="http://en.wikipedia.org/wiki/Decorator_pattern">Decorator Pattern</a>, where each object accepts an object of the same class as one of its arguments and then adds its own methods and properties to it. In this case, each object contains a section of HTML for building a complete web page, which the object accepting it then appends its own HTML section onto in in the appropriate place. I think this code falls in a gray area, not straightforward, but it increases maintainability dramatically. So it&#8217;s great so long as I&#8217;m the only one working with it.</p>
<p>Jay Fields also talks about the &#8220;Kill Your Darlings&#8221; concept <a href="http://blog.jayfields.com/2009/03/kill-your-darlings.html">as it relates to programming</a>, considering it as a way to avoid stagnation:</p>
<blockquote><p>
George Malamidis taught me something about code attachment a few years ago: You always gain by allowing someone to show you an alternative solution. If someone wants to solve a problem in a different way, there are several gains to be had. If their way is inferior, you have an opportunity to mentor a team-mate. If their way is equally elegant, you&#8217;ve gained another solution, or point of view that may be superior in the future. If their way is superior you learn something new and the codebase improves. In exchange for these gains you only need to give up time. Time is valuable, but it&#8217;s also well spent on improving the ability of a team-mate or your personal ability.</p>
<p>[...]</p>
<p>I think killing your darlings extends beyond codebases and frameworks to languages themselves. At SpeakerConf 2009, I floated the idea that <b>we should more actively seek to kill languages. Perhaps, after 3 versions of a language, it&#8217;s time for that language to be retired.</b> Imagine what we could create if the resources dedicated to Java were instead focused on creating a successor to Java. Think of all the time that would be saved if backwards compatibility became a non-issue.
</p></blockquote>
<p>This is an interesting perspective, killing code, frameworks, and even languages as a means of forcing the programming community to improve the entire environment. It&#8217;s a way to fend off <a href="http://cscs.umich.edu/~crshalizi/notabene/qwerty.html">technology lock-in</a>, like QWERTY for keyboard layouts, but for languages and frameworks. Look at what a huge standard the <a href="">Zend Framework</a> is, with tons of libraries and an enormous codebase, compared to the sleeker <a href="">Code Igniter</a>. One person&#8217;s code library is another&#8217;s baggage.</p>
<p>It&#8217;s another balancing act: learning from the mistakes of the past versus having the daring to venture into new solutions. Our code serves as a repository of our knowledge, and, if you&#8217;re like me, you keep libraries of old code around so you can quickly look up how you solved some bit of minutiae, like a string manipulation or regex expression, without having to figure it out again. If you&#8217;re also like me, you keep <a href="http://stackoverflow.com/">stackOverflow</a> open all day looking for new solutions. The code I&#8217;ve written in the past has survived the trial by fire of a production environment, but it&#8217;s old, while the code I find online, while not as fleshed-out, will often provide a more modern and elegant solution.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2011/02/28/kill-your-darlings-is-a-programming-principle-too/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Breakout of Slide Presentation Linearity with Prezi</title>
		<link>http://ideonexus.com/2011/02/21/breakout-of-slide-presentation-linearity-with-prezi/</link>
		<comments>http://ideonexus.com/2011/02/21/breakout-of-slide-presentation-linearity-with-prezi/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 05:00:02 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>
		<category><![CDATA[Mediaphilism]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=7930</guid>
		<description><![CDATA[MemexPlex Prezi Screenshot At Science Online 2011 I was introduced to the Prezi Presentation Paradigm by Stacy Baker of Extreme Biology. After getting past a surprisingly mild learning curve, I was able to produce the following presentation mixing a Prezi presentation with desktop video capture: Keeping in mind this is not the best example of [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/02/mxplxprezi.jpg" border="0" width="500" height="310" alt="MemexPlex Prezi Screenshot"><br />
<b>MemexPlex Prezi Screenshot</b>
</div>
<p>At <a href="http://scienceonline2011.com/">Science Online 2011</a> I was introduced to the <a href="http://prezi.com">Prezi Presentation Paradigm</a> by Stacy Baker of <a href="http://missbakersbiologyclass.com/blog/">Extreme Biology</a>. After getting past a surprisingly mild learning curve, I was able to produce the following presentation mixing a Prezi presentation with desktop video capture:</p>
<div align="center">
<iframe title="YouTube video player" width="500" height="312" src="http://www.youtube.com/embed/LwDOiPdH_kI?hd=1" frameborder="0" allowfullscreen></iframe>
</div>
<p>Keeping in mind this is not the best example of a Prezi demo, you can step through and play with the MemexPlex Prezi itself below (alternately, you can <a href="http://prezi.com/explore/">browse popular Prezis here</a>). Don&#8217;t confine yourself to just click through the presentation, as you can click-and-drag, double-click, and zoom as well: </p>
<div align="center">
<div class="prezi-player">
<style type="text/css" media="screen">.prezi-player { width: 550px; } .prezi-player-links { text-align: center; }</style>
<p><object id="prezi_7nc7yvfpeayv" name="prezi_7nc7yvfpeayv" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="550" height="400"><param name="movie" value="http://prezi.com/bin/preziloader.swf"/><param name="allowfullscreen" value="true"/><param name="allowscriptaccess" value="always"/><param name="bgcolor" value="#ffffff"/><param name="flashvars" value="prezi_id=7nc7yvfpeayv&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"/><embed id="preziEmbed_7nc7yvfpeayv" name="preziEmbed_7nc7yvfpeayv" src="http://prezi.com/bin/preziloader.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="550" height="400" bgcolor="#ffffff" flashvars="prezi_id=7nc7yvfpeayv&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"></embed></object>
<div class="prezi-player-links">
<p><a title="An online tool for managing citations, quotes from those references, and building semantic associations between ideas." href="http://prezi.com/7nc7yvfpeayv/introduction-to-memexplexcom-a-citation-management-tool-for-researchers-and-active-readers/">Introduction to MemexPlex.com: A Citation-Management Tool for Researchers and Active Readers</a> on <a href="http://prezi.com">Prezi</a></p>
</div>
</div>
</div>
<p><span id="more-7930"></span><br />
Stacy Baker advised us to start big and work into smaller displays to manage things, and she demonstrated some fantastic examples of this, zooming through the letter &#8220;o&#8221; in a sentence to reveal a high-quality image tucked away in the presentation. Prezi also allows you to break out of the linearity of slide show presentations. Baker explained how she could show her entire presentation to her class and then focus on the sections they were curious about, making the teaching flow more dynamic. </p>
<p>I tried to do something similar with an <a href="http://studios.amazon.com/projects/3618">Amazon Studios Writer&#8217;s Pitch</a> for a screenplay I submitted. I apologize for the audio, but it does demonstrate how Prezi can show your audience the entire outline of your presentation, take them full loop through it, and bring them back to the big picture:</p>
<div align="center">
<iframe title="YouTube video player" width="500" height="312" src="http://www.youtube.com/embed/lBMvnspA8j0?hd=1" frameborder="0" allowfullscreen></iframe>
</div>
<p>You can play with the Prezi-only version of this presentation here:</p>
<div align="center">
<div class="prezi-player">
<style type="text/css" media="screen">.prezi-player { width: 550px; } .prezi-player-links { text-align: center; }</style>
<p><object id="prezi_hfopiyfse8zu" name="prezi_hfopiyfse8zu" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="550" height="400"><param name="movie" value="http://prezi.com/bin/preziloader.swf"/><param name="allowfullscreen" value="true"/><param name="allowscriptaccess" value="always"/><param name="bgcolor" value="#ffffff"/><param name="flashvars" value="prezi_id=hfopiyfse8zu&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"/><embed id="preziEmbed_hfopiyfse8zu" name="preziEmbed_hfopiyfse8zu" src="http://prezi.com/bin/preziloader.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="550" height="400" bgcolor="#ffffff" flashvars="prezi_id=hfopiyfse8zu&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"></embed></object>
<div class="prezi-player-links">
<p><a title="A synopsis of my creative commons screenplay." href="http://prezi.com/hfopiyfse8zu/detail-of-a-life-a-screenplay-in-four-acts/">Detail of a Life, A Screenplay in Four Acts</a> on <a href="http://prezi.com">Prezi</a></p>
</div>
</div>
</div>
<p>There&#8217;s a real &#8220;WOW&#8221; factor in Prezi demos right now. They might be taken for granted in the near fuure, but they look like the death of Power Point today (or will be with a few more features like video and animation integration). Prezi is free to use through an online interface with nothing to download and it’s lots of fun to play with. So <a href="http://www.prezi.com">go check it out</a>!</p>
<hr width="90%" />
<p><b>Notes:</b></p>
<li>I captured video and sound for these videos using the free <a href="http://www.microsoft.com/expression/products/EncoderPro_Overview.aspx">Microsoft Expression Encoder</a>, which was a breeze. I tried using the open source <a href="http://camstudio.org/">CamStudio</a>, but couldn&#8217;t get the sound to capture off the speakers and the video capture was very jerky.</li>
<li>While the Prezi interface is very intuitive, one crucial tip I got from Stacy Baker was the ability to hold down SHIFT and draw a rectangle to select groups of objects to move an manipulate together. This was a HUGE help in when I needed to make major edits to my presentation in the polish phase.</li>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2011/02/21/breakout-of-slide-presentation-linearity-with-prezi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generating Grids, Hexmaps, and Image Markups with JavaScript</title>
		<link>http://ideonexus.com/2011/02/02/generating-grids-hexmaps-and-image-markups-with-javascript/</link>
		<comments>http://ideonexus.com/2011/02/02/generating-grids-hexmaps-and-image-markups-with-javascript/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 05:00:30 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=7905</guid>
		<description><![CDATA[Corrosion Mapping, Hotspots Highlighted (Not an Actual Report Image) One application I had the honor of working with in my time with the Coast Guard was a Corrosion Mapping tool used by Engineers to track the wear and tear on aircraft parts over their lifetime. Using an Active X control, users would bring up a [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/02/diagram.jpg" border="0" width="500" height="363" alt="Corrosion Mapping, Hotspots Highlighted"><br />
<b>Corrosion Mapping, Hotspots Highlighted</b><br />
(Not an Actual Report Image)
</div>
<p>One application I had the honor of working with in my time with the Coast Guard was a Corrosion Mapping tool used by Engineers to track the wear and tear on aircraft parts over their lifetime. Using an Active X control, users would bring up a TIF of an aircraft part, and then click on grid coordinates laid over it to identify places where corrosion was noted. These X and Y coordinates were then saved to the database, where they could be tallied in reports, with the number of occurrences of corrosion highlighted to identify weak points in the parts. It looked something like the image above.</p>
<p>I recently tried to reproduce this functionality with JavaScript for an application where researchers would mark incidents of contamination on a building floor plan in order to determine the radius of the area that would need to be sterilized. Here are three JavaScript variations on this theme of plotting coordinates on a grid.<br />
<span id="more-7905"></span></p>
<h2>Marking an Image with JavaScript and Mouse Coordinates</h2>
<div align="center"><iframe src="http://www.ryansomma.com/files/grid/image.html" width="550" height="400" scrolling="no"></p>
<p>Your browser does not support iframes.</p>
<p></iframe><br />
<b>Marking an Image with JavaScript Using Mouse Coordinates</b><br />
(Click on the Image to Place an Elf Druid)
</div>
<p>For the greatest precision, nothing beats <a href="http://www.webdeveloper.com/forum/showthread.php?t=82803">plotting mouse Coordinates on an image</a>. These coordinates can then be stored in the database and the image redrawn with markers in their exact places. Complexity arises when you want to run a report on this data, as it its precision makes grouping the coordinates for tallying more complex. Grouping the coordinates by vicinity might not be too difficult, but recognizing and accounting for an artificial barrier, like a wall that prevents grouping coordinates, is a much more difficult problem.</p>
<h2>Creating a Grid of X and Y Coordinates with JavaScript</h2>
<div align="center"><iframe src="http://www.ryansomma.com/files/grid/grid.html" width="550" height="349" scrolling="no"></p>
<p>Your browser does not support iframes.</p>
<p></iframe><br />
<b>JavaScript Grid Example</b><br />
(Click on a Coordinate to Highlight, Click Again to UnHiglight)
</div>
<p>In the above example, I have laid out a grid of evenly-spaced div tags over the image. Clicking on a grid square marks the coordinate. The advantage of this strategy is that the number of coordinates is limited, making it easier to tabulate how many times a coordinate has been marked and not having to worry about artificial barriers. The disadvantage is that our precision is reduced the larger we make our grid squares.</p>
<h2>Creating a Hexmap Grid with JavaScript</h2>
<p>Bees have evolved to use hexagons in constructing their honeycombs because the shape provides the largest possible space while still being able to tesselate, lock together without any space between them. For this same reason, hexmaps are popular with gamers, allowing the most space for pieces, while also providing the greatest number of directions for that piece to move (squares can also offer six directions, but they don&#8217;t look as cool).</p>
<p>The example below isn&#8217;t the greatest, since I had to shrink the hexagons down so much. You can see a larger, cleaner <a href="http://www.ryansomma.com/files/grid/hexmap100.html" target="_new">example here</a> (highlights a range of squares as well).</p>
<div align="center"><iframe src="http://www.ryansomma.com/files/grid/hexmap.html" width="550" height="422" scrolling="no"></p>
<p>Your browser does not support iframes.</p>
<p></iframe><br />
<b>JavaScript Hexmap Example</b><br />
(Click on a Coordinate to Highlight, Click Again to UnHiglight)
</div>
<p>The above example uses hexagon vector graphics as the background of DIV tags to create the hexmap since I am unaware of any way to achieve this effect with pure CSS. Because the DIV tags are square and they carry the mouse-over and onclick effects, there is a slight disjoint between where the highlighting starts and ends at the borders of the hexagons.</p>
<p>The advantage of this strategy is that we now have empty DIV tags in which we may put contents. As you may have noticed, my screenshots are from RPG video games like <em>Ultima II</em> and the free open-source RPG <a href="http://www.wesnoth.org/">The Battle for Wesnoth</a>, and my original intention with this hexmap was to figure out it if was possible to code a strategy RPG in pure JavaScript. With the above example, it is a simple matter to put a game piece or character inside one of the hexagons.</p>
<p>I&#8217;ve collected a bunch of the Wesnoth character and terrain icons, which come in a variety of poses to make them easy to animate, and would make excellent toys for crafting a game. You can <a href="http://www.ryansomma.com/files/grid/WesnothPieces.zip">download them here (16 megs)</a>. There are also terrain pieces, conveniently in vector graphic hexagons for easy resizing and integration with the above hexmap strategy. Just replace the DIV backgrounds with these graphic legos to make JavaScript programming fun.</p>
<hr width="90%">
<p><b>Downloads:</b></p>
<li>Download the <a href="http://www.ryansomma.com/files/grid/JavaScriptGridExamples.zip">JavaScript examples used in this post</a>.</li>
<li>Download the <a href="http://www.ryansomma.com/files/grid/WesnothPieces.zip">Wesnoth Pieces</a> for playing with JavaScript RPG design.</li>
<hr width="90%">
<p><b>Additional Notes:</b></p>
<li>Grouping mouse-pointer coordinates might involve <a href="http://stackoverflow.com/questions/2712744/finding-the-closest-grid-coordinate-to-the-mouse-position-with-javascript-jquery">thinking about the problem in this fashion</a>.</li>
<li>While my grid solution uses divs with borders, most discussions of the problem I found online involved laying a table over the image(<a href="http://stackoverflow.com/questions/4587761/grid-overlayed-on-image-using-javascript-need-help-getting-grid-coordinates">here</a>, <a href="http://stackoverflow.com/questions/1775466/how-to-get-cells-td-x-and-y-coordinate-in-table-using-jquery">here</a>, and <a href="http://www.devcomments.com/q433852/Grid-overlayed-on-image-using-javascript-need-help-getting-grid">here</a>). This didn&#8217;t grok with me, but if you try it out, let me know how it goes.</li>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2011/02/02/generating-grids-hexmaps-and-image-markups-with-javascript/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Social Network Mapping Fun with NodeXL and Science Online 2011</title>
		<link>http://ideonexus.com/2011/01/17/social-network-mapping-fun-with-nodexl-and-science-online-2011/</link>
		<comments>http://ideonexus.com/2011/01/17/social-network-mapping-fun-with-nodexl-and-science-online-2011/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 22:30:39 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=7875</guid>
		<description><![CDATA[Social Networking Results for #scio11 Hash Tag on Twitter (Click to Enlarge) The above image is just one graph of the many tweets related to the Science Online 2011 Unconference. I generated the above graph using the open-source free software NodeXL, a Microsoft Excel plugin that harvests social networking data from common online sources and [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<a href="http://ideonexus.com/wp-content/uploads/2011/01/01scio11twitter.png" target="_blank"><img src="http://ideonexus.com/wp-content/uploads/2011/01/01scio11twitter.png" border="0" width="500" height="396" alt="Social Networking Results for #scio11 Hash Tag on Twitter"></a><br />
<b>Social Networking Results for #scio11 Hash Tag on Twitter</b><br />
(Click to Enlarge)
</div>
<p>The above image is just one graph of the many tweets related to the <a href="http://scienceonline2011.com/">Science Online 2011 Unconference</a>. I generated the above graph using the open-source free software <a href="http://nodexl.codeplex.com/">NodeXL</a>, a Microsoft Excel plugin that harvests social networking data from common online sources and provides a variety of mean for analyzing it. In the following post, I&#8217;ll provide a brief overview of social network mapping with NodeXL using data harvested from Facebook and Science Online 2011 tweets and provide directions for making your own social network maps, where you can explore and manipulate the data to find your own insights.<br />
<span id="more-7875"></span></p>
<h2>Quick Overview of Social Network Graphing Using Facebook Data</h2>
<p>I&#8217;m starting with a Facebook example, because it will merely map the inter-relationships of my friends, a much smaller and more manageable dataset than the thousands of relationships twitter produces. If you want to experiment with NodeXL network mapping, I highly recommend starting with your Facebook network for simplicity and saving CPU cycles.</p>
<div align="center">
<a href="http://ideonexus.com/wp-content/uploads/2011/01/02facebookvicky.jpg" target="_blank"><img src="http://ideonexus.com/wp-content/uploads/2011/01/02facebookvicky.jpg" border="0" width="500" height="375" alt="My Facebook Friends, Vicky Highlighted"></a><br />
<b>My Facebook Friends, Vicky Highlighted</b><br />
(Click to Enlarge)
</div>
<p>The map above is known as an &#8220;Egocentric graph,&#8221; because it lists all the people I am friends with on Facebook. The data was made available via the <a href="http://apps.facebook.com/namegenweb/">Name Gen Web</a> Facebook app, which enabled me to download all of my Facebook friend data as an XML file and see who was connected to who. I&#8217;ve highlighted <a href="http://tgaw.wordpress.com">Vicky</a> because, as my wife and best friend, she appears at the center of the graph, connected to everyone I&#8217;m connected to.</p>
<div align="center">
<a href="http://ideonexus.com/wp-content/uploads/2011/01/03facebookgroups.jpg" target="_blank"><img src="http://ideonexus.com/wp-content/uploads/2011/01/03facebookgroups.jpg" border="0" width="500" height="410" alt="My Different Social Groups, Science Online Highlighted"></a><br />
<b>My Different Social Groups, Science Online Highlighted</b><br />
(Click to Enlarge)
</div>
<p>Using the <a href="http://portal.acm.org/citation.cfm?id=729397">Harel-Koren Fast Multiscale</a> graphing option sorted all the people I am networked with into easily recognizable groups. The highly interconnected group of people immediately surrounding Vicky consists of my family, high school, and college friends. Outliers to my inner circle are people who I know through more purposeful means. They are my coworkers, neighborhood kids, fellow gamers, and people I know through Science Online. </p>
<p>With some groups, there is someone who stands out as the glue keeping the group together. For my gaming friends, that person is the owner of the comic shop, for Science Online, it should come as no surprise that it is <a href="http://coturnix.org/">Bora Zivkovic</a>.</p>
<div align="center">
<a href="http://ideonexus.com/wp-content/uploads/2011/01/04scio11peopleatbora.png" target="_blank"><img src="http://ideonexus.com/wp-content/uploads/2011/01/04scio11peopleatbora.png" border="0" width="500" height="396" alt="Bora-Centric Scio11 Twitter Graph"></a><br />
<b>Bora-Centric Scio11 Twitter Graph</b><br />
(Click to Enlarge)
</div>
<h2>Mapping the Science Online 2011 Twitter Feed</h2>
<p>While my ability to map the Facebook network can only go as far as those people to whom I am personally connected, <a href="http://twitter.com">Twitter</a> provides a delightful opportunity to map a network of connections that includes people I am not connected to. </p>
<div align="center">
<a href="http://ideonexus.com/wp-content/uploads/2011/01/05scio11twitter20101115.png" target="_blank"><img src="http://ideonexus.com/wp-content/uploads/2011/01/05scio11twitter20101115.png" border="0" width="500" height="395" alt="#scio11 Hash Tag"></a><br />
<b>#scio11 Hash Tag</b><br />
(Click to Enlarge)
</div>
<p>This graph reflects &#8220;Mentions&#8221; and &#8220;Replies-to&#8221; relationships in tweets with the <a href="">#scio11</a>  hash tag on 20110117, “following” data has also been harvested. Don&#8217;t see your avatar here? That&#8217;s because there are over 330 twitter users in this image and the canvas size isn&#8217;t large enough to display all their avatars, those who posted the most tweets are buried under a mountain of other individuals in the center of the image. Even trying to pull the network apart by hand, I was still unable to reveal anywhere near the number of users actually participating in the network.</p>
<div align="center">
<a href="http://ideonexus.com/wp-content/uploads/2011/01/06scio11twitter20110117overload.png" target="_blank"><img src="http://ideonexus.com/wp-content/uploads/2011/01/06scio11twitter20110117overload.png" border="0" width="500" height="398" alt="#scio11 Hash Tag Explosion"></a><br />
<b>#scio11 Hash Tag Explosion</b><br />
(Click to Enlarge)
</div>
<p>This is a very important point: as the size of the social network grows, NodeXL becomes less useful for producing nifty images of the network; however, NodeXL remains very useful as an interactive tool for <b>exploring</b> the data you harvest. For example, I expected <a href="http://twitter.com/#!/BoraZ">BoraZ</a>, <a href="http://twitter.com/#!/mistersugar">mistersugar</a>, <a href="http://twitter.com/#!/ktraphagen">ktraphagen</a>, and <a href="http://twitter.com/#!/scio11">scio11</a> to be important vertices in the Science Online Tweet network, but I also discovered two other key players by exploring the below graph: <a href="http://twitter.com/#!/edyong209">edyong209</a> and <a href="http://twitter.com/#!/ivanoransky">ivanoransky</a>.</p>
<div align="center">
<a href="http://ideonexus.com/wp-content/uploads/2011/01/07scio11twitter20110117keypeople.png" target="_blank"><img src="http://ideonexus.com/wp-content/uploads/2011/01/07scio11twitter20110117keypeople.png" border="0" width="500" height="396" alt="BoraZ, MisterSugar, scio11, EdYong, and ivanoransky Highlighted"></a><br />
<b>BoraZ, MisterSugar, scio11, EdYong, and ivanoransky Highlighted</b><br />
(Click to Enlarge)
</div>
<p>NodeXL also provides means to Filtering by relationship date, number of followers, number of tweets, tweet date, and joined twitter date&#8230; among others. I experimented with a simple X and Y vertex filter to reduce the number of results in my graph.</p>
<div align="center">
<a href="http://ideonexus.com/wp-content/uploads/2011/01/08scio11twitter20101115filtered.png" target="_blank"><img src="http://ideonexus.com/wp-content/uploads/2011/01/08scio11twitter20101115filtered.png" border="0" width="500" height="395" alt="#scio11 Hash Tag Filtered"></a><br />
<b>#scio11 Hash Tag Filtered</b><br />
(Click to Enlarge)
</div>
<p>Other Science Online tags you might want to try harvesting from twitter are <a href="http://twitter.com/#!/search/%23techwild">#techwild</a>, <a href="http://twitter.com/#!/search/%23huggedbora">#huggedbora</a>, <a href="http://twitter.com/#!/search/%23sciophoto">#sciophoto</a>, <a href="http://twitter.com/#!/search/%23altmetrics">#altmetrics</a>, <a href="http://twitter.com/#!/search/%23opensci">#opensci</a>, and <a href="http://twitter.com/#!/search/%23drunksci">#drunksci</a>. You&#8217;ll get fewer, more manageable results, and might find a tag of more specific interest to you regarding the conference. </p>
<div align="center">
<a href="http://ideonexus.com/wp-content/uploads/2011/01/09scio11twitter20110117filtered.png" target="_blank"><img src="http://ideonexus.com/wp-content/uploads/2011/01/09scio11twitter20110117filtered.png" border="0" width="500" height="392" alt="#scio11 Filterd to Just BoraZ, MisterSugar, and Scio11"></a><br />
<b>#scio11 Filterd to Just BoraZ, MisterSugar, and Scio11</b><br />
(Click to Enlarge)
</div>
<p>You can also filter by clicking on the column headers in the spreadsheet, unchecking &#8220;Select All&#8221; and then checking just those twitter users you want to see results for. In the above graph, I have filtered my results to just BoraZ, MisterSugar, and scio11. You can filter your results down to just yourself, in what I suppose would be called &#8220;Ego-Filtering&#8221; (ala &#8220;<a href="http://en.wikipedia.org/wiki/Egosurfing">egosurfing</a>&#8220;).</p>
<h2>Getting Started with NodeXL</h2>
<h3>Installation</h3>
<p>You can download NodeXL from Microsoft&#8217;s Codeplex at <a href="http://www.codeplex.com/NodeXL">codeplex.com/NodeXL</a>. You&#8217;ll need to have a version of Excel equal to or greater than the 2007 version. Download the ZIP file, unzip it, make sure Microsoft Excel is closed, and run the Setup.exe file (you can then delete the zip files). NodeXL works as an Excel Template, and you can access it via <b>Start > All Programs > Microsoft NodeXL > Excel 2007 Template</b>. This will open Microsoft Excel with a &#8220;NodeXL&#8221; menu option and graphing area.</p>
<div align="center">
<a href="http://ideonexus.com/wp-content/uploads/2011/01/10nodexl.png" target="_blank"><img src="http://ideonexus.com/wp-content/uploads/2011/01/10nodexl.png" border="0" width="500" height="353" alt="NodeXL"></a><br />
<b>NodeXL</b><br />
(Click to Enlarge)
</div>
<h3>Harvesting Your Facebook Network</h3>
<p>A fun way to get started with NodeXL is to analyze your Facebook network. As I demonstrated earlier, you&#8217;ll find that your friends naturally group into clusters around the different areas of your life: work, family, friends, etc. The first thing you&#8217;ll need to do is download your Facebook friend data as an XML file using the Name Gen Web app accessed via <a href="http://apps.facebook.com/namegenweb">apps.facebook.com/namegenweb</a> and choose to download the NodeXL graph after accepting the application. When Name Gen Web has generated the data for your network, right-click the link and &#8220;Save as&#8230;&#8221; it to your computer.</p>
<p>Once you have this file, open NodeXL from the template, select <b>Import > From GraphML file</b> and open the file you saved from Name Gen Web. Click &#8220;Read Workbook&#8221; to have NodeXL process the vertices and render your network.</p>
<h3>Harvesting Twitter Feeds</h3>
<p><b>Warning:</b> because Twitter limits the amount of data you can harvest each hour, it can take a very long time to collect your results. Another warning is that, for a hash tag like #scio11, the data set is large enough that your computer will grind to a crawl as you explore it. Make sure you are not checking twitter via another application as you harvest data to prevent your IP address from maxing out your access to the service. You might try <a href="http://twitter.com/help/request_whitelisting">Requesting Whitelisting</a> for your IP; although, twitter didn&#8217;t respond to my request and most people don&#8217;t have a static IP anyway.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/01/11NodeXLImportTwitter.png" border="0" width="349" height="590" alt="Import from Twitter"><br />
<b>Import from Twitter</b>
</div>
<p>All that being said, you can download the scio11 NodeXL data below (right-click and &#8220;Save as&#8230;&#8221;):</p>
<ul>
<li><a href="http://ideonexus.com/wp-content/uploads/2011/01/20101115scio11-tweets.xlsx">2010-11-15 scio11 Twitter NodeXL data</a></li>
<li><a href="http://ideonexus.com/wp-content/uploads/2011/01/20110117scio11-tweets01.xlsx">2011-01-17 @ 0738 scio11 Twitter NodeXL dataset</a></li>
<li><a href="http://ideonexus.com/wp-content/uploads/2011/01/20110117scio11-tweets02.xlsx">2011-01-17 @ 1507 scio11 Twitter NodeXL dataset</a></li>
<li><a href="http://ideonexus.com/wp-content/uploads/2011/01/20110117scio11-tweets03.xlsx">2011-01-17 @ 1624 scio11 Twitter NodeXL dataset</a></li>
</ul>
<p>One thing I learned today while harvesting data is that <b>timing is important</b>. Although tweet histories have no limit on how far back in time they go, NodeXL will only harvest at most 500 tweets into the past. So when I got flagged for DoS Sunday night after the conference, and could not successfully harvest data until the next day, I lost access to many of the tweets made during the conference, especially when you consider there were <a href="http://wthashtag.com/Scio11">9,490 tweets, 1,214 contributors, and 1,355.7 tweets per day</a> using the tag.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/01/12nodeXLTwitterImages.png" border="0" width="500" height="548" alt="Add Twitter Avatars to Your Graph"><br />
<b>Add Twitter Avatars to Your Graph</b>
</div>
<p>One finale note, it&#8217;s nifty to add Twitter Avatars to your graph. So to accomplish this, in the graph window click on Options and select &#8220;Images” from the Vertices > Shape dropdown.</p>
<h3>Going Deeper</h3>
<div align="center">
<a href="http://ideonexus.com/wp-content/uploads/2011/01/13analyzingsocialmedianetworkscover.jpg" target="_blank"><img src="http://ideonexus.com/wp-content/uploads/2011/01/13analyzingsocialmedianetworkscover.jpg" border="0" width="400" height="493" alt="Analyzing Social Media Networks with NodeXL"></a><br />
<b>Analyzing Social Media Networks with NodeXL</b><br />
(Click to Enlarge)
</div>
<p>If you&#8217;re interested in learning more about NodeXL&#8217;s possibilities and features, I highly recommend Hansen, Shneiderman, and Smith&#8217;s excellent book <a href="http://www.connectedaction.net/2010/09/13/book-analyzing-social-media-networks-with-nodexl-insights-from-a-connected-world-now-available/">Analyzing Social Media Networks with NodeXL: Insights from a Connected World</a>, which not only provides step-by-step instructions for making the most of the tool, but also provides a great deal of background on the emerging science of Social Network mapping.</p>
<p>If you have questions or need support getting features working in NodeXL, please ask in the comments section. I&#8217;m happy to oblige.</p>
<div align="center">
<a href="http://ideonexus.com/wp-content/uploads/2011/01/14scio11SpiralTweets.png" target="_blank"><img src="http://ideonexus.com/wp-content/uploads/2011/01/14scio11SpiralTweets.png" border="0" width="500" height="458" alt="Scio11 Twitter Hash Tag, Spiral Graph"></a><br />
<b>Scio11 Twitter Hash Tag, Spiral Graph</b><br />
(Click to Enlarge)
</div>
<hr width="90%" />
<p><b>Update:</b></p>
<p>The authors sent me some additional links to NodeXL resources. Great stuff!</p>
<li>Flickr photo set of <a href="http://www.flickr.com/photos/marc_smith/sets/72157622437066929/">NodeXL Graphs</a>.</li>
<li>Free PDF <a href="http://casci.umd.edu/images/4/46/NodeXL_tutorial_draft.pdf">Analyzing Social Media Networks:<br />
Learning by Doing with NodeXL</a></li>
<li>Video: <a href="http://www.connectedaction.net/2009/11/11/video-using-nodexl-to-map-the-digg-mentioning-twitter-population/">Using NodeXL to map the “digg” mentioning Twitter population</a></li>
<li>Slideshare presentations <a href="http://www.slideshare.net/Marc_A_Smith/2009-december-nodexl-overview">here</a> and <a href="http://www.slideshare.net/Marc_A_Smith/2010-june-personal-democracy-forum-marc-smith-mapping-political-social-media-crowds">here</a>.</li>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2011/01/17/social-network-mapping-fun-with-nodexl-and-science-online-2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Introducing MemexPlex: A Citation-Management Tool for Researchers and Active Readers</title>
		<link>http://ideonexus.com/2011/01/10/introducing-memexplex-a-citation-management-tool-for-researchers-and-active-readers/</link>
		<comments>http://ideonexus.com/2011/01/10/introducing-memexplex-a-citation-management-tool-for-researchers-and-active-readers/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 05:00:32 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=7854</guid>
		<description><![CDATA[The Memetic Ecosystem Within Memexplex I&#8217;m a big reader, and a lot of what I read inspires the posts for ideonexus. I love it when I find a brilliant insight in a text and can slap it down as a blockquote or relate it to other citations I&#8217;ve come across in the past. I&#8217;m tickled [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/01/memeticecosystem.jpg" border="0" width="500" height="500" alt="The Memetic Ecosystem Within Memexplex"><br />
<b>The Memetic Ecosystem Within Memexplex</b>
</div>
<p>I&#8217;m a big reader, and a lot of what I read inspires the posts for ideonexus. I love it when I find a brilliant insight in a text and can slap it down as a blockquote or relate it to other citations I&#8217;ve come across in the past. I&#8217;m tickled by brilliant ideas, and I love the communal exercise of building on old ideas and mashups from them.</p>
<p>A frustration I&#8217;ve experienced often over the years is remembering a brilliant insight from Carl Sagan, Richard Feynman, or some other author that would make an excellent complement for my current blog post, but having no idea which book in which it appeared. Even if I know the book, it can take an hour of thumbing through the pages to locate the passage I need (often because the text isn&#8217;t worded the way I remember it). And what about all those brilliant passages I&#8217;ve long forgotten?</p>
<p>These are the reasons I&#8217;ve written <a href="http://www.memexplex.com">MemexPlex</a>, an online tool to aide in the practice of <a href="http://www.open.ac.uk/skillsforstudy/active-reading.php">active reading</a>, research, and citation management.<br />
<span id="more-7854"></span></p>
<h2>Background</h2>
<p>MemexPlex is a portmanteu of &#8220;memex&#8221; and &#8220;meme-complex.&#8221; A memecomplex, or memeplex, is a collection of ideas that tend to replicate together, like how the genes in a species replicate together. The memex is an imaginary research tool described by science administrator Vannevar Bush in his July 1945 essay &#8220;<a href="http://www.theatlantic.com/magazine/archive/1969/12/as-we-may-think/3881/">As We May Think</a>,&#8221; which used an elaborate system of gears and microfische that would allow researchers to bookmark articles, link their own ideas to them, and create &#8220;trails&#8221; of knowledge through multiple references.</p>
<div align="center">
<img src="http://www.memexplex.org/wp-content/uploads/2010/11/memex_article.jpg" border="0" width="446" height="568" alt="Vannevar Bush's Memex"><br />
<b>Vannevar Bush&#8217;s Memex</b>
</div>
<p>Today, most people would agree that, with hypertext, we have the ability to bookmark and create links between articles on the World Wide Web; however, the creation of knowledge trails is still lacking. MemexPlex provides a tool for storing reusable idea objects, allowing researchers to fit them together in new conceptual constructs, converting information into knowledge and forging new paths through ideas for others to follow.</p>
<h2>Curating Ideas: References and Memes</h2>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/01/reference.jpg" border="0" width="100" height="98" alt="Reference"><br />
<b>Reference</b>
</div>
<p>Let&#8217;s start with a reference: a book, film, song, journal paper, legal ruling,  or whatever the source material you are browsing. You can enter this material in MemexPlex, and then, as you are working through it, capture those ideas from it that you wish to relate back to later or would simply enjoy having in your collection. The reference form is very flexible so you may enter attributes in any format you like, and I&#8217;ve even provided a search window to browse items at <a href="http://www.amazon.com/">Amazon.com</a> and autopopulate your reference with the appropriate data from their database for quicker data entry.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/01/meme.jpg" border="0" width="100" height="101" alt="Meme"><br />
<b>Meme</b>
</div>
<p>Once you have a reference you may begin capturing important or entertaining ideas from it in the form of <b>memes</b>. A meme is a unit of measurement for an idea that gets replicated. A popular example of a meme is <a href="http://lolcats.com/">LOL Cats</a>, a funny fad that spread virally on the World Wide Web<sup>1</sup>. MemexPlex is for curators of memes.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/01/referencesmemes.jpg" border="0" width="500" height="500" alt="References and Associated Memes"><br />
<b>References and Associated Memes</b>
</div>
<p>A recent example of a reference I picked up at a used bookstore is Esther Dyson&#8217;s <a href="http://memexplex.com/Reference/id=95"><em>Release 2.0</em></a>. Most people reading Dyson&#8217;s book wouldn&#8217;t be very impressed. Much of what she writes concerning information technology is considered common knowledge and taken for granted today, but this wasn&#8217;t the case when she wrote the book in 1996. </p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/01/releasetwooh.jpg" border="0" width="500" height="295" alt="Release 2.0 reference on MemexPlex with memes"><br />
<b><a href="http://memexplex.com/Reference/id=95"><em>Release 2.0</em> reference on MemexPlex with memes</a></b>
</div>
<p>So, even though this incredibly prescient work has been overcome by events, there are still a great deal of insights left to be found within it, just not enough to justify book publishers to continue printing it. As a curator of ideas, I happily captured a number of memes from the book into my MemexPlex collection.</p>
<h2>Connecting Ideas: Folksonomies, Triples and Schemas</h2>
<p>Flat lists of references and memes aren&#8217;t especially useful, so in addition to text-search, filters, and sorting options, I&#8217;ve added several other ways to semantically-link data into MemexPlex. One standard is to link references by author, and another is to link all MemexPlex objects with meta-tags, which are referred to as <a href="http://memexplex.com/Meme/id=213">folksonomies</a> in the application for the sake of acuity if and when I am able to entertain including ontologies.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/01/triple.jpg" border="0" width="100" height="86" alt="Triple"><br />
<b>Triple</b>
</div>
<p>Additionally, MemexPlex curators may create <b>triples</b> to generate a semantic connection between two memes. Similar to <a href="http://en.wikipedia.org/wiki/Resource_Description_Framework">RDF Triples</a>, these objects create <em>subject-predicate-object</em> relationships between memes. For example, at the recent <a href="http://memexplex.com/Reference/id=98">Rally to Restore Sanity</a>, Jon Stewart presented an inspiring example of <a href="http://memexplex.com/Meme/id=230">cars merging lanes on the freeway</a> as evidence why civilization works. When I heard this, I immediately thought of David Brin&#8217;s <a href="http://memexplex.com/Reference/id=97"><em>Disputation Arenas</em></a> essay, and his example of a <a href="http://memexplex.com/Meme/id=229">four way stop intersection</a> for the same purpose. </p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/01/triples.jpg" border="0" width="500" height="500" alt="Triples Semantically Connecting Memes"><br />
<b>Triples Semantically Connecting Memes</b>
</div>
<p>I created a triple to link the two memes for both <a href="http://memexplex.com/Triple/id=2">Using Road Traffic as a Metaphor for Civilization</a>. Now, when I or someone else views either of these memes, they will also find this triple leading them to additional useful information. Predicates for triples don&#8217;t just have to be similarities either; they can establish a variety of semantic relationships including comparisons, concessions, conclusions, summaries, and others.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/01/schema.jpg" border="0" width="100" height="99" alt="Schemas"><br />
<b>Schema</b>
</div>
<p>For less strictly defined associations between numerous memes, I&#8217;ve created <b>schemas</b>, which are like buckets for storing collections of related memes. If I have an idea for a future blog post, I&#8217;ll create a schema and toss the memes useful to my concept into it. This way, I have both a list of useful blockquotes and the references to go with them when I go to write my post.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/01/schemas.jpg" border="0" width="500" height="500" alt="Schemas Semantically Grouping Memes"><br />
<b>Schemas Semantically Grouping Memes</b>
</div>
<p>For example, one of my pet peeves is the irrational standards for spelling in American English. I firmly believe that illiteracy in our country could be greatly reduced if we reworked our words to be spelled phonetically. Most people think this idea is silly and laugh when they see slogans like &#8220;&#8216;Enuf&#8217; is enuf, &#8216;Enough&#8217; is too much!&#8221; advocating spelling reform.</p>
<p>As silly as the idea appears on its face, it is something advocated by many great minds throughout history, including <a href="http://memexplex.com/Meme/id=102">Benjamin Franklin</a>, <a href="http://memexplex.com/Meme/id=97">Richard Feynman</a>, and Isaac Asimov. So I started collecting all of these memes into a schema titled <a href="http://memexplex.com/Schema/id=4">The Tyranny of English Grammar</a>. Now, when I see someone laughing off the idea of spelling reform, I can open a well-referenced can of intellectual whup-ass on them.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2011/01/schemamemereference.jpg" border="0" width="500" height="351" alt="Schema With Memes and References"><br />
<b>Schema With Memes and References</b>
</div>
<h2>MemexPlex&#8217;s Next Steps</h2>
<p>Presently MemexPlex is in a beta stage of development. I&#8217;m opening it up to new users with the understanding that there are still bugs in the system, and things might break here and there as I work them out and refine the functionality. I&#8217;m hoping users will <a href="http://www.memexplex.org/todo-list/">report problems they find</a> on the development blog.</p>
<p>Also, I am releasing MemexPlex as an <a href="http://code.google.com/p/memexplex/">open-source project on Google Code</a>. So if there are any other developers out there who are interested in contributing to the project, you are more than welcome. Once MemexPlex is working well and optimized for individuals, I would like to start working on community features that will allow collaboration, sharing ideas, and a slashdot-style rating system to empower the community to regulate itself.</p>
<p>Finally, I have also posted a <a href="http://www.memexplex.org/">link for donations</a> on the blog for anyone interested in supporting the project financially. My web hosting costs are low and I would be paying them anyway, but if you find the application useful, sufficient funding would allow me to work on it fulltime. : )</p>
<hr width="90%">
<p><b>Notes</b></p>
<p><sup>1</sup> Other examples of memes are alphabets, keyboard layouts, political ideologies, and driving on the right or left side of the road. Although the concept of the meme was first introduced by Richard Dawkins in his book <a href="http://memexplex.com/Reference/id=109"><em>The Selfish Gene</em></a>, a fantastic introduction to the science of memetics is Susan Blackmore&#8217;s <a href="http://memexplex.com/Reference/id=108"><em>The Meme Machine</em></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2011/01/10/introducing-memexplex-a-citation-management-tool-for-researchers-and-active-readers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Advice to an IT Graduate</title>
		<link>http://ideonexus.com/2010/12/13/advice-to-an-it-graduate/</link>
		<comments>http://ideonexus.com/2010/12/13/advice-to-an-it-graduate/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 05:00:11 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=7841</guid>
		<description><![CDATA[Will Code JAVA for Food (Even with Eclipse) Credit: cismet_geeks A newly-minted graduate in software development recently wrote me after finding my resume online, seeking career advice on how to succeed in the IT professional world. These were my personal thoughts; maybe other readers will have additional insights to add in the comments section: Dedicate [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<a href="http://www.flickr.com/photos/cismet/2440165713/"><img src="http://ideonexus.com/wp-content/uploads/2010/11/willcodeforfood.jpg" border="0" width="570" height="428" alt="Will Code JAVA for Food"></a><br />
<b>Will Code JAVA for Food</b><br />
(Even with Eclipse)<br />
Credit: <a href="http://www.flickr.com/photos/cismet/2440165713/">cismet_geeks</a>
</div>
<p>A newly-minted graduate in software development recently wrote me after <a href="http://ryansomma.com">finding my resume online</a>, seeking career advice on how to succeed in the IT professional world. These were my personal thoughts; maybe other readers will have additional insights to add in the comments section:</p>
<h3>Dedicate yourself to lifelong learning.</h3>
<p>Don&#8217;t be afraid to research while you&#8217;re on the job. You are a professional, a technical expert, and must keep up with the literature and latest developments in your field. Search engines and forums will provide the most practical and nuanced advice, while organizations like the IEEE and ACM provide the academic sustenance. Remember what Adlai Stevenson said, &#8220;I reserve the absolute right to be smarter today than I was yesterday.&#8221;</p>
<h3>Work with people who are smarter than you.</h3>
<p><span id="more-7841"></span><br />
Getting a job as the big-chief in a small organization will give you bragging rights and a higher salary, but it will also be a dead end for your career because you have nowhere to grow. Getting an entry-level position with a medium sized organization will start you with a lower salary, but you will have lots to learn and your salary will eventually grow much higher in the long run. Working with a variety of people who have ten or more years in the profession is a fantastic learning experience, and will broaden your horizons in ways that will make you all the more valuable to the workforce.</p>
<h3>Put forth just a little more effort than your coworkers.</h3>
<p>It&#8217;s amazing how many people just want to get by, expecting their supervisors to direct their every action. If you are happy where you are at, and see the possibility of being selected for advancement as the environment grows, then you need to focus on the nuances of the system in which you are working. <b>Take notes:</b> I kept a notebook of all the little nuances of our system, which quickly made me a go-to person whenever anything went wrong or if someone needed help. It also empowered me to work independently on most tasks, and management notices when you get them checkmarks on their todo list. </p>
<p>Certifications are nice if you think you will need to change companies in order to advance your career past a certain point, they act like keywords to get you noticed by employers; however, if you take on extracurricular training, make sure it will give you deeper insights into the technologies you are presently working with. You might convince management to pay for it too. : )</p>
<h3>Work in the presentation layer.</h3>
<p>By this I mean code for the presentation layer; be responsible for the User Interface. By working in this aspect of the system, you will be closer to the actual business and learn how the users actually work with it. The interface is where you&#8217;re going to be connected to the customer. You will be visible to them, and that social interaction will be the biggest boon to your career. The customer can&#8217;t rave about how helpful you are if you&#8217;re sequestered in a dark cubicle coding SQL, no matter how crucial that effort is (In fact, being crucial in such a position will often <em>keep you from advancement</em>).</p>
<p>Another benefit to working with the user interface is that everything bubbles up to it. If something goes wrong in the business or persistence layers, it will manifest in the UI, making you the first-responder, which brings me to my next lesson:</p>
<h3>Learn all aspects of the business.</h3>
<div align="center">
<a href="http://xkcd.com/485/"><img src="http://ideonexus.com/wp-content/uploads/2010/11/layersofit.jpg" border="0" width="570" height="538" alt="Layers of Information Technology"></a><br />
<b>Layers of Information Technology</b><br />
(Click to Enlarge)<br />
Credit: <a href="http://xkcd.com/485/">xkcd</a>
</div>
<p>Too many developers work with blinders on, keeping their head down and only focusing on what they are directly responsible for. Don&#8217;t be that way. If you think your code isn&#8217;t working because of someone else&#8217;s work, debug that person&#8217;s work and find the problem. Then, not only can you give them the solution when you bring it up, but you will understand their solution and gain a wider perspective on the whole system.</p>
<p>But don&#8217;t be a jerk about it&#8230; Which brings me to the most important principle:</p>
<h3>Be humble.</h3>
<p>Don&#8217;t ever <i>ever</i> <b><i>ever</i></b> mention fault when discussing problems with a system. Everyone checks in code that doesn&#8217;t work or was poorly written from time to time. Time wasted pointing fingers is time not spent solving the problem. I&#8217;ve watched developers waste hours trying to figure out who was responsible for a bug in the system, all so they could make a big production out of exposing their peer&#8217;s error. No one is impressed by this, and the peer gets antagonized by it. </p>
<p>If you see an error in someone&#8217;s code, just fix it. If the team is dealing with a bug, just fix it. Don&#8217;t get irritated when someone comes to you for the third or nth time to get an IP address or database vnode, take it as a sign that you are making yourself invaluable to the organization. Treat all your coworkers like customers, provide services for them, and when it comes time for management to promote, they will see you as the person everyone <em>enjoys</em> coming to for help, the person the customers like working with, and the person management knows is capable of tackling any problem thrown at him or her.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2010/12/13/advice-to-an-it-graduate/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Cloud Computing&#8217;s Real Strength</title>
		<link>http://ideonexus.com/2010/11/15/cloud-computings-real-strength/</link>
		<comments>http://ideonexus.com/2010/11/15/cloud-computings-real-strength/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 05:00:46 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=7793</guid>
		<description><![CDATA[cloud passing by Credit: Diego Sevilla Ruiz “Cloud Computing will revolutionize IT!” Really? What&#8217;s Cloud Computing? &#8220;Instead of people installing software on their local computers, future applications will run on host computers!&#8221; So Cloud Computing is just a funny name for a client/server Mainframe Architecture? &#8220;But it&#8217;s not running on a Mainframe! It&#8217;s running in [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<a href="http://www.flickr.com/photos/dsevilla/491134213/"><img src="http://ideonexus.com/wp-content/uploads/2010/11/cloud1.jpg" border="0" width="334" height="500" alt="cloud passing by"></a><br />
<b>cloud passing by</b><br />
Credit: Diego Sevilla Ruiz
</div>
<p>“Cloud Computing will revolutionize IT!” </p>
<p><em>Really? What&#8217;s Cloud Computing?</em></p>
<p>&#8220;Instead of people installing software on their local computers, future applications will run on host computers!&#8221;</p>
<p><em>So Cloud Computing is just a funny name for a client/server Mainframe Architecture?</em></p>
<p>&#8220;But it&#8217;s not running on a Mainframe! It&#8217;s running in <em>the Cloud</em>!&#8221;</p>
<p><em>So it&#8217;s an application running on the World Wide Web&#8230; like Yahoo Mail and Google Docs?</em></p>
<p>&#8220;Not at all! In Cloud Computing, you own your application and the data running on it!&#8221; </p>
<p><em>So it&#8217;s an application I upload to my web host, like WordPress.org or EyeOS&#8230;</em></p>
<p>&#8220;No. No. No. Because with Cloud Computing you only pay for the processing power you use!&#8221; </p>
<p><b><em>Etc, etc, etc.</em></b></p>
<p>This sums up my last two years&#8217; worth of trying to figure out what the heck this &#8220;Cloud Computing&#8221; thing is. I&#8217;ve downloaded and then uploaded cloud desktop applications that work in ways so esoteric as to make them useless. I joined Amazon&#8217;s AWS only to find it offers little more than my current Web Hosting provider. I&#8217;ve read lots of articles brimming with buzzwords like &#8220;single-tenancy&#8221;, &#8220;service-oriented architecture&#8221;, and &#8220;integration connector,&#8221; none of these articles apply a consistent definition of &#8220;the Cloud.&#8221;<br />
<span id="more-7793"></span></p>
<div align="center">
<a href="http://www.flickr.com/photos/swamibu/1407809687/"><img src="http://ideonexus.com/wp-content/uploads/2010/11/cloud2.jpg" border="0" width="500" height="375" alt="Clouds"></a><br />
<b>Clouds</b><br />
Credit: Swamibu
</div>
<p>The biggest problem with the concept of &#8220;Cloud Computing&#8221; is that people define it extremely broadly to mean any application accessed online and extremely narrowly to mean any application you own the code to, but is hosted on a 3rd party server. Depending on how you define it, you&#8217;ve either been in the Cloud since you first opened up a web mail account over a decade ago or when you first uploaded a dynamic web page to a web host&#8230; also probably over a decade ago. I&#8217;ve come to prefer the narrow definition, because it makes Cloud Computing, not something new, but something old that businesses and individuals are finally starting to discover.</p>
<h3>Cloud Computing VS Software as a Service</h3>
<p><a href=”http://www.theatlantic.com/science/archive/2010/07/when-buzzwords-collide-open-source-meets-the-cloud/60025/”>Contrary to many perceptions</a> Gmail, Hotmail, and Yahoo mail are not a cloud applications. Google Docs is not part of the Cloud, neither are Facebook, Flickr, or any of the third-party applications we take for granted online today. These are examples of <em>Software as a Service (SaaS)</em>, and, while they are useful, they are lacking one very important feature: <b>portability</b>.</p>
<p>If a third-party is hosting my data, then that host could vanish at any time, taking my bits with it, as when Yahoo Briefcase closed shop and I didn&#8217;t get the warning email, I lost all the files I had backed up in that online storage service. When I migrated from Yahoo Mail to Gmail, I had to pay for a POP3 Yahoo account so I could download my many years&#8217; worth of important correspondence. In other words, my data wasn&#8217;t mine; I had to pay for it if I wanted to take it with me somewhere else.</p>
<p>For myself, the worst example of an online application lacking the portability benefits of Cloud Computing is flickr. I pay flickr $25 a year to host my photos in a way that makes it easy for people to find them for creative commons use, and have uploaded more than 10 gigabytes of image data and hundreds of hours in applying metatags and descriptions to them. If I die tomorrow and my account expires, all that effort vanishes from the World Wide Web. If I find a better image-hosting service, I will have to reorganize and reupload all those images once again. My investment of personal time and money into flickr is an important example of the disadvantage of SaaS compared to the Cloud.</p>
<div align="center">
<a href="http://www.flickr.com/photos/look4u/2412156385/"><img src="http://ideonexus.com/wp-content/uploads/2010/11/cloud3.jpg" border="0" width="500" height="350" alt="UFO Cloud"></a><br />
<b>UFO Cloud</b><br />
Credit: Scott Shiffman
</div>
<p>In contrast to these, when I ran this blog on WordPress.com, the SaaS version of the WordPress blogging software, they owned the software code and my data, but, when I decided to put ideonexus in the Cloud, they were nice enough to provide an export tool. I was able to easily migrate a year&#8217;s worth of effort onto my own wordpress blog software downloaded from the open-source wordpress.org and host it on Bluehost.com. </p>
<p>Now I own the code and I own the data. When I recently wanted to archive my several years&#8217; worth of Science Etcetera posts, I was able to do so with a simple SQL statement, while the same task on WordPress.com would have meant manually unpublishing each one of those thousand or so posts in page-sized batches. When a new version of WordPress had a bug that prevented me from scheduling posts in the future, I was able to go in and code a workaround. I didn&#8217;t have to wait for a new release because I owned the code. I am also free to migrate to another host with minimal effort, I simply export the MySQL database, ftp down the content, and ftp upload the content to the new host.</p>
<div align="center">
<a href="http://www.flickr.com/photos/33224129@N00/3208014258/in/photostream/"><img src="http://ideonexus.com/wp-content/uploads/2010/11/cloud4.jpg" border="0" width="500" height="333" alt="Day 18 - Clouds"></a><br />
<b>Day 18 &#8211; Clouds</b><br />
Credit: AlwaysBreaking
</div>
<p>In the Cloud, I own my data, I own my code, and I can move all of it elsewhere at any time. I&#8217;ve been hosting web applications and data on host servers for more than a decade now, as have most of my friends. We&#8217;ve been Cloud Computing for an IT eternity since before the &#8220;Cloud&#8221; buzzword ever came on the stage.</p>
<p>That’s right. Corporate America is discovering that instead of investing thousands or even hundreds of thousands of dollars in an air-conditioned server closet to host their applications, they could be paying BlueHost or GoDaddy five bucks a month to manage this for them. If Cloud Computing is an impending revolution, then it is only in the domain of business to business services, but that&#8217;s okay, better to catch up with geek culture late than never.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2010/11/15/cloud-computings-real-strength/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Entropy for Information Systems</title>
		<link>http://ideonexus.com/2010/08/30/entropy-for-information-systems/</link>
		<comments>http://ideonexus.com/2010/08/30/entropy-for-information-systems/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 05:00:49 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>
		<category><![CDATA[Ionian Enchantment]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=6828</guid>
		<description><![CDATA[Entropy is a fairly easy concept to define, the measure of disorder in a closed system, and a rather difficult concept to grasp, but one that furnishes us with wonderful insights into the way the world around us operates. The amount of entropy in the Universe is ever-increasing, the energy concentrated in our sun is [...]]]></description>
			<content:encoded><![CDATA[<p>Entropy is a fairly easy concept to define, the <a href="http://en.wikipedia.org/wiki/Introduction_to_entropy">measure of disorder in a closed system</a>, and a rather difficult concept to grasp, but one that furnishes us with wonderful insights into the way the world around us operates. The amount of entropy in the Universe is ever-increasing, the energy concentrated in our sun is constantly radiating away in light and heat, dissipating into an unusable state, absolute undifferentiation.</p>
<div align="center">
<a href="http://www.flickr.com/photos/riccarducci/1009383068/"><img src="http://ideonexus.com/wp-content/uploads/2010/08/sunflower.jpg" border="0" width="425" height="272" alt="Sunflower"></a><br />
<b>Sunflower</b><br />
Credit: <a href="http://www.flickr.com/photos/riccarducci/1009383068/">riandreu</a>
</div>
<p>Living things form &#8220;<a href="http://books.google.com/books?id=DQYXoRx9CcEC&#038;pg=RA7-PA9&#038;lpg=RA7-PA9&#038;dq=entropy+%22pockets+of+resistance%22&#038;source=bl&#038;ots=OJDyckxxVs&#038;sig=g0DO4glm0attUd7fFoB2WL4pHg0&#038;hl=en&#038;ei=JNN6TKi9AYaKlwfj5_jqCw&#038;sa=X&#038;oi=book_result&#038;ct=result&#038;resnum=5&#038;ved=0CCYQ6AEwBA#v=onepage&#038;q=entropy%20%22pockets%20of%20resistance%22&#038;f=false">pockets of resistance</a>&#8221; to the force of entropy. They do this through <a href="http://en.wikipedia.org/wiki/Negentropy">syntropy</a>, or negentropy, which is the entropy we export to reduce our internal entropy; in other words, it&#8217;s the waste energy we generate to keep our soma in an organized working state. We collect the sun&#8217;s waste energy and use it to organize ourselves through syntropy.</p>
<div align="center">
<img src="http://ideonexus.com/wp-content/uploads/2010/08/informationentropy.jpg" border="0" width="425" height="283" alt="How Much Information Entropy?"><br />
<b>How Much Information Entropy?</b><br />
Credit: Moi
</div>
<p>In Information Systems, entropy, known as <a href="http://en.wikipedia.org/wiki/Entropy_(information_theory)">Shannon entropy</a> for <a href="http://ideonexus.com/category/science-etcetera/page/10/">Claude Shannon</a>, is the measure of uncertainty in a random variable. A coin toss has one bit of entropy for the 50/50 chance of it turning up heads or tails, 0 or 1. A six-sided dice carries three bits of entropy for the possible outcomes it may produce with each roll (1 (000), 2 (001), 3 (010), 4 (011), 5 (100), 6 (101)). The weather has an amount of entropy difficult to quantify, but it varies from location to location. The weather in New York has more entropy than the weather in Southern California because Southern California has a more consistent climate. Similarly, in our first example, if we were dealing with a rigged coin, one that turned up heads more often than tails, then there would be less than one bit of entropy in each coin toss because we would expect heads more frequently than tails.<br />
<span id="more-6828"></span></p>
<hr width="90%">
<p>On the face of it, the only thing in common with the thermodynamic and information theory definitions is that entropy is a measure of disorder, but the two are analogous in other ways. In our thermodynamic Universe things move toward a state of increasing entropy, and a similar tendency towards a state of total uniformity occurs in an information system, only in reverse.</p>
<p>A living organism in an information system starts out in a world of absolute entropy, nothing is known. As that life interacts with its Universe, the amount of entropy in the Universe decreases for that being, and the amount of its internal entropy increases as what it knows becomes more of a variable to its peers. As the beings living in an information system decrease the entropy of their universe, it tends toward a state of absolute syntropy, absolute predictability.</p>
<p>We exist in a thermodynamic system, and it powers the information systems in our brains, the information systems we construct, and the information system these combine to form in our civilization. The increase of syntropy in an information system comes at the cost of an increase of entropy in the thermodynamic system powering it. Our thermodynamic system is winding down, a bad thing for us, but our information system is becoming increasingly more sophisticated, more syntropic. This brings a deeper insight to H.G. Wells&#8217; prescient observation: &#8220;Human history becomes more and more a race between education and catastrophe.&#8221;</p>
<hr width="90%">
<p><b>Notes:</b></p>
<li>With this understanding of Information Entropy, apply this deeper understanding to the <a href="http://www.nytimes.com/2008/04/08/science/08tier.html">Monty Hall Problem</a> (and the <a href="http://www.nytimes.com/2008/04/08/science/08monty.html">interactive demo of information entropy in effect</a>.</li>
<li>Playing with a deck of cards is also a fun way to think about information entropy. What&#8217;s the measure of entropy in a 52-card deck? What&#8217;s the entropy of just the suits?</li>
<li>Simulations and bioinformatics are giving us increasing syntropic power over previously chaotic (read &#8220;highly entropic&#8221;) systems. Chaos theory could just as well be &#8220;Information Entropy Theory.&#8221;</li>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2010/08/30/entropy-for-information-systems/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Three Methods for Providing a Print View of a Web Page</title>
		<link>http://ideonexus.com/2010/08/11/three-methods-for-providing-a-print-view-of-a-web-page/</link>
		<comments>http://ideonexus.com/2010/08/11/three-methods-for-providing-a-print-view-of-a-web-page/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 05:00:24 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=6816</guid>
		<description><![CDATA[Web developers put content online to be consumed, but we have little control over the mediums consuming it. Web pages are rendered on mobile phones, printers, televisions, and their semantic content consumed by a variety of bots, each with their own requirements and best-practices for layout. Here I&#8217;ll outline three commons solutions to providing a [...]]]></description>
			<content:encoded><![CDATA[<p>Web developers put content online to be consumed, but we have little control over the mediums consuming it. Web pages are rendered on mobile phones, printers, televisions, and their semantic content consumed by a variety of bots, each with their own requirements and best-practices for layout. Here I&#8217;ll outline three commons solutions to providing a print version of web page content.</p>
<h2>Defining Printer-Friendly Design</h2>
<p>First we need to define the differences between design for the screen and design for print. Computer monitors and mobile phones are very different media from paper, even when displaying static content. Screens are backlit, while paper is reflective. Web development for the screen must take into account screen resolutions, while presentation on paper must consider page dimensions and toner consumption.</p>
<p>Jennifer Kyrnin has a <a href="http://webdesign.about.com/od/printerfriendly/a/aa041403a.htm">definitive list of print-friendly attributes</a>, changes that should be made to web content before outputting it to the printed document. Here are the three I find most important, but the list can get much longer depending on your needs:</p>
<ol>
<li>Eliminate dark backgrounds and darken font colors presented over them.</li>
<li>Do something with links, either display full URLs, emphasize the text, or remove them altogether.</li>
<li>Remove headers, footers, side menus, and advertising.</li>
</ol>
<h2>Server-Side Solutions</h2>
<p>One strategy for handling both print and screen layouts of a web page is to have two methods for building the page on the server. For example, <a href="http://www.w3schools.com/">w3schools&#8217;</a> &#8220;PRINT&#8221; button at the bottom of each page opens a new window/tab accessing the same page, but with an &#8220;output=print&#8221; variable added to the end of the URL, which the VBScript accesses via a GET method. When the VBScript detects the &#8220;print&#8221; flag, it builds the page without all the extraneous content.<br />
<span id="more-6816"></span></p>
<div align="center">
<a href="http://www.w3schools.com/css/css_mediatypes.asp"><img src="http://ideonexus.com/wp-content/uploads/2010/08/w3schools.png" border="0" width="400" height="476" alt="w3schools Regular and Print View"></a><br />
<b>w3schools Regular and Print View</b>
</div>
<p><b>Pros:</b></p>
<ol>
<li>Provides a perma-link for users to reference the main content of your page without extraneous information.</li>
<li>Provides a primitive type of Print Preview functionality for the user.</li>
<li>Setting up your application to display print-friendly pages in this way sets it up to display other cool things, like XML versions and REST services.</li>
</ol>
<p><b>Cons:</b></p>
<ol>
<li>Print view must be turned on manually, doesn&#8217;t automatically render a print-version of the page for printers.</li>
<li>We are making a return trip to the server, and probably a database hit too, in order to get information we are already displaying on the screen.</li>
<li>Provides a perma-link for users to bypass your advertising and menus when referencing your content.</li>
</ol>
<h2>Strictly CSS Solutions</h2>
<p>Another technique involves applying cascading style sheets to targeted mediums. In the example below, the first CSS file describes the page display, while the second css file describes the page display for printers specifically:</p>
<pre>
&lt;link rel="stylesheet" type="text/css" href="screen.css" /&gt;
&lt;link rel="stylesheet" type="text/css" href="print.css" <b>media="print"</b> /&gt;
</pre>
<p>Alternatively, you can use the <a href="http://www.w3schools.com/CSS/css_mediatypes.asp"><b>@media Rule</b></a> with an inline style like so:</p>
<pre>
&lt;style type="text/css"&gt;
@media screen
{
  body {font-family:verdana,sans-serif;font-size:12px;}
}
@media print
{
  body {font-family:times,serif;font-size:10px;}
}
@media screen,print
{
  body {font-weight:bold;}
}
&lt;/style&gt;
</pre>
<p>Using this strategy involves identifying all of the items on the page we don&#8217;t want printed and setting their styles to &#8220;display: none;&#8221; so that they appear on our screen, but don&#8217;t appear in our print outs.</p>
<p><b>Pros:</b></p>
<ol>
<li>The same URL automatically renders the page in screen- or print-appropriate layouts depending on the device rendering it.</li>
<li>There is no &#8220;print&#8221; button or link cluttering up the page, the functionality is abstracted cleanly away from the user.</li>
</ol>
<p><b>Cons:</b></p>
<ol>
<li>Having a print.css file with media=&#8221;print&#8221; is a violation of the <a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself">DRY principle</a>. It leads to maintaining duplicate code. It&#8217;s better to use one CSS file and bracket print and view-specific design choices in @media tags.</li>
<li>Means having to put ID attributes around all the content you don&#8217;t want to display in order to hide it from the print view.</li>
<li>Takes some control away from the user, makes it inconvenient for people who want to save your page electronically. I don&#8217;t print web pages. I feel it defeats the purpose of using computers. So I like to pull up the print-version of a page in my web browser and save just the article. @media=&#8221;print&#8221; means I have to File>Print and then save electronically in some BS proprietary format instead of html.</li>
</ol>
<h2>JavaScript Solutions</h2>
<p>With some JavaScript-driven DOM manipulation, you can come up with a function that will provide a pop-up window &#8220;print preview&#8221; that displays just the content on the page that you want printable. The following openPrintView() function accepts the id of the html element you want to display in a printable view. This function then uses the printFormat() function to strip the links out of the text provided it.</p>
<pre>
&lt;script type="text/javascript"&gt;
/**
 * Strips HREF tags from an html string.
 * Can be modified to strip other tags as well.
 */
function printFormat(html)
{
    var container = document.createElement("div");
    container.innerHTML = html;
    var newHTML = container.innerHTML.toString();
    var anchors = container.getElementsByTagName("a");
    for (var i = 0; i &lt; anchors.length; i++)
    {
        var hrefcontainer = document.createElement("div");
        hrefcontainer.appendChild(
        anchors[i].cloneNode(true)
        );
        var href = hrefcontainer.innerHTML.toString();
        var text = anchors[i].innerHTML.toString();
        newHTML = newHTML.replace(href,text);
    }
    return newHTML;
}
/**
 * @param html: The block of html to be displayed in the print window.
 */
function openPrintView(content)
{
    // specify window parameters
    printWin = window.open
    (
       "",
       "print",
       "width=600,height=450,status,scrollbars"
       + ",resizable,screenX=20,screenY=40"
       + ",left=20,top=40"
    );
    // write content to window
    printWin.document.write('&lt;html>&lt;head&gt;');
    printWin.document.write('&lt;link rel="Stylesheet" type="text/css" href="style.css"&gt;');
    printWin.document.write('&lt;/head>&lt;body&gt;');
    printWin.document.write('&lt;span id="printcontrols" style="float:right;"&gt;');
    printWin.document.write('&lt;a href="javascript:window.print();">print&lt;/a&gt;');
    printWin.document.write(' | &lt;a href="javascript:window.close();"&gt;close&lt;/a&gt;');
    printWin.document.write('&lt;/span&gt;');
    printWin.document.write
    (
        printFormat(
        document.getElementById(content).innerHTML)
    );
    printWin.document.write('&lt;/body&gt;&lt;/html&gt;');
    printWin.document.close();
    printWin.focus();
 }
&lt;/script&gt;
</pre>
<p>You can then apply a style rule to hide just the print controls in the new window:</p>
<pre>
&lt;style type="text/css"&gt;
@media print
{
    #printcontrols
    {
        display:none;
    }
}
&lt;/style&gt;
</pre>
<p><b>Pros:</b></p>
<ol>
<li>Uses an inclusion rather than exclusion strategy. You can grab other elements off the page using <a href="http://stackoverflow.com/questions/935127/how-to-access-parent-iframe-from-javascript">parent.getElementById()</a> methods and writing them into the window. This way, when new elements are added to the page, there is no need to modify the print CSS to exclude them.</li>
<li>Can be used to strike a balance between presentation control and user control. The JavaScript references just the block of html you want to print, so on a page displaying multiple articles or reports, the user can pop-up a print-view of just the section they want.</li>
<li>Can serve as a &#8220;Print Preview&#8221; function for slicker web browsers, like Google Chrome, that don&#8217;t have that feature.</li>
</ol>
<p><b>Cons:</b></p>
<ol>
<li>No permalink with this method (A permalink could be provided with JavaScript that reformats the page onload, but that’s klugey.)</li>
<li>Like the server-side solution, this must be triggered.</li>
</ol>
<p>While this last method is my preference because I&#8217;m a JavaScript geek, each of these methods is valid. Depending on your skill set and aesthetic, any of these, or a combination of two can serve your visitors well. </p>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2010/08/11/three-methods-for-providing-a-print-view-of-a-web-page/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Aquires the Semantic Web, or Why Metaweb Matters</title>
		<link>http://ideonexus.com/2010/07/20/google-aquires-the-semantic-web-or-why-metaweb-matters/</link>
		<comments>http://ideonexus.com/2010/07/20/google-aquires-the-semantic-web-or-why-metaweb-matters/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 05:00:20 +0000</pubDate>
		<dc:creator>ideonexus</dc:creator>
				<category><![CDATA[Geeking Out]]></category>

		<guid isPermaLink="false">http://ideonexus.com/?p=6807</guid>
		<description><![CDATA[Isaac Asimov Entry on Freebase With Google&#8217;s aquisition of Metaweb the searchopolis takes a stake in the seemingly-forever-emerging Semantic Web, a concept with endlessly verbose standards and few demonstrable applications for all it promises. I yawned when I read of Google&#8217;s move, remembering a few years ago when I explored Freebase, Metaweb&#8217;s semantic database. I [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<a href="http://www.freebase.com/view/en/isaac_asimov"><img src="http://ideonexus.com/wp-content/uploads/2010/07/freebase.jpg" border="0" width="425" height="302" alt="Isaac Asimov Entry on Freebase"></a><br />
<b>Isaac Asimov Entry on Freebase</b>
</div>
<p>With Google&#8217;s <a href="http://googleblog.blogspot.com/2010/07/deeper-understanding-with-metaweb.html">aquisition of Metaweb</a> the searchopolis takes a stake in the seemingly-forever-emerging Semantic Web, a concept with endlessly verbose standards and few demonstrable applications for all it promises. I yawned when I read of Google&#8217;s move, remembering a few years ago when I explored <a href="http://freebase.com">Freebase</a>, Metaweb&#8217;s semantic database. I even tried downloading and playing with their semantically-rich database version of Wikipedia&#8230; and was really unimpressed. It was 3GB of schemas, xml, and ontology, seeming to add up to little of practical value.</p>
<p>Was I ever wrong. I returned to the database this last weekend and found a community of several hundred users maintaining a <a href="http://www.freebase.com/schema">browsable schema</a>, with some of these volunteer ontologists having contributed millions of facts to the database the same way people devote thousands of hours to maintaining Wikipedia. On its surface, the database just seems like a bunch of web pages, you click through the associations as you would on Wikipedia, with articles and entries leading into each other in standard hypertext fashion.</p>
<p>Where the value of <em>semantic</em> associations comes into play is when you experiment with the <a href="http://www.freebase.com/app/queryeditor">Freebase Query Editor</a>, where you can search for data in explicit detail, tailoring it to your specific needs. For example, with the following query I can get a <a href="http://www.freebase.com/app/queryeditor?q=[{%22b:type%22:%22/computer/computer_scientist%22,%22date_of_birth%22:null,%22date_of_birth%3C%3D%22:%221950%22,%22education%22:[{%22institution%22:null,%22id%22:null}],%22name%22:null,%22id%22:null,%22type%22:%22/people/person%22}]">list of computer scientists born before 1950</a>:</p>
<pre>
[{
  "b:type":        "/computer/computer_scientist",
  "date_of_birth": null,
  "date_of_birth<=": "1950",
  "education": [{
    "institution": null,
    "id":          null
  }],
  "name":          null,
  "id":            null,
  "type":          "/people/person"
}]
</pre>
<p><span id="more-6807"></span><br />
A slight modification, and we can <a href="http://www.freebase.com/app/queryeditor?q=[{%22b:type%22:%22/computer/computer_scientist%22,%22date_of_birth%22:null,%22date_of_birth%3C%3D%22:%221950%22,%22education%22:[{%22institution%22:%22Harvard%20University%22,%22id%22:null}],%22name%22:null,%22id%22:null,%22type%22:%22/people/person%22}]">restrict the list to just those scientists affiliated with Harvard</a>:</p>
<pre>
[{
  "b:type":        "/computer/computer_scientist",
  "date_of_birth": null,
  "date_of_birth<=": "1950",
  "education": [{
    "institution": "<b>Harvard University</b>",
    "id":          null
  }],
  "name":          null,
  "id":            null,
  "type":          "/people/person"
}]
</pre>
<p>This is a person-instigated search, but Freebase offers many ways for other applications to take advantage of its data. With REST services provided by Freebase, we can run JSON queries to inform our web applications like so:</p>
<p><a href="http://api.freebase.com/api/service/mqlread?query={%22query%22:{%22type%22:%20%22/people/person%22,%22b:type%22:%22/computer/computer_scientist%22,%22name%22:[],%22date_of_birth%22:[]}}">http://api.freebase.com/api/service/mqlread?query={%22query%22:{%22type%22:%20%22/people/person%22,%22<br/>b:type%22:%22/computer/computer_scientist%22,%22name%22:[],%22<br/>date_of_birth%22:[]}}</a></p>
<p>Or, if you prefer XML, try Freebase&#8217;s <a href="http://rdf.freebase.com/">RDF Browser</a>, where I queried for <a href="http://rdf.freebase.com/rdf/en/isaac_asimov">Isaac Asimov in RDF</a> and got back a huge amount of semantic data. Currently the API only allows a measly <strike>100kb of data downloading</strike> 100k of HTTP requests a day, but with Google&#8217;s backing, this database could start providing semantically-rich data to applications all over the World Wide Web.</p>
<p>I know Google will keep it free, the company&#8217;s business model is built entirely on the universe of free stuff online, and since most of the content in the database is fueled by Wikipedia, it&#8217;s in the commons. I trust Google will increase Freebase&#8217;s accessibility, making it so everyone can play mashup games with the data, just as they did with Google Maps. And, of course, Google will reap incredible benefits to the services they already provide with this acquisition, meaning it&#8217;s a good time to invest in <a href="http://www.google.com/finance?q=goog">GOOG</a>.</p>
<hr width="90%">
<li><a href="http://wiki.freebase.com/wiki/Developers">Freebase Devlopers Wiki</a></li>
<li>Freebase was inspired by Daniel Hillis&#8217; <a href="http://www.edge.org/3rd_culture/hillis04/hillis04_index.html">Aristotle</a> essay in <i>Edge</i></li>
<li>Also check out <a href="http://www.google.com/advanced_search?hl=en">Google Advanced Search</a>, which I didn&#8217;t know about until today.</li>
]]></content:encoded>
			<wfw:commentRss>http://ideonexus.com/2010/07/20/google-aquires-the-semantic-web-or-why-metaweb-matters/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

