The Pig Head and Football Ragu

January 2nd, 2010  |  Published in Errata, Food, Thoughts

So a few weeks ago, I went to The Meat Hook to pick up a beef roast for Christmas dinner. Brent helped me pick out a nice 8 lb. roast (which he then layered with fat and tied nicely — something I don’t think I quite fully appreciated until the roast came out of the oven), and then we got down to business. I’ve been following The Meat Hook on Twitter for a while now, and these guys aren’t just dealing with your ordinary bits. They’re cranking out stuff like chorizo-stuffed duck hearts, goose rillettes, lamb belly and bahn mi dogs. That’s right, they took a Vietnamese sandwich and turned it into a sausage. HOT.

Compared to these guys, I’m clearly Mr. Amateur Newbie, so I gave Brent my 10 second charcuterie resume, and asked him to surprise me with whatever he’s got in the meat locker. He came out first with some pig’s skin, rolled it up, wrapped it up and handed it to me. I thought that might be all, but then he went back in the locker and emerged with a pig’s head.

Pig's head from @themeathook Yup, a whole head. They had already taken the cheeks out to make guanciale, but there was still plenty of meat left, so I headed for the checkout with a beef roast in one hand and a pig’s head in the other. It was going to be an interesting weekend.

I’d never cooked a pig’s head before, so I figured I’d play it safe and start with the basics, namely head cheese, which isn’t really cheese at all, more like a meat jelly terrine. I used the recipe in my copy of Fergus Henderson’s The Whole Beast: Nose to Tail Eating. And since it’s not every day that you get a whole pig’s head, I also decided to make the Crispy Pig Ear salad from the book. Both the head cheese and the crispy ears turned out pretty good considering it was my first attempt making them, but what really turned out amazing was the recipe I made with the roll of pig’s skin.

Brent told me how you could slow cook thin ribbons of pig skin in a tomato sauce and after a few hours just before the skin completely falls apart, you end up with the most delicious porky ragu you could ever want. So I gave that a shot, and it turned out awesome. Here’s a pic of the final three dishes, and below is the recipe I hacked together for the ragu.

Pigskin Ragu, crispy pig ears and head cheese.

Pigskin Ragu with handmade pappardelle, alongside Crispy Pig Ears and Head Cheese.

Pigskin Ragu (if the name weirds you out, you can also call it Football Ragu)

Ingredients

  • 1 fennel bulb
  • 2-3 medium sized leeks
  • 1 large can (28 oz.) of whole, peeled tomatoes
  • 1 roll of pigskin (about 1/2 lb.)
  • olive oil
  • salt, pepper and whatever other fresh green italian herbs you have on hand (e.g. parsley, thyme, rosemary)

Directions

Thinly slice the pig’s skin into strips about 1/8″ wide and 1″ long. Saute in a pan with a little olive oil over medium heat for a few minutes just to heat them through and to brown the outside a little. Now open the can of tomatoes and strain off all of the tomato juice into the pan with the pig’s skin. Add a little bit more water if the pigskin isn’t fully covered. Turn the heat down to low and let this simmer for about an hour.

Meanwhile, thinly slice the fennel bulb and leeks. Saute in a stock pot with a little bit of olive oil on medium heat for about 5 minutes until they’ve sweated some. Coarsely chop the canned tomatoes, and then add them to the pot. Turn the heat down to very low and let simmer. You don’t want the pigskin or the tomato mixture to boil, so just keep them low and slow for the next hour.

After an hour of simmering, pour the pigskin/tomato juice mixture into the pot with the leeks, fennel and tomato. Add whatever fresh herbs you want and stir everything together. Continue to simmer for another hour, tasting and seasoning as you like, just be careful that if you simmer the sauce much longer the pig skin will start to completely melt. Personally, I stopped cooking the ragu just before this melting point so that there was still some texture to the finished ragu. But if you don’t like that, just keep simmering and the texture will melt away, but the flavor will remain.

Once the ragu is done, serve with your favorite pasta. In my case, I just threw together some handmade pappardelle using the 3:2 Pasta Dough from the Ratio iPhone App. Delicious.

Ratio for iPhone and iPod Touch

December 15th, 2009  |  Published in Development, Errata, Mobile, Ratios, Releases

