Tuesday, May 29, 2007

First Day at Yellowstone

By noon, we were parked at Spot B66 at the Fishing Bridge RV Park, and with a little juggling, we had satellite lock and a new home base for two weeks. There was paperwork to be done, but we had to get out for a little drive, just to get our feet wet.

Home after dark, we'd seen moose, elk, deer, a mother grizzly bear with her cub (at uncomfortably close range), two separate black bear sightings, two coyotes, numerous birds, buffalo, and a red fox. We'd been snowed on, gagged by sulfurous fumes, and stalled by wildlife traffic jams.

Yep, we're in Yellowstone all right.

Saturday, May 26, 2007

Morning in the Arapaho National Wildlife Refuge

We're spending a lot of our time out in nature, watching the animals, with Mary Ann taking some spectacular photos. That's what we did this morning, and to give you a hint of what we do, I threw together a video clip of what its like.

Being out in nature has its periods of standing around and waiting, but it also gives you an exciting, unscripted dose of reality. It's a constant reminder that nature is all about life and death.

Friday, May 25, 2007

Preparing for Africa, Part 1

While I'm in Walden Colorado (the Moose Watching Capital of Colorado), I'm also doing some preparation for our September trip. We're heading for Africa, a one-month trip into the southern countries. While the itinerary isn't nailed down just yet, it looks like we'll be flying into Capetown South Africa, and seeing Namibia, Zambia, and Botswana.

While Mary Ann will be trying hard to fit all her camera gear (plus a few clothes) into the 20 KG baggage allowance mandated by some of the short-hop airlines, we did need an excuse to take Africa off the 'Someday' list and label it 'Now'. That excuse is the presence of our friends the Gregersons, who are doing mission work in Zambia. So, one of the weeks, we'll be there with them, trying to help a little. I'll probably be teaching Creative Writing at the college, and doing some library work. Luckily the official language is English. The other three weeks, of course, will be to photo spots.

So, our passports have been sent off to be renewed, safaris are being booked, and we've had the first round of inoculations against some truly nasty sounding diseases. More articles to come as we get closer.

Wednesday, May 23, 2007

In the Moment

I have a tough scene to write, and it's coming hard. That's why my fingers betrayed me and I'm over here in the blog compose screen, instead of crafting intense, deathless prose.

Sitting here at the table in the RV, I'm watching the snowflakes come down. The towering peaks are lost in the white out, but there is no accumulation here. The flakes melt as soon as they hit. Behind me, there are three elk that have wandered down into Estes Park, collecting gawkers with heavy coats and point and shoot digital cameras.

I've fired up our erratic furnace. Half the time I have to go outside and flip a switch to get it to come on, hardly my favorite way to enjoy comfortable warmth of a roaring heater on a cold, snowing afternoon. Up on the RV's TV screen, Frontrow is cycling through my music in an effort to get me in the writing mood.

No help for it. I guess the only way to make those words come is to flip back to the document screen and force them out, one keystroke at a time. I'll see you later.

Tuesday, May 22, 2007

Coyotes in Rocky Mountain

If you aren't in the habit of checking over at Mary Ann's blog, you should do so right now. Yesterday morning's photo shoot produced some wonderful photos of the coyotes near Sheep Lake in Rocky Mountain National Park. I was frequently interrupted from my work on the latest novel by the sight of a pack of coyotes, with their new litter. I have a tiny little 8X monocular that I hang from my neck and I must have grabbed it up dozens of times that morning.

Saturday, May 19, 2007

The Joy of Creation

My wife said my last blog post 'reeked of depression'. Well, I can't deny that the state of the individual programmer isn't a little depressing, but it hasn't overwhelmed me with depression. For one thing, programming has become such a small part of my life. I'm a writer now. And the joys of writing are so much more significant.

Being a guy, I've heard about the joys of motherhood all my life. 'Bringing a new life into the world' is one of those common phrases spoken by a new mother, with the look of joy on her face. It's something I can appreciate but not experience.

I can appreciate it because I write fiction. I create characters, and I craft their lives. There is a joy that comes from this creation that I doubt can be appreciated without doing it yourself. My newest character, Della Barr, is going through a trial by fire in the time-travel novel I'm writing, and it's a joy to me to see how she develops and how she bears up to the totally unjust troubles she has to overcome. Even if this novel never sees the light of day, she has brightened my life, and all the hours I spend on it are just the token, the minor entrance fee into her life.

That said, I've got to get her back up off the carpet. I'll see you later.

Friday, May 18, 2007

Why I Don't Program in Public Anymore

Microsoft's latest attempt to inject fear into the independent programmer brings to mind my gradual decision not to release any of my software for general use anymore. It's something I used to do. It was part of being a programmer. You learned by looking at other people's code, and in turn, you put your own stuff out there.

