Archive for February, 2007

Random BGE & Smoker Stuff.

Wednesday, February 28th, 2007

A friend, MacDude, asked me for some details on buying a Big Green Egg. This spurred me to update my So you wanna buy a Big Green Egg? article with information I have learned since I wrote that early last year.

If you are considering the purchase of a BGE or kamodo style ceramic cooker, go have a read of said article as it might help.

In other news, Ben Holt has completed the documentation of his Terra Cotta Smoker. It is quite well constructed and he has done some great cooks on it. Next up? He is going to hack together some kind of simple temperature control system that can be used to do longer term cooks without having to futz with the cooker every 10 to 15 minutes. Nice hack!

Update: In a post responding to this one, Auroralux indicated interest in constructing a terra cotta smoker. Specifically:

I know we already have the biggest part, the large terra cotta pot, because we purchased it several years ago to help heat our oven evenly for making roasts.

Neat. I hadn’t heard of doing this, but it certainly sounds like a good idea. Anyone have any more information?

67% of Wii Users Prefer Blue over Red

Friday, February 23rd, 2007

Did you know that 67% of Wii users prefer the color blue over red?

And while it is a relatively even preference across the country, Mississippi and West Virginia have a higher percentage of those who favor blue over red?

Or that 69.5% of men prefer the color blue while only 61.6% of women prefer the color blue?

Finally, just about 70% of the people asked correctly predicted that blue would be the favorite color?

Of course, for many people that might read this, their first question might be “Why the hell does bbum know this?”

It is because of the The Vote Channel which Nintendo quietly released a little over a week ago.

What an absolutely brilliant potential revenue generator. Here is a fun little bit of user participation software that lets users both express their opinion and — to add a little bit of competition — predict what everyone else might think.

For worldwide polls, the vote channel also breaks down results by gender, nationality, and accuracy per nationality.

With 1.4 million units sold in North America through January-ish 2007, there is a potential of a little over 8 million voters as you can have up to six Miis per unit “registered” to vote. Given Nintendo’s success outside of traditional gaming markets, the potential set of participants is probably a more representative and, even if only 10% or 20% of Wii units participate, larger sample size than the typical opinion polls found in the news or market research.

And we are only around 3 months into the Wii’s presence on the market. Given the sales figures, it wouldn’t be surprising to see 10 million units in the global market by year’s end. Optimistic? Sure.

That is one hell of an information resource. How long until Nintendo offers pay-for-placement questions? And Nintendo has already created a virtual concurrency and virtual marketplace. That is, Nintendo already has a currency that could be used to reward users for participation.

Exactly how much would a company pay to have access to such a potential market research tool? And how many users might take it a whole hell of a lot more seriously if they were rewarded with virtual console purchase points for participation?

Sign me up!

Update: Roy says that he doesn’t think that Nintendo is going to ramp up manufacturing to be able to reach a total of 10M units sold into the North American market this year. I agree. 10M into the NA market is way too high and I added the word “global” to the sentence above to make it clear what I intended.

10M in the global market is still an optimistic number. But there are a number of indications that it is not unreasonable. Notably, Wii’s ongoing sales performance is incredible strong. It has carried through sales numbers beyond the holiday season that are unprecedented.

A Merrill Lynch analyst is predicting that 30% of US households will own a Wii by 2011.

I also find it coincidentally interesting that Nintendo has stopped manufacturing the GameCube (not that the GC ever achieved the rabid popularity of the Wii).

Given the wild success of the Wii — the success well beyond the most optimistic estimates of Nintendo — I fully expect that it will take Nintendo a while to fully address the much larger customer base than expected.

A good problem for a company to have.

Tequila Los Abuelos now available in South Bay / Cupertino area!!

Monday, February 19th, 2007
Tequila Los Abuelos

Tequila Los Abuelos is now available at Coach House Wine, Liquor and Deli at the corner of Prospect & De Anza right at the border between Cupertino & Saratoga.

Los Abuelos is 100% Blue Agave tequila made in the traditional fashion. No flavoring, no oxygenation, nothing but 100% pure Agave tequila!

If you are looking to add a tequila to your bar that will blow people away, find Los Abuelos! (Josh busted me — it said “our bar”. Maybe I’ll try mass hypnosis next.)

Los Abuelos is a boutique brand. I was introduced to this fine tequila by Guillermo Sauza, the fifth generation son of the Sauza family. Yes, that Sauza family.

Guillermo has restored his grandfather’s original distillery to make Los Abuelos (which means, literally, “the grandparents”).

Los Abuelos uses stone ovens to roast the agave, a tahona — large stone wheel — to crush the roasted penas, actual wood fermentation barrels (very very rare in tequila making these days) and, of course, wood aging barrels.

The end result is an amazing product. I have raved about it on my weblog before.

