Fruit Skewers: Quick, Easy, and Delicious

Fruit skewers are an amazingly easy crowd-pleaser. They’re quick to make. They’re colorful, and they’re tasty. They’re an appetizer and/or a dessert. What more could you want for simple party food?

Fruit Skewers

Fruit Skewers Recipe

Here’s what you need:

Here’s the prep:

  • Wash the grapes and strawberries
  • Cut the tops off the strawberries
  • Ball the melons

For each skewer, I recommend this order:

  1. Melon (alternate green and orange)
  2. Red grape
  3. Strawberry
  4. Melon (alternate green and orange)
  5. Red grape

Hint: Melon balls don’t always come out perfectly round. Skewer the melon so that the flat side is toward the grape, and it will be less obvious.

My mother suggests a light drizzle of honey as a finishing touch. I suspect that’s important if the fruit isn’t at its peak of ripeness / sweetness. I didn’t find it necessary for the platter pictured here. We’re getting fantastic melon and strawberries right now in Northern California, so your milage may vary.

Debugging Tip: Saving NSData to a File

Saving NSData when debugging is easier to do now for specific data types but helpful to know how to do in general. Xcode 5.1 introduced graphical Quick Looks for variables a long time ago, but I hadn’t experimented with that until today. I’ll talk about it below, but first the old way of doing things…

It’s easy to save a chunk of NSData to a file from the debugger, and it can be really helpful when debugging. Here’s an example I encountered when chatting with another Smile engineer yesterday. We were discussing a method which returns a UIImage. We were seeing an artifact in the image, and we wanted to determine the origin of that artifact. We fired up the app in the Simulator and put a breakpoint at the end of the method which generates the UIImage. Then, we did this in the Debugger.

p [UIImagePNGRepresentation(keyBackgroundImage) writeToFile:[NSTemporaryDirectory()
	 stringByAppendingPathComponent:@"image.png"] atomically:NO]
po NSTemporaryDirectory()

The first line writes the data to a file (in the guise of printing the result of the writeToFile:atomically: method). The second line tells you the path of the folder in which the “image.png” file is saved. It’s handy to use NSTemporaryDirectory() because that works easily for sandboxed applications on macOS.

It was easy to open the resulting image file in Acorn (for me) and Photoshop (for the other engineer) to verify that the background image was not the source of the artifact.

Xcode’s graphical Quick Look for variables obviates this technique for images. All you need to do is:

  1. Hover over the variable name in your source code
  2. Click the Quick Look icon
  3. Click the Open button to open your file in its default file viewer

Xcode showing Quick Look variable view

This also works well for small amounts of proprietary NSData, as Xcode includes a Quick Look viewer to show 512 byte pages in HexFiend style. If you’re looking for something at the 100,000 byte mark, you’ll really want to save off the data and open it with HexFiend. In that case, it’s handy to know the above technique as well.

You can also write your own Quick Look display for your custom types, as Apple notes. I suspect that’s overkill in many cases.

I don’t claim to have originated this technique. I’d love to give credit (or a beer) to whomever I learned it from, but I simply don’t recall. I wouldn’t have posted about it, but for the fact that it was new to the engineer with whom I discussed it. Therefore I figure it’s worth a post after all. Hopefully, it will prove helpful to someone trying to extract NSData to a file while debugging.

Ratatouille Lasagna

Ratatouille Lasagna was the fifth of my 2015 Resolution:

This began as a collaboration with Éric Trépanier during his visit to California in the summer of 2015. He’d been watching a French Canadian cooking show, Qu’est-ce qu’on mange pour souper focused on making healthy meals in 30 minutes. This “Lasagne à la Ratatouille” got rave reviews in his household, so we decided to make it together. I’ve made it many times since.

Here is the recipe in French, and here’s the English translation. Helpful hints:

  • 30ml is two tablespoons
  • 300g is 10.5 ounces
  • 250ml is roughly a cup, so:
  • 500ml is roughly two cups
  • For crème champètre, use Half & Half or light whipping cream

The bulk of the time spent making the dish is chopping then sautéeing vegetables. I really like the thin cheese sauce versus the mounds of shredded cheese used in a typical lasagna. I don’t think we did it the first time, but using Trader Joe’s Diced & Fire Roasted Organic Tomatoes with organic green chiles, rather than plain canned tomatoes, adds nicely to the dish.

Here’s what it looks like just prior to assembly:

Lasagna Ingredients

And here’s what it looks like half eaten:

Ratatouille Lasagna Cooked

This is a great dish to make for vegetarian friends. I suspect they tire of eggplant parmesan or traditional spinach and mushroom lasagna. This dish is much more of a celebration of vegetables, and it’s less heavy on the cheese. I’ve found it pleases nearly everyone, and a great added bonus is that it’s able to delight vegetarians.

Ratatouille Epilogue

