Tim Heidecker has young kids, which means his “usual” diet consists of pasta, roast chicken, taco night, and leftovers. This week, though, following the release of Slipping Away, his new classic-rock album that includes some of his “most fun and freewheeling work, and some of his most pensive and apocalyptic,” the multi-hyphenate comedian-author-musician flew to Spain, where he’s directing a commercial. There, the local production company was able to ensure he could indulge a bit more than usual (including the occasional knockoff Sweetgreen). “They’ve really rolled out the red carpet, and that’s been very nice,” he says. “But I do miss taco night.”
Tuesday, October 15 Occasionally, my work takes me all over the world. Well, not all over the world, but it has taken me across most of the U.S., Canada, and Europe, and that’s at least some of the world. Usually, it’s on the road while I’m touring, where the meals can be exciting and regional, but just about as often, you end up slamming scoops of backstage hummus in your mouth.
This week, I’m at my bougiest, directing a commercial where I’m coddled and entertained by the local production company here in Barcelona, a city I’ve only heard wonderful things about but have yet to have the honor of visiting. I’m here for two weeks, but the commercial won’t shoot until the last three days, so while there’s work to do, preparing for the shoot, there’s also an awful lot of time to kill. I like to think I’m a man of simple pleasures and do not need the kind of coddling and entertaining I’m receiving, but I’m also happy to indulge in what the locals consider the very best of their city. Especially when I’m not picking up the bill.
I’m staying at the newish and lovely Seventy Hotel and, like all good European hotels, they offer a full spread of fresh and delicious breakfast. In the mornings, I normally just have a cup of coffee, but the coffee machine in my room isn’t working, and thus I am lured down to the spread, where I can’t resist the wide offerings of eggs, bacon, croissants, fruits, cheeses — unless otherwise noted, you can assume I’ve started my day down there, overdoing it.
We started our workweek, scouting various locations, some of which are by the beach. It’s overcast and not exactly swimming weather, so we mostly just walk around. In the early afternoon, all 20 of us roll into Escriba, a nearby seafood restaurant. All of the ordering is taken care of by our local producer and dished out family style. It’s perfecto: olives, jamón, and pan con tomate to start, then a large plate of mussels followed by a seafood paella. It’s all salty and rich and exactly what you’d want beachside in Barcelona.
Still full from lunch, we stay in and eat dinner at the hotel: ELEVATED Caesar salad — the romaine is grilled and sliced lengthwise — and onion soup with some shared French fries and a couple pints of Estrella Damm beer.
Wednesday, October 16 Hotel breakfast again, this time with a cappuccino, some Greek yogurt and cereal, and an omelet. I don’t speak Spanish, but I’m picking up a few words. Instead of saying okay, they say vale here, so I’ve been dropping that here and there. Mostly, though, I’m just trying to avoid doing the lisp. It seems disrespectful.
It’s casting day, so I’m stuck inside as people filter in two at a time to audition. There aren’t too many roles, and they’re all simple enough. We’re really just looking for a few interesting reactions to our main talent who’s already been cast, so it’s easy lifting but still takes up most of the afternoon.
For lunch, some small sandwiches are brought in from who knows where. I opt for the regionally appropriate ham sandwich and later a salad with a piece of grilled salmon on top from Honest Greens, which I think is like a knockoff of Sweetgreen but is only in Spain. The salad is good, but there’s too much dressing, or, to be honest, I don’t even know if you’d call it dressing; it’s more of a sauce. To me, a light drizzle is all that’s necessary.
For dinner, my British producers and I are taken out by the local production company for a fancy meal at Fismuler. It’s a small menu and everything looks great, so we just order a bunch of stuff to share. Our starters — razor clams “au gratin,” tender onion, burrata with pickled strawberry and herring, sea bream semi-cured, almonds, grapes, and a codfish omelet — are a little too on the raw-fish side for me; in general, I’m more interested in cooked food.
For the main course, we share the San Román schnitzel, which is topped with an egg and truffle mix that they crack on top and mix tableside, and a skirt of milk-fed lamb with roasted lettuce and chips. After some slightly stiff weather talk, the wine lubricants finally kick in and the conversation flows from culture to politics to family. We end up sharing everything on the dessert menu: cheesecake, chocolate cake with vanilla ice cream, tiramisu, mascarpone, coffee, cinnamon cake, ice cream with ginger and roasted pineapple. Lavish as can be.
I’m stuffed from the rich, gout-inducing food and two bottles of good Spanish wine. Luckily, we opt to walk back to the hotel, a mile or so, to burn a smidge of the calories consumed.
Thursday, October 17 I have the day to myself in the morning, so I decide to take in some tourist attractions: the Gaudi House, the Picasso Museum.
Afterwards, I hit La Boqueria for lunch. I love a good central market, and every respectable city has some version of it. I find a tapas place with an empty barstool called Bar Central and order some garlic prawns with papas bravas and bottled water, along with a cortado, my preferred late-morning second coffee.
It’s all good, but I’m beginning to tire of the richness of the local cuisine. There’s a tremendous amount of ham, which, while delicious, I can’t have at every meal, every day. Also a fixture at every meal? Beer and wine. It’s very much a part of the culture here, and I make a mental note to dry out a bit when I get home.
On my way out of the market, I pick up a strawberry and coconut smoothie, but I have to spend a minimum of three euros to use my Amex, so I also buy a blackberry and coconut smoothie, which I end up giving to a homeless man sitting outside.
I’ve been trying to keep in touch with my wife and kids back home, but the time difference is so extreme that we only really get to talk while my wife is getting the kids ready for school. The morning scramble is always crazy, so there’s not a lot of FaceTime — literal FaceTime and also technological FaceTime — but it’s nice to see them, even briefly.
I nearly skip dinner but finally cave and grab a doner kebab across the street.
Friday, October 18 Back in the office for final prep meetings. We order lunch from Honest Greens again. This time, I opt for the chicken piri piri and side salad. It’s absolutely delicious.
The rest of the day is uneventful, but later that night we continue our break from tapas with dinner at Petit Bangkok, a Thai place that comes very highly recommended. The three of us share the Massaman curry with duck, spring rolls, and sautéed veggies. Everything is a little too wet for my taste, but I’d give it a solid six out of ten.
Saturday, October 19 In the morning, we see the absolutely mind-blowing, how-can-this-possibly-exist La Sagrada Familia Basilica.
For some reason, before visiting, I had a vision in my head of Barcelona as a smaller beach town. But no; it is, of course, a major and very diverse metropolis. From one block to the next, it feels as if you’re traveling through time, walking from the Renaissance era into the future.
Later, we meet our local rep for an Italian lunch at Xemei in the Poble Sec neighborhood. I start with a beer, and we all share appetizers: baby scallops; burrata with tomato salad, black sesame, and almonds; and some steak tartare. Everything is perfect alongside some good fresh bread and peppery Spanish olive oil.
I order the cacio e pepe. It’s simple and perfectly cooked, its creamy texture punctuated with sips of red wine. For dessert, the perfect ending to an Italian meal: a scoop of pistachio ice cream and a spoonful of someone else’s tiramisu.
A long and lazy Saturday lunch in the sun leads to an afternoon of lazing in bed before we hit the town to see some music — an experimental jazz group from Berlin, which was about as enjoyable as it sounds. On the walk back, we sit in a plaza at a random tapas place and order some light bites — papas bravas, pumpkin hummus with pomegranate, and pimientos de Padrón, the small, salty, fried green peppers. I don’t usually try and seek out the very best of the best in eating, but I’m grateful that I get to work with some people who do.
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(135),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"4":4,"12":12,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(406),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"406":406,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]