Stuff Changes

Page Last Updated Latest Item
Think So? 01 MAR 2014 Plumbing depths
Trimming Triceratops Toenails 20 JUL 2013 Key to a Quick Escape
Win Friends & Influence Software 30 OCT 2013 Getting the Silent Treatment
Coping with Windows8 15 APR 2014 New Coke
About 15 OCT 2012
Posted in stuff | Leave a comment

Just Asking

Just Asking

Why is the question that is above and beneath every other question, is the most persistent, and ultimately the most unanswerable. Why? not why this or that, but simply “why” is the toughest question and may have no answer.

“Why?” a small child asks. You offer an explanation, “Why?” again pops up, even when your explanation was accurate and well thought out. But, again, “Why” is that explanation true? It’s a valid question, and so is the next “why?” in response to your further explanation. It’s an infinitely recursive situation from which the only escape is “Because I said so!”

But “why” must be taken seriously. Richard Feynman was a physicist. His college roommate was an engineer. Once Feynman gave his roommate an explanation that concluded with a observation that things worked that way so that parity would be conserved. His roommate asked “Why does parity have to be conserved?”

Feynman could have responded by saying that only an engineer would ask such a stupid question. Parity was always conserved, every physicist knew that. Instead, he asked himself, “Yes, why? Does parity have to be conserved? What happens if it isn’t?” Those questions were a portal to his Nobel prize.

“Why” in it’s broadest use encompasses other questions. “Why did that happen?” can be another way of asking. “How did this come about?” or “What caused it?”

The earlier explanations of the Big Bang theory boiled down to “Because there was absolutely nothing before, nothing has no logical way to prevent something from happening, and that’s why The Universe is here.” Not all that inspiring, and not really an answer to “Why is it here?” but the answer to “how did it happen?” Current cosmology tied to string theory embraces membranes that collide, creating universes. Again, the answer for “How” not “Why?”

At its core, Why doesn’t seek explanation; Why demands justification. Something, anything, looks wrong, unfair. We ask “Why is it that way?” Answers come from What and How. They do not satisfy. Again, we ask “Why?”

Posted in Other Stuff | Tagged , , | Leave a comment

Unintended Consequences

Dec 14 last year was Global Code Retreat Day. Intel and Puppet Labs as sponsors for the local session provided facilities, food, and co-ordination of the event. Local software folks got experience with or, at least, exposure to new tools and techniques. The hope of Code Retreats is to promote better development practices and improve the quality of software that gets released on an unsuspecting public.

That’s not what happened in my case. I lost two of the 45 minutes coding sprints spending about 40 minutes trying to set up a JUnit test suite on my machine. If you don’t know what that means, apparently neither do I. I have the notion of how it all works. I like Java and the Eclipse IDE, but I don’t spend any regular amount of time using them. I found myself thinking “I know that I know this. Why don’t I know this right now?”

I do know something about using The Hessling Editor. In two of the coding sprint sessions I encountered people who using advanced software frameworks but not using IDE’s (Integrated Development Environments). VIM was the editor of choice for the Ruby session. And EMACS was used for Clojure development. During a recap, I publicly confessed it made me feel less out of touch for using The Hessling Editor in my daily work.

It also resulted in a contrarian compulsion. The rules of Code Retreat are that you have to throw away your code at the end of 45 minutes. What you get to keep is the your experience working with different approaches to the problem. The approach that worked best was mapping the Game of Life grid into a list. It’s just a small step from using a list to using a string, something the Rexx language handles very well.

Not only does Rexx handle strings very well, it’s the language that The Hessling Editor uses for edit macros. Edit macros can do all sorts of things to test and manipulate edit session contents; and displaying and manipulating file context is the basic function of any text editor. All the parts were in place.

“This should be easy”, I thought. There’s no way that anyone with even a little bit of code hound in them can think that, and not feel compelled to go for it. It wasn’t going to be done in 45 minutes, but I don’t see any big logical obstructions to constructing this thing.

There’s a Murphy’s Law of Software Development that states: “If it looks easy, it’s hard. If it looks hard, it’s impossible.” Apperantly nothing is exempt from Murphy’s law, including Murphy’s laws. Aside from the normal missteps and typos, the code laid down pretty smoothly.

Kathie, my better half, was laid up after oral surgery on Monday after the code retreat, and in between keeping an eye on her, and fixing chicken soup; I managed to put some time in
laying down code. The code I wrote set up a special edit session that would draw the active screen and let me lay down and remove X’s to seed the game before starting the generation process.

In a sense, my process did employ a test driven design strategy: what I coded first was the interface that I could use to set up tests and see how well the generation code worked. Coding the generation process took about an hour and a half the next evening.

The primary complication was the nagging feeling that this project really wasn’t any where near the top of the List of Things I Should be Doing Right Now, especially during Christmas. Balancing that nagging thought against the distraction of a compulsion not tended to, I chose to tend to the compulsion and get it out of the way.

Again, that wasn’t what happened. After a day plus a couple hours, I had created a game of life environment that allowed me set up and run different scenarios. I gave a quick demo to Joseph Cunningham, a colleague at work, and he said “That’s cool. You ought to do screen capture and make a video of it.” The compulsion, only briefly in a dormant state, was revised and renewed.