So for the past few months, I’ve been working with food writer Michael Ruhlman on the iPhone adaptation of his cookbook “Ratio”. Well pop some bubbly, cause the app is now live in iTunes!

Purchase Ratio for iPhone and iPod Touch

Picture1

Picture2

An open challenge to the customer service departments at American Airlines and Japan Airlines

December 6th, 2009  |  Published in Errata, Travel  |  3 Comments

Dear American Airlines and Japan Airlines.

This week I flew in business class from JFK to Singapore and you lost my luggage. The luggage was not delayed or misrouted, it was completely LOST.

Twelve hours after I landed in Singapore, there was still no sign of my bag, so I had to go out at my own expense and buy new business attire for my three days of client meetings.

For the next several days, I called both Japan Airlines and American Airlines twice a day to determine what happened, and neither airline could locate my bag. All they could tell me is that my bag tag number (403648) was cancelled at JFK before the plane took off and no one has seen the bag since. I find it hard to believe that in this age of heightened security, a bag can just be cancelled after check-in and disappear that easily, but this is what you’re telling me happened.

One week has passed, I’m now back in NYC from my business trip, and no progress has been made. The bag is probably gone for good, but what upsets me even more is that neither airline is taking responsibility for this and are pointing fingers at each other. Japan Airlines says that American Airlines never put the bag on my flight from JFK to Narita, so it’s American’s problem and I need to follow up with American. American Airlines says that since my final destination in Singapore was on Japan Airlines (apparently it doesn’t matter that it was an AA flight number), then I have to resolve this myself with Japan Airlines. I’ve talked to representatives at both airlines in their company wide 800 numbers, at the local offices in JFK and Singapore, and even to the Executive Platinum desk at American, and no one has an answer, just another number for me to call that eventually circles back around to where I started.

I’ve spent enough time calling people and filling out forms. I’m done. This needs to be resolved immediately. And I’m going to give you one last chance.

I’ve tried going through your channels, but that’s not working so I’m challenging you to resolve this here online. I’m giving you the chance to show the world your commitment to customer service. I fly your airline a lot (100K miles this year, 1.1 million in my lifetime), and I know the airline industry has taken a beating in this economy. I’m not here to berate you more. I want you to succeed. That’s why I’m giving you this opportunity. Don’t let me down,

-Will

UPDATE #1: The automated email system from American Airlines notified me that a file number was created. I2009/12-05761-00011-001-00. No contact from a real person though.

UPDATE #2: American Airlines has responded! They took the time to write me a long letter from their customer service department saying that Japan Airlines is responsible and that I need to follow up with them. Yes they did….

Happy Birthday Bar Code

October 7th, 2009  |  Published in Errata, Mobile, Thoughts

A lot of people find this blog because of my articles on mobile bar codes, so I thought I would mention Google’s spotlight today celebrating the 57th birthday of the bar code. In case you miss Google.com today, here’s a screenshot.

Pretty sweet.

Ovi Store download stats

July 13th, 2009  |  Published in Thoughts  |  1 Comment

So my simple Morse Code widget has been in the Ovi Store for almost two months now. It’s free, and I didn’t spend too much time developing it, but the Ovi Store finally got their Reporting system back up and running, so I thought I would share some stats on how the app is doing.

  • As of this writing, the widget has been downloaded 10,582 times.
  • The widget has been download from 130 different countries.
  • The top 10 countries that downloaded the widget are UK, USA, India, Australia, France, Finland, Brazil, Singapore, Netherlands and Turkey.
  • These 10 countries only accounted for 62% of downloads.
  • 65% of the downloads are coming from four devices – E71, N95 8GB, N95 and N96.

How is this comparing to other developers out there?

Displaying mobile only content with MobilePress

June 23rd, 2009  |  Published in Development, Mobile, Releases  |  1 Comment

I’ve been using MobilePress for a while now on my blog. It’s a quick, easy way to make your Wordpress blog friendly for all those crazy smartphones out there like iPhone, Android, Nokia, Palm Pre, etc. etc. You just add the plugin to your Wordpress install, activate it, and you’re set.