Back in the olden days, it was a lot less organized. Computers were rather expensive toys you built from kits or from your own designs. And yes, I designed my own luggable computer for word processing use, down to the video circuitry and the memory cards, and of course, I wrote all the software because there wasn't even an operating system for the beast.

The first software I gave away had to be the keyboard and video drivers for a friend's IMSAI kit computer. By the time I had advanced to the TRS-80, I was writing game programs for friends and even attempted to sell my own version of Life on cassette. The biggest project of that era was a word-processor I wrote in assembly code and sold via Howard Sams. The book contained the full source code, although that's another story.

I also wrote a memory test program and a synonym processor for LDOS. These were published to the world as magazine articles with source code as well. Programming out in public was a no-brainer. It was what programmers did.

After that, I went to work for Motorola and although I didn't start out in computers, the job mutated over time to a full-time programmer position. I wrote mainly in-house tools, like a system to create progress charts on HP pen plotters. My code spread through the corporation unchecked, and until Powerpoint gradually took over the business charts function, it was extensively used.

The Internet happened and I took a snippet of Perl code by someone else and turned it into a full featured Gopher server, which was posted to the public domain on Usenet. Programming in public, but it was about then that things started to change. Gopher shot itself in the foot when the owners of the original server restricted its use to non-commercial use only. Thus the WWW took over that niche and the rest is history.

Programmers were forced to think about copyrights. The GPL was launched, but was so tainted with politics that I never used it. If I had a snip of code I wanted to publish, I made sure it said Public Domain. I was a writer of fiction, and had sold many short stories. I was well aware of copyright and its uses. I LIKE copyright. But the programming world got so emeshed with IP issues that there was no real clarity any more.

I was working for Motorola. For the first time, I had to consider if I had the right to publish my code. Who owned what? A couple of times I sent the request up the management chain. "Hey, is it okay if I publish this on the web?" Even my bosses weren't really clear on the rules.

I just stopped. I wrote programs for my job. I wrote tools for my own use. I was free with examples and help for my co-workers and friends, but I wasn't comfortable programming in public anymore.

To this day, I program my own tools, but even though I don't have to worry about Motorola anymore, I have lost heart. I don't post my code out there for everyone to see. I learned by example over decades. Could the tricks and techniques I know instinctively be 'owned' by someone else? I don't know, and it's prohibitively expensive to research.

So, I'll just program my own stuff in my dark corner and when I'm done with it, there it will remain.

Tuesday, May 15, 2007

A Little Coding Exercise

For many years, I spent all my workday at Motorola writing programs for internal use. Before that, I even dabbled in commercial software. But since then, the only coding I've done is a few tools for myself of my relatives. Instead of designing software, I've been designing novels.

