<?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>Views From The Hill</title>
	<atom:link href="http://dustint.com/feed" rel="self" type="application/rss+xml" />
	<link>http://dustint.com</link>
	<description>Tales Of A (Former) SFU Computing Scientist</description>
	<lastBuildDate>Fri, 03 Feb 2012 21:45:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Recover Un-mountable VMWare ESXi Volume</title>
		<link>http://dustint.com/post/465/recover-un-mountable-vmware-esxi-volume</link>
		<comments>http://dustint.com/post/465/recover-un-mountable-vmware-esxi-volume#comments</comments>
		<pubDate>Fri, 03 Feb 2012 21:45:51 +0000</pubDate>
		<dc:creator>Dustin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ESXi]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[VMFS]]></category>

		<guid isPermaLink="false">http://dustint.com/?p=465</guid>
		<description><![CDATA[After upgrading to VMWare ESXi 5 from 4.1, I found one of my datastore volumes would no longer mount. The disk would show up as a device, but there were a series of errors whenever I tried to mount the volume. After trying a variety of things, I still couldn&#8217;t get the volume to mount, [...]]]></description>
			<content:encoded><![CDATA[<p>After upgrading to VMWare ESXi 5 from 4.1, I found one of my datastore volumes would no longer mount. The disk would show up as a device, but there were a series of errors whenever I tried to mount the volume.</p>
<p>After trying a variety of things, I still couldn&#8217;t get the volume to mount, so I decided to try to recover the virtual machines off the drive before wiping it.</p>
<p>The first step is to configure the un-mountable disk as a raw passthrough. This will allow a guest OS to access the disk. Instructions for these steps can be found here:<br />
<a href="http://rand0mbits.blogspot.com/2010/12/esxi-raw-disk-pass-through.html">http://rand0mbits.blogspot.com/2010/12/esxi-raw-disk-pass-through.html</a></p>
<p>After converting the disk to a raw passthrough, assign it to a virtual machine on your ESXi host. I chose Gentoo Linux.</p>
<p>By default, most linux distributions don&#8217;t ship with VMFS support, however Christophe Fillot and Mike Hommey have developed a tool called <a href="http://glandium.org/projects/vmfs-tools/">vmfs-tools</a> that allows mounting of VMFS partitions. If you have Debian or Ubuntu you can simply install the package. Since I was using Gentoo I had to build from source:</p>
<p>You may have to emerge some of the prerequisites if you do not have them. See the vmfs-tools site for details.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>glandium.org<span style="color: #000000; font-weight: bold;">/</span>projects<span style="color: #000000; font-weight: bold;">/</span>vmfs-tools<span style="color: #000000; font-weight: bold;">/</span>vmfs-tools-0.2.1.tar.gz
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xf</span> vmfs-tools-0.2.1.tar.gz
<span style="color: #7a0874; font-weight: bold;">cd</span> vmfs-tools-0.2.1
.<span style="color: #000000; font-weight: bold;">/</span>configure
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<p>Now that we have vmfs-fuse installed, we can mount our volume:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#Ensure the fuse kernel module is loaded</span>
modprobe fuse
&nbsp;
<span style="color: #666666; font-style: italic;">#Mount the device to the desired mountpoint</span>
vmfs-fuse <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>sdd1 <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>vmfs
&nbsp;
<span style="color: #666666; font-style: italic;">#copy files off of mounted vmfs</span>
<span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #660033;">-Rv</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>vmfs <span style="color: #000000; font-weight: bold;">/</span>tmp</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://dustint.com/post/465/recover-un-mountable-vmware-esxi-volume/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Circumvent Wikipedia&#8217;s Blackout with Firefox and NoScript</title>
		<link>http://dustint.com/post/460/circumvent-wikipedias-blackout-with-firefox-and-noscript</link>
		<comments>http://dustint.com/post/460/circumvent-wikipedias-blackout-with-firefox-and-noscript#comments</comments>
		<pubDate>Wed, 18 Jan 2012 14:33:08 +0000</pubDate>
		<dc:creator>Dustin</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[noscript]]></category>
		<category><![CDATA[SOPA]]></category>
		<category><![CDATA[Wikipedia]]></category>

		<guid isPermaLink="false">http://dustint.com/?p=460</guid>
		<description><![CDATA[Today the English version of Wikipedia is blacked out to protest the SOPA legislation that is on the books in the United States. Sources say that people wishing to access Wikipedia can still do so using the mobile version of the site; however, this is unnecessary as they are using simple Javascript to overlay the [...]]]></description>
			<content:encoded><![CDATA[<p>Today the English version of Wikipedia is blacked out to protest the <a href="http://en.wikipedia.org/wiki/Wikipedia:SOPA_initiative/Learn_more">SOPA legislation</a> that is on the books in the United States. Sources say that people wishing to access Wikipedia can still do so using the mobile version of the site; however, this is unnecessary as they are using simple Javascript to overlay the site content with the &#8220;Blacked Out&#8221; message.</p>
<p>To access Wikipedia from your computer today:</p>
<ol>
<li>Install the most recent version of firefox</li>
<li>Install the <a href="https://addons.mozilla.org/en-US/firefox/addon/noscript/">NoScript addon</a></li>
</ol>
<p>By default, NoScript blocks all javascript, the code used to blackout Wikipedia is prevented from running.</p>
<p>Read more about NoScript at <a href="http://lifehacker.com/337747/secure-firefox-with-noscript">Lifehacker</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dustint.com/post/460/circumvent-wikipedias-blackout-with-firefox-and-noscript/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parse HTML with ActionScript&#8217;s EX4</title>
		<link>http://dustint.com/post/453/parse-html-with-actionscripts-ex4</link>
		<comments>http://dustint.com/post/453/parse-html-with-actionscripts-ex4#comments</comments>
		<pubDate>Mon, 16 Jan 2012 03:58:59 +0000</pubDate>
		<dc:creator>Dustin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[EX4]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://dustint.com/?p=453</guid>
		<description><![CDATA[ActionScript includes an EX4 implementation that allows easy parsing of XML in code. I wanted to parse HTML for screen scraping purposes and found that EX4 allows for a syntax that loosely resembles a combination of XPATH and css3 selectors. Josh&#8217;s tutorial provided a very good foundation; however, I was finding that I was having [...]]]></description>
			<content:encoded><![CDATA[<p>ActionScript includes an <a href="http://en.wikipedia.org/wiki/ECMAScript_for_XML">EX4</a> implementation that allows easy parsing of XML in code. I wanted to parse HTML for screen scraping purposes and found that EX4 allows for a syntax that loosely resembles a combination of XPATH and css3 selectors.</p>
<p><a href="http://joshblog.net/2007/05/17/filter-xml-data-with-e4x-in-flash-part-2/">Josh&#8217;s tutorial</a> provided a very good foundation; however, I was finding that I was having problems doing attribute-based filtering in the case where the attribute name is the same as an ActionScript keyword. This was especially problematic as I needed to filter based on the contents of the HTML element&#8217;s class attribute.</p>
<p>After much investigation I found that while the HTML tag names were in the default namespace, the attribute names were not. As a result, If i set a default namespace for the XML parsing, I could not access the attribute values if I listed their names as strings. However, I found if I created a new QName object with a blank namespace, the attributes would be returned as expected.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">default</span> <span style="color: #0066CC;">xml</span> namespace = <span style="color: #000000; font-weight: bold;">new</span> Namespace<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://www.w3.org/1999/xhtml&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">xml</span>:<span style="color: #0066CC;">XML</span> = <span style="color: #0066CC;">XML</span><span style="color: #66cc66;">&#40;</span>htmlString<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> results:XMLList = <span style="color: #0066CC;">xml</span>..<span style="color: #006600;">span</span>.<span style="color: #66cc66;">&#40;</span>attribute<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> QName<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Namespace<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #ff0000;">&quot;class&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> == <span style="color: #ff0000;">&quot;foo&quot;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>The above will return a list of all span objects with a class attribute of &#8220;foo&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://dustint.com/post/453/parse-html-with-actionscripts-ex4/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pre-Eden XBMC-live on Ubuntu 10.04 Lucid</title>
		<link>http://dustint.com/post/427/pre-eden-xbmc-live-on-ubuntu-10.04-lucid</link>
		<comments>http://dustint.com/post/427/pre-eden-xbmc-live-on-ubuntu-10.04-lucid#comments</comments>
		<pubDate>Sun, 30 Oct 2011 18:42:26 +0000</pubDate>
		<dc:creator>Dustin</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Eden]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[XBMC]]></category>

		<guid isPermaLink="false">http://dustint.com/?p=427</guid>
		<description><![CDATA[I wanted to try out some of the new features in the upcoming XBMC Eden release. The problem is that I am running XMBC-live on Ubuntu 10.04 Lucid and the Eden xbmc-live package requires the uxlaunch package which is only available in newer versions of Ubuntu. However, it is still possible to get a working [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to try out some of the new features in the upcoming <a href="http://xbmc.org/theuni/2011/10/01/feature-freeze-looking-forward-to-eden/">XBMC Eden release</a>. </p>
<p>The problem is that I am running <a href="http://dustint.com/post/267/xbmcbuntu-ubuntu-10-04-howto" title="XBMCbuntu Ubuntu 10.04 Howto">XMBC-live on Ubuntu 10.04 Lucid</a> and the Eden xbmc-live package requires the uxlaunch package which is only available in newer versions of Ubuntu. However, it is still possible to get a working xbmc-live setup by manually configuring the system startup. </p>
<p><em>NOTICE: This guide describes how I was able to upgrade my existing Ubuntu 10.04 XMBC-live system to work with Eden nightlies. I have no idea if this process works on fresh installs or different versions of Ubuntu. If you are running Ubuntu 10.04, I would recommend installing the stable version of XBMC-live prior to attempting this guide.</em></p>
<p>First, add the XBMC nightly PPA. The official PPA is provided by Team-XBMC and can be found here: <a href="https://launchpad.net/~team-xbmc/+archive/unstable">ppa:team-xbmc/unstable</a>.<br />
However, at time of writing, the official PPA was having some problems with the build servers, so I ended up using a ppa recommended on <a href="http://www.xbmcfreak.nl/en/oneiric-and-natty-repos-by-nathan-rennie-waldock/">XBMCFreak</a> located here: <a href="https://launchpad.net/~nathan-renniewaldock/+archive/xbmc-nightly/+index?field.series_filter=lucid">ppa:nathan-renniewaldock/xbmc-nightly</a>. </p>
<p>The first step is to install the new PPA and update your sources.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> add-apt-repository ppa:nathan-renniewaldock<span style="color: #000000; font-weight: bold;">/</span>xbmc-nightly
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> update</pre></div></div>

<p>Next, upgrade the xbmc packages:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> upgrade xbmc xbmc-bin</pre></div></div>

<p>During this process, some of the old xbmc packages will be removed, including xbmc-data and xbmc-standalone.</p>
<p>Now we should have the new version of xbmc installed, however, when we boot the system, X will not start automatically and we will be left with a login prompt. </p>
<p>The final step is to edit the startup script. This script is located at /etc/init/xbmc-live.conf and probably already exists if you already had a previous version of XMBC-live installed. There is a simple change to make to the script to point it at the new executable. </p>
<p>Open the script:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">nano</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init<span style="color: #000000; font-weight: bold;">/</span>xbmc-live.conf</pre></div></div>

<p>Scroll down to the script section and change the exec from /usr/bin/runXBMC to /usr/bin/xbmc-standalone:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">script
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-i</span> <span style="color: #660033;">-q</span> autostart <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>xbmcliveParams ; <span style="color: #000000; font-weight: bold;">then</span>
                <span style="color: #7a0874; font-weight: bold;">exit</span>
        <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
        <span style="color: #7a0874; font-weight: bold;">exec</span> <span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">su</span> xbmc <span style="color: #660033;">-c</span> <span style="color: #ff0000;">&quot;/usr/bin/startx /etc/X11/Xsession /usr/bin/xbmc-standalone&quot;</span>
end script</pre></div></div>

<p>Restart your system and XMBC should come up. Switch to the confluence skin to see the new features.</p>
<p>Here is the full script for completeness:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># xbmc-live</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># init XBMC environment and starts XBMC in fullscreen (if asked to do so)</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#      Copyright (C) 2005-2008 Team XBMC</span>
<span style="color: #666666; font-style: italic;">#      http://www.xbmc.org</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#  This Program is free software; you can redistribute it and/or modify</span>
<span style="color: #666666; font-style: italic;">#  it under the terms of the GNU General Public License as published by</span>
<span style="color: #666666; font-style: italic;">#  the Free Software Foundation; either version 2, or (at your option)</span>
<span style="color: #666666; font-style: italic;">#  any later version.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#  This Program is distributed in the hope that it will be useful,</span>
<span style="color: #666666; font-style: italic;">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<span style="color: #666666; font-style: italic;">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
<span style="color: #666666; font-style: italic;">#  GNU General Public License for more details.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#  You should have received a copy of the GNU General Public License</span>
<span style="color: #666666; font-style: italic;">#  along with XBMC; see the file COPYING.  If not, write to</span>
<span style="color: #666666; font-style: italic;">#  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.</span>
<span style="color: #666666; font-style: italic;">#  http://www.gnu.org/copyleft/gpl.html</span>
&nbsp;
description     <span style="color: #ff0000;">&quot;XBMCLive&quot;</span>
author          <span style="color: #ff0000;">&quot;Luigi Capriotti&quot;</span>
&nbsp;
start on <span style="color: #7a0874; font-weight: bold;">&#40;</span>filesystem and stopped udevtrigger<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
stop on runlevel <span style="color: #7a0874; font-weight: bold;">&#91;</span>06<span style="color: #7a0874; font-weight: bold;">&#93;</span>
&nbsp;
emits starting-x
&nbsp;
pre-start script
	get_opt<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
		<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;$@&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;=&quot;</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">2</span>
	<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
	<span style="color: #c20cb9; font-weight: bold;">clear</span> <span style="color: #000000; font-weight: bold;">&gt;/</span>dev<span style="color: #000000; font-weight: bold;">/</span>tty7 <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #c20cb9; font-weight: bold;">true</span>
&nbsp;
	<span style="color: #007800;">CMDLINE</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>proc<span style="color: #000000; font-weight: bold;">/</span>cmdline<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">#Process command line options</span>
	<span style="color: #007800;">XBMC_PARAMS</span>=<span style="color: #ff0000;">&quot;&quot;</span>
	<span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #800000;">${CMDLINE}</span>; <span style="color: #000000; font-weight: bold;">do</span>
		<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${i}</span>&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
		xbmc\=<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
		      <span style="color: #007800;">XBMC_PARAMS</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span>get_opt <span style="color: #007800;">$i</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
		      <span style="color: #000000; font-weight: bold;">;;</span>
		<span style="color: #000000; font-weight: bold;">esac</span>
	<span style="color: #000000; font-weight: bold;">done</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$XBMC_PARAMS</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>xbmcliveParams
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;boot=live&quot;</span> <span style="color: #000000; font-weight: bold;">/</span>proc<span style="color: #000000; font-weight: bold;">/</span>cmdline ; <span style="color: #000000; font-weight: bold;">then</span>
		<span style="color: #666666; font-style: italic;"># Relies on init scripts to mount boot device on a specified directory</span>
		<span style="color: #007800;">BOOTMEDIAMOUNTPOINT</span>=<span style="color: #ff0000;">&quot;/live/image&quot;</span>
	<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
	<span style="color: #007800;">BOOTHOOKSDIRECTORY</span>=<span style="color: #ff0000;">&quot;/etc/xbmc&quot;</span>
&nbsp;
	<span style="color: #007800;">xbmcUser</span>=xbmc
	<span style="color: #666666; font-style: italic;"># Read configuration variable file if it is present</span>
	<span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-r</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>default<span style="color: #000000; font-weight: bold;">/</span>xbmc-live <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> . <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>default<span style="color: #000000; font-weight: bold;">/</span>xbmc-live
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #c20cb9; font-weight: bold;">getent</span> <span style="color: #c20cb9; font-weight: bold;">passwd</span> <span style="color: #007800;">$xbmcUser</span> <span style="color: #000000; font-weight: bold;">&gt;/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null; <span style="color: #000000; font-weight: bold;">then</span>
		<span style="color: #007800;">xbmcUser</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">getent</span> <span style="color: #c20cb9; font-weight: bold;">passwd</span> <span style="color: #000000;">1000</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'s/\:.*//'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
	<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
	<span style="color: #666666; font-style: italic;"># Executes pre-hooks (if any) in the System &quot;Hooks&quot; directory</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-d</span> <span style="color: #007800;">$BOOTHOOKSDIRECTORY</span><span style="color: #000000; font-weight: bold;">/</span>live.d <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
	  <span style="color: #000000; font-weight: bold;">for</span> hook <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #007800;">$BOOTHOOKSDIRECTORY</span><span style="color: #000000; font-weight: bold;">/</span>live.d <span style="color: #660033;">-type</span> f <span style="color: #660033;">-perm</span> <span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">u</span>=x,<span style="color: #007800;">g</span>=x,<span style="color: #007800;">o</span>=x <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sort</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
	  <span style="color: #000000; font-weight: bold;">do</span>
	        <span style="color: #007800;">$hook</span> <span style="color: #007800;">$BOOTMEDIAMOUNTPOINT</span> <span style="color: #007800;">$XBMC_PARAMS</span>  <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #c20cb9; font-weight: bold;">true</span>
	  <span style="color: #000000; font-weight: bold;">done</span>
	<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
	<span style="color: #666666; font-style: italic;"># Executes pre-hooks (if any) in the user &quot;Hooks&quot; directory</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-d</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$xbmcUser</span><span style="color: #000000; font-weight: bold;">/</span>.xbmc<span style="color: #000000; font-weight: bold;">/</span>live.d <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
	  <span style="color: #000000; font-weight: bold;">for</span> hook <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$xbmcUser</span><span style="color: #000000; font-weight: bold;">/</span>.xbmc<span style="color: #000000; font-weight: bold;">/</span>live.d <span style="color: #660033;">-type</span> f <span style="color: #660033;">-perm</span> <span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">u</span>=x,<span style="color: #007800;">g</span>=x,<span style="color: #007800;">o</span>=x <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sort</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
	  <span style="color: #000000; font-weight: bold;">do</span>
	        <span style="color: #007800;">$hook</span> <span style="color: #007800;">$BOOTMEDIAMOUNTPOINT</span> <span style="color: #007800;">$XBMC_PARAMS</span>  <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #c20cb9; font-weight: bold;">true</span>
	  <span style="color: #000000; font-weight: bold;">done</span>
	<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$xbmcUser</span><span style="color: #000000; font-weight: bold;">/</span>.xsession <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span>
		<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$xbmcUser</span><span style="color: #000000; font-weight: bold;">/</span>.xsession
	<span style="color: #000000; font-weight: bold;">fi</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>noRestartXBMC <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span>
		<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>noRestartXBMC
	<span style="color: #000000; font-weight: bold;">fi</span>
end script
&nbsp;
script
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-i</span> <span style="color: #660033;">-q</span> autostart <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>xbmcliveParams ; <span style="color: #000000; font-weight: bold;">then</span>
		<span style="color: #7a0874; font-weight: bold;">exit</span>
	<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">exec</span> <span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">su</span> xbmc <span style="color: #660033;">-c</span> <span style="color: #ff0000;">&quot;/usr/bin/startx /etc/X11/Xsession /usr/bin/xbmc-standalone&quot;</span>
end script
&nbsp;
pre-stop script
	<span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>noRestartXBMC
	<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>xbmcliveParams
&nbsp;
	<span style="color: #666666; font-style: italic;"># Clean up the console before we switch to it, to avoid text flicker</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-x</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>tput <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span>
		tput <span style="color: #660033;">-Tlinux</span> reset <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>tty1 <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #c20cb9; font-weight: bold;">true</span>
		tput <span style="color: #660033;">-Tlinux</span> reset <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>tty8 <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #c20cb9; font-weight: bold;">true</span>
	<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
	<span style="color: #666666; font-style: italic;"># Clear VT 1 &amp; 8 of any console messages</span>
	<span style="color: #c20cb9; font-weight: bold;">clear</span> <span style="color: #000000; font-weight: bold;">&gt;/</span>dev<span style="color: #000000; font-weight: bold;">/</span>tty1 <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #c20cb9; font-weight: bold;">true</span>
	<span style="color: #c20cb9; font-weight: bold;">clear</span> <span style="color: #000000; font-weight: bold;">&gt;/</span>dev<span style="color: #000000; font-weight: bold;">/</span>tty8 <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #c20cb9; font-weight: bold;">true</span>
end script</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://dustint.com/post/427/pre-eden-xbmc-live-on-ubuntu-10.04-lucid/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XBMCbuntu ATI Remote Wonder Howto</title>
		<link>http://dustint.com/post/399/xbmcbuntu-ati-remote-wonder-howto</link>
		<comments>http://dustint.com/post/399/xbmcbuntu-ati-remote-wonder-howto#comments</comments>
		<pubDate>Wed, 07 Sep 2011 16:00:10 +0000</pubDate>
		<dc:creator>Dustin</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[lirc]]></category>
		<category><![CDATA[Lircmap]]></category>
		<category><![CDATA[Remote]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[XBMC]]></category>

		<guid isPermaLink="false">http://dustint.com/?p=399</guid>
		<description><![CDATA[I recently re-discovered my ATI Remote Wonder and decided to get it working under my Ubuntu Linux XBMC install. First, install lirc. I selected the option to use the &#8220;ATI/NVidia/X10 I II RF Remote&#8221; with the kernel (Not userspace) driver, with no transmitter. sudo apt-get install lirc My /etc/lirc/lirc.conf file looks like: include &#34;/usr/share/lirc/extras/more_remotes/atiusb/lircd.conf.atiusb&#34; My [...]]]></description>
			<content:encoded><![CDATA[<p>I recently re-discovered my ATI Remote Wonder and decided to get it working under my Ubuntu Linux XBMC install.</p>
<p>First, install <a href="http://www.lirc.org/">lirc</a>. I selected the option to use the &#8220;ATI/NVidia/X10 I II RF Remote&#8221; with the kernel (Not userspace) driver, with no transmitter.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> lirc</pre></div></div>

<p>My /etc/lirc/lirc.conf file looks like:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">include <span style="color: #ff0000;">&quot;/usr/share/lirc/extras/more_remotes/atiusb/lircd.conf.atiusb&quot;</span></pre></div></div>

<p>My /etc/lirc/hardware.conf was generated automatically by debconf during the lirc install. However, for reference it is:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># /etc/lirc/hardware.conf</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#Chosen Remote Control</span>
<span style="color: #007800;">REMOTE</span>=<span style="color: #ff0000;">&quot;ATI/NVidia/X10 I REMOTE=&quot;</span>None<span style="color: #ff0000;">&quot; II RF Remote&quot;</span>
<span style="color: #007800;">REMOTE_MODULES</span>=<span style="color: #ff0000;">&quot;lirc_dev lirc_atiusb&quot;</span>
<span style="color: #007800;">REMOTE_DRIVER</span>=<span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #007800;">REMOTE_DEVICE</span>=<span style="color: #ff0000;">&quot;/dev/lirc0&quot;</span>
<span style="color: #007800;">REMOTE_SOCKET</span>=<span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #007800;">REMOTE_LIRCD_CONF</span>=<span style="color: #ff0000;">&quot;atiusb/lircd.conf.atiusb&quot;</span>
<span style="color: #007800;">REMOTE_LIRCD_ARGS</span>=<span style="color: #ff0000;">&quot;&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Chosen IR Transmitter</span>
<span style="color: #007800;">TRANSMITTER</span>=<span style="color: #ff0000;">&quot;None&quot;</span>
<span style="color: #007800;">TRANSMITTER_MODULES</span>=<span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #007800;">TRANSMITTER_DRIVER</span>=<span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #007800;">TRANSMITTER_DEVICE</span>=<span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #007800;">TRANSMITTER_SOCKET</span>=<span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #007800;">TRANSMITTER_LIRCD_CONF</span>=<span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #007800;">TRANSMITTER_LIRCD_ARGS</span>=<span style="color: #ff0000;">&quot;&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Enable lircd</span>
<span style="color: #007800;">START_LIRCD</span>=<span style="color: #ff0000;">&quot;true&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Don't start lircmd even if there seems to be a good config file</span>
<span style="color: #007800;">START_LIRCMD</span>=<span style="color: #ff0000;">&quot;false&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Try to load appropriate kernel modules</span>
<span style="color: #007800;">LOAD_MODULES</span>=<span style="color: #ff0000;">&quot;true&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Default configuration files for your hardware if any</span>
<span style="color: #007800;">LIRCMD_CONF</span>=<span style="color: #ff0000;">&quot;&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Forcing noninteractive reconfiguration</span>
<span style="color: #666666; font-style: italic;">#If lirc is to be reconfigured by an external application</span>
<span style="color: #666666; font-style: italic;">#that doesn't have a debconf frontend available, the noninteractive</span>
<span style="color: #666666; font-style: italic;">#frontend can be invoked and set to parse REMOTE and TRANSMITTER</span>
<span style="color: #666666; font-style: italic;">#It will then populate all other variables without any user input</span>
<span style="color: #666666; font-style: italic;">#If you would like to configure lirc via standard methods, be sure</span>
<span style="color: #666666; font-style: italic;">#to leave this set to &quot;false&quot;</span>
<span style="color: #007800;">FORCE_NONINTERACTIVE_RECONFIGURATION</span>=<span style="color: #ff0000;">&quot;false&quot;</span></pre></div></div>

<p>Restart the lirc daemon and run irw and ensure there is output produced:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>lirc restart
<span style="color: #666666; font-style: italic;"># * Starting remote control daemon(s) : LIRC</span>
irw
<span style="color: #666666; font-style: italic;"># 000000144b760000 00 mouse-right_down SAPPHIRE_ATIUSB_5000023600</span>
<span style="color: #666666; font-style: italic;"># 0000001446710000 00 mouse-right SAPPHIRE_ATIUSB_5000023600</span></pre></div></div>

<p>Copy lirc &amp; keymap configuration files into the user XBMC folder (If they do not exist).</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#copy Lirc configuration file</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>.xbmc<span style="color: #000000; font-weight: bold;">/</span>userdata
<span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>xbmc<span style="color: #000000; font-weight: bold;">/</span>system<span style="color: #000000; font-weight: bold;">/</span>Lircmap.xml .
&nbsp;
<span style="color: #666666; font-style: italic;">#copy remote.xml keymap</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>.xbmc<span style="color: #000000; font-weight: bold;">/</span>userdata<span style="color: #000000; font-weight: bold;">/</span>keymaps<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>xbmc<span style="color: #000000; font-weight: bold;">/</span>system<span style="color: #000000; font-weight: bold;">/</span>keymaps<span style="color: #000000; font-weight: bold;">/</span>remote.xml .</pre></div></div>

<p>Edit the XBMC LIRC Configuration File (Lircmap.xml) to contain the following key mappings, ensuring that the device matches the device output by irw.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;lircmap<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remote</span> <span style="color: #000066;">device</span>=<span style="color: #ff0000;">&quot;SAPPHIRE_ATIUSB_5000023600&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;play<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>play<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/play<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pause<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>pause<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pause<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;stop<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>stop<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/stop<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;forward<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>forward<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/forward<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reverse<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>rewind<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reverse<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;left<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>left<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/left<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;left<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>mouse-left<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/left<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;right<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>right<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/right<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;right<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>mouse-right<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/right<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;up<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>up<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/up<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;up<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>mouse-up<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/up<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;down<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>down<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/down<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;down<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>mouse-down<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/down<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;select<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ok<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/select<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;select<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>mouse_button_left<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/select<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pageplus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>chan-up<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pageplus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pageminus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>chan-down<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pageminus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;back<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>mouse_button_right<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/back<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;menu<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>dvd-root_menu<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/menu<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>a<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;info<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>launch_setup<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/info<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;skipplus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Skip<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/skipplus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;skipminus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Replay<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/skipminus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;display<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>max-window<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/display<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;start<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Start<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/start<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;record<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>record<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/record<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;volumeplus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>vol-up<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/volumeplus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;volumeminus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>vol-down<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/volumeminus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mute<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>mute<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mute<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;power<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>power<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/power<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;myvideo<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>dvd<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/myvideo<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mymusic<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>media_library<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mymusic<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mypictures<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Pictures<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mypictures<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mytv<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>tv<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mytv<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;one<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/one<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;two<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>2<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/two<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;three<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>3<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/three<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;four<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>4<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/four<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;five<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>5<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/five<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;six<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>6<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/six<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;seven<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>7<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/seven<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;eight<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>8<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/eight<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;nine<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>9<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/nine<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;zero<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/zero<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;star<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Star<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/star<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;hash<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Hash<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/hash<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;clear<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Clear<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/clear<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Enter<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;red<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Red<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/red<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;green<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Green<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/green<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;yellow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Yellow<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/yellow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;blue<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Blue<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/blue<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;teletext<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>c<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/teletext<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/remote<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/lircmap<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Restart XBMC and you should now have ATI Remote support.</p>
<p>I spent considerable effort attempting to get The Lirc Mouse support working. However, I had no success. I found that X would recognize the LIRC mouse, but wouldn&#8217;t find an appropriate driver for it. In the end, I assigned the mouse buttons to the navigation keys via Lircmap.xml.</p>
<p>For the curious I will post the process that I used to get X to the point where it would detect the remote (according to the Xorg log).</p>
<p>The default settings for the lircm daemon wern&#8217;t creating the appropriate /dev/lircm which, I believe, prevents X from locating the mouse, so I had to take an alternative approach using the uinput module. It seems that this method has had limited success with others so perhaps it is a system configuration issue with me.</p>
<p>First I configured my /etc/lirc/lircm.conf file with the following contents (the button presses determined from examining the output of irw):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># To find out how to get a proper configuration file please read:</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#       /usr/share/doc/lirc/README.Debian</span>
PROTOCOL IntelliMouse
ACCELERATOR <span style="color: #000000;">2</span> <span style="color: #000000;">30</span> <span style="color: #000000;">5</span>
ACTIVATE <span style="color: #000000; font-weight: bold;">*</span> ATI
&nbsp;
MOVE_N <span style="color: #000000; font-weight: bold;">*</span> mouse-up
MOVE_S <span style="color: #000000; font-weight: bold;">*</span> mouse-down
MOVE_W <span style="color: #000000; font-weight: bold;">*</span> mouse-left
MOVE_E <span style="color: #000000; font-weight: bold;">*</span> mouse-right
MOVE_NW <span style="color: #000000; font-weight: bold;">*</span> mouse-up-left
MOVE_NE <span style="color: #000000; font-weight: bold;">*</span> mouse-up-right
MOVE_SW <span style="color: #000000; font-weight: bold;">*</span> mouse-down-left
MOVE_SE <span style="color: #000000; font-weight: bold;">*</span> mouse-down-right</pre></div></div>

<p>Next I ensured that the START_LIRCMD value is FALSE in /etc/lirc/hardware.conf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">START_LIRCMD</span>=<span style="color: #ff0000;">&quot;false&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Make sure there isn't a trailing START_LIRCMD in your hardware.conf as there was in mine.</span></pre></div></div>

<p>While experimenting I would load the uinput module manually, then start lircmd by hand &#8211; however, a working implementation would have uinput in /etc/modprobe.d so it loads automatically, and lircmd in something like rc.conf so it runs automatically.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#Make sure lircd is already running (see above)</span>
<span style="color: #666666; font-style: italic;">#load the module and start lircmd for testing:</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> modprobe uinput
<span style="color: #c20cb9; font-weight: bold;">sudo</span> lircmd <span style="color: #660033;">--uinput</span></pre></div></div>

<p>At this point you&#8217;re able to restart X and have it detect the lircm mouse. However, I never got it to properly load the drivers. If anyone knows what I&#8217;m missing it would be great if you could post in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://dustint.com/post/399/xbmcbuntu-ati-remote-wonder-howto/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Enable OpenVPN Management Interface on ClearOS</title>
		<link>http://dustint.com/post/393/enable-openvpn-management-interface-on-clearos</link>
		<comments>http://dustint.com/post/393/enable-openvpn-management-interface-on-clearos#comments</comments>
		<pubDate>Tue, 30 Aug 2011 00:05:31 +0000</pubDate>
		<dc:creator>Dustin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ClearOS]]></category>
		<category><![CDATA[openvpn]]></category>

		<guid isPermaLink="false">http://dustint.com/?p=393</guid>
		<description><![CDATA[The OpenVPN config file structure on ClearOS is non-standard (For example there is no server.conf), so I was unsure where to put the directive. However, as it turns out enabling the Management console is as simple as adding the following to /etc/openvpn/clients.conf: management localhost 7505 The port is arbitrary: any unused port will do. Localhost [...]]]></description>
			<content:encoded><![CDATA[<p>The OpenVPN config file structure on ClearOS is non-standard (For example there is no server.conf), so I was unsure where to put the directive. However, as it turns out enabling the Management console is as simple as adding the following to /etc/openvpn/clients.conf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">management localhost <span style="color: #000000;">7505</span></pre></div></div>

<p>The port is arbitrary: any unused port will do. Localhost restricts connections to the local machine, which is smart if you do not have a password to secure the connection.</p>
<p>To access the management interface using telenet, issue the following from the clearOS box:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">telnet localhost <span style="color: #000000;">7505</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#When the prompt comes up, issue a command such as &quot;status&quot;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://dustint.com/post/393/enable-openvpn-management-interface-on-clearos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Doctrine And ORM Designer</title>
		<link>http://dustint.com/post/382/doctrine-and-orm-designer</link>
		<comments>http://dustint.com/post/382/doctrine-and-orm-designer#comments</comments>
		<pubDate>Mon, 18 Jul 2011 04:11:52 +0000</pubDate>
		<dc:creator>Dustin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[Orm]]></category>
		<category><![CDATA[ORM Designer]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://dustint.com/?p=382</guid>
		<description><![CDATA[Edit: Shortly after positing this entry, Inventic contacted me with some responses. These are in italics. I&#8217;ve been using Doctrine in conjunction with the Zend Framework for years. Although it is an excellent ORM, writing yaml by hand is a tedious and error-prone process. Furthermore, it can be difficult to visualize a large database from [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Edit:</strong> Shortly after positing this entry, Inventic contacted me with some responses. These are in <em>italics</em>.</p>
<p>I&#8217;ve been using <a href="http://www.doctrine-project.org/">Doctrine</a> in conjunction with the <a href="http://framework.zend.com/">Zend Framework</a> for years. Although it is an excellent ORM, writing yaml by hand is a tedious and error-prone process. Furthermore, it can be difficult to visualize a large database from a series of text files, so I find myself maintaining a <a href="http://wb.mysql.com/">MySQL Workbench</a> diagram in addition to the textual database representation.</p>
<p><a href="http://www.orm-designer.com/">ORM Designer</a> promises to change all that. It brings a visual database editor for Doctrine 1 and 2 that reduces effort, mistakes and increases productivity. Migration from my existing workflow was a snap due to the import functionality: I had the option to import both my yaml database definitions as well as my MySQL workbench files. The ability to break up the data-model into individual modules keeps the code clean and organized, and the export functionality, in conjunction to the external tools integrate yaml generation and Doctrine CLI operations directly into ORM Designer&#8217;s interface.</p>
<p>ORM Designer Features for Doctrine Users:</p>
<ul>
<li>Behaviour Support</li>
<ul>
<li>Versionable</li>
<li>Timestampable</li>
<li>Sluggable</li>
<li>I18n</li>
<li>NestedSet</li>
<li>Searchable</li>
<li>Geographical</li>
<li>SoftDelete</li>
<li>EventLoggable</li>
<li>GoogleI18n</li>
<li>Sortable</li>
<li>Blameable</li>
<li>Taggable</li>
</ul>
<li>Inheritance Support</li>
<li>Many-to-one, Many-to-many relations</li>
<li>Index support</li>
<li>yaml Generation</li>
</ul>
<p>Extendability:</p>
<ul>
<li>Creation of new ORM Properties &amp; data-types</li>
<li>Creation of new behaviours</li>
</ul>
<h2>Support and Releases</h2>
<p>The folks at Inventic crank out a new version of ORM Designer every few months. There were around 16 releases in 2010, but development seems to have slowed slightly with only three releases to date in 2011. On the whole, with both bug fixes and feature updates, you can still expect good value for the 1 year upgrade maintenance that is included in the purchase price.<br />
<em>ORM Designer is currently very stable and as such doesn&#8217;t require many bug fixes. The team is currently putting most of their energy into ORM Designer 2 which is slated for a public beta around the end of 2011. However, there are 1.x beta releases available at <a href="http://www.orm-designer.com/beta">http://www.orm-designer.com/beta</a> which contain new features and bug fixes as they become available.</em></p>
<p>The forums are a little thin, which may be simply because the software is relatively new and is still being discovered. However, it appears that user posts commonly receive a same-day reply from the developers. Users can really take advantage of the small community and direct access to developers to suggest features and shape future directions of the software.</p>
<h2>My Wish List</h2>
<p>Although ORM Designer supports modules I would like to see this area further developed. For example:</p>
<p>Say you have a common user module stored in a common SVN location (Eg: SVN External) that you would like to use with every project, the ability to link the common module, add relations / properties (without affecting the original module) and export the module relative to the current project&#8217;s path would be excellent additions to ORM Designer&#8217;s feature set.<br />
<em>Inventic suggests pulling in modules directly into the application (at the appropriate path) using SVN Externals rather than having a more libary-like directory structure</em></p>
<h2>Conclusion</h2>
<p>ORM Designer provides excellent value for anyone who uses either Doctrine or Propel. The ability to visually edit data models for these ORMs brings them on par with the nHibernate framework in terms of usability.</p>
<p>ORM Designer also supports the Doctrine2 and Propel ORM&#8217;s as well as the CakePHP and Symfony frameworks.</p>
<p>ORM Designer is designed for windows, however it can run under WINE for Linux/OSX support. However, ORM Designer 2 is currently under development and makes use of QT rather than MFC which will bring native support to the other operating systems.</p>
]]></content:encoded>
			<wfw:commentRss>http://dustint.com/post/382/doctrine-and-orm-designer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jenkins CI Slave on Ubuntu 10.04 Lucid LTS Howto</title>
		<link>http://dustint.com/post/365/jenkins-ci-slave-on-ubuntu-10.04-lucid-lts-howto</link>
		<comments>http://dustint.com/post/365/jenkins-ci-slave-on-ubuntu-10.04-lucid-lts-howto#comments</comments>
		<pubDate>Sat, 18 Jun 2011 18:37:46 +0000</pubDate>
		<dc:creator>Dustin</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[jenkins]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://dustint.com/?p=365</guid>
		<description><![CDATA[Install Sun Java: sudo add-apt-repository ppa:sun-java-community-team/sun-java6 sudo apt-get update sudo apt-get install sun-java6-jdk Ensure a SSH server is installed sudo apt-get install openssh-server Create a new Jenkins user and create the /var/jenkins directory &#8211; this will be our working directory. sudo useradd -m jenkins sudo mkdir /var/jenkins sudo chown jenkins:jenkins /var/jenkins Generate a public / [...]]]></description>
			<content:encoded><![CDATA[<p>Install Sun Java:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> add-apt-repository ppa:sun-java-community-team<span style="color: #000000; font-weight: bold;">/</span>sun-java6
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> update
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> sun-java6-jdk</pre></div></div>

<p>Ensure a SSH server is installed</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> openssh-server</pre></div></div>

<p>Create a new Jenkins user and create the /var/jenkins directory &#8211; this will be our working directory.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> useradd <span style="color: #660033;">-m</span> jenkins
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>jenkins
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chown</span> jenkins:jenkins <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>jenkins</pre></div></div>

<p>Generate a public / private keypair and set the public key as an allowed host</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh-keygen</span>
<span style="color: #666666; font-style: italic;">#Enter file in which to save the key (/root/.ssh/id_rsa):</span>
<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>jenkins<span style="color: #000000; font-weight: bold;">/</span>private.key
<span style="color: #666666; font-style: italic;">#Do not enter a Passphrase</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#You should now have two files in /var/jenkins: a private.key and a private.key.pub, we want to cat the public key into our authorized keys file</span>
<span style="color: #c20cb9; font-weight: bold;">su</span> jenkins
<span style="color: #c20cb9; font-weight: bold;">cat</span> private.key.pub <span style="color: #000000; font-weight: bold;">&gt;</span> ~<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>authorized_keys</pre></div></div>

<p>The private key must be transfered to an accessible directory on the primary build server. Eg: C:\private.key or a more suitably protected location.</p>
<p>Login to your Jenkins install, select the plugin manager and install the SSH Slaves plugin. After restarting Jenkins to complete the install, click on <em>Manage Jenkins</em> followed by <em>Manage Nodes</em> and create a new dumb node with a name of your liking.</p>
<p>Configuration parameters:</p>
<p><strong>Remote FS Root:</strong> /var/jenkins<br />
<strong>Launch Method:</strong> Launch slave agents on Unix machines via SSH</p>
<p style="padding-left: 30px;"><strong>Host:</strong> &lt;Ubuntu Hostname&gt;<br />
<strong>Username: </strong>jenkins<br />
<strong>Private key file: </strong>File of the private key (eg: C:\private.key)</p>
<p>When you press save, the slave should attempt to start automatically. If the start fails, check the log provided by jenkins and the server log.</p>
]]></content:encoded>
			<wfw:commentRss>http://dustint.com/post/365/jenkins-ci-slave-on-ubuntu-10.04-lucid-lts-howto/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remote Debugging With Firebug and Cometd</title>
		<link>http://dustint.com/post/350/remote-debugging-with-firebug-and-cometd</link>
		<comments>http://dustint.com/post/350/remote-debugging-with-firebug-and-cometd#comments</comments>
		<pubDate>Sat, 04 Jun 2011 04:56:51 +0000</pubDate>
		<dc:creator>Dustin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Mobile Development]]></category>
		<category><![CDATA[Remote Debugging]]></category>
		<category><![CDATA[webworks]]></category>

		<guid isPermaLink="false">http://dustint.com/?p=350</guid>
		<description><![CDATA[While experimenting with mobile development on the Blackberry Webworks Platform I found that it was extremely difficult to get any debugging information out of the device simulator to help debug javascript errors. The Webworks Eclipsed-based IDE does provide limited debugging support; however, I found the OS5 device support for javascript to be extremely lacking (Especially [...]]]></description>
			<content:encoded><![CDATA[<p>While experimenting with mobile development on the Blackberry Webworks Platform I found that it was extremely difficult to get any debugging information out of the device simulator to help debug javascript errors.</p>
<p>The Webworks Eclipsed-based IDE does provide limited debugging support; however, I found the OS5 device support for javascript to be extremely lacking (Especially while using the Dojo library) and Webworks is currently unable to debug OS6 devices.</p>
<p>At a bare minimum I wanted my familiar <a href="http://getfirebug.com/">firebug</a> console.* calls to show up somewhere I would be able to see them. Although this is far short of a full remote debugging solution (such as the <a href="http://getfirebug.com/wiki/index.php/Crossfire">Firebug Crossfire Project</a>), it would at least allow me to see what is going on under the hood.</p>
<h3>Implementation Overview:</h3>
<ol>
<li>A Small javascript file is included on the mobile page. This file adds additional console methods and, optionally replaces the default console.* debugging methods</li>
<li>A <a href="http://cometd.org/">CometD</a> provides communication between the mobile page and the page that firebug is listening on</li>
<li>A special listening page is setup where the debugging events coming over the cometd server are passed onto firebug</li>
</ol>
<h3>Prerequisites</h3>
<p>For my development environment I am using <a href="http://www.eclipse.org/downloads/">Eclipse 3.6</a> with the <a href="http://maven.apache.org/">Maven </a>tooling <a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html">installed</a>. Maven is used so the CometD API can be easily utilized. For more information about building CometD applications with Maven please see the <a href="http://cometd.org/documentation/howtos/primer">CometD Primer</a>. Maven is also nice as it will download the required dependencies (such as the Jetty Server).</p>
<h3>Getting &amp; Compiling the Source</h3>
<ol>
<li>Please clone my GitHub Repository to obtain the source code. This can be found at <a href="https://github.com/51systems/Remote-Console">https://github.com/51systems/Remote-Console</a></li>
<li>Import the project into eclipse
<ol>
<li>When you are cloning the repo it is most convenient to clone it into your eclipse workspace directory, this makes importing into eclipse easiest</li>
<li>In Eclipse Choose <em>File -&gt; Import</em></li>
<li>Scroll down and roll open the Maven import source</li>
<li>Choose Existing Maven Projects</li>
<li>Locate the cloned repository &amp; Select the pom.xml file for import</li>
</ol>
</li>
<li>Maven will now download dependencies and attempt to build your project. This may take time so be patient</li>
</ol>
<p>At this point, you should have a built remote-console project in your Eclipse workspace. You will find that there are two separate source directories: One contains the java source and the other contains HTML &amp; Javascript.</p>
<p>The java source folder is uneciting: it contains the bare-minimum vanilla implementation necessary for the CometD server to pass messages between the mobile device and the firebug page.</p>
<p>The HTML / Javascript source folder contains some example pages + the remote-console.js file which, together, provide the remote-debugging functionality.</p>
<h3>Running the Server</h3>
<p>To run the Jetty server for the first time:</p>
<ol>
<li>Create a new Maven Build Run-Configuration
<ol>
<li>Can be done by right clicking on the remote-console project and choosing <em>Run As -&gt; Run Configurations</em> or by rolling out the run icon<em><br />
</em></li>
<li>Ensure the base directory is set to the correct workspace directory. Mine is <em>${workspace_loc:/remote-console}</em></li>
<li>For the Goals text box enter &#8220;jetty:run&#8221; this will start the jetty server</li>
</ol>
</li>
<li>Start the Jetty server by clicking Run in the configuration dialog</li>
<li>You should see console output in the Eclipse window. Inspect this output to catch potential problems</li>
<li>Visit <a href="http://localhost:8080/remote-console/">http://localhost:8080/remote-console/</a> to view the remote-console application.</li>
</ol>
<h3>Remote Debugging</h3>
<p>When you visit the remote-console application link you will be presented with the remote console connection page. This page allows you to connect to a remote console on a specific channel and have the debug messages appear in a firebug window.</p>
<p>There are two types of demo pages. The default one uses <em>dojox.json.ref</em> to serialize objects. This allows for the serialization of javascript objects that have circular references. The second demo page serializes objects using the default json serialization &#8211; be careful with those circular references with this one.</p>
<p>To Use remote debugging for the first time:</p>
<ol>
<li>Start the firebug listener:
<ol>
<li>Visit the Remote console connection page with firefox</li>
<li>Open The firebug console</li>
<li>Click the connect button to connect to the default local cometd server</li>
<li>You should start seeing the long-polling entries appearing in the firebug console</li>
</ol>
</li>
<li>Visit one of the demo pages, either in a new firefox window, or using another browser
<ol>
<li>Use the console.log textbox and button to send a console.log message to your listening firebug console.</li>
<li>You should see the logged textbox contents appear almost immediately in the firebug console log</li>
</ol>
</li>
<li>Next steps:
<ol>
<li>On one of the demo pages, try a more complex debug expression, such as

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;test&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>foo<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;bar&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

</li>
<li>You should see the message and object quickly appear in your listening firebug console.<br />
If you are using the dojox.json serialization you may see additional fields on the object when it is displayed in the firebug console.</li>
</ol>
</li>
</ol>
<p>Adding remote debugging to your own pages is as easy as adding the dojo library and the remote-console script tag to the page you wish to debug.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;remote-console.js&quot; data-server=&quot;http://127.0.0.1:8080/remote-console/cometd&quot; data-channel=&quot;demo&quot; data-json-ref=&quot;true&quot;&gt;&lt;/script&gt;</pre></div></div>

<p>Ensure that the src path is set correctly to point to the remote-console.js on the jetty server. Likewise the data-server attribute should point to the server and path running the jetty cometd implementation. Pay attention to the loopback device IP and be sure to change it if you are planning on debugging on another device.</p>
<p>There are several parameters that you are able to pass to the remote-console.js script via HTML attributes. Please view the ReadMe in the <a href="https://github.com/51systems/Remote-Console">Git Repo</a> or the source code for a complete list.</p>
]]></content:encoded>
			<wfw:commentRss>http://dustint.com/post/350/remote-debugging-with-firebug-and-cometd/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebWorks Resource Name Not Valid Workaround</title>
		<link>http://dustint.com/post/339/webworks-resource-name-not-valid-workaround</link>
		<comments>http://dustint.com/post/339/webworks-resource-name-not-valid-workaround#comments</comments>
		<pubDate>Sat, 02 Apr 2011 20:02:38 +0000</pubDate>
		<dc:creator>Dustin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[phonegap]]></category>
		<category><![CDATA[webworks]]></category>

		<guid isPermaLink="false">http://dustint.com/?p=339</guid>
		<description><![CDATA[I&#8217;ve been looking at using Phonegap and Dojo for rapid application development on mobile devices. As I have been doing blackberry development for the past year or so I thought that this would be a good platform to start on. However, I almost immediately ran into a problem with the WebWorks packager. The problem is [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking at using <a href="http://www.phonegap.com/">Phonegap</a> and <a href="http://dojotoolkit.org/features/mobile">Dojo</a> for rapid application development on mobile devices. As I have been doing blackberry development for the past year or so I thought that this would be a good platform to start on. However, I almost immediately ran into a problem with the <a href="http://us.blackberry.com/developers/browserdev/">WebWorks</a> packager.</p>
<p>The problem is that the packager will not permit paths with special characters in them &#8211; special characters including the somewhat limiting &#8220;_&#8221; and &#8220;-&#8221;. Instead of packaging the files it would return the error <strong>Invalid widget archive &#8211; resource name is not valid</strong> This is especially a problem with dojo and it commonly uses these conventions for stylesheets and js files.</p>
<p>After Googling, I found that this behaviour was by design. It seems that if you pass a file with a dash in it, the RAPC compiler thinks that it is a command line switch.<br />
See:<br />
<a href="https://www.blackberry.com/jira/browse/WEBAPI-50">https://www.blackberry.com/jira/browse/WEBAPI-50</a><br />
<a href="http://supportforums.blackberry.com/t5/Web-Development/bbwp-quot-resource-name-not-valid-quot/m-p/607222">http://supportforums.blackberry.com/t5/Web-Development/bbwp-quot-resource-name-not-valid-quot/m-p/607222</a><br />
<a href="http://mobijournal.com/common-blackberry-webworks-development-pitfalls-that-can-be-avoided/">http://mobijournal.com/common-blackberry-webworks-development-pitfalls-that-can-be-avoided/</a></p>
<p>Fortunately, RIM has recently open sourced the Webworks API. I knew from my experience with <a href="http://bb-ant-tools.sourceforge.net/">bb-ant-tools</a> that you were able to pass a file containing paths to the files to include in the package, thus circumventing the problem with the command line switches.</p>
<p>The packager now successfully packages <strong>_bad-path.txt</strong>.</p>
<p>To patch your webworks packager, download <a href='http://dustint.com/wp-content/uploads/2011/04/WebWorksPatched.zip'>WebWorksPatched</a> extract it and move the bbwp.jar to your webworks bin folder (Usually C:\Program Files\BlackBerry WebWorks Plug-in Eclipse\plugins\net.rim.browser.tools.wcpc_1.5.1.201010291444-22\wcpc\bin).</p>
<p>For the brave of heart, source code is available on GitHub at <a href="https://github.com/51systems/WebWorks">https://github.com/51systems/WebWorks</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dustint.com/post/339/webworks-resource-name-not-valid-workaround/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

