www.jlion.com

Saturday, May 31, 2008

I'm just coming back from a very nice vacation in Vermont. One morning, while staying at my parent's home, I spotted this black bear in their back yard. When he spotted me with my camera, he ambled off into the forest.

Small Black Bear

While not bear-spotting, I found time to finish Neal Stephenson's The Diamond Age. I found the ending of the book to be somewhat anticlimactic. IE: I felt like there were a lot of loose ends that were left hanging, almost as if this were the first in a series, or if someone (editors, perhaps) had arbitrarily truncated the story to keep it of manageable size.

I very much like Stephenson's imagined nanotechnological devices but I think the world that he puts them in is less than convincing. I also feel like he's making some kind of subtle racial comment with his talk about tribes and the importance of finding one of one's own. It seems to me that in the far future in which "The Diamond Age" is set, with nanotechology as powerful and as ubiquitous as Stephenson imagines, that race will be a thing of the past: IE: everyone would be able to control what they look like to such an extent that race will be a matter of personal choice, like the color of one's shirt. So why all the race/tribe stuff?

After finishing "The Diamond Age", I turned next to a book by Jerrold M. Solomon called "Who's Counting: A Lean Accounting Business Novel". I'm enjoying this book, and while it's not quite at the level of "The Goal", it is thoroughly thought provoking.

It's seeming to me now, as someone who has not yet finished the book, that Lean is the next step after what Goldratt describes in "The Goal". That is, once Goldratt's Theory of Constraints has been applied to the factory, one then can turn toward Lean to spread the influence and benefit of TOC into sales/marketing, accounting and research and development.

"Who's Counting" is not as convincing as "The Goal": This is probably a function of Mr. Solomon having done his own writing rather than engaging the services of a professional ghostwriter as Mr. Goldratt did, but this does not diminish the strength of his ideas. In fact, I much enjoy Mr. Solomon's portrayal of interoffice politics at a mid-size manufacturing company.

I'm about two thirds finished with the book and will write more when I complete it and have time to digest the ideas that Mr. Solomon presents.

Wednesday, May 14, 2008

I've started reading The Diamond Age by Neal Stephenson. This is the second book by this author that I've read: I enjoyed Snow Crash immensely, and The Diamond Age in many ways surpasses this earlier novel.

Diamond Age is set in the distant future, in a world where nanotechnology has become commonplace. Almost anything a person can imagine, from floating cities to chopsticks can be manufactured out of thin air by matter compilers, which are actually microscopic machines that directly manipulate atoms supplied to them by "the feed" - a sort of raw material plumbing system.

In this world, everything is survailed by microscopic flying machines. Wars are fought at the atomic level and the most obvious evidence of a major battle is the black dust of dead nanobots.

I'm a couple of chapters into the book now, and Stephenson envisions this future world as extremely stratified, with little interaction between the classes. The major premise is that an engineer has stolen (cloned) an intelligent book that was created to serve as a tutor for one of the world's most powerful and wealthy men. The book is in turn stolen from the engineer and finds its way to a very poor young girl.

So, like Sophie's World, here we have a story centered around a young girl and a book. I also suspect that, like Snow Crash, there is quite a lot of philosophy tucked away in the corners of The Diamond Age. Already Stephenson has invoked the Confucian justice system. It will be interesting to see how the story develops.

One of the annoying things about audio books is that books are often available in print for years before they become available in audio format, if they ever do. For example, audible only lists one of the several books that Jostein Gaarder, author of Sophie's World, has written, and a search there for Alfred Bester fails to find the Bester novel that I would most like to read: "The Demolished Man".

Tuesday, May 13, 2008

So I've just received my long anticipated copy of Adobe Creative Suite 3 Web Premium. I say "long anticipated" as it took over a month after our order with Zones for the software to finally arrive.

Now having waited such a long time for the software to be delivered, I find that I must wait only a slightly shorter amount of time for the software to install. This is the slowest installation program I have ever encountered. Installing the full suite takes over an hour on my Dell Precision M65. What's up with that, Adobe?

Monday, May 12, 2008

Web Deployment for 2008

If you use web deployment projects to deploy your visual studio web applications and you upgrade from VS2005 to VS2008, then you'll also need the updated version of web deployment projects.

Scott Gu's blog has the link to the download, here:

After installing it you will also want the hotfix, which Scott's blog also has a link to, here:

I monitor craigslist's jobs postings section from time to time, particularly the "software/QA/DBA/etc jobs" and "web/HTML/info design jobs" groups.

It's interesting to see how many ads recently offer $10/hr-$14/hr for software development. I think there's the perception that software developers can be hired cheaply in India and so it should also be possible to hire them cheaply here in the US. What I don't know is how much success the posters of these advertisements have in attracting suitable talent.

