Website may be up and down over next few months. I'm currently doing a complete overhaul of everything. Going back to simple individual .htm pages, new overall site theme, sanitizing and cleaning up html of all pages and blog posts, attempting to implement a new tooling and publishing system etc etc.

Oh Shit! F*#$ing awsome!!!

Published 10/25/2009 by createdbyx in Gallery | News

I was just reviewing comments made to my picture that I had posted on panoramio and I noticed a link called "Look around" so I click it and BAM! The same technology that microsoft research has been working on only now it has been put to good use! Freaking Awesome!

I had taken a large number of pictures of the same area out by lakelse lake and panoramio now knows that those pictures are of the same location. Panoramio also does it for the a few pictures I took during the winter halfway up thornhill mountian road at the lookout point. I going to have to hike up there again this summer and take a but load of pictures so panoramio can piece together a proper view from up there!

EDIT: LOL Apparently panoramio has had that feature as far back as 2008 and I'm just finding out about it now. :P


Matsutake Woo Woo!

Published 10/13/2009 by createdbyx in Gallery | Games | Mushrooms | News

I'm back from picking matsutake in northern BC! As it turned out it was my best year I have ever had picking mushrooms. Three of my best days for poundage were  49Lbs buttons/70lbs Total the next day was 52Lbs Buttons/72Lbs Total, and a few days after that I picked 49Lbs Buttons, 73Lbs Total weight.  Plus you have to add +-15Lbs for the weight of my backpack an all my gear, and I was packing about 85-90 pounds out of the bush. If you think that's rough, it is! But you can't complain after you sell them. Tongue out

The rundown

  • ZOMG! Comment spam. I am so glad I turned on comment moderation. I came back from camp and there was about 50+ comments made across the site.
  • I am going to be adding to my CBXADVBlogger extension for BlogEngine.NET so I can moderate comments better. 
  • I have posted pictures from this years mushroom picking season. You can find them in the gallery under the "Mushroom Pictures->2009 Mushroom Season" section.
  • Sigh. And lastly I don't think I can write a better post then the one I made last year titled Heaven help Me! Nuff Said. Stupid game, grumble, grumble....

The great outdoors await

Published 8/23/2009 by createdbyx in Example | News | Programming | XNA

Well I'm off to go pick mushrooms. I should be back around mid october or so depending on how the season goes. I have turned comment moderation on while i'm away to try and help keep the riff raff from spamming comments while i'm away.

I have added a few Ohsai updates and provided a second download this time with source code. Keep in mind that it is still in the prototyping stages but there is an example project with a few demos that will give you an idea of where the project is heading.

Oh and I'd just like to express just how much I hate Blizzard. "Just when I thought I was out. They ... pull ... me ... back ... in!" Sigh, I just spent a few hours today reading about the new World of Warcraft expansion called Cataclysm, and all of the various changes that will be taking place. I don't know what it is about that game but I compare it to being on crack. I hate even the thought of spending endless hours playing the game just to aquire items and gear etc, but at the same time I have this strong desire to play it.

The problem comes in when I start loosing the ability to manage my time properly between fighting the urge to play the game, and just trying to stay focused on other priorities. I have basically lost a year of work with my programming projects already because of two  previous six month subscriptions. And when I think about it in those terms I think about how much work I could have gotten done on those projects. No other game has even come close the the level of adddiction I have towards this game.

I am not sure what I am trying to say at this point other then before I heard about the new expansion I had 99% garenteed myself that i was never going to renew my subscription to that game. I have always felt a sense of deep loss that I am missing out when I don't have a subscription. Now after reading about the expansion I have almost convinced myself that I am 90% garenteed to renew my subscription in november. It's a vicous cycle.

Also just as a side note, I gotta mention just how blind I am to spotting spelling mistakes on my website. For the longest time there have been glaring and obvious spelling errors and for some reason I just can't seem to spot them. O.o

And OMG Comment spam! I don't even advertise this site and I am getting hit by spammers. I think I may need to leave comment moderation on when I come back. :(


First off this last two weeks have been a nightmare with trying to get my site up and running again. Not that it was broken per say but that godaddy my hosting provider does not employ very educated people. I have been having a constant back and fourth with them trying to find out why I am getting compiler errors with the extensions I wrote for blogengine, as godaddy claim to support asp.net 3.5 and my code was using C# 3.0 code syntax and Linq.

