Saturday, December 30, 2006

I came to a conclusion about Mac pricing just now

For about a week, a friend and I have been debating in email the finer points of Mac pricing vs. PC pricing. I argued that PCs are commodity machines and will always be cheaper unless the configuration is exactly what Apple configures them at, since they have control over their own volume pricing. He argued that Macs are better price for the quality. I argued that no one pays full price for Dell. Blah blah blah, yada yada yada.

Then I just realized something: Macs should be cheaper. That's right! They should be cheaper because you can't do as much with them as you can with a PC. They're not the standard. Macs are not the platform that 90% of the world's custom software is written for, or run office on, or play games on. They don't even come with a 2 button mouse or Windows pre-installed.

According to my calculations, about 73.4% of my daily work can't be done on a Mac. At home, 26.7% of my leisure time can't be done on a Mac (games and Xbox media connect). Averaging those out, I should only have to pay about 57.5% for a Mac as I would for a PC. But does a Mac cost that? No. Actually, it costs nearly the same or more as most PCs I'd buy. Ergo, the Mac is not worth it. Quod erat demonstrandum.

ps - Most of this is meant to be a joke, but it is true that I feel I'd get more done with Windows.

Friday, December 29, 2006

Just say "no" to Java

I feel like a free man: I've uninstalled Java from my machines. I'm not using Eclipse anymore for editing Python, and I sure as hell don't want Java applets running in a web browser.

Most of all, I got really tired of Java continually bugging me for updates. Why is it that anyone who installs software on my machine feels the need to install their own update manager? Adobe, Real, Sun, Flash. Microsoft is the only justifiable one, IMO. Worst of all is InstallShield, which is a Macrovision trojan horse that's difficult to get rid of after you install any recent InstallShield software.

Good riddance! It will be interesting if and when I'll install Java again.

Friday, December 22, 2006

Shout out to EnvironmentCalifornia

I'll give this shout out just because the guy seemed like a nice guy.

Sitting here watching Stan Winston's classic film Pumpkinhead in Hi-Def, and someone knocks on the door.
  1. Whenever someone comes to our door, i'm suspicious in general because hardly anyone ever does that, including our neighbors.
  2. Whenever someone knocks on our door instead of ringing the bell, they are definitely not someone who knows us.

Anyhoo, the guy was representing this EnvironmentCalifornia organization, and he started out with "I'm with Environment California, and we're fighting for clean energy...".

Now, if you're for solar and wind power, don't ever pitch me that way. Living in San Francisco, I've been pitched with that line many, many times and I have learned to come back with the immediate response "Oh, you mean nuclear power?" Of course, this caught him way off guard, just like everyone else who I do this to.

For some unknown reason, "clean" power advocates don't seem to include nuclear power. He responded with a bunch of hemming and hawing and then said something about the nuclear waste, which I replied "Oh, actually if it wasn't for the Clinton Administration cutting the IFR project, that wouldn't be an issue." He didn't know what to say for that, so he talked about the solar effort that they've pushed through in California.

For that, I commend them. I'd love to have solar power because solar power and electric cars = freedom. Imagine if you could get all the power you needed without having to pay any bills, having to gas up your car, etc. That, my friends, would actually help Democracy -- no more pressure to have cheap gas. No more fighting for oil, pollution is low.

That said, I don't really want to cover New Mexico with solar panels to accomplish this, because it doesn't help the freedom aspect and is a huge environmental risk. Therefore, I'm pro nukes. Hopefully some environmentalists will get behind that, and the guy at my door just now had an open mind about it at least. Kudos to him.

Thursday, December 21, 2006

Donald Trump v. Rosie O'Donnell

It's probably no surprise that I hate Rosie O'Donnell. Most people do, I think.

But Donald Trump's comments after Rosie called him a "snake-oil salesman" are just classic. I guess when you have $5b to your name, you can say whatever you want. If you watch one stupid video on YouTube this year, make it this one:

Actually, this is another good one (unrelated to Trump and Rosie). My wife thought it was dumb, I think it's pretty well done.