I do think that much software development has become cheaper. Web development technologies such as simple javascript and html are very mainstream now, to the point where many web sites can be constructed by a graphic designer alone, without the need for specialized software development.

More specialized applications have often been commoditized. Do you, as a retailer with an on-line presence, really need to construct your own shopping cart/catalog software? Or can you customize one of the hundreds of commerical shopping cart packages? This commodization lowers demand for developers of average skill in the US. Software companies are better positioned to hire highly skilled developers in the US and outsource medium-skill jobs such as maintenance and support.

However, fitting your organization around boilerplate software has its costs. Business software is a modeling of a process. For example, shopping cart software might model this process: You 1) select your products, 2) choose to check out, 3) provide your address and choose the method of shipment, and finally 4) specify the form of payment. The software might provide options for customizing the look and feel of each of the pages involved in this transaction and might even have support for some additional features such as one-click purchase.

What happens if your business model varies from this standard model? Let's say that you sell customized furniture. Based on a standard model customers can request many custom variations and need to be provided with an estimated time of delivery based on those requests before the order can be completed. You could try to change your business model to fit commonly available software, or you could hire a software developer and roll your own.

This is where the craiglist posters often go wrong. While it is true that there is less demand for US-based software developers in our globalized economy, developing specialized software requires skill and presence. Someone who is intelligent, creative and disciplined enough to successfully develop a specialized shopping cart software is unlikely to be working in the US for $10-$14/hour.

It might be possible to find someone overseas who will do the work, but much is lost in translation. Remember, business software is fundamentally a model of a business process and to properly implement it one must have an adequate understanding of the process being modeled. Large companies can successfully outsource as they employ armies of business analysts to understand and document processes which can be provided to overseas coders. Developers that work with smaller companies usually wear both hats: They must be able to both understand the business process and code it up as software, and understanding the process is much easier and accurate face-to-face.

Thursday, May 08, 2008

I've just finished reading Sophie's World, which is a philosophy primer/novel. It's pretty good, and, as is required from philosophy novels, is thought provoking. Some interesting nuggets from the novel:

The universe is expanding. If it keeps on expanding, that supports the Christian view of the universe, with a single origin/point of creation. If it expands to a certain point then retracts again then expands again, then the Buddhist view of the universe may be the better model. There could in fact, I suppose, have been another me with very similar experiences 500 billion years ago or whatever. This is kind of like the Steven King Dark Tower view of existence.

Sanskrit, Greek and Semitic languages have a common root which, because what we have words for influences how we think, means that cultures derived from these languages have much in common.

To me it seems silly to debate about intelligent design/creationism/evolution. Whatever unimaginable intellect brought about the creation of this universe, or all universes if there are more than one, certainly is not constrained by the mere forces of space and time. This is to say that we all could have come into existence ten minutes ago, with all of our memories and radioactively decaying rocks already in place.

As is noted in Sophie's World, we can no more imagine the dimensions or motivations of God than an amoeba could imagine an aircraft carrier. Our poor little brains just aren't big enough for the task.

As I read Sophie's World, I found myself thinking of:
I'm now on to The Diamond Age by Neal Stephenson.



So a company that I worked at for ten years is now going through some traumatic times. I left about four years ago. When I joined the company, there were something like 200 employees, and when I left, something like 5,000. For most of the time I was there, the prevailing attitude was unbridled optimism: Anything was possible.

However a couple of days ago around 350 employees were let go. Apparently the atmosphere there now is pretty glum.

My personal feeling is that things will pick up a bit after the election, but a lot will depend on how our next president interacts with other countries. Ole' GW has been preety good at nondiscriminatory alienation. It would be nice if our next President turns the beacon on the hill back on. For the past 8 years it's been a searchlight and I think that's had an impact on the economy.



In my current capacity as sole developer at a mid-sized manufacturing company, I've been working recently to unravel our shop floor application. It's a mess. It was started in some prior version of VB, probably 5, then updated to 6 which is where it is now. There are global variables all over the place and the app uses and reuses four or five adodb.recordset objects.

I've been trying to isolate the parts of the application from each other and to add error handling and reporting wherever possible. It can be difficult because others don't see the value in doing this. When I insist that the application is a mess and needs to be cleaned up, they think I'm being difficult.

I think adding error reporting has helped a lot in this regard because what used to happen is that there would be an unhandled error. An operator out on the shop floor would see the error and might or might not call IT to let someone know (more likely not). IT would seek out and find any data issues caused by the error then roll on.

Now, what happens is that any time an error happens an email is sent, a text log file is updated and a record is posted to a database error table. It's very easy to see that lots and lots of errors are happening.

I guess the moral of the story is that especially for developers it's important to show as well as tell. People need to have hard evidence of where the problem is, whether that problem is errors, or performance, or data integrity, or UI issues or whatever.

Another moral is that VB6 is to dot net what a toddler's tricycle is to a hayabusa.