Martinis and fries are perfect. In his first dispatch, our new diner-at-large looks for the best place to enjoy them.
ByE. Alex Jung,
a features writer at New York and Vulture
Fries and a martini at Mimi.
Photo: Dina Litovsky
Fries and a martini at Mimi.
Photo: Dina Litovsky
The ritual would start with a text: “Drink?” It was around 3 p.m., and the office was gray, and I had begun to identify with the carpet stain. This was back before hybrid work, when commuting was part of the daily routine and Café Loup still existed. Even then, the only good argument I could think of for mandatory in-person appearances at the office was the happy hour afterward. The restaurant closed down in 2019 because of unpaid taxes, and my work-life balance hasn’t been the same since.
Café Loup was many things to many people. For me, it was where I discovered that winning combination of martinis and French fries: the New York Happy Meal. The martinis at Loup were beastly things. Served however you liked, often by the silver-haired bartender, Dien Huynh, who had been working there since the early ’90s, they were poured to the brim so the top of the cocktail glass had a baby bump. He’d then give you the rest of the shaker as though you had ordered an innocent milkshake — fuck a sidecar. I had never seen such blunt cirrhotic excess before, and I haven’t since. The fries were not just nourishment; they were necessary. The food at Loup was forgettable, but not the fries: hot, salty, satisfying.
A martini is a conspiratorial drink — a glass made for aesthetics rather than ergonomics, like a wheezing pug. Its precariousness is its charm: You learn to slow down, lean in, and skim off the surface before lifting it off the bar (gently now) and clinking with eye contact. Martinis open you up to new intimacies. What better way to exchange flirtations or spill state secrets? And fries! The populist’s choice. They offer themselves up as a glorious bounty to share, and you can have as many or as few as you want. A sip of cold alcohol, a crunch of starch, and some fresh gossip can lift any spirit, ford any stream.
Already, martinis have emerged from lockdown as the drink of the city. These are feral times, and there’s an invitation of madness with a martini — a willingness to see where the night may go. There are dedicated martini menus and endless variations with everything from MSG to seawater drawn from Montauk. (The Ocean Martini at Honey’s, dotted with two cured autumn olives that look like blood clots, is fantastically briny.)
Still, finding a successor to Café Loup has proven difficult. The pandemic claimed many of its cousins — Lucky Strike, Jules Bistro, the list goes on — where I might have developed a routine. Of course, there are existing contenders. The Chelsea Hotel has the history and grit, but the newly refurbished Lobby Bar might be a touch too opulent with its Gilded Age cosplay. There is always the Odeon, “where celebrities from uptown wanted to slum with artists downtown,” as Richard Serra once said. Forty-two years later, the Odeon has maintained its sheen, only instead of Andy Warhol and his twinks, there is Emily Ratajkowski and Ziwe. Then there’s Lucien, the Odeon for people with struggling businesses on Grailed. They are all options. They are also all scenes: too many other people wanting to see and be seen.
The problem, I realize, is me. I am guilty of nostalgia. Café Loup had an easy glamour about itself, where the afterparties for the New York Book Critics Circle Award took place and whose uncertain fate became the subject of Zadie Smith’s short story “Downtown.” You would see famous people there, too, but only because they lived around the block. It was a neighborhood bar with neighborhood aspirations. I remember one night when I heard a familiar husky voice, like dry leaves on grass, asking if my friend and I “wouldn’t mind” moving down a seat to make some space. We obliged, and Patricia Clarkson, a regular, bought us a round for our trouble. Café Loup was the sort of place where you might discover middle age was liberating and you didn’t always have to try so hard.
Still, I endeavored, over the course of a few days, to find a new house to haunt. I had my own guidelines. I wanted a weekday kind of joint with some dignity: no reservations, no waiting, no groveling. (The growing practice of reserving bar seats on Resy will not be tolerated under any circumstances.) Geographically, it should be practical for the office crowd, which places it somewhere between midtown and the financial district. More than anything, I’m chasing a feeling of familiarity and affection that accrues over time — from another round to another year.
Before the holidays, a friend texted that she was back in the city. She had spent a long, emotionally taxing time with her family. We agreed to meet up at Raoul’s, the once “discreet” celebrity hangout with an awesome burger. It was around 6 p.m., and the place was already mobbed — a second string of people climbing into the laps of the seated bar patrons to get to their drinks. On a Tuesday? The hostess took our names, and we walked out to find another place. We went to Lord’s to try their “proper English chips” but encountered a similar problem. Outside, I ran into a pair of friends, a newlywed couple, who said that they had just come from Mimi a couple blocks away. We ran. We needed warmth and alcohol.
Mercifully, there was room at the inn. Mimi has a romantic moodiness: dimly lit with a gorgeous marble slab walling off the bar. The bartender had a fun insouciance about him and made good martinis (Botanist gin with a twist), though they came in little glass cups that my friend said was “like putting a king in Old Navy cargo pants.” The fries were not good — little stubs of grease that tasted as though the kitchen had gathered cold dregs and refried them. When I asked for mustard, the waiter said there was none at all, and it was unclear if this was a temporary shortage or a political position. Still, I feel warmly toward Mimi: a quiet alcove good for talking. It maintains nice touches, like a glassful of loosies (American Spirit yellows) if you’re in the mood for a smoke. In terms of what we needed that night — time to unspool and connect — Mimi worked just fine.
A miserable rain continued to hang over the week’s forecast. The next day brought together new friends with old, one of whom used to work at Vanity Fair. So naturally we went to the Waverly Inn. I hoped that since Graydon Carter had left the magazine, his restaurant would have cooled too. After all, it is objectively beautiful with its cherry lipstick booths and Edward Sorel murals. The front room was glowing with a fireplace, but I remembered just how cramped the bar was once it was awash with a sea of Patagonia vests and blowouts. The fries were underseasoned, and even three martinis deep, I knew the search would go on.
As with any institution, it’s best when you have a hand to pull you in. A friend had introduced me to Café Loup, and the first time I went to Gene’s, it was when Dan Simon, the editor of Seven Stories Press, invited me for a drink. He’d just gotten back from Stockholm, where he was celebrating Annie Ernaux’s win for the Nobel Prize in Literature. Gene’s is 103 years old, and from the dip downstairs at the entrance, I could feel the well-worn tread of regulars before me. Gene’s was one of the few places he still went out to, and it suited him: scrappy and a little shabby but smart and self-assured. I liked both very much.
I went back to confirm my suspicion that I too could grow old and drunk here. The bartender Franco is the captain at the helm. Upon my arrival, he already seemed to remember I’d had a martini with Hendricks. A petite Italian American woman named Debra came in and eyed my glass. “Are you drinking vodka or…?” Gin, I told her. “Oh, I’ll do vodka.” Franco was already pouring the Ketel One. She’d been coming to Gene’s for 35 years and said she was celebrating her retirement from the SEIU that very day. Also taking her seat was a younger woman, who came for the first time because this was her uncle’s favorite place when he lived in New York. She had just seen him up in Hudson and promised to get a drink here. Franco remembered his name (Simpatico) and more importantly his drink: a Grand Manhattan with a twist of orange. She got one in his honor.
The fries arrived, committing the gravest sin fries can: They were limp. I ate a couple and put them away. Before she went into the dining room, Debra recommended the manicotti but added “Everything is good here” with the conviction of a true believer. I cannot swear by the food, but I was taken by the complimentary crudité: a serving platter of carrots, celery, and radishes amid a scattering of ice chips. The vegetables were crisp and pleasing. Maybe this will be the beginning of my health-goth era: martini and celery sticks. Who ever went to Café Loup for the food, anyway?
`;
// 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(3),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(136),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,"3":3,"12":12,"124":124,"136":136}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),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(408),_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,"408":408,"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","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.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();
// ]]