<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Andy&apos;s Blog</title>
		<link>http://andy.theschotts.net/</link>
		<atom:link href="http://andy.theschotts.net/rss.xml" rel="self" type="application/rss+xml" />
		<description>Programming and playing games since before the turn of the century</description>
		<dc:creator>Andy</dc:creator>
		<language>en-us</language>
		<dc:date>2009-03-25T17:00:00-05:00</dc:date>

		<item>
			<title>Silverlight DataBinding and MethodAccessException</title>
			<link>http://andy.theschotts.net/2009/03/silverlight-databinding-and-methodaccessexception.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">24@http://andy.theschotts.net/</guid>
			<description>I started playing around with Siverlight earlier this week. From what I&apos;ve seen so far, it looks like a very nice environment - it has (most of) the power of WPF for building user interfaces, and (most of) the power...</description>
			<content:encoded><![CDATA[<p>I started playing around with <a href="http://www.silverlight.net">Siverlight</a> earlier this week. From what I've seen so far, it looks like a very nice environment - it has (most of) the power of WPF for building user interfaces, and (most of) the power of the .NET Base Class Library to implement whatever it is that your application needs to do.</p>

<p>There are a few gotchas, though - especially if you have any experience with WPF. There are some subtle features that are missing, that you don't realize how nice they are until they're gone (such as binding to a static property, for example).</p>

<p>I encountered one such incident of this when trying to get data binding working. I first wrote my <code>Model</code> class, which looked something like this:</p>

<blockquote><pre>namespace SilverlightTestApp
{
    class Model : INotifyPropertyChanged
    {
        public Model()
        {
        }

        private string firstName = string.Empty;
        public string FirstName
        {
            get { return this.firstName; }
            set
            {
                this.firstName = value;
                this.OnPropertyChanged("FirstName");
            }
        }

        private string lastName = string.Empty;
        public string LastName
        {
            get { return this.lastName; }
            set
            {
                this.lastName = value;
                this.OnPropertyChanged("LastName");
            }
        }
        
        /* INotifyPropertyChanged Implementation */
    }
}</pre></blockquote>

<p>So far, so good. I then wrote some XAML to bind display this information in the UI:</p>

<blockquote><pre>&lt;UserControl&gt;
    &lt;Grid Margin="5"&gt;
        &lt;Grid.RowDefinitions&gt;
            &lt;RowDefinition Height="Auto" /&gt;
            &lt;RowDefinition Height="Auto" /&gt;
            &lt;RowDefinition /&gt;
            &lt;RowDefinition Height="Auto" /&gt;
        &lt;/Grid.RowDefinitions&gt;
        &lt;Grid.ColumnDefinitions&gt;
            &lt;ColumnDefinition Width="Auto" /&gt;
            &lt;ColumnDefinition /&gt;
        &lt;/Grid.ColumnDefinitions&gt;
        &lt;TextBlock Grid.Row="0" Grid.Column="0"&gt;First Name:&lt;/TextBlock&gt;
        &lt;TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Path=FirstName}" /&gt;
        &lt;TextBlock Grid.Row="1" Grid.Column="0"&gt;Last Name:&lt;/TextBlock&gt;
        &lt;TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Path=LastName}" /&gt;
        &lt;Button Grid.Row="3" Grid.Column="1" HorizontalAlignment="Right"&gt;
            &lt;TextBlock&gt;Click Me&lt;/TextBlock&gt;
        &lt;/Button&gt;
    &lt;/Grid&gt;
&lt;/UserControl&gt;</pre></blockquote>

<p>In the code behind, an instance of the <code>Model</code> class is set as the <code>DataContext</code> of the <code>UserControl</code>, and in the click handler for the button a <code>MessageBox</code> is display with the name entered.</p>

<p>Looks good, right? Except when I run the program I get a <code>MethodAccessException</code>. No matter what I did, I could not figure out how to fix this error. The only thing I did know is that it had something do with my bindings, since if I took those out the error would go away. A search on the Internet didn't help much, either.</p>

