Experiences and Experiments in Programming

 Saturday, July 24, 2010

I am really late getting this out, but since my youngest daughter tried to blind me recently, everything is behind!  If you have not heard, Walt Ritscher released Shazzam 1.3 on July 14th.  Yes, you are correct, this is great news.  Wait, some of you have not heard about Shazzam!  Well there is no time like the present to find out about it.

If you do anything with pixel shaders for WPF or Silverlight, you need Shazzam.  Shazzam is a tool that allows for the simple editing and testing of pixel shaders for WPF and/or Silverlight.  You can write your shader code in the built-in HLSL editor, then compile it and test it against sample images or video with a single click.  If your shader takes input parameters, Shazzam will build a set of controls to allow you to tweak your parameters in real time.  Once you are happy with your shader, you just copy the code generated by the tool into your project and start using it.

I have been using Shazzam since it was first released and this upgrade adds some really nice features.  For one thing, with previous versions of Shazzam, you had to provide your own copy of the tool used to compile the HLSL.  This tool is found in the DirectX SDK which is a nice size download just for one executable.  In version 1.3, this dependency has been removed!  For WPF Shaders, the new PS_3 specification is supported.  And you can tell Shazzam which specification/platform you are targeting.  There are now over 80 sample shaders included with the tool.  And 20 tutorials have been added demonstrating the who, what, when, and where of some of the most common HLSL.  From what I understand from Walt, there were a number of folks who wanted to download and install Shazzam, but their network or company policies prevented them from installing Click-Once applications.  So version 1.3 is now available as a standard installer package.

This is just the tip of the iceberg for some of the new features of Shazzam 1.3.  I would encourage you to download and install it.  If you are writing your own pixel shaders, it is a great tool to have in your hip pocket.  If you have not written any pixel shaders and have been a little intimidated by HLSL, then Shazzam is the tool to get you in the ball game!

Friday, July 23, 2010 11:07:15 PM (Central Standard Time, UTC-06:00)
 Monday, July 19, 2010

There seems to be some folks who are still having problems installing the Windows Phone 7 Beta Tools if they had a previous version installed.  One of the tricks is to make sure it is done in the right order so that any and all dependencies are addressed.  So while this order may differ for you, I am hoping that sharing my experience will help others.

  1. I started, as many did, by simply going through Control Panel (CP) and selecting to uninstall the Windows Phone 7 Developer Toolkit.  Well, I didn’t have any more luck than most.  The uninstaller seemed to be trying to install instead of uninstall.
  2. I then headed to my Program Files folder and found the Microsoft Visual Studio 2010 Express for Windows Phone CTP – ENU folder.  Mine was located at “C:\Program Files (x86)\Microsoft Visual Studio 10.0\Microsoft Visual Studio 2010 Express for Windows Phone  CTP – ENU”.  In this folder, I right-clicked the vs_setup.msi and selected uninstall from the context menu.
  3. Next I uninstalled “Windows Phone 7 tools addin for Visual Studio 2010” via the CP.
  4. Then I uninstalled “Visual Studio 2010 Express Prerequisites x64-ENU” via the CP.
  5. Next on the list was to uninstall “XNA Game Studio 4.0 Windows Phone Extensions” via the CP.
  6. After that, I uninstalled “XNA Game Studio 4.0” via the CP.
  7. At this point I did my first reboot in the process.  After reboot, “Windows Phone Developer Toolkit” no longer showed up in the CP program list.
  8. I uninstalled “Windows Phone Developer Resources” via the CP.
  9. Then I uninstalled “Windows Phone Emulator x64 – ENU” from the CP.  This is a step many forget if they can get everything else uninstalled.  You have to uninstall the emulator or the new tools will try to use the existing emulator.
  10. Now, I uninstalled “Expression Blend 4 Add-in Preview 2 for Windows Phone” via the CP.  Keep in mind that you may not have all of these options depending on what you installed in the first place.
  11. I then uninstalled “Expression Blend SDK Preview 2 for Windows Phone” also via the CP.
  12. I rebooted here for the second time.
  13. After this reboot, I noticed that there were still some remnants of the XNA Studio and extensions.  So I ran the XNA Cleanup Tool.  The download for the tool and the list products it removes can be found at Aaron Stebner’s blog.  I ran it twice.  The first time I specified “Windows Phone Developer Tools” as the product.  The next time I specified “XNA Game Studio 4.0” as the product.  Both runs exited with 0.
  14. After running the cleanup tool I figured I might need to reboot for good measure so my third reboot.
  15. After this reboot, I installed the Beta tools with no problems.