Tuesday, December 19, 2006

"Search while you type", please stop implementing this

I'm so tired of everything having to be all Javascripty and do searches while I type.  I just don't need it.  Why?  Because it makes it that much slower.  Let me type in the entire word, then you can search.  Unless your search engine is so ungodly fast that it will return relevant results in 1ms, I don't want this feature.

The thing that makes me feel this way is Office 12.  It insists on searching for everything while you type, and is much, much slower as a result.  Now I read on Thurott's blog that Thunderbird is doing something similar.  When will it end? 

Monday, December 18, 2006

I thought today, maybe I should switch to Mac

Tim's going to rip me for this post.

One of my co-workers recently bought a Mac laptop that he brings to work.  Once in a while we discuss a few things about it, and generally we all give him a little bit of crap for owning a Mac.  We're all a bunch of Windows geeks and Linux and Mac is just unthinkable for most of us.

Well, yesterday's WTF/E post got me pretty down about Microsoft's direction right now.  I think WPF is actually pretty cool.  I think ultimately something like it is going to take over for UIs (be it WPF, Flex, OpenLaszlo or whatever).

But let's look back in history again.  In 2002, I bought my copy of Visual Studio .NET the day it came out.  It's almost 2007 and we still do not have .NET out there as a realistic platform for developing consumer Windows apps.  Vista will fix that, but how long is it going to take for Vista to have a meaningful amount of uptake?   In 2004, 50% of Windows users were still not running XP.  That's right:  3 years after release, half of the people out there were still running W2K, 98, ME, 95, NT 3.5.1, NT 4.0, whatever.

Granted, XP was not released during the go-go years of PC buying, so maybe that slowed its uptake.  Or is it still going to take 3 years for Vista to have a majority of the installed base?  Or longer, due to different hardware requirements of Vista vs. XP at the time (XP was not more demanding on hardware than Windows 2000)? 

The thing that went through my mind today after talking to my newly anointed Cult of Mac™ coworker is "Would it be better doing my hobby coding on a Mac?  Would I be pulling my hair out less?"

Let's look at the facts:

  • API is changing less... more on this in a second
  • Apple at least isn't doing one thing with one hand and something totally different with another (well, except for that Java thing they dumped).  Microsoft can't seem to decide if they want C++ or C# to be their main language for app development mving forward... and that debate's been going on for 5 years.
  • Has a hobbyist following, so software I develop might get more attention than if it's for Windows, where basically no one gives a damn.

I had done some Mac OS X development while the OS was in beta and just after release (pre-.NET .. after .NET came out, it was all over for that phase).  However I had done some NeXT development back in the day and enjoyed it a lot.  Nothing serious, just messing around for the most part.

The first thing I Googled was "Cocoa vs. Carbon."  I was wondering what API most Mac developers are using these days.  It turns out (after checking with another coworker as well), that there is no good answer to this.  It's mostly religious right now.  You either code in Objective C with Cocoa or you write in Carbon with C bindings.  There are no C++ bindings to the Mac API and Java is deprecated.  Ok, that all kinda sucks.

Then I thought about this a little more.  Actually, if any platform out there has more legacy baggage right now than Windows, it could be Mac OS X.  Cocoa uses Objective-C because that language was chosen in 1986 or whatever by the NeXT team.  To this day, they haven't been able to shake it for a mainstream API using C++.  Ditto for Carbon.  Carbon is mostly a legacy API from the Macintosh Toolbox days, and just has C bindings.

I guess the point is, even though Microsoft seems really confused right now, they have some good ideas.  Apple doesn't seem confused, but I just don't see where they're going in the future.  They deprecated the language (Java) I'd probably want to actually use for coding a Mac without a pure C++ API.  Are they planning on having their own language for programming their platform (Objective-C) forever and ever?  It seems absurd.

I guess the end result of my thought experiment is that I'll just stick with my Windows and develop for WPF in the future.  I don't really see the upside of going to a Mac.  Seems too legacy.  Even Linux has less legacy issues in a lot of ways.  I'd like to see what Apple has up their sleeve in the future, but that's about it.