<p>Then, on a hunch, I changed the <code>Model</code> class to be public instead of private, and that fixed it! Apparently in Silverlight binding only works with public classes (which isn't the case in WPF). My guess is that this is due to security - since Silverlight only runs in the browser (at least today) in a partial trust environment, Reflection (which is how binding retrieves the values it needs) on non-public members must not be allowed.</p>

<p>While this was frustrating, it was a good learning experience. It seems like I need to keep security in mind more with Silverlight development than with WPF.</p>]]></content:encoded>
			<dc:date>2009-03-25T17:00:00-05:00</dc:date>
		</item>

		<item>
			<title>Review: Resident Evil 5 (Xbox 360)</title>
			<link>http://andy.theschotts.net/2009/03/review-resident-evil-5-xbox-360.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">23@http://andy.theschotts.net/</guid>
			<description>The main game that came with my Xbox 360 bundle is Resident Evil 5. I actually finished the single player game pretty quickly - I started playing on Friday night, and I finished it just before bedtime on Sunday. Overall,...</description>
			<content:encoded><![CDATA[<p>The main game that came with my Xbox 360 bundle is <a href="http://en.wikipedia.org/wiki/Resident_Evil_5">Resident Evil 5</a>. I actually finished the single player game pretty quickly - I started playing on Friday night, and I finished it just before bedtime on Sunday. Overall, it's a pretty good game (although I had never played a Resident Evil game before, FWIW). That's not to say that I'm done playing it, however. There are plenty of other things to do.</p>

<p>The game has definitely shifted more towards a standard action game than survival horror - I don't know if that is a good thing or not. I'm not a huge fan of horror movies or games, so I guess for me personally that's a good thing. I could see long-time fans of the series upset by this change, though. There are plenty of big, bad monsters to destroy, though - just nothing where you jump out of your seat due to the events in the game (at least for me).</p>

<p>The events in the game are very much based on what has happened previously in the series. To make sure that I could actually understand what was going on, before I got the game I read up on the series itself. Both the <a href="http://www.gametrailers.com/game/10620.html">GameTrailers Retrospective</a> and <a href="http://en.wikipedia.org/wiki/Resident_Evil_(series)">Resident Evil Wikipedia page</a> helped out a great deal. I could see being completely confused by the story if I hadn't done this research before hand. For better or for worse, newcomers to the series would be very confused regarding the events in the game.</p>

<p>One thing that sets RE5 apart from other action games is that you can't move and shoot at the same time. The left analog stick controls your movement, while the right analog stick controls the camera. Once you press the Right Trigger, though, that keeps you in place and now the left analog stick aims your current weapon of choice. While this is a drastic change from other games, at the same time it makes sense - your accuracy is greatly improved if you don't move when shooting in real life, for example. The game does help you out a bit here - most enemies come at you somewhat slowly, and tend to stop for a second or so when they get close. While that isn't necessarily realistic, it does make the game more playable. The controls didn't really bother me that much, once I got used to them.</p>

<p>The other big feature of RE5 is co-op play. The entire game is spent with the two main characters - Chris Redfield and Sheva Alomar. When playing solo, you play as Chris (although you can also play as Sheva once you've beaten the game). In co-op, each player takes one of the characters and you can work together to finish the levels. While I have mostly played solo, the times that I did play co-op were great - I could see that this is how the game was meant to be played. The AI did a passable job at assisting you, but it just doesn't come close to playing with someone else. It tends to go through ammo quickly, and heals you more often than is necessary. It's definitely good that a solo option is in place, though, for those who can't (or don't want to) play with another human. This is available both online and off, and while I haven't played local co-op, from the screenshots it seems like it wouldn't work very well (due to the smaller viewing area for each player).</p>

<p>Once you've finished the main game, there are still many things to do. There are 30 BSAA emblems hidden though the levels (the BSAA is the organization that employs Chris and Sheva). Once you get some of these, you can "buy" various items from the points that you earn for finishing levels - extra costumes for Chris and Sheva, figurines of creatures in the game, and a few other things too. There are also extra weapons to buy, and all weapons can be upgraded (once fully upgraded, you can purchase unlimited ammo for that weapon with points).</p>

<p>In addition, a new game mode is unlocked - Mercenaries. The objective of Mercenaries is to survive as long as possible, and killing as many zombies as you can in the process. This can also be played solo or co-op, however if you're going solo you don't have an AI partner tagging along this time. It's timed, and by default you only have two minutes (I think) to kill zombies. Scattered throughout each level is a time bonus which you can use to add time to the clock. There are also characters and levels to unlock here, too.</p>

<p>Overall, I'm really happy with Resident Evil 5. I could see not liking some of the changes if I were a long-time fan of the series, however given that I'm new to Resident Evil I didn't have any complaints about them. It's a great game, and it looks great too. It's definitely one that I'll be playing for a while. :)</p>]]></content:encoded>
			<dc:date>2009-03-22T14:39:29-05:00</dc:date>
		</item>

		<item>
			<title>Thoughts on the Xbox 360</title>
			<link>http://andy.theschotts.net/2009/03/thoughts-on-the-xbox-360.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">22@http://andy.theschotts.net/</guid>
			<description>Last week, my Xbox 360 finally arrived. It even arrived on the day it was released in stores, even though I pre-ordered it through Amazon. I opted for 3-5 day shipping via UPS, and even though it shipped out on...</description>
			<content:encoded><![CDATA[<p>Last week, my Xbox 360 finally arrived. It even arrived on the day it was released in stores, even though I <a href="http://andy.theschotts.net/2009/02/video-games-consoles-vs-pc2-part-ii.html">pre-ordered it through Amazon</a>. I opted for 3-5 day shipping via UPS, and even though it shipped out on Wednesday, I got it two days later. I have to hand it to Amazon - that was way more than I expected. Great job! :)</p>

<p>Unfortunately, I misunderstood what cables cam in the box, and I needed to buy the HD VGA cable separately. While that did add an additional $40 to the total cost, it's worth it - as I said before, I can get a much better picture on my monitor than on my TV. For sound, I had an adapter that I could use - 2 RCA female on one end, and 1 1/8" stereo jack on the other (although it turns out that the VGA cable comes with this adapter as well, which is a nice touch). I did need to buy a 1/8" to 1/8" female coupler in order to connect all that to my speakers. This all works quite well, though.</p>

<p>Since I bought the Resident Evil 5 bundle, I got a copy of <a href="http://en.wikipedia.org/wiki/Resident_Evil_5">Resident Evil 5</a> and <a href="http://en.wikipedia.org/wiki/Super_Street_Fighter_II_Turbo_HD_Remix">Super Street Fighter II Turbo HD Remix</a>. There were also a variety of Xbox Live Arcade trials included on the hard drive, which was nice.</p>

<p>While I was setting up my Xbox, I opted to start my one month Xbox Live Gold trial. While I haven't done much online yet, I really need to hand it to Microsoft - they've set up a great online system with Xbox Live. You can see what all of your friends on your friends list are doing, see what games they have, and compare achievements. PLus, all online games have built-in voice chat (there was a headset included with my Xbox, which I think is the case for most/all Xboxes too). While it isn't free ($50/year through Microsoft, although Amazon is currently offering <a href="http://www.amazon.com/Xbox-360-Live-Month-Gold-Bonus/dp/B000B9RI00/ref=wl_it_dp?ie=UTF8&coliid=I2TXPEAVHYR7BD&colid=1BNNS52E8KT1C">13 months for $40</a>), it's definitely worth it in my opinon.</p>

<p>My GamerTag is <a href="http://live.xbox.com/member/adeese">Adeese</a>, if you want to add me to your friends list, or play online with me sometime. :)</p>

<p>The main problem that I have right now is that I don't have many games to play. :) That will change in time, of course. I'm most likely going to get a subscription to <a href="http://www.gamefly.com/">GameFly</a>, which is basically the Netflix of games (you can have so many games rented at a time, for as long as you want; send them back in the mail when you're done, and the next game in your queue is shipped to you). This is much more economical than buying all of the games that I want to play, since many I would only want to play once and never again (which isn't worth the $60 that most new games cost). If I do end up liking the game, there is an option to buy the game outright so I don't need to buy it separately - that's a nice touch.</p>

<p>Overall, I'm very happy with my purchase - Microsoft has done a great job putting the Xbox 360 together. While the Xbox 360 has had its share of <a href="http://en.wikipedia.org/wiki/Xbox_360_technical_problems">technical problems</a> (with another <a href="http://www.8bitjoystick.com/2009/03/xbox-360-e74-hardware-failures-are-on-the-rise-and-full-of-fail.html">potential issue</a> on the horizon, unfortunately), hopefully the worst is behind us. I also hope that my console won't fall victim to either of these issues, but only time will tell. If nothing else, hopefully Microsoft has learned its lesson, and will build the Xbox 360's successor better to avoid these issues in the future.</p>]]></content:encoded>
			<dc:date>2009-03-21T10:04:37-05:00</dc:date>
		</item>

		<item>
			<title>Win7HotKeys v1.0.2</title>
			<link>http://andy.theschotts.net/2009/03/win7hotkeys-v102.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">20@http://andy.theschotts.net/</guid>
			<description>Win7HotKeys v1.0.2 has been released. The following changes are in this release:[BUG]Do not attempt to minimize or maximize a window that does not allow this operation As always, if you have any questions, comments, bugs, etc. please let me know....</description>
			<content:encoded><![CDATA[<p><a href="http://andy.theschotts.net/win7hotkeys.html">Win7HotKeys v1.0.2</a> has been released. The following changes are in this release:<ul><li>[BUG]Do not attempt to minimize or maximize a window that does not allow this operation</li></ul></p>

<p>As always, if you have any questions, comments, bugs, etc. please let me know. :)</p>]]></content:encoded>
			<dc:date>2009-03-08T14:00:00-05:00</dc:date>
		</item>

		<item>
			<title>Review: Mirror&apos;s Edge for PC</title>
			<link>http://andy.theschotts.net/2009/03/review-mirrors-edge-for-pc.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">21@http://andy.theschotts.net/</guid>
			<description>I recently won a copy of Mirror&apos;s Edge for the PC, so I figured I would give it a try and see how it is. Given the reviews that I had read for the game, I didn&apos;t set my hopes...</description>
			<content:encoded><![CDATA[<p>I recently won a copy of <a href="http://en.wikipedia.org/wiki/Mirror's_Edge">Mirror's Edge</a> for the PC, so I figured I would give it a try and see how it is. Given the reviews that I had read for the game, I didn't set my hopes very high. While it's not the best game ever, it was pretty good. I am glad that I didn't pay full price for it, though.</p>

<p>Hardware specs:<ul><li>Pentium 4 3.0gHz</li>
<li>ATI Radeon 2400 Pro</li>
<li>2GB RAM</li></ul>

<p>At first, I thought that I wouldn't be able to play the game at all, since my PC doesn't meet the minimum requirements for the game. Thankfully, M was gracious enough to allow me to borrow her computer so that I could play through the game. It's a little under three years old, and playing at 1024x768 with most settings at "Medium", the PC couldn't always keep up with the game. If I played for a long time, the game would periodically freeze, and come back a few seconds later (generally at the worst possible time, naturally). I did get a few blue screens, but updating to the latest video drivers fixed that problem. There were still some hangs (generally when loading after dying), and every time that I exited the game it wouldn't properly reset my resolution.</p>

<p>Other than that, I didn't encounter any bugs in the game at all - it was very playable. The graphics were good enough, but I didn't get any of the nifty PhysX effects since I wasn't playing with an NVidia card. In any event, the graphics did their job, and weren't at all distracting.</p>

<p>The premise of the game is that you are Faith, and she is a runner. The idea is to keep your speed up, and then pull off some pretty crazy stunts - leaping between buildings, running along walls, etc. When it works, the gameplay is great fun. Objects in the environment turn red to indicate the direction that you can go, which helps to keep downtime to a minimum (a must in this game). There were still a few spots where I didn't know where to go, but these were few and far between.</p>

<p>In addition to running, there is also combat. From the beginning of the game, it encourages you to not fight the enemies, but rather run away from them. This is generally good advice, since against the tougher enemies you can go down in as little as two hits. While this is a great idea, the problem is that there are some enemies that you must kill before proceeding (generally indicated by a red glow on the mob, and sometimes a voice over from another indicator telling you that you need to fight them). If there is only one enemy around, it's not too hard - you have a variety of movies, including a one hit take down that also disarms your opponent if you time it right.</p>

<p>The problem comes when there are multiple enemies attacking you at once. Since you can die pretty easily, this makes your actions crucial. Your disarm attack is quite involved, and if another enemy is shooting at you while your disarm his friend, you can easily die before the animation is done. This can get quite frustrating, since late in the game it will routinely throw four, five, or more enemies at you at once. While this is doable, it does cause you to replay the same segment many times until you get lucky and kill all of the enemies perfectly without dying.</p>

<p>The story is good enough, but largely forgettable. It did enough to keep you playing, but nothing spectacular.</p>

<p>While the combat has issues, when the game works it is really amazing. When you get moving, and perform all of the movies perfectly, it's great fun and shows exactly what this game is capable of. Since there is <a href="http://www.joystiq.com/2009/03/06/ea-sees-success-in-dead-space-and-mirrors-edge-after-a-lif/">going to be a sequel</a>, hopefully they'll improve on the running, and downplay the combat. That would make one amazing game.</p>]]></content:encoded>
			<dc:date>2009-03-07T22:38:31-05:00</dc:date>
		</item>

		<item>
			<title>Video Games Consoles vs PCs, Part II</title>
			<link>http://andy.theschotts.net/2009/02/video-games-consoles-vs-pc2-part-ii.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">19@http://andy.theschotts.net/</guid>
			<description>Last month, I was considering whether to upgrade my PC or buy an Xbox 360. At the time, I came to the conclusion that I should stick with the PC (for a variety of reasons). However, since then the topic...</description>
			<content:encoded><![CDATA[<p>Last month, I was considering whether to <a href="http://andy.theschotts.net/2009/01/video-game-consoles-vs-pcs.html">upgrade my PC or buy an Xbox 360</a>. At the time, I came to the conclusion that I should stick with the PC (for a variety of reasons).</p>

<p>However, since then the topic has still been on my mind. While I have much history with gaming on the PC, the lure of the Xbox was very tempting. Not to mention that the PC is treated more and more as a second class citizen when it comes to  gaming (with a few exceptions, of course).</p>

<p>What got me thinking about this even more is a <a href="http://www.joystiq.com/2009/02/24/red-resident-evil-5-xbox-360-bundle-its-real/">new Xbox 360 bundle</a> that will be released in a few weeks. It's a really good deal - for the price of the normal Xbox 360 Elite (the highest end model), <a href="http://en.wikipedia.org/wiki/Resident_Evil_5">Resident Evil 5</a>, <a href="http://en.wikipedia.org/wiki/Super_Street_Fighter_II_Turbo_HD_Remix">Super Street Fighter II Turbo HD Remix</a>, and a Resident Evil theme for the Xbox dashboard.</p>

<p>The more I thought about it, the more that seemed like the right way to go. Nearly all of the talk on the gaming websites is only regarding consoles, and while there is the occasional PC story you really don't hear much about PC gaming anymore. Not to mention the fact that figuring out the "best" system to build or buy is extremely challenging in and of itself.</p>

<p>So today I placed a pre-order for the bundle. I will likely not worry about my PC at this point, and buy a copy of VMWare Fusion for my Mac so that I can continue doing Windows programming at home (likely using the copy of XP currently on my PC).</p>

<p>My plan is to use my 17" LCD (currently my PC monitor) for the Xbox, since it comes with a VGA adapter. This should give me a better picture than using our TV, since that is an old ~25" SD TV. I'd also like to use my computer speakers as well (which are pretty decent, and include a subwoofer), but I need to research an adapter for that. If nothing else, I can always use a headset and not worry about normal sound.</p>

<p>Now I just need to wait a few weeks for it to get here, and I can enter the world of games on an Xbox. Good stuff! :)</p>]]></content:encoded>
			<dc:date>2009-02-28T13:56:40-05:00</dc:date>
		</item>

		<item>
			<title>Hardcore Gaming and the Wii</title>
			<link>http://andy.theschotts.net/2009/02/hardcore-gaming-and-the-wii.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">18@http://andy.theschotts.net/</guid>
			<description>M and I got our Wii last April (I think it even arrived on April 1, if you can believe that). Since they were still scarce at the time, we pre-orded a Wii bundle from EB Games. It included the...</description>
			<content:encoded><![CDATA[<p>M and I got our Wii last April (I think it even arrived on April 1, if you  can believe that). Since they were still scarce at the time, we pre-orded a Wii bundle from EB Games. It included the Wii (with all the normal stuff - a Wiimote, nunchuck, Wii Sports), Wii Play, a second nunchuck, a Wiimote charger, <a href="http://en.wikipedia.org/wiki/The_Legend_of_Zelda_Twilight_Princess">Zelda: Twilight Princess</a>, and <a href="http://en.wikipedia.org/wiki/Metroid_Prime_3">Metroid Prime 3: Corruption</a>. While it ended up costing us something like $450, it was nearly all stuff that we would buy anyway (well, maybe not Wii Play, but it's a good deal on a 2nd Wiimote, so it worked), and since it would get us a Wii without going to a million stores, it was a good way to go.</p>

<p>About the time that I finished Zelda and Metroid, <a href="http://en.wikipedia.org/wiki/Mario_Kart_Wii">Mario Kart Wii</a> was coming out, so I pre-ordered it and it arrived shortly after its release date. Now that's a really good game - it has lots of re-playability to unlock everything. Its online play is great as well, since lag is pretty much nonexistent. Sure, it uses the evil friend codes, but that's just how Nintendo does things, sadly.</p>

<p>Luckily for me, right when I was starting to get bored with Mario Kart, Amazon had a sale on Wii games and I picked up <a href="http://en.wikipedia.org/wiki/Super_Mario_Galaxy">Super Mario Galaxy</a> and <a href="http://en.wikipedia.org/wiki/Super_Smash_Bros._Brawl">Super Smash Bros Brawl</a>. Super Mario Galaxy is amazing (plus it was cool that M could assist as the second player), and Smash Bros has a ton of things to unlock, too. Good games.</p>

<p>Also during all this, M and I played through all of the Lego games - <a href="http://en.wikipedia.org/wiki/Lego_Star_Wars:_The_Complete_Saga">Lego Star Wars</a>, <a href="http://en.wikipedia.org/wiki/Lego_Indiana_Jones_video_game">Lego Indiana Jones</a>, and <a href="http://en.wikipedia.org/wiki/LEGO_Batman">Lego Batman</a>. While Indiana Jones was very short, Lego Star Wars was insanely long. They're all pretty fun.</p>

<p>But after that...nothing. There just wasn't anything on the Wii that interested me after those games. It's like Nintendo front-loaded all of their game releases early in the Wii's life cycle because they thought no one would want to play them later, or something. The only game I've played since then is <a href="http://en.wikipedia.org/wiki/The_Force_Unleashed">Force Unleashed</a>, which wasn't all that great - so much promise, and it didn't follow through. At least I got it on sale, though.</p>

<p>Part of the problem might have been that third party developers and publishers assumed that the Wii would be just like the Nintendo 64 and Game Cube - not all that popular. Sure, the games by Nintendo would be good, but other than that no one would really care. Apparently no one was expecting it to be this popular.</p>

<p>Another problem is its hardware. While to some extent "graphics don't matter", when it comes to pure horsepower, there are things that the Wii just can't do that the Xbox 360 and PS3 can. This, naturally, limits the number of games that can be ported to the Wii from the other consoles.</p>

<p>In any event, the net result is that I haven't had much of a reason to use our Wii for the last six months or so. That is definitely not a good thing.</p>

<p>However, things are definitely looking up for 2009. The poster boy of hardcore Wii games, <a href="http://en.wikipedia.org/wiki/The_Conduit">The Conduit</a>, finally got a <a href="http://nintendo.joystiq.com/2009/02/09/the-conduit-coming-june-9th-animales-de-la-muerte-no-longer-wii/">release date of June 9</a>, which is excellent news. Thankfully there are other interesting games coming, too:</p>

<ul><li><a href="http://en.wikipedia.org/wiki/Tenchu_4">Tenchu: Shadow Assassins</a> (out last week) sounds promising, but there are some mixed reviews initially. If nothing else, it's a step that this game got released on the Wii at all, though.</li>
<li><a href="http://en.wikipedia.org/wiki/MadWorld">MadWorld</a>, which isn't something that I would play, it's still good to see mature content developed for the Wii. That should help it shed its "kid only" stereotype, hopefully.</li>
<li><a href="http://en.wikipedia.org/wiki/Oboro_Muramasa_Youtouden">Muramasa: The Demon Blade</a> also looks promising from what I've seen/read of it to date.</li>
<li><a href="http://en.wikipedia.org/wiki/Sin_and_Punishment_2">Sin & Punishment 2</a> looks like it was born to be played on the Wii. I picked up <a href="http://en.wikipedia.org/wiki/Sin_and_Punishment">the original</a> last fall on the Virtual Console, and it was a solid title. Sure, it was a bit hard to follow, but this was basically a Japanese release. I'm sure the sequel will be better suited to a non-Japanese audience.</li>
<li><a href="http://en.wikipedia.org/wiki/House_of_the_Dead_Overkill">House of the Dead: Overkill</a> seems like it was tailor-made for the Wii, as well. The whole run and gun genre should work really well with the Wiimote.</li>
<li>And finally, the shocker last week that <a href="http://www.joystiq.com/2009/02/03/ea-announces-dead-space-for-wii/">EA will be bringing Dark Space to the Wii</a>. I don't think that anyone saw this coming, but it's definitely good news. I'm not sure how good/bad it will turn out, but hopefully EA will do it properly and not just blindly port the game. Given how much effort they are planning to put into the Wii this year, they will likely do it right.</li></ul>

<p>At least from where I am looking now, 2009 looks to be much better than 2008 for the Wii. One interesting thing about this list is that only one game there is published by Nintendo (Sin & Punishment 2), and none are developed by them. While supposedly their developement teams are busy working away in Japan, nothing much has been announced yet. While it would be nice to see something from them in 2009, it's probably much more likely going to be 2010 before any of their games are released. If nothing else, this should give third party developers a chance to shine on the system without any competition from Nintendo. That is definitely a good thing.</p>]]></content:encoded>
			<dc:date>2009-02-09T20:03:11-05:00</dc:date>
		</item>

		<item>
			<title>New Program - Win7HotKeys</title>
			<link>http://andy.theschotts.net/2009/02/new-program---win7hotkeys.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">17@http://andy.theschotts.net/</guid>
			<description>Since Windows 7 will finally add shortcut keys for minimizing, maximizing, and restoring the active window, I figured that it would be useful for me to get into the habit of using those keys. To that end, I wrote Win7HotKeys....</description>
			<content:encoded><![CDATA[<p>Since Windows 7 will finally add shortcut keys for minimizing, maximizing, and restoring the active window, I figured that it would be useful for me to get into the habit of using those keys. To that end, I wrote Win7HotKeys. It implements the same hotkeys as Windows 7 to minimize, maximize, and restore the active window.</p>

<p>Go to the <a href="http://andy.theschotts.net/win7hotkeys.html">Win7HotKeys page</a> for more information. If you have any questions, comments, or suggestions, please let me know. :)</p>]]></content:encoded>
			<dc:date>2009-02-04T22:41:04-05:00</dc:date>
		</item>

		<item>
			<title>My Next Programming Project</title>
			<link>http://andy.theschotts.net/2009/01/my-next-programming-project.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">14@http://andy.theschotts.net/</guid>
			<description>Now that Yahtzee is nearly complete, my thoughts have started to turn to what to work on next. I have a few ideas. The one idea that has been in my head since I started Yahtzee was to port/re-write it...</description>
			<content:encoded><![CDATA[<p>Now that <a href="/2009/01/yahtzee_progress.html">Yahtzee is nearly complete</a>, my thoughts have started to turn to what to work on next. I have a few ideas.</p>

<p>The one idea that has been in my head since I started Yahtzee was to port/re-write it for Windows, using WPF. Not only would this let more people be able to use it (sadly, not everyone in my family has a Mac...for shame! ;), but it would give me more experience with using WPF. I'd say that I am doing pretty good with WPF currently, but my only experience with it has really been rewriting small personal apps that I use at work to automate a variety of activities (filling out my time sheet, entering bug reports, etc.). While that is good and all, they are all pretty small and don't do all that much. Yahtzee would be more complicated than that - but not <i>too</i> complicated.</p>

<p>Another idea I've had would be to automate how I keep track of our finances. For some history, I use a <a href="http://www.apple.com/iwork/numbers/">Numbers</a> to do this currently. Yes, it would (probably) be better to buy an app to do this, but I haven't found one that I liked that also works how I want it to. Besides, I have a system, and it works, so I can't complain too much.</p>

<p>Granted, there is some room for error in my system which is never a good thing. While I have toyed with the idea of writing my own finances app in the past (and failed/gave up, multiple times), a better approach might be to come up with something that would make my current system more efficient. If nothing else, I wouldn't need to write much in the way of presentation and storage, since Numbers take care of that for me.</p>

<p>Now that Numbers '09 finally has support for AppleScript, one option would be to write a set of AppleScripts that would automate what I do manually. To take that idea one step further, maybe that should be a "real" app instead, that uses AppleScripts to put the data that I enter into Numbers for me. That could work.</p>

<p>Of course, at this point I'm getting perilously close to basically writing my own finances app. But, this does take a number of annoying issues out of the equation - how to store the data, and how to manage such large amounts of it that I will accumulate over time. Maybe it would be best to start with the AppleScripts themselves (since I would need to write those anyway), and if prompting for data there isn't working too well, write a Cocoa UI to wrap them.</p>

<p>The one downside to all this is that I currently own Numbers '08, which doesn't have said AppleScript support. Since I don't use Pages or Keynote much (the other two apps in the iWork suite), I would basically be buying AppleScript support in Numbers for $80. I haven't decided yet if that's worth that price or not.</p>

<p>In any event, I do have a few ideas to go with, so hopefully I'll be able to keep my programming juices flowing at home for the near future.</p>]]></content:encoded>
			<dc:date>2009-01-28T17:00:00-05:00</dc:date>
		</item>

		<item>
			<title>Yahtzee Progress</title>
			<link>http://andy.theschotts.net/2009/01/yahtzee-progress.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">13@http://andy.theschotts.net/</guid>
			<description>I&apos;ve made some good progress on Yahtzee this past week. In fact, I think that I am mostly done with it! Players can take turns, and they&apos;re even notified when the game is over (and who won, of course). I...</description>
			<content:encoded><![CDATA[<p>I've made some good progress on <a href="/2009/01/yahtzee.html">Yahtzee</a> this past week. In fact, I think that I am mostly done with it! Players can take turns, and they're even notified when the game is over (and who won, of course). I have a work around for the bug that I mentioned last time (just tell the <code>NSArrayController</code> in the second window to update itself - not the best in the world, but it'll work). I need to test it with M a few times, but it should be mostly good to go.</p>

<p>I've had a few offers to test it as well, from people across the Internet. That will be a good test too, although I'm not sure why it wouldn't work. Only one way to know for sure, though.</p>

<p>The one feature that I've thought of that might be good to add would be some sort of chat feature. Currently, there is no in-game way for the players to communicate with each other. Sure, they could start up a separate IM chat or Skype call, but that doesn't seem to be the best way to handle things.</p>

<p>While chatting is easy enough to implement, the problem that I have doing so is how to display the text. I'm using an <code>NSTableView</code> to display the messages, and all is well if they are short. However, if the text is longer than is visible, the control appends "..." to what's visible instead of auto-sizing the column. Even better, I can't find any way to set the column to auto-sizing to contents. Nor can I find an easy way to tell it to wrap the text (I'd have to compute the height of the row myself, which is more work than I'd like to do, really).</p>

<p>Maybe for now I'll just leave things as-is and require a separate communication method of some sort. This just a quick and dirty app, after all - not something that I'm looking to sell or anything.</p>

<p>Overall, I think that this project went really well. The UI part of it was finished very quickly - that shows that I'm finally starting to get the hang of Cocoa for UI, thankfully. The client/server communication wasn't too bad, but it was definitely hindered by my lack of knowledge of general Cocoa/Objective-C APIs.  That part should also get better with time and practice.</p>]]></content:encoded>
			<dc:date>2009-01-27T17:00:00-05:00</dc:date>
		</item>

		<item>
			<title>Video Game Consoles vs PCs</title>
			<link>http://andy.theschotts.net/2009/01/video-game-consoles-vs-pcs.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">12@http://andy.theschotts.net/</guid>
			<description>The eternal question when it comes to video games is, &quot;Consoles or PCs?&quot; There are groups of people that are extremely dedicated to both, with valid positives and negatives on each side. It is a question that will likely never...</description>
			<content:encoded><![CDATA[<p>The eternal question when it comes to video games is, "Consoles or PCs?" There are groups of people that are extremely dedicated to both, with valid positives and negatives on each side. It is a question that will likely never be answered with complete satisfaction.</p>

<p>I have been pondering this question as of late. You see, my current PC is very old - it will be five years old in a few months. Believe it or not, it can still play some new games, although not very many. Those it can play it only barely meets the minimum requirements for. Many games, it can't even play at all. Such is the way of things.</p>

<p>While we do have a Wii, I don't really play that much anymore. 2008 was not a very good year for the Wii for someone looking for "normal" (i.e. non-casual or non-mini) games. 2009 does seem to be shaping up to be better in this department, but the Wii will never be an equal to the Xbox 360 or PS3 due to the large gap in hardware capabilities between them.</p>

<p>While it would be nice to say that I should just get a new PC and a new console (or even both an Xbox and PS3!), I do not really have the funds to do that - not to mention the incredible amount of time it would take to justify owning so many systems. That just isn't going to work out.</p>

<p>Instead, I started thinking about the pros and cons of owning each. That is always a good way to decide things like this.</p>

<p>On the PC side, one positive for me is that I've been heavily into PC gaming for a quite some time now - probably well over 15 years by now. While that doesn't mean I can, or I will, play any/all of my old games, I do have that library to fall back on, if need be. This is also ignoring all of the cool PC only games that will be out in the next few years - <a href="http://www.starcraft2.com">Starcraft 2</a>, <a href="http://www.diablo3.com">Diablo 3</a>, Half-Life Episode 3, the unannounced (but inevitable) Portal 2, and <a href="http://www.swtor.com">Star Wars: The Old Republic</a> (assuming that I want to tempt fate and try the MMO thing again). I'm sure there are others as well that I'm not thinking of right now.</p>

<p>Many games that are released for the Xbox 360 and/or PS3 are ported to the PC, too. Granted, they generally arrive a few months later, and some are shady ports and possibly with invasive DRM, but I can always avoid those games. The DRM part does seem to be getting better, though - especially after the reaction gamers had to Spore's horrible DRM.</p>

<p><a href="http://www.steampowered.com">Steam</a> is just plain awesome, and only on the PC. While it is similar to Xbox live (which costs $50/year to play online), it is really an incredible platform. While it does have DRM built-in, it is so out of the way that it may as well not have DRM, as far as I am concerned.</p>

<p>Finally, the other thing to consider about the PC is that it does more than play games. I'm a Windows programmer by day, and it would help me to stay abreast of the latest technologies by writing side projects at home. This would be a good way for me to learn WPF better, for example. A console definitely can't do that.</p>

<p>On the console side of things, the main advantage is convenience. No dealing with driver upgrades, instability (due to the large number of potential hardware configurations), long and arduous installs...not to mention frequent hardware upgrades (I really should have upgraded my PC years ago if I had wanted to stay current). Plus, there is the price - I would be likely to pay $300-400 for a really nice Xbox or PS3. That's not bad at all, given the quality of games available for each system.</p>

<p>Of course, I would be starting from nothing on a new console, since I don't have any games for it. That would be quite an initial cost to justify going that route.</p>

<p>And really, most of the positives of going the console route (for me, at least) are things outside of the console itself. My desk is currently shared between my PC and my Macbook. If I didn't need the PC anymore, then I could have a better setup for my Macbook - use my PC monitor as a second display (while the built in 13" inch display is nice, an additional 17" display is even nicer), plug in a real keyboard and mouse, etc. That's not really a positive for the console itself, but more a side affect of going that way.</p>

<p>As I said earlier, to play Xbox games online it costs $50/year. While that's not too bad, at the same time it is more than I need to play PC games online (ignoring MMOs, at least). That's just another cost to gaming on a console, really.</p>

<p>When I started writing this, I thought it would be much more balanced between the two sides, but for me at least it seems like the PC side really wins out. That's not to say that this is the right answer for everyone, of course, but it seems like the right thing to do for me.</p>

<p>Of course, now the question is, "What do I get?" That is likely an entirely different post, for another time.</p>]]></content:encoded>
			<dc:date>2009-01-25T17:00:00-05:00</dc:date>
		</item>

		<item>
			<title>Comparing Cocoa to WPF</title>
			<link>http://andy.theschotts.net/2009/01/comparing-cocoa-to-wpf.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">11@http://andy.theschotts.net/</guid>
			<description>While I bought my MacBook over two and a half years ago, I didn&apos;t start getting into programming it until a little under a year ago. It has definitely been an eye opening experience. I guess that I was most...</description>
			<content:encoded><![CDATA[<p>While I bought my MacBook over two and a half years ago, I didn't start getting into programming it until a little under a year ago. It has definitely been an eye opening experience.</p>

<p>I guess that I was most surprised by just how different it is from Windows programming. At first, when I had no idea what I was doing, I couldn't even search the documentation to find the answer since the whole concept of Cocoa programming (the primary API for OS X apps) was so foreign to me.</p>

<p>Once I got familiar with it (greatly aided by <a href="http://www.amazon.com/Cocoa-Programming-Mac-OS-3rd/dp/0321503619">Cocoa Programming for Mac OS X</a>, by Andy Hillegass), things got quite a bit easier. I still had a lot to learn, though.</p>

<p>Now that I am starting to really get into and understand WPF, it's amazing to me how similar it is to Cocoa. They both greatly emphasize the use of data binding for populating UI controls, and they have a lot of features for making programming easier.</p>

<p>They do have their differences, however. Personally, I still feel as if WPF is more flexible. If something that I want to do isn't provided by default, it seems like I'll have a better chance of implementing it cleanly in WPF. Granted, this could just be because I have more experience with Windows programming in general.</p>

<p>Cocoa does have some advantages, too - namely its UI designer. While it was weird at first that it doesn't generate any code, its approach does make sense. Plus it does a great job of enforcing standard UI conventions.</p>

<p>It has definitely been interesting to learn two different UI libraries at the same time. This has shown me where the strengths and weaknesses of each are - not to mention making me a better programmer by expanding my horizons.</p>]]></content:encoded>
			<dc:date>2009-01-22T17:00:00-05:00</dc:date>
		</item>

		<item>
			<title>Yahtzee</title>
			<link>http://andy.theschotts.net/2009/01/yahtzee.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">9@http://andy.theschotts.net/</guid>
			<description>Late last year I started working on a new programming project in my spare time - Yahtzee for Mac. While I realize that I&apos;ll neve be able to release it due to liscensing issues, I still enjoy working on it...</description>
			<content:encoded><![CDATA[<p>Late last year I started working on a new programming project in my spare time - Yahtzee for Mac. While I realize that I'll neve be able to release it due to liscensing issues, I still enjoy working on it in my spare time. If nothing else, it gives me more experience and practice with Cocoa programming on OS X.</p>

<p>I've made pretty good progress so far. A single player can roll five dice, select which ones to keep, and roll again. Once they have the numbers that they like (or have rolled three times), they select which score to use for the roll There isn't an end game as such, but it does pretty well for a single player experience.</p>

<p>My current task is to add multiplayer support. While I wrote the single player part in a week or so, this is talking much longer. Currently, while multiple players can "play," taking turns isn't enforced. That's what I'm starting to work on now.</p>

<p>When a player starts the game as a server, a new window is displayed listing all of the players that have joined the game, and their initial roll (in order to determine who goes first). The problem is displaying the array of player in both this and the main window (defined in sepaeate XIBs) at the same time. While the array displays fine initially, if a player joins the game acres the window is displayed they are not shown in the list. This is because a different <code>NSArrayController</code> is used, so it doesn't have any idea that a player was added to the array.</p>

<p>I'm not sure how to fix this yet, sadly. I can't bind one <code>NSArrayController</code> to another, and I can't use the same one in both windows since they are defined in different XIBs. I could move them into the same XIB, but that just seems wrong. It might work to set the binging in code, which would allow me to use the. same controller in both windows, but I'd rather use Interface Builder for this if I can, sice that is what it is meant to do.</p>

<p>I haven't had much luck using Google or StackOverflow to get an answer, either. Maybe if I plug away at it, something brilliant will come to me.</p>]]></content:encoded>
			<dc:date>2009-01-20T21:24:08-05:00</dc:date>
		</item>

		<item>
			<title>Sending the current Headline to OmniFocus</title>
			<link>http://andy.theschotts.net/2009/01/sending-the-current-headline-to-omnifocus.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">8@http://andy.theschotts.net/</guid>
			<description>For the final piece on my series on using AppleScript to add information to OmniFocus, I&apos;m going to describe how to send news items from NetNewswire. It ended up being a lot simpler than I thought that it was going...</description>
			<content:encoded><![CDATA[<p>For the final piece on my series on using AppleScript to add information to OmniFocus, I'm going to describe how to send news items from <a href="http://www.newsgator.com/INDIVIDUALS/NETNEWSWIRE/">NetNewswire</a>. It ended up being a lot simpler than I thought that it was going to be.</p>

<p>The hardest part was getting an object for the selected headline. I must be missing something, because I couldn't find this in the NetNewswire dictionary, but a Google search turned up the solution: use the <code>selectedHeadline</code> property. It, in turn, has many properties, of which the <code>title</code> and <code>URL</code> are of particular interest. These values are set into variables to send to OmniFocus later:</p>

<blockquote><pre>tell application "NetNewsWire"
    tell selectedHeadline
        set t to title
        set u to URL
    end tell
end tell</pre></blockquote>

<p>From there, it's the standard code to create a new task in OmniFocus:</p>

<blockquote><pre>tell application "OmniFocus"
    tell default document
        set theProject to project "Follow Up"
        set theContext to context "Online"
            of context "Mac" of context "Home"
        set newTask to make new inbox task with properties
            {name:t, note:u, context:theContext}
        set assigned container of newTask to theProject
		
        compact
    end tell
end tell</pre></blockquote>

<p>And that's it!</p>

<p>While I'm by no means an AppleScript expert at this point, I definitely know enough to get stuff done using AppleScript. I think I'm missing something in that I couldn't find out how to get the currently selected headline on my own (and I have had similar issues with other research this week), but in time I'm sure that I'll get it down.</p>]]></content:encoded>
			<dc:date>2009-01-14T23:01:58-05:00</dc:date>
		</item>

		<item>
			<title>Creating an OmniFocus task with the Safari page</title>
			<link>http://andy.theschotts.net/2009/01/creating-an-omnifocus-task-with-the-safari-page-1.html</link>
			<dc:creator>Andy</dc:creator>
			<guid isPermaLink="false">7@http://andy.theschotts.net/</guid>
			<description>Yesterday, I described how to send the current tweet in Twitterrific to OmniFocus. Today, I&apos;ll show you how to create an OmniFocus task containing the URL and title of the current window in Safari. At first, I thought that I...</description>
			<content:encoded><![CDATA[<p>Yesterday, I described how to <a href="http://andy.theschotts.net/2009/01/sending-current-twitterrific-tweet-to-omnifocus.html">send the current tweet in Twitterrific to OmniFocus</a>. Today, I'll show you how to create an OmniFocus task containing the URL and title of the current window in Safari.</p>

<p>At first, I thought that I wouldn't need to write this script, since OmniFocus can bring in the current Safari URL using the Clippings feature. However, in order for this to work, some text in the web page must be selected first (which will become the title of the task). I'm fine with always using the title of the page, so I don't need to worry about finding the title somewhere on the page to copy it.</p>

<p>Anyway, the URL and title of the active Safari window need to be retrieved with AppleScript. For some reason, the document object contains the URL, while the window contains the title. They can be found like this:</p>

<blockquote><pre>tell application "Safari"
    set u to URL of front document
    set t to name of front window
end tell</pre></blockquote>

The <code>front</code> modifier tells Safari which property to route the request to. This ensures that the window that you're working in will be the one that gets the request.

Now that we have the URL and title, the same code that was used yesterday to create the task can be reused here, plugging in the data from above:

<blockquote><pre>tell application "OmniFocus"
    tell default document
        set theProject to "Follow Up"
        set theContext to context "Online"
            of context "Mac" of context "Home"
        make new inbox task with properties
            {name:t, note:u, context:theContext}
        set assigned container of newTask to project theProject
        compact
    end tell
end tell</pre></blockquote>

And that's it!

As always, if you have any questions, comments, or suggestions, please let me know.]]></content:encoded>
			<dc:date>2009-01-13T17:00:00-05:00</dc:date>
		</item>

	</channel>
</rss>