I hope this helps anyone else who may still be having problems getting the Beta tools installed.

Monday, July 19, 2010 10:30:22 AM (Central Standard Time, UTC-06:00)
 Tuesday, July 13, 2010

Recently after installing some updates, I noticed that my computer kept waking from sleep at midnight.  This was especially frustrating when the machine was in sleep mode in my bag.  When I opened the computer the next day, the batter would be dead and the machine will have hibernated.

I found a command line tool to configure power settings.  I would not think you would normally use this tool to modify your power settings, but there are some interesting switches that can be helpful in my situation.  I am sharing them here as much for anyone else’s benefit as for my own lack of memory!

This switch will display information about the last event that woke the computer from the sleep state.  I found that sometimes this would not give me any useful information.  Not sure why it would give more information on some events than others, but it is still useful.
Example: powercfg -lastwake

This switch returns a list of devices that meet the query criteria passed as flags to the switch.  There are some really useful flags that can be used here.  The one that I wound up using to get the information I needed was wake-armed.  This flag lists the devices that are currently configured to wake the computer from any sleep state.  There are flags that allow you to list devices that are configured to wake the computer from various levels of sleep.
Example: powercfg –devicequery wake-armed

In my case, I ran the –lastwake switch to see what caused the previous wake.  This didn’t give me any information on the day I checked it.  But when I ran the –devicequery switch, I noticed that my network card had been reset to wake the computer.  I could have used the –devicequery switch to disable wake on that device, but instead I went into the device manager and disabled wake on the network card.  Problem fixed.

Hopefully this will help someone else solve a similar problem sooner!

Tuesday, July 13, 2010 9:35:14 AM (Central Standard Time, UTC-06:00)
 Saturday, May 08, 2010

ReMix Atlanta was a great event.  I think there was a good turnout.  Brandon Watson gave a great keynote, an overview of Windows Phone 7 philosophy.  There were some great speakers and I enjoyed conversations with current friends and new friends.

My presentation on Silverlight for the Enterprise went well.  There were a lot of questions about WCF RIA Services and MEF.  I was glad to see the interest in these technologies.  While I am not a heavy user of RIA Services, I see the value and know that it is a great fit for many.

After the presentation, I continued the conversation with a handful of folks for more than an hour.  It was some good conversation with good questions!

I hope everyone that came to the presentation left with some more knowledge and something that inspired them to go out and do some more research into some of the technologies and features we discussed.  Hopefully I got a few more people hooked on MEF!

Saturday, May 08, 2010 9:44:55 PM (Central Standard Time, UTC-06:00)
 Tuesday, April 27, 2010

May 2010 brings two great events to Atlanta, ReMIX 2010 and .NET Rocks Roadshow.

.NET Rocks is setting out on a roadshow to celebrate the lauch of Visual Studio 2010.  If you are a fan of the show, they will be taping  one of the shows in front of a live audience the day before ReMIX on May 7th.   For details and to register, check out the roadtrip site.

On the following day, May 8th, the local developer and designer community, in conjunction with teams from Microsoft, is putting on ReMIX Atlanta 2010. This will feature 3 tracks of the best sessions from the MIX conference, live, with a few treats and surprises thrown in. This will be an amazing conference for a small fee. Register now at http://remixatlanta.org.

The .NET Rocks roadshow is free, and ReMIX Atlanta is bargain priced at $25 (if you register before April 27 – see the site for details).

I am told by Glen Gordon that there are plans to have some of the speakers from MIX come into town, including several folks from the Windows Phone 7 team. I hear they’ll be bringing some devices as well.  And while I can’t compete with the folks from the Windows Phone 7 team, I will be presenting on “Silverlight in the Enterprise”!

