The Mail Owl Scrolls

The Mailowl Scrolls is moving

The Mailowl Scrolls is leaving the nest and can in future be found flying around http://www.mailowl.co.za

My blog’s presence and its maturity has grown exponentially with dotnet.org.za and I’m only moving because I need some space to upload the projects, demos, games and presentations I’ve been creating.  I also want to expose my photo gallery some more and my own little space will allow me to experiment with some web dev.

So it’s all good, and I hope to see you at my new site.

Posted by mailowl | 4 comment(s)
Filed under:

If Microsoft repackaged the iPod video

Go to YouTube and watch “Microsoft iPod Packaging Parody” it’s absolutely brilliant.  In a nutshell it shows how Microsoft would repackage the iPod.

It highlighted for me how Microsoft’s marketing strategy for their products are technically focused, appealing to an audience that knows what they are looking for.

The success of the iPod’s simple packaging is because the product inside does not require the user to know how it works and so there’s no need for technical specs.  Did you ever understand how your tape player worked?  Or your LP player?  What about your car, do you know how all the steps between applying the accelerator makes the wheels turning?

Personal Computers require experience because they are a work area and not a product.  It’s the kitchen and not just the stove.

Thanks Phil Steinmeyer for pointing me to it.

[Update:] Fixed the link, it seemed to have died.  It's working now, let me know if it's not.

Posted by mailowl | 206 comment(s)
Filed under:

Tracing Windows Workflow

Here’s a small little pearl I found while playing with Windows Workflow; WWF provides tracing through System.Diagnostics.  This is not tracking (which is a full blown service in WWF) but simple tracing, showing which workflows and activity has been executed.

The System.Diagnostics in .NET 2.0 should be familiar with anyone who’s used Enterprise Library in .NET 1.1.

To enable tracing on your Windows Workflow application add an app.config file to your application and in the <configuration> section add a <system.diagnostic> section.

System.Diagnostic has 2 sections in it: <switches> and <trace>.  <switches> contains the tracing options and information levels and <trace> tells the system where to write the trace file to (For more information on System.Diagnostic read it up on MSDN)

There are 5 classes provided by Windows Workflow to use: WorkflowTraceToDefault, Host, Runtime, Tracking and Activity.  The last 4 classes are Trace Switches, are optional and have 5 states: Off, Error, Warning, Info, Verbose (although All seems to be able to replace Verbose).  The first class is a Boolean Switch and is a required field.  Tracing is off by default for Windows Workflow so you’ll have to enable WorkflowTraceToDefault to get results.

Here’s an example of enabling Tracing:
  <system.diagnostics>
    <switches>
      <add name="WorkflowTraceToDefault" value="1" />
      <add name="Host" value="Error" />
      <add name="Runtime" value="Warning" />
      <add name="Tracking" value="Info" />
      <add name="Activity" value="All" />
    </switches>
    <trace autoflush="true" indentsize="4">
    </trace>
  </system.diagnostics>

Hot Lab #8: Cancelled

It is with a surprisingly easy heart that I’m cancelling tomorrow’s Digital Gaming Hot Lab.  This is due to lack of RSVPs.

 

This isn’t really surprising since the community has been using Game Maker for quite a while and we do not need to cover the basics.  The talk material isn’t a waste however since it’ll be used for driving game development into schools, a mission from Danny Day (BTW, you can read his LiveJournal and here’s his RSS Feed).

 

I will however rethink my ideas for the next Hot Lab since it seems I can delve straight into high level talks (which is still worrying because some of the functionality requires a registered version of Game Maker, and not everyone has it).

Posted by mailowl | 54 comment(s)
Filed under: ,

Chuck Norris roundhouse kicks your mailbox

Put away your photo edited Hoff pics and make way for the latest internet retro-celebrity glorification.  It’s Chuck Norris and he’s roundhouse kicking his way into mailboxes across the world!

For those outside the loop (or who don’t receive a lot of mail) there are lists going around of Chuck Norris “facts” describing the most outrageous things about Chuck Norris mainly focusing on his killing ability.  Examples include “The chief export of Chuck Norris is Pain” and “Chuck Norris counted to infinity – twice”

I think what’s really sad is that besides getting its own website (Chuck Norris Facts), which is almost obligatory in this day and age; you can get a t-shirt (custom or pre-made) with your favourite “fact”.

Merchandising has gone through its own industrial revolution and if you have an idea you can easily and cheaply put it on t-shirts, mugs, shoelaces, caps and key-rings.

Well, enjoy and 10 points to who guesses who the next retro-celebrity to be idolized is.

BTW, I know this isn’t new, but I’m tired and wanted to blog something.

