Category Archives: Thoughts On Tech and More

Sleep and the length of days

Is it just a coincidence that humans require roughly the same amount of sleep as there are hours during the night?

In other words, is the amount of sleep that is “healthy” for us the result of long centuries of nurturing and tradition or is it biological?

In other words, if the day were 30 hours long, would we sleep more or work more?

This might keep me up at night…


Check out my latest book, the essential, in-depth guide to performance for all .NET developers:

Writing High-Performance.NET Code, 2nd Edition by Ben Watson. Available for pre-order:

Programmer’s Paradise

Joel of Joel on Software recently posted a good article on managing programmers in software companies. I liked this paragraph:

A programmer is most productive with a quiet private office, a great computer, unlimited beverages, an ambient temperature between 68 and 72 degrees (F), no glare on the screen, a chair that’s so comfortable you don’t feel it, an administrator that brings them their mail and orders manuals and books, a system administrator who makes the Internet as available as oxygen, a tester to find the bugs they just can’t see, a graphic designer to make their screens beautiful, a team of marketing people to make the masses want their products, a team of sales people to make sure the masses can get these products, some patient tech support saints who help customers get the product working and help the programmers understand what problems are generating the tech support calls, and about a dozen other support and administrative functions which, in a typical company, add up to about 80% of the payroll. It is not a coincidence that the Roman army had a ratio of four servants for every soldier. This was not decadence. Modern armies probably run 7:1.

 I have found that I am far more productive at home than in a cube. At home I have a private office, free drinks, a good computer (not great), two large screens, a perfect temperature, a good chair, and can listen to music out loud.

Programming is an exercise of the mind. The less you have to worry about your body the better your mind functions.


Check out my latest book, the essential, in-depth guide to performance for all .NET developers:

Writing High-Performance.NET Code, 2nd Edition by Ben Watson. Available for pre-order:

The web in a box

I was reading an interview of Gary Flake who works with MSN search. The following quote stood out to me:

 However, there is an even richer class of algorithms that can only be efficiently built on a 64 bit system because you essentially have to have a significant part of the web stored close to a single CPU. So, 64 bit systems pave the way for entirely new forms of relevance that look at how pages relate to one another.

That is just cool.

Microsoft announced recently that in a few months they would reveal a new search engine that is better than Google. This looks like part of it.


Check out my latest book, the essential, in-depth guide to performance for all .NET developers:

Writing High-Performance.NET Code, 2nd Edition by Ben Watson. Available for pre-order:

Credibility

One thing I cannot stand that is so prevalent in the computer industry is criticism by people of ideas, products, and technologies that they don’t understand. You see this a lot in the OS wars–especially of Windows, but Linux and Apple are not immune.

In very few cases do people have a well-reasoned and thought out explanation for their feelings. People who bash other ideas for their “religious” reasons are not intelligent–they are freaks who should not be trusted to make good decisions about technology.

Sure, there are horribly bad products out there, but those are mostly ignored and quickly die off. Religious wars start over successful products. A little study and research into the reasons for various design decisions would go a lot towards increasing the intelligence of most of these people.


Check out my latest book, the essential, in-depth guide to performance for all .NET developers:

Writing High-Performance.NET Code, 2nd Edition by Ben Watson. Available for pre-order:

Why Developer Certification Doesn’t Make Sense

Much as been said about the pros and cons of requiring software engineers to be certified, just like the medical, law, and engineering fields.

I personally do not believe this should happen. First of all, those other, certified, fields have existed for thousands of years. Computer Science is not even a century old. The field is incredibly immature. Sure, we have fancier tools, and we can do some amazing things, but we’re still in infancy!

Look at the best software makers you can think of. I won’t name names. Think of the highest quality applications you have ever used. Now think of all the problems and bugs and limitations of that software. If that’s the best we can do, what meaning does certification have?

All the other certified fields have well-established standards that have withstood the tests of time. Computer Science hasn’t had the time. We can’t even agree on the best way to make software!