It was really fun to make a meal together with Éric. If you have friends visiting who also like to cook, I’d definitely recommend setting aside an evening to cook something together. I think we opened the wine before we began cooking, which I’d also recommend.

Goat Cheese and Fig Jam Tartlets

Tartlets with goat cheese and fig jam on puff pastry were the fourth of my 2015 Resolution:

Tartlets

These are great for when it’s your turn to bring food to an organization, club, potluck, etc. They only take about 30 minutes to make from start to finish. They’re also a huge crowd-pleaser. The hardest part is remembering to move the puff pastry box from the freezer to the fridge the night before. Here’s how to make these delicious treats.

Tartlets Recipe

  • Move puff pastry from freezer to fridge the night before you want to make these
  • Preheat oven to 400°F
  • Flour a flat surface such as a large cutting board or clean countertop
  • Flour your rolling pin, then roll out the puff pastry, extending it about one third in each direction
  • Use a 2 or 2.5 inch cookie cutter to cut circles of puff pastry
  • Place the circles on a sheet pan lined with silpat or parchment paper
  • Using a paring knife, cut X’s into each circle so that the outer portion rises more than the inner
  • Bake at 400°F for 10 minutes, and remove from oven
  • Place a dollop of goat cheese followed by a dollop of fig jam onto each circle of puff pastry
  • Return sheet pan to oven for an additional 10 minutes to melt the goat cheese
  • Move tartlets from sheet pan to cooling rack and let stand for a few minutes
  • Enjoy!

You can definitely use other flavors of jam. Try to avoid ones which have high liquid content.

I suspect you could also do a savory version of this, perhaps with a blue cheese and cooked bacon mixture. If I experiment with that in the future, I’ll try to come back and update this post.

If you make these, let me know how they come out.

Simple Sous-vide

I’m a convert to cooking meat sous-vide. I enjoy a perfectly-cooked, medium rare steak on occasion. I don’t eat red meat often, so when I do I really want it to be great. I don’t enjoy overcooked meat. I’ve also never liked the fact that there’s usually a certain gray, overcooked portion on the outside of a steak, while the inside is at perfect temperature.

Cooking sous-vide is fairly straightfoward. You seal the meat in a plastic baggie with the air evacuated. You cook it at its perfect temperature for long enough to kill bacteria. You sear it at the end for exterior texture (and for show).

Vacuum Seal

Archimedes taught the world how to displace volume by submerging objects in water, and the same principle applies in your kitchen:

  • Fill a deep pan with water
  • Place the meat in a sealable plastic baggie
  • Submerge the baggie nearly to the seal
  • Close the seal, submerging the sealed portion as you go

There are some debates on the Intertubes about whether or not this technique is inferior to mechanical vacuum sealers. My experience says this technique works perfectly well, and it helps avoid an additional kitchen gadget.

Water Bath at Temperature

There are a lot more Sous-vide gadgets on the market now than there were three years ago, and the immersion circulators look like a pretty cool option. For my setup, I use a simple, dumb slow cooker which just has Off / High / Low for settings in concert with a temperature controller. My Dorkfood Sous-Vide Temperature Controller (DSV) includes a temperature probe, which goes into the water bath, and a pass-through into which I plug the slow cooker. When the temperature is too low, the controller turns the slow cooker on, and when it’s too high, it turns the slow cooker off.

I cook my steaks at 137 degrees for one hour per inch of thickness. Note that you don’t start the clock on your cooking time until the water bath has achieved temperature with the steaks in. Keep in mind that it takes some time for the water bath to re-heat after you’ve dumped cold, vacuum-sealed steaks into it. When there’s about 20 minutes left, I’ll put the outdoor grill on high heat to prepare for the finishing touch.

Brown the Exterior

Cooking Sous-vide does not brown the exterior of the meat. It’s nice to have that texture and color for presentation, and you can do it by searing the steaks on a very hot grill or cast iron pan. You only need less than a minute on each side, and you’ll find that’s enough time to brown the exterior but not enough time to start overcooking the exterior of your steak.

I’ve also used this technique to cook beautiful hamburgers and incredibly moist chicken breast. For chicken, you’ll use a different temperature and time. Enjoy!

Escalivada

This escalivada was the third of ten new dishes I made for my 2015 Resolution:

Escalivada

I first tasted Escalivada in Barcelona. It’s a smoky Catalonian vegetable dish. I charred my veggies on a gas grill rather than a wood fire, so my dish lacked some of the smoke flavor from the original cooking method.

Escalivada is a great alternative to crudités if you want to have delicious vegetables on the table for a party. Serve alongside flatbread or crackers.

Escalivada also makes for good before and after pictures. You’ve seen the after above. Here’s the before:

Pre Escalivada

The one downside to escalivada is the time it takes to prep the vegetables. It took quite a while to break these down into sizes appropriate for cooking. It’s also not a fast dish to cook, as it takes time for the flavors to build. The upsides are that the dish has a lot of color and a ton of flavor.

