Automata-Based Programming With Petri Nets - Part 1

Petri Nets are extremely powerful and expressive, but they are not as widely used in the software development community as deterministic state machines. That’s a pity - they allow us to solve problems beyond the reach of conventional state machines. This is the first in a mini-series on software development with Petri Nets. All of the code for a full feature-complete Petri Net library is available online at GitHub. You’re welcome to take a copy, play with it and use it in your own projects.
Read more...

Surreal Graham Norton Moment

Today I got my first experience of being caught in a storm of golf ball sized hailstones. We’d decided to take the day out and visit the Moomba Festival in the city centre. All was well, and the kids were in a cub scouts arena trying their hands at rock climbing. Suddenly, we heard an ominous rumbling and within seconds we were pelted with inch thick hailstones. We quickly caught the kids as they fell off the climbing wall, and nobly covered them with our bodies as we hurried them into the canvas awnings that the scoutleaders had erected earlier in the day.
Read more...

South America? Innocent victims in the war on terror!

Are you kidding me? tectonic causes for south american earthquakes was a total sham! Think about it! Everyone knows that there’s a war on. And have you noticed that the CIA has started to act very strangely? They obviously don’t want this story getting out. I mean, what would happen if people began asking Why are they all near the USA? Well, they may be able to fool the sheeple, but the members of the USGS aren’t swallowing their story.
Read more...

Less Intrusive Visitors

Forgive the recent silence - I’ve been in my shed. Frequently, I need some variation on the Visitor or HierarchicalVisitor patterns to analyse or transform an object graph. Recent work on a query builder for an old-skool query API sent my thoughts once again to the Visitor pattern. I normally hand roll these frameworks based on my experiences with recursive descent compilers, but this time I thought I’d produce a more GoF-compliant implementation.
Read more...

Sequential script loading on demand

This little script uses the JQuery getScript command, enforcing sequential loading order to ensure script dependencies are honoured: function LoadScriptsSequentially(scriptUrls, callback) { if (typeof scriptUrls == 'undefined') throw "Argument Error: URL array is unusable"; if (scriptUrls.length == 0 && typeof callback == 'function') callback(); $.getScript(scriptUrls.shift(), function() { LoadScriptsSequentially(scriptUrls, callback); }); } Here’s how you use it: function InitialiseQueryFramework(runTests) { LoadScriptsSequentially([ "/js/inheritance.js", "/js/expressions.js", "/js/refData.js", "/js/queryRenderer.js", "/js/sha1.js", "/js/queryCache.js", "/js/unit-tests.js"], function() { queryFramework = new QueryManager("#query"); if (runTests) RunTestSuite(); }); } I love java script now and can’t understand why I avoided it for years.
Read more...

Quantum Reasoners Hold Key to Future Web

Last year, a company called DWave Systems announced their quantum computer (the ‘Orion’) - another milestone on the road to practical quantum computing. Their controversial claims seem worthy in their own right but they are particularly important to the semantic web (SW) community. The significance to the SW community was that their quantum computer solved problems akin to Grover’s Algorithm speeding up queries of disorderly databases. Semantic web databases are not (completely) disorderly and there are many ways to optimize the search for matching triples to a graph pattern.
Read more...

Semantic Overflow Highlights I

Semantic Overflow has been active for a couple of weeks. We now have 155 users and 53 questions. We’ve already had some very interesting questions and some excellent detailed and thoughtful responses. I thought, on Egon’s instigation, to bring together, from the site’s BI stats, some of the highlights of last week. The best loved question this week came from Jerven Bolleman who wanted to know whether there was a “Simple CLI useable OWL Reasoner”.
Read more...

www.SemanticOverflow.com - the Web 2.0 Q&A site for all things Web 3.0.

www.SemanticOverflow.com is a new site based on the hugely popular StackOverflow.com, devoted to Q&A on anything related to the semantic web. The site is very new (created today) and I’m trying to get as many people to visit as I can, so please come and post your questions and together we’ll create a thriving community dedicated just to the semantic web. It’s free to join, free to ask questions, and most important of all - free to see the answers.
Read more...

Can AOP help fix bad architectures?

I recently posted a question on Stack Overflow on the feasibility of using IL rewriting frameworks to rectify bad design after the fact. The confines of the answer comment area were too small to give the subject proper treatment so I though a new blog post was in order. Here’s the original question: I’ve recently been playing around with PostSharp, and it brought to mind a problem I faced a few years back: A client’s developer had produced a web application, but they had not given a lot of thought to how they managed state information - storing it (don’t ask me why) statically on the Application instance in IIS.
Read more...

Fowler's Technical Debt Quadrant - Giving the co-ordinates where Agile is contraindicated.

Martin Fowler’s bliki has a very good post on what he calls the ‘technical debt quadrant’. This post succinctly sums up the difference between those who produce poor designs in ways that are contrary to their best interests, and those who do so knowingly and reluctantly. In the past I’ve noted that many of those who profess to being agile are really just defaulters in the bank of technical debt. They confuse incurring inadvertent reckless technical debt with being Agile.
Read more...