Saturday, December 27, 2008

Noche Buena 2008

Christmas Eve has always been the most special day of the year for me. Memories from my childhood include Noche Buena dinner parties full of family and friends dressed very nicely and a house permeated with the smells of a Cuban kitchen. Sometimes ham, sometimes pork, always black beans and rice, yuca, some vegetables, desserts, and lots of booze. A joyous occasion that usually ended with bodies laid out on the floor in front of the tree or by the fire, watching snowflakes fall and telling stories of adventures past.

Since becoming a father, it has been a priority for me to try my best to recreate the memorable experience for my kids that was my own warm memory of Christmas Eve.

Noche Buena 2008 from Mario Aquino on Vimeo.


We had prepared for a dinner party to seat 11 adults and 2 kids. The pig was so late in being ready to eat that the Noche Buena dinner was effectively ruined. All our guests had gone home with little more than hors d'oeuvres and some wine in their bellies. Despite all our efforts, there is no rushing a pig in a Caja China in December in St. Louis. At times I felt like Icarus... at times, like Captain Ahab. The regret was palpable and the expense of the day, substantial.

My opinion of the Caja China is that it is an extremely inefficient apparatus for roasting pigs. As you can see from the video, the heat source is above the meat, which lies in a metal-lined plywood box. This guarantees that the meat will be cooked slowly. However, the documentation for the Caja China says that a pig should take between 3 & 4 hours to cook, but our experience was that it took over 10 hours to cook the pig. Perhaps in Miami, where the temperature usually stays above 65 °F, the cook-time for a pig stays within the 3 - 4 hour window. Sadly, that was not our experience.

Tuesday, December 23, 2008

Habemus Porcus

Battling rotten weather this afternoon, we travelled out to Kenricks Meat Market to pick up our Noche Buena pig. My Dad brought the biggest cooler he had for taking the pig from the market back to my house. Once back home, the Yak Shaving commenced. We had to clean the pig, find a big enough plastic container to marinate it in, wash a bunch of things to mix the brine with the mojo we had prepared earlier, transfer the pig down to the kitchen, move a bunch of things around, keep the dog in the office, etc.

Two hours after getting it back to our house, the pig was finally juiced-up and bagged neatly for overnight marinading. It's out on our enclosed porch and the forecast calls for an overnight low of just above freezing. My Dad was concerned that wild creatures might break-in to our porch in the night and start to munch on our pig once the divine scent of the mojo gets carried into the backyard. I am not concerned.

Monday, December 22, 2008

Caja China Chicken Test

In preparation for the most important dinner of the year (the Noche Buena pig roast), I decided to test the cooking performance of the Caja China that we bought recently. I used self-starting coals to get the grill hot, though didn't use enough coals to cover the top of the box (mistake #1). After the coals were white-hot, I added Kingsford charcoals using roughly the same amount I had started with, and once again waited for them to be hot enough to spread and get more coverage of the top of the box.