Sunday, December 17, 2006


I'm working on a Windows Sidebar gadget for a friend's website, just out of interest of having that gadget available to myself on Vista. In doing so, I wasn't so happy with the abilities of HTML/Javascript to do what I wanted graphically, so I decided to take a look into WPF (a new feature for Vista).

Turns out that just the other day, Microsoft released their "Flash killer" known as WPF/E. It runs on Mac and Windows without the .NET Framework. Interesting.

Well, I'm having a hell of a time trying to get it to work at all for my needs. I'm having to embed XML in script tags in HTML to get it to show just a black box. And even then, I can't seem to get it to draw an image.

So I went around searching on the MSDN website and came across this thread. I decided to attach one of the posts by "Daryl" to my blog just in case this post or forum ever went away. This guy absolutely hit the nail on the head in every way when it comes to what .NET developers are asking about Microsoft right now. For about 5 years, they've had the technology to put all of these dorky web applications out of business with .NET, and haven't done anything with it. WPF/E seems like they again have missed the mark on what the market really wants.

I'll shut up now and quote Daryl's post. It's excellent. The rest of this post is quoted from Daryl, I didn't write it.

Barak Cohen wrote:

Thanks for this feedback. mini applications is a scenrio we look into. It would help us if you an others will try to drill down in to the scenarios you envision and prioritize you needs from the platform.

It's good to see Microsoft people hanging around public forums and maintaining their own blogs. I'll offer you some free advice, which you didn't ask for: people on the internet will give you brutally honest feedback which your co-workers and subordinates would never dream of. People on the internet don't have to eat lunch with you, they don't have to sit through meetings with you, heck they don't even have to deal with the tiny, uncomfortable moment when you pass in the hallway going opposite directions.

And in that vein...

"Mini applications is a scenario we will look into"? I guess I don't understand what the point of WPF/E was supposed to be. A lot of people (myself included) thought that the whole reason you would port WPF to different platforms was for writing applications, which would then run on those different platforms.

WPF, everywhere. What do we do with WPF? We write applications. With WPF/E, those applications can run everywhere -- even on my mobile device. Simple enough.

Now we get our first look at it, and there are no UI controls? What are we supposed to do with this? It plays some media files, and it has drawing primitives. There is absolutely nothing in the December CTP which Flash hasn't been doing since 1996.

If this is all WPF/E is going to do, you may as well throw it away. Flash has a ten-year head start. It has thousands and thousands of developers. It has full-featured authoring tools available today (including some free ones); it has a UI library (Flex).

So when I hear MS people saying "mini applications is a scenario we will look into", I think to myself "Look into? What the heck have you people been doing since PDC'05? You disappear for 18 months and come back with a simple media player that doesn't even understand mp3's?"

The "scenarios I envision", Barak, are all the same scenarios which people like me have been paid to develop since before .NET 1.0. They're some of the same scenarios people currently use Flash for, despite Flash being a *** to develop with. You know, applications. Chat clients, picture sorters, a check register, that cool thing on my bank's website which lets me create a single-use credit card number, minesweeper, my SSH client...

Applications. The stuff we run on our computers every day. The stuff google tries to imitate using Javascript and DHTML, with limited success. It's hard to code functional applications without things like buttons and menus and drag-and-drop and file dialogs.

This is so obvious I'm having a bit of trouble typing it, but here it is in black and white: Take XAML AND .NET, which are good, and use them to replace HTML AND JAVASCRIPT, which stink. Call the whole thing WPF/E. Is that clear enough? When you browse to a site and instead of getting index.htm you get index.wpfe, your job is done.

I don't just want to embed an island of XAML in my page, I want to use <GridLayout> to layout the whole page because even with CSS, getting HTML to layout and resize intelligently will drive you crazy. And I want the content of that page to be surrounded by <TextFlow> tags instead of <div> tags. Am I being clear?

