;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

9 restaurantes brasileiros estão nos top 50 da América Latina

Jefferson Rueda, chef da cozinha da Casa do Porco  - Lucas Lima/UOL
Jefferson Rueda, chef da cozinha da Casa do Porco Imagem: Lucas Lima/UOL

do UOL

11/10/2019 08h59

A lista que elencou os 50 melhores restaurantes da América Latina foi divulgada nesta quinta-feira (10) em Buenos Aires, na Argentina. O primeiro lugar foi dado ao restaurante peruano Maido, que venceu pelo terceiro ano consecutivo o prêmio de "The Best Restaurant in Latin America 2019". Entre os campeões do sabor da gastronomia latina, estão nove restaurantes brasileiros.

O nome do restaurante do Peru significa "bem-vindo" em japonês e é o principal estabelecimento do chef Mitsuharu Tsumura, conhecido como Micha. O cardápio tem opções criativas com influência peruana e japonesa, como o cachorro-quente de peixe e arroz de ouriço do mar, além de opções à la carte e um balcão de sushi clássico.

Um dos ambientes do restaurante Maido, no Peru, do chef Mitsuharu Tsumura  - Reprodução - Reprodução
Um dos ambientes do restaurante Maido, no Peru, do chef Mitsuharu Tsumura
Imagem: Reprodução

Os brasileiros na lista

A melhor posição (6º lugar na lista) foi alcançada pelo A Casa do Porco (foto), localizado no centro de São Paulo, sob o comando do chef Jefferson Rueda, com muita carne suína no menu.

Entre outros paulistanos, o D.O.M, de Alex Atala, atingiu a 10ª posição do ranking, caindo 5 pontos do ano ado para cá. O Maní, de Helena Rizzo, apareceu na 18ª posição e o Evvai, de Luiz Filipe Souza, na 40ª. O Mocotó, de Rodrigo Oliveira, também figurou entre os melhores, na 43ª posição.

Entre os cariocas, apareceram o Oteque, de Alberto Landgraf, obteve a 23º lugar. O Lasai, de Rafa Costa e Silva, ficou no 24º lugar e o Olympe, de Claude Troisgros, na 35ª posição. O curitibano Manu, da chef Manu Buffara, estreou na lista no 42º lugar.

Confira a lista completa dos top 50:

1 - Maido, Lima, Peru
2 - Central, Lima, Peru
3 - Pujol, Cidade do México, México
4 - Don Julio, Buenos Aires, Argentina
5 - Boragó, Santiago, Chile
6 - A Casa do Porco, São Paulo, Brasil
7 - El Chato, Bogotá, Colômbia
8 - Leo, Bogotá, Colômbia
9 - Osso, Lima, Peru
10 - D.O.M., São Paulo, Brasil
11 - Quintonil, Cidade do México, México
12 - Isolina, Lima, Peru
13 - Astrid y Gastón, Lima, Peru
14 - Alcade, Guadalajara, México
15 - Pangea, Monterrey, México
16 - Sud 777, Cidade do México, México
17 - Maito, Panamá City, Panamá
18 - Maní, São Paulo, Brasil
19 - Rafael, Lima, Peru
20 - Mishiguene, Buenos Aires, Argentina
21 - Kjolle, Lima, Peru
22 - Harry Sasson, Bogotá, Colômbia
23 - Oteque, Rio de Janeiro, Brasil
24 - Lasai, Rio de Janeiro, Brasil
25 - Tegui, Buenos Aires, Argentina
26 - La Mar, Lima, Peru
27 - Rosetta, Cidade do México, México
28 - Máximo Bistrot, Cidade do México, México
29 - Chila, Buenos Aires, Argentina
30 - Ambrosía, Santiago, Chile
31 - Nicos, Cidade do México, México
32 - Le Chique, Cancún, México
33 - Parador La Huella, Jose Ignacio, Uruguai
34 - De Patio, Santiago, Chile
35 - Olympe, Rio de Janeiro, Brasil
36 - Mil, Cusco, Peru
37 - Restaurante 040, Santiago, Chile
38 - La Docena (Polanco), Cidade do México, México
39 - El Baqueano, Buenos Aires, Argentina
40 - Evvai, São Paulo, Brasil
41 - La Docena, Guadalajara, México
42 - Manu, Curitiba, Brasil
43 - Mocotó, São Paulo, Brasil
44 - Osaka, Santiago, Chile
45 - Elena, Buenos Aires, Argentina
46 - Gran Dabbang, Buenos Aires, Argentina
47 - 99, Santiago, Chile
48 - Malabar, Lima, Peru
49 - Mayta, Lima, Peru
50 - Narda Comedor, Buenos Aires, Argentina