Sunday, July 29, 2007

Lockheed: Who are you working for?

I have always been amused with Lockheed's corporate slogan: "We never forget who we're working for". Who the hell are they working for? My first guess would be their shareholders. The companies stock price is prominently displayed on the front page of their corporate web site. They are a for-profit company so they must eventually answer to their shareholders.

But we all know thats not the image that Lockheed wants to project. They want an altruistic image. They want to show us lay-people that they aren't a giant defense contractor which spends millions of dollars a year to buy our government. They want us to think that they are really here to help us out.

But their slogan doesn't make clear who they are "working for". Are they working for the soldiers? the American people? the pentagon? the president? This is just smoke-and-mirrors marketing at its best.

On the Lockheed website the slogan is displayed underneath their logo, but it isn't mentioned anywhere else. Their "Vision and Value" statement seems to put their customer (the pentagon) above all else.

I don't have a problem with companies which are motivated by their customer satisfaction, stock price, or plain old greed. If they want to serve the interests of the pentagon over the will of the American people then thats a worthy purpose, and they should explain it. However I do have a problem with idiotic slogans which are only intended to obfuscate the companies real motivation.

Update: I'm not the only one who has a problem with this slogan.

Monday, July 23, 2007

WebOS Farce

I've been playing around with a handful of WebOS's as of late. In the last six months they have sprung up like hot cakes. These web-gadgets are wonderfully cool and wonderfully useless. The value of having an internet desktop on top of your own desktop seems slight. I could only see it being useful for someone paranoid about privacy or who jumps around between dozens of computers. But even then, there are better tools for doing either job. And if you're paranoid about privacy you're hardly going to put all of your trust in some quirky WebOS company. Especially given their history.

I also don't understand why nearly all WebOS designers decide to implement their "OS" in their own proprietary AJAX/flash system. Every WebOS has to write their own text editor, calculator, web browser, file management system, etc. It seems very inefficient to rewrite all of those programs. Not to mention that the quality of the apps are much much worse then their desktop counterparts.

Instead of writing a whole new operating system with a closed set of apps, it makes much more sense to provide a web-interface to a real computer or virtual machine. The reason why Windows, Mac, and Linux are popular is because its easy to write software for them. If any WebOS ever takes off they are going to have to be able to run lots of software.

One implementation may be a WebOS sever which simply finds a user's virtual machine image and loads it up. It then launches a browser plugin like VNC or remote desktop. You then get access to a whole computer, not some mushy half-ass web-app.

All of these pieces already exist. All you need to do is hook them up. You could use the open source implementation of remote desktop, the open source virtual machine software, and then either find or write some kind of user and security management front-end. I'm kinda amazed no one has done it yet and called it a WebOS.

Saturday, July 21, 2007

Finishing Up Our Release Cycle

At my company we just finished development of our major product and are finally shipping the new version. I have to say that I'm pretty happy that the release cycle is beginning to come to a close. There is nothing more boring or soul-sucking then fixing bug after boring bug.

As would be expected from just about any software project, our project shipped about four months later than our originally intended target. I'm pretty lucky to work in a field which isn't extremely time critical. The four month slip wasn't met with huge disdain. Our product was almost three years in the making so four months wasn't the end of the world.

Honestly, even though we had many problems, I think our release went/is going pretty well. Early in the dev cycle we could have and should have written more validations, we should have tried harder to create a more detailed spec of what we wanted the product to do. However overall I'm pretty pleased with the result.

So when you read those crazy statistics about how 30% of projects fail and 50% have serious problems, I'm happy to say our project fell in the 20% success category.

Thursday, July 19, 2007

I'm not a resource

Has your manager ever referred to you as a "resource"? Its pretty demeaning. I'm an engineer, software developer, person, and/or asshole, but I'm not a fucking resource.

Friday, July 13, 2007

Why Functional Programming Languages Fail

I've recently been dabbling in Haskel. Its a purely functional programming language and I have to say that its pretty cool. I've also messed around with SMLNJ in college and enjoyed it.

The proponents of functional programming languages always say that they are easier to program in, more concise, and are less prone to errors. The detractors always say that they're slow. In response to that proponents of functional programming languages say they aren't that much slower and that most people don't care about performance anyway.

So why isn't everyone programming in a functional language?

My theory is that the proponents of functional languages have their heads up their academic asses. Everyone writing interesting and marketable code cares about performance. Why do you think Intel and AMD make so much money selling the latest and greatest silicon? Could you imagine implementing OpenGL, a JVM, a JIT, or a graphics library in a functional programming language? It would be unbearably slow.

Some argue that if you try hard enough, you can get Haskel to run just as fast as C. They are probably right. But I would bet that its easier to write really fast C code than it is to write really fast Haskel code.

Also with the advent of quality static analysis (which in a couple years I believe will be the default) many of the benefits of a functional programming language can also be found in C/C++.

For everyone else who isn't writing interesting or marketable code, there are languages like Python and Visual Basic. People who write in this straitforward and simple languages prefer very simple languges. Its much easier to understand 'if' and 'for' statements (and also structs and classes) than it is to understand foldr, monads, and polymorphism.

Today we're not programming in Haskel because most of us care about performance, and those who don't prefer easy scripting languages.

Open Source Bashing

Now I'm not an open source zealot or anything, but it pisses me off when the government comes in with their preconceived notions about what open source "is" and why its bad. Check out this report just issued by the FCC. Especially the sentence:
A system that is wholly dependent on open source elements will have
a high burden to demonstrate that it is sufficiently secure to warrant
authorization as a software defined radio.
I think that any software going into an SDR system should have a high security burden, open source or not. To just assume that open source code is crap is a bad move on the governments fault. I wouldn't be surprised if someone at Cisco was all buddy-buddy with some guy at the FCC and got this report issued.