Needless to say I had written one final email completley documenting all that had happened and why I think it was not working and pointing out to godaddy support just how wrong and how much they really don't understand what the .net framework is what it is for and how it works on it's own, as well as how asp.net fits into it.

It became very clear to me early on that godaddy support does not employ actual programmers. Programmers that write actual code and who actually have written code for the software that godaddy even offers in there Web Hosting connection etc. Had they had these programmers on call or working as support techs the problem would have been isolated and resolved within hours. Lets just say that the email I wrote and was going to send gave an untimatum at the end of it that said they had 72hrs to figure it out or I would be canceling my account and finding another hosting provider.

Yeah, it had gotten that bad. :(

I was patient up until those final few days when I pretty much snapped over what I considered an easy fix. But to be fair I was in part to blame for my own lact of knoledge, and godaddy was equally to blame for not spotting the problem right away, being as simple as it was to fix. It was a bad situation all around and I am just glad it is over with and I just want to put the whole thing behind me.

Anyhoo! Lets git down to bizzniss. Awwww yeah!  There are two new blog engine extensions availible in the projects page. SilverlightExt, and cbxChangeLogger.

The SilverlightExt extension for BlogEngine allows you to embed [ SILVERLIGHT xap:filenamewithoutext width:640px height:480px ] tags in your pages and posts so that you don't have to deal with writing html <object markup. All you have to do is upload your silverlight *.xap file into the ClientBin folder in the root of your site and type "[ SILVERLIGHT xap:filenamewithoutext width:640px height:480px ]" without spaces after [ and before ].

The cbxChangeLogger is a extension for Blogengine that will track changes that are made on a blogengine site. It will track if you created, deleted, or updated posts and pages. When you want to clear the change log and embed the data in a page or post all you have to do is type [ CHANGELOG ]  ( without a space after [ and before ] ) and the tag will be replaced with the changes that were recored since the last time you specified the [ CHANGELOG ] tag in a page or post.


Also I have had a interest in kodu ever since I heard about it and thought it was awesome. After writing some preliminary AI code in a silverlight game I am working on I realized that I am going to need a better AI framework that I can build on top of rather then having to hobble together code for each project that needs some AI in it. So I started a new project called Ohsai. Ohsai is my attempt to create a AI framework that I can use across various platforms where .net is availible, Here is a screenshot of the class diagram for Ohsai as it stands right now View Screenshot

As you can see it is modled using similar concepts that kodu employs and with a little help from wikipedia to give me a starting place on how my interfaces and types should be structured. I already have a very simple prototype and test app up and running in XNA that uses GamePad <condition> -> <action> to move a actior around the screen. Even with this preliminary code I can see how much easier it is going to be having my own AI framework that I can build on top of. Also it may even allow me to use xml files to declare cirtian behaviors so I can use the XNA content pipeline to Content.Load<> from disk. Woot!

But that's pretty much sums up the last two weeks. I'll be heading up north to pick mushrooms around the 27 or 29 of august and probably won't be back until mid october or so. But I'll try to make another post before I leave.


Site was temporarilly down for about 30 hours. Nothing was broken I just left it as it was so that godaddy could take a look at if it was anything on there end. I wrote a new extension for BlogEngine that would allow me to embed [ SILVERLIGHT ] tags in pages or posts and have the tag replaced with a silverlight html "<object" markup.

But if you visited the site yesterday you would have seen the error page stating that there was a compile error on line two ala "using System.Linq;". This error had me scratching my head. I double checked the settings under godaddy hosting control panel and iis7 and asp.net 2.0/3.0/3.5 were set properly. One thing I did notice was that on the error page that the command line that was being called and invoking the C# compiler was not making any references to the System.Linq assemblies. Which would explain the compilation error. ASP.NET is the one that is invoking the call to the C# compiler and if goddady supported asp.net 3.5 as they claim I don't understand why my extension would not be compiling.

It sucks because I also got around to writing a second extension for BlogEngine that tracks changes I make to the site weather I create new content/delete content or just update content on the site it logs everything. Then every so often when I want to make a new blog entry all I have to do is type [ CHANGELOG ] and presto a nicley formated categorized and bulleted list get embeded into the post and the log file gets cleared out. I wrote this extension because sometimes I tweak the site here and there or add a little bit of new content and forget to mention it in a blog post. With this extension all that get handled for me automatically. 

Unfortunatley I cannot use this extension either because it heavilly uses linq as well. *Sigh*

Something else that has me concerned is that DomainPeople the company that I have registered my createdbyx.com domain name with is not letting me log into there site. So I tried there password recovery option and provided my domain name then clicked the "Get Password" button but it comes back as saying it can't find that domain.  O.o wtf? I have used DomainPeople as my registar for createdbyx.com for over 7 years how could they not have a record of my domain. Even the WhoIs records show that createdbyx.com is registered using DomainPeople. I submited a feedback form but am still waiting to hear back from them. Grrr

So all around these last few days have not been all that great.


I just gotta say DAM! Linq and Extension methods in .NET are cool. Not only do they get cooler the more you use them they make your code much easier to read and thus understand what is going on.

I was going back and refactoring my classes for reading various xml asset files for a silverlight game I am working on, and I have reduced the number of lines of code needed to read/write xml files by over half. The only problem I have now is trying to fight off those bad habits of writing code the old way. Just felt like sharing :P

I'm going to try to get the game uploaded to this site as soon as i get a little more work done on it.


Have not made any posts latley but have been pre occupied with other things. Firstly, me and my brother are trying to create a game for facebook similar to the Mafia Wars and Age of Castles games. Coding the game is easy. Comming up with a theme and content for the game .... not so easy :(

I have also been doing some programming in silverlight and playing around with making a RTS type game simlilar to the old warcraft 1/2/3 games. Part way through tweaking the games AI, I decided to refactor the whole thing so that the game code mirrors very closely the xna framework. This will allow me to more easily port my existing C# code back and fourth between silverlight and xna. It will also have the added benifit of allowing me to have a code base that i can build off of and reuse in any future silverlight projects.

Lastly there are some things on the internet, that there are really no words to describe how they make you feel other then they are enjoyable. Apparently back in january 2009, from what I have read, a internet civil war started over a few 4chan and youtube videos posted by user boxxybabee.

If you are unfamiliar with the back story, this blog is a good resource to start with and contains a full write up. The vidoes capture the same spirit, and infecious meme that other popular youtube videos have demonstrated such as the numa numa guy.

The boxxybabee videos and subsequent remixes have captured my attention for most of the last two days. Even working with limited content some of the remixes have created a near fully realized song. Sadly boxxybabe has not been see since these events. But in her own words, that would lose the mystery.


Sigh it can be frustrating sometimes working on my various programming projects. My main solution I work with now consists of  94 projects. View Screenshot

Some of the projects could be considered "Done" but I have yet to upload them to this website and some are still only partially written or working. I have been wanting to create a series of video tutorials that walk through each project but I keep finding myself putting it off, partly because making videos can be very time consuming, and I tend to have too high of standards when making them, "Dam, I should not have said that", "I keep rambling on about off topic stuff", "Forgot to mention this or that feature", "Stupid lispy voice :P" etc etc

It will probably be a while (possible never) before I get around to making any of the videos.

Besides all that I have been doing more work with using xna and winforms and have created a simplfied version of the control then what microsoft has on the xna creators club web site. The reason I created a simplified version of the control is because I needed the control to integrate better with my level editing window. I have provided a preview image below of the control in use in my level editor. The source code can be downloaded here. SimplifiedWinformControl.zip (1.58 mb) (XNA 3.1)

Also something to keep in mind that VS.NET 2008 seems to have issues when the name of the control is the same as the namespace that it resides in. In the example project you may encounter a compile error in the TextForm.Designer.cs file on this line of code "this.xnaControl = new SimplifiedWinformControl.SimplifiedWinformControl();" just delete the namespace off the begining so that it reads like this "this.xnaControl = new SimplifiedWinformControl();". To avoid the error be sure to name your control something other then the namespace that it belongs to. Something else to remember is that if the control is resized larger then the main game windows backbuffer then the control will only display what it can.

public class SimplifiedWinformControl : Control
{
    private Game game;
    public Texture2D Texture { get; set; }
    private SpriteBatch spriteBatch;

    public Game Game
    {
        get { return this.game; }
        set
        {
            // hold onto the game reference
            this.game = value;
            if (this.game == null) return;
            // create the sprite batch
            this.spriteBatch = new SpriteBatch(this.game.GraphicsDevice);
        }
    }

    /// <summary>
    /// Ignores WinForms paint-background messages. The default implementation
    /// would clear the control to the current background color, causing
    /// flickering when our OnPaint implementation then immediately draws some
    /// other color over the top using the XNA Framework GraphicsDevice.
    /// </summary>
    protected override void OnPaintBackground(PaintEventArgs pevent)
    {
        // do nothing here. If this is not overridden the control may have drawing issues O.o 
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        if (this.game == null)
        {
            // draw normal winform way
            e.Graphics.FillRectangle(System.Drawing.SystemBrushes.Control, this.ClientRectangle);
            e.Graphics.DrawString(this.GetType().FullName, this.Font,
                                    System.Drawing.SystemBrushes.ControlText, 0, 0);
        }
        else
        {
            // draw xna way 
            var gr = this.game.GraphicsDevice;
            var oldVP = gr.Viewport;

            // set the graphics viewport to the size the the controls client area
            var newVP = new Viewport()
            {
                Width = this.ClientSize.Width,
                Height = this.ClientSize.Height,
                MinDepth = 0,
                MaxDepth = 1
            };

            gr.Viewport = newVP;

            // clear then draw something onto the control
            gr.Clear(Color.CornflowerBlue);
            this.spriteBatch.Begin();
            this.spriteBatch.Draw(this.Texture, Vector2.Zero, Color.White);
            this.spriteBatch.End();

            // display it onto the control
            try
            {
                var rect = new Rectangle(0, 0, this.ClientSize.Width, this.ClientSize.Height);
                gr.Present(rect, null, this.Handle);
            }
            catch (Exception)
            {
                // Present might throw if the device became lost while we were
                // drawing so we just swallow the exception.
            }

            // restore previous viewport
            gr.Viewport = oldVP;
        }
    }

    protected override void OnCreateControl()
    {
        // check if we are not in design mode and if not hook into the application idle event
        if (!this.DesignMode)
        {
            // just invalidate the control so that it will be redrawn
            // you could also put in some logic to restrict how often the control get invalidated
            Application.Idle += ((sender, e) => { this.Invalidate(); });
        }
        base.OnCreateControl();
    }

    // not really nessary in this simple example to have a dispose here but i put it in anyway
    protected override void Dispose(bool disposing)
    {
        // perform some cleanup
        if (this.spriteBatch != null) this.spriteBatch.Dispose();
        this.spriteBatch = null;
        // we dont need to dispose of the texture here but I did anyway it will be
        // disposed by the content manager. :P But if you have texture(s) you created 
        // your self then this is where they would get disposed
        if (this.Texture != null) this.Texture.Dispose();
        this.Texture = null;
        base.Dispose(disposing);
    }
}

Movie Review list

Published 6/30/2009 by createdbyx in News

I have tweaked the Articles page and added a new page titled "Movie Review List" where I will be listing the various movies that I have watched. The list is only about ten percent complete at this point. I have been keeping a list of movies I have watched these last few years so I will be adding more to the list as I find the time and will to do so.


XNA WinForms Reduex!

Published 6/15/2009 by createdbyx in News | Programming | XNA

First start a new xna window game project. Then add a new "MDI Parent Form" to the project. After that change the code in the Program.cs file to look like this ...

static void Main(string[] args)
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    using (Game1 game = new Game1())
    {
        MDIParent1 mainMDIForm = new MDIParent1();
        var gameWindow = Control.FromHandle(game.Window.Handle) as Form;
        if (gameWindow != null)
        {
            gameWindow.MdiParent = mainMDIForm;
        }

        mainMDIForm.Show();
        gameWindow.Show();
        game.Run();
    }
}

Now press F5 to run the application. Voila! You can now proceed to add game editing or other win form controls to the MDI window for what ever you need. But some initial testing raised a few minor issues.

The first one is that once in a while the viewport does not get updated if the game window is resized. There is also a issue where keyboard keys don't work properly if the game window is the active window. To over come this just make sure that after you are finished interacting with the game window to just deactivate the window again. Then you will be able to press Alt-F to bring up the file menu for example.


Created by: X

Just another personal website in this crazy online world

Name of author Dean Lunz (aka Created by: X)
Computer programming nerd, and tech geek.
About Me -- Resume