I think a lot of .NET programmers are honestly a bit perplexed by Microsoft right now. There's this whole new XAML paradigm for coding applications. A declarative UI model -- it's certainly a big shift away from the code-generator approach of Visual Studio 2005.

It's going to take a lot of time and work to learn a whole new way of building applications. I find WPF very interesting, because I'm a geek. But my boss doesn't pay me to find things interesting. As a professional developer, I'm wondering what my return on investment is going to be if I spend all that time learning this new XAML way of writing applications.

Up until a few weeks ago, I had assumed that one payoff was going to be greater reach. I mean, the whole point of creating a markup language for your UI design is that you can push it out over the internet, right? I thought if I learn XAML, I would be getting a native-app language and a browser-app language at the same time.

But lately I've noticed Microsoft talking more and more about AJAX as a cross-platform tool, and meanwhile XAML seems to be rotting on the vine. Case in point: there are about a hundred XAML clocks out there (what is it with XAML and clocks?). Yet not one of them can run in my Vista sidebar, because Microsoft went with HTML and Javascript for gadgets. What's up with that? WPF/E seemed like a brilliant play for Microsoft, but now I'm hearing that the ability to write applications is "something we'll look into"? If it's not for writing applications, what is it for? More clocks?

Make no mistake: Cross-platform application development is coming. If it's not WPF/E, it will be Flex or SVG. People won't settle for anemic, HTML-based applications once there's something better. I'm enough of a C# fan that I hope you guys make something of WPF/E. I'm actually quite intrigued by XAML.

But I can tell you this: When the people at Adobe look at WPF/E in its current state, they smile. And when they see people from Microsoft saying "applications are a scenario we will look into", they laugh out loud. I think you really had them scared for a while.

Tuesday, December 12, 2006

Carrier Landings

I'm watching a Discovery Channel show called "Anatomy of the FA-18". It's a great show, but I have a question: why do we still have our boys making aircraft carrier landings by hand? Isn't this something that can be computerized by now? You'd think it would be a lot easier to get a computer to automatically land on an aircraft carrier than to train our pilots to do it.

Actually, why do we have our guys in the plane at all? Shouldn't they be able to fly these planes remotely by now? It's 2006 already. From 200 miles away, the control latency would only be 2ms. Seems pretty reasonable to fly from that distance, or does it?

Monday, December 11, 2006

I don't want to hear about the '72 Dolphins anymore

Is there a lamer sports story than the '72 Dolphins and how, whenever a modern team nears perfection, we hear about their undefeated season?

The '72 Dolphins only won 14 games. These days, teams play a 16-game season.

The winning percentage of their opponents that year was an abysmal .364. The best team they played were the NY Football Giants, who were 8-6.

Oh yeah, there was no salary cap.

So basically the '72 Dolphins going undefeated is about as meaningul as the 1942 Bears going undefeated: it's not meaningful. It's a different era with different players and a much, much tougher environment to try to do it in.

Friday, December 08, 2006

Getting annoyed with ad-driven websites

Once in a while, there's a site that doesn't care about advertising (like this one).  Most of the time, every blog post you ever see referred on Digg or Slashdot is covered with ads.  How lame.

What's really lame is when sites get a "facelift" that is purely designed to show you as many annoying ads as possible.  For example, Yahoo TV Beta.  I'm thinking, "Great, I can go look up stupid movies I'd like to see."  Wrong!  The site narrows down the listings to 10 shows per page and makes you click through enumerable pages.

You see, if they actually cared about you, they'd make it with all 200 shows called "Santa Claus" on a single page.  But no, you have to click through 20 pages to see all of the listings, which are in a random order -- with no less than 10 ads per page.

What's really ridiculous are tech reviews.  All of these sites out there like HardOCP or AnandTech are designed to make you click through as many pages as possible just to see what the heck they think of the product.  Hence, showing you as many ads as possible.

Once again, I'm on the prowl for a good ad blocker for IE 7.  Anyone have any to recommend?  Firefox's adblock works pretty well, but I don't use FF anymore.