The section of code that trapped keystrokes and moved the cursor was expanded to permit drawing vertical and diagonal lines. With a moderate dose of refactoring the new functions fit right in. In order to get a better video I also made a couple changes to optimize its performance. Again, the process was void of frustration; maybe because I was using my favorite PC-based editor to code and run it.

My GameOfLife edit macro isn’t robust enough to encode the game of life in its sessions, so I decided to run the game of life on “GAME OF LIFE”. Here’s the video:

THE Game of Life

One thing Joesph said was “You’ll have the only video out there on running The Game of Life in The Hessling Editor.” He was right. In fact, although there are thousands of videos on the Game of Life, I haven’t been able find another video that features The Hessling Editor. Not exactly going viral, but the video makes the first page of Google results for The Hessling Editor.

As I said, the goal was the scratch the itch and get on to other things. Results were otherwise. Since making the video, I’ve made additional enhancements and tested some patterns. I’m not currently tinkering with the code, but I’m not finished with it either.

Meanwhile, another Code Retreat is coming around, March 22. Check it out for yourself.

Portland Code Retreat

Global Code Retreat

It’s good way to spend a Saturday. The event is well organized. The experience may be enlightening, and, maybe afterwards, you’ll do something of real consequence.

Posted in stuff | Tagged , , , , | Leave a comment

Stupidity is Survivable

The recent arctic blast that hammered most of the United States makes it easy to believe that Nature is one mean mother just looking for the opportunity to take out some of the players.

Survival as an unrelenting struggle against remorseless Nature is a theme that has been portrayed in many documentaries. Cute little fur ball, or monster predator, all it takes is one tiny mistake, a small misstep and the forces of Nature that were waiting pounce, and the game ends right there. That isn’t how it is, though.

Stupidity is survivable.

When I was eight years old, I put that notion to the test in an appropriately stupid manner, without really thinking about. Lake Sacajawea sits in the middle of Longview, and back then, it sometimes froze over in the winter. The ice could get thick enough that it was safe for recreational skating. People from the public works department would check it out and mark out the safe spots.

That wasn’t what happened this time. The ice had formed a few days earlier, and my non-analytic assessment was “Looks fine to me.” So, not questioning the extent of my experience with frozen lakes, I walked out to check it out. Out there, I had the that whole South end of the lake to myself. That part of the lake was about twenty yards wide. I wandered out to the middle when I noticed something: a glove.

The glove wasn’t sitting on the ice, it was embedded in the top layer. It was a kid’s glove. I could see the glove’s fingers had collapsed where fingers would have fit. So, just a glove, no kid attached to it, Looking at the glove, it occurred to me that where I was might not be the best to be right now. Without panic or ceremony, I walked directly off the frozen water, on the the frozen ground, and straight on home.

After that, I limited determination of load limits of frozen water to destructive tests on frozen puddles. I still do that sometimes, but I leave the testing of larger, deeper bodies of water to those better equipped.

The notion that all unwise acts are instantly punished actually decreases their usefulness as teaching moments. If doing something stupid isn’t instantly punished, then the lack of bad consequences demonstrates that the action wasn’t stupid in the first place. Wrong lesson!

Stupidity is survivable. Life tolerates some levels of error. But when it’s mixed with large doses of stubbornness, that’s when the teeth get bared.

Posted in stuff | Tagged , , | Leave a comment

More is Less

I don’t gamble often, and I don’t put much on the line when I do. But I did have a problem: pulling up stakes when there wasn’t much left.

After circling around to find an open machine with nickle Keno, I’d put in five dollars and start picking. Usually, when I was ready to quit, I’d have about two dollars left. At Chinook Winds Casino, the machines don’t make direct payments: They print a ticket. You take the ticket, stand in line, and get your money.

I wouldn’t consider walking away from any amount, even just two dollars. On the other hand, standing in line for two dollars after I’d spent all that time and effort to lose my hard-earned money wasn’t worth the bother. My original solution was to raise the odds and the stakes. I’d pick more spots and bet higher amounts. I’d either win big or lose quickly. First case never happened. Occasionally, getting small payouts when I was down to the last few nickles prolonged the process, and actually made winning annoying.

This $5 pattern repeated itself over long irregular intervals for a few years before a better idea occurred to me: put more money in to start. If I put in $20 to start, I’d have more left when I felt like stopping. It’s worked. My performance at picking the numbers hasn’t improved, but seventeen or eighteen dollars is worth the time and effort to retrieve.

Raising the initial buy-in could have resulted in placing bigger bets, but I’ve avoided that hazard. The challenge and the hook for me isn’t the payoff; it’s tracking those elusive patterns. The numbers are random, but when I watch them long enough, my mind creates patterns. They’re elusive, because they don’t really exist. When the hunt pays off, I feel that I’m on track, I’ve got it, but the balance provides the honest answer: no you don’t.

Even before I adopted the more money in is less money lost strategy, there were rare times I was ahead when I decided to stop. This new way, I walk away with something every time. I guess that might be the more important part than making the bigger investment: At the start, look for ways that you’ll have something to walk away with other than experience.

People have a number of ways to describe experience. One of them is that experience is what you get when your efforts don’t yield any tangible benefit. Sometimes experience does nothing more than teach us “Don’t do that”. But even when they are useful, people don’t like, “Don’t” rules. The notable exception is Bobby McFerrin’s “Don’t Worry, Be Happy.”

Posted in Other Stuff | Tagged , , | Leave a comment