Wednesday, April 19, 2006

NoWindow

I figure that I should probably do something productive so I don't appear to always be Mr. Doom-and-Gloom. So, I'm going to review a piece of software I ran across recently. It is called NoWindow:

http://www.adsciengineering.com/tools/nowindow/

This application has almost no Google PageRank and I found it only by pure accident. NoWindow's purpose is to start any application without displaying any windows. It is the perfect tool for system administrators that have long-running scripts that sit on web servers. It relegates console Windows running things like PHP and Perl scripts to run hidden behind the scenes.

I'm actually surprised that there are no similar applications out there. I have actually contacted the author of NoWindow and v1.1 was the result of that contact. The author is quite a nice guy and is very willing to make modifications and accept patches for the application.

The amazing part is that the application is only a couple hundred lines of code. Very simplistic but gives a lot of flexibility to system administrators wanting to hide ugly looking windows and prevent programs from being accidentally terminated.

Hopefully this will encourage people to submit their software to me for review. I love experimenting with new software packages and providing feedback. Even though I am slightly harsh in this blog much of the time, I'm actually just a nice guy at heart :) This blog is mostly just my "let off a bit of steam" area.

Tuesday, April 18, 2006

World's largest database accessed by NSA

AT&T is a fairly well-recognized brand name. And with the recent merger with SBC and the uglification of it's trademark, it is even more recognized...mostly for the ugly-looking trademark. At any rate, there apparently has been some really underhanded stuff going down:

http://www.eff.org/news/archives/2006_04.php#004538
http://www.eff.org/legal/cases/att/

AT&T apparently stores over 300 terabytes (yes, terabytes!) of information internally at the company and has given access to the NSA to process the data. The NSA, for those who don't know, stands for National Security Agency - a federal agency that answers to the government but still has to abide by the law.

Essentially, the EFF is crying foul (and I agree) because just about everything done on the AT&T network is recorded in that database. One of two things should happen: AT&T should restrict access to just themselves or allow EVERYONE to access it (both the "good guys" and the "bad guys"). Privacy never really existed, so trying to create a false sense of privacy is a dumb idea. Allowing just the NSA to access the data is a stupid idea. The government is generally clueless.

As to the lawsuit itself, the EFF needs to make it large enough to hurt AT&T financially. A simple million dollar lawsuit is insufficient. Doing so, the EFF is making the same mistake Netscape made with Microsoft. If you sue someone for doing something stupid*, you need to make them hurt significantly where it matters most but not to the point that they go bankrupt. AT&T makes at least $43 billion dollars per year (net income/profit is $4.7 billion). The lawsuit should reflect the spirit of the Constitution and force AT&T to use their brains the next time they decide to do something stupid. Thus the lawsuit should be for $10 billion dollars and carry an injunction requiring AT&T to not fire nor cut anyone's pay for the next 5 years. Basically, the company would hurt as a result and take heavy losses for not using their brains but wouldn't go bankrupt. AT&T wouldn't disappear, but they will think twice about doing dumb things in the future and might even bring a moral core into other larger companies pulling equally dumb stunts. Where did common sense go?

* Suing over hot coffee is stupid - hot coffee is hot. Duh! That's the definition of 'hot'. The person who sued McDonald's lacked common sense. People who lack common sense are the sort of people who sue over trivial issues. Those who sue over trivial issues should be required to endure K-12 again...maybe they'll learn common sense the second time around. ("Depends on what the definition of 'is' is..." - Billy, you get to repeat Kindergarten...)


That said, I'd love to see what all is in that database and how it is configured. I mean, 300TB is nothing to sneeze at. There's gotta be some awesome stuff in there both in data and design. It is probably redundant and massively spread out across thousands of machines. Basically, a geek's dream come true :)

...until it crashes...then it becomes a geek's nightmare come true.

Tuesday, April 04, 2006

Windows Vista delayed to 2007 and here's why...

People are speculating why Windows Vista is being delayed - yet again. Jim Allchin said in February, "Vista is feature-complete, but the company [Microsoft] still has a lot work to do on it."

Now what do you suppose that means? Well, there are a few things I can think of:

1) Graphics work. The icons still have to be finalized - a lot of them haven't really been modified yet to use the shiny new Vista look-and-feel (i.e. 256x256 PNG icons - which are not compatible with most resource compilers).
2) Textual finalization. Choosing the right words for each dialog and UI element.
3) Documentation additions and changes.
4) Creating a consistent theme throughout every single area, nook, and cranny.
5) Move the Network Identification dialog to yet another obscure location. (Sorry, running joke - each version of Windows seems to move this dialog to a completely new and unexpected location requiring IT admins to play the digital equivalent of hide & seek).

6) Bugs. Zillions of bugs. In fact, the whole OS is one big bug waiting to be exploited by any software company's installer. See, Vista is relying on DirectX's Direct3D for the graphics engine (a.k.a Avalon). Traditionally, DirectX has been an unsupported component of Windows used by bleeding-edge technology such as video games and therefore has had limited exposure to average users. However, anything (including your favorite application's installer) will now crash Vista itself because of DirectX.

The thing is, DirectX is unstable. Take Valve's Half-Life 2/Counter-Strike: Source for example. That game went through roughly FIVE years of development and testing and has heavy dependencies on DirectX. Despite their best efforts, DirectX still freezes and locks up the computer every once in a while. This is the type of lockup where pressing the three-finger salute (Ctrl-Alt-Delete) doesn't do anything...or if it does (e.g. opens Task Manager), you can't see anything. Sometimes DirectX BSODs the machine (haven't played anything that did that for a while now, but it can still happen even with very well written games).

Because Avalon (the brand new graphics engine in Vista written in under ONE year) depends on DirectX, the OS itself is inherently unstable. The only way to fix the problem is to re-write DirectX. From the ground up. See, DirectX is one big hack on top of a bunch of little hacks. These hacks are directly affected by what gets installed into the system. Say, for instance, you use Windows Movie Maker 2 (WMM2) on occasion (e.g. once every 2 months) to handle creating your home videos. Then you install WinDVD or PowerDVD or some other DVD player software. Then one month later you try to use WMM2 and it crashes when you drag something to the timeline. Now, unless you are intimately familiar with the technology of DirectX, you would never realize that WinDVD might have installed ivaudio.ax - a DirectShow (part of DirectX) filter and that it is why putting a video clip on the timeline in WMM2 caused WMM2 to crash.

See what I mean? Simply installing an application has the potential to cause the OS itself to crash with no way to recover it. Microsoft is probably just discovering this...which means that this latest setback is only the first of many. Basically, unless they re-write the underlying technology that drives DirectX, Vista will never get out the door. If they don't re-write DirectX using good software design principles (e.g. see my book "Safe C++ Design Principles") and they still ship it anyway, it will be the Windows Me disaster times 10.

Now, it is important to understand why Microsoft is doing this in the first place. Basically, they wanted to make the first 3D vector-based OS to take out the Flash franchise that Adobe now owns (Adobe, unfortunately, bought out Macromedia prematurely and became Microsoft's new target). Since DirectX already existed, they decided to swap out the existing (and stable) graphics engine for DirectX. It probably only took a couple weeks to actually do the initial beta development to see if it was even feasible. Some idiot in management didn't realize the dangers of dropping in DirectX as the graphics engine and the idea for Vista was born! Is it any wonder that a number of developers left Microsoft? They saw disaster coming and didn't want to be a part of it. Bail while the bailing is good.

7) One last (and highly probable) possibility: Nothing is wrong with the internal Vista schedule. It is being intentionally pushed back because Microsoft has to get a little extra time to deal with the new Adobe/Macromedia merger. Originally, the threat to Microsoft being addressed by Vista was just Macromedia. So now the primary target for Microsoft has shifted to Adobe. Microsoft now views Adobe as the primary threat to the business and they have to figure out how to make Adobe hurt a lot (financially along with their user base). That's going to take some extra time the company hadn't been planning on. It is hardly coincidence that this took place shortly after the Adobe/Macromedia merger was announced. It gets the public eye away from Adobe back to Microsoft. Microsoft is intentionally causing people who need the holiday sales from Vista's release to throw a fit so the company gets free marketing and Adobe is forced to take the sidelines. Remember, marketing is (traditionally) more important to Microsoft than actually making a well-written software product.