Save 20% on software and services from Apple

Everyone loves to save money. Software and services from Apple are pretty much always on sale. Several times a year, various online retailers offer iTunes Gift Cards at 20% off. Redeem these gift cards in your AppleID account, and they can be used to pay for:

  • Apple Music
  • Apps for iOS
  • iCloud Storage
  • Mac App Store Apps
  • Music
  • Movies
  • TV

Save 20% with Discounted iTunes Store Gift Cards

Today, PayPal Digital Gifts was offering $50 iTunes Gift Cards for $40 on the day I originally wrote this post. (See update below.)

In the past, I’ve seen these offers from BestBuy and Staples, especially around US holidays.

Dan Frakes is very good about posting such offers to his Twitter account when he encounters them. DealMac / DealNews’ Movie, Music & Book Deals section is another good source.

I realize that one ties up cash when one buys gift cards, so it’s probably best to do this in moderation. However, it’s not difficult to determine what you spend on software and services from Apple in a given year and to pick up these discounts from time to time, ensuring you’ve always got a discounted balance on hand in your AppleID account.

Save yourself money on software and services from Apple by buying iTunes Gift Cards at a discount.

UPDATE: Scott Wright recommends following @itunescarddeals for frequent updates on currently available discounts.

Sweat The Eggplant

I love eggplant parmesan. There are tons of great recipes out there, so I won’t trouble you with mine. However, only one of them recommends that you sweat the eggplant before getting started, and to me that’s the one thing you must do when cooking eggplant.

Large eggplants have a lot of liquid in them. Green, bilious, bitter liquid. If you leave it in your eggplant, you’re missing out on how great an eggplant can taste. Once you’ve sweated your eggplant and actually see, and perhaps dare taste, the liquid, you’ll understand why you don’t want it in your dish.

It’s really easy to sweat an eggplant. I put mine on a baking rack, salt one side liberally with sea salt, flip them over, salt the other side liberally with sea salt, and let them sit for at least 30 minutes. At that point, you’ll understand what I mean about the unappetizing liquid which appears.

Eggplant Rack

Close up, it’s even worse:

Eggplant Close

Once they’ve been sweated, I rinse the eggplant to remove the bitter liquid and the excess salt. Then I place them between paper towels and press them gently with a rolling pin to remove any excess water. At this point, they’re ready for use in your recipe, and they’re ready to impress you with how great a properly sweated eggplant can taste.

Guest Bad Bug: Double-click to Install Preference Panes, etc.

New bug in 10.11.4 reported by Daniel Jalkut disallows double-click installs of preference panes with default Gatekeeper settings. Workaround #1: control-click and use Open button, which works with anything, including apps and preference panes. Workaround #2 from Rob Griffiths is to drag-install preference panes.

This is a different flavor of Bad Bug. It’s one which comes along in an update and causes a disruption of the user experience harmful to some chunk of indie developers. Hopefully, word will get around about the workarounds and it won’t hurt folks too badly. Feel free to do your part and tell your friends.

Bad Bug #2: Makes Me Blue, So Blue

This is another long-standing Bad Bug. It’s clearly broken, easy to demonstrate, and difficult to believe it would be allowed to persist. I realize that in writing about these, I open myself to criticism along the same lines. In a way, I welcome it. Maybe we’ve got a Bad Bug in our software that’s getting in your way. If so, blog about it passionately. Rally others to your cause. Write us and insist we take a second look.

Bad Bug #2 is in Core Graphics. Both renderings below are of the same PDF document. On the left, the document is rendered using PDFKit. On the right, the document is rendered using CoreGraphics.

CoreGraphics and PDFKit Bug In Action

I filed this bug with Apple at OS X 10.11.1, and there have been three dot releases with no fix. While it’s possible to work around the bug by drawing into an NSView rather than using Core Graphics, that’s not really an acceptable workaround. It’s also difficult to detect exactly what causes the bug, as it does not impact all CMYK nor all overprint mode (OPM) documents. In other words, trying to work around this would create a huge performance hit.

Fortunately, the bug is “cosmetic” in nature, meaning that although the colors are presented incorrectly to the user when a PDF is drawn using Core Graphics, the underlying colors are correct when viewed in other PDF applications. This isn’t much solace to us and PDFpen, but it is much better than the alternatives.

Please feel free to reproduce and file duplicate bug reports, and we’ll keep our fingers crossed that this is addressed in macOS Sierra.

UPDATE (July 18, 2016):

Turns out, the bug is limited to PDFs with transparency layers.

The workaround is to wrap the drawing in begin / end transparency layer calls:

    CGContextRef context = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];
    CGContextBeginTransparencyLayer(context, NULL);
    CGContextDrawPDFPage(context, page);
    CGContextEndTransparencyLayer(context);

Keeping my fingers crossed it gets fixed in macOS Sierra.