The sandy loams of the Pine Barrens of Southern New Jersey are a porous filter for the water that trickles through purifying layers to feed one of the largest aquifers on the East Coast. Hours after the rain has fallen the ground is for the most part dry again, and undisturbed. Into this same ground has been poured, over the centuries, the hopes and dreams of generations of entrepreneurs. The woodcutters, colliers, iron and paper mongers, would-be glass barons, and land speculators have all thrown their best shots at these seemingly endless miles of forest, meadow, river, spung, and swamp, with as little effect. To decamp in the middle of these woods today, in Lacey Township, or perhaps old Shamong, is to find yourself set back 200 years to the turn of the eighteenth century. Before and behind you are the miles of rutted sand roads. Around you the wind moans in the cedars and oaks. There seems to be no sign of the place this once was, and yet, something gleams dully from under a thick carpet of spring greenery.
Month: May 2008
I don’t read the consumer technology press much (at all), so I hadn’t heard of this excellent term for all the little pieces of junk software one finds on a new computer until my Dad brought it up. This happened while I was in the middle of trying to remove a bunch of them from a new laptop he had purchased for my Mother. I don’t know if Walt Mossberg coined the term, but he certainly gave it more visibility in a column last year. The symptoms which had brought Mom’s shiny new HP unit to my desk included slow boots, and a strange configuration of nested desktop folders. When I first began examining it I found seven or eight entries in the Startup folder, and another fifteen or so under the various flavors of the RUN key in the registry.
What causes slow boots in a Windows machine? In fairly rare circumstances it can be problems with the registry, page file, disk, or a device. Typically, though, it’s software that has to be loaded at startup. When software is set to run from the Startup folder or the registry it is essentially added to the work that the operating system must do before handing control over to the user, because by definition “startup software” must be running before the system can be considered to be fully up and functional. Of course, a large chunk of the software that we find running at boot is nothing like essential to the function of the system. Thus the term “craplets.”
So which were the culprits in the case of Mom’s new luggable? The usual suspects: update notifiers, system tray monitors, context menu handlers, etc. There was Java’s update checker, and Adobe’s update checker, and HP’s update checker, and Quicken’s update checker. I was glad to see the first two of these on the recent ZD.Net UK list of the most annoying software. Update notifiers are among the worst offenders in my book, simply because there’s no good reason for them at all. Yes, people have a vested interest in knowing when new versions of important software are available, which is why Windows Update is a good, if imperfect, mechanism. But the criticality of the need tracks the criticality of the software, and outside of the operating system most of it just doesn’t qualify.
Do I need a separate process running just to check and make sure that there isn’t a new version of Java available? Or the Adobe PDF reader? Of course not. What’s wrong with checking every so often when the software is run? Many applications do just that (Google Earth, for one example), and the system works great. I can’t help but think that many of the software OEMs that dump these craplets onto new machines are in pursuit of some vaguely positive branded relationship with users, but it’s a misguided pursuit. Users have good branding experiences with software when it helps them get something done, not when it interrupts what they are trying to do with useless information.
How much is a proprietary business advantage worth? In 1907 Milton Hershey began selling ‘Kisses’, the now-familiar teardrop-shaped milk chocolate confection. His new treat would become a world-wide phenomenon that continues to generate increasing sales today more than one hundred years after the product launch. The initial introduction of Hershey’s Kisses required the development of specialized machinery that could extrude a very accurate amount of molten chocolate onto a moving steel belt and then cool the resulting shape before gravity caused it to deform. This machinery, created under Hershey’s own hands and direction, enabled the production of the candies, but it wasn’t enough to secure the market.
Kisses were wrapped in a simple square of tin foil. A candy-buying consumer couldn’t tell the difference between a genuine Hershey’s Kiss and any other teardrop-shaped chocolate confection wrapped in foil. Imitations soon began to appear, and Hershey responded by beginning work on yet another new piece of candy manufacturing technology: an automatic foil wrapper that inserted a paper strip that extended out of the wrapping through the top, like the stem of a cherry. On the little strip of paper the words “Hershey’s Kiss” were printed. The company secured a trademark on this label, and imitators began to fall by the wayside.
Although it isn’t often cited as an example of the advantages of investment in proprietary technology, the food business is one of the best illustrations. Food is messy. It comes in all sorts of shapes, sizes, and textures, and a changing market constantly demands additions to this variety. Many of the best-known and most durable brands required the development of proprietary technology to get off the ground. If you decide to produce Twinkies, you can’t just go out and buy a twinky-stuffing machine to get the cream inside, because they don’t exist. If the machine were available off the shelf everyone would be making Twinkies. The same can be said for cream-filled cupcakes, frozen appetizers, fresh-brewed ice teas, and any number of other things we now take for granted.
Not that the food business has a corner on the market for innovation. Many companies small and large have, over time, developed proprietary advantages in their markets by inventing new production technology. I once worked at a small manufacturer of urethane roller skate wheels, and recall the owner-engineer working in a little shop late at night, trying to perfect a home-brewed machine that inserted the steel hubs accurately onto a little stand in the center of a mold. There was a time when the average U.S. business person was like that guy, I think; or at least a time when there were more like him. Now we’ve become a nation of managers, and at least in the case of software, the business of virtual machinery in which I work, we generally think just about any effort is too much to bear.
“This project is too expensive” are words I hear often. Well, then don’t build it. Maybe one of your competitors will. Or perhaps you don’t need it at all. Not every business requires new custom machinery, of the soft or hard varieties, in order to prosper. But if you think you do, i.e. you have identified an advantage that will add market share or some other value to your business, then suck it up. New one-of-a-kind machinery is expensive. Its design, development, and production time lines are uncertain. You’re going to have to take some risks, like Mr. Hershey. He could very well have stuck to the caramel business, which was doing fine before he sold it and built his factory for kisses. Fortunately for generations of kids and chocolate lovers, he didn’t.
Who’s a Junta?
After reading another report on how the junta in Myanmar is stealing everything that isn’t nailed down and has the letters “U. N.” stenciled on it, I got to thinking: what makes a junta, as opposed to, say, a regime, or a dictatorship, or a despotism?
According to Wikipedia “junta” is a Spanish word meaning “committee.” That makes me feel pretty good about the way I view most committees, and the people who seem to form them almost spontaneously upon awaking in the morning. Reading further I learned that “junta” may refer to: government by a committee of military leaders; an album by Phish; a board game; an administrative body of the Spanish Hapsburgs; several local administrations in the Napoleonic era; or a Marvel Comics character.
In 1810 after the May Revolution the first government of Argentina was known as the Primera Junta. It created an executive branch called the Junta Grande. Alex Haily later stole this phrase and corrupted it into Kunta Kinte, the lead character of his hugely popular novel “Roots.” In any case, it seems clear that a “junta” is a military dictatorship that rules over any particularly hot and sweaty country, where the humidity plays some role in the formation of committees.
SSH Update Breaks NX Server
If you use NoMachine’s very cool NX server to access a linux system remotely, and you installed the open-ssh update for the broken random number generator problem this morning, then you may have run into a situation where the update breaks NX server. The problem is that the local host’s RSA key is stored in a file used by NX Server, and when that key was regenerated it no longer matched.
The NX list of permitted host keys is stored in /usr/NX/home/nx/.ssh/known_hosts (at least it is on debian). You should see two identical entries, one for localhost and one for 127.0.0.1. If your NX Server install is more complicated than mine your mileage may vary. Your shiny new RSA host key is located in /etc/ssh/ssh_host_rsa_key.pub. Replace the key value in known_hosts with the new key value for both entries, and you should be all set.
Note that running /usr/NX/bin/nxserver –update might also fix it, or one of the other commands might. I didn’t experiment beyond trying nxserver –history clear, which did not do it for me.
The Hillside Farms of Pahaquarry
My feet wandered back into the area of old Millbrook this weekend, and I expect they will tread that way again soon, and hopefully for years to come. This region, like the Pine Barrens in the Southern part of the state, completely fascinates me, and for the same reason. For such a small state New Jersey must be unique in having two such areas of restored wilderness. I say restored because in both the Pine Barrens, which make up much of the Southeastern corner, and the Highlands, which take up the Northwestern, civilization once thrived. Agriculture, mining, lumbering, manufacturing, transportation; every major enterprise of eighteenth and nineteenth century America was engaged in on these Northern slopes, and those Southern plains. Today there are, for the most part, just the woods, the hills, the sandy trails and woodland tracks that were once arteries, and the little dots on old maps that mark the towns.
Looking for the Farms of Pahaquarry
I headed back into the hills of Pahaquarry this past weekend in search of an old road, and some old farms, and found quite a bit more of the former, and less of the latter, than I had hoped. The steep hillsides of Pahaquarry Township were once part of New Jersey’s rural agricultural heritage, and the remains of this past dot the forest floor, and line the old trails throughout the area. Accompanying this essay are pictures of an ancient lime kiln and not so ancient, but just as abandoned, power line, not to mention a dump full of broken bottles and the remains of a baby carriage.
My feet wandered back into the area of old Millbrook this weekend, and I expect they will tread that way again soon, and hopefully for years to come. This region, like the Pine Barrens in the Southern part of the state, completely fascinates me, and for the same reason. For such a small state New Jersey must be unique in having two such areas of restored wilderness. I say restored because in both the Pine Barrens, which make up much of the Southeastern corner, and the Highlands, which take up the Northwestern, civilization once thrived.
You can read the full article here, or view the gallery of images.
When is a Missing Class File Not Missing?
This is the part of the show where experienced Java developers laugh as the C# guy tries to tread water. I’ve been developing a Java console application to import some data files into a MySQL database. The development work has all been done in Eclipse on Debian, testing against a local DB. When the time came to test against a remote DB I was offered a Windows-based VPN client to use for the connection, but nothing for Linux. So I decided I might as well package the app up for deployment and run it on my XP system, where it could connect to the database and do its thing.
I jarred up everything (too much, in fact, but I’ll come back to that) and moved it over to Windows. When I double-clicked the jar file the VM popped an error dialog that said “Could not load main-class: ClassName, program will exit.” That sent me down a path of looking at the manifest and trying to figure out why the VM couldn’t find the main class. The package paths all seemed correct. Finally I tried running it from the command line instead of double-clicking (good thing, too, since as I said above it’s a console app). Now the error I received was “exception in thread ‘main’; java.lang.noClassDefFound: org.quartz.SchedulerException”. Well, that’s different.
Turns out I had naively packaged my dependent .jar files into the main .jar for the app, expecting everything to get loaded correctly. That doesn’t work without some additional plumbing. Once I moved them out to a directory and specified the locations correctly in the Class-Path variable in the manifest, all was well. Lesson learned: always execute my programs from the command line, lest the VM bury my exception in something misleading.
Eclipse: Refresh the Package View
Sometimes it’s those little things that drive you nuts, like expecting that when Eclipse displays the Project Properties dialog and you click the Build Path and then click “Add Jars” the resulting list will contain whatever .jar files you happen to have placed in the project folders. Apparently this is not so. Today I needed to add a few .jar files to a project, so I copied them into the lib folder under my project, where the existing .jar files already live. I then went into the project properties to add the jars to the build path. But there were no jars to add. I stumbled around a bit like the idiot I often am, until I happened to click “File | Refresh” from the menu bar with the package selected. Bingo. Eclipse refreshed the package list and suddenly all my shiny new jars were there and available to be added to the path. I had to select the package first, however. If it wasn’t selected then the “File | Refresh” choice was disabled in the menu.
Iron Road to Chester
I recently took a Sunday afternoon off and followed the track of the Central Railroad of New Jersey’s Chester Branch along its century-old route from Long Valley to Chester and the site of the old Taylor blast furnace on the Lamington River. Along the way I saw some surprising things, and some that were not surprising, but impressed me deeply nonetheless. The railroads of Northern New Jersey played a key role in the commercial development of early America. Today many of them are no more than faint lines on a green and reforested landscape, or marks on a 120 year-old topographical map.
I entered the woods near Chester, New Jersey by stepping over a thin cable slung between two wooden posts and heading up a narrow gravel-covered track that disappeared in leafy dimness. The better part of forty-five minutes later I was barely a mile in, but then I had the camera with me, and had seen many things worth a short delay: a spring from which orange, iron-laden water bubbled; remnants of a 19th century sewage system; ancient stone walls lining a suspiciously regular cut in the earth; century old black cinders born in the firebox of a steam engine. The path I followed was unmistakable as an abandoned railroad right of way: unlike any forest track a railroad cuts long smooth slices through the terrain: no tight curves; no steep grades.
You can read the full article here, or view the gallery of images.