But today I broke down and wrote a little addition to my website, a coupon manager. The idea is that I can make a number of coupon codes that I can print on the back of my business cards, or hand out at conventions. A person would then go to the Coupon page on my website and enter the magic code. Then, they would receive a download or special offer or something (I haven't worked all that out yet.)

The core of the software was a little XML database containing coupon codes, what was to be offered, and how many times the same code could be used before it expired. Seeing that I'd written other software using dumbed-down XML databases, I copied over the bulk of the code from the software that I'd written for my wife Mary Ann Melton's website and my sister Mary Solomon's site. These are all dynamic sites that generate the pages on the fly from an XML database.

All went well and the program came together fairly quickly. Then, as is often the case, a puzzling bug appeared.

I had populated the database with three items, each with their own counters. I was happily entering coupon codes and downloading test files, when all of a sudden, everything stopped working. Once the first test file reached the end of its counter limit, none of the codes could be recognized anymore.

I puzzled over it. I wrote debugging code. I reset the counters. It repeated. Once ANY ONE of the coupons reached its expiration limit, ALL of the codes became invalid.

Finally I gave up trying to debug the new subroutines I had created and started following the logic even into the old code that had happily been producing web pages for years. And there it was. Off in a subroutine that parsed the XML database into variables, was a rare bug that caused the parser to fail once it saw '0' as a value. In all the time that it had been working to create web pages, there had never been an element that contained nothing but a single zero, so it had never failed.

Now, mystery solved. I just have to decide whether to recode the parser ( an opaque one-liner regular expression), or just to write the code to never reach zero.

You know, coding is much more fun than SudoKu.

Saturday, May 12, 2007

Tanglewood Morning

For more than two weeks now, I've been at Lake Tanglewood, visiting with my parents. We'll be heading out for Colorado on Sunday. It's been a pleasant visit. Our RV is parked in my sister's driveway (where I leech electricity and water from their garage). I just took the image above from out the window.

Tanglewood was a fishing lake made from impounding a finger of the Palo Duro Canyon system. It became a gated residential area for Amarillo residents, and the combination of limited development, easy access to water, and protected habitat made it into an area overflowing with wildlife. In this little canyon off my left shoulder, birds and deer are constantly in motion. The trees in the center are bedtime roosts for turkeys. Each evening, I watch the turkeys come home from their daily forage and fly up into the branches and gobble to each other. Sometimes, you can see them leap off the cliffs above and fly down.

Deer are so common and tame that each night, herds wander up this way to bed down, and don't give me more than a glance as I set out the lawn chair to watch them.

While I'm looking forward to the rest of the trip, I will miss this place.

Monday, May 07, 2007

Does Anybody Web-Cache Anymore?

Warning: this is another technical blog. No pictures, no human interest. Sorry.

From the early days of the DubDubDub, web-browers have used a cache to speed page viewing. In non-tech terms, the browser program saves all those bits of pages in a temporary location so that if you go back and view an old page again, you wouldn't have to pull all those buttons and logos over the network a second time.

As an early webmaster, I was well aware of this feature and made efforts to re-use graphic images in my pages. If I had the same logo on every page, the HTML code actually pointed to one single image file. If someone visited five pages, that logo still flew over the network only once.

I'm not seeing this happen anymore. While I know my web-browser is happily saving pages and images in its cache, I don't think it's actually getting a chance to use them.

I'm sitting in the WiFi Chair at my parents house, struggling with an intermittent connection. Frequently, I'll lose my connection and have to re-load a page. I also use MenuMeters, a tool to show me real-time network throughput. I can watch all those images load and reload over the network, even when I've just been to that page.

I suspect, due to Web 2.0 type smart pages, nothing is being cached. It's easy enough to do. Up in the header of the page, you can say 'pragma: no-cache" and force the browser to pull it fresh each time. This has the advantage that no one has stale pages, and if everyone were on high-speed internet, maybe it makes sense.

I've also seen problems with web authoring tools. I use iWeb on my main site HenryMelton.com and I've noticed that even though I re-use certain graphic elements on multiple pages, the authoring program never attempts to reuse image files in its code. For every page, the logo or button is rendered fresh and saved in a page-specific image directory. So, even though I re-use images, as far as the web-browser is concerned, none of these are the same. It has to load the same button fresh for every page visited on my site.

I could fix this manually, but I'm too lazy. I use a web-authoring tool rather than hand-coding the page because I value my time and I suspect almost everyone who visits the site has high-speed internet and would never notice the slowdown.

So, my question. Is the web-cache just one of those obsolete features that isn't actually used anymore? Should I just turn off my cache to save hard disk and forget the capability exists? If so, it's a little sad.

Thursday, May 03, 2007

The Wi-Fi Chair

Since 1980, my parents have lived in a house on the hill down in the canyons of Tanglewood. It's a nice old house, but for a techie guy like me, its greatest disadvantage is the lack of Internet. They have a phone line, but I haven't used a dial-up modem in years. I'm not sure I have the connection numbers any more. Sadly, my mother's interest in email has faded and I'm not sure I could honestly make the argument for them to get a cable-modem connection. Visiting here for three weeks means long stretches without a connection.

At the RV, parked over at my sister's house, there are a couple of connections. One is our Motosat dish, but even better in terms of bandwidth is my sister's home network. They have a good wifi router connected to an excellent cable-modem. Every night I have my choice of connecting to their system or the RV system. It's the daytime drought that troubles me.

Yes, I have my cell phone, and assuming Mary Ann hasn't swiped it, I can connect for about an hour before the battery runs dry.

However ... after the last trip when I was frequently just out of range of a wifi signal, I made a couple of upgrades. Item one was a Quickertek external wifi tranceiver. Laptop wifi systems are deliberately underpowered as a tradeoff between battery life and usability. The Quicky is a higher powered unit that connects via USB. I can carry it in my pocket unless I need it, and then greatly increase my range by plugging it in. It gets very hot to the touch when I do, so I understand the laptop designer's decision to have just enough of a transmitter to work comfortable in a house or coffee shop.

Item two was to replace my RV wireless hub with the new Apple 803.11n router. This gives the RV a greater range.

So, sitting in the den at my parents house, I can connect to the RV's satellite feed over at my sister's house. It's a half-mile walk, but line of sight, it's only about 700 feet. With the Quicky plugged in, I can make a fair connection to the RV's router.

But only in one chair. Back in 1980 when my father bought this house, he immediately began adding on the den, a large open room with lots of windows. If I sit in the south west corner of the room, in a comfy blue chair, I can hold the laptop's antenna to the window and only from this location, make my connection. It's the wifi chair.

I have tried going outside, but with trees in the way, the only place is just outside that same window, and outside, the sunlight washes out all visibility on my screen.

So, it works, but within tight constraints. Maybe I need to talk up that cable modem after all.