C#

C# Language
TitleModifiedSummary
Blog from ScratchWed, 13 May 2009

Introduction

Creating a blog from scratch is not a clever thing to do. There are too many out there already (DasBlog , Blogger , WordPress ). Blog is the new Hello World. However, having played with a couple of them over the years, I found myself frustrated - some being too simple, some too complex. In the end I wanted a blog specific to my evolving requirements. I also wanted an online note-taking system that would allow me to categorise my personal notes in a hierarchical/journal/wiki structure; and then to move a select few into a public blog format.

History

...snip...snip..
C# Voodoo - default(Type)Wed, 15 Apr 2009

Q: How to get the default value of a type? return default(myObj.GetType()) does not work.

A: Forums Say...

My Solution

...snip...snip..
A digression into GZIP, 7ZIP in managed C#Wed, 13 May 2009

Building my a previous article where I encrypt/decrypt a string, I wanted to go further and ZIP it. So started a rather long and painful wander into the world in compression.

Knowing the GZIP is included in the .NET framework I naturally started there.

...snip...snip..
SokoSolve Sokoban Client, Part 1Wed, 13 May 2009

For the pleasure of the code. After five or six complete rewrites, and a whole bunch of totally ludicrous over-engineering my sokoban pet project is finally in good alpha state, perhaps even beta.

"SokoSolve is a Sokoban game implementation with enthusiast tools, the package includes Game, Library, Solver, Editor, and Generator. The game allows the player to solve puzzles in an animated environment,

...snip...snip..
SokoSolve Sokoban Client, Part 2Sat, 16 May 2009

See SokoSolve Part One

The last release of SokoSolve was in Jan 2008 -- now over a year later it is time to revisit SokoSolve and take stock. For the initial version 1.3.45-beta, most of the development work was done during an intense period of my life while my mom was very sick with cancer. Since then I have not put much effort into the code, nor have I been monitoring or promoting the project as I did in the initial phases. The result being a period of stability during which the project has stood on it own feet.

After spending a couple days reviewing the stats, the site, the code, and its 'google presence', I have the following thoughts:

...snip...snip..
.NET Process Maximum Memory Tue, 2 Jun 2009"This whole article started because of the a memory leak in our Fares Engine.... It has become one of the longest debugs of my career."

OutOfMemoryException

The maximum allocatable size of a .NET process depends on the following factors:

...snip...snip..
Twitter from C#Wed, 24 Jun 2009

Twitter from C#

How do you update your status from C#. Looking at the twitter API (which is REST  based), which has a link to a blog article on how to post to twitter from c#:

...snip...snip..
A strongly typed Identifier SchemeMon, 27 Jul 2009

Over the years I have tried a number of Identifier schemes:

  • Atomic: String UserId; int UserId; Guid UserId;
    • There is no link to the underlying domain type.
    • There instances are easily confused. I.e. A page taking a Url param of "Id=123" may refer to a User, UserGroup, UserProfile, NTLM, Email, etc. This gets significantly worse in complex enterprise systems, eg. "ServiceLocationIdentifier" may be named as a local variable called "sl" and the developer needs to correctly interpret this.
  • Classic Strongly Typed: class UserIdentifier { string UserID { get; set; } }
...snip...snip..
Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way. © Copyright 2009 -- Guy Langston