Distileria La Fortaleza

It is an incredibly smooth and drinkable product. I would highly recommend that you start with the reposado as it seems to most distinctly highlight the quality that has resulted from Guillermo’s attention to detail and respect for tradition.

I have more photos from Distileria La Fortaleza that I will post along with a full write up. The above photo was actually taken inside of the caves at the distillery that will eventually be used for aging the tequila. When I visited, we were invited into the cave to enjoy some music and, of course, some Los Abuelos tequila!

Wii: 480p output problems are most likely a software issue hardware issue

Sunday, February 18th, 2007

Update2: I talked with Nintendo today. Very friendly customer support. The customer service dude asked if I had another TV to hook it up to. Uh, no, only one 1080p, component video capable, monitor in the house. He also asked if I had tried the regular video cables as it might be a scaling issue. Nope — but I have a number of other video sources that are scaled to the same or greater degree without problem. That was that — shipping label on the way. Clearly, this is not an uncommon problem. Nintendo will cross ship if you don’t have data on the box. If you do, it needs to be shipped in to have the data transferred from the old machine to the new, presumably so that Nintendo can activate the data & games on the new box.

Update: Consensus indicates that this is a hardware issue with my Wii. Furthermore, it seems to be a not terribly uncommon failure mode. I’ll get in touch with Nintendo and update this post when I get a response. For now, Paper Mario has my attention– what an awesome game!


I ran across a post on Engdaget discusses numerous reports of problems with component video output from the Nintendo Wii.

Our Wii is connected to a 46″ Sony Bravia XBR-B2 TV (which, btw, runs Linux internally). We picked up this particular TV because it makes an absolutely gorgeous monitor for a Mac Mini (which does a decent job of scaling– not up-converting or re-sampling or whatever, as far as I know — DVDs) and, in theory, for the Wii. That, and it has a zillion inputs, including a couple of S-Video, a composite video (remember those?), and an HDMI with separate audio input.

Wii UI Dot Trash

While I haven’t [yet] experienced the black outs during Zelda or the Wii Console interface, I do see a lot of noise in the image. It is almost like the textures aren’t quite connected correctly and a handful of pixels here and there are all washed out. In Zelda, nothing is sharp and the colors are all washed out.

In the screenshot to the left, you can see a vertical column of dots in between the YES and NO buttons. This is pervasive throughout most of the standard UI presentations on the Wii.

But I think it is a software issue. Why? Because game cube games are so frighteningly bright, sharp and flawlessly displayed at 480p that I’m tempted to wear sunglasses (actually, turn down the brightness on the display). Seriously. Game cube games are just flat out gorgeous. I’m sure I could have the same experience with the game cube itself if I were to grab a set of component cables for it. After all, the Wii is just a souped up game cube with a lot of networking and wireless features tacked on.

Also, the newer games look better. Wii Play, for example, is rendered in the same style as the launch title Wii Sports. But Wii Play is sharper and has less aliasing at the edges of stuff.

Zelda ScreenCap with Render Trash

I hope that Nintendo will eventually release a software update to fix the blown pixels in the main console UI. It is unfortunate that Zelda will never be updated, but the game is so great that the visual artifacts are more annoying that a total joy killer. To the right is a screenshot of general game play (opening credits, in this case). Here is a closeup of some dot trash in part of a castle wall.

Actually, it appears that one of the most recent software updates has made the problem less prevalent in standard UI components. It may also simply be because it added a channel to the main display, thus causing a slightly layout change. Zelda isn’t any better, which isn’t terribly surprising. I do wonder if Nintendo has a mechanism for providing patches for games on disc?

C: Portable Macro Assembler

Friday, February 16th, 2007

This post’ll be all over the map — there has been a lot of traffic on this subject. This stuff is particularly interesting to me. I have been banging out object oriented code for more than 20 years in a variety of languages — Obj-C since 1989. Thinking about this stuff is my day job, too. That rocks. Makes me really happy.

Daniel Jalkut recently wrote a post entitled “C is the New Assembly“. I’m not entirely sure what rock Daniel has been under for the last 20 years, but I’m pretty sure that C has always been considered to be little more than a portable macro assembly language by many folk for a long long time. I certainly remember such analogies being made when I first learned C.

Well, when I first learned C in a non-perverse environment. I learned C writing hypercard plug-ins. Yes, I learned C writing plug-ins for an application that only offered a Pascal API in an environment where pointers were often really pointers to pointers (handles) where the pointer would occasionally move out from under you. Fortunately, I was too ignorant to know that I was learning C the hard way.

But I digress. C has always been in the role of the “fallback for performance reasons” solution as soon as developers started writing significant bodies of code in other languages. Perl based CGI always had random modules written in C. Java has always had a painful native interface. C++ developers have long written chunks of code in C (though that has grown less common over time). Even the scripting languages all have supported dynamic loading from the beginning that has always been used for both accessing native functionality and for implementing “performance critical” stuff in native C.