My only issue with the plugin is that it doesn’t support alternate content for mobile devices. Sure you can post the same text in both places, but it doesn’t always work that way for things like very large images or YouTube embeds. Often you’ll want the desktop version to have the very large image, but the mobile version to have a small thumbnail. Likewise with videos you’ll want your desktop site to have the full video embed, but the mobile site to have a link to the 3GP version of your video. To solve this, I quickly wrote an extension to MobilePress that allows you to accomplish this using Wordpress shortcodes. Here’s the result.

You’re on the non-mobile site!
see mobile version


If you’re on the mobile site, you should only have seen a small thumbnail linking to a mobile version of the video. But if you’re on the normal version of the site, you’ll get the full video embed.

So how did that work exactly? In the post itself, place [mobile] at the beginning and [/mobile] at the end of any text you want to appear only on the mobile site. Likewise, for content that you don’t want to appear on the mobile site, you place [nonmobile] at the beginning and [/nonmobile] at the end of any text. For this post, here’s what the text looked like.

[mobile]
<h1>You're on the mobile site!</h1>
<a href="rtsp://rtsp-youtube.l.google.com/CkYLENy73wIaPQk4TalGJzJtDRMYDSANFEIJbXYtZ29vZ2xlSARSBXdhdGNoWg5DbGlja1RodW1ibmFpbGCLjNC-9__5m0oM/0/0/0/30/video.3gp">
<img src="http://i.ytimg.com/vi/DW0yJ0apTTg/default.jpg?w=160&h=120&sigh=uxtjuGf9Vjatje_YL3m1JSn0mMY" alt="video" width="160" height="120" style="border:2;margin:0px;" />
</a>
[/mobile]

[nonmobile]
<h1>You're on the non-mobile site!</h1>
<object width="425" height="344">
<param name="movie" value="http://www.youtube.com/v/DW0yJ0apTTg&hl=en&fs=1&rel=0"&rt;</param&rt;
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/DW0yJ0apTTg&hl=en&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed>
</object>
[/nonmobile]

Pretty easy, eh? Here’s the source code for the plugin.


function mobilecontent_func($atts, $content = null) {
	if ($_SESSION['SESS_MOBILE_ACTIVE'] === TRUE) {
		return $content;
	} else {
		return "";
	}
}

function nonmobilecontent_func($atts, $content = null) {
	if ($_SESSION['SESS_MOBILE_ACTIVE'] === TRUE) {
		return "";
	} else {
		return $content;
	}
}

add_shortcode('mobile', 'mobilecontent_func');
add_shortcode('nonmobile', 'nonmobilecontent_func');

That’s all there is to it. Each of these functions just checks for the existence of a session variable telling whether or not you are using the mobile version of MobilePress (the cookie management is handled entirely by MobilePress). Based on the session cookie, it either returns the text itself, or it returns an empty string.

I’ve only spent a few minutes writing the plug in, so I am curious if others would find this useful or if there are any obvious bugs or enhancements people notice.

You can download this MobilePress extension here, and let me know what you think.

BarCampNYC4

May 7th, 2009  |  Published in Development, Errata, barcampnyc, transparency

barcampnyc4

May 30-31 is BarCampNYC4. Register now as slots are disappearing quickly.

I’m putting together something to talk about RepresentedBy and its future development roadmap. Will anyone else be working on something around open government, or technology for change? Would love to assemble a group session on this.

Using Minify to optimize your Nokia WRT widgets

May 3rd, 2009  |  Published in Development, Mobile, Nokia, S60, Thoughts

Recently, I’ve been playing around with Minify. For those who’ve never heard of it, Minify is a simple HTTP content server built as a PHP5 application. It’s placed in a folder on your server, and then either using a querystring or mod_rewrite, it will dynamically merge and minify CSS and JS files as they are served up to a user’s browser. This allows you to develop using multiple CSS or JS files with comments and clear visual formatting, but when they are delivered to your users via a browser, they get minified and optionally merged making your site load and render faster in the user’s browser.

While Minify is meant to run on a webserver, I thought it could also work as a handy offline tool for optimizing Nokia WRT widgets. Since WRT widgets are just zipped folders of Javascript, HTML and CSS, Minify seems like a simple step you could include in the widget packaging process of your workflow before testing and deploying.

