curtis.lassam.net

************************************************

>> load January-29th-2012.blog

The Watchmaker’s Story : The Jester’s Tale

“Gather around, everyone”, the Herald called, “the Jester has a tale for us!”

The feast was over. What was left of the meal rested on the table for the servants to clean – slow roasted venison and autumn greens, hard-boiled eggs wrapped in bacon, crusty rolls, and fine wines. It was time for the Jester to entertain.

He started with a tale.

“This,” he opened with a bellow, “is the tale of the gambler and the farmer.”

The Jester hunched over and held his cape over his face for the next part. “The gambler was down on his luck. He had gambling debts. His creditors were chasing him, intending to extract either a pound of gold from him or a pound of flesh – whichever was easier. So he ran.”

On the last word, “ran”, the Jester let out a great whoop and dashed from one end of the feasting table to the other in a feigned panic.

“In his frenzy to escape, he failed to notice a root in the ground. He tripped, and fell, sliding down a hill and into some bushes. ”

As the jester spoke, he pounded his fists on the table, mocking the sounds of a man tripping and falling down a hill.

“He had escaped, for now, but he was injured and penniless. But what fortune – just as he was extricating himself from the bush, a kind farmer was passing by, walking with his dog through the woods. ”

“The farmer carried the injured gambler back to his home, tended to his injuries, and fed him a simple stew and some bread. The gambler had no way to pay for these services, but the farmer simply laughed him off. There was no need for recompense, he just wanted to help.”

“The gambler spotted a small bag of copper coins on the farmer’s table. The farmer had been kind to him, but the gambler had need of a lot of money, quickly. When the farmer slept, the gambler slit his throat with a kitchen knife, then slid off into the darkness with the farmer’s coinpurse. ”

“The gambler took the coins to a nearby bookie, and placed them all on a long shot. Through some stroke of incredible luck, he won. He paid off his creditors in full, and lived a long and wealthy life. ”

“And that is the end of the story.”

The court lightly applauded, but they seemed more disquieted than impressed by the Jester’s tale.

The Knight was not amused. He smashed the hilt of his sword down on the table and roared, “What exactly was the point of that sordid thing?”

With a flourish, the Jester held out both his arms. “Well, let us ask the audience. What do you think the point of the tale was?”

The Bishop cleared his throat, and started with a pompous flair, “the farmer had lived a just but short life, where the gambler was amoral but prosperous. Surely their scores will be settled in the afterlife. ”

The Jester nodded. “Yes, that is one way to read into it. Anyone else?”

The Parasite hissed from his chair near the king, “in order for some to live happily, some others must suffer.”

The Warlord fumbled out an explanation as well. “The farmer should have defended himself better! He shouldn’t have trusted the gambler in the first place!”

The Jester ambled over to the Royal Watchmaker, who was frustratedly fiddling with a small mechanism at the table. “What do you think, Watchmaker?”

The Watchmaker looked up from his puzzle. “Your story is just a collection of events. They happen one after the other with no particular pattern. I could no more read meaning into it than I could this crusty roll.

The Jester looked up, at the whole court. “Ah, the Watchmaker has it. Sometimes a story is just a story, with no particular rhyme or reason. Let us instead, ” he said, grabbing the Watchmaker’s crusty roll, “ponder this pastry!”

The Jester concocted a short song and dance routine about the Watchmaker’s crusty roll, and the men about the table were quite entertained.

To this date, the Jester’s “Ode To A Crusty Roll” is performed in taverns across the land.

************************************************

>> load January-28th-2012.blog

The new job is good.

This from a facebook reply that started to read like a short essay.

I came into work, groggy, having just previously come home from work, eaten, and slept. I badly needed a shower and I was expecting the worst.

By 1:30pm, we had hit our point commitment. Instead of bitter recriminations, there was boozy celebrations, rock-band, and beer-pong.

Generally, when it comes to software development, I expect that things will go awfully. Things start with camaraderie and esprit de corps while the project is still in its early stages, but after a couple of missed deadlines – the deadlines being set arbitrarily by forces out of our control, of course – the pressure starts to increase and the developer treats start to fade away.

As the project moves further and further into fuzzy incoherence, management starts to put more and more pressure on the developers. We don’t care HOW you deliver, but you MUST deliver. There are _commitments_ and _contracts_, and if things go wrong, it’s our asses on the line.

Of course, being as we are developers, we are generally unmoved by these pleas. We want to do well, of course, but most of us are dead to the threat of a deadline approaching. There is always a deadline approaching. Management sets the deadlines, we attempt to fulfill them, sometimes things work, sometimes things don’t, and we make or break fortunes for ties who sell our services to others.

This company is an especially attractive one, though, and so we’d like to make things work for them – comfortable Herman Miller chairs, intelligent coworkers, and free coffee don’t come with every post. And nobody wants Sean to have to explain to management why we’re not performing as promised. He’s a good guy.

