<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>TK Assembled</title>
	
	<link>http://blog.tkassembled.com</link>
	<description>Hopefully not just another Wordpress Blog.</description>
	<lastBuildDate>Sun, 29 Jan 2012 21:54:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/tkassembled" /><feedburner:info uri="tkassembled" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/tkassembled" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Ftkassembled" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>Fix Bluetooth on a MacBook Pro 8,1/2/3 with B43</title>
		<link>http://feedproxy.google.com/~r/tkassembled/~3/Do8cR2UKM4I/</link>
		<comments>http://blog.tkassembled.com/276/fix-bluetooth-on-a-macbook-pro-8123-with-b43/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 00:16:37 +0000</pubDate>
		<dc:creator>TK Kocheran</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[b43]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[macbook-pro]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.tkassembled.com/?p=276</guid>
		<description><![CDATA[If you&#8217;ve been following the blog, you probably noticed that I recently had a lot of issues with Bluetooth on my MacBook Pro running Ubuntu, and then had them resolved by an awesome commenter. Apparently, if you disable Bluetooth coexistence &#8230; <a href="http://blog.tkassembled.com/276/fix-bluetooth-on-a-macbook-pro-8123-with-b43/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p><img style="float:left;margin:20px 10px 10px 0;" title="Bluetooth Icon" src="http://blog.tkassembled.com/u/2012/01/preferences-system-bluetooth.png" alt="" width="96" height="96" />
<p style="text-align: justify;">
If you&#8217;ve been following the blog, you probably noticed that I recently <a href="http://blog.tkassembled.com/188/macbook-pro-83-bluetooth-issues-on-linux/">had a lot of issues with Bluetooth on my MacBook Pro running Ubuntu</a>, and then <a href="http://blog.tkassembled.com/188/macbook-pro-83-bluetooth-issues-on-linux/#comment-362">had them resolved</a> by an awesome commenter. Apparently, if you <em>disable</em> Bluetooth coexistence protection in the B43 driver, then Bluetooth will be able to coexist with WiFi. I have no idea how this makes sense, so don&#8217;t ask <img src='http://blog.tkassembled.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align:justify;">I demonstrated how to do this with <code>modprobe</code>:</p>
<pre># remove b43
sudo modprobe -r b43
# reinsert b43, with the right settings
sudo modprobe b43 btcoex=0</pre>
<p style="text-align:justify;">Unfortunately, this doesn&#8217;t work permanently, as whenever you reboot, the B43 driver is loaded with the evil Bluetooth coexistence setting enabled (again, this means that Bluetooth will <em>not</em> work). Thus, we need a permanent solution! Pop open your favorite text editor as root and edit <code>/etc/modprobe.d/options</code> and append the following line:</p>
<pre>options b43 btcoex=0</pre>
<p style="text-align:justify;">Voila! Go ahead and reboot to test your settings. No more modprobing every time you boot!</p>


<p><a href="http://feedads.g.doubleclick.net/~a/Nz9Jr0ph8kJlcs_qDxqffHUCwtA/0/da"><img src="http://feedads.g.doubleclick.net/~a/Nz9Jr0ph8kJlcs_qDxqffHUCwtA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Nz9Jr0ph8kJlcs_qDxqffHUCwtA/1/da"><img src="http://feedads.g.doubleclick.net/~a/Nz9Jr0ph8kJlcs_qDxqffHUCwtA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tkassembled/~4/Do8cR2UKM4I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tkassembled.com/276/fix-bluetooth-on-a-macbook-pro-8123-with-b43/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.tkassembled.com/276/fix-bluetooth-on-a-macbook-pro-8123-with-b43/</feedburner:origLink></item>
		<item>
		<title>Ubuntu 11.10 on a MacBook Pro 8,1/2/3</title>
		<link>http://feedproxy.google.com/~r/tkassembled/~3/CSORvC2eghw/</link>
		<comments>http://blog.tkassembled.com/208/ubuntu-11-10-on-a-macbook-pro-8123/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 21:13:14 +0000</pubDate>
		<dc:creator>TK Kocheran</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[amd64]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[macbook-pro]]></category>

		<guid isPermaLink="false">http://blog.tkassembled.com/?p=208</guid>
		<description><![CDATA[Well, I&#8217;ve done it. I bought a brand spankin&#8217; new MacBook Pro 17&#8243; (model 8,3) for the express purpose of installing Linux on it. Yeah, I&#8217;m crazy. This is a log of all my troubles and travails over the last &#8230; <a href="http://blog.tkassembled.com/208/ubuntu-11-10-on-a-macbook-pro-8123/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-218" title="MacBook-Pro-Ubuntu-Header" src="http://blog.tkassembled.com/u/2012/01/MacBook-Pro-Ubuntu-Header.jpg" alt="" width="584" height="333" />Well, I&#8217;ve done it. I bought a brand spankin&#8217; new MacBook Pro 17&#8243; (model 8,3) <em>for the express purpose of installing Linux on it.</em> Yeah, I&#8217;m crazy. This is a log of all my troubles and travails over the last two weeks getting this thing up and running.</p>
<p><span id="more-208"></span></p>
<p style="text-align: justify;">Of course, I had to come up with rational justifications by which to actually allow myself to in any way support Apple:</p>
<ol>
<li><strong>The deplorable state of notebook hardware and build quality.</strong> Quite honestly, it&#8217;s a <em>joke</em> these days trying to find some awesome notebook hardware to run Linux on. There&#8217;s <a href="http://system76.com">System76</a> and the new Lenovo notebooks, but does anything really even come close in comparison to a MacBook Pro? Stylistically and functionally, this thing is brilliant, bar none.</li>
<li><strong>My work required me to have a super high-powered notebook for travel.</strong> At the time of writing, I&#8217;m getting ready for a business trip and after a number of bad experiences (read: terrible performance) trying to run TeamViewer, Skype, and Eclipse at once, my $500 Gateway notebook had reached the outer limits of its capabilities. It was time to go extreme.</li>
<li><strong>I didn&#8217;t buy it directly from Apple.</strong> I bought it through a reseller to try and take away the hit to my conscience. I&#8217;m kind of idealist when it comes to the way software should be done and I couldn&#8217;t disagree more with Apple&#8217;s closed policy.</li>
</ol>
<p style="text-align: justify;">With all of these <s>excuses</s> rationalizations in hand, I picked this thing up on a trip down to San Diego. I checked with a <a href="http://scottlinux.com/">friend</a> about compatibility, as he had already done much of the footwork of <a href="http://scottlinux.com/2011/06/05/install-linux-mint-11-on-macbook-pro-82/">installing Ubuntu on a MacBook Pro.</a> (Ok, he installed <a href="http://linuxmint.com">Mint</a> but at the end of the day, Mint&#8217;s still just a Ubuntu spin.) Armed with a little bit of information and quite a bit of willpower, I set out to accomplish the unthinkable: installing an open source operating system on a machine made for the highest levels of corporate, proprietary evil. It was time to begin.</p>
<h1>Hardware</h1>
<p style="text-align: justify;">For the record, I got a MacBook Pro with the following specs:</p>
<table>
<tbody>
<tr>
<th>Product Revision</th>
<td>8,3</td>
</tr>
<tr>
<th>Screen Size</th>
<td>17&#8243;</td>
</tr>
<tr>
<th>CPU Type</th>
<td>Intel(R) Core(TM) i7-2760QM</td>
</tr>
<tr>
<th>Core Count</th>
<td>4 physical, 4 virtual = 8 total</td>
</tr>
<tr>
<th>CPU Clock</th>
<td>2.4GHz</td>
</tr>
<tr>
<th>Max Turbo Clock</th>
<td>3.5GHz</td>
</tr>
<tr>
<th>Memory</th>
<td>4GB PCI-10600</td>
</tr>
<tr>
<th>Hard Disk</th>
<td>750GB at 5400RPM</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Since I was already going all out, I thought I&#8217;d just go all the way with it and manually upgrade the RAM and hard disk:</p>
<table>
<tbody>
<tr>
<th>Memory</th>
<td>8GB PCI-10600</td>
</tr>
<tr>
<th>Hard Disk</th>
<td>Seagate Momentus XT Hybrid Drive, 750GB at 7200RPM</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">If you haven&#8217;t heard of the new hybrid drives, you should really <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822148837">check them out.</a> Essentially, you have a fast 7200RPM traditional hard disk drive with an integrated solid state drive to make your writes and reads that much faster. They&#8217;re not <a href="http://www.codinghorror.com/blog/2011/05/the-hot-crazy-solid-state-drive-scale.html">pure SSD fast</a>, but it&#8217;s a heck of a lot faster than a 5400RPM drive or a regular 7200RPM hard disk drive. I have definitely noticed a striking performance increase. Again, it&#8217;s not an SSD, but it&#8217;s closer, without compromising on storage space.</p>
<p style="text-align: justify;">I purchased one with a glossy screen because I like the design; it looks beautiful, but is nearly impossible to work on. The glare is so bad, you might as well be programming in front of a mirror at times. The alternative, buying one with a matte screen, was not really an option for me, as the matte displays come with an ugly greyish border around the screen, rather than a sleek black border:</p>
<p><a href="http://blog.tkassembled.com/u/2012/01/mbp17_unbox07.jpg"><img class="aligncenter  wp-image-222" title="mbp17_unbox07" src="http://blog.tkassembled.com/u/2012/01/mbp17_unbox07.jpg" alt="" width="584" height="225" /></a></p>
<p style="text-align: justify;">It looks&#8230; terrible. Whoever thought of putting a grey border around the screen, when black looks SO cool? On the flip side of things, look at the glare from the glossy screen! AM I TAKING CRAZY PILLS?!?</p>
<p style="text-align: justify;">My solution was to buy <a href="http://www.powersupportusa.com/accessories/macbook-pro-17/anti-glare-film.html">one of these,</a> an anti-glare screen cover to allow me to keep my beautiful looking display design AND have a matte display:</p>
<p style="text-align: center;"><a href="http://www.powersupportusa.com/accessories/macbook-pro-17/anti-glare-film.html"><img class="aligncenter  wp-image-230" title="film_macbook_" src="http://blog.tkassembled.com/u/2012/01/film_macbook_.jpg" alt="" width="288" height="360" /></a></p>
<p style="text-align: justify;">Winning! The cover is kind of a pain to put on, but it works great once you get it just right. (If you have any dust anywhere in your home, it will magically stick to your screen while trying to put it on, forming bubbles: not good.) My wife is a total screen protector application master, and we were able to get it on with just about no spots! There&#8217;s a video on how to do it <a href="http://www.youtube.com/watch?v=VAGJnk8X8ZQ">here.</a></p>
<p style="text-align: justify;">Putting the RAM in <a href="http://support.apple.com/kb/ht1270#link6">wasn&#8217;t so hard</a>, though I was a bit paranoid as you can&#8217;t &#8220;undo&#8221; bricking hardware. It went along really nicely and was pretty straightforward.</p>
<p style="text-align: justify;">Installing the hard drive <a href="http://www.extremetech.com/computing/58220-upgrade-your-macbook-pros-hard-drive-2/10">was a little more difficult,</a> but again, not something that was a major deal-breaker. I employed some l337 hacks to copy over the contents of the preexisting drive, then installed it and it worked like a champ.</p>
<h1>Software/Configuration</h1>
<p style="text-align: justify;">Though I thought that hardware would be the main uncharted territory, configuring the operating systems, bootloader, and software was by far the most time consuming. It took me about a week straight to get this thing up to speed. I installed Linux Mint 12 at least once and Ubuntu 11.10 three times, I think, but in the end, I got it working.</p>
<p style="text-align: justify;">The biggest initial barrier to getting this thing running was the bootloader. Since Apple uses something called <a href="http://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface">EFI</a> as a bootloader instead of BIOS, which is what you&#8217;re used to, getting things to install entails getting a better bootloader than the locked-down version that Apple has installed by default, which doesn&#8217;t let you do anything &#8220;dangerous&#8221; like have the ability to install other operating systems <img src='http://blog.tkassembled.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify;">What we need is a bootloader which will let us run OSX as well as boot into Linux and Windows if we want to. <a href="http://refit.sourceforge.net/">rEFIt</a> &#8220;fits&#8221; the bill, as it&#8217;s the main way of being able to do this. Unfortunately, due to changes in Mac&#8217;s new OSX Lion (10.7.x) operating system, rEFIt isn&#8217;t so easy to install anymore. I tried to auto-install it and it didn&#8217;t show up at all. I then tried to run one of their scripts to enable it always, and it still didn&#8217;t show up. Then I noticed that it wasn&#8217;t letting me log into OSX anymore. Great. Also, before I tried any of this, I realized that OSX wouldn&#8217;t let me use their &#8220;Disk Utility&#8221; program to resize my OSX partition. As I&#8217;m not really planning on using OSX, this was kind of a bummer.</p>
<p style="text-align: justify;">After I schlepped to the Apple Store and met with one of their &#8220;geniuses,&#8221; I was informed that by default, OSX Lion comes with another &#8220;Recovery Partition&#8221; which is hidden from Disk Utility, which was causing my disk resize operations to fail. Again, great. This is what you get when dealing with Apple. I had him reinstall Lion, as <em>it doesn&#8217;t come with any install media whatsoever</em>, as well as resize my OSX partition to be 100GB. He resized it to be 1000<sup>4</sup> bytes, which actually turns out to be around 93GB, but whatever. I almost couldn&#8217;t care less about OSX at this point. In any case, major fail in assuming that a kilobyte is 1000 bytes, etc.)</p>
<p style="text-align: justify;">I came home, made backups and tried to make a restore CD, though that didn&#8217;t really work, and tried again. I installed rEFIt <strong>manually</strong> and things worked great. I simply copied over the <code>efi/</code> folder in the tarball to the root of my OSX partition, then ran the <code>/efi/refit/enable.sh</code> script to enable it (as <code>root</code> of course). I rebooted and, lo and behold, rEFIt!</p>
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-234" title="screen2" src="http://blog.tkassembled.com/u/2012/01/screen2.png" alt="" width="512" height="384" /></p>
<p style="text-align: justify;">Awesomeness! Now it was time to install Linux. Following <a href="http://scottlinux.com/2011/06/05/install-linux-mint-11-on-macbook-pro-82/">Scott&#8217;s guide to installing Linux on a MacBook Pro</a>, I installed Linux Mint 12 (amd64) to a 500GB ext4 partition. I also created a 4GB swap partition, and made sure to install the bootloader <em>not</em> to <code>/dev/sda</code> but instead to my Linux partition, <code>/dev/sda4</code>. Oh, it&#8217;s also important to note that in order to do this, I had to both create a CD/DVD of the install disc in addition to a USB startup disk with the same OS. Plug in the USB stick, insert the CD, and then try installing. Some weird bug, but it wasn&#8217;t too hard to overlook.</p>
<p style="text-align: justify;">Linux Mint installed without a hitch, though I was noticing some glitchiness in the UI, but I assumed it&#8217;d go away when running from the hard disk. It booted up great, and then things started quickly going downhill. Every so often, GNOME Shell or the compositor would flat-out restart. There were other glitchy things about it, but I eventually decided to install Ubuntu 11.10 stock to try and get a better experience.</p>
<p style="text-align: justify;">Ubuntu installed great and Unity, at least for a couple of minutes, was a sight for sore eyes. Things worked a lot better. I compiled the BCM4331 wireless driver and tried to do some major tweaks with the fglrx driver, then figured it&#8217;d probably be better to start from scratch. So I installed Ubuntu again.</p>
<p style="text-align: justify;">Having been through the process a couple times before, it got easier with time. Multitouch worked out of the box with Unity, and I could three-finger pinch to maximize/restore windows and three-finger drag to move windows around. Nice!</p>
<p style="text-align: justify;">As noted elsewhere, the main issue with running Linux on 8,X MacBook Pros is wireless driver support. You either have to wrap the Windows driver with <code>ndiswrapper</code> or compile the current open source driver yourself. I opted for the latter, and it <a href="http://homepage.uibk.ac.at/~c705283/archives/2011/09/04/linux_support_for_broadcom_4331_wireless_chip_macbook_pro_81/index.html">wasn&#8217;t so hard to compile and install.</a> It more or less works great, but there are two outstanding issues with it:</p>
<ol>
<li>It stays connected to the access point, but loses internet capabilities intermittently. This really stinks for long downloads and Skype calls.</li>
<li>It hardcore interferes with Bluetooth. High-bandwidth devices like headphones can hardly connect and if you can actually get them to, they won&#8217;t be clear and consistent. You also can&#8217;t scan for new devices while running the wireless driver. (I lost 4 days of my life to this, more later.)</li>
</ol>
<p>Apart from those issues, there are really only a few things that don&#8217;t work as planned:</p>
<ol>
<li>The trackpad dies every so often. You can still do multi-finger gestures, but moving the cursor fails.</li>
<li>You can only change screen brightness in OSX.</li>
<li>You can&#8217;t change trackpad sensitivity.</li>
<li>In order for things like animations to look smooth, you need to <a href="http://askubuntu.com/questions/39050/how-can-i-speed-up-unity-in-ubuntu-11-04-natty/39976#39976">do this</a>.</li>
<li>You <strong>desperately </strong>need to install a package to control your fans, lest your computer blow up.</li>
</ol>
<p style="text-align: justify;">Please, before you go any further, <a href="https://launchpad.net/~mactel-support/+archive/ppa/+sourcepub/2028802/+listing-archive-extra">download this package and install it</a> if you haven&#8217;t already and you&#8217;re reading this from a MacBook Pro on Ubuntu. Otherwise, your computer <em>will</em> overheat and blow up. Not a good move, bro.</p>
<h1 style="text-align: justify;">Compatibility Chart</h1>
<p style="text-align: justify;">I figured it&#8217;d probably be easier to visualize compatibility with the hardware and software with a nice table describing each item of importance.</p>
<table id="compatibility-chart">
<tbody>
<tr>
<th>Wireless</th>
<td style="vertical-align: middle;padding-left: 20px;padding-right: 20px;">3/5</td>
<td style="text-align: justify;">Like I said, you have to compile your own driver, which isn&#8217;t the easiest thing in the world. It&#8217;s not the hardest, either, but yeah. You also run into some pretty weird issues with Bluetooth, as described below, and you&#8217;ll probably drop your wireless connection now and again, but it works and it&#8217;s getting better as the developers work on it.</td>
</tr>
<tr>
<th>Bluetooth</th>
<td style="vertical-align:middle;padding-left: 20px;padding-right: 20px;">5/5</td>
<td style="text-align:justify;">Bluetooth works <em>great.</em> The only problem involving Bluetooth doesn&#8217;t even directly involve Bluetooth: the wireless driver and the interference it causes.</td>
</tr>
<tr>
<th>Display</th>
<td style="vertical-align:middle;padding-left:20px;padding-right:20px;">4/5</td>
<td style="text-align:justify">Display is pretty awesome, but with a few caveats. </p>
<ul>
<li>You can&#8217;t change the screen brightness from Ubuntu. It can only be changed from OSX. <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/881460">Bug report on Launchpad.</a> Interestingly enough, you <em>can</em>, however, read values from the light sensor near the camera from a terminal.</li>
<li>GPU switching doesn&#8217;t work. You&#8217;ll be running the more power-hungry ATI card all the time. <a href="http://wiki.cchtml.com/index.php/Ubuntu_Oneiric_Installation_Guide#Intel.2FATI_Hybrids">See a wiki on FGLRX support on Ubuntu 11.10.</a></li>
<li>ATI&#8217;s Catalyst Control Center is terrible.</li>
</ul>
<p>Apart from that, everything works great. External display via DisplayPort/Thunderbolt tested and working, and you can get all screen resolutions supported by the hardware. <br/>Some papercuts: when you lock the workspace or the screensaver activates or the display goes off due to inactivity, the keyboard backlight stays on. I&#8217;m not sure if this is a feature or a bug. Also, in order to get your desktop compositor framerate up to speed, you need to <a href="http://askubuntu.com/questions/39050/how-can-i-speed-up-unity-in-ubuntu-11-04-natty/39976#39976">do some CompizConfig hacks.</a> Otherwise, things are terribly choppy. <br/>There&#8217;s also a really weird bug apart from this that when dragging windows the normal way, often it&#8217;ll get really choppy as far as animation is concerned, but if you drag it with multitouch, it&#8217;ll be smooth as butter. I have no idea on this one.
</td>
</tr>
<tr>
<th>Keyboard</th>
<td style="vertical-align:middle;padding-left:20px;padding-right:20px;">4.9/5</td>
<td style="text-align:justify;">Everything basically works, but there&#8217;s one papercut: keyboard backlight buttons work, but they can&#8217;t be held down to change keyboard backlight, you have to keep hitting it in order to change things, which can get annoying. As noted above, the keyboard backlight stays on even when the display shuts off due to inactivity.</td>
</tr>
<tr>
<th>Touchpad</th>
<td style="vertical-align:middle;padding-left:20px;padding-right:20px;">3/5</td>
<td style="text-align:justify">This one&#8217;s kind of touchy. So multitouch works great for the limited actions you can do with it. You can three-finger drag windows, three-finger pinch maximize/restore windows, four-finger tap to open the Unity launcher, four-finger drag to show or hide the Unity bar. Major problems: </p>
<ul>
<li>The touchpad dies every so often and you&#8217;re forced to use a mouse. It&#8217;ll still do multitouch gestures, but it fails to do single-finger gestures. Reboot to fix it: lame.</li>
<li>You&#8217;ll often hit the touchpad and move the mouse when typing. This is entirely a software bug: disable the touchpad for a certain amount of time when keys are hit. You can just disable the touchpad altogether and use a mouse, but that&#8217;s a really lame workaround.</li>
</ul>
</td>
</tr>
<tr>
<th>Suspend/Hibernate</th>
<td style="vertical-align:middle;padding-left:20px;padding-right:20px;">5/5</td>
<td style="text-align:justify">Works great.</td>
</tr>
<tr>
<th>Camera/Microphone</th>
<td style="vertical-align:middle;padding-left:20px;padding-right:20px;">4.5/5</td>
<td style="text-align:justify">Both basically work great. I have noticed, however, that when using Cheese effects, the camera color gets way out of wack. Think entire video in bright pink.</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">In the end, it&#8217;s basically awesome running Ubuntu on a MacBook Pro. This thing is wicked fast and a pleasure to code on. I&#8217;ve been able to encode 1080p HD video at around 60 frames per second. I can run Windows in VirtualBox wicked fast. Hopefully, I&#8217;ll be able to find the time to follow up on this post with an installation guide.</p>


<p><a href="http://feedads.g.doubleclick.net/~a/2wmaOVqAmLq6wBK_CxBx_GnSkm0/0/da"><img src="http://feedads.g.doubleclick.net/~a/2wmaOVqAmLq6wBK_CxBx_GnSkm0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/2wmaOVqAmLq6wBK_CxBx_GnSkm0/1/da"><img src="http://feedads.g.doubleclick.net/~a/2wmaOVqAmLq6wBK_CxBx_GnSkm0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tkassembled/~4/CSORvC2eghw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tkassembled.com/208/ubuntu-11-10-on-a-macbook-pro-8123/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.tkassembled.com/208/ubuntu-11-10-on-a-macbook-pro-8123/</feedburner:origLink></item>
		<item>
		<title>MacBook Pro 8,1/8,2/8,3 Bluetooth Issues on Linux</title>
		<link>http://feedproxy.google.com/~r/tkassembled/~3/oRWsMiZJC_E/</link>
		<comments>http://blog.tkassembled.com/188/macbook-pro-83-bluetooth-issues-on-linux/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 04:12:09 +0000</pubDate>
		<dc:creator>TK Kocheran</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[b43]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[macbook-pro]]></category>
		<category><![CDATA[wifi]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://blog.tkassembled.com/?p=188</guid>
		<description><![CDATA[Oh, by the way, I just got a shiny new MacBook Pro to run Linux on! Hooray! It&#8217;s an awesome machine, but I just wanted to post this bug to the general public to save people the 3 days I&#8217;ve &#8230; <a href="http://blog.tkassembled.com/188/macbook-pro-83-bluetooth-issues-on-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;">
<img style="float:left;margin:20px 10px 10px 0;" title="Bluetooth Icon" src="http://blog.tkassembled.com/u/2012/01/preferences-system-bluetooth.png" alt="" width="96" height="96"><br />
Oh, by the way, I just got a shiny new MacBook Pro to run Linux on! Hooray! It&#8217;s an awesome machine, but I just wanted to post this bug to the general public to save people the 3 days I&#8217;ve spent trying to figure it out.</p>
<p style="text-align: justify;">Essentially, what it boils down to is this: the b43 Linux driver that you&#8217;ve compiled and installed interferes hardcore with the adjacent Bluetooth chip on your MacBook.</p>
<p style="text-align: justify;">Let&#8217;s do a little test to demonstrate. While connected to a WiFi network with b43, put a Bluetooth device into pairing mode near your machine. Make sure the <code>bluez</code> package is installed. Next, run the following:</p>
<pre>$ hcitool scan
Scanning...</pre>
<p style="text-align: justify;">You&#8217;ll probably see it say <code>Scanning...</code> and then&#8230; nothing. It won&#8217;t see your device. Period.</p>
<p style="text-align: justify;">Let&#8217;s continue with our experiment. Unload the b43 module with <code>sudo rmmod b43</code>. Your internet will go down if you&#8217;re on WiFi. Now, run <code>hcitool scan</code> again.</p>
<pre>$ hcitool scan
Scanning...
    XX:XX:XX:XX:XX:XX    Nexus One</pre>
<p style="text-align: justify;">Aha! Found you! So, it seems that the problem is with the driver itself. This is kind of a bummer, to say the least, but hopefully they&#8217;ll have it patched soon. Until then, <code>sudo modprobe b43</code> and continue on, weary warrior.</p>
<p><small>For the record and for Google, I&#8217;m running a 2011 MacBook Pro 8,3 with Ubuntu 11.10 Oneiric Ocelot 64bit/amd64.</small></p>
<h2>Update: A Working Workaround!</h2>
<p style="text-align: justify;">As noted by Benoit in the comments below, you can actually get things working with a little workaround. First, unload the <code>b43</code> driver from the kernel:</p>
<pre>$ sudo rmmod b43</pre>
<p style="text-align: justify;">Next, reload the module, turning Bluetooth coexistence support <em>off:</em></p>
<pre>$ sudo modprobe b43 btcoex=0</pre>
<p style="text-align: justify;">As counterintuitive as it seems, it works! Hooray! I&#8217;m now able to listen to music with my Bluetooth headphones <em>and</em> use the built in B4331 wireless card in my MacBook at the same time!!! The only issue I&#8217;ve encountered is that when you&#8217;re spiking and getting really high upload/download rates, you&#8217;ll notice that Bluetooth audio skips a bit. Luckily, this is a pretty minimal problem and doesn&#8217;t prevent you from using your Bluetooth or your B4331 WiFi card in your MacBook Pro.</p>


<p><a href="http://feedads.g.doubleclick.net/~a/ujv7RVXjU6jYHrOzo3XpVOmedf0/0/da"><img src="http://feedads.g.doubleclick.net/~a/ujv7RVXjU6jYHrOzo3XpVOmedf0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ujv7RVXjU6jYHrOzo3XpVOmedf0/1/da"><img src="http://feedads.g.doubleclick.net/~a/ujv7RVXjU6jYHrOzo3XpVOmedf0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tkassembled/~4/oRWsMiZJC_E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tkassembled.com/188/macbook-pro-83-bluetooth-issues-on-linux/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://blog.tkassembled.com/188/macbook-pro-83-bluetooth-issues-on-linux/</feedburner:origLink></item>
		<item>
		<title>wms-plugin-auth-mysql: A Wowza Module for MySQL Authentication</title>
		<link>http://feedproxy.google.com/~r/tkassembled/~3/8A1ZwNl64qw/</link>
		<comments>http://blog.tkassembled.com/186/wms-plugin-auth-mysql-a-wowza-module-for-mysql-authentication/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 03:11:00 +0000</pubDate>
		<dc:creator>TK Kocheran</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Wowza Media Server]]></category>

		<guid isPermaLink="false">http://blog.tkassembled.com/?p=186</guid>
		<description><![CDATA[I just finished publishing a new Wowza module: wms-plugin-auth-mysql &#8211; MySQL authentication for Wowza. This module is really tweakable and customizable. It basically allows you to authenticate all or a subset of clients connecting to your Wowza Media Server instance. &#8230; <a href="http://blog.tkassembled.com/186/wms-plugin-auth-mysql-a-wowza-module-for-mysql-authentication/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p><img class="alignleft  wp-image-165" title="Wowza Media Server Logo" src="http://blog.tkassembled.com/u/2011/10/Wowza1-241x300.gif" alt="" width="145" height="180" />I just finished publishing a new Wowza module: <a href="http://tkassembled.com/wms-plugin-auth-mysql/">wms-plugin-auth-mysql</a> &#8211; MySQL authentication for Wowza. This module is really tweakable and customizable. It basically allows you to authenticate all or a subset of clients connecting to your Wowza Media Server instance. <a href="http://tkassembled.com/wms-plugin-auth-mysql/">The documentation goes into great detail</a> about how to customize it and get things rolling.</p>


<p><a href="http://feedads.g.doubleclick.net/~a/foCAJcffFcULN_7prNY79GkpJjY/0/da"><img src="http://feedads.g.doubleclick.net/~a/foCAJcffFcULN_7prNY79GkpJjY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/foCAJcffFcULN_7prNY79GkpJjY/1/da"><img src="http://feedads.g.doubleclick.net/~a/foCAJcffFcULN_7prNY79GkpJjY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tkassembled/~4/8A1ZwNl64qw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tkassembled.com/186/wms-plugin-auth-mysql-a-wowza-module-for-mysql-authentication/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.tkassembled.com/186/wms-plugin-auth-mysql-a-wowza-module-for-mysql-authentication/</feedburner:origLink></item>
		<item>
		<title>Maven + FlexMojos 3.8 Sample Project</title>
		<link>http://feedproxy.google.com/~r/tkassembled/~3/q2pw8UGCA-c/</link>
		<comments>http://blog.tkassembled.com/182/maven-flexmojos-3-8-sample-project/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 03:22:32 +0000</pubDate>
		<dc:creator>TK Kocheran</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[flexmojos]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://blog.tkassembled.com/?p=182</guid>
		<description><![CDATA[It&#8217;s a little difficult to get a Maven/FlexMojos project up and going, so here&#8217;s a nice sample project to get you on your way:]]></description>
			<content:encoded><![CDATA[
<p>It&#8217;s a little difficult to get a Maven/FlexMojos project up and going, so here&#8217;s a nice sample project to get you on your way:</p>
<p><script src="https://gist.github.com/1407846.js"> </script></p>


<p><a href="http://feedads.g.doubleclick.net/~a/B_3cqs66yp82TkeEDCzxlvOqFtg/0/da"><img src="http://feedads.g.doubleclick.net/~a/B_3cqs66yp82TkeEDCzxlvOqFtg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/B_3cqs66yp82TkeEDCzxlvOqFtg/1/da"><img src="http://feedads.g.doubleclick.net/~a/B_3cqs66yp82TkeEDCzxlvOqFtg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tkassembled/~4/q2pw8UGCA-c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tkassembled.com/182/maven-flexmojos-3-8-sample-project/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.tkassembled.com/182/maven-flexmojos-3-8-sample-project/</feedburner:origLink></item>
		<item>
		<title>Django Country/State/Province/Territory info with django-locality</title>
		<link>http://feedproxy.google.com/~r/tkassembled/~3/411l67XIG0o/</link>
		<comments>http://blog.tkassembled.com/178/django-countrystateprovinceterritory-info-with-django-locality/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 02:33:32 +0000</pubDate>
		<dc:creator>TK Kocheran</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[l10n]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.tkassembled.com/?p=178</guid>
		<description><![CDATA[I&#8217;ve just written a new Django app called django-locality. It&#8217;s a pretty simple Django application which includes a few key features: Country objects stored in the database. Territory objects stored in the database. Each country has 0 or more territories. &#8230; <a href="http://blog.tkassembled.com/178/django-countrystateprovinceterritory-info-with-django-locality/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>I&#8217;ve just written a new Django app called <a href="http://github.com/rfkrocktk/django-locality">django-locality</a>. It&#8217;s a pretty simple Django application which includes a few key features:</p>
<ol>
<li>Country objects stored in the database.</li>
<li>Territory objects stored in the database.</li>
<li>Each country has 0 or more territories.</li>
<li>View functions to get territories by country, all territories, all countries, or a country.</li>
<li>Territories have abbreviations and names.</li>
<li>Countries have ISO 3166-1 Alpha 2 Names (2 digit unique abbreviations), ISO 3166-1 Alpha 3 names (3 digit unique abbreviations), and each uses its country code number as its id.</li>
</ol>
<p>This opens up a lot of possibilities. Simply add <code>'locality'</code> to your <code>INSTALLED_APPS</code> in your <code>settings.py</code> file, run <code>syncdb</code> to install the models and the initial data, and off you go. You can tie your own custom classes to countries and territories like any other Django object.</p>
<p>It&#8217;s really simple, but it&#8217;s really refreshing to finally be able to do things in a way that makes sense. The module is available on PyPI, so you can integrate it into your build process with `setuptools`.</p>


<p><a href="http://feedads.g.doubleclick.net/~a/cB68yTJET9tWd1vsXDhJzlDz63Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/cB68yTJET9tWd1vsXDhJzlDz63Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cB68yTJET9tWd1vsXDhJzlDz63Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/cB68yTJET9tWd1vsXDhJzlDz63Y/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tkassembled/~4/411l67XIG0o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tkassembled.com/178/django-countrystateprovinceterritory-info-with-django-locality/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.tkassembled.com/178/django-countrystateprovinceterritory-info-with-django-locality/</feedburner:origLink></item>
		<item>
		<title>Run Wowza Media Server as a Non-root User on Linux</title>
		<link>http://feedproxy.google.com/~r/tkassembled/~3/tNb0beYn8h4/</link>
		<comments>http://blog.tkassembled.com/164/run-wowza-media-server-as-a-non-root-user-on-linux/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 22:45:17 +0000</pubDate>
		<dc:creator>TK Kocheran</dc:creator>
				<category><![CDATA[Wowza Media Server]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[permissions]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[wowza]]></category>
		<category><![CDATA[wowza-media-server]]></category>

		<guid isPermaLink="false">http://blog.tkassembled.com/?p=164</guid>
		<description><![CDATA[I recently had an interesting scenario where I needed to run Wowza as a non-root user in order to keep file permissions the same across a number of servers, as I was recording video on one server and serving it &#8230; <a href="http://blog.tkassembled.com/164/run-wowza-media-server-as-a-non-root-user-on-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p><img src="http://blog.tkassembled.com/u/2011/10/Wowza1-241x300.gif" alt="" title="Wowza Media Server Logo" width="241" height="300" class="alignleft size-medium wp-image-165" style="float:left"/>
<p style="text-align:justify;">I recently had an interesting scenario where I needed to run Wowza as a non-root user in order to keep file permissions the same across a number of servers, as I was recording video on one server and serving it over VOD on another.</p>
<p style="text-align:justify;">Unix Permissions have always seriously confused me and vexed me to no end, but I found that the actual Wowza Media Server User&#8217;s Guide gives instructions on how to run the server as non-root. For a given user <code>user</code> with a primary group of <code>user</code>:</p>
<pre>
chown user:user /usr/local/WowzaMediaServer
chown -R user:user /usr/local/WowzaMediaServer-2.2.4
chmod -R 775 /usr/local/WowzaMediaServer-2.2.4
rm -f /var/run/WowzaMediaServer.lock /var/run/WowzaMediaServer.pid
</pre>
<p style="text-align:justify;">If you&#8217;re a l33t h4ck3r like me, you can combine the last line like:</p>
<pre>rm -f /var/run/WowzaMediaServer.{lock,pid}</pre>
<p style="text-align:justify;">&#8230;but only if you&#8217;re using Bash.</p>
<p style="text-align:justify;">After you do this, modify both <code>/usr/local/WowzaMediaServer/bin/startup.sh</code> and <code>/usr/local/WowzaMediaServer/bin/wms.sh</code> to prepend <code>sudo -u user</code> to the 24th (or last) line. Basically, for the line that starts with <code>$_EXECJAVA ...</code>, it should now start with <code>sudo -u user $_EXECJAVA ...</code>.</p>
<p style="text-align:justify;">I&#8217;ve also put the Wowza docs on my Google Docs account so as to make them a lot easier to access. Find them below:</p>
<ul>
<li><a href="https://docs.google.com/viewer?a=v&#038;pid=explorer&#038;chrome=true&#038;srcid=0B1xLUSf-oqcJYzBmOGQ0YzQtZjNlZS00ZjI0LThiMTctNGYyZWFhYjU1Y2Fm&#038;hl=en">Wowza Media Server User&#8217;s Guide</a></li>
<li><a href="https://docs.google.com/viewer?a=v&#038;pid=explorer&#038;chrome=true&#038;srcid=0B1xLUSf-oqcJMjA2MDdhYmMtNDM1ZS00MzU2LTk0YWEtZDQ1OTVhNDI3YjY3&#038;hl=en_US">Wowza Media Server Configuration Reference</a></li>
<li><a href="https://docs.google.com/viewer?a=v&#038;pid=explorer&#038;chrome=true&#038;srcid=0B1xLUSf-oqcJMDJiYzMyMDktMWFmOC00MmU0LWE0YTgtNjcxOWFjYmQ2NWFj&#038;hl=en_US">Wowza Media Server FMS-to-Wowza API Mapping</a></li>
<li><a href="https://docs.google.com/viewer?a=v&#038;pid=explorer&#038;chrome=true&#038;srcid=0B1xLUSf-oqcJOWE2YTE1ZGMtZjE5ZS00OGM1LTkyMWMtNDIzNDE0NjI3ZDdi&#038;hl=en_US">Wowza Media Server Server-Side API Reference</a></li>
</ul>


<p><a href="http://feedads.g.doubleclick.net/~a/v5KwmDFQpEn-undop6xkYoLMOtk/0/da"><img src="http://feedads.g.doubleclick.net/~a/v5KwmDFQpEn-undop6xkYoLMOtk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/v5KwmDFQpEn-undop6xkYoLMOtk/1/da"><img src="http://feedads.g.doubleclick.net/~a/v5KwmDFQpEn-undop6xkYoLMOtk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tkassembled/~4/tNb0beYn8h4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tkassembled.com/164/run-wowza-media-server-as-a-non-root-user-on-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.tkassembled.com/164/run-wowza-media-server-as-a-non-root-user-on-linux/</feedburner:origLink></item>
		<item>
		<title>Terminal Linux: Clipboard Magic</title>
		<link>http://feedproxy.google.com/~r/tkassembled/~3/qFrPD7OmWcE/</link>
		<comments>http://blog.tkassembled.com/159/terminal-linux-clipboard-magic/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 01:34:08 +0000</pubDate>
		<dc:creator>TK Kocheran</dc:creator>
				<category><![CDATA[Cross Posts]]></category>
		<category><![CDATA[Terminal Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[x]]></category>

		<guid isPermaLink="false">http://blog.tkassembled.com/?p=159</guid>
		<description><![CDATA[Just posted an awesome new little tutorial on TerminalLinux.org on getting your awesome on with the X clipboard on your Linux machine. Automate and mass-transform your clipboard contents from your handy-dandy terminal! # insert a tab at the beginning of each &#8230; <a href="http://blog.tkassembled.com/159/terminal-linux-clipboard-magic/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<div>
<p style="text-align: justify;"><a href="http://terminallinux.org/p/90/" target="_blank"><img class="alignleft size-full wp-image-101" title="Terminal Linux Logo" src="http://myorthodoxlife.com/u/2011/07/terminal-linux-logo.png" alt="" width="135" height="135" /></a>Just posted an awesome <a href="http://terminallinux.org/p/90/" target="_blank">new little tutorial</a> on <a href="http://terminallinux.org" target="_blank">TerminalLinux.org</a> on getting your awesome on with the X clipboard on your Linux machine. Automate and mass-transform your clipboard contents from your handy-dandy terminal!</p>
</div>
<pre style="display: block; float: left; width: 100%;"><code># insert a tab at the beginning of each line of the contents of the clipboard
xclip -o | sed 's:^:\t:g' | xclip -selection clipboard</code></pre>


<p><a href="http://feedads.g.doubleclick.net/~a/ty2fOtjMfJaj8V5bfZ37Kr3mpao/0/da"><img src="http://feedads.g.doubleclick.net/~a/ty2fOtjMfJaj8V5bfZ37Kr3mpao/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ty2fOtjMfJaj8V5bfZ37Kr3mpao/1/da"><img src="http://feedads.g.doubleclick.net/~a/ty2fOtjMfJaj8V5bfZ37Kr3mpao/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tkassembled/~4/qFrPD7OmWcE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tkassembled.com/159/terminal-linux-clipboard-magic/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.tkassembled.com/159/terminal-linux-clipboard-magic/</feedburner:origLink></item>
		<item>
		<title>The State of Freedom on the Web</title>
		<link>http://feedproxy.google.com/~r/tkassembled/~3/JY8lhg3fktk/</link>
		<comments>http://blog.tkassembled.com/143/the-state-of-freedom-on-the-web/#comments</comments>
		<pubDate>Tue, 24 May 2011 04:29:13 +0000</pubDate>
		<dc:creator>TK Kocheran</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.tkassembled.com/?p=143</guid>
		<description><![CDATA[Before you write this off as a political/religious/philosophical rant&#8230; well, you should probably read it. As both a consumer who purchases hardware and as a producer who creates software and media, I deal with the concept of intellectual property and &#8230; <a href="http://blog.tkassembled.com/143/the-state-of-freedom-on-the-web/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;">Before you write this off as a political/religious/philosophical rant&#8230; well, you should probably read it. As both a consumer who purchases hardware and as a producer who creates software and media, I deal with the concept of intellectual property and &#8220;free as in freedom&#8221; when it comes to ownership and licensing. While I&#8217;m not completely &#8220;<acronym title="adj: religiously observant">frum</acronym>&#8221; when it comes to using only free software, the issue of <acronym title="Software as a Service">SaaS</acronym> is a major issue today for intellectual freedom. This will be a multi-part article, covering the various facets of the issue. This first article will serve as the introduction to what freedom means in terms of the web and your content, meaning your media, when you share it on the web.</p>
<p><span id="more-143"></span></p>
<h1>Introduction</h1>
<p style="text-align: justify;">At the very core of this topic is the question: &#8220;what is intellectual property?&#8221; What is patentable? Can you exclusively own an idea? Can you get a patent on a natural process? For example, if you invent a mathematical formula, can you &#8220;own&#8221; that idea and prevent others from using it? Can you write a symphony in 3/4 time and patent the concept of 3/4 time and own the exclusive rights to it? It sounds somewhat ridiculous, but at its core, the US Patent System has come to this point. Last time I checked, there was a big court case going down in the Supreme Court where eHarmony is attempting to patent a mathematical formula through which they &#8220;match&#8221; people. At first glimpse, this doesn&#8217;t seem to be too big of a deal, however, if you boil it down to its essential elements, it&#8217;s huge and unprecedented.</p>
<h3 style="text-align: justify;">Mathematics as Intellectual Property</h3>
<p style="text-align: justify;">Imagine if you were Issac Newton, way back when, and you were able to effectively patent your latest and greatest discovery: gravity. Or, if you were Albert Einstein and you filed a patent on the theory of relativity. Henceforth, you would have a precedent by which to sue any individual or corporation which incorporated or benefited from your &#8220;idea.&#8221; Scared yet? Again, from far off, it doesn&#8217;t seem like too bad of a thing, but at its core, your rights are being violated. It&#8217;s one thing to say that you can patent a process by which you can quickly harvest and shear corn, but it&#8217;s something entirely different to say that you can patent math, something that isn&#8217;t invented so much as discovered. Math is natural law, and therefore cannot be patented.</p>
<h3 style="text-align: justify;">Media as Intellectual Property</h3>
<p style="text-align: justify;">Let&#8217;s throw in another use case. Do you own any DVDs? Rather, do you actually <em>own</em> any of the DVDs you&#8217;ve purchased? Most DVDs are encrypted with something called CSS and are locked to only run within a specific region. Take your US-bought DVD to Europe and it might not play in a DVD player over there. Again, who owns your DVDs? Is it you or is it the company that is leasing their intellectual property to you? Why are they encrypting and locking down what is ostensibly <em>your</em> property? The claim is made that it&#8217;s to &#8220;protect intellectual property&#8221; via DRM, which, of course, stands for digital rights management: the means by which companies manage, restrict, and control your rights to digital media. In short, the answer is that no, you don&#8217;t really own DVDs. You are free to do with them what you&#8217;d like, so long as the owner is okay with it.</p>
<p style="text-align: justify;">Companies use DRM to &#8220;protect their intellectual property.&#8221; However, this doesn&#8217;t make too much sense. All DRM technologies have been broken into, it&#8217;s only a matter of time. Moreover, you, the average user, aren&#8217;t going to rip your DVD library and sell copies or distribute it for free. You just want to own your content and to be free to do what you&#8217;d like with it.</p>
<h3 style="text-align: justify;">Facebook as Intellectual Property</h3>
<p style="text-align: justify;">Think that you own and have rights over what you upload to Facebook? I hate to be a downer, but when it really comes down to it, you might not. Hey, I&#8217;m guilty of it too, but at the very least, I&#8217;m aware. On one hand, I use Facebook to keep in touch and to publish photos and status updates, but at its core, it&#8217;s a big problem in that Facebook may own everything I publish. With this, we have introduced the problem of intellectual property rights concerning Software as a Service.</p>
<p style="text-align: right;"><strong><a title="The State of Freedom on the Web" href="http://blog.tkassembled.com/143/2/">Next Page »</a></strong></p>


<p><a href="http://feedads.g.doubleclick.net/~a/-kaAaA0CF0yCCbtpCfmzeARn9_I/0/da"><img src="http://feedads.g.doubleclick.net/~a/-kaAaA0CF0yCCbtpCfmzeARn9_I/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-kaAaA0CF0yCCbtpCfmzeARn9_I/1/da"><img src="http://feedads.g.doubleclick.net/~a/-kaAaA0CF0yCCbtpCfmzeARn9_I/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tkassembled/~4/JY8lhg3fktk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tkassembled.com/143/the-state-of-freedom-on-the-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.tkassembled.com/143/the-state-of-freedom-on-the-web/</feedburner:origLink></item>
		<item>
		<title>[Tutorial] Getting a SSH client and server working on CyanogenMod</title>
		<link>http://feedproxy.google.com/~r/tkassembled/~3/WExS6bEO6aE/</link>
		<comments>http://blog.tkassembled.com/129/tutorial-getting-a-ssh-client-and-server-working-on-cyanogenmod/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 23:07:26 +0000</pubDate>
		<dc:creator>TK Kocheran</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[cyanogenmod]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blog.tkassembled.com/?p=129</guid>
		<description><![CDATA[I&#8217;ve had to do this a few times already on my Nexus One, so I thought I&#8217;d tutorialize it for the greater good. Basically, if you haven&#8217;t heard already, CyanogenMod is like the greatest thing to ever happen to Android. &#8230; <a href="http://blog.tkassembled.com/129/tutorial-getting-a-ssh-client-and-server-working-on-cyanogenmod/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p><a href="http://blog.tkassembled.com/u/2011/03/CyanLogo.png"><img class="size-medium wp-image-132 alignleft" title="CyanLogo" src="http://blog.tkassembled.com/u/2011/03/CyanLogo-300x300.png" alt="" width="210" height="210" /></a>I&#8217;ve had to do this a few times already on my Nexus One, so I thought I&#8217;d tutorialize it for the greater good. Basically, if you haven&#8217;t heard already, <a href="http://cyanogenmod.com">CyanogenMod</a> is like the greatest thing to ever happen to Android. It provides a ton of goodies and really nice things that make your phone more powerful by an order of magnitude. It includes BusyBox, which is basically a really lightweight version of all of the core Linux/Unix utilities like &#8220;cp,&#8221; &#8220;mv,&#8221; &#8220;gcc,&#8221; and more. Importantly, CyanogenMod includes the DropBear SSH client and server.</p>
<p><span id="more-129"></span></p>
<p>Simply put, this means you can connect to and from your phone over SSH. Imagine being able to wirelessly push files from your phone over your home network. Imagine being able to tunnel VNC over SSH from your home computer to your phone so you can securely control your home computer even though you&#8217;re a hundred miles away. Yeah, pretty cool, right? Let&#8217;s get to it.</p>
<p>First things first. You <strong>must</strong> be running CyanogenMod 7 or later to do this. If you&#8217;re not, this isn&#8217;t the post for you. Move along. Second, this is going to take a little terminal trickery, so if you&#8217;re averse to working in a shell, go take some Pepto Bismol and come back. Also, if you&#8217;re new to SSH, you can do this, but you should probably read <a href="http://www.amazon.com/SSH-Secure-Shell-Definitive-Guide/dp/0596008953/ref=sr_1_1?ie=UTF8&amp;qid=1299793248&amp;sr=8-1">this book</a> so you can understand how SSH works and how to set it up on your machine. Setting up a SSH server and client on your computer is way outside the scope here.</p>
<p>Let&#8217;s start by talking briefly about SSH security, specifically about using SSH keys rather than passwords. Keys are far more secure than passwords, and so we&#8217;re going to set up a key-based login system here. If you want to use passwords instead of keys, ignore the steps of this tutorial that read like &#8220;copy your key to &#8230;&#8221; and so and and so forth. DropBear can handle both passwords and keyfiles (so long as they&#8217;re generated by the DropBear key client), so you should be good either way. An important security problem to note up front is that <strong>DropBear currently does NOT support key passphrases!</strong> This may not seem like too big of a deal, but here&#8217;s what you need to know: <strong>if someone obtains access to your phone and your phone uses keys to authenticate with your machine(s), the person with your phone will have instant access to all devices which approve of your phone&#8217;s key. </strong>Let&#8217;s set up a scenario in which this would really, really suck:</p>
<p style="padding-left: 30px;">Bob&#8217;s got a kickin-rad Android phone which is running CM7. He follows this tutorial like a true hacker and makes it so that he can connect to 3 public-facing computers over SSH using keys for authentication. Since DropBear keys don&#8217;t support passwords, Bob can literally connect to any of these computers without typing in any passwords. Bob likes this.</p>
<p style="padding-left: 30px;">Bob goes to sleep that night, unaware that Jack Bauer is about to break into his house and steal his phone. Jack Bauer does so. Jack Bauer takes Bob&#8217;s phone. Jack Bauer now has complete access to those 3 computers. Jack Bauer connects to each computer and runs the following command: &#8220;rm -fr /home/$USER/&#8221;. This deletes the music, pictures, videos, and documents from all of the computers. Jack Bauer has pwned Bob&#8217;s computers.</p>
<p style="padding-left: 30px;">Bob wakes up, but it&#8217;s too late.</p>
<p>Don&#8217;t let what happened to Bob happen to you. If you&#8217;re going to use DropBear keys, know what you&#8217;re getting yourself into. Guard your phone like Jack Bauer is going to break into your house at any given moment.</p>
<p>That being said, here we go. Make sure your phone is able to debug over USB, plug it in, and make sure it&#8217;s connected by running `adb devices`. If you can see your device&#8217;s id listed out, you&#8217;re ready to go. If you don&#8217;t know what &#8220;adb&#8221; is or how to install it, <a href="http://tinyurl.com/ycysgxg">let me Google that for you</a>. Next, run `adb remount`, then connect to your device using `adb shell`. You&#8217;ll now be dropped into a shell on the actual Android device. (*Note: if you want to do all of this stuff from your actual device, be my guest. It&#8217;s just much easier to type on a big physical keyboard in my opinion.) Next, type the following commands in order:</p>
<pre lang="bash">cd /
mkdir /data/dropbear/.ssh
ln -s /data/dropbear/.ssh /data/.ssh
</pre>
<p>Now, we&#8217;ve created an important directory and have also made a symbolic link to it at &#8220;/data/.ssh&#8221; which is easier and shorter to type than &#8220;/data/dropbear/.ssh&#8221;. Now, let&#8217;s create the server keys for the DropBear server:</p>
<pre lang="bash">dropbearkey -t rsa -f /data/dropbear/dropbear_rsa_host_key
dropbearkey -t dss -f /data/dropbear/dropbear_dss_host_key
</pre>
<p>Cool. So, we created the server keys. Something <strong>very, very important</strong> to note is that for some reason, DropBear is very picky about file permissions. If the permissions aren&#8217;t set right, it will not work. I repeat, it will not work. Let&#8217;s take care of that now:</p>
<pre lang="bash">chmod 755 /data/dropbear /data/dropbear/.ssh /data/.ssh
chmod 644 /data/dropbear/dropbear_*_host_key
</pre>
<p>Ok. Now, we should be able to run our server properly. Now, let&#8217;s generate a client key:</p>
<pre lang="bash">dropbearkey -t rsa -f /data/.ssh/id_rsa
dropbearkey -y -f /data/.ssh/id_rsa | grep "^ssh-rsa" > /data/.ssh/id_rsa.pub
cat /data/.ssh/id_rsa.pub > /data/.ssh/authorized_keys
chmod 600 /data/.ssh/authorized_keys</pre>
<p>Now, we have a way to identify ourselves to other machines when connecting. Now, let&#8217;s add some SSH keys to our device&#8217;s authorized keys so they can connect using SSH keys. This is assuming that your SSH key lives at ~/.ssh/id_rsa.pub. First, exit the shell by typing `exit`. Then run `adb push ~/.ssh/id_rsa.pub /sdcard/`. Now, connect to the device again via `adb shell`. Now run the following:</p>
<pre lang="bash">cat /sdcard/id_rsa.pub >> /data/.ssh/authorized_keys
chmod 600 /data/.ssh/authorized_keys
rm -f /sdcard/id_rsa.pub</pre>
<p>This added the public key of your machine to the authorized keys of the DropBear server. You&#8217;ll now be able to connect to your Android device, after you&#8217;ve started the server of course. You can rinse and repeat the above commands to copy more keys to your authorized key file, just remember to set the permissions right or you&#8217;ll end up wasting a lot of time like I did.</p>
<p>Now, let&#8217;s make it so your machines can connect to your phone properly. Again, get out of the phone&#8217;s shell via `exit`, then run `adb pull /data/.ssh/id_rsa.pub .` then `cat /data/.ssh/id_rsa.pub &gt;&gt; ~/.ssh/authorized_keys`. You&#8217;re all set.</p>
<p>The final step in all of this is to get your DropBear server working. First, `adb shell` into your phone and run the following:</p>
<pre lang="bash">dropbear -s -g -v</pre>
<p>This will start the server in verbose mode (-v), only accepting keyed logins. Otherwise, anyone can connect to your phone as <strong>root</strong> with <strong>no password.</strong> Now, try connecting to your phone from another machine via `ssh ip-of-phone`. If you can connect, you&#8217;re good to go. Return to the open shell to your phone, run `killall dropbear` to stop the server. We&#8217;re going to get it to automatically start on boot, saving you time. Run the following on the phone:</p>
<pre lang="bash">echo -e '#!/system/bin/sh\n\ndropbear -s -g' > /data/local/userinit.sh
chmod +rx /data/local/userinit.sh</pre>
<p>Restart your phone, try connecting, and if it works, we&#8217;re all done!</p>
<p>Oh, one more thing. If you want to connect from your phone to a computer using the key we generated earlier, run the following:</p>
<pre lang="bash">ssh -i /data/.ssh/id_rsa ip-of-machine</pre>
<p>Hit up the comments if you run into any problems.</p>


<p><a href="http://feedads.g.doubleclick.net/~a/sUeCTTThpoBj7ys-BQZSJRQo7Es/0/da"><img src="http://feedads.g.doubleclick.net/~a/sUeCTTThpoBj7ys-BQZSJRQo7Es/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/sUeCTTThpoBj7ys-BQZSJRQo7Es/1/da"><img src="http://feedads.g.doubleclick.net/~a/sUeCTTThpoBj7ys-BQZSJRQo7Es/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tkassembled/~4/WExS6bEO6aE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tkassembled.com/129/tutorial-getting-a-ssh-client-and-server-working-on-cyanogenmod/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<feedburner:origLink>http://blog.tkassembled.com/129/tutorial-getting-a-ssh-client-and-server-working-on-cyanogenmod/</feedburner:origLink></item>
	</channel>
</rss>

