;(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

Boteclando

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Kinjo Yamato: o centenário 'primo pobre' do Mercadão tem seu valor

Kinjo Yamato: o "primo pobre" do Mercadão tem seu valor - Miguel Icassatti/UOL
Kinjo Yamato: o 'primo pobre' do Mercadão tem seu valor Imagem: Miguel Icassatti/UOL

Colunista do UOL

02/03/2022 04h00

A pretexto de comprar frutas, legumes e comer pastel, uma ida a feira pode ser um eficiente exercício de networking, no qual feirante e freguesia podem sair ganhando. Ao tornar-me cliente fiel da banca de temperos do São-Paulino na feira da Vila Madalena aos sábados, via de regra meu bouquet garni vem turbinado.

Da mesma forma, o bananeiro corinthiano transforma a dúzia de banana prata em um cacho de quinze unidades e a moça da banca de verduras me presenteia as folhas de beterraba que os demais fregueses, por ignorância ou preconceito, pedem para que sejam descartadas — mesmo nos dias em que não levo a alface romana. No fim das contas, a feira livre tem sido um programa de que gosto, em que pese a inflação dos alimentos no meu bolso.

Uma pena que só descobri na meia-idade essa pequena e prazerosa obrigação de pai que se alegra em alimentar o ninho. Quando era criança, detestava ir à feira e o único motivo que me fizesse acompanhar minha mãe à feira era o suborno em dose dupla: pastel de carne com caldo de cana.

Se no texto anterior recorri brevemente às minhas lembranças de criança ao lamentar pelo estado atual do Mercado Municipal de São Paulo, tenho de ser justo e mencionar que talvez a razão pela qual eu não gostasse de ir à feira é que a feira, naqueles meus 3, 4 anos de idade, era na verdade o Mercado Municipal Kinjo Yamato, que nem barraca de pastel tinha.

Kinjo Yamato  - Miguel Icassati/UOL - Miguel Icassati/UOL
Imagem: Miguel Icassati/UOL

Espécie de primo pobre do Mercadão, o Kinjo Yamato completa 100 anos em 2022. Conhecido antigamente como "Mercado Caipira", esse entreposto funcionou inicialmente a céu aberto e vingou graças à perseverança dos produtores de frutas, verduras e legumes do Cinturão Verde paulista, a maioria de origem oriental, que comercializavam ali na região do Parque Dom Pedro as sobras de suas colheitas.

Um século atrás, ou a ocupar o prédio onde está até hoje e a cada dia se apresenta como uma antítese do vizinho Mercadão: seu charme está na simplicidade das suas 101 bancas e boxes; sua beleza, no conjunto arquitetônico que beneficia a entrada de luz natural.

E há ainda duas vantagens incomparáveis: 1. ali conseguimos circular entre as bancas sem o assédio folgado que virou default do outro lado da rua, ainda que haja concessionários que mantenham comércio também no Mercadão, como a Banca do Ramon e os Irmãos Gomes; 2. há poucas mas interessantes opções para uma refeição rápida.

Kinjo Yamato  - Miguel Icassati/UOL - Miguel Icassati/UOL
Imagem: Miguel Icassati/UOL
Kinjo Yamato  - Miguel Icassati/UOL - Miguel Icassati/UOL
Imagem: Miguel Icassati/UOL

A começar pelo Yanai, restaurante japonês que cobra R$ 45 por um combinado de sushi e sashimi com 15 peças. Próximo a uma das saídas para a Rua Barão de Duprat, a lanchonete Barão do Prato (que não poderia ter um nome melhor), costuma ter as mesas cheias na hora do almoço, graças a receitas triviais, como a feijoada e os PFs.

Numa esquininha do mercado está a Cafeteria Central e, em maior quantidade, os boxes de cozinha árabe e libanesa, como o Al-Nafora, no qual o chef Sami cozinha segundo os preceitos religiosos muçulmanos (Halal), o Susaj, o Manouchi — no qual vê-se a todo momento a reposição de esfihas (R$ 2) — e o Sabor da Pérsia, que também segue os preceitos Halal, e onde pode-se comer shawarma (R$ 16), assim como uma versão tropicalizada do kebab de carne ou de frango, ambos assados na brasa e montados no prato com arroz, feijão e salada (R$ 22).

Kinjo Yamato  - Miguel Icassati/UOL - Miguel Icassati/UOL
Imagem: Miguel Icassati/UOL

Optei pela versão tradicional do kebab, ou seja, servida como um sanduíche enrolado no papel alumínio (também R$ 16) e, confesso, me arrependi de seguir o exemplo do casal na mesinha ao lado, que fez um upgrade para essa boa mistura do Brasil com o Egito.

E, ao ar na Peixaria Cibeli para comprar o robalinho que será preparado no jantar, pude comprovar a minha tese segundo a qual feira é networking: em vez de cobrar os R$ 38 pelo peixe indicados na balança, o vendedor saiu-se com esta: "hoje eu deixo por 35 pra você virar freguês".

Kinjo Yamato  - Miguel Icassati/UOL - Miguel Icassati/UOL
Imagem: Miguel Icassati/UOL

Vai lá:
Mercado Municipal Kinjo Yamato. Rua da Cantareira, 377, centro, São Paulo.