Update: Daniel commented on this post:

I compare C to assembly completely apart from its rather coincidental technical approximations to assembly. I meant it on a much higher level. On a level where I hope in 10 years to be saying “Ruby Is The New Assembly.” It’s a coincidence that C is a relatively good alternative to assembler for producing highly optimized code. It’s still the case that C programmers “drop into assembler” when necessary to squeeze extra performance out of a particular platform.

Python is “close enough to C” that I suspect somebody in 5 or 10 years could say “Python Is The New C” and have a bunch of critics chime in “it’s been the new C for 15 years!” Well, not in my universe it hasn’t.

Actually, I think C developers dropped into assembly to squeeze out extra performance (or do stuff that wasn’t possible in C) more often in the past than they do now. The reasons are two fold:

First, fewer developers can effectively develop in assembly anymore. Not because programmers are dumber these days, but because writing assembly on modern CPUs is One Hell Of A Lot Harder than it was back in the 6502 or 68000 days. As well, modern codebases tend to be more portable even when only targeted to one manufaturer’s CPU — programming for a G3 vs. a G4 vs. a G5 could require very different low level code, if you were trying to eek out every last bit of performance.

Secondly, optimizing compilers have improved by leaps and bounds over the years. In particular, the optimizing part of the compilers are truly amazing chunks of linear algebra that do all kinds of subexpression optimization, execution reordering, and all kinds of relatively non-obvious tricks to make the code go really fast on modern processors.

Rare is the programmer that can effectively write assembly code on a modern CPU. Rarer still is the programmer that can write assembly code that performs better than that generated by a good compiler.

I agree with Daniel. I sincerely hope that we get to the point where “drop into primitive python” is an answer to various problems we are having in our highly abstracted programming environments of the future.

To get there, I think we will first have to get past treating software development like a specialized word processing exercise.

Daniel pointed to a post by Jesper called Take it to the Bridge that discusses a podcast with Gruber where he discusses the bridging technologies in Leopard.

Daniel said (which I ran into before I saw Jesper’s post, so I’ll respond to it here prior to Jesper’s post because, well, that was how my brain wen down this particular path):

He suggests that a typical developer will write everything in Ruby or Python, and then do performance testing. Anything that needs a speed-up can be redone in Objective-C. You know, that “slow” dynamic variant of C 🙂

This analysis is foreboding, because it’s exactly what programmers have always done when they switched to a higher level language.

Yup. It is exactly what programmers have always done. Lots of Objective-C programs have C or C++ engines under the hood for the “performance sensitive” parts. I put that in quotes because, more often than not, the optimization wasn’t necessary — it just added complexity for little or no actual performance benefit. Not always the case, but more common than anyone would care to admit.

And it is no different with Python or Ruby based GUI apps. Native code is commonly used for the performance sensitive parts. Of course, with PyObjC or RubyCocoa, much of the optimization-in-native-language has already been done because, after all, the python and ruby in said programs are typically just gluing together already existing native language frameworks.

If you think about it, a Cocoa app that is using — say — Core Data and Quartz Composer is consuming very little CPU in actual developer authored code. Most of the CPU time is spent in QC or CD either pushing data around or rendering graphics in 3D; 100s of thousands of lines of code being driven by relatively few lines of custom code found in the project.

Jesper says:

So at the end of the day, writing Ruby Cocoa apps is going to be a whole lot better and easier than writing Java Cocoa apps

Actually, that is the case now that RubyCocoa has evolved significantly in the last year and has been the case with Python via PyObjC for many years.

The problem with the Java Bridge is that it tries to make the Cocoa API look like a Java API. The end result is an API that doesn’t look like Cocoa and doesn’t feel natural to a Java programmer.

The RubyCocoa and PyObjC bridges don’t try to “mogrify” Cocoa into Ruby-esque or Pythonic APIs beyond a slightly syntactic adjustment to take the Objective-C interleaved method name and arguments style dispatch and turn it into the much more common call-it-like-a-function style dispatch. (No, for the last time, Objective-C does not have “named parameters”. Never did.)

Read the rest of this entry »

Objective-C FAQ (and the Portable Object Compiler [POC])

Tuesday, February 13th, 2007

I had a poke around the net to check in on the Objective-C community (the language community, not the Cocoa programmer community).

I found it a bit of a surprise when I read the current “official” Objective-C FAQ. Doesn’t look like it has been updated in a while and the content that is there seems to have some relatively large holes.

Fortunately, there is an alternative comp.lang.objective-C FAQ that is a bit more up to date.

