<?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>Tanner Helland (dot) Com</title>
	<atom:link href="http://www.tannerhelland.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tannerhelland.com</link>
	<description>Home of the award-winning author, VG composer, and programmer</description>
	<lastBuildDate>Fri, 13 Jan 2012 16:39:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Support Linux by Not Writing Linux-Only Software</title>
		<link>http://www.tannerhelland.com/3772/support-linux-stop-exclusive-software/</link>
		<comments>http://www.tannerhelland.com/3772/support-linux-stop-exclusive-software/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 23:46:54 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[Linux and Open Source]]></category>
		<category><![CDATA[Calligra]]></category>
		<category><![CDATA[cross-platform]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[GIMP]]></category>
		<category><![CDATA[Inkscape]]></category>
		<category><![CDATA[Kdenlive]]></category>
		<category><![CDATA[KOffice]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Openshot]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[video editing]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=3772</guid>
		<description><![CDATA[I sometimes see Linux users complain because their favorite Linux-only project decides to go cross-platform.  Decide to provide a Windows downloader for your project, and you can bet the trolls will come calling.  "You're betraying Linux," they'll claim.  "I refuse to support you now!"  Please, developers - ignore these people.]]></description>
			<content:encoded><![CDATA[<p><a  href="http://www.phoronix.com/scan.php?page=news_item&#038;px=MTAxMTU">Phoronix ran a story today</a> about the keynote address at this year&#8217;s <a  href="http://fedoraproject.org/wiki/FUDCon:India_2011">Fedora India Conference</a>.  The speech can be viewed in its entirety <a  href="http://urtalk.kpoint.in/kapsule/gcc-076d796f-9740-4628-8022-3e8811cfa366#tab_Bookmarks">here</a>, but one quote in particular is drawing attention:</p>
<blockquote><p>The number one enemy we have today is ourselves. And I mean that with all seriousness. Too many times we shoot ourselves in our own foot, by the way we act, the way we deal with people, in our narrowminded-ness that we develop.</p></blockquote>
<p>The quote and ensuing explanation appears around the 44:00 mark.  It&#8217;s worth a watch.</p>
<p>This is a great quote not just for Linux developers and contributors, but for Linux users as well.  It&#8217;s especially interesting coming from a Fedora project leader, considering the Fedora project is well-known for its <a  href="https://fedoraproject.org/wiki/Forbidden_items">very myopic rules about included software</a>.  (FYI &#8211; Fedora does not include any proprietary software, including proprietary drivers, Adobe Flash, Skype, etc.  Is that an example of &#8220;shooting yourself in the foot&#8221;&#8230;?)</p>
<p>In this article, I&#8217;m not going talk about the obvious &#8220;Linux is its own worst enemy&#8221; topics.  Plenty of other people are more qualified to talk about hardware support, FOSS jingoism, obnoxious users, design problems.  No, I&#8217;d like to mention something more obscure, but still deserving of attention:</p>
<p>Developing software exclusively for Linux.</p>
<p><strong>Linux-exclusive software should be the exception, not the rule</strong></p>
<p>One of the Linux-centric software projects I&#8217;ve followed over the past several years is the <a  href="http://www.openshotvideo.com/">OpenShot Video Editor project</a>.  I first discovered OpenShot while researching Linux video editing software in 2009 for <a  href="http://www.tannerhelland.com/1283/day-5-ubuntu-10-10-features/">a series of Ubuntu articles</a>.  At the time, I considered OpenShot the best choice for default video editor in Ubuntu 10.10.  Canonical eventually went with Pitivi instead, a decision I and many others wondered about.  To quote <a  href="http://everydaylht.com/2010/05/02/ubuntu-makes-another-poor-technology-choice-battle-of-the-movie-editors/">one article on the topic</a>:</p>
<blockquote><p>In my view, Ubuntu is doing desktop Linux a huge disservice by putting in basic, buggy tools and then advertising its product as having “video editing” capabilities. The short point is that it hasn’t, and users moving to Ubuntu on the basis of this promise will be bitterly disappointed, tainting their overall view of Linux.</p></blockquote>
<p>Canonical later rethought this decision; in 11.10 <a  href="http://www.omgubuntu.co.uk/2011/05/pitivi-to-be-removed-as-default-app-in-ubuntu-11-10/">they removed Pitivi from the default install</a>.  The reasoning behind the decision?  According to the linked article:</p>
<blockquote><p>The lack of ‘polish’ and maturity to the application was also highlighted, with one attendee wondering whether its ‘basic’ nature impacted negatively on the perception of the Ubuntu desktop as a whole.</p></blockquote>
<p>Ironic, eh?</p>
<p>I don&#8217;t mean to slam Pitivi.  <a  href="http://www.collabora.com/">Collabora</a>, the company who funds Pitivi&#8217;s development, is an incredible contributor to the open-source world and they employ a team of <a  href="http://www.collabora.com/about/who-we-are/">very talented developers</a>.  Seriously &#8211; they just released a demo of <a  href="http://mbatle.wordpress.com/2011/11/02/illusions-in-the-web-a-real-time-video-editor-built-in-html5/">a video editor built entirely in HTML5</a>.  They&#8217;re incredible.</p>
<p>But writing desktop video editing software is tough, especially video editing software provided for free.  Pitivi continues to grow and improve, but it simply wasn&#8217;t ready for the big-time in 2009.  That&#8217;s okay.</p>
<p>Anyway, OpenShot continues to improve at an impressive rate.  In late 2010, OpenShot crossed what I consider the &#8220;maturity line&#8221; for an open source project &#8211; it began work on <a  href="http://www.openshotvideo.com/2010/09/openshot-windows-challenge.html">a Windows port</a>.  The response to this was mixed, as always.  Many users realized the benefits of making OpenShot cross-platform.  Some, unfortunately, did not.  As one commenter said:</p>
<blockquote><p>When I&#8217;ve seen projects that aim to be multi OS, the Linux version is always the second hand version. More people use Windows so new features are added to the Windows version and no one gives a shit about the Linux users. I have seen it many times, haven&#8217;t you?</p>
<p>Why not just use all the time for the Linux version to make it as great as possible. There are already more than enough video editors for Windows anyway.</p></blockquote>
<p>This is a valid concern.  Take <a  href="http://en.wikipedia.org/wiki/Songbird_%28software%29">Songbird</a>, for example.  Songbird started out as a promising cross-platform media player with top-tier Linux support.  This lasted four years, until the team made the hard choice to <a  href="http://blog.songbirdnest.com/2010/04/02/songbird-singing-a-new-tune/">completely drop Linux</a>.  It was an unfortunate loss, but it&#8217;s hard to fault the Songbird developers.  They&#8217;re a small team and audio support in Linux has never been simple to work with.  (FYI, <a  href="http://developer.songbirdnest.com/builds/trunk/latest/">untested nightly builds are still available</a> for adventurous users.)</p>
<p>But I would argue that projects like Songbird are the exception and not the rule.  While it may seem like Linux-only projects are betraying their loyal base by developing Windows or OSX versions, I would argue that cross-platform development is actually better for Linux as a whole, better for individual software projects and their developers, and ultimately better for Linux users.</p>
<p><strong>Cross-Platform Software Removes One of Linux&#8217;s Biggest Barriers of Entry</strong></p>
<p>It&#8217;s been said a million times before: one of the hardest things about switching from Windows to Linux is learning new software.  This has gotten easier over time; after all, modern users are probably using the same browser on Windows that they would on Linux, and mature open source projects like LibreOffice, Pidgin, GIMP and Inkscape provide a similar experience regardless of which OS you use.  As we move to a world where more and more software lives within the browser, the switch will get even easier.</p>
<p>But when a new Linux user can&#8217;t find a Linux version of software that he or she is used to (Adobe products, MS Office, etc), they suddenly have a very good reason to give up on the platform as a whole.  Even if a Linux alternative is better than whatever they were using before, the fact that it <em>isn&#8217;t familiar</em> is often enough to scare them away.</p>
<p>The typical answer to this is: &#8220;everything would be better if Adobe and Apple and Microsoft and everyone else just released Linux versions of their software.&#8221;  I agree.  That <em>would</em> be better.</p>
<p>But does anyone really think this is going to happen?  Do you really envision a day when you can buy a copy of Microsoft Office for Linux?  I&#8217;m afraid I don&#8217;t.</p>
<p>So if we can&#8217;t force companies to release their software on Linux, we have to do the next best thing &#8211; take the best of Linux software and make it available on other platforms.  In the last five years, projects like Firefox and Chrome have done way more to improve Linux adoption than the Linux-only competitors of Epiphany and Konqueror &#8211; not because either of those projects are crap (just the opposite, they&#8217;re great), but because creating software only for Linux users doesn&#8217;t help people make the switch.</p>
<p>Now please don&#8217;t misunderstand.  I am <strong>absolutely not</strong> saying that projects like Epiphany and Konqueror are stupid, or that they don&#8217;t serve a purpose, or that they are hurting Linux.  Both are mature, well-written, technical accomplishments from talented contributors, and they definitely fill a niche.</p>
<p>But when it comes to making Linux a viable competitor to OSX or Windows, Firefox and Chrome are the ones to thank.</p>
<p><em>(Note: yes, I realize that webkit came from KHTML which came from Konqueror.  This doesn&#8217;t invalidate my point.)</em></p>
<p>In the perfect world, Linux users would have access to all the same software as Windows and OSX users.  Releasing a Windows and OSX port of your awesome Linux-only project is a step toward making that happen.</p>
<p><strong>As a Developer, You Will Get More Donations, Support, and Feedback from a Cross-Platform Release</strong></p>
<p>Let&#8217;s return to the Songbird example.  In <a  href="http://blog.songbirdnest.com/2010/04/02/songbird-singing-a-new-tune/">the team&#8217;s blog post about why they dropped Linux</a>, they provide the following chart &#8220;for perspective&#8221;:</p>
<p><a  href="http://www.tannerhelland.com/3772/support-linux-stop-exclusive-software/songbird_chart/" rel="attachment wp-att-3773"><img class="aligncenter size-full wp-image-3773" title="songbird_chart" src="http://www.tannerhelland.com/wp-content/uploads/songbird_chart.jpg" alt="" width="526" height="228" /></a></p>
<p>It&#8217;s hard to argue with those numbers.  Yes, in certain areas (like translations) Linux users contributed more on a per-user basis than Windows or Mac users.  But not that much more.  When you factor in the difficulty of working with audio in Linux, you can see why the Songbird team made the tough decision to drop Linux support entirely.</p>
<p>This same pattern shows up elsewhere.  For gamers, <a  href="http://www.geek.com/articles/games/linux-users-pay-3x-that-of-windows-users-for-humble-indie-bundle-3-2011082/">consider the Humble Indie Bundle</a> &#8211; Linux users donated 3x more money, per user, than Windows users.  That&#8217;s an awesome statistic.  But the sad reality is that there are tons more Windows users, and for the Humble Indie Bundle that meant that revenue from Windows users <em>as a whole</em> was significantly larger than revenue from Linux users.</p>
<p>I point this out only to show that open source developers can receive many benefits &#8211; financial and otherwise &#8211; from releasing software on as many platforms as possible.  And if you as a developer get more feedback and more money, that will help you produce better software for everyone who uses your products &#8211; including your loyal Linux fanbase.</p>
<p><strong>This Isn&#8217;t a Major Problem, But It&#8217;s Something to Consider<br />
</strong></p>
<p>Is Linux-only software the biggest problem facing th<strong></strong>e open source community?  Hell no.  It&#8217;s probably not in the top 10 or 100 or 1000 problems.  But I do think it&#8217;s something to point out, especially for Linux projects that seem perpetually close to becoming &#8220;great&#8221;&#8230; only never quite getting there.  Several examples come to mind.</p>
<p><a  href="http://en.wikipedia.org/wiki/Calligra">Calligra</a> (formerly KOffice) is a promising open-source office suite developed by KDE.  Personally, I think the project is way ahead of LibreOffice in key areas, particularly the interface.  Consider their word processor, which is one of the few designed with widescreen monitors in mind:</p>
<div id="attachment_3774" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3772/support-linux-stop-exclusive-software/koffice_words_screenshot/" rel="attachment wp-att-3774"><img class="size-large wp-image-3774" title="KOffice_Words_Screenshot" src="http://www.tannerhelland.com/wp-content/uploads/KOffice_Words_Screenshot-600x422.jpg" alt="" width="600" height="422" /></a><p class="wp-caption-text">Calligra Words screenshot.  Note the very nice use of horizontal real estate.  (image courtesy of http://www.calligra-suite.org/words/)</p></div>
<p>I&#8217;m not a Linux software developer, but I would love to contribute to the Calligra project as a tester.  My problem?  I spend most of my time in Windows, and I need a word processor that works in both OSes.  Calligra&#8217;s Windows version is in <a  href="http://userbase.kde.org/KOffice/Download#Windows">a perpetual state of disarray</a>, and I don&#8217;t want the hassle of running my word processor in a VM.  How many testers and contributors is this very cool project missing out on because there is no Windows port?  Would a complex piece of software like LibreOffice or Inkscape be half as good if it had remained Linux-only?  I doubt it.</p>
<p>As another example &#8211; Linux video editors.  We&#8217;re finally reaching a world where Linux video editors are stable and usable (kudos to the excellent <a  href="http://www.kdenlive.org/">Kdenlive</a> team and OpenShot, among others), but it has taken far, far too long to get here.  In my opinion, the biggest problem is that most major Linux video projects have remained Linux-only.  Kino and Cinelerra have always been in desperate need of testing and feedback, and by ignoring Windows they aren&#8217;t doing themselves &#8211; or their faithful Linux users &#8211; any favors.</p>
<p><strong>Disclaimers</strong></p>
<p>Now I realize that you can&#8217;t just click a magical button that makes your Linux-only project compile under Windows and OSX.  I get that.  If you&#8217;re an individual developer who doesn&#8217;t have the time or the resources to test and compile your code for Windows, I totally understand.  Some projects don&#8217;t make sense multi-platform, and sometimes there are very good technical reasons why a project doesn&#8217;t make an OSX or Windows version available.</p>
<p>But if you haven&#8217;t considered cross-platform support, please do.  Look for help on developer forums or IRC.  Talk to Windows packagers of other open source projects.  Follow OpenShot&#8217;s example and ask your userbase for help.  Just don&#8217;t fool yourself into thinking that you are helping Linux by <em>not</em> providing Windows and OSX versions of your software.</p>
<p>Because you&#8217;re probably not.  By releasing your software for as many OSes as possible, you are not betraying Linux or open source.  You are helping it.  If people think Linux represents a small fraction of overall users now, imagine how much worse it would be if <em>less</em> cross-platform software were available.</p>
<p>As for my fellow Linux users: please don&#8217;t troll developers when they decide to go cross-platform.  FOSS is not just about developing for Linux.  Open source can &#8211; and should &#8211; work to increase the freedom of all users, everywhere, regardless of what operating system they use.  When your favorite piece of Linux software decides to release a Windows version, don&#8217;t think of it as betrayal.  Think of it as a way to advertise the benefits of open source to your heathen, Windows-using friends.</p>
<p>As always, I am extremely grateful to the talented individuals that use their time and talents to provide open-source software for free.  Thanks for all your hard work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerhelland.com/3772/support-linux-stop-exclusive-software/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Song: Find You (March Remix)</title>
		<link>http://www.tannerhelland.com/3760/song-find-march-remix/</link>
		<comments>http://www.tannerhelland.com/3760/song-find-march-remix/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 19:58:24 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[Remixes and Tributes]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Character Themes]]></category>
		<category><![CDATA[find you]]></category>
		<category><![CDATA[FLAC]]></category>
		<category><![CDATA[march]]></category>
		<category><![CDATA[MIDI]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[ogg]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=3760</guid>
		<description><![CDATA[Today's download digs deep into the archives of an old video game project I was involved in (circa 2002).  The original version of this song is a simple orchestral theme led by an oboe melody.  The game called for an action sequence using the original song, but it didn't really fit; the original mix is slow and unassuming, which isn't generally what you want accompanying an action sequence.  As an alternative, I put together this demo of the theme remixed as an orchestral march...<br />&#160;<br />]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Note: The original version of &#8220;Find You&#8221; can be found <a  href="http://www.tannerhelland.com/16/find-you/">here</a>.</em></p>
<p>Today&#8217;s download digs deep into the archives of an old video game project I was involved in (circa 2002).  The original version of this song is a simple orchestral theme led by an oboe melody (linked at the top of this article).  The game called for an action sequence using the original song, but it didn&#8217;t really fit; the original mix is slow and unassuming, which isn&#8217;t generally what you want accompanying an action sequence.</p>
<p>As an alternative, I put together this demo of the theme remixed as an orchestral march.  It retains the instrument mix of the original, but the oboe is moved to a supporting role while the melody is taken over by a trombone.  </p>
<p>Because this was just a demo, it&#8217;s only two short movements separated by a key change.  Though the video game project dissolved before reaching completion, I enjoyed the opportunity to show off the versatility of the original theme.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerhelland.com/3760/song-find-march-remix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Access Science and Medical Research without Paying an Arm and a Leg for It</title>
		<link>http://www.tannerhelland.com/3705/legally-access-medical-research-free/</link>
		<comments>http://www.tannerhelland.com/3705/legally-access-medical-research-free/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 20:22:30 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Science]]></category>
		<category><![CDATA[college]]></category>
		<category><![CDATA[journals]]></category>
		<category><![CDATA[medicine]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[universities]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=3705</guid>
		<description><![CDATA[There are many ways to legally access medical research without paying ridiculous per-paper access fees.  I've learned about these strategies over years of tracking down papers for work purposes.  This article should help those researching medical issues find information they need without spending thousands of dollars to do it.]]></description>
			<content:encoded><![CDATA[<p><a  href="http://www.tannerhelland.com/917/children-ruin-marriages-for-most/">In past articles</a>, I&#8217;ve mentioned that I spend much of my career poring over scientific and medical research.  This is equally parts invigorating and frustrating.  On the one hand, the Internet makes it possible to track down just about any research paper imaginable, whether it&#8217;s a paper from the turn of the century or one in pre-publication stages.</p>
<p>Unfortunately, this excitement is often tempered by frustration because access to most research papers costs a ridiculous amount of money.  <a  href="http://www.aps.org/about/pressreleases/creativecommons.cfm">More</a> and <a  href="http://www.nature.com/press_releases/scientificreports.html">more</a> journals are adding free, open-access options, but many of the big hitters (<a  href="http://www.sciencemag.org/">Science</a>, <a  href="http://www.nature.com/nature/index.html">Nature</a>) continue to charge exorbitant amounts for one-time access to individual articles.  As an example &#8211; I clicked on the first article from this month&#8217;s issue of Nature: &#8220;<a  href="http://www.nature.com/nature/journal/vaop/ncurrent/full/nature10514.html">Verbal and non-verbal intelligence changes in the teenage brain</a>.&#8221;  This sounded like an interesting article, the kind of thing many laypeople would be interested in, especially parents and teachers of teens.  Unfortunately, the cost for accessing that article is $32 USD.  For that price, you may as well buy <a  href="http://www.amazon.com/Adolescents-Families-Social-Development-Construct/dp/1444332511/">a 330-page non-fiction book on the topic</a> (which was published late last year, so it&#8217;s even up-to-date).</p>
<p>Sadly, $32 is reasonable compared to some journals.  I&#8217;ve seen journals that charge more than $50 USD per research paper &#8211; even for ones 20+ years old!</p>
<p>Thus the impetus for this article.  There are a number of ways to legally access scientific and medical research without paying ridiculous per-paper access fees.  I&#8217;ve accumulated a lot of these strategies over years of trying to track down papers for FDA regulation purposes.  Some might be obvious (especially to grad students or other researchers), but I still think it worthwhile to mention them.  My hope is to help people &#8211; especially those researching medical issues &#8211; find the information they need without spending thousands of dollars to do it.</p>
<p><em>Note: potentially illegal methods of accessing journal articles, including torrenting, Usenet, and other file-sharing techniques, will not be discussed or endorsed.</em></p>
<p><strong>Step 1 &#8211; Finding relevant articles</strong></p>
<p>Before doing anything else, you must first locate papers relevant to your research topic.  As someone who has skipped this step before, let me warn you &#8211; few things are more frustrating than spending hours tracking down a research paper, only to find out it doesn&#8217;t actually discuss what you want.</p>
<p>In my experience, the best place to start is almost always <a  href="http://www.ncbi.nlm.nih.gov/pubmed/">PubMed</a>.  PubMed is a free research database service provided by the U.S. National Library of Medicine.  PubMed is incredibly comprehensive; as of October 2011 it has indexed <a  href="http://en.wikipedia.org/wiki/Pubmed">more than 21 million records going back to 1809</a>, with another half-million articles added every year.  Because PubMed is so comprehensive, many other science and medicine search services use it to fuel their own engines (EBSCO, Google Scholar, Ovid, etc).</p>
<p>The <a  href="http://www.ncbi.nlm.nih.gov/pubmed/">PubMed homepage</a> has a search bar at the top &#8211; type the topic of your search there, then hit Enter to see what turns up.</p>
<div id="attachment_3708" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3705/legally-access-medical-research-free/pubmed_alzheimers_search/" rel="attachment wp-att-3708"><img class="size-large wp-image-3708" title="PubMed_Alzheimers_Search" src="http://www.tannerhelland.com/wp-content/uploads/PubMed_Alzheimers_Search-600x445.jpg" alt="Sample PubMed search for Alzheimers Disease" width="600" height="445" /></a><p class="wp-caption-text">Here is a sample PubMed search for &quot;Alzheimers Disease.&quot;  Make note of the &quot;5580 free full-text articles in PubMed Central&quot; box on the lower-right.</p></div>
<p>PubMed works like Google or any other search engine &#8211; generic search queries will return many articles; more targeted search queries will return a shorter, more relevant set of results.</p>
<p>As with a Google search, you can freely peruse PubMed&#8217;s list of articles, but I tend to go straight for a particular box on the right-hand side &#8211; the one titled &#8220;free full-text articles in PubMed Central.&#8221;  Clicking on the &#8220;See all&#8230;&#8221; link at the bottom of that box will refine your search results to show ONLY articles whose full contents are available for free. <em> (Note: a shortcut way to do this is to select &#8220;PMC&#8221; from the drop-down box on the PubMed homepage.  However, the two clicks required to change the drop-down box is actually more cumbersome than a single-click of &#8220;See all&#8230;&#8221; on the search results page.)</em></p>
<p>PubMed Central, or PMC, is an awesome subset of PubMed that deals only in free full-text research articles.  PMC is an outgrowth of the National Institute of Health&#8217;s goal to make all publicly funded research available to &#8211; imagine this &#8211; the public.  Originally, researchers funded by the NIH were encouraged (but not required) to make their research publicly available.  This changed in 2007, when <a  href="http://www.sciencecodex.com/public_access_mandate_made_law">H.R. 2764 was passed</a>, requiring NIH-funded research to be made publicly available within twelve months of publication.  I try to avoid political commentary on my site, but I&#8217;m not afraid to say that H.R. 2764 is one of the few unilaterally great pieces of legislation George W. Bush signed into law.</p>
<p>If you find what you need at PMC, great!  You&#8217;re all done.  Unfortunately, while PMC&#8217;s article database is growing at a steady rate, it won&#8217;t always have exactly what you need.</p>
<p>For that, we need to turn to something a little broader.</p>
<p><strong>Step 2 &#8211; Google Scholar</strong></p>
<p>Google Scholar (<a  href="http://scholar.google.com/">scholar.google.com</a>) is a specialized version of Google&#8217;s regular search tool.  Google Scholar indexes research articles from standard indices like PubMed, then cross-references those articles with Google&#8217;s massive database of regular web pages.  This cross-referencing comes at a trade-off &#8211; on the one hand, it will generally return many more articles than a comparable PubMed search.  However, a lot of those extra discoveries will be irrelevant websites, questionable corporate marketing materials that <em>sound</em> like research, alternative medicine books, and an occasional patent or legal opinion.</p>
<p>The big advantage Google Scholar has over PubMed, however, is if a free copy of a research article exists anywhere on the web, Google will usually be able find it and associate it with its actual paper.  Let me demonstrate.  Below is a screenshot from a Google Scholar search for &#8220;Alzheimers Disease Coffee.&#8221;  I chose this search term because a growing body of research has associated <a  href="http://www.npr.org/templates/story/story.php?storyId=128110552">coffee intake with a reduced risk of Alzheimers Disease</a>, and I wanted to learn more about it:</p>
<div id="attachment_3711" class="wp-caption aligncenter" style="width: 384px"><a  href="http://www.tannerhelland.com/3705/legally-access-medical-research-free/google_scholar_alzheimers_coffee/" rel="attachment wp-att-3711"><img class="size-large wp-image-3711" title="Google_Scholar_alzheimers_coffee" src="http://www.tannerhelland.com/wp-content/uploads/Google_Scholar_alzheimers_coffee-374x600.png" alt="Sample Google Scholar search" width="374" height="600" /></a><p class="wp-caption-text">Google Scholar results for &quot;Alzheimers disease coffee.&quot;</p></div>
<p>If you look to the right of the search results themselves, you&#8217;ll notice that two lines have a additional light blue link.  The first says &#8220;[HTML] from oxfordjournals.org&#8221; and the second says &#8220;[PDF] from indiana.edu&#8221;.  These little boxes are Google&#8217;s way of notifying you that they think they&#8217;ve found a full-text version of this particular article.</p>
<p>The second full-text link &#8211; the one associated with &#8220;Managing care through the air&#8221; &#8211; is a fine example of how Google Scholar can help you find papers.  Trying to access that paper through its title link takes you to a &#8220;sign in to purchase this article&#8221; page.  However, clicking on the PDF link to the right of the title takes you to a PDF version of the paper, which happens to be hosted on a course website from the University of Indiana.</p>
<p>This kind of cross-referencing can help you find papers that would be almost impossible to otherwise locate.  Sometimes an author will chose to provide a modified copy of the paper on a personal website, or perhaps the corporation who funded a paper will choose to make a copy available on their corporate site.  I have personal experience with this; a paper I co-authored on vitamin D supplementation is still in the pre-publication stages, but <a  href="http://www.usana.com/media/File/dotCom/company/science/crb/CR_Vitamin_D_Required_Winter_Poster.pdf">a poster of the research</a> (containing most of the relevant data) is available from the Science section of the company that performed the research.  Google Scholar can help you track down these &#8220;hidden&#8221; copies of research articles.</p>
<p>While Google Scholar is very useful, a caveat is in order.  Sometimes Google will link you to copies of a paper that may not have been obtained legally.  Oftentimes these are hosted on questionable non-English sites.  Whether or not you choose to access papers via that method is up to you.  The legality of something like that is questionable; the morality of it&#8230; well, a discussion of the morality of copyright is beyond the scope of this article.  :)  I&#8217;ll leave it up to you whether or not you choose to make use of those kinds of Google search results.</p>
<p><strong>Step 3 &#8211; Contact the paper&#8217;s authors (or even better, the financial sponsor)</strong></p>
<p>This step applies specifically to privately funded research.  Many times, the organization who funds or performs research will keep copies of the paper on hand for marketing purposes.  All companies I&#8217;ve worked for did this, and I&#8217;m certain others do as well.  When we were emailed questions about research we had performed and/or funded, we typically replied with a copy of the paper.  Some journals also give paper authors a set amount of free copies of their article, which the author rarely has use for.  (After all, they wrote the paper &#8211; they know what it says!)  Send that author a nice email, and you might be rewarded with shiny PDF for your trouble.</p>
<p><strong>Step 4 &#8211; Try your local library</strong></p>
<p>This step is very much a <acronym title="your mileage may vary">YMMV</acronym> one, but it&#8217;s still worth a try.  Some community libraries have access deals with research journals or conglomerates like <a  href="http://www.ebscohost.com/academic/academic-search-complete">EBSCO</a>.  These deals allow library patrons to access any research journals that are part of the library&#8217;s access package.  In most cases this is limited to the big journals, like Science and Nature; few public libraries have the funds to provide access to specialized journals.</p>
<p>Still, it&#8217;s always worth a try, and if the library doesn&#8217;t have what you need, a librarian may still be able to help you in your search.</p>
<p><strong>Step 5 &#8211; Find a college student or professor</strong></p>
<p>I debated leaving this step for last, since it&#8217;s probably the most foolproof way to access science and medical journals&#8230; but because it is contingent on knowing (or being) a university student or professor, it may not work for everyone.</p>
<p>While local libraries don&#8217;t often have funds to pay for unlimited access to thousands of medical journals, many university libraries do.  Again, this will vary from library to library, but university libraries are capable of negotiating very favorable access to a wide range of research journals.  This is obviously in their best interest &#8211; the more research students and professors have access to, the stronger their ability to learn and perform their own research.  Some have argued <a  href="http://www.usnews.com/education/best-colleges/right-school/choices/articles/2010/06/17/4-reasons-why-the-library-affects-your-college-choice">that library quality should be a major aspect of a student&#8217;s college selection</a>.  I agree.</p>
<p>If you know a college student or professor, provide them a reference to the research articles you&#8217;re interested in and see if they can help you track down a copy.  If you live close to a university &#8211; especially a public one &#8211; see if the school&#8217;s library allows non-students to sign up for library cards.  Most state schools have provisions for this.</p>
<p>Finally, if you are an alumni of a university or college, you may still have certain access rights to the school&#8217;s library.  A phone call or email may be all it takes to get a copy of a research article for personal use.</p>
<p><strong>Conclusion</strong></p>
<p>We live in a golden age<strong></strong> of scientific and medical research.  Each year, tens of thousands of top-quality articles are published in peer-reviewed journals.  Many of these articles are directly funded by your tax dollars, or indirectly funded by your patronage to a particular business or institution.</p>
<p>It saddens me that most of this knowledge is kept out of the public&#8217;s reach by poorly built websites and ridiculously overpriced journal subscriptions &#8211; subscription costs that don&#8217;t go toward funding more research, but <a  href="http://arstechnica.com/web/news/2009/07/academic-publisher-reportedly-going-online-only.ars">paying for outmoded things like printed copies of thousand-page medical journals</a> that will sit, dust-covered and unread, on the back of some library shelf.  It is even more frustrating that the laypeople most inclined to search through medical literature &#8211; those currently suffering from illness or injury &#8211; are often the least capable of affording what many scientific journals charge.</p>
<p>As a researcher myself, I am certainly interested in researchers being paid for their hard work &#8211; and they are, by the universities and companies that employ them.  When you pay $30-50 USD for a journal article, that money does not go to the researcher.  Even worse, it has even been argued that <a  href="http://arstechnica.com/science/news/2008/11/elsevier-beyond-the-pale-of-scientific-respectability.ars">such subscription costs lead to sensational science instead of good science</a>.  I strongly recommend reading the linked article if you are interested in the dynamics of science publication.</p>
<p>Anyway, I hope this article helps anyone interested in scientific or medical research.  Additional suggestions are always welcome; feel free to use the comments section or <a  href="http://www.tannerhelland.com/contact/">my contact page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerhelland.com/3705/legally-access-medical-research-free/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seven grayscale conversion algorithms (in VB6)</title>
		<link>http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/</link>
		<comments>http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 19:34:50 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[Graphics Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[GIMP]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[graphics code]]></category>
		<category><![CDATA[graphics programming]]></category>
		<category><![CDATA[grayscale]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[VB]]></category>
		<category><![CDATA[VB6]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=3643</guid>
		<description><![CDATA[At long last, here is the most-requested image processing technique for this site - a comprehensive collection of grayscale conversion techniques.  To my knowledge, this is the only project on the Internet that presents 7+ unique grayscale conversion algorithms, including two written from scratch for this very project.]]></description>
			<content:encoded><![CDATA[<p>I have uploaded a great many image processing demonstrations over the years, but today&#8217;s project &#8211; grayscale conversion techniques &#8211; is actually the image processing technique that generates the most email queries for me.  I&#8217;m glad to finally have an answer for all those emails.  :)</p>
<p>Despite many requests for a grayscale demonstration, I have held off coding anything until I could really present something <em>unique</em>.  I don&#8217;t like adding projects to this site that offer nothing novel or interesting, and there are already hundreds of downloads &#8211; in every programming language &#8211; that show how to do standard color-to-grayscale conversions.   So, rather than add one more boring &#8220;here&#8217;s a grayscale algorithm&#8221; article, I have spent the last week compiling a complete collection of every possible useful grayscale conversion routine.  To my knowledge, this is the only project on the Internet that presents 7+ unique grayscale conversion algorithms, and at least two of the algorithms &#8211; custom # of grayscale shades with and without dithering &#8211; were written from scratch for this very project.</p>
<p>So without further ado, here are seven unique ways to convert a full-color image to grayscale.  <em>(Note: I highly recommend reading this article so you understand how the various algorithms work and what their purposes might be, but <strong>if all you want is the source code, you&#8217;ll find it past all the pictures and just above the donation link</strong>.)</em></p>
<p><strong>Grayscale &#8211; An Introduction</strong></p>
<p><a  href="http://en.wikipedia.org/wiki/Monochrome_photography">Black and white (or monochrome) photography</a> dates back to the mid-19th century.  Despite the eventual introduction of color photography, monochromatic photography remains popular.  If anything, the digital revolution has actually <em>increased</em> the popularity of monochromatic photography because any digital camera is capable of taking black-and-white photographs (analog cameras required the use of special monochromatic film).  Monochromatic photography is sometimes considered the &#8220;sculpture&#8221; variety of photographic art.  It tends to abstract the subject, allowing the photographer to focus on form and interpretation instead of simply reproducing reality.</p>
<p>Because the terminology <em>black-and-white</em> is imprecise &#8211; black-and-white photography actually consists of many shades of gray &#8211; I will refer to such images as <em>grayscale</em>.</p>
<p>Several other terms will be used frequently throughout my explanations.  The first is <a  href="http://en.wikipedia.org/wiki/Color_space"><em>color space</em></a>.  A <em>color space</em> is a way to visualize a shape or object that represents all available colors.  Different ways of representing color generate different color spaces.  The <a  href="http://en.wikipedia.org/wiki/RGB_color_space">RGB color space is represented as a cube</a>, <a  href="http://en.wikipedia.org/wiki/HSL_color_space">HSL can be a cylinder, cone, or bicone</a>, <a  href="http://en.wikipedia.org/wiki/YIQ">YIQ</a> and <a  href="http://en.wikipedia.org/wiki/YPbPr">YPbPr</a> have more abstract shapes.  This article will primarily reference the RGB and HSL color spaces.</p>
<p>I will also refer frequently to <em><a  href="http://en.wikipedia.org/wiki/Color_channel">color channels</a>.</em>  Most digital images are comprised of three separate color channels, typically a red channel, a green channel, and a blue channel.  Layering these channels on top of each other creates the final image.  Different color models have different channels (sometimes the channels are colors, sometimes they are other values like <em>lightness</em> or <em>saturation</em>), but I will mostly reference RGB channels.</p>
<p>On to the algorithms!</p>
<p><strong>Sample Image:</strong></p>
<div id="attachment_3645" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/secret_of_monkey_island/" rel="attachment wp-att-3645"><img class="size-large wp-image-3645" title="Secret_of_Monkey_Island" src="http://www.tannerhelland.com/wp-content/uploads/Secret_of_Monkey_Island-600x375.jpg" alt="Promo art for The Secret of Monkey Island: Special Edition, ©2009 LucasArts" width="600" height="375" /></a><p class="wp-caption-text">This bright, colorful promo art for The Secret of Monkey Island: Special Edition will be used to demonstrate each of our seven unique grayscale algorithms.</p></div>
<p><strong>Method 1 &#8211; Averaging (aka &#8220;quick and dirty&#8221;)</strong></p>
<div id="attachment_3646" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_average/" rel="attachment wp-att-3646"><img class="size-large wp-image-3646" title="grayscale_average" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_average-600x375.png" alt="Grayscale - average method" width="600" height="375" /></a><p class="wp-caption-text">Grayscale image generated from the formula: Average(Red, Green, Blue)</p></div>
<p>This method is the most boring, so let&#8217;s get it out of the way.  Arguably the most common grayscale conversion routine, the &#8220;averaging&#8221; method works like this:</p>
<p><code>Gray = (Red + Green + Blue) / 3</code></p>
<p>Fast, simple &#8211; no wonder this is the go-to grayscale algorithm for rookie programmers.  This formula generates a reasonably nice grayscale equivalent, and its simplicity makes it easy to implement and optimize (<a  href="http://www.tannerhelland.com/43/vb-graphics-programming-4/">look-up tables</a> work quite well).  However, this formula is not without shortcomings &#8211; while mathematically sound, it does a poor job of representing the way humans actually perceive luminosity.  For that, we need something a bit more complex.</p>
<p><strong>Method 2 &#8211; Correcting for the human eye (sometimes called &#8220;luma&#8221; or &#8220;luminance,&#8221; though <a  href="http://poynton.com/PDFs/YUV_and_luminance_harmful.pdf">such terminology isn&#8217;t really accurate</a>)</strong></p>
<div id="attachment_3647" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_humaneye/" rel="attachment wp-att-3647"><img class="size-large wp-image-3647" title="grayscale_humaneye" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_humaneye-600x375.png" alt="Grayscale generated using values related to cone density in the human eye" width="600" height="375" /></a><p class="wp-caption-text">Grayscale generated using a formula similar to (Red * 0.3 + Green * 0.59 + Blue * 0.11)</p></div>
<p>It&#8217;s hard to tell a difference between this image and the one above, so let me provide one more example.  In the image below, method #1 or the &#8220;average method&#8221; covers the top half of the picture, while method #2 covers the bottom half:</p>
<div id="attachment_3648" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_average_and_humaneye/" rel="attachment wp-att-3648"><img class="size-large wp-image-3648" title="grayscale_average_and_humaneye" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_average_and_humaneye-600x375.png" alt="Grayscale methods 1 and 2 compared" width="600" height="375" /></a><p class="wp-caption-text">If you look closely, you can see a horizontal line running across the center of the image. The top half (the average method) is more washed-out than the bottom half.  This is especially visible in the middle-left segment of the image, beneath the cheekbone of the background skull.</p></div>
<p>The difference between the two methods is even more pronounced when flipping between them at full-size, as you can do in the provided source code.  Now might be a good time to download my sample project (available at the bottom of this article) so you can compare the various algorithms side-by-side.</p>
<p>This second algorithm plays off the fact that cone density in the human eye is not uniform across colors.  Humans perceive green more strongly than red, and red more strongly than blue.  This makes sense from an evolutionary biology standpoint &#8211; much of the natural world appears in shades of green, so humans have evolved greater sensitivity to green light.  <em>(Note: this is oversimplified, but accurate.)</em></p>
<p>Because humans do not perceive all colors equally, the &#8220;average method&#8221; of grayscale conversion is inaccurate.  Instead of treating red, green, and blue light equally, a good grayscale conversion will weight each color according to the way an average human eye perceives it.  A common formula in image processors (Photoshop, <a  href="http://gimp-savvy.com/BOOK/index.html?node54.html">GIMP</a>) is:</p>
<p><code>Gray = (Red * 0.3 + Green * 0.59 + Blue * 0.11)</code></p>
<p>It&#8217;s surprising to see such a huge difference between red, green, and blue, isn&#8217;t it?  This formula requires a bit of extra computation, but it results in a much more dynamic grayscale image.  Again, downloading the sample program is the best way to appreciate this, so I recommend grabbing the code, experimenting with it, then returning to this article.</p>
<p>It&#8217;s worth noting that there is disagreement on the best formula for this type of grayscale conversion.  In my project, I have chosen to go with the original <a  href="http://en.wikipedia.org/wiki/ITU-R">ITU-R</a> recommendation (BT.709, specifically) which is the historical precedent.  This formula, sometimes called <a  href="http://en.wikipedia.org/wiki/Luma_%28video%29">Luma</a>, looks like this:</p>
<p><code>Gray = (Red * 0.2126 + Green * 0.7152 + Blue * 0.0722)</code></p>
<p>Some modern digital image and video formats use a different recommendation (BT.601), which calls for slightly different coefficients:</p>
<p><code>Gray = (Red * 0.299 + Green * 0.587 + Blue * 0.114)</code></p>
<p>A full discussion of which formula is &#8220;better&#8221; is beyond the scope of this article.  For further reading, I strongly suggest <a  href="http://poynton.com/">the work of Charles Poynton</a>.  For 99.99% of programmers, the difference between these two formulas is irrelevant.  Both are perceptually preferable to the &#8220;average method.&#8221;</p>
<p><strong>Method 3 &#8211; Desaturation</strong></p>
<div id="attachment_3669" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_desaturate/" rel="attachment wp-att-3669"><img class="size-large wp-image-3669" title="grayscale_desaturate" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_desaturate-600x375.png" alt="Grayscale generated from a Desaturate algorithm" width="600" height="375" /></a><p class="wp-caption-text">A desaturated image. Desaturating an image takes advantage of the ability to treat the (R, G, B) colorspace as a 3-dimensional cube. Desaturation approximates a luminance value for each pixel by choosing a corresponding point on the neutral axis of the cube.</p></div>
<p>Next on our list of methods is <em>desaturation</em>.</p>
<p>There are various ways to describe the color of a pixel.  Most programmers use the RGB color model, where each color is described by its red, green, and blue components.  While this is a nice way for a machine to describe color, the RGB color space can be difficult for humans to visualize.  If I tell you, &#8220;oh, I just bought a car.  Its color is RGB(122, 0, 255),&#8221; I doubt you can imagine the color I&#8217;m describing.  If, however, I say, &#8220;I just bought a car.  It is a bright, vivid shade of violet,&#8221; you can probably picture <span style="color: #7a00ff;">the color in question</span>.  (Note: this is a hypothetical example.  I do not drive a purple car.  :)</p>
<p>For this reason (among others), <a  href="http://en.wikipedia.org/wiki/HSL_and_HSV">the HSL color space</a> is sometimes used to describe colors.  HSL stands for <em>hue</em>, <em>saturation</em>, <em>lightness</em>.  <em>Hue</em> could be considered the name of the color &#8211; red, green, orange, yellow, etc.  Mathematically, hue is described as an angular dimension on the color wheel (range [0,360]), where pure red occurs at 0°, pure green at 120°, pure blue at 240°, then back to pure red at 360°.  Saturation describes how vivid a color is; a very vivid color has full saturation, while gray has no saturation.  Lightness describes the brightness of a color; black has zero lightness, while white has full lightness.</p>
<p>Desaturating an image consists of converting an RGB triplet to an HSL triplet, then forcing the saturation to zero (effectively turning a pixel into its least-saturated variant).  The mathematics of this conversion are more complex than this article warrants, so I&#8217;ll simply provide the shortcut calculation.  A pixel can be desaturated by finding the midpoint between the maximum of (R, G, B) and the minimum of (R, G, B), like so:</p>
<p><code>(Max(R, G, B) + Min(R, G, B)) / 2</code></p>
<p>In terms of the RGB color space, desaturation forces each pixel to a point along the neutral axis running from (0, 0, 0) to (255, 255, 255).  (If that makes no sense, check out <a  href="http://en.wikipedia.org/wiki/RGB_color_space">this wikipedia article</a> on the RGB color space.)</p>
<p>Desaturation results in a flatter, softer grayscale image.  If you compare this desaturated sample to the human-eye-corrected sample (Method #2), you should notice a difference in the contrast of the image.  Method #2 seems more like an <a  href="http://www.anseladams.com/category_s/71.htm">Ansel Adams photograph</a>, while desaturation looks more like the kind of grayscale photo you might take with a point-and-shoot camera.  Of the three methods discussed thus far, desaturation results in the flattest (least contrast) and darkest overall image.</p>
<p><strong>Method 4 &#8211; Decomposition (think of it as <em>de-composition</em> &#8211; not the biological process!)</strong></p>
<div id="attachment_3672" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_decompose_max/" rel="attachment wp-att-3672"><img class="size-large wp-image-3672" title="grayscale_decompose_max" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_decompose_max-600x375.png" alt="Decomposition - Max Values" width="600" height="375" /></a><p class="wp-caption-text">Decomposition using maximum values</p></div>
<div id="attachment_3673" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_decompose_min/" rel="attachment wp-att-3673"><img class="size-large wp-image-3673" title="grayscale_decompose_min" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_decompose_min-600x375.png" alt="Decomposition - Minimum Values" width="600" height="375" /></a><p class="wp-caption-text">Decomposition using minimum values</p></div>
<p>Decomposing an image (sounds gross, doesn&#8217;t it?) could be considered a simpler form of desaturation.  To decompose an image, we force each pixel to the highest (maximum) or lowest (minimum) of its red, green, and blue values.  Note that this is done on a per-pixel basis &#8211; so if we are performing a <em>maximum</em> decompose and pixel #1 is RGB(255, 0, 0) while pixel #2 is RGB(0, 0, 64), we will set pixel #1 to 255 and pixel #2 to 64.  Decomposition only cares about which value is highest or lowest &#8211; not which channel it comes from.</p>
<p>As you can imagine, a maximum decomposition provides a brighter grayscale image, while a minimum decomposition provides a darker one.</p>
<p>This method of grayscale reduction is typically used for artistic effect.</p>
<p><strong>Method 5 &#8211; Single color channel</strong></p>
<div id="attachment_3680" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_rechannel_red/" rel="attachment wp-att-3680"><img class="size-large wp-image-3680" title="grayscale_rechannel_red" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_rechannel_red-600x375.png" alt="Grayscale - red channel only" width="600" height="375" /></a><p class="wp-caption-text">Grayscale generated by using only red channel values.</p></div>
<div id="attachment_3681" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_rechannel_green/" rel="attachment wp-att-3681"><img class="size-large wp-image-3681" title="grayscale_rechannel_green" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_rechannel_green-600x375.png" alt="Grayscale - green channel only" width="600" height="375" /></a><p class="wp-caption-text">Grayscale generated by using only green channel values.</p></div>
<div id="attachment_3682" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_rechannel_blue/" rel="attachment wp-att-3682"><img class="size-large wp-image-3682" title="grayscale_rechannel_blue" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_rechannel_blue-600x375.png" alt="Grayscale - blue channel only" width="600" height="375" /></a><p class="wp-caption-text">Grayscale generated by using only blue channel values.</p></div>
<p>Finally, we reach the fastest computational method for grayscale reduction &#8211; using data from a single color channel.  Unlike all the methods mentioned so far, this method requires no calcuations.  All it does is pick a single channel and make that the grayscale representation of the images.</p>
<p>Believe-it-or-not, <a  href="http://en.wikipedia.org/wiki/Charge-coupled_device#Color_cameras">this algorithm is the one most digital cameras use for taking &#8220;grayscale&#8221; photos</a>.  CCDs in digital cameras are comprised of a blend of red, green, and blue sensors, and rather than perform the necessary math to convert RGB values to gray ones, they simply grab a single channel (green, for the reasons mentioned in Method #2 &#8211; human eye correction) and call that the grayscale one.  For this reason, most photographers recommend <strong>against</strong> using your camera&#8217;s built-in grayscale option.  Instead, shoot everything in color and then perform the grayscale conversion later, using whatever method leads to the best result!</p>
<p>It is difficult to predict the results of this method of grayscale conversion.  For that reason, it is usually reserved for artistic effect.</p>
<p><strong>Method 6 &#8211; Custom # of gray shades</strong></p>
<div id="attachment_3683" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_4_shades/" rel="attachment wp-att-3683"><img class="size-large wp-image-3683" title="grayscale_4_shades" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_4_shades-600x375.png" alt="Grayscale using only 4 shades" width="600" height="375" /></a><p class="wp-caption-text">Grayscale using only 4 shades - black, dark gray, light gray, and white</p></div>
<p>Now it&#8217;s time for the fun algorithms.  :)  Method #6, which I wrote from scratch for this project, allows the user to specify how many shades of gray the resulting image will use.  Any value between 2 and 256 is accepted; 2 results in a black-and-white image, while 256 gives you an image identical to Method #1 above.  This project only uses 8-bit color channels, but for 16 or 24-bit grayscale images (and their resulting 65,536 and 16,777,216 maximums) this code would work just fine.</p>
<p>The algorithm works by selecting X # of gray values, equally spread (inclusively) between zero luminance &#8211; black &#8211; and full luminance &#8211; white.  The above image uses four shades of gray.  Here is another example, using sixteen shades of gray:</p>
<div id="attachment_3684" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_16_shades/" rel="attachment wp-att-3684"><img class="size-large wp-image-3684" title="grayscale_16_shades" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_16_shades-600x375.png" alt="Grayscale using 16 shades of gray" width="600" height="375" /></a><p class="wp-caption-text">In this image, we use 16 shades of gray spanning from black to white</p></div>
<p>I enjoy the artistic possibilities of this algorithm.  The attached source code renders all grayscale images in real-time, so for a better understanding of this algorithm, load up the sample code and rapidly scroll between different numbers of gray shades.</p>
<p><strong>Method 7 &#8211; Custom # of gray shades with dithering (in this example, horizontal error-diffusion dithering)</strong></p>
<div id="attachment_3685" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_4_shades_dithered/" rel="attachment wp-att-3685"><img class="size-large wp-image-3685" title="grayscale_4_shades_dithered" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_4_shades_dithered-600x375.png" alt="Grayscale - four shades, dithered" width="600" height="375" /></a><p class="wp-caption-text">This image also uses only four shades of gray (black, dark gray, light gray, white), but it adds full error-diffusion dithering support</p></div>
<p>Our final algorithm is perhaps the strangest one of all.  Like the previous method, it allows the user to specify any value in the [2,256] range, and the algorithm will automatically calculate the best spread of grayscale values for that range.  However, this algorithm also adds full dithering support.</p>
<p>What is dithering, you ask?  In image processing, <a  href="http://en.wikipedia.org/wiki/Dithering#Digital_photography_and_image_processing">dithering uses optical illusions to make an image look more colorful than than it actually is</a>.  Dithering algorithms work by interspersing whatever colors are available into new patterns &#8211; ordered or random &#8211; that fool the human eye into perceiving more colors than are actually present.  If that makes no sense, take a look at <a  href="http://en.wikipedia.org/wiki/Dithering#Algorithms">this gallery of dithered images</a>.</p>
<p>There are many different dithering algorithms.  The one I provide is one of the simpler error-diffusion mechanisms: a one-dimensional diffusion that bleeds color conversion errors from left to right.</p>
<p>If you look at the image above, you&#8217;ll notice that only four colors are present &#8211; black, dark gray, light gray, and white &#8211; but because these colors are mixed together, from a distance this image looks much sharper than the four-color non-dithered image under Method #6.  Here is a side-by-side comparison:</p>
<div id="attachment_3686" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_4_shades_sidebyside/" rel="attachment wp-att-3686"><img class="size-large wp-image-3686" title="grayscale_4_shades_sidebyside" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_4_shades_sidebyside-600x375.png" alt="Side-by-side of dithered and non-dithered 4-color grayscale images" width="600" height="375" /></a><p class="wp-caption-text">The left side of the image is a 4-shade non-dithered image; the right side is a 4-shade image WITH dithering</p></div>
<p>When few colors are available, dithering preserves more nuances than a non-dithered image, but the trade-off is a &#8220;dirty,&#8221; speckled look.  Some dithering algorithms are better than others; the one I&#8217;ve used falls somewhere in the middle, which is why I selected it.</p>
<p>As a final example, here is a 16-color grayscale image with full dithering, followed by a side-by-side comparison with the non-dithered version:</p>
<div id="attachment_3687" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_16_shades_dithered/" rel="attachment wp-att-3687"><img class="size-large wp-image-3687" title="grayscale_16_shades_dithered" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_16_shades_dithered-600x375.png" alt="Grayscale image, 16 shades, dithered" width="600" height="375" /></a><p class="wp-caption-text">Hard to believe only 16 shades of gray are used in this image, isn&#39;t it?</p></div>
<div id="attachment_3688" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_16_shades_sidebyside/" rel="attachment wp-att-3688"><img class="size-large wp-image-3688" title="grayscale_16_shades_sidebyside" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_16_shades_sidebyside-600x375.png" alt="Grayscale, 16 shades, dithered vs non-dithered" width="600" height="375" /></a><p class="wp-caption-text">As the number of colors in an image increases, dithering artifacts become less and less noticeable.  Can you tell which side of the image is dithered and which is not?</p></div>
<p><strong>Conclusion</strong></p>
<p>If you are on a slow Internet connection, I apologize for the image-heavy nature of this article.  Unfortunately, the only way to really demonstrate all these grayscale techniques is by showing many examples!</p>
<p>The source code for this project, like all image processing code on this site, runs in real-time.  The GUI is simple and streamlined, automatically hiding and displaying relevant user-adjustable options as you click through the various algorithms:</p>
<div id="attachment_3689" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/grayscale_source_code_gui/" rel="attachment wp-att-3689"><img class="size-large wp-image-3689" title="grayscale_source_code_GUI" src="http://www.tannerhelland.com/wp-content/uploads/grayscale_source_code_GUI-600x344.jpg" alt="GUI of the provided source code" width="600" height="344" /></a><p class="wp-caption-text">GUI of the provided source code. The program also allows you to load your own images.</p></div>
<p>Each algorithm is provided as a stand-alone method, accepting a source and destination picturebox as parameters (alongside any user-adjustable options, obviously).  I designed it this way so you can grab whatever algorithms interest you and drop them straight into an existing project, without need for modification.</p>
<p>Comments and suggestions are welcome.  If you know of any interesting grayscale conversion algorithms I might have missed, please let me know.</p>
<p><em>(Fun fact: want to convert a grayscale image back to color?  If so, check out <a  href="http://www.tannerhelland.com/3552/colorize-image-vb6/">my real-time image colorization project</a>.)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Norway</title>
		<link>http://www.tannerhelland.com/3628/norway/</link>
		<comments>http://www.tannerhelland.com/3628/norway/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 20:29:45 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Current Events]]></category>
		<category><![CDATA[Norway]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=3628</guid>
		<description><![CDATA[<em>"Vi er så få her i landet, hver fallen er bror og venn"</em> - Nordahl Grieg]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;Vi er så få her i landet, hver fallen er bror og venn&#8221;</p>
<p>- Nordahl Grieg</p></blockquote>
<p><a  href="http://www.cnn.com/2011/WORLD/europe/07/22/norway.explosion/index.html">Terrible news out of Norway today</a>:</p>
<blockquote><p>Norway came under deadly attack Friday with a massive bombing in the heart of its power center and a shooting at the ruling party&#8217;s youth camp on an island outside the capital&#8230;</p></blockquote>
<p>Though I&#8217;m born and raised American, my grandparents were first-generation Norwegian immigrants, and I have many friends and family back in beautiful <em>Norge</em>.  Please keep the country in your thoughts (and prayers, if you believe in that sort of thing) as they deal with the aftermath of these terrible attacks.</p>
<p>(If anyone has links to sites where individuals can contribute money or time or anything else to help, please let me know and I&#8217;ll repost it here.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerhelland.com/3628/norway/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Real-time Diffuse (Spread) Image Filter in VB6</title>
		<link>http://www.tannerhelland.com/3601/realtime-diffuse-spread-image-filter-vb6/</link>
		<comments>http://www.tannerhelland.com/3601/realtime-diffuse-spread-image-filter-vb6/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 23:23:35 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[Graphics Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[diffuse]]></category>
		<category><![CDATA[GIMP]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[graphics code]]></category>
		<category><![CDATA[graphics programming]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[spread]]></category>
		<category><![CDATA[VB6]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=3601</guid>
		<description><![CDATA[A software-based "diffuse filter" - random displacement of image pixels within a specified radius - was used in a number of SNES, Genesis, and DOS games to simulate an explosion effect.  Today's project provides the source code for generating a diffuse effect in real-time.]]></description>
			<content:encoded><![CDATA[<div id="attachment_3603" class="wp-caption alignright" style="width: 310px"><a  rel="attachment wp-att-3603" href="http://www.tannerhelland.com/3601/realtime-diffuse-spread-image-filter-vb6/camera_diffuse_filters/"><img class="size-full wp-image-3603" title="camera_diffuse_filters" src="http://www.tannerhelland.com/wp-content/uploads/camera_diffuse_filters.jpg" alt="One brand of camera diffusion lenses" width="300" height="300" /></a><p class="wp-caption-text">A set of camera diffusion lenses.</p></div>
<p>In traditional photography and film, a diffusion filter is used to soften light from a flash or stationary lamp.  Specialized lenses are available for this purpose, but the effect can be cheaply replicated by smearing petroleum jelly over the light (<a  title="Wikipedia article on diffusion filters" href="http://en.wikipedia.org/wiki/Diffusion_filter">seriously</a>) or by shooting through a sheet of nylon.</p>
<p>In image processing, a diffusion filter often means something else entirely.  Photoshop&#8217;s &#8220;Diffuse&#8221; filter randomly rearranges pixels within a set radius.  (GIMP can do the same thing, but the effect is more accurately titled &#8220;Spread.&#8221;)  This effect can be animated for a cheap explosion effect &#8211; something a number of SNES, Genesis, and DOS games used to great effect.</p>
<p>This project demonstrates a simple, real-time method for replicating such an effect.  All code is commented and reasonably optimized, and an animated &#8220;special effect&#8221; version is provided for those interested.  Unlike Photoshop, this routine allows you to specify separate horizontal and vertical max random distances, as well as the ability to wrap pixels around image edges.</p>
<div id="attachment_3604" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3604" href="http://www.tannerhelland.com/3601/realtime-diffuse-spread-image-filter-vb6/lbp/"><img class="size-large wp-image-3604" title="LittleBigPlanet" src="http://www.tannerhelland.com/wp-content/uploads/LBP-600x375.jpg" alt="LittleBigPlanet mini poster" width="600" height="375" /></a><p class="wp-caption-text">Here&#39;s the original image (a poster for LittleBigPlanet)</p></div>
<div id="attachment_3605" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3605" href="http://www.tannerhelland.com/3601/realtime-diffuse-spread-image-filter-vb6/lbp_diffuse_5/"><img class="size-large wp-image-3605" title="LBP_diffuse_5" src="http://www.tannerhelland.com/wp-content/uploads/LBP_diffuse_5-600x375.jpg" alt="" width="600" height="375" /></a><p class="wp-caption-text">Here is the same image with a diffuse filter applied (max distance=5)</p></div>
<div id="attachment_3606" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3606" href="http://www.tannerhelland.com/3601/realtime-diffuse-spread-image-filter-vb6/lbp_diffuse_50/"><img class="size-large wp-image-3606" title="LBP_diffuse_50" src="http://www.tannerhelland.com/wp-content/uploads/LBP_diffuse_50-600x375.jpg" alt="" width="600" height="375" /></a><p class="wp-caption-text">...and here is the image again, but with max distance = 50</p></div>
<div id="attachment_3607" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3607" href="http://www.tannerhelland.com/3601/realtime-diffuse-spread-image-filter-vb6/lbp_diffuse_50_wrap_pixels/"><img class="size-large wp-image-3607" title="LBP_diffuse_50_wrap_pixels" src="http://www.tannerhelland.com/wp-content/uploads/LBP_diffuse_50_wrap_pixels-600x375.jpg" alt="" width="600" height="375" /></a><p class="wp-caption-text">...and one more example.  This time, edge wrapping has been enabled.  Note the bleed of planet pixels at the top and black pixels at the bottom.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerhelland.com/3601/realtime-diffuse-spread-image-filter-vb6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ten Ways I Would Have Changed the Wii U Launch</title>
		<link>http://www.tannerhelland.com/3591/ten-ways-changed-wii-launch/</link>
		<comments>http://www.tannerhelland.com/3591/ten-ways-changed-wii-launch/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 15:44:41 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[E3]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[Wii U]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=3591</guid>
		<description><![CDATA[It's no secret that the Wii U launch could have gone better. Investors are confused, analysts are confused, gamers are confused, and even Nintendo itself has admitted that the E3 launch was sketchy.  After having some time to digest the Wii U, I still find myself with a huge list of things I wish Nintendo had done differently. ]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s no secret that the Wii U launch could have gone better.  <a  href="http://www.forbes.com/feeds/ap/2011/06/08/technology-technology-hardware-amp-equipment-as-japan-nintendo_8505799.html">Investors are confused</a>, <a  href="http://www.gamasutra.com/view/news/35177/Pachter_Wii_U_Two_Years_Too_Late_Has_Dumbest_Name_Ever.php?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+GamasutraNews+%28Gamasutra+News%29">analysts are confused</a>, <a  href="http://www.capsulecomputers.com.au/2011/06/wii-u-confusion-and-controversy-the-story-so-far-in-plain-english/">gamers are confused</a>, and even Nintendo itself has admitted that <a  href="http://www.thisislondon.co.uk/standard-business/article-23959157-mark-prigg-interviews-the-nintendo-boss-about-the-poor-share-price-reaction-to-the-new-wii-console.do">the launch was confusing</a>.</p>
<p>After having some time to digest the Wii U launch, I still find myself with a huge list of things I wish Nintendo had done better at E3.</p>
<p><strong>10. Called the system something other than &#8220;Wii U&#8221;</strong></p>
<p>In the week leading up to E3, the name of the PS Vita leaked.  [<a  href="http://kotaku.com/5808809/this-is-probably-the-ngps-new-name-and-logo">See kotaku's story, for example</a>]  Everyone made fun of the name.  Obviously Nintendo had already solidified the name of Wii U by this point &#8211; but if they hadn&#8217;t, coming out with a new console with a cool name would have been a great way to upstage the competition.</p>
<p>Instead, they launched with the Wii U name&#8230; possibly the only name on earth that makes &#8220;Vita&#8221; look brilliant.  Even a code name would have been preferable to using the actual name.</p>
<p><strong>9. Explained the concept of a &#8220;base station&#8221; and a &#8220;controller&#8221;</strong></p>
<p>It&#8217;s true that anyone watching E3 should have realized that the Wii U controller wasn&#8217;t actually the console.  Even so, it&#8217;s a bad sign when long-time gamers have to ask themselves &#8220;so wait&#8230; does that thing run off the Wii?  Or does it run on its own?&#8221;  In the Nintendo link at the top of the story, Satoru Iwata himself says:</p>
<blockquote><p>&#8220;We haven&#8217;t made any kind of blunder, but I should have shown a single  picture of the new console, then started talking about the controller.  The console is not drastically different, and Wii U is  about the controller. The console itself will be almost invisible.&#8221;</p></blockquote>
<p>If you&#8217;ve seen pictures of the console itself, you&#8217;ll realize <a  href="http://www.ripten.com/2011/06/11/wii-u-pics-justin6464/">it&#8217;s not exactly &#8220;invisible.&#8221;</a> Still, since the hardware at the base station is a lot more important than the controller (since the controller is really just a screen with buttons and sensors), Nintendo was crazy to not talk about the base at all during their E3 presentation.</p>
<p><strong>8. Show us something only the Wii U can do (besides play Nintendo franchise games, of course)</strong></p>
<p>The vast majority of the Wii U presentation was spent showing us ways to play games that already exist, and support for games we can already play on other devices.</p>
<ul>
<li>&#8220;It has a giant touchscreen!&#8221;  So does an iPad.  So does my phone.  So does the PS Vita.</li>
<li>&#8220;It has dual analog sticks!&#8221;  So does every other console controller&#8230; besides the Wii, anyway.</li>
<li>&#8220;It has cameras!&#8221;  See above.</li>
<li>&#8220;It has gyroscopes!&#8221;  (yawn)</li>
</ul>
<p>Then there are the games.  Many of the big launch titles &#8211; Arkham City, Darksiders II, Metro: Last Light &#8211; are already available on all other consoles and PC.  Super Smash Bros. 4 was a good announcement, but we didn&#8217;t see any gameplay footage.  Lego City Stories looks cute, but Lego-branded games are already everywhere.</p>
<p>A compelling console launch needs to explain why you, the consumer, need this console.  Whether it&#8217;s because of a truly unique control mechanism, cutting-edge graphics, huge exclusives, doesn&#8217;t really matter.  What matters is that the console sets itself apart from the competition.  The one thing Nintendo consoles always have &#8211; Nintendo franchise games &#8211; barely made an appearance in the Wii U presentation.</p>
<p>The Wii U launch was surprisingly short on surprises.</p>
<p><strong>7. Announce DVD support</strong></p>
<p>I wanted to add &#8220;and Blu-ray support,&#8221; but let&#8217;s keep things slightly realistic.  Nintendo has clearly stated (post-E3) that <a  href="http://news.cnet.com/8301-13506_3-20071255-17/nintendo-wii-u-wont-have-dvd-blu-ray-playback/">the Wii U will not play DVDs or Blu-rays</a>.  The official reason?</p>
<blockquote><p>&#8220;The reason for that is that we feel that enough people already have  devices that are capable of playing DVDs and Blu-ray, such that it  didn&#8217;t warrant the cost involved to build that functionality into the  Wii U console because of the patents related to those technologies.&#8221;</p></blockquote>
<p>I find this reasoning a little bizarre.  First, licensing technologies for DVD playback is cheap.  Dirt cheap.  If Wal-Mart can sell a <a  href="http://www.walmart.com/ip/Viore-DVP405V-1080p-Upconversion-DVD-player-with-HDMI/15250066">1080p upconverting DVD player &#8211; with HDMI &#8211; for $24 USD</a> (at the time of this writing) the licensing technology is not expensive.</p>
<p>As if that statement weren&#8217;t bizarre enough, there&#8217;s the observation that &#8220;enough people already have devices that are capable of playing DVDs and Blu-ray.&#8221;  This makes even less sense.  By this logic, cell phone manufacturers should not include the ability to play music or browse the web or play games.  After all &#8211; people already have lots of devices that can do this.  Does anyone really believe that more people would have bought PS3s if Sony turned off Blu-ray playback and cut the console price by $10?  Or that Microsoft would have sold more 360&#8242;s if they removed DVD playback and cut the price by $5?</p>
<p>Additionally, one of the major benefits of having a controller capable of streaming video from a base console would be the ability to watch DVDs &#8211; a form of physical media &#8211; on a controller without an attached drive.</p>
<p>Nintendo really blew this one.  I don&#8217;t think I&#8217;m alone in saying that the Wii U would be much more tempting if it had full DVD playback and streaming support.</p>
<p><strong>6. Announce some kind of DSi/3DS and Wii U interaction capabilities</strong></p>
<p>It seems extremely odd that Nintendo would release a home console with a big emphasis on &#8220;a controller with a screen&#8221;without mentioning their handheld devices.  After all, Nintendo is no stranger to interaction between a handheld device and a console.  They&#8217;ve been experimenting with that technology since <a  href="http://en.wikipedia.org/wiki/Nintendo_64_accessories#Transfer_Pak">the N64 days</a>.</p>
<p>If a 3DS &#8211; with its dual cameras, touchscreen, gyroscopes, and wireless card &#8211; or even a DSi could be used in place of a Wii U controller (or alongside it), I imagine a lot more people would be interested in purchasing a Wii U.</p>
<p>Instead, Sony was the only console manufacturer to discuss console/handheld interaction.  Hard to believe Nintendo had nothing to say about this.</p>
<p><strong>5. Give concrete details on the Wii U&#8217;s online capabilities</strong></p>
<p>In a lot of ways, the Wii U looks to be the most antisocial console in history.  (Besides possibly the Virtual Boy.)</p>
<p>&#8220;Do other people want to watch a show?  Don&#8217;t join in &#8211; instead, keep doing what you&#8217;re doing on the console!&#8221;</p>
<p>&#8220;Want multiplayer?  Too bad!  We&#8217;ve only planned for one Wii U controller per console!&#8221;</p>
<p>The messaging is bizarre.  I really hoped Nintendo would announce great online features to make up for the antisocial nature of the Wii U controller, but what happened instead?  Brief statements like this, from Katsuya Eguchi:</p>
<blockquote><p>“I can’t go into details… We’re trying to find new experiences… In looking at the approaches on the Xbox and PlayStation – what they’ve done and what people have responded really well to – we’ve definitely considered including those kinds of experiences, and we think that our third parties also want those as well… but there are also things Nintendo does and other companies haven’t. We need to balance out what exactly what we need to bring to the user to bring the best experience possible.” [<a  href="http://www.kotaku.com.au/2011/06/the-wii-us-online-strategy-is-a-rorschach-blot/">source - kotaku</a>]</p></blockquote>
<p>That&#8217;s an awful lot of words&#8230; that tell us nothing about the online capabilities.</p>
<p>A few days later, during a call with investors, President Iwata gave this longer explanation:</p>
<blockquote><p>To start, I&#8217;ll have to say that I don&#8217;t have any materials with me today that can illustrate precisely what our online environment will be like, but I can speak generally about the direction that we are moving in.</p>
<p>I think, in general, the online environment is changing quite rapidly.</p>
<p>So, what I have come to feel lately is that the idea of saying, &#8220;we are going to create this style of online structure and that we would like you, the developers, to fit into the online structure that we are creating&#8221; is perhaps already out-of-date.</p>
<p>I think that Nintendo&#8217;s past console business has often included this idea of a set and fixed online structure. So, I think that, going forward, the question is really to what degree Nintendo can create a more flexible system for its consoles.</p>
<p>And, what we found at this point is that, as we discuss the online structure with different publishers, the things that the different publishers want to do are in fact seemingly rather different.</p>
<p>Our current direction is how we can take the desires of the third parties and create a system that&#8217;s flexible enough to enable them to do the types of things that they might want to do.</p>
<p>So, for example with the question of VoIP, I think then what we would like to do is work with them on how to enable them to do that. But, what we&#8217;re not going to do is to consider as prerequisite conditions that every game includes features like that because obviously there are some developers who may not want to do that.</p>
<p>As for social networks, after examining the penetration and adoption rate of social networking services like Facebook, etc., we&#8217;ve come to the conclusion that we are no longer in a period where we cannot have any connection at all with social networking services.</p>
<p>Rather, I think we&#8217;ve come to an era where it&#8217;s important to consider how the social graph of the social networking services can work in conjunction with something like a video game platform.</p>
<p>So, once we get to a point where we&#8217;re able to talk more concretely about our online plans, I think that once you hear what we&#8217;ll have to say, you&#8217;ll feel that Nintendo has a policy of adapting itself to changes in the network environment in a flexible fashion rather than the one of sticking to a rigid mechanism, or perhaps you&#8217;ll notice that we have found ways to take advantage of these types of features like VoIP and social networking, where our systems have been seen as being weak in the past. However, unfortunately, we won&#8217;t be able to share anything concrete today.&#8221;  [<a  href="http://www.blogger.com/">source - andriasang</a>]</p></blockquote>
<p>Confused yet?  I know I am.  All those words tell us basically three things:</p>
<ul>
<li>Nintendo &#8220;can&#8217;t afford to have no connection&#8221; to social networking services.  (no kidding)</li>
<li>Nintendo is considering optional VoIP services.</li>
<li>Nintendo still isn&#8217;t sure what the Wii U&#8217;s online services will include.</li>
</ul>
<p>Being this far into the console&#8217;s development and having nothing concrete to say about the online capabilities is concerning.</p>
<p><strong> 4. Announce a late 2011 launch date</strong></p>
<p>I think most gamers are excited about the Wii U sharing in great exclusives like Battlefield 3 and Arkham City.  However, these games are launching in 2011.  The Wii U won&#8217;t launch until 2012.  That means that if you want to play any of the year&#8217;s biggest multi-platform launches on the Wii U, you will have to wait a year (or more!) after the game&#8217;s release on other platforms.</p>
<p>Are a lot of gamers really going to purchase an additional copy of Battlefield 3 just to play it on the Wii U?  I doubt it.  Sharing a multi-platform library with the PS3 and 360 is awesome, but not if major games release a year late.</p>
<p><strong>3. Announce support for achievements/trophies</strong></p>
<p>Some gamers don&#8217;t care about achievements and trophies, but I think most care at least a little.  After all &#8211; when even Minecraft adds achievements, there must be a market for it.  True cross-platform support means not just releasing the same games, but releasing the same games with the same features.  If the Wii U doesn&#8217;t include support for some kind of achievements/trophies, that&#8217;s one more reason to purchase them on another platform.</p>
<p><strong>2. More actual Wii U gameplay footage</strong></p>
<p>The announcement that the Wii U game montage was <a  href="http://www.gametrailers.com/video/e3-2011-nintendo/715143">all 360 and PS3 footage</a> wasn&#8217;t surprising, but it was disappointing.  Anyone who has played Bayonetta or Bioshock on PS3 or Final Fantasy XIII on 360 knows that &#8220;multi-platform&#8221; does not necessarily mean &#8220;equal experience on all devices.&#8221;  Even if two systems share relative hardware parity &#8211; like the 360 and PS3 &#8211; individual developers are still capable of releasing vastly different ports.  A lot of PS3 ports in particular were not developed by the original game company, but outsourced to someone else (like the aforementioned games, and others like Orange Box).</p>
<p>Just because the Wii U may have comparable hardware &#8211; something we don&#8217;t actually know for <em>certain</em> &#8211; does not mean it will deliver a comparable experience to existing consoles, in the same way that PS3 ports of 360 games have often seen significant drops in quality.</p>
<p>This means that the only actual footage we have of Wii U is <a  href="http://www.youtube.com/watch?v=Shch7LNkVXw">a simple, relatively underwhelming tech demo</a>.  Tech demos have never been indicative of actual hardware capabilities.  Remember <a  href="http://www.youtube.com/watch?v=cv8cYrGG220">the FF7 tech demo for PS3</a>?  How many PS3 games have actually looked that good?  When the game system doesn&#8217;t have to process AI, or user-controlled movement, or positional audio, or pre-loading of true open world environments, you can make very pretty graphics.  Add in any of those other things &#8211; all of which are required for an actual game, and all of which require horsepower &#8211; and you have less power left for graphics.</p>
<p>When announcing a new console, a company needs more than just a single tech demo on display.</p>
<p><strong>1. Announce a price</strong></p>
<p>It&#8217;s clear that Nintendo has a price point in mind for the Wii U.  I don&#8217;t blame them for waiting to announce it &#8211; after all, a lot could change by its launch in 2012.  The PS3 and 360 are both likely to receive price drops between now and then, and their respective motion-control add-ons (Move and Kinect) will probably see price drops too.  Nintendo must be waiting for that to happen before announcing a Wii U price.</p>
<p>That said, leaving people to speculate for a year isn&#8217;t a great idea either.  We do know that <a  href="http://www.bloomberg.com/news/2011-06-08/nintendo-falls-amid-questions-whether-new-console-can-repeat-wii-s-success.html">it will cost more than the Wii</a>.  No surprise there.  But if the 360 and PS3 both receive price drops, that means that Nintendo&#8217;s new console &#8211; which has similar graphical capabilities, but can&#8217;t do things like play DVDs or Blu-ray &#8211; is going to cost more money.  We also don&#8217;t know what games are going to cost.  We don&#8217;t know what the controller will cost.  We don&#8217;t know if online will be free.</p>
<p>The PS Vita price announcement was very well received.  Nintendo could have stolen its thunder with a great price announcement of its own.  Instead, we&#8217;re left to wonder what the price might be &#8211; and while everyone is hoping for a price like $299 USD, the launch price could easily be $349 or $399.  Unlike the Wii, the Wii U doesn&#8217;t look like it&#8217;ll be a &#8220;bargain console.&#8221;</p>
<p><strong>Conclusion</strong></p>
<p>The Wii U could be a very interesting addition to the console landscape, but so far its launch has been rough.  As a Nintendo fan, I really hope they do a better job with Wii U development than they have done with Wii U marketing.</p>
<p>Otherwise, I&#8217;ll probably save my excitement for the Xbox 720 and PS4.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerhelland.com/3591/ten-ways-changed-wii-launch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Colorize an Image (in VB6)</title>
		<link>http://www.tannerhelland.com/3552/colorize-image-vb6/</link>
		<comments>http://www.tannerhelland.com/3552/colorize-image-vb6/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 18:41:36 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[Graphics Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[colorization]]></category>
		<category><![CDATA[colorize]]></category>
		<category><![CDATA[graphics code]]></category>
		<category><![CDATA[image filters]]></category>
		<category><![CDATA[VB6]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=3552</guid>
		<description><![CDATA["Colorization" in image processing can refer to one of several things.  One form of "colorization" is taking any image - including full-color ones - and applying a uniform color for dramatic or artistic effect.  This is the type of colorization filter provided by software like Photoshop and GIMP, and it's also the effect this project implements.]]></description>
			<content:encoded><![CDATA[<p>&#8220;Colorization&#8221; in image processing can refer to one of several things.  Most commonly, to <em>colorize</em> an image is to take an image without color (like a black and white photograph) and artificially apply color to it.  One example of this is the old <a  href="http://en.wikipedia.org/wiki/Three_Stooges">Three Stooges</a> movies which were originally shot in black-and-white, but <a  href="http://en.wikipedia.org/wiki/Film_colorization">re-released several years ago in color</a>.  Colorization of an entire movie is expensive and time-consuming, and a lot of human intervention is required to make things look right.</p>
<p>Another form of &#8220;colorization&#8221; is taking any image &#8211; including full-color ones &#8211; and colorizing the image for dramatic or artistic effect.  This is the type of colorization filter provided by software like Photoshop and GIMP, and it&#8217;s also the effect my source code provides.</p>
<div id="attachment_3553" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3552/colorize-image-vb6/enslaved-odyssey-to-the-west-normal/" rel="attachment wp-att-3553"><img src="http://www.tannerhelland.com/wp-content/uploads/Enslaved-Odyssey-to-the-West-normal-600x375.jpg" alt="Enslaved poster - original" title="Enslaved-Odyssey-to-the-West-normal" width="600" height="375" class="size-large wp-image-3553" /></a><p class="wp-caption-text">Here&#039;s the original image (a poster for Enslaved: Odyssey to the West)</p></div>
<div id="attachment_3554" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3552/colorize-image-vb6/enslaved-odyssey-to-the-west-blue-original-saturation/" rel="attachment wp-att-3554"><img src="http://www.tannerhelland.com/wp-content/uploads/Enslaved-Odyssey-to-the-West-blue-original-saturation-600x375.jpg" alt="Enslaved poster - blue colorization" title="Enslaved-Odyssey-to-the-West-blue-original-saturation" width="600" height="375" class="size-large wp-image-3554" /></a><p class="wp-caption-text">...and here&#039;s the same poster, colorized</p></div>
<p>Colorization works by retaining certain data about each pixel&#8217;s color (luminance and possibly saturation) while ignoring other data about color (hue).  In the demonstration above, each pixel in the second picture has the exact same saturation and luminance as the top picture, but all hue values have been replaced with blue.</p>
<p>Different programs implement colorization differently.  Most require you to specify hue and saturation values, with luminance being optional.  I really like the effect created when you keep the saturation values from the original image.  If you force saturation values to an arbitrary number &#8211; like Photoshop or GIMP &#8211; the colorized image looks either drab or blown-out.</p>
<div id="attachment_3555" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3552/colorize-image-vb6/enslaved-odyssey-to-the-west-orange-original-saturation/" rel="attachment wp-att-3555"><img src="http://www.tannerhelland.com/wp-content/uploads/Enslaved-Odyssey-to-the-West-orange-original-saturation-600x375.jpg" alt="Enslaved poster - orange, original saturation" title="Enslaved-Odyssey-to-the-West-orange-original-saturation" width="600" height="375" class="size-large wp-image-3555" /></a><p class="wp-caption-text">Here&#039;s another colorization - this time to orange.  Saturation values are unchanged.</p></div>
<div id="attachment_3556" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3552/colorize-image-vb6/enslaved-odyssey-to-the-west-orange-saturation-50/" rel="attachment wp-att-3556"><img src="http://www.tannerhelland.com/wp-content/uploads/Enslaved-Odyssey-to-the-West-orange-saturation-50-600x375.jpg" alt="Enslaved poster - orange, 50 percent saturation" title="Enslaved-Odyssey-to-the-West-orange-saturation-50" width="600" height="375" class="size-large wp-image-3556" /></a><p class="wp-caption-text">Here&#039;s the same image, but with saturation forced to 50 percent (Photoshop style).  See how the characters and background blur together?  The nice contrast between the background buildings and the character on the right is no longer present.</p></div>
<div id="attachment_3557" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3552/colorize-image-vb6/enslaved-odyssey-to-the-west-orange-saturation-100/" rel="attachment wp-att-3557"><img src="http://www.tannerhelland.com/wp-content/uploads/Enslaved-Odyssey-to-the-West-orange-saturation-100-600x375.jpg" alt="Enslaved poster - orange, 100 percent saturation" title="Enslaved-Odyssey-to-the-West-orange-saturation-100" width="600" height="375" class="size-large wp-image-3557" /></a><p class="wp-caption-text">...and here&#039;s the image again, but with saturation forced to 100 percent.  This looks terrible, IMO.</p></div>
<p>I think the top image in this set offers the most interesting colorization&#8230; but since I wrote this code, I could be biased&#8230; :)</p>
<p>Full sample code is provided, and &#8211; like all code on this site &#8211; it&#8217;s fast enough to run in real-time.  </p>
<div id="attachment_3558" class="wp-caption aligncenter" style="width: 610px"><a  href="http://www.tannerhelland.com/3552/colorize-image-vb6/colorize-program-screenshot/" rel="attachment wp-att-3558"><img src="http://www.tannerhelland.com/wp-content/uploads/colorize-program-screenshot-600x528.jpg" alt="Colorize program screenshot" title="colorize-program-screenshot" width="600" height="528" class="size-large wp-image-3558" /></a><p class="wp-caption-text">Here&#039;s a screenshot of the GUI attached to the sample code</p></div>
<p>Comments and ideas for improvement are always welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerhelland.com/3552/colorize-image-vb6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PCLinuxOS 2011 KDE: A Review and Retrospective</title>
		<link>http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/</link>
		<comments>http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 05:50:12 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[PCLinuxOS]]></category>
		<category><![CDATA[BFS]]></category>
		<category><![CDATA[desktop aesthetics]]></category>
		<category><![CDATA[distro review]]></category>
		<category><![CDATA[Linux PCLinuxOS]]></category>
		<category><![CDATA[Synaptic]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=1934</guid>
		<description><![CDATA[After using PCLinuxOS for almost a year, I finally feel like I can offer a fair opinion on it.  My take?  PCLinuxOS is a great distro for individuals who favor rolling updates, performance, and a dedicated community. If you're a first-time Linux user or if you favor aesthetics over technological prowess, better choices are available.]]></description>
			<content:encoded><![CDATA[<p><strong><abbr title="too long; didn't read">tl;dr</abbr> &#8211; PCLinuxOS is a great distro for individuals who favor rolling updates, performance, and a dedicated community.  If you&#8217;re a first-time Linux user or if you favor aesthetics over technological prowess, better choices are available.</strong></p>
<p>First, a bit of background.  (If you want to jump straight to the review, scroll down to where the pictures start.)</p>
<p>In April 2010, I found myself becoming <a  href="http://www.tannerhelland.com/1583/dear-ubuntu-windows-7-is-great/">increasingly disgruntled</a> with Ubuntu (my OS of choice <a  href="http://www.tannerhelland.com/136/ubuntu-8-04/">since late 2008</a>).  There was no one thing that ruined Ubuntu for me; rather, it was a growing list of inconveniences (10.04 had multiple hardware and software issues on my machine) coupled with regular use of Windows 7 at my place of employment.  Windows 7 was as easy to use as Ubuntu for most tasks &#8211; worse in some ways (updating every piece of software individually), better in other ways (DVRing with Windows Media Center vs MythTV).  I had originally switched to Ubuntu because at the time, it provided me a better experience than Windows XP.  With the release of Windows 7, this no longer seemed as obvious.</p>
<p>For me, my <abbr title="operating system">OS</abbr> is primarily a tool.  I&#8217;m willing to fight it on minor issues, but for the most part I want it to stay out of the way so I can get actual work done.  The more I used Windows 7, the less I was willing to fight Ubuntu.</p>
<p>I contemplated purchasing a copy of Windows 7, but <a  href="https://www.microsoft.com/windows/buy/windows-7.aspx">it&#8217;s expensive</a>, and I didn&#8217;t think it was fair to leave Linux based only on my experience with Ubuntu (and limited experience with openSUSE and Linux Mint).</p>
<p>So I went hunting for a new distro.  My requirements were fairly reasonable:</p>
<ul>
<li>KDE or Gnome was acceptable, though I leaned toward KDE (out of curiosity).</li>
<li>Reliability.  Updates shouldn&#8217;t break software or hardware functionality.</li>
<li>Simple install.  If 95+% of my needs aren&#8217;t met out-of-the-box, I&#8217;m not going to fight it.  Maybe when I was younger&#8230; but now I can&#8217;t afford to have a PC out of commission for days at a time.</li>
<li>Pleasant community.  I deal with enough assholes in real life &#8211;  I don&#8217;t need &#8216;em telling me to RTFM when I post well-researched questions in official forums.</li>
<li>Large software repositories.  As you can tell from my site, I work in a lot of areas (programming, music, graphic design, writing), each of which requires unique software.  Niche distros don&#8217;t always support the software I need, so they&#8217;re not a good fit.</li>
</ul>
<p>After a bit of research, I decided to try PCLinuxOS (version 2010.2).  Many individuals had good experiences with the distro, and I liked some of the edgier things it had to offer (<a  href="http://en.wikipedia.org/wiki/Brain_Fuck_Scheduler">BFS</a> instead of <a  href="http://en.wikipedia.org/wiki/Completely_Fair_Scheduler">CFS</a>, for example).  I also liked that there was no server remix &#8211; this was a desktop-only distro, which is exactly what I needed.</p>
<p><strong>First Impressions</strong></p>
<p>Right off the bat, PCLinuxOS impressed by clearly displaying the guest and root passwords on the liveCD background.  NICE.  More distros should do this.</p>
<div id="attachment_3420" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3420" href="http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/pclos_default_livecd_desktop/"><img class="size-large wp-image-3420" title="PCLOS_default_liveCD_desktop" src="http://www.tannerhelland.com/wp-content/uploads/PCLOS_default_liveCD_desktop-600x450.jpg" alt="PCLinuxOS 2010.11 KDE liveCD default desktop" width="600" height="450" /></a><p class="wp-caption-text">The PCLinuxOS 2010.11 KDE liveCD default desktop</p></div>
<p>The installer (based off Mandriva&#8217;s) definitely tends toward &#8220;powerful&#8221; instead of &#8220;straightforward.&#8221;  I had a bit of a heart attack when the drive formatting screen loaded with a blank window titled &#8220;resizing&#8230;&#8221;  At first I thought this was blindly resizing some partition&#8230; turns out it doesn&#8217;t mean anything.  Phew.  (Someone should do away with that window.)  I liked the option to manually specify which drive would receive GRUB&#8230; unlike Ubuntu 10.04, which indiscriminately overwrites the Windows bootloader.  Besides the brief formatting scare, installation was largely uneventful, as any good installation should be.</p>
<p>That said, I wouldn&#8217;t recommend PCLinuxOS for first-time Linux installers.  Being able to manually specify bootloaders, mountpoints, and other advanced options are great for individuals who know what they&#8217;re doing &#8211; but it&#8217;s possible to eff up your install if you&#8217;re inexperienced.  Consider yourself warned.</p>
<div id="attachment_3422" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3422" href="http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/pclos_installer_grub_configuration/"><img class="size-large wp-image-3422" title="PCLOS_installer_GRUB_configuration" src="http://www.tannerhelland.com/wp-content/uploads/PCLOS_installer_GRUB_configuration-600x450.jpg" alt="PCLOS installer GRUB configuration" width="600" height="450" /></a><p class="wp-caption-text">Screens like this are great for linux veterans, not so great for first-time users</p></div>
<p>On first boot, some nice touches appear &#8211; the themed GRUB is much better than a stock black-and-white one. You&#8217;re asked to provide a root password, followed by a &#8220;create new user screen.&#8221;</p>
<div id="attachment_3423" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3423" href="http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/pclos_default_grub_screen/"><img class="size-large wp-image-3423" title="PCLOS_default_GRUB_screen" src="http://www.tannerhelland.com/wp-content/uploads/PCLOS_default_GRUB_screen-600x450.jpg" alt="PCLinuxOS 2010 KDE default GRUB screen" width="600" height="450" /></a><p class="wp-caption-text">The PCLinuxOS 2010 default GRUB screen shows off its custom theme</p></div>
<div id="attachment_3424" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3424" href="http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/pclos_first_boot_create_user/"><img class="size-large wp-image-3424" title="PCLOS_first_boot_create_user" src="http://www.tannerhelland.com/wp-content/uploads/PCLOS_first_boot_create_user-600x450.jpg" alt="PCLinuxOS create new user screen (first boot)" width="600" height="450" /></a><p class="wp-caption-text">On first boot, you are presented with this create user screen</p></div>
<div id="attachment_3419" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3419" href="http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/pclos_load_screen/"><img class="size-large wp-image-3419" title="PCLOS_load_screen" src="http://www.tannerhelland.com/wp-content/uploads/PCLOS_load_screen-600x450.jpg" alt="PCLinuxOS 2010.11 loading screen" width="600" height="450" /></a><p class="wp-caption-text">The stock PCLinuxOS KDE load screen</p></div>
<p>One of my favorite moments from the boot process is the start-up sound; for some reason, it reminds me of the &#8220;sleeping&#8221; mini-tune from a PS1 era RPG (like Final Fantasy 8 or 9). I laugh every time I hear it.</p>
<p>An interesting PCLOS decision is not including OpenOffice.org by default. Fortunately, a &#8220;Get OpenOffice&#8221;  link appears on the default desktop.  This brings up an OO.org installer  of sorts, which saves room on the install CD without much inconvenience to the end user.</p>
<p>Not including OO.org allows PCLinuxOS to include a LOT of software by default.  Some will like this, some will not.  I think some trimming down could be done without sacrificing quality, but I imagine someone out there is grateful for the eclectic collection of default programs.  There is no real rhyme or reason to the way software is included &#8211; for example, Thunderbird is included instead of KMail or Evolution, GIMP appears (but no Krita), Synaptic is the default package manager, Pidgin is the default IM client, TVTime (a simple tv client) is included, XChat appears instead of Konversation, and Clementine is the default audio player instead of amaroK (or even Rhythmbox).  This random assortment of applications from different toolkits, desktop environments, and software teams will frustrate those looking for unification&#8230; but it probably isn&#8217;t new to people coming from a Windows background.</p>
<div id="attachment_3425" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3425" href="http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/pclos_default_menu/"><img class="size-large wp-image-3425" title="PCLOS_default_menu" src="http://www.tannerhelland.com/wp-content/uploads/PCLOS_default_menu-600x450.jpg" alt="PCLinuxOS 2010 KDE default menu" width="600" height="450" /></a><p class="wp-caption-text">The default menu is closer to Windows 95 than a modern KDE build... but it&#39;s easily changed</p></div>
<p>One clever feature PCLinuxOS includes is a repository speed test, which will ping a list of repositories and let you select the fastest as your default.  The user interface is confusing and unnecessarily terse, but once you figure out what it&#8217;s doing, you should be able to shorten your update and installation processes.  Clever!</p>
<p><strong>Digging Deeper</strong></p>
<p>By and large, hardware support in PCLinuxOS was good. On my particular hardware, three major problems stood out &#8211; I was unable to get my Ralink 802.11n PCI card working (note: several months later, the problem corrected itself&#8230;so go figure).  I was unable to find and configure a Canon MX340 printer attached to the network via a Windows 7 computer, and I could not get my Hauppauge HVR-1600 TV card working with MythTV.</p>
<p>All three of these issues were not present in Kubuntu 10.04 or 10.10, so I&#8217;m not sure what happened in PCLinuxOS.  I primarily print and use the TV card in Windows, so I could afford to live without those.  The non-functional wi-fi card was a bigger problem, but I solved it by running an ethernet port to a nearby Windows machine and sharing its wireless signal.  Inelegant, but functional.</p>
<p>Now for the good news &#8211; PCLinuxOS was significantly more responsive than my previous Ubuntu install.  (This may be to BFS&#8230;idk.) Interestingly, the biggest difference I saw was on full-screen Flash video.  Out of curiosity, I also installed PCLinuxOS to my aging Compaq laptop (1.6ghz Celeron processor), which has never been able to play Flash full-screen at more than 4-5 fps in Ubuntu.  On PCLinuxOS, full-screen Flash worked at 13-15 fps&#8230; so not quite as good as Windows (25-30fps), but significantly better than Ubuntu.  This example is purely anecdotal and YMMV, but I was shocked &#8211; and impressed! &#8211; at the difference.</p>
<p>PCLinuxOS includes Mandriva&#8217;s Control Center software, which provides additional control over a variety of system settings.  Also included are some handy tools for mixed-OS environments like mine, with a Windows migration tool, a Windows font installer, and a wizard for connecting to shared printers and drives.  Some of these worked well (the migration tool), others did not (the printer sharing wizard).  Some of the options will be confusing for new users &#8211; for example, &#8220;Configure 3D Desktop Effects,&#8221; which is great for configuring Compiz but useless for KWin (the default window manager).  Additionally, many of the tools require you to install various packages before you can utilize them.</p>
<p>This is a prime example of what frustrates desktop Linux users like myself: there are so many great features and great ideas, but the level of polish is often closer to &#8220;beta version&#8221; than &#8220;release candidate.&#8221;  Some of the tools the Control Center provides are redundant with KDE System Settings, while others are very useful and unique.  Also confusing is the branding&#8230; &#8220;Mandriva&#8221; appears instead of &#8220;PCLinuxOS&#8221; in certain screens, for example.</p>
<div id="attachment_3426" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3426" href="http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/pclinuxos_control_center/"><img class="size-large wp-image-3426" title="PCLinuxOS_Control_Center" src="http://www.tannerhelland.com/wp-content/uploads/PCLinuxOS_Control_Center-600x450.jpg" alt="PCLinuxOS 2010 KDE Control Center" width="600" height="450" /></a><p class="wp-caption-text">The PCLinuxOS Control Center contains tools ranging from useful to largely irrelevant</p></div>
<p>That said, it was nice to have so many system settings available in one place, even if not all of them worked as expected.</p>
<p><strong>Some of my favorite things about PCLinuxOS</strong></p>
<p>PCLinuxOS is a rolling release distro, which means you get updates in an incremental manner.  These updates include the usual security and bug-fix updates, as well as major updates (KDE 4.5 -&gt; 4.6 or OO.org 2.2 -&gt; 2.3, for example).  If you like having the latest software, PCLinuxOS is an excellent choice.  I often received KDE-SC updates <em>before</em> the final release announcement got posted to <a  href="http://www.kde.org">kde.org</a>.  How many other distros can claim that?</p>
<p>PCLinuxOS also includes a number of pre-configured kernels for various purposes.  If you don&#8217;t like BFS, a CFS kernel is available via Synaptic.  A PAE kernel is also available, as well as one tuned for AMD processors.</p>
<p>PCLinuxOS sports a very large, very impressive software collection in its supported repositories.  Many small and lesser-known apps are available, though packaging can sometimes be unpredictable.  (For example, I was unable to locate <a  href="http://rosegardenmusic.com/">Rosegarden</a> in the 2010 repositories, though I hear it was added in 2011.)  If you&#8217;re looking for something not found in the official repositories, folks in <a  href="http://www.pclinuxos.com/forum/">the official forum</a> often know where to find a compatible download or an explanation of why the software isn&#8217;t included.</p>
<p>Speaking of the forums, the PCLinuxOS crowd was universally friendly during my time with them.  Questions were answered swiftly and often correctly. It was also fairly common to get responses from actual developers.  Also unique is <a  href="http://pclosmag.com/">the monthly PCLinuxOS magazine</a> &#8211; a community-run collection of tips, tutorials, testimonials, FOSS humor, and more, with articles dating back to 2006.  The formatting would make a graphic designer cry (hehe) but joking aside, it provides a nice collection of information on the distro and other free software. Not many open source projects give rise to community efforts of this size and consistency.</p>
<div id="attachment_3427" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3427" href="http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/pclinuxos_magazine_homepage/"><img class="size-large wp-image-3427" title="PCLinuxOS_magazine_homepage" src="http://www.tannerhelland.com/wp-content/uploads/PCLinuxOS_magazine_homepage-600x449.jpg" alt="PCLinuxOS magazine homepage" width="600" height="449" /></a><p class="wp-caption-text">The official PCLinuxOS magazine isn&#39;t much to look at... but it provides a lot of nice information</p></div>
<p>Finally, PCLinuxOS does a solid job of providing an out-of-the-box multimedia experience.  With the exception of DVD playback, most proprietary multimedia tools (including Flash, mp3, and Java) are included in the default install.</p>
<p><strong>Some of my concerns with PCLinuxOS</strong></p>
<p>I believe it&#8217;s a fair characterization to say that PCLinuxOS is a distro &#8220;for Linux users by Linux users.&#8221;  I certainly don&#8217;t mean this as an insult (or even as a compliment, necessarily): it is what it is.  The team behind PCLinuxOS knows Linux well, and they use that knowledge to put together a very unique distro with good ideas from all over the map.  Some have called PCLinuxOS a Mandriva derivative, but that isn&#8217;t accurate. Recent versions contain elements from every major distro.</p>
<p>Unfortunately, such an approach is both a strength and a weakness.  PCLinuxOS is a technical accomplishment and a well-engineered piece of machinery, but it lacks any sort of unifying design aesthetic.  A prime example of this is the confusing array of branding in the project:</p>
<div id="attachment_3428" class="wp-caption aligncenter" style="width: 398px"><a  rel="attachment wp-att-3428" href="http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/pclos_branding/"><img class="size-full wp-image-3428" title="PCLOS_branding" src="http://www.tannerhelland.com/wp-content/uploads/PCLOS_branding.jpg" alt="PCLinuxOS branding" width="388" height="571" /></a><p class="wp-caption-text">PCLinuxOS branding is all over the place</p></div>
<p>&#8220;Dobie the bull&#8221; is the (un?) official PCLinuxOS mascot, but it appears only sporadically across the distro.  A circular PC logo is used some places, but an entirely different font is used in each custom application launch screen. <a  href="http://www.pclinuxos.com/"> The official website</a> suffers from a similar lack of branding, with only a plain text (!!) logo and a cramped, austere layout.  Blue seems to be the preferred color choice, but not any particular hue &#8211; instead, a recurring gradient from neon blue to navy blue is used. A total lack of secondary colors leaves the desktop with a bleak, uninspired feel.</p>
<p>Making matters worse is the included artwork &#8211; for example, notice the horrible photoshopping at the top center of this wallpaper (included with every install):</p>
<div id="attachment_3429" class="wp-caption aligncenter" style="width: 610px"><a  rel="attachment wp-att-3429" href="http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/pclos_black_default_wallpaper/"><img class="size-large wp-image-3429" title="PCLOS_black_default_wallpaper" src="http://www.tannerhelland.com/wp-content/uploads/PCLOS_black_default_wallpaper-600x450.jpg" alt="PCLinuxOS black default wallpaper" width="600" height="450" /></a><p class="wp-caption-text">Default wallpapers like this (see the photoshopping?) do a real disservice to the distro</p></div>
<p>It&#8217;s difficult to discuss aesthetics objectively, but PCLinuxOS is undoubtedly a project in need of a dedicated designer.  The technical aspects of the distro are impressive, but aesthetics are largely ignored.  This problem is hardly unique to PCLinuxOS, but it gives off an &#8220;amateurish&#8221; vibe that&#8217;s unfair to its strong technical underpinnings.</p>
<p>Similarly, the name &#8220;PCLinuxOS&#8221; is&#8230; terrible? I guess the random hodgepodge of redundant words/abbreviations mimics the eclectic nature of the distro, but the name is clearly something thought up by an engineer, not a marketer.  Again, a lot of people probably don&#8217;t care about such a thing &#8211; but believe me, it&#8217;s embarrassing to share a name like that with my designer and artist colleagues.</p>
<p>One final point, and then I&#8217;ll be done with my aesthetics rant.  :)  As much as its not fair to judge a book by its cover, every Linux distro must accept that people are going to pass judgment based on little things like a name, logo, and color schemes.  As a credit to the impressive technical accomplishments PCLinuxOS has achieved, it owes it to itself to package that technical prowess in a handsome package.  That&#8217;s all I&#8217;m saying.</p>
<p>Moving on.</p>
<p>I&#8217;ve already mentioned some small technical quirks with PCLinuxOS, but let me add a few more.</p>
<p>First, PCLinuxOS uses Synaptic as its sole package management method.  (Raw use of apt-get is <a  href="http://www.pclinuxos.com/forum/index.php/topic,63198.0.html">actively discouraged</a>.)  However, PCLinuxOS is an rpm-based distro, which leaves users stuck with an old, crufty version of Synaptic.  It&#8217;s well-known in the forums that <a  href="http://www.pclinuxos.com/forum/index.php/topic,83631.0.html">moving to a new package manager is inevitable</a>; in fact, Texstar &#8211; the heart and soul of PCLinuxOS &#8211; had <a  href="http://www.pclinuxos.com/forum/index.php/topic,81542.0.html">the following</a> to say:</p>
<blockquote><p>The reason for looking at an alternative is because we need to update our rpm package which is quite old now (4.4.6) and has become more buggy resulting in corrupted rpm databases. It won&#8217;t recompile against our current gcc/glibc and no bug patches are available. rpm is now at version (4.8.1). apt-get will work with rpm 4.8.1 but Synaptic is in pretty bad shape and crashes out often. Smart gui is not user friendly. packagekit is slower than molasses that last time I looked at it. rpmdrake to me is really not suitable for a distribution that receives daily package updates. The reason I am leaning towards Yumex is it is very close to Synaptic in terms of looks and speed. yum/Yumex works with rpm 4.8.1. The file list generated with apt or yum are compatible with each other. That makes it an easy drop in replacement.</p></blockquote>
<p>As of this writing (February 2011) no official replacement has been named, but I hope the team settles on something soon.  Package management is a core part of the Linux desktop experience, and a grossly outdated, unmaintained version of Synaptic and apt for rpms doesn&#8217;t cut it.</p>
<p>Similarly, it is shocking to me that PCLinuxOS doesn&#8217;t ship with an update manager.  For a distro where regular updates are such a great selling point, this seems like a bizarre choice.  It&#8217;s trivial to install update-notifier from the repositories, but this is also a poor solution.  Update-notifier is unable to update much of anything without throwing the following warning:</p>
<div id="attachment_3421" class="wp-caption aligncenter" style="width: 410px"><a  rel="attachment wp-att-3421" href="http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/pclos_update_notifier_error/"><img class="size-full wp-image-3421" title="PCLOS_update_notifier_error" src="http://www.tannerhelland.com/wp-content/uploads/PCLOS_update_notifier_error.png" alt="PCLinuxOS update notifier error" width="400" height="273" /></a><p class="wp-caption-text">Get used to this error.  You&#39;ll see it a lot.</p></div>
<p>(Thanks to <a  href="http://www.linuxbsdos.com/2010/07/20/pclinuxos-2010-review/2/">http://www.linuxbsdos.com/2010/07/20/pclinuxos-2010-review/2/</a> for the screenshot.)</p>
<p>This error doesn&#8217;t actually mean something is wrong &#8211; it just means an update wants to remove outdated packages as part of the update process.  Since this happens frequently, expect to spend a lot of time manually checking for updates in the aforementioned crufty old version of Synaptic.</p>
<p><strong>So Do I Still Use PCLinuxOS?<br />
</strong></p>
<p>I used PCLinuxOS as my primary desktop OS from April 2010 to November 2010.  In November 2010, my PC died (motherboard failure) and I replaced it with a new Core i5 rig from ASUS.  This was apparently a bad time to use PCLinuxOS on an Intel chipset &#8211; my dual-monitor setup failed to work, the window manager disabled all effects (including useful workflow ones, like &#8220;Present Windows&#8221;), and having a fresh Windows 7 install made this less tolerable than usual.  I kept PCLinuxOS installed on my old Compaq laptop (where it continues to run like a champ), but have not returned to using it on my desktop.  I tried reinstalling it last week to test KDE 4.6 and see if it solved my window manager problems, but PCLinuxOS repositories have been down for most of 2011 (due to <a  href="http://www.ibiblio.org/archive/2011/01/ibiblio-org-on-the-move/">ibiblio.org server moves</a>) and I was unable to install needed updates.  Interestingly, other KDE-based distros (including Kubuntu) have worked with my chipset since last November, leaving me to wonder what quirk affects PCLinuxOS.  Perhaps I&#8217;ll give it another shot once KDE 4.6 hits the repositories.</p>
<p><strong>Closing Thoughts</strong></p>
<p>I have been working on this review on-and-off since last April.  I don&#8217;t like posting a full distro review after using it for only a few weeks &#8211; to me, the real measure of a distro is how it performs after months of regular use, updates, and assorted troubleshooting.</p>
<p>An article from last week (<a  href="http://ostatic.com/blog/is-pclinuxos-on-the-ropes">Is PCLinuxOS on the Ropes?</a> by Susan Linton) prompted me to finally finish up my thoughts and get this published.</p>
<p>I think PCLinuxOS KDE is a massive accomplishment in many respects.  In terms of technical prowess, it ranks alongside any of the large, commercially-backed distros &#8211; no small feat for a volunteer effort.  It amazes me that such a small team can not only produce a very good KDE-based distro, but also LXDE, XFCE, Gnome, &#8220;Gnome Zen Mini,&#8221; Enlightenment, and OpenBox spins.  Each one of these is a massive undertaking in its own right. PCLinuxOS also stands out as one of the only distros to ship BFS out of the box &#8211; a testament to its focus on desktop-oriented technology.</p>
<p>Unfortunately, a good desktop OS requires more than just powerful underlying technology &#8211; it requires careful attention to the user interface, aesthetics, and the overall flow and feel of the desktop.  I would love to see PCLinuxOS receive some attention from trained designers who can help eliminate its many inconsistencies.</p>
<p>Finally, I am in no place to offer advice to a group of volunteers working on something they&#8217;re passionate about, but I&#8217;ll do it anyway.  :)  I think it would serve PCLinuxOS well to focus on a smaller set of desktop environments.  I&#8217;d love to see them polish their KDE version into the truly definitive KDE experience it&#8217;s capable of being.  With so much of the technical work already in place, it seems a shame to not put in that extra 10% effort necessary to elevate it from &#8220;good&#8221; to &#8220;great.&#8221;</p>
<p>I will continue to use PCLinuxOS on older machines, and I strongly encourage any KDE fans out there to give the distro a try.  Many thanks to Texstar and his team for their impressive work.</p>
<p><em>You can download the latest version of PCLinuxOS at <a  href="http://www.pclinuxos.com/?page_id=10">http://www.pclinuxos.com/?page_id=10</a>.</em></p>
<p><strong>Update 17 Feb 2011:</strong></p>
<p>Several relevant comments have been made by PCLinuxOS users, which I thought I&#8217;d point out here:</p>
<ul>
<li>The default software selection is apparently a community decision.  I&#8217;m not sure how formal this is&#8230; <em>e.g.</em> do they hold a survey, or does whoever complain the loudest get to make the decision&#8230;?  idk</li>
<li>Minimalist ISOs are available for folks who want to assemble their own software collection.  I was unaware of this when I wrote the original review.</li>
<li>PCLinuxOS users certainly come in all shapes and sizes.  :)  Some of the kinder ones have posted comments below, but I was forced to moderate several comments stating nothing more than &#8220;you are an idiot, I hope you die, blah blah blah.&#8221;  As a warning to future commenters &#8211; make a relevant point, or your comment will be deleted.</li>
<li>If you want, you can follow the conversation about this review in the official PCLinuxOS forums via this link: <a  href="http://www.pclinuxos.com/forum/index.php/topic,87235.0.html">http://www.pclinuxos.com/forum/index.php/topic,87235.0.html</a>.  (Note: I will no longer be posting there, so if you want me to see something, submit it in the comments here or use <a  href="http://www.tannerhelland.com/contact/">my contact form</a>.)</li>
<li>Finally, as the title of this review clearly states, this is only about the KDE version of PCLinuxOS 2011.  I did not use every other spin available, so my comments may or may not relate to the other versions of PCLinuxOS.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerhelland.com/1934/pclinuxos-2011-kde-review/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>Where does Microsoft make its money? (Updated 2010)</title>
		<link>http://www.tannerhelland.com/2962/where-does-microsoft-make-its-money-2010/</link>
		<comments>http://www.tannerhelland.com/2962/where-does-microsoft-make-its-money-2010/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 20:34:53 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[MS]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=2962</guid>
		<description><![CDATA[Ever wondered which Microsoft divisions are most profitable?  I have.  Here's a list (with charts!) of the 2010 revenue and operating income of Microsoft's five major divisions: Windows and Windows Live, Server and Tools, Online Services, Microsoft Business, and Entertainment and Devices.]]></description>
			<content:encoded><![CDATA[<p>Since my <a  href="http://www.tannerhelland.com/882/where-does-microsoft-make-its-money/">previous article on this topic</a> has received a lot of attention, I figured I should update the numbers for 2010.</p>
<p>Before I post these numbers (which are publicly available via <a  href="https://www.microsoft.com/investor/SEC/default.aspx">Microsoft&#8217;s 10K filing</a>), let me clearly state that I do not compile this information in order to advocate a pro- or anti-Microsoft agenda.  My primary purpose in compiling this information is to help individuals discuss Microsoft with some level of objectivity.</p>
<p>So without further ado, here&#8217;s a simplified version of &#8220;where does Microsoft make its money (2010).&#8221;</p>
<p><strong>Total Revenue and Operating Income (June 2009 &#8211; 2010)</strong></p>
<p>Total Revenue: $62,484,000,000<br />
Operating Income: $24,098,000,000</p>
<p>For those who don&#8217;t know, Operating Income = Operating Revenue &#8211; Operating Expenses.  In other words, &#8220;Operating Income&#8221; is the profit made from normal business operations. (A more formal definition is available from Investopedia: &#8220;Operating income would not include items such as investments in other firms, taxes or interest expenses. In addition, nonrecurring items such as cash paid for a lawsuit settlement are often not included. Operating income is required to calculate operating margin, which describes a company&#8217;s operating efficiency.&#8221;)</p>
<p><strong>Revenue and Operating Income by Division (June 2009 &#8211; 2010)</strong></p>
<p>Microsoft&#8217;s products are divided into five divisions: Windows &#038; Windows Live (formerly &#8220;Client&#8221;), Server and Tools, Online Services, Microsoft Business, and Entertainment and Devices.  The types of products and services provided by each segment are summarized below:</p>
<p><strong>Windows and Windows Live</strong> – Windows operating system: Windows 7, including Home Basic, Home Premium, Professional, Ultimate, Enterprise, and Starter Edition; Windows Vista, including Home Basic, Home Premium, Ultimate, Business, Enterprise and Starter Edition; and Windows XP Home. Windows Live suite of applications and web services.</p>
<p><strong>Server and Tools</strong> – Windows Server operating system; Windows Azure; Microsoft SQL Server; SQL Azure; Visual Studio; Silverlight; System Center products; Biz Talk Server; Microsoft Consulting Services; Premier product support services; and other products and services.</p>
<p><strong>Online Services Business</strong> – Bing; Microsoft adCenter; MSN; and Atlas online tools for advertisers and publishers. </p>
<p><strong>Microsoft Business Division</strong> – Microsoft Office; Microsoft SharePoint; and Microsoft Dynamics ERP and CRM, as well as Microsoft Office Web Apps, which are the online companions to Microsoft Word, Excel, PowerPoint and OneNote.</p>
<p><strong>Entertainment and Devices Division</strong> – Xbox 360 console and games; Xbox LIVE; Windows Phone; Windows Embedded device operating system; Zune; Mediaroom; and numerous consumer software and hardware products (such as Mac Office, mice, and keyboards); and Windows Automotive. </p>
<p>Microsoft&#8217;s previous fiscal year (June 2009-2010) was a particularly interesting one, with major headlines including the Windows 7 launch, Office 2010 launch, a redesigned XBox 360, Windows Phone 7, a new search and advertising agreement with Yahoo!, and the first full year of Bing-branded services.  Some of these announcements came late in the fiscal year, which can indicate significant development cost without corresponding sales (keep that in mind).</p>
<p>The 2009-2010 Revenue and Operating Income for each division, in USD, is as follows:</p>
<p><strong>Windows and Windows Live</strong><br />
Revenue: $18,491,000,000<br />
Operating Income: $12,977,000,000</p>
<p><strong>Server and Tools (Windows Server, Windows Azure, Visual Studio, Silverlight)</strong><br />
Revenue: $14,866,000,000<br />
Operating Income: $5,491,000,000</p>
<p><strong>Online Services (Bing, MSN, Hotmail)</strong><br />
Revenue: $2,199,000,000<br />
Operating income: $-2,355,000,000</p>
<p><strong>Business (Office, SharePoint, Dynamics ERP/CRM)</strong><br />
Revenue: $18,642,000,000<br />
Operating income: $11,776,000,000</p>
<p><strong>Entertainment and Devices (XBox 360/LIVE, Zune, Windows Phone, hardware)</strong><br />
Revenue: $8,058,000,000<br />
Operating income: $679,000,000</p>
<div class="captionfull"><a  href="http://www.tannerhelland.com/2962/where-does-microsoft-make-its-money-2010/microsoft_2010_revenue_values/" rel="attachment wp-att-2964"><img src="http://www.tannerhelland.com/wp-content/uploads/Microsoft_2010_Revenue_Values.png" alt="" title="Microsoft_2010_Revenue_Values" width="693" height="466" class="aligncenter size-full wp-image-2964" /></a></div>
<div class="captionfull"><a  href="http://www.tannerhelland.com/2962/where-does-microsoft-make-its-money-2010/microsoft_2010_revenue_percent/" rel="attachment wp-att-2965"><img src="http://www.tannerhelland.com/wp-content/uploads/Microsoft_2010_Revenue_Percent.png" alt="" title="Microsoft_2010_Revenue_Percent" width="693" height="466" class="aligncenter size-full wp-image-2965" /></a></div>
<div class="captionfull"><a  href="http://www.tannerhelland.com/2962/where-does-microsoft-make-its-money-2010/microsoft_2010_income_values/" rel="attachment wp-att-2966"><img src="http://www.tannerhelland.com/wp-content/uploads/Microsoft_2010_Income_Values.png" alt="" title="Microsoft_2010_Income_Values" width="786" height="466" class="aligncenter size-full wp-image-2966" /></a></div>
<div class="captionfull"><a  href="http://www.tannerhelland.com/2962/where-does-microsoft-make-its-money-2010/microsoft_2010_income_values_bar/" rel="attachment wp-att-2967"><img src="http://www.tannerhelland.com/wp-content/uploads/Microsoft_2010_Income_Values_Bar.png" alt="" title="Microsoft_2010_Income_Values_Bar" width="786" height="517" class="aligncenter size-full wp-image-2967" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerhelland.com/2962/where-does-microsoft-make-its-money-2010/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 7/15 queries in 0.017 seconds using disk: basic

Served from: www.tannerhelland.com @ 2012-02-04 10:10:15 -->
