Sunday, June 12, 2005

 I finished this book on the plane coming back from Tech Ed.  The book is pretty well laid out and if you download the source code for all the samples to read as you go along everything makes a lot of sense.  If I had never even looked into game programming before and this was the first book I'd read, the book would be highly motivating; it leaves one with the feeling of "Holy crap, I could actually do this."

If you've never done game programming before, I'd suggest going through the motions of doing the 2D games before getting into all the Managed D3D stuff.  2D games have all the same elements: game loops, render loops, collision detection, etc and you need to learn all those things before moving on to more complicated vectors.  Reading this book also gave an introduction to DirectInput, DirectSound, and DirectPlay: the developer story for making a DirectX game is really fantastic. While there is always a performance hit for working within managed code, as Tom Miller points out Managed DirectX is a very thin wrapper and in terms of pure graphics performance the managed apps get very similar framerates to the unmanaged apps.

I'm going to re-work my current Tank simulation with DirectInput and some sound before moving back to my neural net.

Sunday, June 12, 2005 12:45:09 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [40]  |  Trackback

Nothing super interesting to report from Friday: I saw a few of the obligatory ASP 2 demonstrations.  I don't know why I'm not tired of these yet.  Perhaps it is because I've done more web development than anything else in my career and its nice to see the developer story finally getting close to where I think it should be.

That wraps up TechEd for me.  All in all, I give it a B.  It accomplished my goal of getting me excited about work again, but a lot of the content was not as in-depth as I would have liked.  I think I'd like to try doing one conference a year.  Next year I think I might try the PDC.

Now that I'm back I have a to-do list a mile long, including catching up on all my side work and trying to make up as much of the 40 hours I missed last week as I can.

Sunday, June 12, 2005 12:33:07 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [4]  |  Trackback
 Friday, June 10, 2005

I was going to post about all the architecture talks I attended Thursday, and about how I feel we need to adopt more rigorous language when describing what an Architecture is and what the attributes of an Architecture are.

But, instead, I will save that for later and talk about the attendee party.

In the 90s I managed to miss all the craz JavaOne parties and such so TechEd was a big deal to me.  For the attendee party Microsoft rented Universal Studios exclusively for TechEd attendees and their guests.  The rides were running but the park was empty except for us.  Jen and I were able to go on every ride we cared about and some of them twice, with just 10 minute waits.  How cool is that?  I would definately say Universal Studios probably isn't worth the price of admission with the two hour lines, but without the lines it was really a great time.  Not only did we have the place to ourselves but there were stands placed every 50 feet or so with free beer, wine, and chewy pretzels.  Needless to say, we had a great time and didn't get home until late and I missed my Friday morning talk concerning management and the SOA enterprise.

Friday, June 10, 2005 7:57:31 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Thursday, June 09, 2005

 I saw several good talks yesterday but by far the most interesting was Jocham Seemann's talk about the Domain Specific Language tools they are working on for Visual Studio 2005. (Side note: he must not have grown up in the US, I did not see the battle scars he would certainly have acquired defending himself and his name) The idea behind the DSL tools is to provide a common set of Designer tools. Designers tend to have common elements such as shapes, decorations, and connectors. Consider an ER modeling tool vs. a UML class diagram tool: their basic notions are similar but the exact semantics differ. Using the DSL tools you define the semantics of your custom language. You detail what entities are in your domain space, what attributes they have, what types of connections they can have to what other entities, etc.

The DSL tools have a lot of built in support for code generation, using an ASP-like tag syntax, similar to CodeSmith as well.  The tools allow you to define validation rules and such as well, and handles persistence of your models for you.  Once your tool is done, you can click a button to build a visual studio add in so that other developers working within your problem space can use your Domain Specific Language.

My question is why stop there?  Why limit the use of this tool to visual studio users?  Suppose you work in a business with a fairly well defined domain, such as selling mutual funds for a specific company.  If you could define your domain entities, attributes, connections, rules, etc and then put this tool into the hands of people like, oh, say, business analysts you may have a very powerful code-generation and/or documentation tool that is usable by the people who supposedly know the business best.  I have built some custom designers in .NET 1.1 and its not exactly easy, a "Generic DSL" tool would be an interesting challenge and potentially a very useful product to a business as well.  I'll have to dig up the DSL team's URL out of my notes and download the DSL plugin for Visual Studio 2005.

 

In other news: Microsoft released a June 2005 update for the Managed DirectX SDK.  The first time I downloaded it a resource bundle seemed to be missing and it didn't work.