Update: Yup. Politics is at play. The original FAQ is maintained by David Stes, who has a somewhat antagonistic relationship with the community and seems to have largely ignored the success of the NeXT, now Apple, fork of Objective-C. As a result, the “official” FAQ largely ignores the details of Objective-C as it ships on Mac OS X and GNUstep, easily the two most popular “forms” of Objective-C shipping today.

This isn’t entirely surprising.

David wrote the Portable Object Compiler (POC). At its core, POC seems to have forked the Objective-C language about the time Stepstone’s technology base was transferred into NeXT (regardless of when POC development started, that is about the “snapshot” of the language from which it seems to be derived).

POC includes its own implementation of the ICpak101 classes and excludes a number of the “modern” additions to Objective-C (“modern” being defined as most of the additions since about 1988).

Beyond the method invocation syntax and a subset of class declarations, POC cannot compile most Objective-C code written in the past decade. Everything from various syntactic differences through to the built in classes are incompatible.

POC does have some very interesting features. Blocks and garbage collection, namely. From a coding perspective, blocks/closures are definitely of interest.

I’m not sure I like David’s block syntax, but I have yet to think of anything better (though, honestly, I haven’t given it much thought, either) and it is somewhat also be the result of having to parse the ICpak APIs.

While POC is an interesting project, it seems to be a disservice to the project to continue binding it so tightly with the rest of the Objective-C world. Beyond the method invocation syntax, there just doesn’t seem to be much that POC has in common with the Objective-C that most developers use!

With that divergence in mind, it seems odd that the “official” Objective-C FAQ is limited to details of Objective-C before 15 years ago. To me, it seems like it would be more useful to have a POC FAQ and for the alternative FAQ to become the real FAQ.

A new member of the weblogging community….

Tuesday, February 6th, 2007

Steve Jobs joined the ranks of webloggers today. Mr. Jobs has a rather high profile URL with an RSS feed that spans much more than his personal essay(s?) and an entire company’s worth of contributors.

The first post is quite the mind bomb.

Personally, I hope this is the first of many such posts.

Update: No, I don’t think that Steve’s rather poignant essay is a blog post. But, really, why not? As corporations increasingly rely upon the web to disseminate both formal press releases, success stories, and anecdotal information, where does is the line drawn between “web site” and “weblog”?

There is an URL… an RSS feed… The ‘hotnews‘ section of Apple’s site is certainly a sort of corporate weblog.

This post serves two purposes.

First, go read the essay. It is really is quite interesting.

Secondly, what is the definition of a weblog? Where is the line between corporate news collection and corporate weblog? Apple’s “hotnews” section often has non-press release content. Does that make it a weblog?

Serendipity

Saturday, February 3rd, 2007

How do I define serendipity?

Walking into a PW market to do the weekly grocery shopping and noticing that the butcher is in the process of fabricating all natural boston butt fresh off the truck.

I scored two 10 pound butts (which are really shoulders) for about $1.60 / pound. Had ’em home and marinated in exactly the right amount of time to have ’em ready for tomorrow’s game (which is really about food — especially since Da Bears are in).

Rock on!

C# 3.0 Categories Followup

Friday, February 2nd, 2007

A couple of days ago, I posted some observations and questions regarding C# 3.0’s extension methods.

There were two comments (and a link back) posted and both were extremely interesting. So, first, thanks to Nicholas Paldino and Jay Tuley for taking the time to respond and do so with such detail.

Some clarification on how extension methods work (and how they different from categories).

Given this context:

namespace System
{
  public static class MyExtensions {
     public static void MagicDoStuff(this object o) {
            ... do magic here ...;
        }
    }
}

The static in the class declaration simply prevents instantiation of the class. The C# docs recommend that static classes are useful for containing methods that aren’t otherwise associated with a particular class.

In Objective-C, the developer would typically just declare a set of standard C functions to encapsulate non-class specific functionality.

Read the rest of this entry »

Best “No Comment” Response Ever

Thursday, February 1st, 2007

What happens after someone heads out of the courthouse after an arraignment hearing for an extremely visible, supposedly newsworthy, set of charges?

There is a press conference. Attorney is present. Lots and lots of inane questions followed by nothing but “no comment” responses.

Not any more. The two dudes charged with a bunch of mass hysteria security theater trumped up bullshit charges just had the best post arraignment press conference ever.

Instead of no comment, the entire interview is a discussion of hair styles throughout the 20th century. Every question is turned away or turned back to hair.

Instead of “No Comment”, you get “That isn’t a hair question and we are really here to talk about hair.”

Brilliant.

Drudge is carrying this video under the headline “suspects mock media”.

Well, DUH! Given the choice of saying “no comment” or making fun of the media for persisting to ask questions that they know can’t be answered, I am damned happy to see someone stand up and indirectly point out the utter and completely inane stupidity of the reporters on the scene.

Update: Pings turned off because the asshole content ripping spamming bastards seem to really like this post.