Remember to register before the deadline to get the discounted fare!  Hope to see you there!

Tuesday, April 27, 2010 8:36:29 AM (Central Standard Time, UTC-06:00)
 Saturday, March 27, 2010

PACKT Publishing sent me a free copy of 3D Game Development with Microsoft Silverlight 3 to review.  I was truly looking forward to reviewing the book.  I have built a handful of games in Silverlight purely for fun and have not really talked about game development or advertised that I work with game development using Silverlight.  In the past I have done a lot of digital video and graphics work for advertising or movies.  So, for me, creating a game is a fun and relaxing escape from day to day application development.

When I received the book, the first thing I did was to flip to the Preface section to see what the book was about in summary and who the book was written for.  The description indicated that the book was written for C# developers with a basic knowledge of Visual Studio IDE.  Furthermore, it indicated that no prior experience in 3D programming, 3D animation, and Silverlight is required.  After reading the book, I agree that this is an accurate statement.  However I think that to get the most out of the book and what the book introduces, a developer would either have some experience with 3D tools or would want to explore these tools and concepts further.

I decided I would dive into chapter 1 as though I had no prior experience.  The book starts out putting the reader into character as a developer who has always wanted to develop a 3D game.  You now have the opportunity through a new game contest.  The rest of the book follows you, the eager developer, as you build and enhance your game entry.  The approach was fun and made for a more interesting read if you read the book from cover to cover.  As such the book started from step A and went all the way through Z.

One of the first things that became clear was the layout of the chapters.  Throughout the book, concepts are introduced through a series of “Explanation”, “Time for Action”, and “What Just Happened” sections.  In the sections I would label as explanation, the author discusses tools and concepts that will be used in the “Time for Action” sections.  Next you are presented with the “Time for Action” section where you are taken step by step through some action.  Usually this involves writing code and occasionally installing software or some setup tasks.  Once you have followed the steps, performed some action, and are all happy with your results, you come to the “What Just Happened” section which explains the outcome and reiterates what you just did.  This follows the old teaching adage “Tell them, Show them, Have them do it, then Tell them again”.

Through this series of explanation, example, and confirmation, the author  walks the reader through a full gambit of topics.  By the time you get to the end of the book, topics have been covered ranging from basics like importing graphics into Silverlight, placing them on the page, and moving them around to more complex topics like animating pixel shaders, collision detection, and physics engines.  In between, the reader is introduced to popular industry tools like Blender and Gimp.

The book is a great introduction to 3D game development in Silverlight.  While certain topics like Blender and the Farseer Physics Engine are deserving of a book unto themselves, the introduction is just what is needed to get started.  The book goes well beyond what is needed to develop 2D games, but the concepts like working with objects on the screen, backgrounds, using multiple pages, collision detection, etc are very applicable to both 2D and 3D!  If you truly want to develop 3D games using objects and characters that will move and interact in a 3D environment, this is a book that can get you started.  It won’t be the last book you’ll need, but it will open the door to what you can do and help you determine what other resources you would like to explore further.

Saturday, March 27, 2010 11:35:59 AM (Central Standard Time, UTC-06:00)
 Monday, October 26, 2009

I have been really busy lately with so many different projects.  I recently spoke with PACKT Publishing about reviewing 3D Game Development with Microsoft Silverlight 3.  I am looking forward to reading the book and taking some time out to have a little fun.  I don’t get much time anymore to do programming for the sheer fun of it (not that I don’t enjoy any development I get to do).  I am going to approach the book as though I have not played at all with Silverlight game development.  I look forward to writing up a review when done.  Keep an eye out for the review soon!

Monday, October 26, 2009 8:41:47 PM (Central Standard Time, UTC-06:00)
Who Am I - Todd Miranda
MVP Visual Developer - ASP/ASP.NET
On this page....
<July 2010>
Aggregate Me!
RSS 2.0 | Atom 1.0 | CDF
Contact me
Send mail to the author(s) E-mail