Isn’t it A-mazing!?

While starting this research I noticed how many of these “maze” posts start with an explanation of just why you would be interested in mazes… and as I have nothing new to offer in that category, I will refrain from revealing my reasons, and dive right in…

History of Mazes and Labyrinths

Image and caption from

Paul Lucas sketched this drawing of the supposed remains of the Egyptian Labyrinth in 1700.

So the idea of a “maze” goes back 4,000 years to the ancient Egyptians (specifically Amenemhat III ). Who, by the time of Herodotus,  had created a great Labyrinth in the town  Arsinoë (also known as Crocodopolis), about which Heroditus claimed :

“I found it greater than words could tell, for although the temple at Ephesus and that at Samos are celebrated works, yet all the works and buildings of the Greeks put together would certainly be inferior to this labyrinth as regards labor and expense.” —ref (more on Wikipedia) (more on

Map Showing relative location of Crocodilopolis (alt image credit)

Another ancient writer Pliny wrote of the temple:

“.. banquet halls reached by steep ascents, flights of ninety steps leading down from the porticoes, porphyritic columns, figures of gods and hideous monsters, and statues of kings.” … “Some of the palaces are so made that the opening of a door makes a terrifying sound as of thunder. Most of the buildings are in total darkness.”

The resulting legacy has echoed through time, with ideas like the Minotaur’s Labyrinth in Knossos, populating the nightmares of Greek and Roman children, they have worked their way into Christianity, and were even a part of Native American religious traditions. Over time they have lost their ominous overtones and become more a thing of novelty such as the  “footprint of a Colossus” in Gloucestershire.Today they are a form of entertainment for children and people trying to waste time (my own opinion). But what about the fundamentals?

Maze Terms
Definitions based on Branching
Unicursal Maze without branches. Sometimes called a circuit maze.
Multicursal Maze with branches and dead ends.
Maze Anatomy
Branch A path inside a maze.
Island A section of the maze containing walls not connected to the external wall of the maze. Sometimes also referred to as a detached wall.
Blind Alley Branch that has a dead end.
Hub An enlarged area inside the maze with multiple choices of branch leading in/out.
Types of Maze
Braid Maze A type of maze with branches, but without dead ends. All branches loop back to other branches.
Perfect Maze Maze with no islands or isolated sections. A perfect maze has only one solution.
  Delta Maze Maze consisting of interlocking triangles.
  Orthogonal  A type of maze composed of square cells.
Plainair Maze A maze on something other than a flat surface. For example, a maze painted on the outside of a cube or sphere.
  Sigma  A type of maze composed of Hexagons.
  Theta  A type of maze composed of concentric circles.

Maze Code Samples

 Source Type Article Type Lang. Sample Image
2D MSDN tutorial C#
2D CSharpCorner Maze Generation C#
2D HWS Math & CS Sample Java
3D Falstad  Sample  Java
3D jsmadeeasy  Sample  JavaScript  Ascii output
3D threejs  potential  JavaScript

Mazes in Higher dimensionality

Video Games like Portal (play flash version here) have taken the concept of a maze to an entirely new level, by introducing a virtual reality where Pirisannni and M.C. Escher would have felt right at home. A couple of interesting applications of higher dimensional spatial pathfinding puzzles are the movie Cube and the The Rotating Labyrinth (access to a playable version here)


Notice any similarities?

Creating the Maze

Because of the variability in Maze anatomy and dimensionality branching etc, there are a number of ways to generate mazes, however in my experience using randomness like this results in a boring sort of normality (think about probability distribution and you will see what I’m talking about). Pockets of “order” IMHO add to the confusion of the Human solving the puzzle. This can be seen in the Movie “Labyrinth” when the little creatures start messing with the protagonists “bread crumbs”.


Solving the Maze

Solving the  maze (or any network problem) is one of the fundamental discreet math concepts. There are gaming variants of this problem primarily the A* Algorithms, and typically when solving a typical maze one is looking for the shortest path. Due to the structure of the solution space of this type of problem (no a priori structure per se) Maze solving algorithm’s typically do so by brute force exploration of the solution space. A graphical “tutorial” about longest/shortest path solving can be found at pathery.

Tower Defense

The Tower defense game is in my opinion an inversion of the Maze concept where instead of the least longest path one is striving for the longest path. A sample of this can be seen at Pathery, but typically the game is centered around having a path, and then trying to introduce obstacles to that path, typically the path is exemplified by “living” units” (AI Agents) which can be killed by the sections of maze wall which are often offensive “towers”, some games from this category are Plants vs. Zombies, and Defense Grid.

— and since I don’t have a rational place to close this discussion so I will just present you the exit:

Posted in Digest, Game Development, Math, Review & Comparison | Tagged , , , , , , , , | Leave a comment

2013 in review

The stats helper monkeys prepared a 2013 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 11,000 times in 2013. If it were a concert at Sydney Opera House, it would take about 4 sold-out performances for that many people to see it.

Click here to see the complete report.

Aside | Posted on by | Tagged | Leave a comment

Wen Model #6501 Combination Power Sander

I Like many others was enticed to go out shopping on “Black Friday” this year and I got this belt sander. You would think that based on my previous experiences with Wen Products that I wouldn’t waste my money. But I did need a belt sander, and it was cheep (which I also was interested in) so I got one. It came disassembled (mostly) but was easy to put together. 
Wen it is finally put together (spelling error intended) you get a fairly nice looking albeit hard to figure out how to use upright sander.

Here are my thoughts on this device: the 3/4 hp. motor seems a bit under-powered, and when I first turned it on it did nothing! So I loosened up the belt which was easy to do but made me concerned about how you would get a new belt on there square. So .. Loosened it up and still  I  turned it on and it did nothing! At this point i was thinking about just returning it, but I had just braved cold temperatures, Black Friday traffic and buying conditions and I was not interested in taking it back. So I decided to go off script, I’ve had to do this with other under powered “power” tools, and I turned on the machine, and (since the belt was not moving at all) I jump started the belt by hand, and it finally started!!!  So Yay I have a “working” belt sander.

All this has gotten me to wonder what is going on with this company and how they can stay in business??

Final thoughts

1 – I have yet to glue the sanding pad onto the disc, however I am disappointed that I have to “glue” anything, it should be velcro adhesive that i just apply to the disc (like industry standard) so … I would like to ask the “engineers” at Wen how one is supposed to replace the sanding disc??? You see it here a a silver round (almost polished) piece of cast aluminum.

2 – The “feet” on this device have already fallen off a couple of times, and the machine will walk as a result (these are the little rubber pieces on the left of the parts image above.

3 – The Factory belt had some grains that were very large and caused deep grooves in the material that I needed to tend to explicitly.

4 – The “safety guard” on the belt sander has a little bar right where it shouldn’t if you want to sand a long piece of material (so I had to remove it), this is the L shaped metal bar just above the wrench (which is a piece of crap soft steel).

5 – The “Table” for the disc sander is only only stabilized by a couple of  screw knobs, so it may shift during use and is hard to ensure alignment (square), you see the table on the left.

6 – Lastly the screws to adjust the angle of the belt are hidden and the only way you can get to them is with the crappy  metal wrench.

So should you buy one? I am not sure.. only if you really need a cheep belt sander.

Posted in Leisure, Review & Comparison, Uncategorized | Tagged , | Leave a comment

So you wanna make a Healthcare website..?

All the kerfluffel around the HealthCare.Gov website debacle is a bit funny and frustrating to me. I start with the frustrating bits, and then I will discuss the humor in it all.

It’s Frustrating that the Senators are not asking the right questions and that  the White house advisers are giving bad information, both out of ignorance and the typical politics of  CYA and Pin the Blame on the Donkey. But nobody is asking the question of who picked this consulting firm, who in the government is responsible for not demanding an azure (or other cloud based) solution for something that was textbook for use case. It’s odd as a consultant I look at this situation as  a classic example of how the customer messed up the project and the consultant is blamed. dilbert-example-sm

How Did it Ever Get This Messed Up?

Well that is simple, (see cartoon above) it’s commonly said you can get it done cheep or you can do it right. Now don’t get me wrong I think the government way overspent for this application, but how does this really happen? Here is an iconic cartoon that very clearly illustrates this common problem is software development:

  • This is going to be a simple place where you can go get insurance, or a subsidy and compare prices.
  • The project leader(s) understood that they were cut off at the knees due to legal jargon and statutes.
  • The analyst inaccuracy assumed that there would be a steady small flow of people signing up (not all 300 million people in the US would try signing up day one).
  • The developer did the best they could (hopefully) with the information they were given.
  • Someone know how to make this thing luxurious and functional, with all the bells and whistles (even though they were not directly asked for)
  • As time goes on and deadlines start coming or being missed what good is a document saying how the system works when it doesn’t even work.
  • If I don’t tel you to put an engine on my buggy I’ll get a horse drawn carriage  as opposed to a model T, because you can’t bill me for an engine I didn’t ask for.!
  • The customer billing one is obvious.
  • The people who’s jobs would be on the line when this whole thing blows up were too busy with other important stuff..
  • We ultimately want only a tire swing, this is what the president’s advisers told him he was getting.

O.k. that’s funny but what does it really say? The number one reason that software projects fail is a lack of communication. “A Lack of communication in politics! HA!” You say sarcastically.  It is the same story whether your a multi-billion dollar organization or you only hope to clear 100K in a year. You have the competing triad of

  1. Money
  2. Team
  3. Business

All three need to come together to have success, and when you have “politics” (whether that is in the government or in the office) you don’t have a team. Without a consensus or accepted leadership your business has no idea whether they are coming going or just missed a meeting. And if nobody cares about success, or even worse is trying to pin failure on another party they will not accept their money being spent to aid that initiative, stopping the train before it even gets started.

But what many may not be aware of is that the landscape is never simple. When it  comes time for anyone who is familiar with government software to start explaining it they always start with shaking their heads.  Lets take the simple case of a new federal fishing license for interstate and international waters. We have differing fish populations on each of the 4 Cartesian boarders of Minnesota. To the north Canada (which makes setting licensing restrictions slightly easier because it is only one party for many of the states, but in Minnesota the fish on the east side ate very different from those in the middle and even those on the western edge. allowing even one Muskie to be taken from the red river could be considered a violation on endangered habitat, yet there are places that you have problems keeping them off your hook in the north west(or so it has been rumored in dark corners by old drunken fisher persons). Now look at the species along the Wisconsin boarder, where they are fighting invasive species and it is all river (similar to North and South Dakota), and there are no Wilderness preserves. O.k. well lets take each place on a per case basis then what you get is something like:

  • If it is the Canadian Border
    • If it west of Lake of the Woods…
    • If it east of Lake Of the woods…
    • If it is the ….
  • If it is the Wisconsin Border
    • If it is north of the St Thomas Falls …
    • If it is north of St Croix Falls …
    • If it is the ….
  • If it is the ….

And the scope of the logic just exponentially increases as we take into consideration things like handicapped access (use of a crossbow for bow fishing) .. Bow Fishing!..  you can see how a simple place to go get a license can get complicated quick depending especially on what that license is intended to cover. Here is our simple diagram of that was just described:

So the next time your thinking about building that governmental website, give one person the budget tell them to make it, and get out of their hair!

Why is it Funny?

It’s funny because every developer knows this and yet everyone who has never worked in construction, development or any field where you must operate behold-ant to expectations and hard reality you will always have to explain why it is so complicated even when it should be obvious…

Posted in Cloud, Computers and Internet, Jokes, Leisure, News and politics, Programming | Tagged , , , , | Leave a comment

Error: Attempt by security transparent method ‘…Start()’ to access security critical method ‘..#System.String#’ failed.

Attempt by security transparent method ‘WebMatrix.WebData. PreApplicationStartCode.Start()’ to access security critical method System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport#System.String#’ failed.

All you need to do is to install Microsoft.AspNet.Web.Helpers.Mvc, simply use the NuGet Console and run the following command in the Package Manager Console

PM> Install-Package Microsoft.AspNet.Web.Helpers.Mvc

–I found the origional fix here

Posted in Snippit | Tagged , , | 1 Comment

All your Foreign key are showing!

Just this week I needed the ability to find all the foreign keys in my SQL DB as there was something that didn’t quite makes sense to me, and it’s better to know then to be sorry.. Here is the handy little script that does the trick (source):

Code Snippet
        K_Table = FK.TABLE_NAME,
        FK_Column = CU.COLUMN_NAME,
        PK_Table = PK.TABLE_NAME,
        PK_Column = PT.COLUMN_NAME,
        Constraint_Name = C.CONSTRAINT_NAME
                    ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
                    i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
               ) PT

With this script you will see all the foreign keys relating all of your SQL Tables to one another!

Posted in Computers and Internet, Programming, Snippit | Tagged , | Leave a comment

Classic IT/Development Comedy

Here is a bunch of IT humor, enjoy.

The Server Is Down

Leroy Jenkins!

The GOTO Raptor!



Posted in Uncategorized | Tagged | Leave a comment


When I posted on the history of Microsoft, I got interested in infographics. Now I’m not a design or marketing person I woudl say in relation I am more of a Data Viz kinda guy, but I’ve noticed that not all infographics are created equally. On Art Of Blog, there is an article that tries to introduce the reader to the “art” of making infographics, but amounts to little more then a brief overview (o.k. I’m occasionally guilty of this so I can’t be too hard on the author).   But let’s look at what the components of an infographic are  (IMHO).

What is an Infographic?

Information graphics or infographics are graphic visual representations of information, data or knowledge intended to present complex information quickly and clearly. They can improve cognition by utilizing graphics to enhance the human visual system’s ability to see patterns and trends. The process of creating infographics can be referred to as data visualization, information design, or information architecture–Wikipedia

Types of Infographic

Infographics fall into a spectrum between a Crystal Clear depiction of a single concept/topic and a Conglomeration of aspects of a problem, usually with the intent to inform the viewer/reader the scope of a concept/problem.


Real Hourly Minimum Wages Around The World

Real Hourly Minimum Wages Around The World by lisamahapatra.

For information which has a lot of data points but only one real slice, usually this is represented as a simple categorical bar graphs or line charts, or I think it could be argued all of the representations we would be exposed to in a Math or Stats class. These are ubiquitous in society today, you can rarely look at any data without seeing it as being displayed by this approach. The strengths of this approach are that they can convey facts very well (assuming the data is valid/truthful). Often you will see this representation as a component of a larger Infographic, and or mixed into itself (such as a line chart where the data points are represented as different types of other charts). Unitopical infographics are best suited for situations where hard data needs to be presented clearly.


Connecting Syria

Connecting Syria’s allies and enemies by AlJazeera.
Mapping Syria Mapping Syria’s rebellion by AlJazeera.

Infographics from this category are trying to convey a more complex idea or concept take for example this infographic which attempts to illuminate the political landscape of Syria in 2013, where the Venn Diagrams, and relationships presented are used to convey the authors “pertinent” information. Note that if you click on a data point additional information is displayed. Compare this to the next Infographic on a very similar topic where you get to see the inner working of the military landscape  inside Syria, but which also indicates connections to foreign governments. 


No doubt the first infographic you ever saw in elementry school was static, most likely in the weekly reader (if your childhood education was anything like rural american childhood). If not in your childhood, then they were defiantly shown to you during your math/algebra/stats/social studies class.


These infographics are best used when trying to teach cause and effect type relationships, to engage the viewer and most importantly to look cool ☺. An engaged viewer is much more interested in absorbing or actually learning the material. Armed with the ability to interact with those datapoints that viewer or user will be more likely to want to explore your info.


The aesthetics of infographics are what has lead to their impressive rise in popularity recently, after all why show a boring bar chart on fish populations when you can jazz it up with bars that are schools of fish on a aquatic or watery background (or maybe lengths of kelp).  Notice the difference in how you feel about the data being presented. Both graphs represent the same amount of data, yet I get the impression  the the right hand side is more comical and less accurate. I would be more inclined to show the left to people I wanted to know the numbers, and the right to people I wanted to understand the relationship.

…not bad for 5 minutes worth of work?


Sometimes it is more about how you approach the data presented, here are two ( – 0f 10) representations of the meta-cognative-spatial relativism of the primary scene of the story line. The top one, IMHO clearly shows in the horizontal bars that on the plane the first level was in a van, then the hotel, mountains, rundown building, and in limbo the fancy mansion. It shows who goes to each level, What the kicks are, when Inception happens and what the relative time scales are. In infographic number two, some of the same information is displayed, but adding the rotational aspect to the already complicated concepts makes it a little harder to understand what is happening. However the second one does make it easier to understand how the time is compressed so you can understand what that means and really looks like. There are some websites out there to help you make a template based infographic however in my opinion the templates will only rarely work with the theme or concept that you will want to present, but here they are (in no particular order):

However you may be better of technically if you were to go out and actually develop the graphics yourself, if you wanted to go and do that, then you may want to look into D3.js (the image collection to the right). Between SVG, D3.js, Knockout and css3 in HTML5 you can make amazing infographics that are interactive and responsive and navigable!

Posted in Uncategorized | 1 Comment

To build a better mouse trap…

Where is the next Horizon?

I find it appropriate as we have gotten to the plateau and nobody can seem to see the next higher mountain… and I am in a “giving my opinion” mood lately… So what are the “problems” which need to be solved?

Hardware & Network Latency

We are using fiber-optic cable in many places, researchers are looking at ways of speeding up hardware bottlenecks one such experiment Remy has shown a speedup of 2X current !! We will need to move this type of architectural hardware readjustment throughout the existing infrastructure to  get to a point where we can transfer exabytes in mere seconds. The new XBOX ONE Architecture and approach shows that we are moving to a centralized offloading of computational tasks, thus we will move to a paradigm where we have layers of compute power sandwiched between the back-end and the client. But we are also changing what makes up our cloud, in the past we had a predominantly uniform landscape comprised primarily of similar CPU’s (like Xenon Lately). Researches have just added a Quantum Computer to the Cloud, and made it free to public use! Nvidia has just announced a GPU appliance for GPU virtualization, which will allow for workstation performance from a virtual machine, With the NVIDIA GRID Visual Computing Appliance (VCA). With all these advances in hardware

Processor compute “ceiling” vs. Energy Consumption

Intel has been exploring Mineral Oil as an alternative to liquid cooling, The image to the right shows servers running in a pool of mineral oil. Along with the improvements in Semiconductor manufacturing processes it is expected that we will be down to 5nm chips by 2022, for those of you averse to math, that is 9 years from now. Interesting note, the wiki article for the 14 nm chip predicted that we wouldn’t have a 14 nm chip until 2014, and Intel demoed the 14 nm chip today, Sept 10 2013. We’ve put so much effort into improving the efficiency of our processors but the languages we use to do work on them have stayed basically the same. Researches have been making silicon based Neurons for computation for a while now. With these chips we will be able to do faster pattern matching, and be able to develop deeper more complex logic circuits dynamically as hardware (self balancing and structuring physical pathways) just as neurons do, although that may yet be a few years down the road. IBM has

… unveiled a breakthrough software ecosystem designed for programming silicon chips that have an architecture inspired by the function, low power, and compact volume of the brain.


Systems built from these chips could bring the real-time capture and analysis of various types of data closer to the point of collection. They would not only gather symbolic data, which is fixed text or digital information, but also gather sub-symbolic data, which is sensory based and whose values change continuously. This raw data reflects activity in the world of every kind ranging from commerce, social, logistics, location, movement, and environmental conditions.

Read more at:

Please note that most of the articles posted here were announced in the week that this article was put together.. this technology is clipping along…

Speaking in a new Language

Since SyNAPSE is a Neuro based chip architecture it would make sense that we would need some programming languages and/or files which would be more “Native” so it only makes sense to start looking into Fuzzy Markup Language (FML), since it can be derived from the coefficients developed in Artificial Neural Network (ANN) Simulations (which van be descried using  Extensible Markup Language for Artificial Neural Networks (XMLANN)), keep in mind the two are different. Alternatively Predictive Model Markup Language (PMML) can be used to fuzzily describe a data set. It is conceivable that we may be looking at a future where we break from analog computing and start going into a more neural approach. Again IBM’s SyNapse project has started us down this road :

reusable building blocks called “corelets.” Each corelet represents a complete blueprint of a network of neurosynaptic cores that specifies a based-level function. Inner workings of a corelet are hidden so that only its external inputs and outputs are exposed to other programmers, who can concentrate on what the corelet does rather than how it does it. Corelets can be combined to produce new corelets that are larger, more complex, or have added functionality.

Read more at:


We have numerous OS’s for multiple form factors, some of which even tech people are unfamiliar with as they are internally brewed (like what is the OS of the Sony Blu Ray player I have..? Android? Unix? it sure isn’t Apple, or anything that is recognizable as windows!..  We have grown into an ecosystem of incompatibility and differing approaches. How bad would it be if we were to find ourselves as the last people on earth, with a PC, and an android phone in a European country without a converter? (Yes I realize we could probably scavenge one up somewhere.. but the point stands that in a time crunch our hardware’s native language reader is speaking as many languages as there are countries on this planet! (and I just remembered about Java (which i try to avoid) but that too throws a monkey wrench into our compatibility issues.. as PC’s try to close security gaps that make Java work!.  We need to rethink how we think about OS’s and competitive advantage in a capitalist  society…  also I may go as far as to say it might require a change in how we view the OS-Browser relationship, there is no reason we can’t make a “browser shell” and run our website locally in App mode, but still give the user access to that info (after syncing) in the cloud…

The human problem

For sake of argument let’s say we have hundreds of PetaFlop machines for every human, we run into the problem of telling those machines what to do. How do we start to make modeling and programming languages malleable enough and extensible enough to do the things we see the star trek crew do in short time? Now we know that there may be some creative license here  after all you simply cannot sequence someones DNA in an hour as they do in the CSI, Law & Order.. etc  series. So what could we expect to need to do on the fly  (as it were). Lets look at a first contact situation, granted if the aliens are vastly more capable we are goners, but if we were able to analyze the data we have on their ship/force fields/biology quickly enough we may be able to find a weakness. How would this happen, no doubt the information we garnish would be “alien” in structure and most likely would require a unique model, perhaps abstractly based on existing
models, but this would be a herculean development effort to just decipher their hardware network weaknesses, the quantum mechanical engineering of the force fields, and we haven’t even come to a consensus on how the Genome,  Proteome, Lipome,  PhosphoproteomeReceptomeGlycomeKinome and others that haven’t even been thought of yet. So how do we make a language easier for development of unknown complex problems? We  already built their first robot/computerToday some kids have already built their first robot/engine by the time they are 6th graders!!
we are even making progress on breaking the silico-situ barrier many companies (including We are even ma

We have a CPU for wrought logic, a graphics card for linear algebra, and some day soon we’ll have a neural chipset for reasoning. With the trend to offload compute cycles to larger machines ( ahem cloud & render farms ) it stands to reason that some time in the not to distant future we will have neural node appliances capable of deep reasoning. The development community will need to accommodate these changes .. soon.

Posted in Cloud, Computers and Internet, Distributed Programming, News and politics, Programming | Tagged , , , , , | Leave a comment

Making Normal Maps


Gimp offers a plugin that will assist you in making your normal map called creatively enough normalMap supported by googleYou can get some pointers from the Elderscrolls mod wiki on how to use Gimp  to get your normal maps working properly. or you can follow the tutorial for a train normal map here, and valve has published a “tutorial” (really more of a very high overview) of the process of refining your mappings.


Has a neat little tool that can help you, but it is commercial. There is a tutorial here, and I was first turned onto this one by 3D World, but is also mentioned in Blender Nation (can’t find the reference).

SSbump Generator 5.3 w/ CUDA

Open source and comes recommended from the Blender Modelling community. Here is a tutorial  using Calgari for Half life and a generic tutorial here.

Posted in Game Development, Tutorial | Tagged , | Leave a comment