Title Image

Plane of NonConformity

Welcome to Plane of NonConformity Sign in | Join | Help
in Search


Carsinigin (pronounced kär-ˈsi-nə-jən) a deliberate misspelling of "carcinogen"

Definition: a substance or agent causing cancer

  • More Microcontroller links

    sw3dprousb (aka 3DP-Vert) Google Code project -  http://code.google.com/p/sw3dprousb/
    Reverse Engineering the Force Feedback Pro - http://www.descentbb.net/viewtopic.php?f=8&t=19061 

  • Build your own Cockpit/Controller Links

  • Keys to a great Xbox 360 Game

    Microsoft has made some great improvements to the Interface on the Xbox 360.  I had written an outline of what I thought made a great Xbox game back in 2004 when Xbox Live had been out about a year and a half.   A few of the items on that list have been fixed with the blade interface on the 360, but some are still left up to the individual game developer.


    Things Microsoft needs to fix globally

    1. Individual volume control for other players - Some players have their mic stuffed down their though and yell, others like to whisper.   Save the setting globally so I don't have to adjust it ever time for the same player.
    2. More options for sending feedback about a player - We need options like "Immature,"  "Annoying," "Spawn Camper," and "Team Killer" and then thresholds that the host can set not to let people in with too many of those feedbacks.  At least now we have the five star reputation system so we can check if a player is going to be a pain in the ass. Although it seems that everyone I play with has 4 1/2 or 5 stars, maybe I just play with good people or it's broken.
    3. Games have ratings, Enforce them -  I should not be constantly running into pre-teens in rated "M" games.   I know they have "parental controls" but seriously that will not work,  my 8 year old nephew knows the new "parental control" password within a day of his parents changing it, just from watching them type it in.  Use the expanded feedback system to tag Gamertag that have underage players and block them from getting on live on any "M" rated games.

    For Developers:

    1. Less "Loading...." - I've got a few points about loading:

      • There should be a minimum of at least 5 minutes of gameplay between loading screens.  
      • Yes your new 3D realtime rendered menuing system looks really nice,  but it's getting in the way of playing your game.  It takes longer to load and sometimes I even see a loading screen when I go to an other menu.  KISS.  Once I'm at the main menu I don't want to see a loading screen until I'm starting the game.
      • My favorite thing to bitch about; "Press Start to Load"  If you put up "Press Start" on the screen as the only option it better not say "Loading" right after I press that button.   You could be nice and load then ask me to press start.  It saves me time.
      • Have a real main menu.   I don't want to load up your single player game to pull up my in game cell phone to find where to join the multiplayer match. Thanks GTAIV.  I had to ask someone how to play online.   Not cool.
    2. Control - Please let us map our own controllers.   We should be able to set any button to do any action.  Some of us play a lot of different games in the same genre, we don't want to have the X button be reload in one game when it's jump in an other.  Let us pick what each button does and you can provide your recommendations.  Hell even let us trade our controller configurations with friends.
    3. Proximity Chat and Team Chat - Both should be supported.  I want to be able to taunt my prey.
    4. Hosting - Again multiple points
      • Lobby - This is not optional IMO for a great Xbox live game.  We need a bit of downtime between games to chat and socialize with our fellow gamers.  But with lobbies come some other features that need to be in the lobby.  The host needs to be able to change settings for the game, not just some settings but every setting,  including the size(number of players) of the lobby.  Also the host must be able to force a launch if someone in the room is AFK.  The on the other side of things a way for the players to launch if the host is AFK.
      • Dedicated Hosting - If you think you need a dedicated server for the PC version of your game you need a dedicated host mode for your Xbox 360 version.  Of course not all games need a dedicated host but not everyone can host 8 to 16 players but some people can and those people are not always on their 360 but their 360 can always be on. (as long as it's in a well ventilated space)
      • Kicking and Banning:  I don't want to kick the same guy multiple times.  Also it should not be easy to accidental kick your buddy who just happens to be next to the annoying guy on the players list.  (This might be a Microsoft thing)
    5. Saving - You need to be able to save your progress in a mission at any time or if using a checkpoint system the check points should represent no more then five minutes of gameplay. 
  • An end may be near.

    Video games just don't hold the same appeal this days compared to a couple years ago.   I still play my Xbox everyday but some days I only play a few minutes to keep my streak going on 360voice.  Rock Band has been the only recent game to hold my interest for more then a few months.   I feel like there is almost too many games out there.   My fondest gaming memories are on the original Xbox when live just came out and there were less then 10 good games on Live.   It wasn't hard to find a good match with decent, both skill wise and socially, players.   Now that is almost impossible without setting up a private match and only inviting your friends.  Even friends only matches are hard because everyone is playing a different game each week.

  • Vista speech recognition

    I was looking through Windows Vista's control panel what state today and I found windows Vista's speech recognition.  It just took me 20 minutes to write the first sentence with it.  It looks like the second sentence only took a minute.

    This sucks.

  • 360voice API and .NET (Part 1)

    A personal project, GamerScoreGoal.com, that I have been working involves tracking Xbox live GamerScore.  One of my personal favorite Xbox sites is 360voice.com where your Xbox 360 blogs about your playing habits.  360 voice has an API set including one that returns the GamerScore history for a particular Gamertag.

    I ended up building a helper class that calls out the 360voice API and returns objects that can be used in .NET programing.   It's simply using the XMLDocument object in .NET and filling in some custom objects that you can consume inside your own program.   I'm only using a subset of the 360 voice API calls but I figure this code can help someone else out there and can easily be modified to include the missing API calls.

    To understand what we need to do we need to understand the API.   360voice is using a simple REST API.  That means that we can request a specific URL and will get back an XML document with the information we want.   Then we can process the XML into whatever format we want.  In this example I want to transform the XML data into in memory objects that I can use in .Net.

    The first API that you'll want to consume is 360voice.gamertag.exists since it checks if the Gamertag you want information on is in the 360voice database. It's also their simplest API and a good place to focus on the basics.  

    The URL we need to get takes this format:


    You replace the Gamertag at the end with the one you want to get.   Then you will receive back some XML that looks like this:


    The XML tag that we are interested in is <gamertag>.  It will be "True" or "False".   So our method in our Helper class should also return a Boolean.  

    I created a class called "API360Voice" and a shared(static) function "GamertagExists" that returns a boolean. 

    Code Step 1 

    Now we want to grab the actual XML from 360voice and load it into an XMLDocument.   First thing we need to do is add the import directive for "System.Xml" to the top of the class and declare an variable to hold the XML Document.   Then we can use the XMLDocument.Load(String) method to read the XML from 360voice.  We just pass in the URL that we want to load into the XMLDocument and .Net takes care of HTTP request and loading the document for us.   You will also want to wrap this in a Try...Catch statement since this includes network access and can throw exceptions if you are not connected to the Internet or 360voice is not accessible.

     Code Step 2

    You'll also notice that I passed the Gamertag string into System.Web.HttpUtility.UrlEncode.   This function will clean up any special characters so they are safe to pass as a URL.   This really helps when you try to implement some of the API's that require you to pass Game names into them.   A few like Rainbow Six Vegas actually have a copy write symbol or registered trademark symbol and UrlEncode will handle that for you.

    Now we have the XML document loaded into memory on our system and we need to process it to get the value of the gamertag XML tag.  So we use the "GetElementsByTagName" method of XMLDocument and pass in "gamertag" as the tag we want.   Since .Net doesn't know about the specific format of the XML document we are working on and XML documents may have more the one tag with the same name we get back a XmlNodeList that we can loop though and process.  In this case will will only the enter the loop once.   Then we just check the InnerText of the node to see if its "True" or "False". 

    So the final function looks like this:

    Final Code


    Next time I'll work on adding the 360voice.gamertag.profile and 360voice.score.getlist.  Where we will create objects that will represent the returned XML.

    I'm also plan on writing on how to take all this and create an image that you could use as a forum signature or badge on your blog.

    I've created a page on the MSDN Code Gallery that will have the source code for this post.  Go to the releases tab and grab API360Voice v0.1



    360Voice API List - http://www.360voice.com/forum/topic.asp?TOPIC_ID=3

    Source Code: http://code.msdn.microsoft.com/360voiceAPI

  • January Update

    As you may have noticed GamerScoreGoal.com was updated last Saturday, January 19th.  There are quite a few changes most noticeable is the new site theme and the updated user profile, but most of the work was again concentrated on less visible areas of the site.    I have updated the code base from .Net 2.0 to .Net 3.5 to take advantage of LINQ and VS 2008(If you don't know what that means don't worry it's geek speak). 

    New Features:

    • Updated user interface for every page on the site.
    • Updated user interface for the Gamertag Directory
    • Updated user interface for the Games Directory, including sorting by Tag and GamerScore.
    • Added Achievement History on each Gamertag's profile page.
    • Added a details page for each game that lists the games Achievements and players.
    • Achievements can now be sorted by Difficulty and GamerScore.


    I have a lot of ideas for new features on GamerScore Goal but I would like to hear from people using the site.  What would you like to see?



  • Wii Remote Problems

    imageIt's just not my month for gaming hardware.   Since my Xbox is out I though I would fire up the Wii.   When I did I couldn't point to the left hand side of the screen.   I would move the cursor from right to left and right in the middle of the screen it would just disappear like there was an obstruction between the wiimote and sensor bar.   At least my other wiimotes work correctly.   Let's see how Nintendo stacks up warranty wise.


  • Xbox Warranty Return December

    I've made a lot of trips to my local UPS store this month.   Most of them dealt with the normal shipping and receiving of Christmas gifts.  But I've made five trips for warranty replacements of Xbox related items.  I've picked up my empty box for the racing wheel so it doesn't start my house on fire, an empty box for my broken Xbox 360, a box with a new Rock Band guitar,  then I've sent my 360 back (within a half hour of getting the box), and lastly sending my broken Rock Band guitar back.

    I normally can't stand EA, but they were the only ones to do the warranty right.  They sent me the replacement guitar first (taking my credit card number in case I never sent the broken one back) saving me and them the hassle of shipping and picking up an empty box.   Microsoft could do the same thing for Red Rings of Death.  It not like they ever send back the same box and I didn't want that one back anyway.  They just shipped my replacement today and from the serial number it looks like it's a brand new unit. SWEET.  I found a good blog post that lets you break down your serial number and let you know when and where it was manufactured. 

    From: http://blog.iamjay.ca/2007/03/19/your-xbox-360-serial-number/

    To know when and where your console was made, you need the last 5 digits of the serial number.  The first of those five digits is the year in which it was made (5 = 2005, 6 = 2006, 7 = 2007).  The next two are the week in which it was made (01 = 1st week, 02 = 2nd week up to 52 = last week of the year).  You can use this calendar to pinpoint the exact month.  The last two digits is where the console was assembled (05 = China, 06 = China and 07 = China).

    The three manufacturing facilities that assemble the Xbox 360 are Wistron, Flextronics and Celestica.  Wistron has ceased production of new consoles as of this summer.

    I still don't have a tracking number to see if the shipment made it into the UPS system today but my guess it that it will be Thursday or Friday before I get my Xbox back.

  • GamerScoreGoal mid December Update

    This weekend I updated GamerScoreGoal(GSG) with my latest code.   It didn't change much visually from the version that has been online for the last month, but there are a lot of improvements in the back end. This project has really been teaching me a lot about myself as a programmer.  Mostly that I don't have much experience in creating UI and that I love working in databases.

    Last month I planned on feature freezing the back end and forcing myself to work on the UI.  That didn't work out.   I found myself stuck with a bunch of half finished designs that I didn't like.   So I ending up working on a few new database features. 

    I already had a list of games that I track and looking around Xbox related sites/forums I saw a need for a system to rate the difficultly of an achievement.  The first task was to get and store the achievement list for each game.  My first thought was allow users to rate each achievement and leave it at that.   That seems like an awfully manual process and until I reach a critical mass of active users it was going to be completely useless.  So I decided that if I know the number of users that have that achievement I can compare that to the number of users that have played the game and at least get a percentage.  That's what I'm displaying now, just a simple percentage of the players that have earned that achievement.   So even with a very small sample of gamers it at least gets the achievements ranked in a general order of difficultly. Here is a sample: Halo 3 achievements with difficulty.

    I'll be getting a full copy of Visual Studio 2008 soon so I'm contemplating migrating to .NET 3.5 to take advantage of LINQ and the new HTML/CSS design tools.  GSG was first prototyped in VS2008 beta2 and I knew I wanted to transfer over to 2008 as soon as I could get my hands on a full copy.  I know the evaluation version is out now and I've got a copy of that but I just don't feel safe migrating the project until I have a full non-expiring version on all my dev machines.

    I feel I need to come up with a simple road map for the dev of GSG.  I have a vision of what features a 0.9 version of the site will have.  But I don't have a clue of what the site will look like visually.   So unless there is graphic's designer out there that wants to work for free and is interested in this project I'm in for a lot of work and growth.

  • Xbox 360: Three red lights flash on the Right of Light: Round 2

    PC090223 It's happened again.  My Xbox 360 froze up when I was playing Assassin's Creed.  Then when I rebooted the 360 it started playing the opening animation but never made it all the way though.   It did this a couple times then I let it rest for about a half hour disconnected from the power supply.  I reconnected the power supply and a few seconds after powering up the Red ring of death showed up.   I've tried everything since then and haven't had any luck getting it to boot.

    I called up 1-800-4My-Xbox and after about 10 minutes on hold I was able to get a human. The process was a lot smoother this time around since they extended the warranty to 3 years for the red ring of death.  I didn't have to ask for a manager like last time and it sounds like I should have a replacement box back in about three weeks.

    My last one died on April 24th and I received the replacement on May 12th.  So it has been just under 7 months with this Xbox.  At least my first one made it 13 months. 

    At least this time around I can play Shadowrun on Vista.   But that's going to get old quick.

  • Vision for GamerScoreGoal.com

    I set a goal for 2007 of getting a total of 20,000 Gamerscore on my Xbox 360.  The last couple months I have become obsessed with reaching my goal and I needed a good way to track my progress.   I was also coveting the API Samurai badge on 360voice.com, you know that place where you Xbox 360 blogs about what games you have played.  That and the realization that I haven't built a public web site from scratch since 2002 lead me to start GamerScoreGoal.com (GSG). 

    The current incarnation of GSG is really just a shell of what I envision for it.   I haven't had much time to work on the visible portions of the project, but the back end is really shaping up and is almost complete.   Once I have completed a few more internal features I'll start to concentrate on the user interface.

    Current features:

    • Gamerscore tracking and history - GSG saves your Gamerscore everyday since your account was created. You even can import history from 360voice if you have an account there. 
    • Goals - You can set yourself a goal like 20,000 point by Jan 1st, 2008.   GSG can then use your Gamerscore history and graph your progress compared to your goal.
    • Public Profiles - This is the real heart of the web site.  Currently it will graph your Gamerscore and goal (if you have one) and display statistics about your progress to your goal.

    Planned features:

    • Leader boards - Leader boards will bring in a social aspect to the site where gamers can compare there progress to other members. 
    • Goal Scoring - This will be a system of scoring how difficult a particular goal is compared to others on GSG.
    • Forum Signatures - The database for the site has all the required data to create forum signatures and that would be a great way to advertise the site.

    Possible features:

    • Community Server Integration - I would like to add forums and blogs into the site.  I definitely don't what to reinvent the wheel but I have concerns about the added complexity that a Community Server integration would bring.


    • Scalability - Since I'm not a member of XCDP and there is little hope of Microsoft expanding the program anytime soon there will be a point where I'll need to limit registration and limit features so that I don't over tax my data sources.  (Hint:  Sign up now)
    • Maintainability - I need to automate as much as possible.  GSG doesn't pay the bills.
    • User Interface - I want to make the site as useful as possible without a complex UI.  I view this as a real growth opportunity for myself as a developer.


    I feel that the site is really shaping up and will be useful to those that have an obsession with Gamerscore. 

  • I had a bad feeling.

    An update to the 360voice main blog back on Oct 24th had a comment that they were working on a new feature.   I had a sinking feeling that it would be related to what I was doing at Gamerscoregoal.com.  360Voice.com has announced their new Challenge system.   It's a system were you invite a few of your friends to a timed Gamerscore challenge to see who can get the more points in a set number of days.

    Luckily It's not exactly what I'm doing here but there are some overlaps.   I like what they are doing and I'll issue a Challenge.   Join with the code APIO10V9.

    You can join by going to: http://www.360voice.com/join/APIO10V9 (Edit: I had to recreate the challenge.  The old challenge code linked to more then one challenge and no one could join.)


  • Call of Duty 4

    This is going to be the first holiday season in the last couple years where I actually had to limit myself and decide months in advance what game I'm going to pick up.   Well this Call of Duty 4 comes out and I'm going to pick it up.   There was a great beta test for the Xbox 360 a couple months back that really sold me on this game.


  • Hey this isn't the Internet I signed up for.

    In 1995 when I first got onto the Internet I could immediately see the potential.  A single network where anyone can publish their work and share it with the rest of the world. Where the world's knowledge would be at everyone's fingertips.  Where everyone was free to express and debate their opinions. It was going to be a happy place.

    Since I was a wide-eyed idealist teenager I imaged that the Internet would fundamentally change our society.  Since information would be so easy to publish no one would bother to try to sell it anymore.   The Internet would set all information free.   There would be no need for to sell books anymore, unless you really like holding a book then it's just a small printing charge based on the number of pages.   Anything you would want to know would just be a search away.

    Now when I look around the Internet everything is dominated by commerce and greed.  People only sharing their knowledge because it brings in revenue from ads.   Putting their personal life on display for vanity and touting their personal (mis)knowledge for fame and selling t-shirts to finance their empire of vanity.  Where any search for a product brings up 10 pages of SEO'ed results to some unknown web stores before it brings up the manufacture's page and then an other 20 pages before it brings up honest reviews of the product.

    I guess it's the commercialist(I guess that is a word, it's in spell check) society we live in.   The scariest thought is that there are a lot of people out there that think there is no other way.   They don't understand that sometime you may want to give your knowledge away just to enrich the world around them for the betterment of society as a whole instead of the quick buck they may get today.  

More Posts Next page »
Powered by Community Server, by Telligent Systems