<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Toni Westbrook dot Com</title>
	
	<link>http://www.toniwestbrook.com</link>
	<description>Sharing Software Development Knowledge With You</description>
	<lastBuildDate>Mon, 06 Sep 2010 01:46:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ToniWestbrookDotCom" /><feedburner:info uri="toniwestbrookdotcom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Follow Along On Twitter!</title>
		<link>http://feedproxy.google.com/~r/ToniWestbrookDotCom/~3/nfS-po9Z3VQ/281</link>
		<comments>http://www.toniwestbrook.com/archives/281#comments</comments>
		<pubDate>Mon, 06 Sep 2010 01:46:12 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[Website News]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=281</guid>
		<description><![CDATA[For those interested, I finally bit the bullet and created a Twitter account. Follow all the programming, retrocomputer, and engineering madness! @ToniWestbrook http://www.twitter.com/ToniWestbrook]]></description>
			<content:encoded><![CDATA[<p>For those interested, I finally bit the bullet and created a Twitter account.  Follow all the programming, retrocomputer, and engineering madness!</p>
<p>@ToniWestbrook<br />
<a href="http://www.twitter.com/ToniWestbrook">http://www.twitter.com/ToniWestbrook</a></p>
<img src="http://feeds.feedburner.com/~r/ToniWestbrookDotCom/~4/nfS-po9Z3VQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/281/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.toniwestbrook.com/archives/281</feedburner:origLink></item>
		<item>
		<title>Shredz64 – New Disk Labels</title>
		<link>http://feedproxy.google.com/~r/ToniWestbrookDotCom/~3/EBz7wGVdoac/276</link>
		<comments>http://www.toniwestbrook.com/archives/276#comments</comments>
		<pubDate>Sun, 05 Sep 2010 06:01:38 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[Shredz64]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=276</guid>
		<description><![CDATA[I decided to spruce up the hand written labels with a little MS Word mail merge label action. Not the fanciest in the world, but a little nicer looking!]]></description>
			<content:encoded><![CDATA[<p>I decided to spruce up the hand written labels with a little MS Word mail merge label action.  Not the fanciest in the world, but a little nicer looking!</p>
<p><a href="http://www.toniwestbrook.com/wp-content/uploads/2010/09/disk.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2010/09/disk.jpg" alt="" title="New Shredz64 Disk Label"  style="width:100%" class="aligncenter" /></a></p>
<img src="http://feeds.feedburner.com/~r/ToniWestbrookDotCom/~4/EBz7wGVdoac" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/276/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.toniwestbrook.com/archives/276</feedburner:origLink></item>
		<item>
		<title>Blackberry – Mixing 2 or More Sounds Together (Concept Video)</title>
		<link>http://feedproxy.google.com/~r/ToniWestbrookDotCom/~3/RQmhDK_dFSo/267</link>
		<comments>http://www.toniwestbrook.com/archives/267#comments</comments>
		<pubDate>Thu, 02 Sep 2010 05:29:19 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=267</guid>
		<description><![CDATA[An Audio Issue One thing that I (and many others judging by forum posts) have run into is the fact that the Blackberry isn&#8217;t very good at mixing more than one sound together. You&#8217;ll be listening to music, or playing a game with music, and suddenly you&#8217;ll get a text message, and it will simply [...]]]></description>
			<content:encoded><![CDATA[<p><b> An Audio Issue </b></p>
<p>One thing that I (and many others judging by forum posts) have run into is the fact that the Blackberry isn&#8217;t very good at mixing more than one sound together.  You&#8217;ll be listening to music, or playing a game with music, and suddenly you&#8217;ll get a text message, and it will simply terminate the current sound and play the new one.  If you&#8217;ve got a friendly application, it will restart/resume the original audio, but it&#8217;s a jarring audio experience.</p>
<p>What I&#8217;m about to post won&#8217;t fix that.  However &#8211; developers also run into the issue when they want to mix sounds together in their applications and games.  Play 2 or more sound effects simultaneously and/or while music is playing.  I&#8217;ve seen official RIM developers comment that certain devices can achieve two simultaneous sounds by instantiating the Player class twice &#8211; but from what I gather, this is on GSM only phones &#8211; and still limited to two.  On CDMA devices, you&#8217;re completely out of luck.</p>
<p><b> The Cheap and Quick Workaround </b></p>
<p>In my 6 part tutorial on writing a Blackberry game, in the <a href="http://www.toniwestbrook.com/archives/75">audio article</a>, I mentioned how the Alert.startAudio method can be used for simple sound effects (tone/duration pairs) that will play simultaneously while your midi or mp3 music plays in the background.  For many applications, this is enough if you don&#8217;t need sophisticated sound effects.</p>
<p><b> The Start of a Mixer </b></p>
<p>I&#8217;m guessing that the limitation is imposed by the audio chipset/DAC inside of CDMA devices, and perhaps RIM realizes the CPU time involved in a software based audio mixer would slow the phone down too much.  However, I think the software option should be there, and developers can use it if they&#8217;d like &#8211; they might not need a large amount of CPU, or might be dealing with low quality sound files &#8211; there are a few scenarios where a software mixer would just be a nice options.</p>
<p>Tonight I sat down and wrote a quick and dirty proof of concept application showing a PCM audio mixer in action.  I loaded in 3 audio 44.1khz 8bit mono files and mixed them together in real time.  I didn&#8217;t normalize the audio at all, so its a little soft, but the code works, and could be expanded on quite a bit to make a full featured mixer. Maybe I&#8217;ll run into problems down the road that RIM already has, but it&#8217;ll be interesting nonetheless.</p>
<p>Here is the video of the test:</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/h_yWXkBOys8?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/h_yWXkBOys8?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<img src="http://feeds.feedburner.com/~r/ToniWestbrookDotCom/~4/RQmhDK_dFSo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/267/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.toniwestbrook.com/archives/267</feedburner:origLink></item>
		<item>
		<title>Shredz64 – Video of New Bonus Track “Still Alive (Portal Credits)”</title>
		<link>http://feedproxy.google.com/~r/ToniWestbrookDotCom/~3/SOSLqx110cg/263</link>
		<comments>http://www.toniwestbrook.com/archives/263#comments</comments>
		<pubDate>Thu, 02 Sep 2010 04:45:26 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[Shredz64]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=263</guid>
		<description><![CDATA[With Valve releasing Portal 2 fairly soon, and after realizing a SID version of &#8220;Still Alive (Portal Credits)&#8221; existed, I realized I had no choice but to make it a bonus track and post a video of it in action. This and all tracks are available at Synthetic Dreams. (PS &#8211; If you haven&#8217;t played [...]]]></description>
			<content:encoded><![CDATA[<p>With Valve releasing Portal 2 fairly soon, and after realizing a SID version of &#8220;Still Alive (Portal Credits)&#8221; existed, I realized I had no choice but to make it a bonus track and post a video of it in action.</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/DjLcDV6hsWk?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/DjLcDV6hsWk?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>This and all tracks are available at <a href="http://www.synthdreams.com/shredz64.php">Synthetic Dreams</a>.  </p>
<p>(PS &#8211; If you haven&#8217;t played Portal yet &#8211; go and do it now.  It&#8217;s a fantastic game, and a fantastic ending song.)</p>
<img src="http://feeds.feedburner.com/~r/ToniWestbrookDotCom/~4/SOSLqx110cg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/263/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.toniwestbrook.com/archives/263</feedburner:origLink></item>
		<item>
		<title>Blackberry Programming: Increasing Video Speed Through Prerendering</title>
		<link>http://feedproxy.google.com/~r/ToniWestbrookDotCom/~3/R9fyJNNQN6U/249</link>
		<comments>http://www.toniwestbrook.com/archives/249#comments</comments>
		<pubDate>Sun, 29 Aug 2010 04:34:54 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=249</guid>
		<description><![CDATA[A Problem of Efficiency As I finishing up the full version of Galactic Blast (screenshots on this soon, its a fully fleshed out game inspired by the demo, to be released on App World) &#8211; I ran into an issue in a strange area. The animation was smooth throughout the game, except oddly enough, on [...]]]></description>
			<content:encoded><![CDATA[<p><b> A Problem of Efficiency </b></p>
<p>As I finishing up the full version of Galactic Blast (screenshots on this soon, its a fully fleshed out game inspired by the demo, to be released on App World) &#8211; I ran into an issue in a strange area.  The animation was smooth throughout the game, except oddly enough, on the instructions screen.</p>
<p>The instructions screen in Galactic Blast includes some text describing the storyline, some text describing the keyboard controls, bitmaps showing each of the enemies and power ups with description text, and some credits at the end.  Since there&#8217;s much more than can fit on a single screen, the user can scroll up and down &#8211; nothing fancy, just your basic instructions screen.  However, the scrolling was anything but smooth.  As I debugged more, I found out that redrawing all the bitmaps and text at each scroll was simply taking too long &#8211; all the function and helper calls involved in rendering everything was just too much for the processor.  </p>
<p><b> The Solution</b></p>
<p>As I thought more about it, I realized that it would be much better to simply render one item instead of 20-30 items each time.  And since instructions are static in nature (they don&#8217;t change or animate), it was a prime candidate for prerendering all the text and bitmaps to a single, big bitmap.  However, I wanted the program to prerender the items automatically at runtime &#8211; I didn&#8217;t want to have to create the bitmap manually (which would be a huge pain anytime I needed to edit something &#8211; like adding a new line of text in).  The code below achieves this by creating a bitmap in memory and rendering all the desired text/images to it at the start of the program, and then simply displays (and scrolls) this bitmap on the instructions screen.</p>
<p><b> The Code </b></p>
<p>I&#8217;ve removed the specific text, bitmaps, and positioning from the code to make things a little clearer:</p>
<div style="font-size:10px">
<pre class="brush: java">

// _instructionsBM is the large bitmap we will be rendering all our text
// and images to.  This is the bitmap we will actually
// display on the instructions screen, thereby increasing efficiency
// since we&#039;re only redrawing one bitmap each time the
// player scrolls instead of a bunch of bitmaps.
private static Bitmap _instructionsBM;

   public static void prerenderInstructions() {
      Graphics tempGraphics;
      String objectiveString;
      Bitmap tempBitmap;
      Object castArray[][];     

      // Populate a string with the objective of the game
      objectiveString = &quot;Text describing the objective of the game  &quot;;

      // Populate an array with the enemy bitmaps, their names,
      // and how many points they are
      castArray = new Object[2][];
      castArray[0] = new Object[] { enemyBitmap1, &quot;Enemy 1&quot;, &quot;50 Points&quot; };
      castArray[1] = new Object[] { enemyBitmap2, &quot;Enemy 2&quot;, &quot;75 Points&quot; };

        // Initialize the bitmap, and then give it an alpha channel for
        // transparency, allowing the background to show through
        // behind the text and bitmaps
       _instructionsBM = new Bitmap(Bitmap.ROWWISE_16BIT_COLOR, WIDTH, HEIGHT);
       _instructionsBM.createAlpha(Bitmap.ALPHA_BITDEPTH_8BPP); 

        // Start with a blank, completely transparent image
      _instructionsBM.setARGB(new int[_instructionsBM.getWidth()*_instructionsBM.getHeight()], 0,
                                             _instructionsBM.getWidth(), 0, 0,
                                             _instructionsBM.getWidth(), _instructionsBM.getHeight());

      // The Graphics object acts a surface that drawing operations
      // can be performed on.  By calling the Graphics constructor
      // with the bitmap as an argument, all drawing operations
      // will be performed upon the bitmap itself.
      tempGraphics = new Graphics(_instructionsBM);

      // All operations to follow will be fully opaque (so pixels not
      //acted upon will stay transparent, while any text/images drawn
      // will be solid.
      tempGraphics.setGlobalAlpha(255);

      // Draw the text onto the bitmap
      tempGraphics.setColor(Color.YELLOW);
      tempGraphics.drawText(objectiveString, 5, 5);    

      // Draw enemy bitmaps onto the bitmap
      for (int lcv = 0 ; lcv &lt; castArray.length ; lcv++) {
         tempBitmap = (Bitmap) castArray[lcv][0];
         tempGraphics.drawBitmap(Utils.getDimension(5, 50+lcv*50,
                                                tempBitmap.getWidth(), tempBitmap.getHeight(), tempBitmap, 0, 0);
         tempGraphics.drawText((String) castArray[lcv][1], 100, 50+lcv*50);
         tempGraphics.drawText((String) castArray[lcv][1], 200, 50+lcv*50);
      }
   }
</pre>
</div>
<img src="http://feeds.feedburner.com/~r/ToniWestbrookDotCom/~4/R9fyJNNQN6U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/249/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.toniwestbrook.com/archives/249</feedburner:origLink></item>
		<item>
		<title>Shredz64 – New Disk Images and Firmware Posted</title>
		<link>http://feedproxy.google.com/~r/ToniWestbrookDotCom/~3/0kfP7Rml7AU/246</link>
		<comments>http://www.toniwestbrook.com/archives/246#comments</comments>
		<pubDate>Sat, 28 Aug 2010 07:00:57 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[Shredz64]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=246</guid>
		<description><![CDATA[For those who want to download the NTSC or PAL version of Shredz64, I updated the disk images available online to include the latest track selection. Additionally, the link on the blog to the PSX64 firmware now points to version 1.1, the latest update which incorporates the macro and speed fixes. For archival purposes, I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>For those who want to download the NTSC or PAL version of Shredz64, I updated the disk images available online to include the latest track selection.</p>
<p>Additionally, the link on the blog to the PSX64 firmware now points to version 1.1, the latest update which incorporates the macro and speed fixes.  For archival purposes, I&#8217;ve left 1.0 and 1.0a in the download directory as well.  </p>
<p>Also, hopefully another new track soon, maybe even this weekend!</p>
<img src="http://feeds.feedburner.com/~r/ToniWestbrookDotCom/~4/0kfP7Rml7AU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/246/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.toniwestbrook.com/archives/246</feedburner:origLink></item>
		<item>
		<title>Shredz64 – Core Track Set Update</title>
		<link>http://feedproxy.google.com/~r/ToniWestbrookDotCom/~3/MH8lTeoccIY/242</link>
		<comments>http://www.toniwestbrook.com/archives/242#comments</comments>
		<pubDate>Tue, 24 Aug 2010 03:07:21 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[Shredz64]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=242</guid>
		<description><![CDATA[Just a quick update &#8211; I&#8217;ve made the following updates: Replaced the Zak Mckracken remix with the Bombo theme as one of the 10 tracks included in Shredz64 Since there are now a couple versions of Shredz64 out there (the original had the Stairway Intro as a track, others had the Zak remix, and the [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick update &#8211; I&#8217;ve made the following updates:</p>
<ol>
<li>Replaced the Zak Mckracken remix with the Bombo theme as one of the 10 tracks included in Shredz64</li>
<li>Since there are now a couple versions of Shredz64 out there (the original had the Stairway Intro as a track, others had the Zak remix, and the new ones will have Bombo) &#8211; I&#8217;ve made ALL tracks available for download off the Synthetic Dreams website, found <a href="http://www.synthdreams.com/shredz64.php">here</a>.  That way, you can grab any songs you&#8217;d like, regardless of what version you have.</li>
</ol>
<p>This balances out the difficulty range of the included tracks a bit better.  All disks shipped out from here on will contain the Bombo theme.  </p>
<img src="http://feeds.feedburner.com/~r/ToniWestbrookDotCom/~4/MH8lTeoccIY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/242/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.toniwestbrook.com/archives/242</feedburner:origLink></item>
		<item>
		<title>Shredz64 – New Track Available</title>
		<link>http://feedproxy.google.com/~r/ToniWestbrookDotCom/~3/vnrHeDop3jQ/235</link>
		<comments>http://www.toniwestbrook.com/archives/235#comments</comments>
		<pubDate>Mon, 23 Aug 2010 04:36:10 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[Shredz64]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=235</guid>
		<description><![CDATA[First off, lots more sales of boards this week, thanks to everyone for their interest and support! Also, there is a new download track available on the Synthetic Dreams website &#8211; Bombo by Ben Daglish. We&#8217;ve gotten a lot of feedback from people that the game difficulty is quite high, so I was sure to [...]]]></description>
			<content:encoded><![CDATA[<p>First off, lots more sales of boards this week, thanks to everyone for their interest and support!</p>
<p>Also, there is a new download track available on the <a href="http://www.synthdreams.com/shredz64.php">Synthetic Dreams website</a> &#8211; Bombo by Ben Daglish.  We&#8217;ve gotten a lot of feedback from people that the game difficulty is quite high, so I was sure to make this track at an easy difficulty level.  It&#8217;s a great tune &#8211; you can take a listen <a href="http://www.synthdreams.com/downloads/shredz64/tracks/BOMBO.SID">here</a>.</p>
<img src="http://feeds.feedburner.com/~r/ToniWestbrookDotCom/~4/vnrHeDop3jQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/235/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.synthdreams.com/downloads/shredz64/tracks/BOMBO.SID" length="4222" type="audio/prs.sid" />
		<feedburner:origLink>http://www.toniwestbrook.com/archives/235</feedburner:origLink></item>
		<item>
		<title>Shredz64 and PSX64 Updates</title>
		<link>http://feedproxy.google.com/~r/ToniWestbrookDotCom/~3/hGWKeAXoXik/228</link>
		<comments>http://www.toniwestbrook.com/archives/228#comments</comments>
		<pubDate>Sat, 14 Aug 2010 04:24:57 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[Shredz64]]></category>
		<category><![CDATA[Website News]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=228</guid>
		<description><![CDATA[Due to quite a bit of interest and positive support, I&#8217;ve tried to kick my butt back in gear and start producing more PSX64 boards, as well as update Shredz64 a bit. We&#8217;ve been popping up in a few expos and meetups, including TNMOC&#8217;s Vintage Computer Festival 2010 at Bletchley Park, VCF East, SC3 Arcade [...]]]></description>
			<content:encoded><![CDATA[<p>Due to quite a bit of interest and positive support, I&#8217;ve tried to kick my butt back in gear and start producing more PSX64 boards, as well as update Shredz64 a bit.  We&#8217;ve been popping up in a few expos and meetups, including <a href="http://www.tnmoc.org/vcf-gb.aspx">TNMOC&#8217;s Vintage Computer Festival 2010 at Bletchley Park</a>, <a href="http://www.vintage.org/2009/east/">VCF East</a>, <a href="http://www.sc3videogames.com/">SC3 Arcade Party</a>, and most recently at the <a href="http://www.commodorecomputerclub.com/">Commodore Computer Club</a>.</p>
<p>It means a lot that people are still very interested in this work, so I&#8217;ve started by making the following updates:</p>
<ol>
<li>Updated the PSX64 firmware to fix a bug in macro recording, tighten up the analog joystick response, and increase sensitivity for precision game play when a non-Guitar controller is plugged in.</li>
<li>Updated the <a href="http://www.synthdreams.com/shredz64.php">Shredz64 webpage</a> with a downloadable bonus track, the Stairway to Heaven Intro, by Nantco Bakker.  This track appeared on very early versions of Shredz64, but was replaced with Edwin&#8217;s Dream.  Now both tracks can be enjoyed.</li>
<li>Since shipping varies wildly, and I tend to make boards as the need arises, I replaced the Paypal button on the order page with a link to the contact page.  If you&#8217;re interested in ordering a PSX64, simply contact me with your shipping address, and I&#8217;ll quote you out the total price.</li>
</ol>
<p>Thanks for your support everyone!</p>
<img src="http://feeds.feedburner.com/~r/ToniWestbrookDotCom/~4/hGWKeAXoXik" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/228/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.toniwestbrook.com/archives/228</feedburner:origLink></item>
		<item>
		<title>Best Modern Practices – Cisco MDS 9000 (Fibre Channel) – Part 2</title>
		<link>http://feedproxy.google.com/~r/ToniWestbrookDotCom/~3/-YcaXts_KdU/213</link>
		<comments>http://www.toniwestbrook.com/archives/213#comments</comments>
		<pubDate>Tue, 13 Jul 2010 03:35:27 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[Network Administration]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=213</guid>
		<description><![CDATA[Back to Part 1&#8230; Use Your MDS to Its Full Potential! If you&#8217;ve taken some time looking through all the thousands of things NX-OS and Fabric Manager can do, you&#8217;ll know that the MDS line is amazingly powerful. I&#8217;m totally a CLI guy, and I do most of the basic switch configuration in NX-OS, but [...]]]></description>
			<content:encoded><![CDATA[<p><i><a href="http://www.toniwestbrook.com/archives/196">Back to Part 1&#8230;</a></i></p>
<p><b> Use Your MDS to Its Full Potential! </b></p>
<p>If you&#8217;ve taken some time looking through all the thousands of things NX-OS and Fabric Manager can do, you&#8217;ll know that the MDS line is amazingly powerful.  I&#8217;m totally a CLI guy, and I do most of the basic switch configuration in NX-OS, but don&#8217;t hesitate to the abuse the hell out of Fabric Manager &#8211; it&#8217;s a fantastic tool for getting a visual representation of your Fibre Channel infrastructure.  And, it gives you a quick visual (both in a textual list and graphical layout) into exactly what device is plugged into what port.</p>
<p><center><div id="attachment_202" class="wp-caption alignnone" style="width: 310px"><a href="http://www.toniwestbrook.com/wp-content/uploads/2010/07/fm.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2010/07/fm-300x251.jpg" alt="" title="FabricManager" width="300" height="251" class="size-medium wp-image-202" /></a><p class="wp-caption-text">Example FabricManger Layout</p></div></center></p>
<p>Perhaps older switches couldn&#8217;t report what device was attached to what port, but if there is no pragmatic need for port zoning, then I believe it shouldn&#8217;t be used, as it is NOT aligned to the purpose of zoning.  The conceptual purpose of a zone is to define security at the device level &#8211; i.e. what device can talk to what device.  The purpose is not to be a mechanism for port security.  Port security exists at a lower level (or more appropriately, layer, if we think in terms of an OSI-esque model), and should be handled separately and independently.</p>
<p><b> port-security ENABLE! </b></p>
<p>The engineers at Cisco are pretty smart people, and they understood the need for port security in a WWN zoning environment.  They understood that we, the administrators, deserve the best of BOTH worlds, and they gave it to us.  Not only can you configure what WWNs are authorized to be on what physical ports with port-security, but you can also have the MDS automatically learn what devices are currently connected, and set them up as authorized WWNs, expire them, auto-learn new devices, etc. </p>
<p>What does this mean?  Quite a bit.  We get the ease (and conceptual correctness) of managing zone membership by WWN, MUCH easier migrations, an instant snapshot of exactly what device is connected to what port, and the security of Cisco&#8217;s standard port-security mechanism.  Maybe I&#8217;m crazy (okay, I&#8217;m pretty sure I am), but I&#8217;m a firm believer that WWN zoning is completely the way to go.  </p>
<p><b> Device Aliases Rule, FC Aliases Drool </b></p>
<p>A key to making Fabric Manager work the best for you (especially if you&#8217;re dealing with a pure Cisco fabric), is to make heavy use of Device Aliases and say goodbye to FC aliases.  There are a number of reasons for this, but mostly center around the fact that Device Aliases can be used in most sections of the MDS configuration where pWWNs are used, whereas FC aliases are pretty much per vsan and for zone membership only.  Not only does this make configuration easier, but Fabric Manager makes heavy use of the device alias (remember above when we were talking about having Fabric Manager show you what devices are connected to what physical ports? Device Aliases make this work, as then you get a nice readable name instead of a pWWN).  Additionally, for you CLI guys and gals, anywhere in the config that a pWWN with a Device Alias is mentioned, NX-OS prints the Device Alias right below it, which is extremely helpful while trudging through lines and lines of WWNs.</p>
<p>You may be stuck with FC Aliases if you have a hybrid switch environment with something other than Ciscos, but otherwise, it&#8217;s time to ditch FC Aliases.  </p>
<p><b> Single Initiator, Single Target Zoning </b></p>
<p>It&#8217;s a little more work than making big easy zones with lots of members &#8211; but it&#8217;s honestly the safest and most technically efficient method of zone operation.  There are some times when it becomes necessary to include multiple initiators/targets in failover clusters or other special cases, but other wise &#8211; make your zones 1 to 1.  This ensures that there is no extra traffic in the zone, protects your other zones in the event that one of your HBAs malfunctions &#8211; and safe guards your remaining connections from a server to other SANs should you screw up the configuration in one of the zones.  It&#8217;s extra work, but it&#8217;s worth it. </p>
<p><b> Feedback! </b></p>
<p>Most of these are based off of best practices gleaned from Cisco, VMware, and Compellent &#8211; but as mentioned, there are debates out there surrounding many of them.  Please feel free to share your Fibre Channel thoughts or experiences, I think this is definitely an area that deserves more attention.</p>
<img src="http://feeds.feedburner.com/~r/ToniWestbrookDotCom/~4/-YcaXts_KdU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/213/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.toniwestbrook.com/archives/213</feedburner:origLink></item>
	</channel>
</rss>