Thursday, June 09, 2005 9:28:12 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [6]  |  Trackback
 Wednesday, June 08, 2005
Saw some excellent sessions at TechEd on Tuesday.  The first was by a blogger I've been reading for a while, Scott Hanselman.  Scott has a lot of interesting and humerous observations on his site, including such gems as "Can we use WS-Powerpoint for this" and various Zen mantras related to .NET coding.  Then quotes in his powerpoint reminded me of something I've been into for a long time, which is writing Haiku about topics such as coding and everyday life. For example
Asynchronous call
Such an efficient method
Of getting work done

I should really poste more .NET related Haiku, as I'm sure its something that would benefit the community immensly.  Back to Scott's talk: the topic was about code generation.  I've been getting more interested in this ever since a local client disallowed me to use a CG tool to generate Types from a datastore.  I'm like a small child that way, making it forbidden makes me want to do it more.  Scott showed a lot of interesting code generation best practices and ideas including:

  • Generating Big word docs as part of your build process
  • Generating unit tests and CHM files along with your code
  • naming conventions to indicate what files are generated
  • Using XSD and WSDL for creating your Domain Specific Languages
  • How to make your own XSD files available to VS 2003 so you have intellisense support

And a lot more.  The most interesting part is that Scott did all this in VS 2003, no built in DSL support or partial classes.  I became interested enough in this to switch one of my sessions on Wednesday to a talk on the DSL support in VS 2005.

My favorite talk of the day had to be one concerning adding voice support to mobile devices using Speech Server.  This is something casey has been using for a while and had good success with.  It still amazes me sometimes how Microsoft can take some incredibly complex problem spaces and make them accessible to almost anyone.  The speech server model is a web-application model, and adding SALT-like support to your pages is incredibly straight forward.

There is simply too much to learn.

Wednesday, June 08, 2005 10:37:17 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, June 06, 2005

Today was a day of many meetings at the Orange County Convention center.  I met some people from some newsgroups that I have previously known only through posting.  Steve Ballmer is really an excellent speaker, I have not seen him before but was duly impressed.  Before the keynote was over I had ran into Eric Michel, Gerry Heidenreich and Scott Isaacs.

The first session I attended was an architecture talk concerning some best practices for Office system solutions, this turned out to be a yawner.  A later session was an intro to Info Path which was a little more interesting.  The best parts of the day were talking to various people in Microsoft booths.  I'm looking forward to tomorrow's sessions much more.

Monday, June 06, 2005 7:04:40 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback

It smells like Microsoft here.  There's a lot of energy as all the eager geeks pace about the floor with their coffee and donuts, anticipating Balmer's Key Note.  There must be something in the air because I'm feeling more pro-Microsoft at the moment than I ever have before.  If Bill were to walk up to me right now and ask if I'd like to graft a copy of Windows into my DNA I'd probably agree.

Seriously, its very cool being here.  I have to give a shout out to SafeNet for sending me.  I'm going to go see what they are playing on the 30 ft. Xbox screen and get ready for the opening address.  I'll bring the camera tomorrow.

Monday, June 06, 2005 5:54:40 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Saturday, June 04, 2005

Well we are in Florida in a nice hotel with a not so nice internet connection.  No hard-wire in my room so I'm sitting in the lobby.  Bah. Seriously folks, what year is it?  I have already learned something on this trip: My Laptop + Beta 2 + no plugin on the plane = battery dead in 40 minutes flat.  Nice.  I know that a couple of other Wisconsin people are around so maybe I'll hook up with them this coming week.

As I mentioned in the "Simulation" article I have some fabolous (cough) graphics in a Direct 3D game I'm using as a simulation for various theory testing.  The next step was to implement some kind of AI so that the bad guys shoot back at me.  I'm almost done with the pre-simulation-simulation-tester for my neural net.  Why a neural net?  I should say before optionsScalper slams me for mis-applying the idea, wait for my next post where I justify why this notion is very fitting for mimicing how a human would look at something on a screen and try to guess at a trajectory and how to acheive it.  Stay tuned.

.NET | TechEd
Saturday, June 04, 2005 7:15:22 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Thursday, June 02, 2005

The TechEd plane leaves early Saturday morning.  I truly loathe flying in post 9/11 America but not as much as I loathe long car trips.  The Family is coming with me which will to some degree affect the amount of geekery that I am able to participate in but I am very much looking forward to these sessions.  I'm sort of hoping I can finish one of my side projects in between sessions and leave more time for interesting research when I get home.  I should be able to get to the next stage of my simulation on the plane ride down there.

Thursday, June 02, 2005 12:06:39 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback