<?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>Colin Robinson</title>
	<atom:link href="http://colinrrobinson.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://colinrrobinson.com</link>
	<description>Just another guy on the internet</description>
	<lastBuildDate>Tue, 29 Jan 2013 21:42:42 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Visual impairments are a part of the physical world. Thank god we live in a virtual one.</title>
		<link>http://colinrrobinson.com/technology/visually-impaired-virtually-impaired/</link>
		<comments>http://colinrrobinson.com/technology/visually-impaired-virtually-impaired/#comments</comments>
		<pubDate>Tue, 29 Jan 2013 05:28:23 +0000</pubDate>
		<dc:creator>colin</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://colinrrobinson.com/?p=383</guid>
		<description><![CDATA[We have alt tags for screen readers, well let&#8217;s be honest, people only do it for SEO and no screen reader is perfect . But what if your &#8220;alt tag&#8221; had perfect IPA phonetic transcription&#8230; Tell me more Here is the current w3 draft: http://www.w3.org/TR/speech-synthesis/  Demo: go to this page http://www2.research.att.com/~ttsweb/tts/demo.php and copy/paste this element: &#60;phoneme [...]]]></description>
				<content:encoded><![CDATA[<p>We have alt tags for screen readers, well let&#8217;s be honest, people only do it for SEO and no screen reader is perfect . But what if your &#8220;alt tag&#8221; had perfect IPA phonetic transcription&#8230;</p>
<h2>Tell me more</h2>
<p>Here is the current w3 draft:</p>
<p><a href="http://www.w3.org/TR/speech-synthesis/">http://www.w3.org/TR/speech-synthesis/</a></p>
<p><strong> Demo:</strong></p>
<p>go to this page</p>
<p><a href="http://www2.research.att.com/~ttsweb/tts/demo.php">http://www2.research.att.com/~ttsweb/tts/demo.php</a></p>
<p>and copy/paste this element:</p>
<p>&lt;phoneme alphabet=&#8221;ipa&#8221; ph=&#8221;kæt&#8221;&gt;dog&lt;/phoneme&gt;</p>
<p>The body of the phoneme element can be left empty, but in this case I wrote &#8220;dog&#8221; just for fun.</p>
<h2>Can&#8217;t we just make computers better at speaking English?</h2>
<p>Sure, and it would be trivial to make a build jQuery plugin that converts  ALT attributes to IPA ones. But what about regional dialects and made up words like Flickr or Imgur. What about ambiguous acronyms? Should the company AAA be pronounced &#8220;ay ay ay&#8221; or &#8220;Triple A&#8221;? Is it &#8220;My S-Q-L&#8221; or &#8220;My sequel&#8221;?</p>
<h2>Sounds good, when&#8217;s it coming out?</h2>
<p>Fair enough, maybe you sacrifice a goat we could get it in IE11. Honestly, I don&#8217;t know. Maybe never. The spec hasn&#8217;t been touched since 2004 but I hope people start taking it seriously.</p>
]]></content:encoded>
			<wfw:commentRss>http://colinrrobinson.com/technology/visually-impaired-virtually-impaired/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Github and code review</title>
		<link>http://colinrrobinson.com/technology/programming/github-code-review/</link>
		<comments>http://colinrrobinson.com/technology/programming/github-code-review/#comments</comments>
		<pubDate>Wed, 03 Oct 2012 04:08:55 +0000</pubDate>
		<dc:creator>colin</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://colinrrobinson.com/?p=368</guid>
		<description><![CDATA[I first wrote a post in March 2012 about code review with SVN. Since then, we&#8217;ve switched to Github and it&#8217;s awesome. Github isn&#8217;t free, buts its very inexpensive and amazing. Inline comments, automatic issue tracking, and you can backup your code to their servers without needing commit access to the main repo. The work [...]]]></description>
				<content:encoded><![CDATA[<p><a title="Code Review" href="http://colinrrobinson.com/technology/code-review/">I first wrote a post in March 2012 about code review with SVN.</a> Since then, we&#8217;ve switched to Github and it&#8217;s awesome.</p>
<p><a title="github pricing" href="https://github.com/plans">Github isn&#8217;t free</a>, buts its very inexpensive and amazing. Inline comments, automatic issue tracking, and you can backup your code to their servers without needing commit access to the main repo.<span id="more-368"></span></p>
<h2>The work flow</h2>
<p>1) You create a repo.</p>
<p>2) Person A forks the repo and clones it to their local machine.</p>
<p>3) They work all day long and at the end of the day push their changes to their fork.</p>
<p>4) They feel inspired when they get home and want to keep working. They clone their fork from github to their home computer and keep working. With SVN, they would have needed to create a branch (which means they have commit access to the main repo) or they need to create their own repo which makes merging a pain later.</p>
<p>5) They&#8217;re done working at home, they push their changes to their fork, and submit a pull request to you.</p>
<p>6) You open the pull request and review their work. You notice they made a mistake in a regular expression on line 57 so you click the line and add a comment. An issue is automatically created and assigned to them.</p>
<p>7) They log in, see the issue, fix the issue, and resubmit the pull request.</p>
<p>8) You review and approve and life goes on.</p>
<h2>A few comments</h2>
<p>A user can submit a pull request to any fork, not just the master one. This makes forming teams super easy. You create a repo and all the members of Team A fork it, but they submit their pull requests to the Team Leader of Team A. Maybe they send daily pull requests to the Team Leader to review and he sends you weekly pull requests. You get the idea. This is perfect for our organization. Someone with a year of experience is perfectly capably of reviewing/mentoring a new hire, but you still want them to be reviewed by the people with 5 years of experience.</p>
<p><strong>Github charges by the number of private repos, and forks don&#8217;t count!</strong> And yes, the fork of private repo stays private. If you have a single project using a single repo, it doesn&#8217;t matter if you have 1000 people collaborating on this project, it still only counts as one repo. Even though &#8220;technically&#8221; each fork is a repository (and stays private!) it doesn&#8217;t count towards your total.</p>
<p>I still think SVN is great. I have private SVN hosting with <a title="beanstalk svn hosting" href="http://beanstalkapp.com/">Beanstalk</a> and I don&#8217;t plan on switching to github, but this is for my private projects. I don&#8217;t need to worry about collaboration, code review, team hierarchies, ect. The simplicity of SVN makes it an easy choice for personal projects, but for anything that requires collaboration, I&#8217;m going with github from now on.</p>
]]></content:encoded>
			<wfw:commentRss>http://colinrrobinson.com/technology/programming/github-code-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPv6 Subnet Calculator</title>
		<link>http://colinrrobinson.com/technology/programming/php/ipv6-subnet-calculator/</link>
		<comments>http://colinrrobinson.com/technology/programming/php/ipv6-subnet-calculator/#comments</comments>
		<pubDate>Sat, 29 Sep 2012 20:52:04 +0000</pubDate>
		<dc:creator>colin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://colinrrobinson.com/?p=354</guid>
		<description><![CDATA[I wrote a tool to organize subnet addressing for IPv6 Demo &#124; Source Code A little about IPv6 An IPv6 address is 128-bits and commonly represented as eight colon separated groups with each group consisting of four hexadecimal digits. For the general unicast address format, the first 64-bits are used for routing and the second 64-bits are the interface identifier [...]]]></description>
				<content:encoded><![CDATA[<p>I wrote a tool to organize subnet addressing for IPv6</p>
<p><a title="ipv6 subnet calculator demo" href="http://colinrrobinson.com/examples/ipv6-subnet-calculator/subnet_calculator_demo.php">Demo</a> | <a title="ip6 calculator source code on github" href="https://github.com/beardedlinuxgeek/ipv6-subnet-calculator">Source Code</a></p>
<h3>A little about IPv6</h3>
<p><img class="alignright" title="ipv6 address image" src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/70/Ipv6_address_leading_zeros.svg/300px-Ipv6_address_leading_zeros.svg.png" alt="" width="300" height="178" /><br />
An IPv6 address is 128-bits and commonly represented as eight colon separated groups with each group consisting of four hexadecimal digits. For the general unicast address format, the first 64-bits are used for routing and the second 64-bits are the interface identifier (RFC 4291). Of the first 64-bits, the first 48 are used for regional routing and the next 16 are used for subnetting. Thus for practical subnet planning, you can assign blocks from /49 to /64. My calculator only lets you select a prefix up to /63 because if you can&#8217;t subnet a /64 block, you can only assign it.</p>
<h3>How to use this calculator</h3>
<p><strong>Step 1)</strong></p>
<p>You can enter the network IP to be subnetted as a full address or in the shortened form with leading zeros removed and consecutive groups of zeros removed.</p>
<p>Either 2001:09fe:000a:0000:0000:0000:0000:0000 or 2001:9fe:a:: is fine.</p>
<p><strong>Step 2)</strong></p>
<p>Enter the number of subnets you want created at each level and press &#8220;Add Level.&#8221; Example: your university has 10 colleges, each college has 3 buildings, and each building has 8 departments. Add 10, then 3, then 8.</p>
<p><strong>Step 3)</strong></p>
<p>Build it! Then use the + button to show / hide subnets. The position string on the left hand side should help you identify who the network is subnetted to (eg. the subnet in position 4.2.3 is the 3rd department in the second building of the 4th college).</p>
<p><strong>Step 4)</strong></p>
<p>Post questions in the comments and bugs on GitHub.</p>
]]></content:encoded>
			<wfw:commentRss>http://colinrrobinson.com/technology/programming/php/ipv6-subnet-calculator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to make Chrome use Deluge for magnet links in Fedora</title>
		<link>http://colinrrobinson.com/technology/linux/fedora/deluge-magnet-links-chrome/</link>
		<comments>http://colinrrobinson.com/technology/linux/fedora/deluge-magnet-links-chrome/#comments</comments>
		<pubDate>Sun, 23 Sep 2012 00:04:56 +0000</pubDate>
		<dc:creator>colin</dc:creator>
				<category><![CDATA[Fedora]]></category>

		<guid isPermaLink="false">http://colinrrobinson.com/?p=349</guid>
		<description><![CDATA[The three things you need to know: 1) Unlike Firefox, Chrome uses xdg-open to choose the default program to open a file. 2) You can set the default application for each type by using xdg-mime. 3) The Fedora desktop file for Deluge is fedora-deluge.desktop and not deluge.desktop. xdg-mime default fedora-deluge.desktop x-scheme-handler/magnet]]></description>
				<content:encoded><![CDATA[<p>The three things you need to know:<br />
1) Unlike Firefox, Chrome uses xdg-open to choose the default program to open a file.<br />
2) You can set the default application for each type by using xdg-mime.<br />
3) The Fedora desktop file for Deluge is fedora-deluge.desktop and not deluge.desktop.</p>
<pre class="shell">xdg-mime default fedora-deluge.desktop x-scheme-handler/magnet</pre>
]]></content:encoded>
			<wfw:commentRss>http://colinrrobinson.com/technology/linux/fedora/deluge-magnet-links-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to install Compiz on Fedora 17 XFCE Spin</title>
		<link>http://colinrrobinson.com/technology/linux/xfce/install-compiz-fedora-17-xfce/</link>
		<comments>http://colinrrobinson.com/technology/linux/xfce/install-compiz-fedora-17-xfce/#comments</comments>
		<pubDate>Fri, 21 Sep 2012 02:38:32 +0000</pubDate>
		<dc:creator>colin</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[XFCE]]></category>

		<guid isPermaLink="false">http://colinrrobinson.com/?p=311</guid>
		<description><![CDATA[Let&#8217;s just be clear, this is not for the faint of heart. Why isn&#8217;t Compiz in the Fedora 17 repos? Compiz is a replacement window manager for the GNOME window manager called Metacity. When GNOME 3 came out last year, they replaced Metacity with Mutter. Apparently there are library incompatibilities that prevent Compiz from replacing Mutter. I [...]]]></description>
				<content:encoded><![CDATA[<p>Let&#8217;s just be clear, this is not for the faint of heart.</p>
<h2>Why isn&#8217;t Compiz in the Fedora 17 repos?</h2>
<p>Compiz is a replacement window manager for the GNOME window manager called Metacity. When GNOME 3 came out last year, they replaced Metacity with Mutter. Apparently there are library incompatibilities that prevent Compiz from replacing Mutter. I didn&#8217;t look into the details because we don&#8217;t care about GNOME issues, we&#8217;re XFCE users!</p>
<p>I&#8217;ll also note that <a title="RedHat Compiz Review" href="https://bugzilla.redhat.com/show_bug.cgi?id=851800">Red Hat is currently reviewing the situation</a> and might bring Compiz back. Who knows. I for one think it&#8217;s silly to drop a package just because it doesn&#8217;t work with one desktop environment out of many.</p>
<p><span id="more-311"></span></p>
<h2>Why I love Compiz (you can skip this)</h2>
<p>I like Compiz a lot and not because of the silly effects. The #1 feature to me is the grid plugin. I press Ctrl+Num7 and my window auto resizes to the top left corner. I press Ctrl+Num4, it resizes to the whole left half of the screen. If I press Ctrl+Num4 twice it takes up 1/3 of the left hand side and then I press Ctrl+6 3 times on another window and that one takes up 2/3 of the right half of the screen. You get the idea. Compiz is the best tiling window manager I&#8217;ve every used and it&#8217;s not even a tiling window manager.</p>
<p>It&#8217;s awesome, it makes you way more productive, and nothing even comes close to rivaling it. I could live without every other part of compiz (though the slick effects <em>are</em> nice) but the grid makes it worth it.</p>
<h2>Installing Compiz</h2>
<p>First you need to download the relevant rpm packages from the Fedora 16 repository. I&#8217;d suggest making a new directory called &#8220;compiz-rpms&#8221; or whatever you want.</p>
<h3>Required Packages</h3>
<p>Shout out to <a title="Brombor Fedora Forum" href="http://forums.fedoraforum.org/showthread.php?t=279981">Brombor</a> on the Fedora forums for making this list. All the linked packages below are for the x86_64 version. (<a title="Fedora 16 i386 Repository" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/i386/os/Packages/">Link to the i386 repo if you need it</a>).</p>
<ul>
<li><a title="boost-serialization-1.47.0-3.fc16.x86_64.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/boost-serialization-1.47.0-3.fc16.x86_64.rpm">boost-serialization</a></li>
<li><a title="libcompizconfig-0.9.5.0-2.fc16.x86_64.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/libcompizconfig-0.9.5.0-2.fc16.x86_64.rpm">libcompizconfig</a></li>
<li><a title="ccsm-0.9.5.0-1.fc16.noarch.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/ccsm-0.9.5.0-1.fc16.noarch.rpm">ccsm</a></li>
<li><a title="compiz-0.9.5.0-4.fc16.x86_64.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-0.9.5.0-4.fc16.x86_64.rpm">compiz</a></li>
<li><a title="compiz-bcop-0.8.8-1.fc16.noarch.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-bcop-0.8.8-1.fc16.noarch.rpm">compiz-bcop</a></li>
<li><a title="compiz-fusion-extras-0.9.5.0-3.fc16.x86_64.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-fusion-extras-0.9.5.0-3.fc16.x86_64.rpm">compiz-fusion-extras</a></li>
<li><a title="compiz-fusion-extras-gconf-0.9.5.0-3.fc16.x86_64.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-fusion-extras-gconf-0.9.5.0-3.fc16.x86_64.rpm">compiz-fusion-extras-gconf</a></li>
<li><a title="compiz-gconf-0.9.5.0-4.fc16.x86_64.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-gconf-0.9.5.0-4.fc16.x86_64.rpm">compiz-gconf</a></li>
<li><a title="compiz-gnome-0.9.5.0-4.fc16.x86_64.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-gnome-0.9.5.0-4.fc16.x86_64.rpm">compiz-gnome</a></li>
<li><a title="compiz-gtk-0.9.5.0-4.fc16.x86_64.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-gtk-0.9.5.0-4.fc16.x86_64.rpm">compiz-gtk</a></li>
<li><a title="compiz-manager-0.6.0-13.fc15.noarch.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-manager-0.6.0-13.fc15.noarch.rpm">compiz-manager</a></li>
<li><a title="compiz-plugins-main-0.9.5.0-2.fc16.x86_64.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-plugins-main-0.9.5.0-2.fc16.x86_64.rpm">compiz-plugins-main</a></li>
<li><a title="compiz-plugins-main-gconf-0.9.5.0-2.fc16.x86_64.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-plugins-main-gconf-0.9.5.0-2.fc16.x86_64.rpm">compiz-plugins-main-gconf</a></li>
<li><a title="compizconfig-backend-gconf-0.9.5.0-1.fc16.x86_64.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compizconfig-backend-gconf-0.9.5.0-1.fc16.x86_64.rpm">compizconfig-backend-gconf</a></li>
<li><a title="compizconfig-python-0.9.5.0-1.fc16.x86_64.rpm" href="http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compizconfig-python-0.9.5.0-1.fc16.x86_64.rpm">compizconfig-python</a></li>
</ul>
<p>Or you can be a cool kid and just do</p>
<pre class="shell" style="overflow-x: scroll;">wget -v http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/boost-serialization-1.47.0-3.fc16.x86_64.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/libcompizconfig-0.9.5.0-2.fc16.x86_64.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/ccsm-0.9.5.0-1.fc16.noarch.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-0.9.5.0-4.fc16.x86_64.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-bcop-0.8.8-1.fc16.noarch.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-fusion-extras-0.9.5.0-3.fc16.x86_64.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-fusion-extras-gconf-0.9.5.0-3.fc16.x86_64.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-gconf-0.9.5.0-4.fc16.x86_64.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-gnome-0.9.5.0-4.fc16.x86_64.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-gtk-0.9.5.0-4.fc16.x86_64.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-manager-0.6.0-13.fc15.noarch.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-plugins-main-0.9.5.0-2.fc16.x86_64.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-plugins-main-gconf-0.9.5.0-2.fc16.x86_64.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compizconfig-backend-gconf-0.9.5.0-1.fc16.x86_64.rpm http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compizconfig-python-0.9.5.0-1.fc16.x86_64.rpm</pre>
<h3>Install boost-serialization</h3>
<p>Once you install boost-serialization, you have to prevent it from updating. Install the version lock plugin and boost-serialization.</p>
<pre class="shell">yum install yum-plugin-versionlock
yum localinstall boost-serialization-1.47.0-3.fc16.x86_64.rpm</pre>
<p>Lock boost-serialization</p>
<pre class="shell">yum versionlock boost-serialization</pre>
<h3>Install everything else</h3>
<pre class="shell">yum localinstall libcompizconfig
yum localinstall ccsm
yum localinstall compiz*</pre>
<p>You could technically run compiz at this point and have wobbly windows and all that stuff, but you&#8217;d be missing one important thing&#8230; a window decorator. All your window buttons (close, minimize, ect) will be gone. So unless you feel like holding Alt to move windows and using shortcuts to close them, I&#8217;d suggest installing emerald.</p>
<h2>Installing emerald</h2>
<p>You can&#8217;t just install emerald from the Fedora 16 repo because it conflicts with compiz-plugins-main.</p>
<h3>Option 1: Use my RPM</h3>
<p>I already built the emerald package for my own use so I&#8217;ve uploaded the rpm to my github (<a title="emerald rpm for f17" href="https://github.com/beardedlinuxgeek/Emerald/raw/master/emerald-0.9.5-0.1.gitfb5be05657.fc17.x86_64.rpm">download here</a>). If you&#8217;re running the XFCE spin of Fedora 17 x86_64, then you <em>should</em> be able to just download this and install it with</p>
<pre class="shell">rpm -ivp emerald-0.9.5-0.1.rpm</pre>
<p>If this works, then you&#8217;re in business and can skip to the section &#8220;Running Compiz.&#8221; But remember that if you have issues with the window bar not showing up then you should remove my emerald package and build your own.</p>
<h3>Option 2: Compile emerald from SRPM file</h3>
<p>An SRPM file is the source code + SPEC file (build instructions). It usually has the extension .src.rpm. I&#8217;ve uploaded the SRPM of emerald-0.9.5-0.1 to my github account. <a title="Emerald SRPM" href="https://github.com/beardedlinuxgeek/Emerald/raw/master/emerald-0.9.5-0.1.gitfb5be05657.fc16.src.rpm">SRPM download</a></p>
<h3>How to create an RPM package</h3>
<p>Here are the instructions that I followed from the Fedora wiki<br />
<a title="How to create an RPM package" href="http://fedoraproject.org/wiki/How_to_create_an_RPM_package">http://fedoraproject.org/wiki/How_to_create_an_RPM_package</a></p>
<p>I&#8217;ve provided abbreviated instructions below, but if you have problems then you should consult the wiki guide.</p>
<p><strong>Step 1: Compiz-Devel</strong><br />
To build emerald you need to install compiz-devel and to install compiz-devel you need install some other packages. So lets get that out of the way.</p>
<pre class="shell">yum install libwnck-devel gtk2-devel intltool libtool gettext-devel libXres-devel</pre>
<p>Download and install compiz-devel</p>
<pre class="shell" style="overflow-x: scroll;">wget http://archives.fedoraproject.org/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/compiz-devel-0.9.5.0-4.fc16.x86_64.rpm
yum localinstall compiz-devel-0.9.5.0-4.fc16.x86_64.rpm</pre>
<p><strong>Step 2: Preparing your system</strong><br />
Install some core development tools</p>
<pre class="shell">yum install @development-tools
yum install fedora-packager</pre>
<p>You never want to create packages as root. We&#8217;re going to create a new user named makerpm, add the user to the &#8216;mock&#8217; group, set a password, and login as that user</p>
<pre class="shell">/usr/sbin/useradd makerpm
usermod -a -G mock makerpm
passwd makerpm
su - makerpm</pre>
<p>Make sure you&#8217;re logged in as the dummy user and in their home directory. Then create the required directory structure.</p>
<pre class="shell">rpmdev-setuptree</pre>
<p><strong>Step 3: SRPM to RPM</strong><br />
Chances are that the emerald SRPM you downloaded is owned by your user account. Move it to the homedir of your dummy account and chown it to them.</p>
<p>Create a directory and unpack the SRPM</p>
<pre class="shell">mkdir emerald_src_rpm
cd emerald_src_rpm
rpm2cpio ../emerald-*.src.rpm | cpio -i</pre>
<p>Let&#8217;s just verify the spec file real quick</p>
<pre class="shell">rpmlint emerald.spec</pre>
<p>Create binary RPMS</p>
<pre class="shell">rpmbuild -ba emerald.spec</pre>
<p>If successful, the RPMS will be created within ~/rpmbuild/RPMS/</p>
<p>Lets verify that the build worked correctly</p>
<pre class="shell">rpmlint emerald.spec  ~/rpmbuild/RPMS/*/emerald*.rpm</pre>
<p>I got a few warning but no errors. If everything went well for you, enter the ~/rpmbuild/RPMS directory and into the architecture subdirectory. Install your new emerald package from root with</p>
<pre class="shell">rpm -ivp emerald*.rpm</pre>
<h2>Running Compiz</h2>
<h3>Enable plugins</h3>
<p>You need to activate a few plugins that provide basic window manager behavior or else you will have no ability to drag, scale or close any windows as soon as compiz is activated. These plugins should be enabled by default, but lets be sure. Open the Compiz Settings Manager</p>
<pre class="shell">ccsm</pre>
<p>and put check marks next to &#8220;Window Decoration&#8221; under Effects and &#8220;Move Window&#8221; &amp; &#8220;Resize Window&#8221; under Window Management.</p>
<h3>Replace xfwm4 with Compiz</h3>
<p>Easy peasy. To start Compiz and Emerald together, just run</p>
<pre class="shell">compiz-manager &amp;</pre>
<h4>What if something goes wrong?</h4>
<p><strong>Window decorator isn&#8217;t appearing</strong><br />
Switch back to xfwm4.</p>
<pre class="shell">xfwm4 --replace &amp;</pre>
<p><strong>Screen locked up</strong><br />
Ctrl+Alt+Backspace will automatically log out you.</p>
<p><strong>Taskbar and Desktop not appearing</strong><br />
The screen locked up, you ctrl+alt+backspaced out, and now every time you log in you get the same broken Compiz session. You need to clear your session cache.</p>
<pre class="shell">rm ~/.cache/sessions/*</pre>
<h3>Start Compiz Automatically</h3>
<p><strong>After</strong> you&#8217;ve verified that Compiz/Emerald is working correctly, you can set it to start automatically when you log in.</p>
<p>Start &gt; Settings &gt; Session and Startup &gt; Application Autostart</p>
<p>Add a new item<br />
(Name) Compiz<br />
(Description) Start Compiz<br />
(Command) compiz-manager</p>
<p>Now Compiz should start automatically, every time you log in.</p>
<p>Note: If something breaks and you need to stop Compiz from starting automatically but you can&#8217;t access the GUI, this is how you disable application autostarts from the command line:</p>
<pre class="shell">cd ~/.config/autostart/
rm Compiz.desktop</pre>
<h2>Bug fixes</h2>
<p>I&#8217;m just going to post random bug fixes as I encounter them (hey, I never told you this was stable).</p>
<h3>Tooltips and Menus not showing correctly</h3>
<p>There&#8217;s a weird bug with XFCE and Compiz where tooltips don&#8217;t display correctly some times. Open up the Compiz Settings Manager (ccsm), scroll down to &#8220;Effects&#8221;, and enable &#8220;Animations.&#8221; Now tooltips display correctly every time!</p>
<h3>Compiz crashes with the error &#8220;/usr/bin/compiz-manager: line 367: Segmentation fault&#8221;</h3>
<p>It was to do with the grid plugin. Open ~/.config/compiz-1/compizconfig/Default.ini and remove &#8220;[grid]&#8221; and everything under it.</p>
<h3>Compiz-manager won&#8217;t start after installing the latest video drivers, &#8220;No whitelisted driver found&#8221;</h3>
<p>I installed the latest ATI Radeon video drivers and now compiz-manager refuses to start because my drivers aren&#8217;t in the whitelist. Rather than use compiz-manager to start compiz and emerald, we can start the both manually.</p>
<pre class="shell">LIBGL_ALWAYS_INDIRECT=true compiz --replace --ignore-desktop-hints ccp &amp; emerald --replace &amp;</pre>
<p>Setting LIBGL_ALWAYS_INDIRECT to true is necessary if you&#8217;re running AIGLX.<br />
I&#8217;m not sure what &#8211;ignore-desktop-hints does, but its a recommend option on compiz.org<br />
ccp uses compizconfig for settings (so you have window decorators and stuff)</p>
<p><strong>Make Compiz start automatically again</strong><br />
Try out the above command and verify that it works.<br />
Remove your XFCE Autostart entry via the GUI or deleting the .desktop file in ~/.config/autostart/<br />
Add the above command to your ~/.bash_profile file<br />
Log out and in again</p>
]]></content:encoded>
			<wfw:commentRss>http://colinrrobinson.com/technology/linux/xfce/install-compiz-fedora-17-xfce/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>iPad and iPhone Web Frameworks</title>
		<link>http://colinrrobinson.com/technology/programming/ipad-iphone-web-frameworks/</link>
		<comments>http://colinrrobinson.com/technology/programming/ipad-iphone-web-frameworks/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 23:48:51 +0000</pubDate>
		<dc:creator>colin</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://colinrrobinson.com/?p=294</guid>
		<description><![CDATA[Sencha Touch This is the gold standard of iPad web frameworks. It&#8217;s amazing (and free!), check out the kitchen sink demo. Project Page Slablet Project Page Demos WebApp Project Page Demo Splitview http://asyraf9.github.com/jquery-mobile/ jQuery Mobile http://jquerymobile.com/]]></description>
				<content:encoded><![CDATA[<h2>Sencha Touch</h2>
<p>This is the gold standard of iPad web frameworks. It&#8217;s amazing (and free!), check out the <a href="http://dev.sencha.com/deploy/touch/examples/production/kitchensink/index.html">kitchen sink demo</a>.</p>
<p><a href="http://colinrrobinson.com/wp-content/uploads/2012/04/sencha.png" rel="lightbox[294]"><img class="size-thumbnail wp-image-298 alignnone" title="sencha" src="http://colinrrobinson.com/wp-content/uploads/2012/04/sencha-150x150.png" alt="" width="150" height="150" /></a></p>
<p><a href="http://www.sencha.com/products/touch/demos/">Project Page</a></p>
<h2><span id="more-294"></span>Slablet</h2>
<p><a href="http://colinrrobinson.com/wp-content/uploads/2012/04/slablet.png" rel="lightbox[294]"><img title="slablet" src="http://colinrrobinson.com/wp-content/uploads/2012/04/slablet-150x150.png" alt="" width="150" height="150" /></a></p>
<p><a href="https://github.com/fellowshiptech/slablet">Project Page</a></p>
<p><a href="http://host.sonspring.com/slablet/">Demos</a></p>
<h2>WebApp</h2>
<p><a href="http://colinrrobinson.com/wp-content/uploads/2012/04/webapp.png" rel="lightbox[294]"><img class="alignnone size-thumbnail wp-image-301" title="webapp" src="http://colinrrobinson.com/wp-content/uploads/2012/04/webapp-150x150.png" alt="" width="150" height="150" /></a></p>
<p><a href="http://webapp-net.com/">Project Page</a></p>
<p><a href="http://demo.webapp-net.com/">Demo</a></p>
<h2>Splitview</h2>
<p><a href="http://asyraf9.github.com/jquery-mobile/">http://asyraf9.github.com/jquery-mobile/</a></p>
<h2>jQuery Mobile</h2>
<p><a href="http://jquerymobile.com/">http://jquerymobile.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://colinrrobinson.com/technology/programming/ipad-iphone-web-frameworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Draughts, my first android game</title>
		<link>http://colinrrobinson.com/technology/android/draughts-android-game/</link>
		<comments>http://colinrrobinson.com/technology/android/draughts-android-game/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 02:28:44 +0000</pubDate>
		<dc:creator>colin</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://colinrrobinson.com/?p=287</guid>
		<description><![CDATA[Made with Unity3D, coded in C# https://play.google.com/store/apps/details?id=com.colinrrobinson.draughts &#160;]]></description>
				<content:encoded><![CDATA[<p>Made with Unity3D, coded in C#</p>
<p><a href="http://colinrrobinson.com/wp-content/uploads/2012/04/unnamed.jpg" rel="lightbox[287]"><img class="alignnone size-thumbnail wp-image-288" title="unnamed" src="http://colinrrobinson.com/wp-content/uploads/2012/04/unnamed-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://colinrrobinson.com/wp-content/uploads/2012/04/unnamed-1.jpg" rel="lightbox[287]"><img class="alignnone size-thumbnail wp-image-289" title="unnamed (1)" src="http://colinrrobinson.com/wp-content/uploads/2012/04/unnamed-1-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p><a href="https://play.google.com/store/apps/details?id=com.colinrrobinson.draughts">https://play.google.com/store/apps/details?id=com.colinrrobinson.draughts</a></p>
<p><a href="http://colinrrobinson.com/wp-content/uploads/2012/04/img.png" rel="lightbox[287]"><img class="alignnone size-thumbnail wp-image-290" title="img" src="http://colinrrobinson.com/wp-content/uploads/2012/04/img-150x150.png" alt="" width="150" height="150" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://colinrrobinson.com/technology/android/draughts-android-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to free up space in rootfs on Arch Linux</title>
		<link>http://colinrrobinson.com/technology/linux/free-space-rootfs-arch-linux/</link>
		<comments>http://colinrrobinson.com/technology/linux/free-space-rootfs-arch-linux/#comments</comments>
		<pubDate>Sat, 07 Apr 2012 19:15:59 +0000</pubDate>
		<dc:creator>colin</dc:creator>
				<category><![CDATA[Arch]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://colinrrobinson.com/?p=243</guid>
		<description><![CDATA[Is your rootfs partition at 100% and causing you problems? I&#8217;ve been hovering around 95%-100% for a few weeks now. Being at 95% is fine, but 100% can cause all kinds of problems. I was testing a form on my local web server and couldn&#8217;t do file uploads because &#8220;the disk was full.&#8221; I was [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Is your rootfs partition at 100% and causing you problems?</strong></p>
<p>I&#8217;ve been hovering around 95%-100% for a few weeks now. Being at 95% is fine, but 100% can cause all kinds of problems. I was testing a form on my local web server and couldn&#8217;t do file uploads because &#8220;the disk was full.&#8221; I was writing code and my editor couldn&#8217;t save the file because &#8220;the disk was full.&#8221; Its frustrating because you have hundreds of free gigs where you&#8217;re saving the file, but because rootfs is full, you can&#8217;t!</p>
<p>I&#8217;ll start by showing you the output of <span class="inlinecode">df</span></p>
<pre class="shell">$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
rootfs          10209220  9625988     71164 100% /
/dev             4055116        0   4055116   0% /dev
run              4058036      252   4057784   1% /run
/dev/sda3       10209220  9625988     71164 100% /
shm              4058036      796   4057240   1% /dev/shm
tmpfs            4058036     3160   4054876   1% /tmp
/dev/sda1          99590    34166     60205  37% /boot
/dev/sda4      449789792 23726068 403549860   6% /home</pre>
<p>Not good, but its my own fault. I only allocated about 10g to <span class="inlinecode">/dev/sda3</span> when I setup the OS. I should I have predicted that I would need more.</p>
<p>The real solutions is to boot to a livecd and resize <span class="inlinecode">/dev/sda3</span>. This can take a long time, break your grub install, and cause other headache inducing effects.</p>
<p>Here are some tricks I&#8217;ve picked up to get your rootfs down from the dreaded 100% to something you can actually work with.</p>
<p><span id="more-243"></span></p>
<h2>Clear your pacman cache</h2>
<p>When pacman downloads a package for you, it keeps a version in its cache (usually <span class="inlinecode">/var/cache/pacman/pkg</span>). This is great if you ever want to downgrade a package, but its not necessary and it takes up space.</p>
<p>Clearing your cache is as easy as:</p>
<pre class="shell">$ pacman -Sc</pre>
<p>There are more complicated scripts on the net which do things like manage how mange revisions back to save packages for, but this is fine for now. Lets take a look at the difference that made</p>
<pre class="shell">$ sudo df
Filesystem     1K-blocks     Used Available Use% Mounted on
rootfs          10209220  9303916    393236  96% /</pre>
<p>Down to 96% already! This is all the difference in the world, now I can actually save this document I&#8217;m writing. Lets see how much further we can get this down.</p>
<h2>Remove software you don&#8217;t use</h2>
<p>Now might be a good time to remove unused software. I normally run a pretty tight system anyways, but I still found room to improve.</p>
<p>For example, I use Xfce as my Desktop Environment but I use Compiz as my Window Manager rather than <span class="inlinecode">xfwm4</span>. This let me remove <span class="inlinecode">xfwm4</span> and <span class="inlinecode">xfwm4-themes</span> and shed a few MBs. I originally installed both VirtualBox and VMware but I only use the latter. See you later Vbox!</p>
<h2>Kill the orphans!</h2>
<p>Or rather&#8230; remove orphaned packages. First do a pacman query <span class="inlinecode">-Q</span> for all dependencies <span class="inlinecode">-d</span> that are unrequired <span class="inlinecode">-t</span>.</p>
<pre class="shell">$ pacman -Qdt</pre>
<p>If you have unrequired dependencies, why not remove them. This simple command with recursively remove all unrequired dependencies.</p>
<pre class="shell">pacman -Rs $(pacman -Qtdq)</pre>
<p>Where are we at?</p>
<pre class="shell">$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
rootfs          10209220  9090832    606320  94% /</pre>
<h2>BleachBit</h2>
<p>Similar to CCleaner on Windows, <a title="bleachbit sourceforge" href="http://bleachbit.sourceforge.net/">BleachBit</a> clears out temp files, system caches, and other <em>junk.</em> You can find it <a title="bitcleach-cli in the arch user repos" href="http://aur.archlinux.org/packages.php?ID=36043">here in the AUR</a> (There is also a CLI version).</p>
<h2>Figure out what&#8217;s taking up space</h2>
<p>Still not satisfied with the size of rootfs? Get down into the file structure and find out what&#8217;s taking up space. The arch wiki has a list of <a title="Disk Usage Display Programs" href="https://wiki.archlinux.org/index.php/Common_Applications/Utilities#Disk_Usage_Display_Programs">disk usage display programs</a>. I&#8217;m personally a fan of <span class="inlinecode">ncdu</span> (<a title="ncdu homepage" href="http://dev.yorhel.nl/ncdc">home page</a>) (<a title="ncdu package details" href="https://www.archlinux.org/packages/community/x86_64/ncdu/">package details</a>).</p>
<p><strong>Have a suggestion of your own? Still having problems with your file system? Make a comment!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://colinrrobinson.com/technology/linux/free-space-rootfs-arch-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Code Review</title>
		<link>http://colinrrobinson.com/technology/code-review/</link>
		<comments>http://colinrrobinson.com/technology/code-review/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 16:01:47 +0000</pubDate>
		<dc:creator>colin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://colinrrobinson.com/?p=161</guid>
		<description><![CDATA[Where I work, we have a lot of new developers and people still learning the languages. When learning a language, being able to get feedback on your code is an invaluable learning asset. It lets the more experienced programmers help teach the newer ones. Most code review software is designed for pre-commit comments. A reviewer looks at the code [...]]]></description>
				<content:encoded><![CDATA[<p>Where I work, we have a lot of new developers and people still learning the languages. When learning a language, being able to get feedback on your code is an invaluable learning asset. It lets the more experienced programmers help teach the newer ones.</p>
<p>Most code review software is designed for pre-commit comments. A reviewer looks at the code before it gets added to the version control system and then approves or denies the changes. This is obviously vital for large projects involving multiple developers, but what about small shops where people work mostly independently and on different projects? What if you don&#8217;t have the resources or the need for an extensive review process and would rather casually browse your colleges code to add constructive criticisms or notify them of best practices which they might be unaware of?</p>
<p>To me the ideal tool will interface with subversion and allow reversion specific and line specific post-commit comments. I want to be able to browse our source code whenever I feel like it, write a comment about a specific line, and then have the author notified of the comment.</p>
<p>The<a href="http://trac-hacks.org/wiki/PeerReviewPlugin"> PeerReviewPlugin</a> for Trac looked like a winner, until I read this review</p>
<blockquote>
<div id="attachment_162" class="wp-caption alignright" style="width: 160px"><a href="http://colinrrobinson.com/wp-content/uploads/2012/03/perform_code_review-1024x666.jpg" rel="lightbox[161]"><img class="size-thumbnail wp-image-162 " title="perform_code_review" src="http://colinrrobinson.com/wp-content/uploads/2012/03/perform_code_review-150x150.jpg" alt="PeerReview Plugin for Trac" width="150" height="150" /></a><p class="wp-caption-text">PeerReview Screenshot</p></div>
<p>In my company, we looked briefly at the &#8220;peerreview&#8221; plugin on TracHacks, and were very disappointed with it.</p>
<p>It seems obvious to us that a code-review plugin would naturally default to assuming that an entire Subversion commit should be code-reviewed. Unfortunately, the peerreview plugin forces you to manually identify the lines of code that you want to review. It doesn&#8217;t even give you hints in which lines might have changed with a particular commit, which means that if you don&#8217;t enter the line that changed carefully, you could end up re-reviewing the same lines of code over and over.</p></blockquote>
<p>It still looks promising, and I don&#8217;t expect to find an out-of-the-box solution that is perfect for my specific situation. Right now <a href="http://www.reviewboard.org/">ReviewBoard</a> is looking up and I could always modify the PeerReview plugin to suit my needs (hooray, opensource). Please, leave a comment about how you and your company do code review. What code review systems have you worked with? What other solutions might I have passed over?</p>
]]></content:encoded>
			<wfw:commentRss>http://colinrrobinson.com/technology/code-review/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How do you measure productivity?</title>
		<link>http://colinrrobinson.com/technology/measure-productivity/</link>
		<comments>http://colinrrobinson.com/technology/measure-productivity/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 15:45:50 +0000</pubDate>
		<dc:creator>colin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://colinrrobinson.com/?p=158</guid>
		<description><![CDATA[How do you measure your productivity while writing code? Judging a program&#8217;s success by lines of code (LOC) is like judging how successful an airplane is by its weight. Consider a more modern approach from Agile development called Weighted Micro Function Points.]]></description>
				<content:encoded><![CDATA[<p>How do you measure your productivity while writing code? Judging a program&#8217;s success by lines of code (LOC) is like judging how successful an airplane is by its weight. Consider a more modern approach from Agile development called <a href="http://en.wikipedia.org/wiki/Weighted_Micro_Function_Points">Weighted Micro Function Points</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://colinrrobinson.com/technology/measure-productivity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