I wasn’t sure how much savings Minify would give the average WRT widget, so as a quick test I batch processed the contents of the STEW sample widget from Forum Nokia using Minify running on a local webserver. The resulting files were bundled as a new widget, and here’s a comparison of the two.

  Size of all Files WGZ size
Forum Nokia version 122.4K 83.0K
Minified version 106.3K 78.2K
Difference 13.2% smaller 5.8% smaller

The savings aren’t gigantic, but they’re significant enough that you should seriously consider adding this step before deploying a widget. I’d also be curious to see if anyone has done comparisons about whether or not Minify affects how much memory is consumed at run-time in the browser.

I might do some more work on automating this process or creating a tool that minifies widgets automatically for you, but ideally, I think this should be something automatically built into widget IDEs like Aptana.

How are other developers out there currently optimizing their widgets for release on Ovi Store?

Thoughts on the Nokia Developer Summit

April 29th, 2009  |  Published in Development, Nokia, S60  |  1 Comment

I’ve spent the past two days attending the inaugural Nokia Developer Summit. For those interested who weren’t able to attend, there’s been coverage on Nokia Conversations, and on Twitter using the #nds09 tag.

The high level takeaways from the show are:

  • If you want to develop for Nokia, build WRT widgets. They’ve got a lot of functionality, you can tie it in with other Ovi services, and they can be built quickly.
  • If you need more low level control than is offered by WRT, be sure to develop using Qt because that’s the direction everything is moving in — S40, S60, and Maemo all are moving towards Qt
  • Once you’re done with your app, supposedly you can make lots of money with it on Ovi Store.

I don’t attend a lot of conferences, but if I had to give this one a letter grade, I’d give it a solid B.

WHAT WORKED

  • It was a large enough conference to be significant, but small enough that it still felt real and informal. Attendees were friendly and open.
  • The Nokia staff were extremely friendly and responsive. Everyone at Nokia I talked to gave time and attention to my questions, which is more than I can say for some other confereneces I’ve attended. There were even some instances where they went above and beyond. For instance, @ribot and I were talking about some Flash Lite issues, and when the Forum Nokia rep didn’t have the answer, she picked up her phone, dialed a number, and handed it over saying, “The Flash Lite guy is on the phone. Ask your question.” That’s responsiveness (and let’s hope they continue that same level of responsiveness online).
  • There was a good mix of content delivered in meaningful ways. In addition to keynotes and specific tracks, there were sessions to demonstrate hands-on coding, and fun events like the 24-hour hackathon. Even the booths at the event didn’t feel too gimmicky or sales oriented.

WHAT DIDN’T WORK

  • Not enough specifics about timelines. We were shown a lot of new technology, but no clear roadmaps for exactly when the APIs would be made public. Also, some APIs were clearly targeted towards WRT developers and some towards native app developers, but this info wasn’t offered up — it didn’t come out until the Q&A.
  • Not enough emphasis on clear development paths. Developing for mobile involves a chaotic mix of different devices, screen sizes, firmwares, OS features, network speeds, local languages and operators. I was hoping that Nokia would help make some sense of this mess and give developers some idea of where they could obtain maximum value for their efforts, but no one seemed willing to put a stake in the ground and say, “Do it this way.”
  • Truly embracing openness. Lee Williams from the Symbian Foundation gave an emotional presentation on living and breathing the idea of open source, but in countless other sessions Nokia was promoting APIs that were only available to select partners and wouldn’t be open to the public until the software was released publicly. I really wish Forum Nokia would adopt their own Labs section similar to Nokia Beta Labs where *anyone* could be given early access to some of these APIs.

But overall, I thought it was a great experience. I’m curious what others out there are thinking (regardless of if you attended). Comments?

Morse Code Widget – Submitted Accepted to Ovi Store

April 13th, 2009  |  Published in Development, Mobile, Nokia, Nseries, Releases, S60, morsecode  |  3 Comments

UPDATE: That was fast, just got an email that the widget has been accepted!


I’ve officially submitted the Morse Code widget to the Ovi Store where hopefully it will downloaded onto millions of devices worldwide. And guess what? It’s FREE.

In case you’ve forgotten about it, here’s a brief video showing how it works.