November 8, 2004

Davis/Weber .NET Users Group is a go!

I just finished my E-mail exchange with Ben Miller. The Davis/Weber .NET Users Group is a go! We've got space reserved for the first year.

The first meeting will be Wednesday, December 8, 2004 at the Layton City Main Offices.

If you live on the Wasatch Front, spread the word. We've got a large capacity room scheduled, and I'd like to see if we can fill it for the first meeting.

November 6, 2004

"The Incredibles" Mini-Review

I managed to sneak out of the house today to see "The Incredibles," Pixar's newest flick, and while it's an amazing movie in its own right, it feels completely different from any other Pixar flick made to date.

The animation and voice acting are top-notch as always. John Ratzenberger has a nice cameo at the end. A pleasant 60's superhero vibe plays through the entire movie. Jason Lee plays a perfect villian., although I kept getting "Freakazoid" flashbacks whenever he was on screen.

The movie is rated PG, and I'm assuming it's because this movie contains more death and destruction than all previous Pixar flicks and director Brad Bird's previous magnum opus ("The Iron Giant") combined. (By the way, I stayed through the credits, and there wasn't anything extra...sorry.)

If you're a geek, this is already on your must-see list, but I have to get in this one little jab at Steve Jobs. For all of the power that Apple claims to have, I found it rather funny that at during the end credits, a little credit went up saying that all final rendering was done using Intel chips.

Patent #4,734,690 Prior Art

I just read through the patent claims for patent #4,734,690. This is the patent that was purchased from Tektronix by a Texas-based firm that decided to sue every single company that used any part of it. This patent covers a method of translating a 3D image to a 2D image.

The patent was applied for April 6, 1987 and was granted March 29, 1988.

What was really funny about all of this is that large chunks of the algorithm are identical to the algorithm used to do the exact same thing printed on pages 296-398 of "The Art of Graphics for the IBM PC" by Jim McGregor and Alan Watt, which was first printed in 1986 by Addison-Wesley Publishers Limited.

Because of frivolous suits like this, lots of people believe that the patent system is broken and should be overhauled. Personally, I believe that the patent system as a whole works with some minor issues, so any changes should be minor and specifically tailored to fix the problem at hand.

The biggest problem nowadays is patent houses buying up patents from other companies and using this newfound intellectual property to sue other people who had been using the patent for years. Easiest solution to this problem? Don't allow patents to be sold or assigned in full, only licensed or cross-licensed. The reasoning behind this is quite simple. Patents exist to protect the rights of the original inventor for a brief period of time.

Software patents are broken as well, but it's going to take some time to decide what the smallest change necessary to fix them will be.

November 5, 2004

One downside to VoIP

We've been trying to track down a performance problem on our web server lately. When we test the server using a crossover cable, our server can serve up about 400rps. (Our old server could only serve up 300rps, so that's a pretty sizable increase.) We can serve up more than that, but our testing machine gets CPU limited at that point.

However, the moment that the server touches the network, we're lucky to get 50rps. So, what is causing this massive drop in performance? Cisco QOS.

We recently went to a VoIP phone system. It's a lot cheaper to maintain than a POTS or PBX system, and it makes it easier for our public safety guys to record all of the lines that they are legally required to, as well as to retrieve those records.

Cisco's QOS has seven levels for the QOS, with the higher the level, the more important the packet. Voice packets are higher priority than data packets, so anything VoIP-related takes higher precedence than data requests.

For us, we made the decision to share the same network for VoIP and data. Due to the QOS stuff, the more phone traffic we have, the slower our system goes.

Our calls outside of the offices use up about 32Kbps, but calls inside the offices use 160Kbps. Each phone also uses a chunk of bandwidth every 30 seconds that there is no call. If you are planning on migrating to VoIP and want to share the same fiber, do some load testing on your network and ensure that any necessary business services will not be affected by the addition of several high-load devices.

Government and .NET

I've been thinking a lot lately about the role of government from a technical perspective.

Internally at the city, we run Windows. We have a massive amount of software that needs to be written. We also have a very small development staff. Because of that, we picked the .NET Framework for our development needs. Because we look in the Framework before reinventing the wheel, our average development cycle on a tool is about eight weeks.

However, we've been preparing to release some software to the public, namely a real-time mapper component for our town. I developed the core component in five days in my own time as a lark, but it worked well enough that we've integrated the component into almost every project here in the city. And we're releasing it for Windows only.

I can hear the open-source zealots screaming, "Why are you ignoring your Linux users? Why are you ignoring your Macintosh users? Why are you ignoring your FreeBSD users? Why are you telling people that in order to use your service, they have to pay money to a monopolist, etc., etc." I can explain quite easily.

First, our stats. We use AWStats to gather statistics on the visitors to our website. While not an ideal way to gather operating system usage statistics, given that we are a local government entity, it is safe to assume that we will be getting an accurate cross-section of our computer-using citizens.

As of 8:09am this morning, Windows was at 95.9%. Macintosh held 1.1%, and Linux and FreeBSD were both on the list with 0.0%. (Update: This means that Linux and FreeBSD each had only 1 visitor. Due to the level of traffic on our site, the single visitors were not enough to be statistically meaningful.) The remaining 2.8% are search engines and tools that we use internally.

Now the zealots are going to yell, "What about Mono? Why couldn't you write the tool in Mono? That way, you'd also be supporting a Utah company (Novell)." We code in Visual Basic .NET here at the city, and until Mono has their Basic compiler functioning, the ROI isn't there for us to port it to Mono/C#.

Now the zealots are going to yell, "This is a vicious cycle. By only releasing software for Microsoft products, you are reducing our ability to compete, because when people see you release software for Microsoft products, they'll buy more Microsoft products, etc." Let's say I did release a Linux version. The Mac guys could make the same argument about me utilizing the x86 architecture. "It's not fair that I don't also support the PPC..."

As much as we would like to believe that government exists to ensure the rights of all citizens, occasionally governments have to not serve a portion of their community. We have a portion of our citizens who do not want flouridated tap water. We have a majority who do. In this case, we are serving the majority. The minority who do not want flouride can go buy bottled water if they want to.

It's the same with our software. We are serving the needs of the majority. Those in the minority can buy other mapping packages if they want to, or use a free service like MapQuest.

Government is like the original Ford. You can have any color car you want, as long as it's black. Once every election cycle, the people as a whole make their choice. Our role is to fulfill that choice. As for software, people make their choice with their pocketbooks. When 95.9% of your customers are telling you something, you listen.