<?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>if it&#039;s owən &#187; Guide</title>
	<atom:link href="http://owened.net/tag/guide/feed" rel="self" type="application/rss+xml" />
	<link>http://owened.net</link>
	<description>it&#039;s probably awesome</description>
	<lastBuildDate>Fri, 30 Jul 2010 06:04:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>How-To: Create an open-source jukebox</title>
		<link>http://owened.net/2008/12/01/how-to-create-an-open-source-jukebox</link>
		<comments>http://owened.net/2008/12/01/how-to-create-an-open-source-jukebox#comments</comments>
		<pubDate>Sun, 30 Nov 2008 14:18:20 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Open source]]></category>

		<guid isPermaLink="false">http://owened.net/?p=432</guid>
		<description><![CDATA[What: An open-source jukebox. How: Read on! Recently I was tasked with creating a jukebox for a party. You can read all about my thoughts on the matter at the link; this article is to provide with the specifics on what software I used, and why. The Hardware The hardware I chose to use was [...]]]></description>
			<content:encoded><![CDATA[<p><code><b>What</b>: An open-source jukebox.<br />
<b>How</b>: Read on!</code><br />
<a href="http://owened.net/2008/10/27/open-source-jukebox/">Recently I was tasked with creating a jukebox for a party</a>. You can read all about my thoughts on the matter at the link; this article is to provide with the specifics on what software I used, and why.</p>
<ul>
<li>
<h4>The Hardware</h4>
<p>The hardware I chose to use was rather limited in performance, which I think illustrates the efficiency of the software and solution which I designed. Components were as follows:</p>
<ul>
<li><b>CPU:</b> Pentium II 300Mhz</li>
<li><b>RAM:</b> 384Mb SDRAM</li>
<li><b>Motherboard:</b> Intel i440BX-based</li>
<li><b>Video:</b> S3 Virge DX/3D</li>
<li><b>Storage:</b> 4Gb, 5400RPM ATA HDD</li>
<li><b>Sound:</b> Creative Sound Blaster Live! 5.1</li>
</ul>
<p>Obviously, I chose the software based on the known limitations of this hardware. Luckily I had a spare SoundBlaster Live! card, because I don&#8217;t think the system would&#8217;ve been able to reliably handle the music playback and the overheads of the user interface without it. Of course, whatever hardware you plan on using will probably be much faster. I really did pull this box right out of the stone age.
</li>
<li>
<h4>The Operating System</h4>
<p>The operating system I chose in order to optimise performance was of course my favourite Linux operating system: <a href="http://www.archlinux.org/">Arch Linux</a>. With the kernel, modules and all packages being i686-optimized, it was a good starting point for a &#8220;from scratch&#8221; jukebox system. More importantly though is that <a href="http://wiki.archlinux.org/index.php/Official_Arch_Linux_Install_Guide">after installation</a> of the base system, I had a basic, but fully working, command line Linux system at my disposal. This meant there were no unnecessary startup services, configurations and other settings which would have been useless, redundant or otherwise a hinderence to performance on this slow system.</li>
<li>
<h4>The Desktop Environment</h4>
<p>I chose to <a href="http://wiki.archlinux.org/index.php/Xfce">install XFCE</a> as the desktop environment because it is the most lightweight of the &#8216;fully-featured&#8217; environments. I would have liked to use an even lighter option, but of all the <a href="http://en.wikipedia.org/wiki/Desktop_Environment#Examples_of_desktop_environments">specialty and niche options</a> available, I had never used any before, and this build was to be completed in a few hours. So, I chose XFCE which I found behaved no differently to GNOME, but was still relatively responsive despite limited system resources.</p>
<p>To make the GUI look decent, I had to install a few additional packages that are not explicit dependencies of XFCE. They are listed below.</p>
<ul>
<li><b><a href="http://www.archlinux.org/packages/extra/i686/ttf-ms-fonts/">ttf-ms-fonts</a></b> &#8211; the easiest way to make websites look nice is by installing this font package</li>
<li><b><a href="http://www.archlinux.org/packages/extra/i686/midori/">midori</a></b> &#8211; a lightweight, Webkit based browser for GTK+ environments. I chose this over Firefox due to the AJAX-heavy nature of the relaxx player. Webkit is supposedly superior in performance compared to alternatives</li>
</ul>
</li>
<li>
<h4>The Webserver</h4>
<p>Now, you may be wondering why, with such a limited system, I was bothering with so many layers of abstraction between music, player and control. The reason is that none of the music playing applications I investigated (and there were quite a few) offered any functionality near that of a simple party jukebox. So, I had to use a web-based front end for mpd called relaxx, both of which I&#8217;ll talk about soon.</p>
<p>The webserver of choice is <a href="http://wiki.archlinux.org/index.php/Lighttpd">lighttpd</a>; a light weight simple web server, with all the features (and a lot more) required for what I had in mind.</li>
<li>
<h4>The Music Daemon</h4>
<p>Simply put: <a href="http://wiki.archlinux.org/index.php/Mpd">mpd</a>. Or, Music Player Daemon, as it is less commonly known. I chose this system for multiple reasons: first and foremost, its awesome efficiency. With my 80Gb music collection catalogued and at my immediate disposal, mpd uses approximately <i>three megabytes</i> of system memory. Yes, you read that correctly: <i>three. megabytes.</i> If I go ahead and do something silly like, say, add my entire music collection into a single playlist, that number jumps to a staggering (!!!) <i><b>eight</b> megabytes</i>. Yeah, I know. It&#8217;s ridiculous.</p>
<p>Secondly, due to the daemon nature of mpd, you can use any frontend you like. You can use a text-based terminal application, you can use a GTK+, Qt or other, or you can use a web-based application, like relaxx player.</li>
<li>
<h4>The Music Frontend</h4>
<p>This is the party piece &#8212; the piece of the system that everyone gets to see. I chose <a href="http://relaxx.dirk-hoeschen.de/">relaxx player</a> because it had some of the functionality that provides jukebox-like behaviour. Well, kind of. It essentially only had one major feature that made it stand out from a variety of other mpd front-ends: multi-user capability. Essentially, you could lock down certain features of the interface for anonymous users, and require a login for those functions. So, essentially that meant I could specify that anonymous users were only allowed to add songs to the playlist and press play. Meaning you had to log in to delete tracks, stop, pause or rewind, etc.</p>
<p>The <a href="http://relaxx.dirk-hoeschen.de/index.php?StaticPage/Page/id/2">installation</a> of relaxx was straightforward, but I had to install a few extra packages under Arch to make it work properly:</p>
<ul>
<li>Arch wiki: <a href="http://wiki.archlinux.org/index.php/Relaxx">Getting relaxx to work with Arch</a></li>
</ul>
<p>This was the only part of the system which didn&#8217;t quite work out so well. Its functionality was great, but due to the fact that it&#8217;s programmed entirely in AJAX, the old Pentium II powering the computer couldn&#8217;t quite keep up. It was slow to respond and not very nice to use, but it was usable. The music itself never skipped a beat (literally), but the performance of this frontend left something to be desired.
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://owened.net/2008/12/01/how-to-create-an-open-source-jukebox/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How-to: Setup Firefox for use with Sharepoint NTLM Authentication</title>
		<link>http://owened.net/2008/03/31/how-to-setup-firefox-for-use-with-sharepoint-ntlm-authentication</link>
		<comments>http://owened.net/2008/03/31/how-to-setup-firefox-for-use-with-sharepoint-ntlm-authentication#comments</comments>
		<pubDate>Mon, 31 Mar 2008 08:01:31 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Script]]></category>

		<guid isPermaLink="false">http://owened.net/?p=328</guid>
		<description><![CDATA[Preferred Editor: Notepad++ Microsoft VBScript: Language Reference FFDeploy: Automated deployment of Firefox with extensions, themes, and pre-configuration We don&#8217;t have many strict policies regarding installed applications at work; employees have their choice of web browser, for example. When it comes to using our Sharepoint intranet site, this poses a problem. By default Firefox will prompt [...]]]></description>
			<content:encoded><![CDATA[<p><code>Preferred Editor: <a href="http://notepad-plus.sourceforge.net/">Notepad++</a><br />
Microsoft VBScript: <a href="http://msdn2.microsoft.com/en-us/library/d1wf56tt(VS.85).aspx">Language Reference</a><br />
FFDeploy: <a href="http://home.comcast.net/~ifrit/FFDeploy.html">Automated deployment of Firefox with extensions, themes, and pre-configuration</a><br />
</code><br />
We don&#8217;t have many strict policies regarding installed applications at work; employees have their choice of web browser, for example. When it comes to using our Sharepoint intranet site, this poses a problem. By default Firefox will prompt the user for a username and password when attempting to login to the site, whereas Internet Explorer will automatically use built-in NTLM authentication to authenticate with the site using Active Directory.</p>
<p>Fortunately, Firefox can be setup to do this, however it does require some tweaking of sorts. In the about:config page, you&#8217;ll find an option called <i>network.automatic-ntlm-auth.trusted-uris</i> which will enable Firefox to use Windows&#8217; built-in NTLM authentication; allowing users to simply open the Sharepoint site without hassle. Unfortunately, having to set this manually on all the computers on the network that were already using Firefox, plus the additional worry of setting this manually on any new systems or users who decide to use Firefox seemed like an annoying task.</p>
<p>I Googled for a solution, but unfortunately there weren&#8217;t any that immediately performed the actions I required. Fortunately though, there does exist a nice utility by the name of <a href="http://home.comcast.net/~ifrit/FFDeploy.html">FFDeploy</a> which I was able to take parts of &#8212; specifically, the VBScript &#8212; in order to make possible what I had envisaged.</p>
<p>Essentially, all my script does is check for the existence of a Firefox directory buried within Application Data of the user logging on; if this exists, we copy over a special user preferences file, <i>user.js</i> which overrides or appends to same-values set in the global <i>prefs.js</i> (<a href="http://www.mozilla.org/catalog/end-user/customizing/briefprefs.html">reference</a>).</p>
<p>The bulk of the script I will keep seperate, as it can be had by downloading <a href="http://home.comcast.net/~ifrit/FFDeploy.html">FFDeploy</a>. My simple use is as follows:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">&#8216;script to setup FireFox on users pc&#8217;s with SharePoint NTLM auth</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">&#8216;code borrowed from &quot;FFDeploy&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">&#8216;licenced under Mozilla http://www.mozilla.org/MPL/</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">&#8216;first create a FileSystemObject to manipulate files</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">Set</span> FSO = WScript.<span class="kw1">CreateObject</span><span class="br0">&#40;</span><span class="st0">&quot;Scripting.FileSystemObject&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">&#8216;create a shell scripting object</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">Set</span> SHO = WScript.<span class="kw1">CreateObject</span><span class="br0">&#40;</span><span class="st0">&quot;WScript.Shell&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co1">&#8216;some helper variables</span></div>
</li>
<li class="li1">
<div class="de1">AppData = SHO.<span class="me1">ExpandEnvironmentStrings</span><span class="br0">&#40;</span><span class="st0">&quot;%APPDATA%&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">&#8216;check to see if the user actually has Firefox installed &amp; find the users local directory</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">If</span> FSO.<span class="me1">FileExists</span><span class="br0">&#40;</span>AppData + <span class="st0">&quot;\Mozilla\Firefox\profiles.ini&quot;</span><span class="br0">&#41;</span> <span class="kw1">Then</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; FFProfName = GetINIString<span class="br0">&#40;</span><span class="st0">&quot;Profile0&quot;</span>, <span class="st0">&quot;Path&quot;</span>,,AppData + <span class="st0">&quot;\Mozilla\Firefox\profiles.ini&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; FFProfName = <span class="kw1">Right</span><span class="br0">&#40;</span>FFProfName, <span class="kw1">Len</span><span class="br0">&#40;</span>FFProfName<span class="br0">&#41;</span>-<span class="kw1">InStr</span><span class="br0">&#40;</span>FFProfName,<span class="st0">&quot;/&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; FFProfPath = AppData + <span class="st0">&quot;\Mozilla\Firefox\Profiles\&quot;</span> + FFProfName</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">&#8216;now copy our user.js preferences</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; FSO.<span class="me1">CopyFile</span> <span class="st0">&quot;G:\IT\clients\user.js&quot;</span>, FFProfPath + <span class="st0">&quot;\&quot;</span>, <span class="kw1">true</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">End</span> <span class="kw1">If</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co1">&#8216;user doesn&#8217;t have Firefox installed, do nothing</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p><i>GetINIString</i> is a function provided by the VBScript in the FFDeploy utility; though it would be relatively straightforward to reconstruct, or write a sub to perform the same action for this specific usage. The line <i>FSO.CopyFile()</i> near the bottom is where we actually copy the <i>user.js</i> file from the server. When the condition isn&#8217;t met, we simply exit the <i>if</i> block and do nothing. </p>
<p>Simple, huh?</p>
]]></content:encoded>
			<wfw:commentRss>http://owened.net/2008/03/31/how-to-setup-firefox-for-use-with-sharepoint-ntlm-authentication/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SoundBlaster Live 5.1 ALSA 5.1 speaker configuration</title>
		<link>http://owened.net/2008/03/29/soundblaster-live-51-alsa-51-speaker-configuration</link>
		<comments>http://owened.net/2008/03/29/soundblaster-live-51-alsa-51-speaker-configuration#comments</comments>
		<pubDate>Sat, 29 Mar 2008 04:57:18 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tech-geek]]></category>

		<guid isPermaLink="false">http://owened.net/2008/03/29/soundblaster-live-51-alsa-51-speaker-configuration/</guid>
		<description><![CDATA[I&#8217;ve finally figured out the cryptic alsamixer to configure ALSA properly for use with my SoundBlaster Live 5.1 and my 5.1 speaker setup. I think a recent update has made this work properly because I&#8217;ve intermittently played with alsamixer over the years I&#8217;ve been using Linux, and I&#8217;ve never been able to get it to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally figured out the cryptic alsamixer to configure ALSA properly for use with my SoundBlaster Live 5.1 and my 5.1 speaker setup. I think a recent update has made this work properly because I&#8217;ve intermittently played with alsamixer over the years I&#8217;ve been using Linux, and I&#8217;ve never been able to get it to work properly. Though, today I can finally announce that it does. The following configuration, when pasted into your /etc/asound.state file (remember to backup your existing one first!) will hopefully &#8220;just work&#8221; &#8212; no further configuration necessary. It&#8217;s advisable to use your physical volume knob to adjust the overall volume level as I would not recommend playing with the software volume levels.</p>
<p>File&#8217;s here: <a href='http://owened.net/wp-content/uploads/2008/03/asound.conf' title='asound.conf'>asound.conf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://owened.net/2008/03/29/soundblaster-live-51-alsa-51-speaker-configuration/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
