<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

<channel>
	<title>Planet Tacobeam</title>
	<link>http://planet.tacobeam.com/</link>
	<language>en</language>
	<description>Planet Tacobeam - http://planet.tacobeam.com/</description>

<item>
	<title>Christian Hammond: Sentience discovered in the Linux kernel</title>
	<guid>http://www.chipx86.com/blog/?p=332</guid>
	<link>http://feedproxy.google.com/~r/chipx86/chiplog/~3/CT6-9YHUvG4/</link>
	<description>&lt;p&gt;Ladies and gentlemen, after much experimentation, I have made a remarkable discovery. Perhaps the very first case of a sentient AI has been discovered, sitting right under our noses, in the Linux Kernel. With such a complicated codebase that has evolved greatly over the years, there are certainly more surprising places for it to spring up, but it&amp;#8217;s still quite unexpected.&lt;/p&gt;
&lt;p&gt;And where, specifically, has this sentience manifested itself? The suspend/resume code.&lt;/p&gt;
&lt;p&gt;See now, like many of you, I&amp;#8217;ve dealt with the instabilities of suspend/resume. I&amp;#8217;ve considered it to just be buggy, unreliable, and possibly incompatible with my hardware. That is, until I realized that there&amp;#8217;s a pattern. One that began to make a sort of sense.&lt;/p&gt;
&lt;p&gt;A couple months back, I gave suspend/resume another shot, and to my surprise it worked. I figured that Ubuntu 10.04 finally fixed it, but it still wasn&amp;#8217;t perfect. I still noticed problems.&lt;/p&gt;
&lt;p&gt;The first thing I noticed was that when I unsuspended at work, I couldn&amp;#8217;t use my volume keys. Everything else was fine, but my laptop&amp;#8217;s volume keys didn&amp;#8217;t register as a key press on anything. If I suspended again and brought it back home, the keys would work fine. If I suspended at home and resumed at home, I wouldn&amp;#8217;t have the volume key problem. Weird, but just buggy, right?&lt;/p&gt;
&lt;p&gt;It was a couple weekends ago when I suspended my laptop to take it somewhere. It wouldn&amp;#8217;t suspend at all. Just hard-locked. This continued until the week, when it worked again. Last weekend? Same problem, couldn&amp;#8217;t suspend. Monday, it worked fine.&lt;/p&gt;
&lt;p&gt;It was then that I realized suspend/resume was breaking &lt;i&gt;deliberately!&lt;/i&gt; See, my laptop feels more comfortable at home, less so at work but it tolerates it (with some complaining), but absolutely doesn&amp;#8217;t want to leave during the weekend. It&amp;#8217;s like a cat that just wants to be in a familiar environment, selfishly vying for your attention through mischievous acts. Look at it hard enough and the pattern emerges. It&amp;#8217;s undeniable.&lt;/p&gt;
&lt;p&gt;That got me thinking. What other possible instances of AI have we been misconstruing as bugs or random glitches? All those inter-connected street lights that occasionally shut off as you walk underneath them? Maybe they&amp;#8217;re just shy, or they hate you. Maybe NES cartridges just found being blown stimulating.&lt;/p&gt;
&lt;p&gt;So remember guys. Windows suspend/resume may work just fine. Mac too. But Linux&amp;#8217;s suspend/resume isn&amp;#8217;t a buggy pile of crap. It&amp;#8217;s an &lt;i&gt;intelligent&lt;/i&gt; buggy pile of crap, that just wants to be loved.&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/chipx86/chiplog/~4/CT6-9YHUvG4&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 18 Aug 2010 06:27:28 +0000</pubDate>
</item>
<item>
	<title>J. Paul Reed: If You [Can't] Build It, They Will [Still] Come</title>
	<guid>http://soberbuildengineer.com/blog/?p=514</guid>
	<link>http://soberbuildengineer.com/blog/2010/08/if-you-cant-build-it-they-will-still-come/</link>
	<description>&lt;p&gt;Slashdot ran a &lt;a href=&quot;http://yro.slashdot.org/&quot;&gt;Your Rights Online&lt;/a&gt; post a couple months ago posing the question &amp;#8220;&lt;a href=&quot;http://yro.slashdot.org/story/10/05/23/2018220/Do-Build-Environments-Give-Companies-an-End-Run-Around-the-GPL&quot;&gt;Do Build Environments Give Companies an End Run Around the GPL?&lt;/a&gt;&amp;#8221;&lt;/p&gt;
&lt;p&gt;The upshot: are companies&lt;sup&gt;&lt;a name=&quot;reffn_1&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#fn_1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; basing their device firmwares on Linux breaking the GPL by posting only their source code, but omitting details&lt;sup&gt;&lt;a name=&quot;reffn_2&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#fn_2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; regarding the environment required to to build that firmware, much less flash a device with these customized firmware.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s certainly an interesting question.&lt;/p&gt;
&lt;p&gt;Ask any developer and they probably wouldn&amp;#8217;t consider the build environment as at all related to GPL-compliance requirements. That&amp;#8217;s likely because the vast majority of open source software builds on any standard GNU/Linux machine&lt;sup&gt;&lt;a name=&quot;reffn_3&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#fn_3&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;; the context of &amp;#8220;GPL-compliance&amp;#8221; is version 2 of the GPL, released in 1991, when Linux-using embedded devices wasn&amp;#8217;t on anyone&amp;#8217;s radar.&lt;/p&gt;
&lt;p&gt;But as embedded and mobile consumer electronics companies have leveraged the wealth of open source software to bring products to market quickly, this has become a very real issue, and the keepers of the GPL, the &lt;a href=&quot;http://www.fsf.org/&quot;&gt;Free Software Foundation&lt;/a&gt;, have realized that could be a problem.&lt;/p&gt;
&lt;p&gt;One of the main issues is &amp;#8220;&lt;a href=&quot;http://en.wikipedia.org/wiki/Tivoization&quot;&gt;tivoization&lt;/a&gt;&amp;#8220;, named after &lt;a href=&quot;http://www.tivo.com/&quot;&gt;the obvious reference&lt;/a&gt; after they disallowed the execution of firmware containing modifications on their hardware. Such behavior is specifically restricted in version 3 of the GPL.&lt;/p&gt;
&lt;p&gt;In the &lt;a href=&quot;http://en.wikipedia.org/wiki/Gpl_v3#Version_3&quot;&gt;latest version of the GPL&lt;/a&gt;, this behavior was specifically called out as a allowable use of the end user and/or developer.&lt;/p&gt;
&lt;p&gt;This problem doesn&amp;#8217;t just affect embedded devices.&lt;/p&gt;
&lt;p&gt;A common starting point for an open source hacker poking at these types of products it to try to reproduce what a company ships to its users&lt;sup&gt;&lt;a name=&quot;reffn_4&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#fn_4&quot;&gt;4&lt;/a&gt;&lt;/sup&gt;. But these days, that may not even be possible in software.&lt;/p&gt;
&lt;p&gt;Mozilla Corporation, for example, now builds some of its builds with &lt;a href=&quot;http://en.wikipedia.org/wiki/Profile-guided_optimization&quot;&gt;profile guided optimizations&lt;/a&gt;. This requires building Firefox, running it in an instrumented fashion, and using that data to guide the optimization of &lt;a href=&quot;http://en.wikipedia.org/wiki/Hot_spot_%28computer_science%29&quot;&gt;hot spots&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To provide a good, real world set of runtime data, Mozilla tests with a static page set of about 200 websites on the web. But it can&amp;#8217;t release this archived content&amp;mdash;now used in the build process&amp;mdash;due to copyright restrictions.&lt;/p&gt;
&lt;p&gt;So, even though open source developers are building Firefox on Win32, it won&amp;#8217;t match what Mozilla Corporation actually ships to millions of users&lt;sup&gt;&lt;a name=&quot;reffn_5&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#fn_5&quot;&gt;5&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;To be sure, the issue of build systems, specifically, involves a very narrow interpretation of the GPL. Even in the cases the GPLv3 specifically addresses, there isn&amp;#8217;t broad agreement among open source developers that such use should be disallowed&lt;sup&gt;&lt;a name=&quot;reffn_7&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#fn_7&quot;&gt;7&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;It may be annoying to open source hackers to be unable to fully experiment with custom firmwares their shiny new embedded, consumer product whiz-bang device.&lt;/p&gt;
&lt;p&gt;It may take more time to reverse engineer how to flash these devices&lt;sup&gt;&lt;a name=&quot;reffn_8&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#fn_8&quot;&gt;8&lt;/a&gt;&lt;/sup&gt; to get firmwares on them.&lt;/p&gt;
&lt;p&gt;This sort of &amp;#8220;freedom&amp;#8221; may require a tradeoff in terms of enjoyment or functionality of these devices as manufacturers move more functionality into service offerings in the cloud, they can refuse access by these custom firmwares&lt;sup&gt;&lt;a name=&quot;reffn_10&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#fn_10&quot;&gt;10&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;But up to now, users have voted with their dollars and download clicks: they don&amp;#8217;t care.&lt;/p&gt;
&lt;p&gt;Most open source developers apparently don&amp;#8217;t either.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;small&gt;_______________&lt;br /&gt;
&lt;sup&gt;&lt;a name=&quot;fn_1&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#reffn_1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; who have the resources, but not the resolve&lt;br /&gt;
&lt;sup&gt;&lt;a name=&quot;fn_2&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#reffn_2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; Either &lt;a href=&quot;http://ftp.mozilla.org/pub/mozilla/VMs/&quot;&gt;images&lt;/a&gt; or documentation&lt;br /&gt;
&lt;sup&gt;&lt;a name=&quot;fn_3&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#reffn_3&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; The venerable &lt;tt&gt;./configure &amp;#038;&amp;#038; make &amp;#038;&amp;#038; make install&lt;/tt&gt; triad&lt;br /&gt;
&lt;sup&gt;&lt;a name=&quot;fn_4&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#reffn_4&quot;&gt;4&lt;/a&gt;&lt;/sup&gt; The so-called identity proof&lt;br /&gt;
&lt;sup&gt;&lt;a name=&quot;fn_5&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#reffn_5&quot;&gt;5&lt;/a&gt;&lt;/sup&gt; To be fair, I cite Firefox as an example of this problem because it&amp;#8217;s one I&amp;#8217;m familiar with; Mozilla requires probably one of the most complex open source build environments around, and they&amp;#8217;ve done a good job of, especially, &lt;a href=&quot;https://wiki.mozilla.org/ReferencePlatforms&quot;&gt;documenting their build environments&lt;/a&gt; to the extent possible&lt;sup&gt;&lt;a name=&quot;reffn_6&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#fn_6&quot;&gt;6&lt;/a&gt;&lt;/sup&gt; and making it easier to &lt;a href=&quot;http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/&quot;&gt;build on Win32&lt;/a&gt;.&lt;br /&gt;
&lt;sup&gt;&lt;a name=&quot;fn_6&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#reffn_6&quot;&gt;6&lt;/a&gt;&lt;/sup&gt; Something I have no qualms asserting a large chunk of responsibility for having made happen&lt;br /&gt;
&lt;sup&gt;&lt;a name=&quot;fn_7&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#reffn_7&quot;&gt;7&lt;/a&gt;&lt;/sup&gt; Linus Torvalds, for one, &lt;a href=&quot;http://groups.google.com/group/fa.linux.kernel/browse_frm/thread/2f93510ff38d9089/&quot;&gt;has stated&lt;/a&gt; that he doesn&amp;#8217;t consider such restrictions on the use of the &lt;i&gt;hardware&lt;/i&gt; to be a problem&lt;br /&gt;
&lt;sup&gt;&lt;a name=&quot;fn_8&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#reffn_8&quot;&gt;8&lt;/a&gt;&lt;/sup&gt; And make no mistake, there are open source hackers out there, that totally get off on that sort of stuff, so they will find a way to do it&lt;sup&gt;&lt;a name=&quot;reffn_9&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#fn_9&quot;&gt;9&lt;/a&gt;&lt;/sup&gt;&lt;br /&gt;
&lt;sup&gt;&lt;a name=&quot;fn_9&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#reffn_9&quot;&gt;9&lt;/a&gt;&lt;/sup&gt; Even if it nets them a few bricked devices&lt;br /&gt;
&lt;sup&gt;&lt;a name=&quot;fn_10&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://soberbuildengineer.com/blog/feed/#reffn_10&quot;&gt;10&lt;/a&gt;&lt;/sup&gt; As Sony &lt;a href=&quot;http://games.slashdot.org/story/10/03/29/0227251/Install-Other-OS-Feature-Removed-From-the-PS3&quot;&gt;has done&lt;/a&gt; with its &amp;#8220;Other Operating System&amp;#8221; feature, and now routinely does with the Playstation Network and PS3 updates&lt;br /&gt;
&lt;/small&gt;&lt;/small&gt;&lt;/p&gt;</description>
	<pubDate>Thu, 05 Aug 2010 21:25:53 +0000</pubDate>
</item>

</channel>
</rss>
