AnandTech continues its tradition of exceptionally thorough articles with thirteen pages of coverage on the much-hyped Cell chip. Anand cuts through the hype to focus on what architectural decisions give the Cell its unique processing capabilities -- and limitations. Highly recommended.
Basically, the Cell chip consists of a standard PowerPC core, nine very simple cores with 256KB each of local SRAM, a super-fast 25.6 GB/s memory controller by Rambus, and an unbelievable 76.8 GB/s IO bus. It's an innovative approach that should make the Playstation 3, Cell's primary reason to exist, a console to watch over the next year. The big question yet to be answered is whether games will be written to take full advantage of the parallel processing capability of those nine extra cores.
Even though it's highly doubtful it will have much immediate effect on the PC industry, the Cell chip is likely a glimpse into the multi-core and special purpose core future of microprocessors.
Here's an interesting article about aspect oriented programming (AOP) on O'Reilly's OnJava.com. The first page in particular gives a pretty good background that should answer the questions, "What is aspect oriented programming?" and "Why would I want to use it". Though these questions seem pretty basic, this is the first AOP article I've read that actually addresses them concretely and without claiming the programming world is going to be revolutionized overnight. Now I feel like I understand some of what the fuss is about.
AOP is about applying common behaviors to pieces of code. .NET developers will immediately recognize that some attributes (such as Remoting's OneWay) work in an AOP way already. The attribute changes the behavior of a method without requiring any changes to the code within the method. The article's example of using an aspect to apply stopwatch timing was a great example of a behavior you'd want to be able to easily add and remove from arbitrary methods.
I was concerned, however, that the aspects don't get automatically applied. A separate XML file must contain a mapping for each method to which an aspect is applied even though the aspect attribute exists on the method's source code. This setup seems pretty fragile and cumbersome to maintain, but perhaps other AOP frameworks don't suffer from the same issue.
Overall, an interesting article that should at least enable you to speak intelligently about aspect oriented programming next time it comes up.
I saw on Tom Peters' blog that March 15 will mark "Television Freedom Day" this year. I'm shocked that the average American spends the equivalent of 2.5 months worth of time per year watching TV! That's simply amazing and will certainly make me re-evaluate my own television watching habits.
Even more startling is the amount of time per year that I figure we watch commercials. Since each hour usually contains from 18 to 24 minutes of commercials, 35% of time spent watching TV is actually spent watching advertising. That equates to 26 days per year of watching car dealers, beer commercials, Oxy Clean, Craftmatic adjustable beds, sultry ads for ED pills, and promos for other shows.
One thing I want to know is whether a Tivo, Windows Media Center, or similar DVR device can help eliminate this huge waste of time. Being able to skip commercials would definitely be great, but does it actually result in less time in front of the TV? Or do Tivo owners just replace those 26 days of commercials for 26 (or more) days of TV shows?
Considering that the average American only takes 11 vacation days per year, wasting 26 days watching commercials seems pretty stupid. I guarantee no one would willingly choose to watch commercials instead of going on vacation or doing something else worthwhile, but that is exactly the choice our collective television addiction is making for us.
If you ever wonder why you never seem to have enough free time, maybe it's because you're handing it all over to the TV. Think of how much you could do if you suddenly had an extra 2.5 months per year! I know I'll be thinking of that 2.5 months next time I pickup the remote.
That's right. I finally created a real home page to replace the "click here to see my weblog" page. The new home page will complement, not replace, my weblog by giving me a spot for less frequently changing content. I wanted a place to share software, photos, or links without having them scroll off the bottom of my weblog into archive oblivion.
This isn't the first JoshChristie.com home page. Some of you may remember "JoshChristie.com: The next dot com sensation" which was the name of my site during college and, as the tongue-in-cheek name suggests, during the dot com boom. That site used ASP, a VB COM middle tier, and an Access database to share lots of photo albums, info about me, my class schedules, my resume, random quotes, and polls. The layout of that site was created using tables, nested tables, clear gifs, and more tables. It eventually degenerated into a convoluted HTML and ASP spaghetti code mix that was hard for me to maintain and update.
This time around I'm trying to stick to a pure CSS diet without tables, clear gifs, and other such layout tricks. This goal has required me to break out the old DHTML book on several occasions -- I'm thankful I can finally ignore all the sections comparing IE 4.0 and Netscape 4's lack of support or mangling of various CSS properties.
Overall, I've been impressed with how nice a pure CSS layout can be. Once I got the hang of it, I felt like I had much more control over how the page looked. It was certainly much easier to make changes with CSS than if I had to update a bunch of nested TABLE and TD elements. The HTML is in fact so simple that this page might turn into my first XHTML experiment, too.
There's not much content posted yet, so let me know if there's anything in particular you'd like to see. Photo albums, .NET code samples, hobbies, AVR microcontroller info, more pictures of me with my head in the clouds?