With the added pressure to produce software on schedule, the product itself becomes more and more fragile, more prone to breakage. Software developers who value craftsmanship look at the software and shudder. “I built that? Well, it’s a good thing the only people who see it, ever, will be minimum-wage-slaves in some hellhole in the South.” Let’s not even concern ourselves with the added complexity of building new parts onto a core product that would fall apart if you breathed on it the wrong way. Or adding new developers to the team more then halfway through the project. Or even the problem that the telecoms systems we’re attempting to tack our software on to are only complete if you cross your eyes, tap your feet, and sincerely believe in the power of magic.

This is why software developers love agile methodologies – because when we think of ‘agile’, we imagine that we’ll just be allowed build good products slowly and add features over time. Of course, ‘agile’ doesn’t mean anything like that in the minds of the sales-ties, but we can dream, can’t we?

Anyways, we get a paycheque out of it, at the very least. Us young ones dream of someday working for ourselves, pulling long weeks against unassailable odds in hopes of someday being in the positions of the ties who pull the strings. The older, more seasoned geeks just put on their serious faces and slog through it, knowing that – as much as things can ebb and flow, being a software drone is still a damn sight better than shuffling paperwork or flipping burgers for some multinational.

So we stick around, waiting for the other shoe to drop. Waiting for the inevitable crunch time when the pressure starts to rise and the hours start to stack up.

And at iQ… that shoe steadfastly refuses to drop. It’s been months, and that shoe remains stubbornly aloft. Our senior software geeks have a load of experience dealing with exactly these things, and they have just enough clout to keep the howling idiocy of overstuffed telecoms dickery at bay. We’ve even managed to take some numbers and charts to management and negotiate for a just-on-this-side-of-sane schedule. Which puts iQ light-years ahead of just about every other company that I’ve ever worked with.

Er… the extremely convoluted point here is that “iQ is awesome”. I keep expecting an awful telecoms integration project and we keep kicking ass and playing Beer Pong instead.

************************************************

>> load January-19th-2012.blog

Watchmaker Updates!

* A background with play instructions
* Fixed gameboard cutting off at the bottom
* Modal dialogs
* Animation & buttons
* Other things!

************************************************

>> load January-17th-2012.blog

Obfuscated

So, the original build of The Watchmaker’s Dilemma had obfuscated tokens. It was confusing, and a bit too mishy-mashy for my tastes.

Then, over the weekend, I replaced them with non-obfuscated tokens, and it made the game almost a little too easy.

Just now, I added the ability to swap between obfuscated and non-obfuscated tokens. The user gets a chance to learn the tokens (in “Easy” mode) and then a chance to identify them sight un-seen (in “Hard” mode). It seems about just right.

************************************************

>> load January-15th-2012.blog

Weekend Complete

33 commits this weekend, of varying sizes, against Watchmaker’s Dilemma. There’s still an awful lot of work to do, but it’s at least presentable. And playable. Lots of style work this weekend, too – token tiles and a ticking title screen have been the main brunt of that.

Still, though, only 11 different tokens doesn’t make for much of a game. A good demo, maybe, but there needs to be a lot more tokens to make the game an explorable experience.

Upcoming Stuff

  • Kill the “alerts”. Kill them so hard. They are the Worst Thing.
  • Add some useful information to the error messages. (“Try turning it off and on again.” )
  • Give the user the option to scramble the token identifiers for added difficulty. (“Hard Mode”).
  • More tokens! I have a notepad full of ideas for new ones. Marquis! Butterfly! Queen! Wallflower!
  • Memoization for the token solution algorithm. The server has to work hard enough as it is.
  • Add a ‘save’ button. (It’ll just give the user the URL to the page, but whatevs.)
  • Test (and fix) against two open windows playing the same game.
  • Style the backgrounds, the hint button, the new game button, the (recently added) save button, and the points.
  • “+1″ and “-1″ animations under the mouse when the user gains or loses points.
  • Give the user a maximum number of points. Currently it’s all too easy to get up to 30-odd points and then not worry about the game anymore.
  • Add a timer so that users can play against a clock.
  • Try some browsers that … aren’t Chrome.

************************************************

>> load January-15th-2012.blog

Now I Have A Domain, Ho Ho Ho.

thewatchmakersdilemma.com

************************************************

>> load January-15th-2012.blog

Extremely Soft Launch: The Watchmaker’s Dilemma

So, I’ve been working on a puzzle game in my spare time as an excuse to dick around with Python, Javascript, and MongoDB.

I’ve finally reached the point where I have a working prototype. I haven’t applied any style, except for the absolute bare-bones minimum to make a usable product. Heck, I don’t even have the domain set up properly, yet. Darn slow registrar.

It’s still in an unstable ‘development’ mode ( Thanks to the magic of hooks, when I ‘git push’ from anywhere, it reboots all the things. Try to get away with that on a production machine. ) – okay, okay, I’ve prefaced this enough.

Version 0.5

************************************************