;(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();
})();
Quatro quarteirões de Miami reúnem as tradições da terra de Fidel Castro, dos charutos feitos à mão ao rum que aquece a noite nos bares de salsa. Seja bienvenido à Little Havana!
Por Natália Manczyk, colaboração para Nossa, de Miami
O aroma oscila entre o terroso dos charutos e o torrado do café em Little Havana. Na região cubana de Miami, no entanto, o café vem de Ruanda, e o tabaco, da República Dominicana e da Nicarágua — reflexo do embargo econômico que desde 1962 proíbe produtos cubanos nos EUA. Ainda assim, Little Havana se mantém como o ponto de encontro vibrante da cultura cubana com a americana.
Little Havana ocupa 7 km², mas são quatro os quarteirões que concentram lado a lado as charutarias, os bares de salsa, as lojas vendendo a camisa guayaberae o café cortadito. Estão na CalleOcho, entre a 13th e a 17thavenue, e, estereotipados, viraram coisa para turista ver. Mas é bem possível ultraar as vitrines e entrar de verdade na cultura cubana.
PUBLICIDADE
O burburinho em espanhol já faz parte do som de Miami. Mas na esquina da 15th Avenue com a Calle Ocho, uma praça pulsa ao som de conversas em espanhol, a batida da salsa pelos bares e os baques ininterruptos de pedras de dominó. É o Domino Park, apelido do Parque Máximo Gomez, ponto de encontro de aposentados cubanos todos os dias.
As pedras na mesa têm algo de diferente. Elas chegam a ter nove pontos e não seis, como no dominó mais popular (o jogo de duplo-seis). Luís, morador de Miami há vinte anos, é um desses jogadores do chamado dominó de duplo-nove. Mas não é o formato que mais lhe agrada.
Luís é da antiga província cubana de Oriente. E explica: os primeiros cubanos que chegaram em Miami eram do ocidente de Cuba, onde o dominó tradicional é com o duplo-nove. Foi o jogo que trouxeram.
Em casa se pode jogar o dominó duplo-seis, mas nos parques públicos de Miami, não" Diz brincando Luís, com um fundo de verdade
PUBLICIDADE
No Domino Park há algumas regras curiosas. Só joga quem tem acima de 55 anos, é membro do clube de dominó e respeita as leis: é proibido cuspir no chão, gritar ou falar palavrões. A pena é coisa séria: suspensão do jogo de duas a quatro semanas.
Até a Revolução Cubana, em 1959, Little Havana era um bairro judaico. A partir de 1960, as turbulências em Cuba fizeram de Miami um refúgio para os exilados cubanos.
Na época, o governo dos EUA criou o Centro de Assistência Cubana no downtown (onde hoje é a FreedomTower). À medida que a região lotava, os cubanos seguiram para o oeste, onde deram vida a Little Havana.
De antigo ponto de encontro dos exilados cubanos aos almoços relaxantes nos domingos. É assim a trajetória do restaurante Versailles, um ícone de Little Havana desde 1971. Na calçada do restaurante que costumava ser palco para discussões políticas, hoje em dia ninguém mais se exalta. Nem com a espera pelas mesas.
PUBLICIDADE
Sejam famílias hispano-americanas ou cubanas, casais moradores de Miami ou turistas, todos aguardam com um sorriso no rosto, conversas bem mais leves do que 50 anos atrás e, nas mãos, indefectíveis mojitos preparados no bar ao ar livre.
Tem quem vá ao Versailles só para ficar do lado de fora mesmo: no La Ventanita. Os americanos chamam de vitrine de café, mas para nós, brasileiros, é como o balcão de padaria, ideal para croquetas, café con leche ou café cubano (um espresso forte e doce com espuma).
Já quem resolve sentar no salão tem um menu extenso com clássicos como o sanduíche cubano e o the criollo, prato com arroz amarelo, feijão preto, carne desfiada ao molho de tomate, porco frito, croquete de presunto, banana-da-terra doce, tamale cubano (massa de milho) e mandioca com mojo cubano (molho cítrico). Uma boa amostra da comida cubana.
PUBLICIDADE
As cores vibrantes latinas pintam os murais que se transformaram em pontos instagramáveis de Little Havana — ainda que esse não fosse o propósito quando foram criados nas décadas de 1980, 1990 e 2000.
É o caso do mural Little Havana, com cenas cotidianas, do colorido Calle Ocho ou do Black History, que lembra quem para em um dos estacionamentos do bairro sobre a contribuição dos negros na história.
Naquelas quatro quadras famosas de Little Havana não é preciso procurar para encontrar charutarias. Na Federico Empire Cigar Factory, o charuto é torcido na hora pelas mãos de Maria. Com a agilidade de quem faz há 25 anos o trabalho manual, ela ao mesmo tempo enrola folhas de tabaco e se concentra na novela em um iPad.
PUBLICIDADE
O público mais exigente em charutos se afasta um pouco do centro mais turístico de Little Havana e frequenta, por exemplo, a Santana Cigars. É naquele ambiente intimista de cadeiras de madeira e poltronas de couro onde latinos e norte-americanos relaxam entre a fumaça de um bom charuto.
Andy Santana, o proprietário, ou a infância indo com o avô, torcedor de charutos, a Pinar del Rio, o centro do tabaco em Cuba. Nos anos de 1990, chegou em Miami e reencontrou o avô que havia emigrado anos antes. Agora se orgulha de exibir na sala climatizada os charutos de marca própria e a extensa coleção que inclui caixas do respeitado charuto Arturo Fuente.
PUBLICIDADE
À noite Little Havana se transforma. Luminosos neon entram em cena e a música cubana ganha força. Um responsável é o bar Ball & Chain, no mesmo lugar desde 1935. Recebeu grandes nomes do jazz, como Billie Holiday, até ser transformado em outros negócios a partir de 1950. Em 2014 voltou à ativa trazendo música ao vivo e fazendo até quem a na rua se render e dançar o ritmo cubano.