Understanding Attached Properties (DependencyProperty)

It is vital to understand attached properties as the concept is used throughout WinFX (and according to sources is being implemented in .NET 3.0).

Very simply, an attached property is a property that can be attached to a child object from a parent without the child object having prior knowledge of the parent.  The parent can then use the child’s new properties in a meaningful manner.

Normally this is achieved with the child inheriting from a base class, but this is restrictive to that specific parent while attached properties allow any parent to attach properties to the child object.

To achieve this in WinFX both the parent and the child must inherit from DependencyObject which is just a glorified hashtable.  Properties are created using a public static DependencyProperty.  On the parent the DependencyObject creates a hashtable per instance of the child with the property name being the key and the properties value, the value.

Microsoft defines an attached property as: "A dependency property that can be attached to any DependencyObject type and that is not limited to the type which defines it. The attached property provider must provide static Get(PropertyName) and Set(PropertyName) methods as accessors for these attached properties."

The pattern of the parent providing a static Get and Set is also important as its used in XAML (Another concept that’s used throughout WinFX; in WPF for form layouts and in WWF for defining workflows) when you set an attached property in the child’s tag.

For a good example check out Drew Marsh’s article on his blog, Avalon: Understanding DependencyObject and DependencyProperty.

While I haven’t investigated them yet, events can also be attached to child objects.

My first WWF demo working

I’m SO chuffed with myself because I’ve completed my first working demo for Windows Workflow Foundation!

Titled “Connecting Activities” it demonstrates how to use the DependencyProperty to pass data from one activity to another.

It’s not much but I’ve been dying to properly play with WWF and it had to wait until I got my own PC at home and then only once I got a VM with WinFX installed (the latter being a very valuable suggestion from Willy-Peter. NEVER install Beta SDKs on your dev machine in case it corrupts).

Something I want to share which I didn’t add to the demo is that I recommend you update the DependencyProperty – Property code snippet (found in C:\Program Files\Microsoft Visual Studio 8\VC#\Snippets\1033\Workflow\DependencyProperty - Property.snippet) and add <Shortcut>dependprop</Shortcut> just under the <Title> tag as this’ll make it easier to access.

As soon as I’ve got the documentation done for my demo I’ll upload it for all to see.

Posted by mailowl | with no comments

Digital Gaming Hot Labs #8

My apologises for posting so late about the next Digital Gaming Hot Lab.  I have been completely distracted by work, SA Developer and my first home PC.

Anyways, on with the show, and for February I’m giving a talk introducing Game Maker and exposing to you the basics to create a game.

I have been convinced by Danny Day and other leaders in the local game development community to focus this year on Game Maker.  It makes sense for a couple of reasons:

A) It requires minimal coding and coding experience.
B) It is being used widely by an established gaming community (namely NAG’s Game.Dev)
C) It is a powerful in its own right and can be used to create completed games (my main objective)

When: 25th February 2006, 12:00 – 14:00
Venue: IT Intellect, Bryanston (map)
Presenter: Andre Odendaal
Topic: Game Maker Introduction – Sprites, Objects & Rooms
Level: Beginner
Objective: This workshop covers what is Game Maker and some of the resources for making games (Sprites, Objects and Rooms).  We’ll create a complete game in the lab and if there’s time work on adding special effects.
RSVP: here

Posted by mailowl | 2 comment(s)
Filed under: ,

It's All Thier Fault

Have a look at this article “It’s All Their Fault” from The Escapist (Thanks Miktar for the link) and enjoy.

Even if you’re not a game developer you’ll appreciate the extreme views in this “customer/supplier” rant.

I wish this article was true because I feel I could handle the flak of producing bad games while driving around in a fast car with a faster woman, my nose powdered by Peruvian Marching Dust.

Anyways, back to my slog.  I owe everyone an update of Elevator Action but at the moment it’s just a hive of bugs.

Strongbad emails available for your iPod

Strongbad, with his trusty allegedly portable Lappy 486, from Homestarrunner is now available on your iPod Video!

Head over to http://podstar.homestarrunner.com/ and download the more classic Strongbad Email episodes.

I hope we get to see more episodes being released and this is a start of a trend for online cartoons.  Next must come Happy Tree Friends and then Joe Cartoon.

Posted by mailowl | with no comments
Filed under:

NAG Game.Dev Competition 07: Elevator Action

Well, the first NAG Game.Dev competition for 2006 is underway (read the full objectives and rules) and the theme is to take an old retro game and remake it but with your own style.

My first idea was to remake Sopwith, but I was beaten to chase but Danny Day (dislekcia) who posted it as his idea first.  Of course I could still make the game in my own image but I’d rather have something to call my own with drawing comparisons.

