<?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>ForestMist</title>
	<atom:link href="http://forestmist.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://forestmist.org</link>
	<description></description>
	<lastBuildDate>Wed, 28 Jul 2010 01:08:22 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sloppy Solder Saves Shaver!</title>
		<link>http://forestmist.org/2010/05/sloppy-solder-saves-shaver/</link>
		<comments>http://forestmist.org/2010/05/sloppy-solder-saves-shaver/#comments</comments>
		<pubDate>Mon, 24 May 2010 04:45:10 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Electrical]]></category>
		<category><![CDATA[Repair]]></category>

		<guid isPermaLink="false">http://forestmist.org/?p=1165</guid>
		<description><![CDATA[
I&#8217;ve had a Remington Shortcut for quite some time now but lately its been running out of juice after only a few minutes. The blades are in great shape so I thought maybe I could just replace the batteries. In the worst case I&#8217;d have fun taking it apart and in the best case I&#8217;d have [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://forestmist.org/wp-content/uploads/2010/05/Remington-Shortcut-Custom-Fix.jpg"><img class="size-large wp-image-1170 alignnone" title="Remington Shortcut with Eneloop Batteries" src="http://forestmist.org/wp-content/uploads/2010/05/Remington-Shortcut-Custom-Fix-700x345.jpg" alt="" width="700" height="345" /></a></p>
<p>I&#8217;ve had a <a href="http://www.remington-products.com/manuals/ib_scc100.pdf">Remington Shortcut</a> for quite some time now but lately its been running out of juice after only a few minutes. The blades are in great shape so I thought maybe I could just replace the batteries. In the worst case I&#8217;d have fun taking it apart and in the best case I&#8217;d have a working shaver again.</p>
<p>One of the original batteries looked a bit corroded around a connector and in hindsight I think this was the main problem. I ended up replacing the generic cells with my favorite Eneloops anyway. Rechargeable and hardly any discharge even over a year of storage. Lovely lovely batteries.</p>
<p>I haven&#8217;t soldered in years (and it shows) but I had a lot of fun fixing the shaver. It works great now too. Actually, better. The recharging indicator is once again working and my small tweak to disable the edge clipper mechanism means less resistance on the motor.</p>
<p>Taking apart things to learn how they work is great fun. Sometimes you can even put them back together again. <img src='http://forestmist.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://forestmist.org/2010/05/sloppy-solder-saves-shaver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Add a password reset feature to Halogen eAppraisal</title>
		<link>http://forestmist.org/2010/04/add-a-password-reset-feature-to-halogen-eappraisal/</link>
		<comments>http://forestmist.org/2010/04/add-a-password-reset-feature-to-halogen-eappraisal/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 05:45:19 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[Encryption]]></category>

		<guid isPermaLink="false">http://forestmist.org/?p=1058</guid>
		<description><![CDATA[One really important feature missing from Halogen eAppraisal is the ability for users to reset their own passwords.
Seems like such a basic feature but even their friendly support folks confirmed that there was no addon or plan to release the feature in a future version. Weird!
No matter though, let&#8217;s make our own.
Investigation
I spent untold amounts of time [...]]]></description>
			<content:encoded><![CDATA[<p>One really important feature missing from Halogen eAppraisal is the ability for users to reset their own passwords.</p>
<p>Seems like such a basic feature but even their friendly support folks confirmed that there was no addon or plan to release the feature in a future version. Weird!</p>
<p>No matter though, let&#8217;s make our own.</p>
<h2>Investigation</h2>
<p>I spent untold amounts of time clawing through unfamiliar Java code. A occasional scrap was enough to forge my determination but nothing really made sense yet. Too many files, too many directories but maybe if I just kept trying&#8230;</p>
<p><a href="http://www.youtube.com/watch?v=8HE9OQ4FnkQ">A-ha</a>!</p>
<p>Hidden deep within the lair of &lt;Tomcat&gt;\webapps\Halogen\WEB-INF\classes\com\halogensoftware\common\security\ is a file called &#8216;Utility.class&#8217;. Inside, a string that resembles the worst regular expression ever created.</p>
<p style="padding-left: 30px;">^a`Z{b1Y}c2X[d3W]e4V|f5U\g6T:h7S;i8R&#8221;j9Q&#8217;k0P&lt;l-O&gt;m=N?n~M,o!L.p@K/q#Jr$Is%Ht^Gu&amp;Fv*Ew(Dx)Cy_Bz+A</p>
<p>I was sure this string was used to encrypt the passwords stored in the database but I needed a way to confirm that so&#8230;</p>
<p>Using a test account I set the password to the number 1 which was encrypted as the letter Y. Password 11 became Y}. Password 111 became Y}c.</p>
<p>Ah, so simple!</p>
<p>If your password was the ^ symbol it would find it in the string above and then move right one space and choose the letter &#8220;a&#8221; as your encrypted password. If your password was ^^ then the the first encrypted character would be &#8220;a&#8221; again but the second one would shift two places to the right and store the ` symbol</p>
<p>Here are a few more example conversions.</p>
<ul>
<li>^^^ becomes a`Z</li>
<li>wT7w becomes (hi)</li>
<li>A+z becomes ^^^</li>
</ul>
<p>Notice that in the last example we&#8217;ve simply looped around once we hit the right side of the hash string.</p>
<p>Now that we know how it works let&#8217;s build our own utility in ASP that we can use to reset anyone&#8217;s password.</p>
<h2>The Solution</h2>
<p>Besides the obvious DSN string, you&#8217;ll want to carefully consider how you validate your users.</p>
<p>The setup I used at work talked to a Human Resources database and would validate no less than three pieces of information before even attempting a reset. I urge you dear reader to do the same.</p>
<pre class="brush: vb;">
sID = Request.Form(&quot;id&quot;)
sPassword = Request.Form(&quot;password&quot;)

Set oConn = Server.CreateObject(&quot;ADODB.Connection&quot;)
oConn.Open &quot;DSN String for the Halogen eAppraisal Database&quot;

Set oRS = Server.CreateObject(&quot;ADODB.Recordset&quot;)
oRS.Open &quot;SELECT TOP 1 * FROM [view-user_info] WHERE username = '&quot; &amp; sID &amp; &quot;'&quot;, oConn, 0, 3 'adOpenForwardOnly, adLockOptimistic

If not oRS.EOF then
	sKeyCode = &quot;a`Z{b1Y}c2X[d3W]e4V|f5U\g6T:h7S;i8R&quot;&quot;j9Q'k0P&lt;l-O&gt;m=N?n~M,o!L.p@K/q#Jr$Is%Ht^Gu&amp;Fv*Ew(Dx)Cy_Bz+A&quot;
	sKeyCodeLength = Len(sKeyCode)
	x = 1
	sBadChar = 0
	Do until x &gt; Len(sPassword)
		sChar = Mid(sPassword, x, 1)

		If InStr(sKeyCode, sChar) then
			sKeyCodePos = InStr(sKeyCode, sChar) + x
			If sKeyCodePos &gt; sKeyCodeLength then
				'Need to loop around the beginning
				Do until sKeyCodePos &lt;= sKeyCodeLength
					sKeyCodePos = sKeyCodePos - sKeyCodeLength
				loop
			End If
			sEncodeChar = Mid(sKeyCode, sKeyCodePos, 1)
			sEncodePassword = sEncodePassword + sEncodeChar
		Else
			'Could not find a character in sKeyCode
			sBadChar = sBadChar + 1
		End If
		x = x + 1
	loop

	If sBadChar &gt; 0 then
		Response.Write &quot;&lt;p&gt;&lt;strong&gt;Unsupported characters were used to try to set the encrypted password. New password was not saved.&lt;/strong&gt;&lt;/p&gt;&quot;
	Else
		oRS(&quot;password&quot;) = sEncodePassword
		oRS(&quot;password_change_date&quot;) = NULL
		oRS.Update
		Response.Write &quot;&lt;p&gt;The password for your account &quot; &amp; sID &amp; &quot; has been reset.&lt;/p&gt;&quot;
	End If
Else
	Response.Write &quot;&lt;p&gt;&lt;strong&gt;A corresponding account for the user &quot; &amp; sID &amp; &quot; does not exist. Please contact support.&lt;/strong&gt;&lt;/p&gt;&quot;
End If

oRS.Close
oConn.Close
Set oRS = nothing
Set oConn = nothing
</pre>
<p>Questions welcome so feel free to comment below.</p>
<p>See ya later, space cowboy.</p>
]]></content:encoded>
			<wfw:commentRss>http://forestmist.org/2010/04/add-a-password-reset-feature-to-halogen-eappraisal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 Audio Loops</title>
		<link>http://forestmist.org/2010/04/html5-audio-loops/</link>
		<comments>http://forestmist.org/2010/04/html5-audio-loops/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 00:02:01 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Browser]]></category>

		<guid isPermaLink="false">http://forestmist.org/?p=1102</guid>
		<description><![CDATA[One of the neatest things about HTML5 is support for the new &#60;audio&#62; tag. Like &#60;video&#62; it allows you to natively support media in good browsers like Chrome, FireFox, Opera and Safari. Add a touch of JavaScript and a new era of  media applications become possible.
Synthesizers, music trackers and games require seamless audio loops though so [...]]]></description>
			<content:encoded><![CDATA[<p>One of the neatest things about HTML5 is support for the new &lt;audio&gt; tag. Like &lt;video&gt; it allows you to natively support media in good browsers like Chrome, FireFox, Opera and Safari. Add a touch of JavaScript and a new era of  media applications become possible.</p>
<p>Synthesizers, music trackers and games require seamless audio loops though so we need something a bit simpler for our first foray into HTML5 audio.</p>
<p>Oooh, how about a retro beatbox with individual track adjustments (start/stop/loop/volume) that could be used to build a unique soundscape from many separate instruments. Perfect!</p>
<p>Fantasy can only become reality through hard work so let&#8217;s get started with some tests first.</p>
<h2>Loop Method 1</h2>
<pre><audio id="audio_1" controls preload loop>
	<source src="/wp-content/uploads/2010/04/html5-audio-loop.ogg">
	<source src="/wp-content/uploads/2010/04/html5-audio-loop.wav">
	<source src="/wp-content/uploads/2010/04/html5-audio-loop.mp3">
</audio></pre>
<p>Uses the &#8216;loop&#8217; property.</p>
<pre class="brush: xml;">&lt;audio id=&quot;audio_1&quot; controls preload loop&gt;
	&lt;source src=&quot;/wp-content/uploads/2010/04/html5-audio-loop.ogg&quot;&gt;
	&lt;source src=&quot;/wp-content/uploads/2010/04/html5-audio-loop.wav&quot;&gt;
	&lt;source src=&quot;/wp-content/uploads/2010/04/html5-audio-loop.mp3&quot;&gt;
&lt;/audio&gt;</pre>
<h2>Loop Method 2</h2>
<pre><audio id="audio_2" controls preload>
	<source src="/wp-content/uploads/2010/04/html5-audio-loop.ogg">
	<source src="/wp-content/uploads/2010/04/html5-audio-loop.wav">
	<source src="/wp-content/uploads/2010/04/html5-audio-loop.mp3">
</audio></pre>
<p>Uses a JavaScript function to loop when an &#8216;ended&#8217; event is called.</p>
<pre class="brush: xml;">&lt;audio id=&quot;audio_2&quot; controls preload&gt;
	&lt;source src=&quot;/wp-content/uploads/2010/04/html5-audio-loop.ogg&quot;&gt;
	&lt;source src=&quot;/wp-content/uploads/2010/04/html5-audio-loop.wav&quot;&gt;
	&lt;source src=&quot;/wp-content/uploads/2010/04/html5-audio-loop.mp3&quot;&gt;
&lt;/audio&gt;</pre>
<pre class="brush: jscript;">
document.getElementById('audio_2').addEventListener('ended', function(){
this.currentTime = 0;
}, false);
</pre>
<h2>Loop Method 3</h2>
<pre><audio id="audio_3" controls preload>
	<source src="/wp-content/uploads/2010/04/html5-audio-loop.ogg">
	<source src="/wp-content/uploads/2010/04/html5-audio-loop.wav">
	<source src="/wp-content/uploads/2010/04/html5-audio-loop.mp3">
</audio>
<audio id="audio_4" controls preload>
	<source src="/wp-content/uploads/2010/04/html5-audio-loop.ogg">
	<source src="/wp-content/uploads/2010/04/html5-audio-loop.wav">
	<source src="/wp-content/uploads/2010/04/html5-audio-loop.mp3">
</audio></pre>
<p>Uses two JavaScript functions and two audio elements with the same source to alternate playback duties.</p>
<pre class="brush: xml;">&lt;audio id=&quot;audio_3&quot; controls preload&gt;
	&lt;source src=&quot;/wp-content/uploads/2010/04/html5-audio-loop.ogg&quot;&gt;
	&lt;source src=&quot;/wp-content/uploads/2010/04/html5-audio-loop.wav&quot;&gt;
	&lt;source src=&quot;/wp-content/uploads/2010/04/html5-audio-loop.mp3&quot;&gt;
&lt;/audio&gt;
&lt;audio id=&quot;audio_4&quot; controls preload&gt;
	&lt;source src=&quot;/wp-content/uploads/2010/04/html5-audio-loop.ogg&quot;&gt;
	&lt;source src=&quot;/wp-content/uploads/2010/04/html5-audio-loop.wav&quot;&gt;
	&lt;source src=&quot;/wp-content/uploads/2010/04/html5-audio-loop.mp3&quot;&gt;
&lt;/audio&gt;</pre>
<pre class="brush: jscript;">document.getElementById('audio_3').addEventListener('ended', function(){
this.currentTime = 0;
this.pause();
document.getElementById('audio_4').play();
}, false);

document.getElementById('audio_4').addEventListener('ended', function(){
this.currentTime = 0;
this.pause();
document.getElementById('audio_3').play();
}, false);</pre>
<pre><script type="text/javascript">		document.getElementById('audio_2').addEventListener('ended', function(){
this.currentTime = 0;
}, false);

document.getElementById('audio_3').addEventListener('ended', function(){
this.currentTime = 0;
this.pause();
document.getElementById('audio_4').play();
}, false);

document.getElementById('audio_4').addEventListener('ended', function(){
this.currentTime = 0;
this.pause();
document.getElementById('audio_3').play();
}, false);
</script></pre>
<h2>Browser Support</h2>
<p>Tests were done on Windows 7 with Chrome 5.0.342.9 beta, FireFox 3.6.3, Internet Explorer 9.0 Preview, Opera 10.51 and Safari 4.0.5. </p>
<p><strong>Chrome</strong> seems to trigger loops before the current sound is completely finished leading to some odd jumpiness. All loop methods are affected.</p>
<p><strong>FireFox</strong> doesn&#8217;t seem to like the &#8216;loop&#8217; property of method 1, odd. Method 2 has the slightest of delays between loops and method 3 was actually perfect! I didn&#8217;t believe it until verification at the millisecond level with <a href="http://audacity.sourceforge.net/">Audacity</a>. Hooray Mozilla!</p>
<p><strong>Internet Explorer 9</strong> doesn&#8217;t support the audio tag yet. Hopefully it will before an official release.</p>
<p><strong>Opera</strong> performs almost as well as FireFox although there is still a small delay even when using method 3.</p>
<p><strong>Safari</strong> seems slow to start playback which is very easy to detect once you hear a loop. All loop methods affected.</p>
<p>Feedback on other browsers/OS compatibility would be very interesting so please feel free to discuss any findings in the comments below.</p>
<h2>Final Thoughts</h2>
<p>As of right now (April 11, 2010) only FireFox can do a perfect loop by cheating a bit and using two &lt;audio&gt; elements with JavaScript.</p>
<p>So yeah, it&#8217;s a bit too early for HTML5 audio loops but don&#8217;t let that stop you from creating sound boards, media players and other fun things.</p>
<p>Hopefully with some more optimizations audio support will continue to improve and a HTML5 beatbox fantasy can become reality.</p>
<p>Until then there are plenty of other fun things to play with.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://forestmist.org/2010/04/html5-audio-loops/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Disable right clicking on images only</title>
		<link>http://forestmist.org/2010/03/disable-right-clicking-on-images-only/</link>
		<comments>http://forestmist.org/2010/03/disable-right-clicking-on-images-only/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 03:53:04 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[MooTools]]></category>
		<category><![CDATA[Web Browser]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://forestmist.org/?p=161</guid>
		<description><![CDATA[There are few instances where disabling someone&#8217;s context menu is appropriate. In most cases it&#8217;s unnecessary and can even lead to infuriating your visitors.
Here are some ways to target all the image elements on a page while leaving the rest of the hypertext in peace.
JavaScript
Lightweight, no framework required and works well in IE 6, 7, [...]]]></description>
			<content:encoded><![CDATA[<p>There are few instances where disabling someone&#8217;s context menu is appropriate. In most cases it&#8217;s unnecessary and can even lead to infuriating your visitors.</p>
<p>Here are some ways to target all the image elements on a page while leaving the rest of the hypertext in peace.</p>
<h2>JavaScript</h2>
<p>Lightweight, no framework required and works well in IE 6, 7, 8, Chrome, FireFox and Safari. <a href="/wp-content/uploads/2010/03/Protect-Images-with-JavaScript.html">Demo »</a></p>
<pre class="brush: jscript;">
document.oncontextmenu = context_menu;

function context_menu(e) {
if (!e) var e = window.event;
	var eTarget = (window.event) ? e.srcElement : e.target;

	if (eTarget.nodeName == &quot;IMG&quot;) {
		//context menu attempt on top of an image element
		return false;
	}
}
</pre>
<hr />
<h2>jQuery</h2>
<p>Perhaps the prettiest code of the three. <a href="/wp-content/uploads/2010/03/Protect-Images-with-jQuery.html">Demo »</a></p>
<pre class="brush: jscript;">
$(document).ready(function(){
	$(document).bind(&quot;contextmenu&quot;,function(e){
		if(e.target.nodeName == 'IMG'){
			//context menu attempt on top of an image element
			return false;
		}
	});
});
</pre>
<hr />
<h2>MooTools</h2>
<p>Moo&#8230; <a href="/wp-content/uploads/2010/03/Protect-Images-with-MooTools.html">Demo »</a></p>
<pre class="brush: jscript;">
window.addEvent('domready', function() {
	$(document.body).addEvent('contextmenu', function(e) {
		if(e.target.nodeName == 'IMG') {
			//context menu attempt on top of an image element
			return false;
		}
	});
});
</pre>
<hr />
<h2>Final Thoughts</h2>
<p>With a bit more code you can target specific IDs, class names or any number of elemental combinations. Doing so will limit your context menu friendly fire and keep both you and your users in a happy balance.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://forestmist.org/2010/03/disable-right-clicking-on-images-only/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Best of</title>
		<link>http://forestmist.org/2010/02/best-of/</link>
		<comments>http://forestmist.org/2010/02/best-of/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 05:26:11 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://forestmist.org/?p=750</guid>
		<description><![CDATA[It&#8217;s taken some doing but all my content dating back to 2002 is now available.
Some of my most memorable moments below.
Personal

Damn it feels good to be a programmer!
Bzzap! Feel the Power!
Happily Married!
Prelude
History of Odn
Remember Me?
ARGH
Hair Today, Gone Tomorrow

Work

So long and thanks for all the fish
Waka Waka Waka
Work Consumes&#8230;
Due your Duty

]]></description>
			<content:encoded><![CDATA[<div id="attachment_935" class="wp-caption alignright" style="width: 236px"><a href="http://forestmist.org/wp-content/uploads/2010/02/Caveman.jpg"><img class="size-medium wp-image-935   " title="Caveman" src="http://forestmist.org/wp-content/uploads/2010/02/Caveman-226x300.jpg" alt="" width="226" height="300" /></a><p class="wp-caption-text">Did cavemen listen to books on tape? Find out in the archives...</p></div>
<p>It&#8217;s taken some doing but all my content dating back to 2002 is now available.</p>
<p>Some of my most memorable moments below.</p>
<p><strong>Personal</strong></p>
<ul>
<li><a href="/2003/06/damn-it-feels-good-to-be-a-programmer/">Damn it feels good to be a programmer!</a></li>
<li><a href="/2003/10/bzzap-feel-the-power/">Bzzap! Feel the Power!</a></li>
<li><a href="/2004/01/happily-married/">Happily Married!</a></li>
<li><a href="http://forestmist.org/2004/11/prelude/">Prelude</a></li>
<li><a href="/2005/09/history-of-odn/">History of Odn</a></li>
<li><a href="/2007/03/remember-me/">Remember Me?</a></li>
<li><a href="/2007/05/argh/">ARGH</a></li>
<li><a href="/2007/06/hair-today-gone-tomorrow/">Hair Today, Gone Tomorrow</a></li>
</ul>
<p><strong>Work</strong></p>
<ul>
<li><a href="/2004/07/so-long-and-thanks-for-all-the-fish/">So long and thanks for all the fish</a></li>
<li><a href="/2004/12/waka-waka-waka/">Waka Waka Waka</a></li>
<li><a href="/2005/02/work-consumes/">Work Consumes&#8230;</a></li>
<li><a href="/2005/11/due-your-duty/">Due your Duty</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://forestmist.org/2010/02/best-of/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mass Effect 2 Soundtrack</title>
		<link>http://forestmist.org/2010/02/mass-effect-2-soundtrack/</link>
		<comments>http://forestmist.org/2010/02/mass-effect-2-soundtrack/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 22:17:53 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Mass Effect]]></category>
		<category><![CDATA[Mass Effect 2]]></category>

		<guid isPermaLink="false">http://forestmist.org/?p=813</guid>
		<description><![CDATA[I really enjoyed Mass Effect 2, so much so that I like to imagine talking to people with a choice selector near the bottom of my vision. I usually choose paragon options but I know the usefulness of a well placed renegade response. Be careful with the interrupts though!
Like many good games, I find myself drawn to the [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_822" class="wp-caption alignnone" style="width: 310px"><a href="http://forestmist.org/wp-content/uploads/2010/02/Tali-Tunes.jpg"><img class="size-medium wp-image-822 " title="Tali Tunes" src="http://forestmist.org/wp-content/uploads/2010/02/Tali-Tunes-300x198.jpg" alt="" width="300" height="198" /></a><p class="wp-caption-text">Tali&#39;Zorah knows that even in the future, corded headphones are the way to go.</p></div>
<p>I really enjoyed Mass Effect 2, so much so that I like to imagine talking to people with a choice selector near the bottom of my vision. I usually choose paragon options but I know the usefulness of a well placed renegade response. Be careful with the interrupts though!</p>
<p>Like many good games, I find myself drawn to the soundtrack as a way of reliving our times together. I went searching for it but unfortunately they only released it in <a href="http://www.amazon.com/gp/product/B0031CSCS6">MP3</a> and <a href="http://itunes.apple.com/album/mass-effect-2/id347714861">M4A</a> formats so far.</p>
<p>Call me a snob but I think our future should be filled with upgrades and that means something better than or equal to the sound quality of a Compact Disc.</p>
<p>No worries though because with a bit of patience you too can&#8230;</p>
<h2>Make your own Mass Effect 2 Soundtrack</h2>
<p>These instructions assume you are using the PC version of the game.</p>
<ul>
<li>Download
<ul>
<li><a href="http://ctpax-cheater.narod.ru/personal/afcextr.zip">Mass Effect 2 .AFC extractor</a> | <a href="http://forestmist.org/wp-content/uploads/2010/02/ME2-AFC-Extractor.zip">mirror</a></li>
<li><a href="http://hcs64.com/files/ww2ogg08.zip">Audiokinetic Wwise RIFF/RIFX Vorbis to Ogg Vorbis converter</a> | <a href="http://forestmist.org/wp-content/uploads/2010/02/ME2-Audiokinetic-Converter.zip">mirror</a></li>
<li><a href="http://forestmist.org/wp-content/uploads/2010/02/ME2-Extract-Convert-and-Rename-Scripts.zip">Extract, Convert and Rename scripts</a>.</li>
</ul>
</li>
<li>Unzip everything into a new folder.</li>
<li>Copy &#8220;C:\Games\Mass Effect 2\BioGame\CookedPC\*Music.afc &#8221; to the new folder.
<ul>
<li>Your path may be slightly different depending on where you installed the game.</li>
</ul>
</li>
<li>Run &#8220;Extract, Convert.bat&#8221;</li>
<li>Run &#8220;Rename.vbs&#8221;</li>
</ul>
<h2>Epilogue</h2>
<p>Now you can enjoy 508 pieces of Ogg Vorbis encoded music while you wait for EA to release a proper Compact Disc.</p>
<p>Oh and special thanks to <a href="http://www.furious-angels.com/showpost.php?p=285397&amp;postcount=57">Extirpator</a> for the original instructions on how to accomplish this.</p>
]]></content:encoded>
			<wfw:commentRss>http://forestmist.org/2010/02/mass-effect-2-soundtrack/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Brütal Legend Soundtrack</title>
		<link>http://forestmist.org/2010/01/brutal-legend-soundtrack/</link>
		<comments>http://forestmist.org/2010/01/brutal-legend-soundtrack/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 17:13:23 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[PS3]]></category>

		<guid isPermaLink="false">http://forestmist.org/?p=648</guid>
		<description><![CDATA[There are a lot of great things about Brütal Legend. Jack Black is of course hilarious, the graphics are permeated with rock iconography and the play style is a pleasant mix of action and strategy. What really seals the deal though is its amazing soundtrack.
There are too many good songs to choose from so here are some of [...]]]></description>
			<content:encoded><![CDATA[<p>There are a lot of great things about <a href="http://en.wikipedia.org/wiki/Br%C3%BCtal_Legend">Brütal Legend</a>. Jack Black is of course hilarious, the graphics are permeated with rock iconography and the play style is a pleasant mix of action and strategy. What really seals the deal though is its amazing soundtrack.</p>
<p>There are too many good songs to choose from so here are some of my favorites.<br />
<a href="http://forestmist.org/wp-content/uploads/2010/01/brutal_legend_roadies.jpg"><img class="alignright size-medium" title="Brutal Legend Roadies" src="http://forestmist.org/wp-content/uploads/2010/01/brutal_legend_roadies.jpg" alt="" width="200" /></a></p>
<ul>
<li>Angel Witch
<ul>
<li><a href="http://lala.com/zdEN">Angel Witch</a></li>
</ul>
</li>
<li>Anvil
<ul>
<li>Tag Team</li>
</ul>
</li>
<li>Black Sabbath
<ul>
<li>Children of the Grave</li>
<li>Symptom of the Universe</li>
</ul>
</li>
<li>Brocas Helm
<ul>
<li>Cry of the Banshee</li>
</ul>
</li>
<li>Budgie
<ul>
<li>Zoom Club</li>
</ul>
</li>
<li>Crimson Glory
<ul>
<li>Queen of the Masquerade</li>
</ul>
</li>
<li>Dragonforce
<ul>
<li>Through the Fire and Flames</li>
</ul>
</li>
<li>Judas Priest
<ul>
<li>The Hellion, Electric Eye</li>
</ul>
</li>
<li>Manowar
<ul>
<li><a href="http://lala.com/zWFA">Die For Metal</a></li>
</ul>
</li>
<li>Motley Crue
<ul>
<li>Dr. Feelgood</li>
<li>Kickstart My Heart</li>
</ul>
</li>
<li>Nitro
<ul>
<li>Machine Gunn Eddie</li>
</ul>
</li>
<li>Ozzy Osbourne
<ul>
<li>Mr. Crowley</li>
</ul>
</li>
<li>Scorpions
<ul>
<li><a href="http://lala.com/zCl6">Blackout</a></li>
</ul>
</li>
<li>Tenacious D
<ul>
<li><a href="http://lala.com/zLuM">Master Exploder</a></li>
</ul>
</li>
</ul>
<p>Seems like a long list until you realize that there are 107 songs which when played end to end will shred your soul for up to 8 hours and 40 minutes! I haven&#8217;t experienced such an epic soundtrack since the seven disc <a href="http://en.wikipedia.org/wiki/Grand_Theft_Auto:_Vice_City_Official_Soundtrack_Box_Set">Grand Theft Auto: Vice City OST</a>.</p>
<p>The problem is&#8230; you can&#8217;t really buy the Brütal Legend soundtrack.</p>
<p>With a bit of patience, equipment and software you can however, make your own.</p>
<h2>How to roll your own Brütal Legend Soundtrack</h2>
<p>I&#8217;m going to be very specific about my own hardware here but the concept is certainly applicable to a very wide range of setups.</p>
<p><strong>PlayStation 3</strong></p>
<p style="padding-left: 30px;">Plug in an optical audio cable to your PS3.</p>
<p style="padding-left: 30px;">Settings &gt;Sound Settings &gt; Audio Output Settings</p>
<p style="padding-left: 30px;">Choose Optical Digital, use the defaults for Linear PCM and save your settings.</p>
<p style="padding-left: 30px;">Load Brütal Legend.</p>
<p style="padding-left: 30px;">Change your sound sliders so everything is muted except for music.</p>
<p style="padding-left: 30px;">Load your latest save, summon the druid plow and then press up on the direction pad to get to the built-in music player.</p>
<p><strong>Computer</strong></p>
<p style="padding-left: 30px;">
<p style="padding-left: 30px;">
<p style="padding-left: 30px;">
<p style="padding-left: 30px;">Plug in the optical audio cable from your Ps3.</p>
<p style="padding-left: 60px;"><em>I&#8217;m using an </em><a href="http://www.amazon.com/Creative-Labs-Platinum-eX-Soundcard/dp/B00005PWVU"><em>Audigy Platinum eX</em></a><em> since it has a nice breakout box with all sorts of connectors.</em></p>
<p style="padding-left: 30px;">Change your recording source to Optical In, S/PDIF or some other similar terminology.</p>
<p style="padding-left: 60px;"><em>The official Creative drivers would only allow me to listen to the optical in so I had to switch to the </em><a href="http://kxproject.lugosoft.com/"><em>kX Audio Driver</em></a><em> for recording. Bit of a hassle but the kX software does unlock a lot of special abilities. <img src='http://forestmist.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<p style="padding-left: 30px;">Fire up <a href="http://audacity.sourceforge.net/">Audacity</a> or your favorite audio editor.</p>
<p style="padding-left: 30px;">Make sure you recording device is set to the optical port and then change your default sample rate to 48000 Hz.</p>
<p style="padding-left: 30px;">Hit record and then play whatever song you want to capture on the PS3.</p>
<p style="padding-left: 30px;">Export your recording to your favorite audio format like <a href="http://flac.sourceforge.net/">FLAC</a>, <a href="http://www.apple.com/quicktime/technologies/aac/">AAC</a> or <a href="http://en.wikipedia.org/wiki/MP3">MP3</a>.</p>
<p style="padding-left: 30px;">
<p><strong>Bonus Tips</strong></p>
<p style="padding-left: 30px;">Make sure to unlock all the songs you want to capture before starting this endeavor. The <a href="http://www.achievementhunter.com/games/guides/brutallegend/">Brutal Legend Item Map</a> by Achievement Hunter makes this task bearable.</p>
<p style="padding-left: 30px;">Make sure to stay in the druid plow when recording otherwise your audio will become positional to the vehicle.</p>
<p style="padding-left: 30px;">Recording level too low? Try normalizing to -1.5 dB before you save.</p>
<p><a href="http://forestmist.org/wp-content/uploads/2010/01/Brutal-Legend-Speaker-Assault.jpg"><img title="Brutal Legend Speaker Assault" src="http://forestmist.org/wp-content/uploads/2010/01/Brutal-Legend-Speaker-Assault.jpg" alt="" width="640" height="323" /></a></p>
<h2>Epilogue</h2>
<p>Video game music can be infectious, repetitious, evocative or just plain fun. No matter your reaction, listening to game music can be the best link to your memories of playing them.</p>
<p>Like that one time in <a href="http://en.wikipedia.org/wiki/The_7th_Saga">Seventh Saga</a> at 3am when I kept dying and that @#$%^ battle music was drilling a hole through my skull and &#8230; *EXPLOSION*</p>
]]></content:encoded>
			<wfw:commentRss>http://forestmist.org/2010/01/brutal-legend-soundtrack/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Memories of 20% time</title>
		<link>http://forestmist.org/2009/11/memories-of-20-time/</link>
		<comments>http://forestmist.org/2009/11/memories-of-20-time/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 05:36:05 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://forestmist.org/?p=104</guid>
		<description><![CDATA[There was a time at work, about one year ago, when all seemed mendable. An age of precious 20% time scented with the affrodiasiac of possibilites. Soon to fade along with my hope for an IT department&#8217;s redemption during my tenure.

I was saturated with requests but unlike previous years, there was no hope to catch [...]]]></description>
			<content:encoded><![CDATA[<p>There was a time at work, about one year ago, when all seemed mendable. An age of precious 20% time scented with the affrodiasiac of possibilites. Soon to fade along with my hope for an IT department&#8217;s redemption during my tenure.</p>
<p><a href="http://forestmist.org/wp-content/uploads/2009/11/Back-to-the-Future.jpg"><img class="alignnone size-full wp-image-374" title="Back-to-the-Future" src="http://forestmist.org/wp-content/uploads/2009/11/Back-to-the-Future.jpg" alt="Back-to-the-Future" width="1000" height="1000" /></a></p>
<p>I was saturated with requests but unlike previous years, there was no hope to catch up during typically quiet winter months. Working harder wasn&#8217;t the answer either. There is a certain unefficiency and dulling of the mind that comes with inhuman hours. No, the answer would be startlingly similar to a recipe from &#8221;To Serve Man&#8221;: add more humans.</p>
<p>Unfortunatly there was a hiring freeze at the time. Volunteers woudln&#8217;t cut it either. No, I needed someone who could put in enough quality time to offset the allotment I would surely invest in them. Someone to toil over the horseshoes while I forged a mighty blade in the blazing heat and fierce colds of the server room. An apprentice!</p>
<p>The idea seemed like a perfect fit since I was already fielding web questions and assisting others with various side projects. Surely one of them would be suiteable and have a yearning for learning. So, I drafted a proclamation with an easy challenge and waitied with careful interest to see who would rise to this unique opportunity.</p>
<p>Two weeks later and nary a nibble.</p>
<p>I was ill prepared for the cornucopia of calamity which followed my failed squire search. Lay offs, forced days off , slashed budgets, added duties and more unbearables. This led to the great demoralization of the &#8220;survivors&#8221; which further shreded any vestigial feelings of hope I still harbored.</p>
<p>Quite some time has passed since the decumbent epoch. I am no longer demoralized, depressed or even depraved (unless it&#8217;s a real happening party). No, I&#8217;m resolute and proud of all I&#8217;ve accomplished. I&#8217;m even hopeful for the future again although I know my path lays with another company.</p>
<p>Somewhere out there is a group of free thinkers, hard workers and dress code violators. I hope to join them soon and together we&#8217;ll make wonderful websites. <img src='http://forestmist.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://forestmist.org/2009/11/memories-of-20-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A home for the experimentally insane</title>
		<link>http://forestmist.org/2009/10/a-home-for-the-experimentally-insane/</link>
		<comments>http://forestmist.org/2009/10/a-home-for-the-experimentally-insane/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 23:06:30 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Web Browser]]></category>

		<guid isPermaLink="false">http://forestmist.org/?p=354</guid>
		<description><![CDATA[I&#8217;ve added a new experimental section to the site which I hope will contain many a mad thing for you dear visitor.
On on first journey we find out if its possible to create strange shapes using only CSS.
So come one and come all to see the gross disregard for copyright law as we make your [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_358" class="wp-caption alignright" style="width: 180px"><a href="http://forestmist.org/wp-content/uploads/2009/10/Daniel-the-Monster-2003.png"><img class="size-medium wp-image-358 " title="Daniel the Monster" src="http://forestmist.org/wp-content/uploads/2009/10/Daniel-the-Monster-2003-300x300.png" alt="Let me show you something..." width="150" height="150" /></a><p class="wp-caption-text">Founder of the home for the experimentally insane.</p></div>
<p>I&#8217;ve added a new experimental section to the site which I hope will contain many a mad thing for you dear visitor.</p>
<p>On on first journey we find out if its possible to create strange shapes using only CSS.</p>
<p>So come one and come all to see the gross disregard for copyright law as we make your very own <a href="/experimental/bahamas-logo-using-css3/"><strong>Bahamas logo using CSS</strong></a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://forestmist.org/2009/10/a-home-for-the-experimentally-insane/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Forgotten Memory</title>
		<link>http://forestmist.org/2009/10/forgotten-memory/</link>
		<comments>http://forestmist.org/2009/10/forgotten-memory/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 17:57:45 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Windows Server]]></category>

		<guid isPermaLink="false">http://forestmist.org/?p=255</guid>
		<description><![CDATA[A server with more than 4 GB of memory is usually a beautiful thing. Unless that extra hardware is going to waste that is. *cry*

Allow me to explain.
A 32-bit system can&#8217;t use more than 4 GB of memory without the help from something called Physical Address Extension (PAE).
PAE allows for extra breathing room through a [...]]]></description>
			<content:encoded><![CDATA[<p>A server with more than 4 GB of memory is usually a beautiful thing. Unless that extra hardware is going to waste that is. *cry*</p>
<p><a href="http://forestmist.org/wp-content/uploads/2009/10/ForgottenMemory-Boot-up-with-6-GB.png"><img class="alignnone size-full wp-image-258" title="Boot up with 6 GB without PAE" src="http://forestmist.org/wp-content/uploads/2009/10/ForgottenMemory-Boot-up-with-6-GB.png" alt="Boot up with 6 GB without PAE" width="400" height="300" /></a></p>
<p>Allow me to explain.</p>
<p>A 32-bit system can&#8217;t use more than 4 GB of memory without the help from something called <a href="http://en.wikipedia.org/wiki/Physical_Address_Extension">Physical Address Extension</a> (PAE).</p>
<p>PAE allows for extra breathing room through a special mapping area. Up to 64 GB in fact. All you need need is a CPU purchased in the last 8 years along with Microsoft Windows Server 2000 and above.</p>
<p>Of course, if you are already running the 64-bit <a href="http://en.wikipedia.org/wiki/Windows_Server_2008_R2">Windows Server 2008 R2</a> then please go enjoy your 2 TB of memory, 256 processors and lack of female companionship elsewhere please.</p>
<p>For the rest of us, let&#8217;s get our memory back!</p>
<h2>Enabling PAE</h2>
<p><em>These instructions are for Windows Server 2003 although they can easily apply to other versions.</em></p>
<p>Right click on &#8220;My Computer&#8221; and choose properties.</p>
<p>Click on the &#8220;Advanced&#8221; tab.</p>
<p>Click on &#8220;Settings&#8221; within the &#8220;Startup and Recovery&#8221; section.</p>
<p>Click &#8220;Edit&#8221;.</p>
<p>Add the option &#8220;/pae&#8221; to the end of the line for your particular OS under &#8220;[operating systems]&#8220;.</p>
<p>Save the boot.ini file.</p>
<p>Reboot.</p>
<h2>Success</h2>
<p>After the reboot, right click on &#8220;My Computer&#8221; and choose properties again. You should see more memory and the term &#8220;Physical Address Extension&#8221; undernearth your CPU and RAM metrics.</p>
<p>Enjoy!</p>
<p><a href="http://forestmist.org/wp-content/uploads/2009/10/ForgottenMemory-Boot-up-with-6-GB-with-PAE-enabled.png"><img class="alignnone size-full wp-image-257" title="Boot up with 6 GB with PAE enabled" src="http://forestmist.org/wp-content/uploads/2009/10/ForgottenMemory-Boot-up-with-6-GB-with-PAE-enabled.png" alt="Boot up with 6 GB with PAE enabled" width="400" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://forestmist.org/2009/10/forgotten-memory/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