So go ahead and enforce certification now, but it’s not going to mean anything.


Check out my latest book, the essential, in-depth guide to performance for all .NET developers:

Writing High-Performance.NET Code, 2nd Edition by Ben Watson. Available for pre-order:

On Fixing Computers

As the family’s computer guy, I often get asked to fix, maintain, look at, improve, or otherwise modify my family’s computers over vacations. This Christmas vacation is no exception. While I was at my brother’s house he asked me to look at his computer–remove spyware, make sure everything was running smoothly. I updated Spybot to 1.4, ran Ad Aware, and removed a bogus web search toolbar. And that’s about it. All-in-all, the computer was running smoothly as-is.

A few hours later, I got called to look at it because a new error message was being displayed–by Norton Internet Security. The anti-virus e-mail checker was disabled. I think this is what happened: It turns out that running Spybot had turned on the Windows Firewall, even though Norton had its own.

On the one hand, I probably could have read the descriptions of the problems Spybot had found and realized what it would do. On the other hand, why did Spybot find a problem when there really wasn’t one?

Computer software, including operating systems and the applications we run on them, has gotten far too complex for us to understand the implications of even simple operations.

Everytime we install an application on Windows, it makes changes to the file system, the registry, the start menu, and more. If it’s a system utility, it can modify much more.

And don’t tell me it’s any better on Linux. You have to deal with the potential of mismatched shared libraries every time an application is upgraded.

There a couple of technologies that I see as easing some of these problems:

  • .Net – xcopy deployment (for the most part), easy to use XML config files. Drop in and play for simple apps. Many Linux apps work well like this, why not Windows?
  • System change monitoring – like MS Anti-spyware, it notifies you whenever a system change occurs and lets you stop it before damage is done. What if we had a system that allows you to set what kind of changes you want to be notified about? What if it monitored a much broader set of features than today? This method presupposes a fairly good knowledge of computers. I like MS anti-spyware, but I wonder what people thing when it brings up a window asking whether to continue with a registry change, or run a script. Most people simply dismiss things like that, which is unfortunate.

Check out my latest book, the essential, in-depth guide to performance for all .NET developers:

Writing High-Performance.NET Code, 2nd Edition by Ben Watson. Available for pre-order:

Navigating a Changing Universe

Something my wife and I were talking about the other day inspired me to think about navigating the cosmos. I don’t remember our conversation, but I do remember wondering

How can we travel to a star a million light years away if the universe is constantly expanding? It wouldn’t be there once we arrived!

Which led to the general question of navigation in the universe. Even though we’re many, many decades from making these ultra-long exploratory voyages, surely someone must be thinking of these issues now so that when we do need a navigational system, it’s already available.

There is a galactic coordinate system.

(Of course, throughout all, I’m assuming that humans can be put in stasis, that we’re sending probes, robots, cyborgs, or otherwise assuming we can last the hundreds or thousands of years to get somewhere.)

But despite my best efforts at locating an answer, I find none. Has no one thought about it? We think about it with respect to the moon and Mars, but what about shifting galaxies?

Food for thought…


Check out my latest book, the essential, in-depth guide to performance for all .NET developers:

Writing High-Performance.NET Code, 2nd Edition by Ben Watson. Available for pre-order:

Mr. Hatch and the Internet

Phil Windley, commentator, author and IT industry expert (and also a former professor and supervisor of mine) has a wonderful little statement about Senator Hatch.

I try to avoid posting politics on this blog, but I have to mostly-agree with Dr. Windley. I’ve long been very wary of Senator Hatch’s dangerous and lopsided proposals. He seems very much ignorant of the technical aspects of these issues and I think that he, frankly, shouldn’t be allowed to touch anything having to with the Internet or computers.


Check out my latest book, the essential, in-depth guide to performance for all .NET developers:

Writing High-Performance.NET Code, 2nd Edition by Ben Watson. Available for pre-order: