2a95
<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.3" -->
<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/"
	>

<channel>
	<title>ReloadSystems</title>
	<link>http://blog.reloadsystems.net</link>
	<description>Personal page of Michael Cowan</description>
	<pubDate>Tue, 26 Oct 2010 15:46:43 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.3</generator>
	<language>en</language>
			<item>
		<title>Resetting MySQL password in Linux</title>
		<link>http://blog.reloadsystems.net/2010/10/26/resetting-mysql-password-in-linux/</link>
		<comments>http://blog.reloadsystems.net/2010/10/26/resetting-mysql-password-in-linux/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 15:41:29 +0000</pubDate>
		<dc:creator>michael_cowan</dc:creator>
		
	<category>Linux</category>
	<category>MySQL</category>
		<guid isPermaLink="false">http://blog.reloadsystems.net/2010/10/26/resetting-mysql-password-in-linux/</guid>
		<description><![CDATA[  After a clean install of MySQL in Fedora 13 I found myself in the position of being unable to set a root password as one had somehow already been created. The situation of forgetting a password is much more likely, never the less the steps are the same:

Kill the mysql service
	[root@host /]# service mysqld [...] ]]></description>
			<content:encoded><![CDATA[<p> After a clean install of MySQL in Fedora 13 I found myself in the position of being unable to set a root password as one had somehow already been created. The situation of forgetting a password is much more likely, never the less the steps are the same:</p>
<blockquote>
<p>Kill the mysql service<br />
	<code>[root@host /]# service mysqld stop</code></p>
<p>Start the service with disabled grant tables<br />
	<code>[root@host /]# /usr/bin/mysqld_safe --skip-grant-tables &#038;</code></p>
<p>Open a SQL command prompt<br />
	<code>[root@host /]# mysql</code></p>
<p>Connect to the DB<br />
	<code>mysql> use mysql</code></p>
<p>View users<br />
	<code>mysql> SELECT * FROM `user`;</code></p>
<p>Reset the user password (&#8217;root&#8217; can be any user and &#8216;newpassword&#8217; any password)<br />
	<code>mysql> UPDATE `user` SET `password` = PASSWORD('newpassword') WHERE `User` = 'root';</code></p>
<p>Quit SQL<br />
	<code>mysql> exit</code></p>
<p>Restart the service<br />
	<code>[root@host /]# service mysqld restart</code>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRSS>http://blog.reloadsystems.net/2010/10/26/resetting-mysql-password-in-linux/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Avoid Dereferencing in Carmacks Implementation of Approximate Roots</title>
		<link>http://blog.reloadsystems.net/2009/11/08/avoid-dereferencing-in-carmacks-implementation-of-approximate-roots/</link>
		<comments>http://blog.reloadsystems.net/2009/11/08/avoid-dereferencing-in-carmacks-implementation-of-approximate-roots/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 11:17:37 +0000</pubDate>
		<dc:creator>michael_cowan</dc:creator>
		
	<category>Theory and Formulas</category>
	<category>C++</category>
	<category>3D</category>
		<guid isPermaLink="false">http://blog.reloadsystems.net/2009/11/08/avoid-dereferencing-in-carmacks-implementation-of-approximate-roots/</guid>
		<description><![CDATA[  Just about everyone who has even looked into maths optimisation has come across the 'Quake III Magical Inverse Square Root Implementation' as used by John Carmack. For those that don't know it is a 32bit integer magic number implementation of the Newton–Raphson method for finding approximate roots.
The original code from Quake III looks like [...] ]]></description>
			<content:encoded><![CDATA[<p> Just about everyone who has even looked into maths optimisation has come across the <a href="http://en.wikipedia.org/wiki/0x5f3759df">'Quake III Magical Inverse Square Root Implementation'</a> as used by <a href="http://en.wikipedia.org/wiki/John_D._Carmack">John Carmack</a>. For those that don't know it is a 32bit integer magic number implementation of the <a href="http://en.wikipedia.org/wiki/Newton%27s_method">Newton–Raphson method</a> for finding approximate roots.</p>
<p>The original code from Quake III looks like this:</p>
<div class="syntax_hilite">
<div id="code-3">
<div class="code">float Q_rsqrt<span style="color:#006600; font-weight:bold;">&#40;</span> float number <span style="color:#006600; font-weight:bold;">&#41;</span><br />
<span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; long i;<br />
&nbsp; float x2, y;<br />
&nbsp; const float threehalfs = <span style="color:#800000;">1</span>.5F;<br />
&nbsp; x2 = number * <span style="color:#800000;">0</span>.5F;<br />
&nbsp; y&nbsp; = number;<br />
&nbsp; i&nbsp; = * <span style="color:#006600; font-weight:bold;">&#40;</span> long * <span style="color:#006600; font-weight:bold;">&#41;</span> &amp;y;&nbsp; <span style="color:#FF9933; font-style:italic;">// evil floating point bit level hacking</span><br />
&nbsp; i&nbsp; = 0x5f3759df - <span style="color:#006600; font-weight:bold;">&#40;</span> i&gt;&gt; <span style="color:#800000;">1</span> <span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// what the fuck?</span><br />
&nbsp; y&nbsp; = * <span style="color:#006600; font-weight:bold;">&#40;</span> float * <span style="color:#006600; font-weight:bold;">&#41;</span> &amp;i;<br />
&nbsp; y&nbsp; = y * <span style="color:#006600; font-weight:bold;">&#40;</span> threehalfs - <span style="color:#006600; font-weight:bold;">&#40;</span> x2 * y * y <span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 1st iteration</span><br />
&nbsp; <span style="color:#FF9933; font-style:italic;">// y&nbsp; = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed</span><br />
&nbsp; #ifndef Q3_VM<br />
&nbsp; #ifdef __linux__<br />
&nbsp; &nbsp; assert<span style="color:#006600; font-weight:bold;">&#40;</span> !isnan<span style="color:#006600; font-weight:bold;">&#40;</span>y<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// bk010122 - FPE?</span><br />
&nbsp; #endif<br />
&nbsp; #endif<br />
&nbsp; return y;<br />
<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</div>
</div>
<p></p>
<p>Okay, so what's the problem? The problem is the line commented as <em>'evil floating point bit level hacking'</em> - the author didn't like it and I don't like it either. If you compile this code with gcc the following warning will be thrown: </p>
<blockquote><p>warning: dereferencing type-punned pointer will break strict-aliasing rules</p></blockquote>
<p>To find out what type-punning is and how to fix it we can turn to the gcc docs:</p>
<blockquote>
<p>-fstrict-aliasing<br />
    Allows the compiler to assume the strictest aliasing rules applicable to the language being compiled. For C (and C++), this activates optimizations based on the type of expressions. In particular, an object of one type is assumed never to reside at the same address as an object of a different type, unless the types are almost the same. For example, an "unsigned int" can alias an "int", but not a "void*" or a "double". A character type may alias any other type.</p>
<p>    Pay special attention to code like this:</p>
<pre>
            union a_union {
              int i;
              double d;
            };

            int f() {
              a_union t;
              t.d = 3.0;
              return t.i;
            }
</pre>
<p>    The practice of reading from a different union member than the one most recently written to (called ``type-punning'') is common. Even with -fstrict-aliasing, type-punning is allowed, provided the memory is accessed through the union type. So, the code above will work as expected. However, this code might not:</p>
<pre>
            int f() {
              a_union t;
              int* ip;
              t.d = 3.0;
              ip = &#038;t.i;
              return *ip;
            }
</pre>
<p>    Every language that wishes to perform language-specific alias analysis should define a function that computes, given an "tree" node, an alias set for the node. Nodes in different alias sets are not allowed to alias. For an example, see the C front-end function "c_get_alias_set".</p>
<p>    Enabled at levels -O2, -O3, -Os.
</p></blockquote>
<p>It is now clear what the problem is and writing my own implementation becomes trivial:</p>
<div class="syntax_hilite">
<div id="code-4">
<div class="code">union _data32 <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; long l;<br />
&nbsp; float f;<br />
<span style="color:#006600; font-weight:bold;">&#125;</span> data32;<br />
float Math::<span style="">rsqrt</span><span style="color:#006600; font-weight:bold;">&#40;</span> const float value <span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">// Implementation of the Newton Approximation of roots.</span><br />
&nbsp; &nbsp; long i;<br />
&nbsp; &nbsp; float x, y;<br />
&nbsp; &nbsp; const float f = <span style="color:#800000;">1</span>.5f;<br />
&nbsp; &nbsp; x = value * <span style="color:#800000;">0</span>.5f;<br />
&nbsp; &nbsp; y = value;<br />
&nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">// i = *(long *) &amp;y;</span><br />
&nbsp; &nbsp; data32.<span style="">f</span> = y;<br />
&nbsp; &nbsp; i = data32.<span style="">l</span>;<br />
&nbsp; &nbsp; i = 0x5f3759df - <span style="color:#006600; font-weight:bold;">&#40;</span>i&gt;&gt; <span style="color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">// y = *(float *) &amp;i;</span><br />
&nbsp; &nbsp; data32.<span style="">l</span> = i;<br />
&nbsp; &nbsp; y = data32.<span style="">f</span>;<br />
&nbsp; &nbsp; y = y * <span style="color:#006600; font-weight:bold;">&#40;</span>f - <span style="color:#006600; font-weight:bold;">&#40;</span>x * y * y<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">// Uncomment to calculate sqrt</span><br />
&nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">// y = y * (f - (x * y * y));</span><br />
&nbsp; &nbsp; return y;<br />
<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</div>
</div>
<p></p>
<p>- FIN -
</p>

496a
]]></content:encoded>
			<wfw:commentRSS>http://blog.reloadsystems.net/2009/11/08/avoid-dereferencing-in-carmacks-implementation-of-approximate-roots/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Triple Boot Vista, Linux and OSX</title>
		<link>http://blog.reloadsystems.net/2008/05/18/triple-boot-vista-linux-and-osx/</link>
		<comments>http://blog.reloadsystems.net/2008/05/18/triple-boot-vista-linux-and-osx/#comments</comments>
		<pubDate>Sun, 18 May 2008 22:41:16 +0000</pubDate>
		<dc:creator>michael_cowan</dc:creator>
		
	<category>Linux</category>
	<category>OSX</category>
		<guid isPermaLink="false">http://blog.reloadsystems.net/2008/05/18/triple-boot-vista-linux-and-osx/</guid>
		<description><![CDATA[  Recently I bought a new Vaio VGN-SZ and as per usual I immediately zeroed the drive and began creating my patented partition layout. It was here that I paused for a second and thought about my recent need for an Intel Mac. A quick Google later looking at the prices for a Mac Air, [...] ]]></description>
			<content:encoded><![CDATA[<p> Recently I bought a new Vaio VGN-SZ and as per usual I immediately zeroed the drive and began creating my patented partition layout. It was here that I paused for a second and thought about my recent need for an Intel Mac. A quick Google later looking at the prices for a Mac Air, and work on triple booting my Vaio was underway. The result of this work is documented below.</p>
<p>NOTE: I started by removing all partitions from the drive, including the VAIO recovery partition. This is not required and if preferred you can skip the first step in part 1.</p>
<p><strong>Software needed (other than Vista and a Linux distribution)</strong></p>
<ul>
<li>Kalyway Leopard 10.5.1 Installation DVD</li>
<li><a href="http://www.sysresccd.org">SystemRescueCD</a></li>
<li><a href="http://wiki.osx86project.org/wiki/index.php/Chain0">A copy of chain0 boot loader</a></li>
</ul>
<p>&nbsp;</p>
<p><strong>1. Setting up Windows Vista</strong></p>
<ul>
<li>I always start with a zeroed drive, so the first step is to install Windows Vista. The procedure for installing Vista is very simple and will not be covered here. When installing avoid using the entire drive to leave space for the other partitions required for Linux and OSX.</li>
<li>By default Vista will use the entire drive for itself. To reduce the size of the Windows partition:
<ul>
<li>Boot into Sys Rescue, type <code>startx</code> and run <code>gparted</code>.</li>
<li>Right click the Vista NTFS partition, select <i>Resize/Move</i> and change the size of the partition leaving enough space for Linux and OSX.</li>
<li>Click <i>Apply</i> to commit the changes made.
		</ul>
</li>
<li>While we're modifying the NTFS partition its a good time to create a HFS+ one for OSX:
<ul>
<li>Right click the unallocated partition, select <i>New</i>.</li>
<li>Enter a size for OSX and change the Filesystem to <i>unformatted</i>. Click <i>Apply</i> to make our partition changes. NOTE: We really want this partition to be hfs+ but the version of gparted I was using could not create this, requiring me to use unformatted and perform the next step.</li>
<li>Quit gparted and enter <code>fdisk /dev/sda</code> in the Terminal. Type <code>p</code> to see a list of partitions and note the number of the unformatted linux one (/dev/sda2 in my case). Enter <code>t</code> to change the partition type, enter the partition number and enter <code>af</code> as the hex code. Enter <code>w</code> to commit the changes and exit fdisk.</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p><strong>2. Setting up OSX Leopard</strong></p>
<ul>
<li>Restart the computer and insert the Kalyway Leopard 10.5.1 installation DVD. When the Darwin boot loader is displayed press F8 and enter <code>-v</code>. Wait for the installer to load, this can take some time.</li>
<li>Select your language and click past the welcome and license screens.</li>
<li>On the 'Select a Destination' screen click <i>Utilities -> Disk Utility</i>. In Disk Utility select the disk that is greyed out. This is the partition we created earlier for OSX. Click <i>Erase</i>, select 'Mac OS Extended (Journaled)' as the Volume Format and click <i>Erase</i>. Confirm the action and then close the Disk Utility.</li>
<li>Select the new disk added to the 'Select a Destination' screen and click <i>Continue</i>.</li>
<li>Click <i>Customize</i> on the Install Summary. Tick <i>Vanilla_Kernel ACPIPlatform</i>, open <i>Bootloaders EFI</i>, remove <i>BOOT_efi_guid</i> and tick <i>BOOT_efi_mbr</i>. Click <i>Done</i>.</li>
<li>Click <i>Install</i> and wait for the installation to complete.</li>
</ul>
<p>&nbsp;</p>
<p><strong>3. Setting up Linux</strong></p>
<ul>
<li>Restart the computer and insert the Linux DVD.</li>
<li>Install as normal with one exception; the option to install the boot loader to the Linux partition and <strong>not</strong> the default MBR must be selected.</li>
</ul>
<p>&nbsp;</p>
<p><strong>4. Preparing the boot options</strong></p>
<ul>
<li>Boot into Sys Rescue</li>
<li>Activate the Vista partition - Enter <code>fdisk /dev/sda</code> in the bash shell Type <code>p</code> to see a list of partitions and note the number of the one marked as Boot (/dev/sda2 in my case) and the number of the Linux boot partition (/dev/sda4 in my case). Enter <code>a</code> to change the partition boot option then enter the partition number. Repeat the last operation this time toggling partition 1. This activates the Vista partition as boot. Enter <code>w</code> to commit the changes and exit.</li>
<li>Mount the Vista partition - Enter <code>ntfs-3g /dev/sda1 /mnt/windows</code> in the shell.</li>
<li>Copy the Linux boot sector - Enter <code>dd if=/dev/sda4 of=/mnt/windows/linux.boot bs=512 count=1</code> to copy the Linux boot sector. NOTE: replace the sda number with that noted from fdisk.</li>
<li>Unmount the Vista partition - Enter <code>umount /mnt/windows</code></li>
<li>Because changes have been made to the NTFS partition Vista will need to recover from the shock. To do this restart the computer, insert the Vista DVD and when asked select </i>Repair and restart</i>. Allow the process to complete and remove the DVD when the computer restarts. Boot into Windows Vista and allow CHKDSK to run if it starts.</li>
</ul>
<p>&nbsp;</p>
<p><strong>5. Putting it all together</strong></p>
<ul>
<li>Open a Command Prompt in Vista as administrator and enter the following commands to add Linux to the Vista bootloader.<br/>NOTE (replace ID with the number returned by the first command)
<ul>
<li><code>bcdedit /create /d "Linux" /application bootsector</code></li>
<li><code>bcdedit /set {ID} device boot</code> </li>
<li><code>bcdedit /set {ID} path \linux.boot</code></li>
<li><code>bcdedit /displayorder {ID} /addlast</code></li>
</ul>
</li>
<li>Download the chain0 bootloader and copy it to c:\osx.boot</li>
<li>Repeat the bcdedit commands for OSX replacing the description and path to the bootloader
</ul>
<p>- FIN -
</p>
]]></content:encoded>
			<wfw:commentRSS>http://blog.reloadsystems.net/2008/05/18/triple-boot-vista-linux-and-osx/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>X-Clamp Replacement and Shroud Mod (360 RoL Fix)</title>
		<link>http://blog.reloadsystems.net/2007/08/14/x-clamp-replacement-and-shroud-mod-360-rol-fix/</link>
		<comments>http://blog.reloadsystems.net/2007/08/14/x-clamp-replacement-and-shroud-mod-360-rol-fix/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 13:55:55 +0000</pubDate>
		<dc:creator>michael_cowan</dc:creator>
		
	<category>XBOX 360</category>
		<guid isPermaLink="false">http://blog.reloadsystems.net/2007/08/14/x-clamp-replacement-and-shroud-mod-360-rol-fix/</guid>
		<description><![CDATA[  Since my previous attempts to increase stability on my crashing xbox 360 (crashed every 1.5 hours) and subsequent death of my main gaming 360 (RoL - 3 lights of death) I have been reading a lot about the suspected causes of the issues widely seen on the console.
The following is a guide to the [...] ]]></description>
			<content:encoded><![CDATA[<p> Since my <a href="http://blog.reloadsystems.net/2007/07/16/two-360-cooling-modifications-with-a-talismoon-whisper-fan-arctic-silver-and-a-soldering-iron/">previous attempts</a> to increase stability on my crashing xbox 360 (crashed every 1.5 hours) and subsequent death of my main gaming 360 (RoL - 3 lights of death) I have been reading a lot about the suspected causes of the issues widely seen on the console.</p>
<p>The following is a guide to the work I carried out that has so far proven to be a permanent fix for <strong>both</strong> of my dead 360's and something I recommend all 360 owners (with no warranty) do, even before the dreaded 'Ring of Death'. Based on the findings of <a href="http://rbjtech.bulldoghome.com/pages/rbjtech_bulldoghome_com/XClamp.htm">RBJTech</a>, these mods are less evasive, simple and reversible (pretty much).</p>
<p>The following is a list of the parts I used and tools required:</p>
<table>
<tr>
<td>Part Description</td>
<td>Notes</td>
</tr>
<tr>
<td>(8) - button head M5 x 20mm screws</td>
<td>Ideally use M5 x 15mm. 4 of the bolts will need to be cut to 15mm</td>
</tr>
<tr>
<td>(60) - 5mm washers</td>
<td>These should be approximately 0.9mm thick</td>
</tr>
<tr>
<td><a href="http://www.arcticsilver.com/as5.htm">Arctic Silver 5</a> thermal compound</td>
<td>To replace the thermal paste used by the factory</td>
</tr>
<tr>
<td><a href="http://en.wikipedia.org/wiki/Isopropyl_alcohol">Isopropyl Alcohol</a> solution</td>
<td>Used to remove the old thermal grease. Lighter fluid can be used</td>
</tr>
<tr>
<td>Small piece of Aluminum sheet approximately 0.5mm thick</td>
<td>Used to cut a shim for the GPU</td>
</tr>
<tr>
<td>Insulation tape and card</td>
<td>Increase and separate air flow in the shroud</td>
</tr>
</table>
<table>
<tr>
<td><a href="http://www.xcm.cc/xcm_360_unlock_kit.htm">XCM unlock kit</a></td>
<td>Or similar - optionally <a href="http://www.clevermod.com/index.php?article=24">make your own</a></td>
</tr>
<tr>
<td>T9 <a href="http://en.wikipedia.org/wiki/ISO_10664">Torx </a>screwdriver</td>
<td>Used to remove the heat sink screws</td>
</tr>
<tr>
<td>T10 <a href="http://en.wikipedia.org/wiki/ISO_10664">Torx </a>screwdriver</td>
<td>Used to remove the case screws (A T9 will also work)</td>
</tr>
<tr>
<td>Long nose pliers</td>
<td>To remove the X clamps</td>
</tr>
<tr>
<td>Tin snips</td>
<td>For cutting an Aluminum shim</td>
</tr>
<tr>
<td>5mm drill bit and drill</td>
<td>Expanding the heat sink mount holes</td>
</tr>
</table>
<p><strong>1. Strip the Console</strong></p>
<p>The first step is to strip the 360 and remove the heat sinks. Try and work on a large flat surface and I advise the use of an <a href="http://en.wikipedia.org/wiki/Antistatic_wrist_strap">anti static wrist band</a>. XCM have provided a good <a href="http://www.xcm.cc/How_to_disassemble_the%20xbox_360_case.htm">tutorial </a>for using there unlock kit, so I wont provide too much detail here.</p>
<ul>
<li>Start by removing the face and top and bottom covers. Split the case and remove the bottom half.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007061.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007061.jpg" alt="" /></a>
</li>
<li>Remove the DVD drive, cables, shroud, fans and RF unit (the front panel with 4 LED's). The plastic cover on the RF unit will need to be removed to reveal the 3rd T9 screw.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007062.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007062.jpg" alt="" /></a>
</li>
<li>Flip the console over. You will be able to see the 8 T9 screws that hold the heat sinks on. Remove these then remove the remaining T10 screws.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007063.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007063.jpg" alt="" /></a>
</li>
<li>Remove the board. This is best done by lifting the front first and letting it slide out.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007064.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007064.jpg" alt="" /></a>
</li>
<li>Turn the board over to reveal the X clamps that need replaced. To remove the clamps I used a pair of long nose pliers and carefully twisted the ends until they came free. This can take some considerable effort but <strong>must be done with extreme care</strong>. If any of the delicate surface mount components are damaged the xbox will not be easy to repair.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007065.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007065.jpg" alt="" /></a>
</li>
<li>Remove the mount screws from the heat sinks. The clamps, mount screws and plastic spacers will not be needed again.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007066.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007066.jpg" alt="" /></a>
</li>
<li>You can now see the exposed GPU and CPU. To clean the old thermal paste, lighter fluid can be used.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007067.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007067.jpg" alt="" /></a>&nbsp;<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007068.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007068.jpg" alt="" /></a>
</li>
</ul>
<p><strong>2. X-Clamp Replacement Modification</strong></p>
<ul>
<li>Drill the 8 heat sink holes to 5mm and remember to clean the case after. To seat the board properly in the case and to avoid bending, washers are used to match the height of the seats pressed into the case. I used 5 washers totaling to 4.5mm but I would say 4.3mm is ideal.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007071.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007071.jpg" alt="" /></a>
</li>
<li>Insert the 8 button screws through the mount holes and hold in place with tape on the back. If you only have 4 15mm screws then use these on the GPU (left) side of the case. Put 5 washers on each of the screws.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007074.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007074.jpg" alt="" /></a>
</li>
<li>Cut a shim measuring 25x15x0.5mm from flat Aluminum. Put fresh thermal paste on the GPU and CPU. Place the shim over the GPU and add more thermal paste.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007075.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007075.jpg" alt="" /></a>
</li>
<li>Replace the board into the case, using the tip of a screwdriver to help align the screws  into the holes. Place 2 washers on each of the GPU screws. Place 1 washer on each of the CPU screws. Turn the case onto its side, holding the GPU heat sink in place and carefully turn each screw till it beds. Slowly tighten each screw equally until the heat sink is sitting properly and on tight. Do the same with the CPU heat sink.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007076.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007076.jpg" alt="" /></a>&nbsp;<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007077.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007077.jpg" alt="" /></a>&nbsp;<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007078.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007078.jpg" alt="" /></a>&nbsp;<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007079.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007079.jpg" alt="" /></a>
</li>
<ul>
<p><strong>3. Shroud Modification</strong></p>
<ul>
<li>To split the air flow evenly, a piece of card 53x78mm is used. This has a section 12x22mm removed from one corner. To help remove airflow from the DVD drive, a piece of card 90x70mm is used. Hold these pieces in place with tape. A tab will need to be cut into the air flow separator to allow it to fit properly.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007081.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007081.jpg" alt="" /></a>
</li>
<li>Replace the fans and shroud onto the console. Cut a piece of card 25x65mm to increase airflow to the CPU heat sink. As before tape into place but add another piece to hold securely to the heat sink. Replace the cables, DVD drive and RF unit.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007082.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007082.jpg" alt="" /></a>&nbsp;<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007083.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007083.jpg" alt="" /></a>
</li>
<li>Reassemble the case and power on the console. You may need to power cycle a few times before the unit powers as normal. Try running a game and notice that the air flow from the fans is hotter than normal. This is <strong>good</strong> and shows that the modification is working as more heat is being removed than before. If the issue remains check that the bolts are on tight and making good contact.<br />
<a href="http://blog.reloadsystems.net/photos?path=blog/360_Clamp_Shroud_Mod&#038;f=12082007060.jpg"><img src="http://blog.reloadsystems.net/wp-content/uploads/blog/360_Clamp_Shroud_Mod/12082007060.jpg" alt="" /></a>
</li>
<li>X-clamp replacement and shroud modification is clearly better than your mother
</li>
</ul>
<p>- FIN -<br />
<style type="text/css">* img { width: 100px; }</style></p>

2568
]]></content:encoded>
			<wfw:commentRSS>http://blog.reloadsystems.net/2007/08/14/x-clamp-replacement-and-shroud-mod-360-rol-fix/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Useful Terminology</title>
		<link>http://blog.reloadsystems.net/2007/07/27/useful-terminology/</link>
		<comments>http://blog.reloadsystems.net/2007/07/27/useful-terminology/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 10:29:23 +0000</pubDate>
		<dc:creator>michael_cowan</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://blog.reloadsystems.net/2007/07/27/useful-terminology/</guid>
		<description><![CDATA[  This is a list of some of the terminology used in this site that you may not be familiar with. Please feel free to suggest additions for this list...
AUTOMAGICALLY /aw-toh-maj'i-klee/ adv. Automatically, but in a way that, for some reason (typically because it is too complicated, or too ugly, or perhaps even too trivial), [...] ]]></description>
			<content:encoded><![CDATA[<p> This is a list of some of the terminology used in this site that you may not be familiar with. Please feel free to suggest additions for this list...</p>
<p><a id="AUTOMAGICALLY"><strong>AUTOMAGICALLY</strong></a> <em>/aw-toh-maj'i-klee/ adv</em>. Automatically, but in a way that, for some reason (typically because it is too complicated, or too ugly, or perhaps even too trivial), the speaker doesn't feel like explaining to you.</p>
<p><a id="TESTICULATING"><strong>TESTICULATING</strong></a>. Waving your arms around and talking Bollocks. </p>
<p><a id="BLAMESTORMING"><strong>BLAMESTORMING</strong></a>. Sitting around in a group, discussing why a deadline was missed or a project failed, and who was responsible. </p>
<p><a id="SEAGULL MANAGER"><strong>SEAGULL MANAGER</strong></a>. A manager, who flies in, makes a lot of noise, craps on everything, and then leaves. </p>
<p><a id="ASSMOSIS"><strong>ASSMOSIS</strong></a>. The process by which people seem to absorb success and advancement by sucking  up to the boss rather than working hard. </p>
<p><a id="SALMON DAY"><strong>SALMON DAY</strong></a>. The experience of spending an entire day swimming upstream only to get screwed and die. </p>
<p><a id="CUBE FARM"><strong>CUBE FARM</strong></a>. An office filled with cubicles. </p>
<p><a id="PRAIRIE DOGGING"><strong>PRAIRIE DOGGING</strong></a>. When someone yells or drops something loudly in a cube farm, and people's heads pop up over the walls to see what's going on.  (This also applies to applause for a promotion because there may be cake.) </p>
<p><a id="SITCOMs"><strong>SITCOMs</strong></a>. Single Income, Two Children, Oppressive Mortgage. What yuppies turn into when they have children and one of them stops working to stay home with the kids or start a "home business".</p>
<p><a id="STRESS PUPPY"><strong>STRESS PUPPY</strong></a>. A person who seems to  thrive on being stressed out and whiny.   </p>
<p><a id="PERCUSSIVE MAINTENANCE"><strong>PERCUSSIVE MAINTENANCE</strong></a>. The fine art of  whacking the crap out of an electronic device to get it to work again. </p>
<p><a id="ADMINISPHERE"><strong>ADMINISPHERE</strong></a>. The rarefied organizational layers beginning just above the rank and file.  Decisions that fall from the "adminisphere" are often  profoundly inappropriate or irrelevant to the problems they were designed to solve.  This is often affiliated with the dreaded "administrivia" -- needless paperwork and processes. </p>
<p><a id="404"><strong>404</strong></a>.  Someone who's clueless. From the World Wide Web error message "404  Not Found," meaning that the requested document could not be located. </p>
<p><a id="OHNOSECOND"><strong>OHNOSECOND</strong></a>. That minuscule fraction of time in which you realize that you've just made a  BIG mistake (e.g. you've hit 'reply all') </p>
<p><a id="McPOO"><strong>McPOO</strong></a>. Entering a fast food restaurant with no intention of buying food, you're just going to the bog.  If challenged by a pimply staff member,  your declaration to them that you'll buy their food afterwards is known as a McPOO with Lies. </p>
<p><a id="AEROPLANE BLONDE"><strong>AEROPLANE BLONDE</strong></a>. One who has bleached/dyed her hair but still has a 'black box'. </p>
<p><a id="AUSSIE KISS"><strong>AUSSIE KISS</strong></a>. Similar to a French Kiss, but given down under. </p>
<p><a id="BEER COMPASS"><strong>BEER COMPASS</strong></a>. The invisible device that ensures your safe arrival home after booze cruise,  even though you're too drunk to remember where you live, how you got here, and  where you've come from.   </p>
<p><a id="GREYHOUND"><strong>GREYHOUND</strong></a>. A very short skirt, only an inch from the hare. </p>
<p><a id="MONKEY BATH"><strong>MONKEY BATH</strong></a>. A bath so hot, that when lowering yourself in, you go:"Oo!Oo!Oo!   Aa!Aa!Aa!". </p>
<p><a id="PICASSO BUM"><strong>PICASSO BUM</strong></a>. A woman whose knickers are too small for her, so she looks like she's got four  buttocks </p>
]]></content:encoded>
			<wfw:commentRSS>http://blog.reloadsystems.net/2007/07/27/useful-terminology/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Guitar Scale Formula</title>
		<link>http://blog.reloadsystems.net/2007/07/24/guitar-scale-formula/</link>
		<comments>http://blog.reloadsystems.net/2007/07/24/guitar-scale-formula/#comments</comments>
		<pubDate>Tue, 24 Jul 2007 14:23:41 +0000</pubDate>
		<dc:creator>michael_cowan</dc:creator>
		
	<category>Theory and Formulas</category>
		<guid isPermaLink="false">http://blog.reloadsystems.net/2007/07/24/guitar-scale-formula/</guid>
		<description><![CDATA[  Last week I found myself wanting for a simple guitar application containing a number of fairly simple utilities that could replace all the books, charts and little devices each with there own specific task. Being as awkward as I am it wasn't long before I was looking into how to solve these problems myself.
Worse [...] ]]></description>
			<content:encoded><![CDATA[<p> Last week I found myself wanting for a simple guitar application containing a number of fairly simple utilities that could replace all the books, charts and little devices each with there own specific task. Being as awkward as I am it wasn't long before I was looking into how to solve these problems myself.</p>
<p><strong>Worse Case</strong><br />
First up I have to find a way for the application to hold guitar scales. At first this seemed like a task of titanic proportions. I figured I would want to store at least 15 scales, in all 12 keys up to at least the 12th fret. The average scale has around 6 notes per key which let me estimate there will be around 35 notes per key in a scale, or a total of <em>35*15*12 = 6300</em> notes in the scope I set. Given that each note can be one of twelve (A - Ab), each note can be represented as a byte giving a data storage size of around 6.5k. This doesn't sound too bad, until you consider the scope for error. Storing 6.5k of data is one thing but bug checking it is something quite different.</p>
<p><strong>Typical Design</strong><br />
Luckily this would be a very bad design. An application would not need to store every note in a scale that is visible on the neck, only the notes used in the scale itself which averages out around 6 notes. This cuts the data size to <em>12*6 = 72</em> values per scale and <em>15*72 = 1080</em> for the scope of the project. A good start but there is a better way.</p>
<p><strong>Scale Formula</strong><br />
This is where the scale formula comes in. The formula works by representing each note in the scale by its relation to the major scale. This would mean that a value of b3 would represent a note a half step lower than the 3rd note of the major scale in the same key. This makes it sound more confusing that it really is and can better be explained with an example.</p>
<p><strong>Example</strong><br />
This example will use the minor pentatonic scale in the key of E. The minor pentatonic scale formula is 1, b3, 4, 5, b7.</p>
<p>First lets look at all the formula and note values, which is based on the major scale (this starting point is the same for any scale or key you want to work out):</p>
<pre>
formula: 1  b2 2  b3 3  4  b5 5  b6 6  b7 7
notes:   A  A# B  C  Db D  D# E  F  F# G  Ab
</pre>
<p>Now we need to shift the formula list so it starts on the note of the key we want. In this example the key we want is E. This is shown below:</p>
<pre>
formula: 1  b2 2  b3 3  4  b5 5  b6 6  b7 7
notes:   E  F  F# G  Ab A  A# B  C  Db D  D#
</pre>
<p>Now we use the scale formula to get the correct notes for this scale:</p>
<pre>
formula: 4  5  b7 1  b3
notes:   A  B  D  E  G
</pre>
<p>The notes left are the E minor pentatonic scale.</p>
<p><strong>Method Comparison</strong></p>
<table cellpadding="0" cellspacing="0">
<tr>
<td>&nbsp;</td>
<td>Typical</td>
<td>Formula</td>
</tr>
<tr>
<td>average values per scale</td>
<td>72</td>
<td>6</td>
</tr>
<tr>
<td>total values for 15 scales</td>
<td>1080</td>
<td>90</td>
</tr>
</table>
<p>Not only does this mean that a huge number of scales can be stored with very little data but it also means that testing is minimized to checking the formulas only. And because the values are calculated and not stored it means that the application no longer has to limit the number of frets it supports due to storage or testing.</p>
<p>But thats not all; not only does this work for all scales, it can be used in exactly the same way to represent any chord. Very handy when writing a guitar application.</p>
<p>- FIN -</p>

24e3
]]></content:encoded>
			<wfw:commentRSS>http://blog.reloadsystems.net/2007/07/24/guitar-scale-formula/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Properly Centering a DIV</title>
		<link>http://blog.reloadsystems.net/2007/07/23/properly-centering-a-div/</link>
		<comments>http://blog.reloadsystems.net/2007/07/23/properly-centering-a-div/#comments</comments>
		<pubDate>Mon, 23 Jul 2007 16:36:59 +0000</pubDate>
		<dc:creator>michael_cowan</dc:creator>
		
	<category>CSS</category>
		<guid isPermaLink="false">http://blog.reloadsystems.net/2007/07/23/properly-centering-a-div/</guid>
		<description><![CDATA[  During the development of a scenic designers web site, I came across something I didn't expect to be an issue. What is required is a div with the following properties:

a set width and height
vertically and horizontally centered in the browser window
correctly displayed on both FireFox and Internet Explorer (these as the browsers most used [...] ]]></description>
			<content:encoded><![CDATA[<p> During the development of a scenic designers web site, I came across something I didn't expect to be an issue. What is required is a div with the following properties:</p>
<ul>
<li>a set width and height</li>
<li>vertically and horizontally centered in the browser window</li>
<li>correctly displayed on both <a href="http://www.mozilla.com/firefox/">FireFox</a> and <a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx">Internet Explorer</a> (these as the browsers most used with the site)</li>
<li>repositions itself as the browser window changes size</li>
</ul>
<p>The most obvious solution would be to use auto margins. By setting the container of the div using min-width the margins would <a href="http://blog.reloadsystems.net/2007/07/27/useful-terminology/#AUTOMAGICALLY">automagically</a> keep the div centered (well it should but Internet Explorer once again proves that M$ can't read and required a hack using text-align). Unfortunately this only works to align horizontally.</p>
<p>The best solution to this that I could find was to set the absolute position of the div with left and top set to 50%. However this is only half the story because this will set the top left of the div to the center of the screen. To correct for the width and height of the div appropriate margins are set. An example is shown below:</p>
<div class="syntax_hilite">
<div id="code-6">
<div class="code">div.<span style="">container</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; &nbsp;position:&nbsp; &nbsp; &nbsp;absolute;<br />
&nbsp; &nbsp; &nbsp;left:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#800000;">50</span>%;<br />
&nbsp; &nbsp; &nbsp;top:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#800000;">50</span>%;<br />
&nbsp; &nbsp; &nbsp;width:&nbsp; &nbsp; &nbsp; &nbsp; 600px;<br />
&nbsp; &nbsp; &nbsp;height:&nbsp; &nbsp; &nbsp; &nbsp;400px;<br />
&nbsp; &nbsp; &nbsp;margin-left:&nbsp; -300px;&nbsp; &nbsp;<span style="color:#008000;">/* Must be half the width */</span><br />
&nbsp; &nbsp; &nbsp;margin-top:&nbsp; &nbsp;-200px;&nbsp; &nbsp;<span style="color:#008000;">/* Must be half the height */</span><br />
<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</div>
</div>
<p></p>
<p>- FIN -</p>
]]></content:encoded>
			<wfw:commentRSS>http://blog.reloadsystems.net/2007/07/23/properly-centering-a-div/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Cross Browser Semi-Transparent DIV</title>
		<link>http://blog.reloadsystems.net/2007/07/20/cross-browser-semi-transparent-div/</link>
		<comments>http://blog.reloadsystems.net/2007/07/20/cross-browser-semi-transparent-div/#comments</comments>
		<pubDate>Fri, 20 Jul 2007 14:51:39 +0000</pubDate>
		<dc:creator>michael_cowan</dc:creator>
		
	<category>CSS</category>
		<guid isPermaLink="false">http://blog.reloadsystems.net/2007/07/20/cross-browser-semi-transparent-div/</guid>
		<description><![CDATA[  I was recently asked to design a new website for a bikes company. They wanted to use a large background image with a semi-transparent (opaque) div box to contain each pages main content. My first thought was to use filters through CSS. Although filters lie outside the scope of both the CSS1 and CSS2 [...] ]]></description>
			<content:encoded><![CDATA[<p> I was recently asked to design a new website for a bikes company. They wanted to use a large background image with a semi-transparent (opaque) div box to contain each pages main content. My first thought was to use filters through CSS. Although filters lie outside the scope of both the <a href="http://www.w3.org/TR/REC-CSS1">CSS1</a> and <a href="http://www.w3.org/TR/REC-CSS2/">CSS2</a> definitions, the mechanism through which they are called is part of CSS. More recently <a href="http://www.w3.org/Style/CSS/current-work">CSS3 </a>has a new property in an attempt to unite browsers. These properties are shown below:</p>
<pre>
Internet Explorer              filter: alpha(opacity=50);
Mozilla                        -moz-opacity: 50%;
CSS3                           opacity: 0.5;
</pre>
<p>For compatibility it is recommended to use all three.</p>
<p>The problem with this is consistency. If a div is created with it's opacity set to 50% using the mentioned methods, different browsers produce different results. Mozilla browsers (rather annoyingly, correctly) apply this opacity to all child elements within the div. So any text, images or even scroll bars are also set to 50% opacity. This is true even if you try to apply an opacity of 100% to these child elements. This is because the 100% you apply to them is 100% of the 50% they currently have. Internet Explorer does not suffer from this and although more desirable, is not consistent with the CSS definition. A new solution needed to be found with the following requirements:</p>
<ul>
<li>Works on both browsers (IE and Mozilla being the most common browsers visiting the site)</li>
<li>Does not suffer from the 'child inheritance' problem</li>
<li>Has no noticeable negative performance impact</li>
</ul>
<p>The solution I came up with lay in the <a href="http://www.w3.org/Graphics/PNG/">PNG </a>image format. I wanted to use a 1x1px image of opacity 30% and tile it across the div as its background. This would give the same result at setting the opacity of the div but without using the CSS properties and having the child inheritance problem. However PNG has it's own issues with support in Internet Explorer which requires a <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;294714">work around</a> supplied by Microsoft. So to set the background image of a div to a PNG file, the following can be used:</p>
<pre>
Mozilla            background-image: url(box_bg.png);
Internet Explorer  filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale src='box_bg.png');
</pre>
<p>A final problem with the Microsoft fix in Internet Explorer is that if the standard (Mozilla) method is also included in a div, then the incorrectly rendered PNG image covers the fixed one. To get past this you can exploit Explorers lack of support for <a href="http://www.w3.org/TR/CSS21/selector.html#attribute-selectors">attribute selectors</a>. This allows you to place the Explorer fix in the div (which Mozilla will ignore as it is an Explorer filter: attribute) and the Mozilla method in an attribute selector for it (which Explorer doesn't support).<br />
The final div CSS is shown below:</p>
<div class="syntax_hilite">
<div id="code-8">
<div class="code">.<span style="">transbox</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; width:&nbsp; 300px;<br />
&nbsp; &nbsp; margin: 10px;<br />
&nbsp; &nbsp; border: 2px solid black;<br />
&nbsp; &nbsp; <span style="color:#008000;">/* Mozilla will ignore this as is it a M$ filter */</span><br />
&nbsp; &nbsp; filter:progid:DXImageTransform.<span style="">Microsoft</span>.<span style="">AlphaImageLoader</span><span style="color:#006600; font-weight:bold;">&#40;</span>enabled=true,sizingMethod=scale src=<span style="color:#CC0000;">'semitransparentpixel.png'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#006600; font-weight:bold;">&#125;</span><br />
.<span style="">transbox</span><span style="color:#006600; font-weight:bold;">&#91;</span>class<span style="color:#006600; font-weight:bold;">&#93;</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color:#008000;">/* IE will ignore this as it doesnt support styles with [attributes]*/</span><br />
&nbsp; &nbsp; background-image: url<span style="color:#006600; font-weight:bold;">&#40;</span>semitransparentpixel.<span style="">png</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</div>
</div>
<p></p>
<p>Unfortunately this is still far from a prefect solution. Should Internet Explorer support attribute selectors in the future, then we are back to the background cover up problem. We can only hope that Microsoft sorts out its PNG problems before this ... or, perhaps all browsers will finally unite in their interpretation of opacity in CSS3 and allow the designer to decide if child elements inherit their parents transparency. We can only hope.</p>
<p>- FIN -</p>

2565
]]></content:encoded>
			<wfw:commentRSS>http://blog.reloadsystems.net/2007/07/20/cross-browser-semi-transparent-div/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Two 360 Cooling Modifications with a Talismoon Whisper Fan, Arctic Silver and a Soldering Iron</title>
		<link>http://blog.reloadsystems.net/2007/07/16/two-360-cooling-modifications-with-a-talismoon-whisper-fan-arctic-silver-and-a-soldering-iron/</link>
		<comments>http://blog.reloadsystems.net/2007/07/16/two-360-cooling-modifications-with-a-talismoon-whisper-fan-arctic-silver-and-a-soldering-iron/#comments</comments>
		<pubDate>Mon, 16 Jul 2007 14:24:27 +0000</pubDate>
		<dc:creator>michael_cowan</dc:creator>
		
	<category>XBOX 360</category>
		<guid isPermaLink="false">http://blog.reloadsystems.net/2007/07/16/two-360-cooling-modifications-with-a-talismoon-whisper-fan-arctic-silver-and-a-soldering-iron/</guid>
		<description><![CDATA[  For a short time play.com were selling core xbox 360's for £149.99 delivered - so, sticking to my if it ain't broke, take it apart and fix it philosophy, I took the opportunity to have a second x360 to experiment with more than I normally would with my main gaming machine.
When the console arrived [...] ]]></description>
			<content:encoded><![CDATA[<p> For a short time <a href="http://www.play.com/">play.com</a> were selling core xbox 360's for £149.99 delivered - so, sticking to my <strong>if it ain't broke, take it apart and fix it</strong> philosophy, I took the opportunity to have a second x360 to experiment with more than I normally would with my main gaming machine.</p>
<p>When the console arrived it was immediately identified as having an Hitachi DVD drive with the 78FK bios and I couldn't resist putting to practice the <a href="http://www.xbox-scene.com/xbox1data/sep/EEyyFZpAZkkQIEfzBL.php">recent work by Maximus</a>. Unfortunately I later found that the 360 suffered from stability issues and tended to crash approximately every half hour (an issue unrelated to the flash). My first suspicion was that heat was the problem (it is also known that the <a href="http://www.theinquirer.net/default.aspx?article=27930">power supply</a> or even <a href="http://www.igniq.com/2006/03/more-xbox-360-crashes-reported.html">live updates</a> have been causing some people issues) and with my warranty still warm and lying in tatters on the floor, I set about looking for third party solutions.</p>
<p>An obvious start is to remove the <a href="http://en.wikipedia.org/wiki/Image:IBMxenon.jpg">poor quality thermal compound</a> that Microsoft use and replace it with a high quality counterpart e.g. <a href="http://www.arcticsilver.com/">Arctic Silver</a>. Secondly a simple drop in replacement for the (in my opinion) under powered fans is an easy upgrade to perform. I choose the <a href="http://www.talismoon.eu/cgi-bin%2Fmultipage/engine.pl?function=viewid&#038;id=RKS00051&#038;cat=XBOX360-TUNING">Talismoon Whisper Fan (in green)</a>.</p>
<p>These simple modifications did show a small improvement in both noise and airflow, however provided only a 2-3 degree drop in CPU and GPU temperature when under heavy load.</p>
<p>Next I decided to modify the stock fans to run at their designed 12v instead of the 6v supplied by the 360. This is done by removing the two positive pins in the fan's plastic power block then connecting the wires together and to a 12v supply. There are plenty of good 12v spots on the 360 motherboard to use but be careful when choosing one to make sure the supply is cut when the 360 is turned off - not all of them do.</p>
<p>This modification had two extreme effects. Firstly the noise from the fans is unbelievably loud. And I don`t mean 'the 360 is so loud in comparison to the PS3' loud, I mean Harrier Jump jet loud. And secondly, the temperature drop is equally unbelievable. At idle both CPU and GPU temperatures were way below room temperature and under load there was not much change. <em>more accurate numbers to follow</em></p>
<p>Unfortunately even this impressive temperature drop in both core and case temperatures had no affect on the stability of my 360. And even more unfortunate for me, it was about this time that my original 360 finally buckled and I got my first taste of the <a href="http://support.microsoft.com/kb/907534">3 lights of death</a>. I think the modified 360 will be going to <a href="http://www.gtelectronics.co.uk">GT electronics</a> in Dundee to get fixed, however I`m tempted to try and bring the RoL 360 back using the heat gun technique ... updates to follow.</p>
<p>- FIN -</p>
]]></content:encoded>
			<wfw:commentRSS>http://blog.reloadsystems.net/2007/07/16/two-360-cooling-modifications-with-a-talismoon-whisper-fan-arctic-silver-and-a-soldering-iron/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Left Soft Key Unresponsive After SMS Interrupt on Nokia 5500d</title>
		<link>http://blog.reloadsystems.net/2007/07/16/left-soft-key-unresponsive-after-sms-interrupt-on-nokia-5500d/</link>
		<comments>http://blog.reloadsystems.net/2007/07/16/left-soft-key-unresponsive-after-sms-interrupt-on-nokia-5500d/#comments</comments>
		<pubDate>Mon, 16 Jul 2007 10:14:24 +0000</pubDate>
		<dc:creator>michael_cowan</dc:creator>
		
	<category>Mobile/Cellular Devices</category>
	<category>Nokia 5500d</category>
		<guid isPermaLink="false">http://blog.reloadsystems.net/2007/07/16/left-soft-key-unresponsive-after-sms-interrupt-on-nokia-5500d/</guid>
		<description><![CDATA[  This is an old issue I hoped I would never have to deal with again as it is caused by a Nokia application distributed with some of their devices. The application in question is the SMS reader which uses a speech synthesizer to read any unread messages when the user holds the left soft [...] ]]></description>
			<content:encoded><![CDATA[<p> This is an old issue I hoped I would never have to deal with again as it is caused by a Nokia application distributed with some of their devices. The application in question is the SMS reader which uses a speech synthesizer to read any unread messages when the user holds the left soft key.</p>
<p>During compatibility testing an issue was occasionally reported among a variety of applications regarding the left soft key becoming unresponsive. This is normally a very rare bug to find as all key groups (numerical, directional and softkeys) are treated the same in most application and each group either all work, or all don`t. After some investigation by QA a finger was very quickly pointed in the direction of the SMS reader application.</p>
<p>It did not take long to realize that the issue lay in the calling of keyPressed and keyReleased. A small test application later and it became apparent that the underlying OS was hogging the LSK looking for an extended key press so it could start the SMS reader. The result in the JVM was that keyPressed and keyReleased were being called on the same tick, so in the application nothing happened.</p>
<p>The fix is to detect if keyPressed and keyReleased are called on the same tick when the LSK is pressed. If this condition occurs, keyReleased returns to allow the application to detect and handle the key press. A tick counter is something that many applications have and is handy to fix such bugs. An example is shown:</p>
<div class="syntax_hilite">
<div id="j2me-10">
<div class="j2me"><span style="color: #7F0055; font-weight: bold;">int</span> lskPressedTick = <span style="color: #000000;">0</span>;<br />
<span style="color: #7F0055; font-weight: bold;">protected</span> <span style="color: #7F0055; font-weight: bold;">final</span> <span style="color: #7F0055; font-weight: bold;">void</span> keyPressed<span style="color: #000000;">&#40;</span><span style="color: #7F0055; font-weight: bold;">int</span> nCode<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #7F0055; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span> nCode == Device.<span style="color: #000000;">KEY_LSK</span> <span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3F7F5F; font-style: italic;">// -6 on Nokia devices</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; lskPressedTick = tickCounter;<br />
&nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
&nbsp; &nbsp; .<br />
&nbsp; &nbsp; .<br />
&nbsp; &nbsp; .<br />
<span style="color: #000000;">&#125;</span><br />
<span style="color: #7F0055; font-weight: bold;">protected</span> <span style="color: #7F0055; font-weight: bold;">final</span> <span style="color: #7F0055; font-weight: bold;">void</span> keyReleased<span style="color: #000000;">&#40;</span><span style="color: #7F0055; font-weight: bold;">int</span> nCode<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #7F0055; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span> nCode == Device.<span style="color: #000000;">KEY_LSK</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &amp;&amp; lskPressedTick == tickCounter <span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #7F0055; font-weight: bold;">return</span>;<br />
&nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
&nbsp; &nbsp; .<br />
&nbsp; &nbsp; .<br />
&nbsp; &nbsp; .<br />
<span style="color: #000000;">&#125;</span></div>
</div>
</div>
<p></p>
<p>- FIN -</p>

c4
]]></content:encoded>
			<wfw:commentRSS>http://blog.reloadsystems.net/2007/07/16/left-soft-key-unresponsive-after-sms-interrupt-on-nokia-5500d/feed/</wfw:commentRSS>
		</item>
	</channel>
</rss>

0