The idea game I thought I remake was Montezuma’s Revenge but once again, I was to slow and TrXtR is remaking it.

So my game is a remake of Elevator Action!

While sticking to the original gameplay the game is going to receive a 40’s comicbook veneer and a cloak-and-dagger theme.  An innovation will be that when the lights are shot out in the game and the building goes dark, all the animation will be done in pure black and white which will add to the comicbook theme as well as making the game harder to play.

Below are the sprites I’ve made for the first beta release.  We have the floor, the doors, the door containing the secret our agent must find, an enemy spy with his hat and sweeping cloak and our dashing agent wearing a tux.

I’ll post updates on my game as it progresses and I’ll make sure there’s something to download to.

Posted by mailowl | 1 comment(s)
Filed under:

Get your comics on an RSS Feed

Do yourself a favour and lighten up your day by reading your favourite comics through your RSS Reader.

Go to Tapestry Comics and get the links to official and unauthorized feeds (unauthorized meaning someone’s managing a feed where each post contains the image url to the official website) for a host of online comics like yester-year’s Peanuts to the illicitly funny Sexy Losers

I can recommend: Alien loves Predator, Ctrl + Alt + Delete, Dilbet, Peanuts, Sexy Losers and Sinfest.

Leave a comment with your favourite online comics and thier links!

Windows Workflow Foundation Beta2 Quick Overview

If you didn’t understand the concept of Windows Workflow Foundation’s State Machine, the picture below they’ve released for the Beta 2 release should help (and for the rest of you, it’s a good example of a non-technical workflow).  It’s also rather cute ^--^

Paul Andrew has made a Change Document available from his blog for us to see the changes from Beta1 to Beta2 (Read more on his blog).

It looks like there’s been quite a lot done, but after skimming through the document the main changes sticking to naming conventions (For example all activities names except for ConditionedActivityGroup have been suffixed with “Activity”; so the Code activity is now called CodeActivity) and refactoring (workflow activities had “special parameters” which has been removed.  The base in-parameters are the workflow’s public settable properties and the out-parameters are the workflow’s public gettable properties).

Not that there’s some new stuff as well!  There’s a new activity status Faulting (the others are: Initialized, Executing, Canceling, Compensating, Closed) which the activity enters when it throws an exception, or when it bubbles up (as they put it) from a Faulted child activity; and all the associated handlers and FaultHandler activities.  There’s also now an overload of CreateWorkflow which accepts XmlReader so you can run “no-compile” workflows.

You’re going to have to read the document or, better yet, download the WinFX January CTP (just make sure you follow the instructions correctly for uninstalling Beta1) and find out for yourself.

NAG January 2006 devLAN Conclusion

Wow! What an awesome time the NAG devLAN was.  I don’t think I’ve spent so much time with Game Maker in a single sitting and though I say it myself, I think I produced a pretty decent game to enter.

The “competition” started with arranging tables, PCs and power connections (like in most LANs) and after a short introduction and providing the theme of the day from Danny Day, we were off.

The theme was “Everything Random” and we had to demonstrate randomness in our game.

What was amazing was the silence.  Quite unlike a normal gaming LAN session there was just the sound of keyboards tapping, the buzz of power supplies and creative minds whirling away.  I had to put my headphones on just to concentrate.

I think the best part of the day was seeing everyone else’s game.  Everyone got a chance to sit at another person’s PC and play the game created on it while everyone else watched and the creator explained the controls, his idea for a game and pointed out the randomness in it.  There was a platform game, 2D shooters, a racing game, a Zork-like quest and a puzzle maze.

In the end no real winner was picked since the competition was so close.  That was a little disappointing but we were already running over time and parents were waiting in the isles.

The next step is to get to bigger and better; this includes roving assistants, organized catering (with everyone so busy on their game we never braai’d last night [what is the past tense for braai btw?]), cool prizes and lots more people.

Posted by mailowl | with no comments
Filed under: ,

Xbox 360 available on Take2

Head on over to Take2 and add the Xbox 360 Full System to your Wish List cause it’s being made available to South Africa for R4599 (at time of post).

I’m definitely going to get myself one of these babies along with all the Media Centre goodness.

If the Full System is a bit pricy for you there’s also the Standard Core Pack for R1000 cheaper (again, at time of post).

But don’t forget you’re going to need games with your purchase, pointless having a console with nothing to play. I’d like to recommend: Perfect Dark Zero, Need for Speed: Most Wanted and Dead or Alive 4

Posted by mailowl | 133 comment(s)
Filed under:
More Posts Next page »