By 5:15, I was ready to add the roaster chicken I had purchased for the test. This chicked was still quite cold for having sat in the trunk of my car in 15 °F weather for most of the day. The Caja China instructions advise adding meat that has been warmed to room temperature, but I decided to go for it anyway (mistake #2).

At the end of the first hour of cooking, we flipped the chicken. I could hear that the skin on the bottom of the bird (which had been facing the heat from above) was crispy as we flipped it over. I thought this was a good sign and that the chicken would soon be done and ready to eat. After flipping it, I recovered the tray of coals on top of the box and added a nominal amount of charcoals to the tray (mistake #3). The instructions say to add roughly 1/2 bag (8 lbs.) of charcoal after flipping the bird, but I didn't added that much.

Forty-five minutes later, I peaked into the box to see if I could read the meat thermometer we had added to the bird. The top was not as brown and crispy looking as I had expected it would. I realize now that I should have followed the charcoal amount recommendations to the letter. This will definitely happen when we cook on the afternoon of Noche Buena.

As you can see from the video, the chicken is a good shade of brown near the neck of the bird, but much less so near the bottom. The ambient temperature for the entire cooking episode was roughly 20 °F and the forecast for the day of Noche Buena calls for similar weather. I expect to post more details after we get the pig and start the prep. This is the first time I have ever roasted a whole pig and am really excited about it!

Saturday, December 20, 2008

Caja China - Pig Box

My Dad and I have split the cost of a Caja China so we can do a tradition Cuban extravaganza for Noche Buena (Christmas Eve), the most special night of the year for Cubans. Here is what the box looks like setup in my garage.

We have the pig on order from a butcher in Arnold, MO., for pickup on 12/23. If you are looking for a friendly place to eat surrounded by happy people eating the most delicious pork north of Miami, please come by

Thursday, December 11, 2008


Since August, I have been working with the highly-talented development team that supports LimeWire, a P2P file-sharing application that leverages the Gnutella network for passing bits around to other clients. While LimeWire has been around since 2000, it has been our efforts in this latest release (which just became publicly available yesterday, albeit as an alpha build) that has finally given it a clean, stylish, modern look. I have been working in Swing application development for more years than I'd like to admit and I have to say that 6 months ago I wouldn't have believed what we have created was possible with the venerable toolkit. 

The team I have been working with is made up of a mix of designers and developers who each brought focus to different aspects of the application. The designers have sweated over the look of the UI, obsessing on clean lines, separating areas of visual focus, colors and whitespace. It has been an iterative effort, following their design mock-ups for implementing the UI of new features, kicking the implementation back to them to evaluate and then revisiting the layout with new ideas for improvement. It has reminded me of the often heard quote about Michelangelo recognizing that great works of art were already present in blocks of marble and that all he needed to do was brush away the right bits from the stone so you could view them.

My own focus has been on implementing aspects of the UI, while the heavy lifting on the back-end was shouldered by other folks on the team. This has been a pleasant shift of focus for me because it has provided the opportunity to dive deeper into some of the murkier corners of Swing and the SwingX library, which (most unfortunately) recently had its funding cut-off by Sun.

My favorite new features in this release are private sharing lists and chat. I can't count the number of times I have wanted to send something to someone (maybe some software I was working on or pictures or whatever) that was just too big to fit as an email attachment. That problem is solved for me by being able to share whatever I want with only who I specify via the private share lists.

LimeWire_Alpha Uploaded with plasq's Skitch!

Give the tires a kick and keep your eyes peeled for the beta, which should be out shortly.

Sunday, December 07, 2008

Pecan Mini-Tarts (Favorite Holiday Recipe Meme)

Following on from Eric's blog post about Grizzlenuckles, here is a recipe for a pecan mini-tart dessert that my Mom has made at Christmas time for the last thousand years. These little things are crack, big time!

Pecan Tarts

1 stick unsalted butter
3 oz. cream cheese
1 cup flour, shifted
Mix ingredients until well blended. Make an oblong ball and wrap in wax paper. Put in refrigerator for at least 20 minutes.

Make little balls shaping the insides of the pans.

¾ cup brown sugar
1 egg
2 tablespoons melted butter
¾ cup or more pecans, chopped

Mix these ingredients and fill the “cups”. Bake in a 350 minutes [pre-heated] oven for 18-20 minutes. [Keep an eye the first time because I am more or less guessing the time]
When cool sprinkle powdered sugar on top.
Makes 24 tarts.

I am tagging the following folks to pass-on their favorite recipes:

Friday, November 28, 2008

Developing for the Android Platform

I attended an excellent talk Eric Burke gave last week on developing for the Android platform. The first half of the talk has been posted on YouTube. Enjoy!

Tuesday, October 14, 2008

Tuesday morning Ruby quiz

Last night, myself and the local Ruby group started down the path of preparation for the Ruby certification exam (after being inspired by Fabio Kung to go for it). One of the things we covered was here docs, a facility for creating multi-line strings in Ruby. We came across two funky cases (or at least I thought they were funky) that seemed good enough for quiz questions. Given the following here docs, what would you expect to print for the values of v1 & v2:

Friday, October 03, 2008

Me Meme

  1. Take a picture of yourself right now.
  2. Don’t change your clothes, don’t fix your hair…just take a picture. (should be super-easy with Photobooth)
  3. Post that picture with NO editing.
  4. Post these instructions with your picture
Carrying on from Dave

Friday, September 26, 2008

Rails Rumble

I've got to say that Rails Rumble is one of the things that I LOVE about the Rails community. Ultra time-boxed web application development is a great way to demonstrate enthusiasm for the technology as well as what can be accomplished in a short time by truly gifted developer/designer teams.


Wednesday, September 03, 2008

Sunday, August 10, 2008

Leopard memory woes...

I am in a state today. Out of necessity, I added a third GB of memory to my MacBook Pro last week because (IMHO) there is a memory issue in Leopard. This screenshot shows what has become the normal state of affairs memory-wise since I upgraded to Leopard.

Uploaded with plasq's Skitch!

I may find myself working away with the usual cadre of programs running on my desktop (Mail, Twhirl, iChat, Adium, Preview, Eclipse, iTerm, TextMate) and expect that a fair amount of system resources are being taken up. Fine. However, after shutting everything down I would expect that most of the memory occupied by the running programs is reclaimed by the OS and is available for reuse. That's definitely not the case. WTF is kernel_task doing with a quarter of a GB of memory? Why is Finder holding on to 80 MB?

I have been generally very happy with the Leopard upgrade. Feature-wise, it is an improvement on what was already a fantastically strong platform. However, efficient resource utilization is not an unreasonable expectation for a modern operating system and Leopard totally fails in this area.

Thursday, August 07, 2008

Apps Daddy Likes...

I have been asked more than once by friends and associates about what applications I use or recommend for OSX. I am sure this is not an uncommon occurrence for folks who enjoy sharing the positive experiences they have had on the Apple platform. This morning I remembered a site I came across many months ago that allows people to track the applications they use (and I believe it also notifies you when updated versions of applications you use are available). For anyone interested in the applications I use, here is my profile. The site has a utility that rifles through your Applications folder and uploads everything it finds there. I then went through the list it uploaded to the site and selected the applications that I use daily (or at least frequently). The site has an RSS feed for my profile if you are interested.

Saturday, August 02, 2008

JDK 6 Source/Documentation install on Leopard

Sadly, Alex Miller's instructions for getting Java source files for Java 5 didn't work for Java 6.  Apple has cleverly hidden the Java 6 source/docs on the ADC.

Many thanks to Eric Burke for knowing which nook this resource was hidden in.

Monday, July 28, 2008

Getting Eclipse to Run on Leopard (with Java6)

Over the weekend, I finally upgraded to Leopard. The upgrade experience was very good; it sucked my backup files (that I had created using SuperDuper) from my attached USB drive and created all the appropriate accounts. WIN! Apart from the impression that since the upgrade I am seeing greater memory consumption than what I saw with Tiger, the Leopard experience has been pleasant. Java 6 installed itself sometime after the upgrade, but it wasn't made the default JDK. Setting that was as easy as creating a symlink:

/System/Library/Frameworks/JavaVM.framework/Versions> ln -s 1.6 CurrentJDK

However, Eclipse wouldn't launch after making this change.

Uploaded with plasq's Skitch!

With Dean Wette's help, I was able to sort this out. I edited:


And added:


Launching Eclipse now uses the 1.5 version of the Java executable, and everything works. While I was trying the above, I had it as '-vm=/System...', but this did not work. For some reason, the newline between -vm and the path was important.

Monday, July 21, 2008

A redneck poll

I had a debate with friends over the weekend about whether rednecks outnumbered non-rednecks in the United States, which unfortunately ended inconclusively. So in the interest of gathering more data, I would like to pose the question to anyone with an internet connection. The following is a two-part poll (asked as one two-part question because the free polling system I am using distinguishes between polls and surveys by the number of questions allowed and only polls - which are restricted to a single question and answer - are free and allow unlimited responses). Please answer according to your best judgement.

Tuesday, July 01, 2008


Over the past year, I have been working (in my free time) on a screencasting site that is finally out there: My intention for the site is to offer high-quality screencasts on par with the great stuff coming out of,, and elsewhere. The initial content includes JRuby/Swing screencasts, one on the Cheri library for JRuby and the other on Monkeybars, though the site will add content over time in a lot of different technical topics.

Friday, May 23, 2008

Polyglot Heaven

With a "just go for it" attitude, Nate Neff and I took a road-trip on Thursday to attend the first Polyglot Programmers meeting at the Obtiva offices in Chicago's financial district. Well worth the trip! Dean Wampler gave a very evenly balanced and informative overview on the history and concepts of polyglot and poly-paradigm programming. He has made the slides for the talk publicly available (if you missed the talk, you can find an audio recording here).

I find the notion of polyglot programming very appealing because it aims to exploit the strengths of different development languages/technologies within a unifying architecture. Ola Bini has written several times about polyglot programming and layered architectures that leverage high-performance (typically statically-typed) languages for some parts and high-productivity (dynamic) languages for others, in an attempt to achieve the "best of both worlds". This idea makes a lot of sense to me, coupled with the "use the right tool for the job" strategy rather than the "use as many tools for the job" one.

In the talk, Dean gave examples of polyglot programs that are in wide use (I'm looking at you, Emacs), reinforcing the idea that this is not a new concept (even though it may be one that internet pontificators seem to be talking about at the moment). Considering that most web-applications fall into the polyglot category by virtue of their including CSS, HTML, XML, SQL, and Java/C#/ASP/PHP/Perl/Ruby/Groovy/Python/etc as parts of the same application, the idea that shifting our approach to organizing application architecture to (for example) throw Java or C# at the message queue processing portion of the application while utilizing a dynamic language of your choice to organize/control the components of the system, a glue (if you will), isn't radical at all. In fact, it seems quite natural (to me). Though my own preference these days is developing with Ruby, much respek to the clever folks in the Groovy camp for adopting the polyglot paradigm in the Grails architecture. Booyakasha! That same "leveraging strengths" goodness is what makes working on and with the Monkeybars framework so much fun.

The discussion among all attending after Dean's presentation was enjoyable, as was the great beer and Chicago-style pizza provided by our hosts, Dave Hoover, Joseph Leddy, Tyler Jennings, Renzo Borgatti and the rest of the Obtivians that I met that night.

Thursday, March 06, 2008


The trifles that most of us call computer programming pale in comparison to the awesomeness that is Phun.

You can download the engine and waste your day by following this link.