# Falta pimenta no Modern Love Amsterdã
Caloni, 2023-03-03 cinema series [up] [copy]No começo pensei que era alguma coisa relacionada com ser um país ou cidade com longa data de cultura progressista, o que tornaria todos os dramas de lugares mais complicados como Nova York e Japão meros detalhes do café da manhã. Com o passar dos episódios vejo que este volume da série que é baseada em um artigo de New York Times toma uma forma mais próxima de Easy, a série netflixiana onde problemas aparentemente complicados de relacionamento se resolvem em meia hora. Porém, nem isso a série na cidade holandesa mantém. Em dado momento, quando se passa a história de um casal que vive um relacionamento aberto de longa data, se torna claro que os personagens são muito reduzidos. Eles não possuem personalidade. Com o medo de impor valores em torno de pessoas fictícias que poderiam se tornar reais demais para as mentes sensíveis consumidoras da série, a trama se torna invisível. Não nos interessa pela didática se não há sangue e lágrimas. Do contrário, de que valem essas histórias de amor?
# Combinação
Caloni, 2023-03-04 computer [up] [copy]Tentando agilizar um dos desafios de programação que tenho treinado encontro como fazer combinação em C++ ou C de maneira mais rápida que a fórmula oficial que requer calcular o fatorial e mais algumas contas. O nome desse problema é NCK, de N Chooses K, onde N é o número de elementos e K a amostragem obtida para a combinação. O resultado é instantâneo, pois se trata de um algoritmo O(n).
No entanto, apliquei a mudança no código sem entender exatamente o que estava acontecendo. Para isso decidi perguntar para o ChatGPT.
Olá. Me explica por que o código abaixo que implementa em C o algoritmo NCK funciona?
unsigned nChoosek( unsigned n, unsigned k ) { if (k > n) return 0; if (k * 2 > n) k = n-k; if (k == 0) return 1; int result = n; for( int i = 2; i <= k; ++i ) { result *= (n-i+1); result /= i; } return result; }
Olá!
Este código implementa o algoritmo de combinação NCK, que calcula o número de maneiras diferentes de escolher k elementos a partir de um conjunto de n elementos. Ele funciona de forma eficiente usando a fórmula matemática de combinação:
nCk = n! / (k! * (n-k)!)
Onde n! representa o fatorial de n (o produto de todos os números inteiros positivos de 1 a n).
O código começa verificando se k é maior que n. Se for, retorna 0, já que não há maneira de escolher k elementos de um conjunto de tamanho menor que k. Em seguida, verifica se k é maior que a metade de n. Se for, redefine k para n-k. Isso é feito porque, por exemplo, 6C4 é igual a 6C2, então, ao calcular a combinação, é mais eficiente calcular a menor das duas.
Se k for igual a 0, o código retorna 1, pois há apenas uma maneira de escolher 0 elementos de um conjunto (não escolher nenhum).
O código então inicializa um resultado como n e executa um loop de 2 a k. Em cada iteração do loop, ele multiplica o resultado pelo próximo número de n-i+1 e divide pelo valor de i. Isso é feito para calcular o valor de nCk com a fórmula acima.
No final do loop, o código retorna o resultado.
Espero ter ajudado!
Vamos por partes. Poderia me explicar por que ocorre que 6C4 e 6C2 tenham o mesmo resultado?
Claro, vamos lá!
A notação "nCk" é usada para representar o número de combinações de k elementos que podem ser escolhidos de um conjunto de n elementos. A ordem em que os elementos são escolhidos não importa.
A fórmula geral para nCk é:
nCk = n! / (k! * (n-k)!)
Agora, vamos ver por que 6C4 e 6C2 têm o mesmo resultado.
Para calcular 6C4, usamos a fórmula acima e substituímos n por 6 e k por 4:
6C4 = 6! / (4! * (6-4)!) = 6! / (4! * 2!) = (6 * 5 * 4 * 3 * 2 * 1) / ((4 * 3 * 2 * 1) * (2 * 1)) = 15
Para calcular 6C2, usamos a mesma fórmula e substituímos n por 6 e k por 2:
6C2 = 6! / (2! * (6-2)!) = 6! / (2! * 4!) = (6 * 5 * 4 * 3 * 2 * 1) / ((2 * 1) * (4 * 3 * 2 * 1)) = 15
Como podemos ver, o resultado é o mesmo para ambas as combinações, que é 15. Isso ocorre porque escolher 4 elementos de um conjunto de 6 é o mesmo que não escolher 2 elementos. Em outras palavras, se temos 6 elementos e escolhemos 4, então, os outros 2 elementos não escolhidos são automaticamente determinados. Portanto, as duas combinações são iguais.
Espero ter ajudado!
Certo. Nesse caso qualquer NCK é igual a outro desde que N1 seja igual a N2 e K1 seja o complemento de K2 referente a N?
Sim, você está correto! Isso é conhecido como a propriedade de complementaridade de combinações.
A propriedade de complementaridade de combinações afirma que, se escolhermos k elementos de um conjunto de n elementos, então o número de maneiras de escolher os k elementos é o mesmo que o número de maneiras de escolher os n-k elementos restantes.
Isso pode ser visto usando a fórmula de combinação:
nCk = n! / (k! * (n-k)!)
Se escolhermos k elementos, então o número de maneiras de fazer isso é nCk. Mas se escolhermos os n-k elementos restantes, então o número de maneiras de fazer isso é (n choose n-k), ou seja:
nC(n-k) = n! / ((n-k)! * k!)
Observe que a única diferença entre as duas fórmulas é que k e (n-k) foram trocados. Isso significa que nCk e nC(n-k) são iguais!
Por exemplo, se quisermos encontrar 5C3, podemos aplicar a propriedade de complementaridade e dizer que 5C3 é o mesmo que 5C2, já que 2 é o complemento de 3 em relação a 5. Portanto:
5C3 = 5C2 = 10
Espero ter esclarecido!
Esclareceu de maneira impecável. O segundo ponto que gostaria de entender em sua explicação inicial é a parte do código que inicializa o resultado como n e executa um loop de 2 a k. Por que esses valores são utilizados para a obtenção do resultado?
Bom, o loop de 2 a k no código é usado para calcular o resultado da combinação, aplicando a fórmula:
nCk = n! / (k! * (n-k)!)
No loop, a variável result é inicializada com o valor de n, que representa o número de elementos no conjunto original. Em seguida, o loop itera de i=2 até i=k, que é o número de elementos que queremos escolher.
Dentro do loop, o resultado é atualizado multiplicando o result pelo próximo elemento do conjunto n-i+1 e dividindo pelo i. A fórmula exata usada para atualizar o resultado é:
result *= (n-i+1); result /= i;
Essa atualização é feita para cada elemento escolhido, para garantir que todas as combinações possíveis sejam consideradas. No final do loop, result conterá o valor final da combinação de n elementos escolhidos k.
A inicialização de result com o valor de n é feita porque cada elemento escolhido para a combinação pode ser selecionado apenas uma vez. Então, no início, temos n opções para escolher o primeiro elemento. Depois de selecionar o primeiro elemento, restam n-1 opções para escolher o segundo elemento, n-2 opções para escolher o terceiro elemento, e assim por diante. Multiplicando esses valores, obtemos o fatorial de n até o n-k+1.
No entanto, como a ordem dos elementos escolhidos não importa em uma combinação, precisamos dividir pelo fatorial de k no final para eliminar as permutações redundantes, resultando na fórmula:
nCk = n! / (k! * (n-k)!)
Espero que isso esclareça como a inicialização de result com o valor de n e o loop de 2 a k são usados para calcular o resultado da combinação.
Ficou um pouco mais claro. No fundo este algoritmo é uma maneira inteligente de aproveitar os recursos computacionais para se chegar a um resultado sem precisar recalcular os inúmeros fatoriais como na fórmula original. Você teria alguma maneira de otimizar este algoritmo ainda mais?
Sim, você está correto novamente! O algoritmo NCK apresentado é uma forma mais eficiente de calcular combinações sem a necessidade de calcular fatoriais.
Uma otimização adicional que pode ser feita é a redução do número de divisões realizadas no loop. Em vez de dividir o resultado por i a cada iteração, podemos acumular o produto dos i's e dividir pelo fatorial de k no final.
Dessa forma, o loop seria atualizado para:
int result = n; int i; for (i = 2; i <= k; ++i) { result *= (n - i + 1); product *= i; } return result / product;
Essa otimização reduz o número de divisões realizadas no loop de k para apenas uma, na linha final. Isso pode ajudar a melhorar a eficiência do algoritmo, especialmente para valores maiores de n e k.
Além disso, pode ser útil implementar uma verificação adicional para o caso em que k é muito pequeno em relação a n, já que nesse caso pode ser mais rápido usar a fórmula de combinação direta, em vez de executar o loop. Por exemplo, para valores de k abaixo de 5 ou 6, pode ser mais rápido simplesmente calcular a combinação diretamente usando a fórmula de combinação, em vez de executar o loop.
Espero que isso ajude!
Muito interessante sua sugestão de otimização. Acredito que isso tenha relação com a maneira com que o computador executa divisões, sendo mais rápido aplicar k-2 multiplicações e apenas uma divisão do que k-2 divisões, certo?
Sim, exatamente! A divisão é geralmente mais cara do que a multiplicação para a maioria das CPUs modernas. Portanto, minimizar o número de divisões pode ajudar a melhorar o desempenho do algoritmo. No caso do algoritmo NCK, reduzir o número de divisões pode ser particularmente importante porque a divisão é executada a cada iteração do loop, o que pode ser caro para valores grandes de k.
A otimização que propus, que usa um produto acumulado em vez de divisões repetidas, ajuda a reduzir significativamente o número de divisões necessárias para calcular a combinação, tornando o algoritmo mais eficiente em termos de tempo de execução.
Certo. Por enquanto é só. Obrigado pelas suas esclarecedoras explicações.
De nada! Fico feliz em ter ajudado. Se tiver mais alguma dúvida, é só perguntar.
# Parei de tentar ser crítico (de cinema)
Caloni, 2023-03-04 [up] [copy]Eu deveria parar nesse momento de escrever sobre filmes, exceto as cabines e eventos especiais. Por muitos anos eu escrevi que nem um retardado, comecei a ler uns livros doidos, a assistir umas análises nervosas. Fiz dois cursos com Pablo Villaça, uma referência local aos que levam a sério a arte. Tudo que fiz e continuei fazendo foi até o momento em que eu consegui "sentir" o que é ser crítico de cinema como uma profissão. O trabalho descomunal de estudar arte, filosofia, história. De assistir aos clássicos, de entender as correntes que nos antecederam. E, por fim, acompanhar cada novo ano as produções, os lançamentos, os novos talentos e os existentes. Os festivais de conteúdo duvidoso. As inúmeras sessões com filmes experimentais. As retrospectivas da Mostra. Os textos dos colegas. Eu enxerguei tudo isso faz alguns anos, mas por algum motivo continuei tentando evoluir mesmo sem tempo de me dedicar profissionalmente. Agora acabou. Vou largar o ritual de todo filme escrever e anexar à rotina de blogueiro falar sobre o que ando vendo. Não sou obrigado e nem vocês em consumir conteúdo aquém dos que vivem para isso. Voltou para mim, depois de quase 13 anos, a ser um hobby light como os textos eventuais sobre programação. Sobre café. Sobre vinhos. É isso que torna um blogue valioso. Ele registra o momento sem o compromisso de mais. O que foi, foi. E o que virá, só Deus sabe.
# Carandiru
Caloni, 2023-03-05 cinema movies [up] [copy]O filme é baseado no livro do Drauzio Varella, aquele médico que na pandemia falava que todos íamos morrer. Quem interpreta o doutor no filme é um sujeito que só fica sorrindo e fazendo perguntas bestas aos pacientes no presídio. Tudo soa muito falso e teatral. O fato de vários personagens serem interpretados por um elenco conhecido das novelas ajuda ainda mais. Cada ator e atriz quer brilhar em seu momento de viver um ser humano contra o sistema e oprimido por ele. Oh, glória! Várias histórias supostamente tristes de bandidos são mostradas. O motivo é contextualizar o espectador sobre como eles chegaram a ser presos e para que todos saibam que ninguém presta mesmo naquela cadeia. Há também os trouxas que caíram lá, mas já estavam indo pelo caminho errado do lado de fora. De qualquer forma, o tom teatral diminui o peso dos dramas. O diretor Hector Babenco se consagra na parte onde ocorre a famosa chacina do Carandiru, em 92, mostrando sangue caindo pelas escadarias e o amontoado de corpos nus, de castigo no quintal, após a polícia militar impor ordem. Eu lembro dos meus professores comentando sobre esta calamidade na quinta-série. Houve uma "comoção pública". Hoje entendo a histeria do "direitos humanos" ao constatar pelo próprio filme que na realidade morreram apenas cem presos de sete mil. O objetivo: proteger os outros presos. Morreu foi pouco, ou o suficiente.
# Fiz Trança de Banana
Caloni, 2023-03-05 cooking [up] [copy]Essa receita originalmente iria cará e foi adaptada para usar banana bem madura. Além da banana ou do cará, os outros ingredientes são: farinha de trigo, fermento biológico, ovos, leite, manteiga e açúcar. Pegue a banana e cozinhe em uma panela, reduzindo o líquido ao máximo. Quando a banana esfriar, pese-a e use o dobro do peso em farinha de trigo. Cada 1kg de farinha faz três tranças de tamanho médio e vai 6 ovos. Os outros ingredientes estão pesados em porcentagem da farinha: 20% de manteiga, 20% de leite e 25% de açúcar em média. Dependendo do quão doce está a banana e o quão doce você deseja que fique o pão você pode aumentar ou reduzir a quantidade de açúcar.
Para preparar a massa comece pelo fermento. Se usar o instantâneo, faça uma esponja com 2% do peso da farinha e a mesma quantidade de farinha e água (50g a 100g). Misture tudo e aguarde cerca de 1h em temperatura ambiente para vê-la ativada, cheia de bolhas. Se quiser incluir fermento natural alimente-o e aguarde ele dobrar de tamanho. Você pode usar um dos dois fermentos ou os dois. Se no meio houver o instantâneo o crescimento será mais rápido devido a ele, e o fermento natural será responsável pelo aroma e maciez. No caso de usar apenas o fermento natural, tenha paciência: os tempos de fermentação são maiores.
Quando os fermentos estiverem ativos é hora de juntá-los com a farinha e os ovos. Misture tudo e adicione 20% de leite, excluindo a água já usada para os fermentos. Sim, é um cálculo complexo de porcentagem e regra de três; boa sorte em ser padeiro. Depois de misturado aguarde 10 minutos descansando para realizar uma rápida autólise e relaxar a massa para a sova. Depois desse período a sova precisa ser bem feita, pois essa massa tem os mesmos desafios do panetone de colocar ingredientes que dificultam seu crescimento: o açúcar e a manteiga, que devem estar já pesados esperando para entrar na massa. A manteiga integra melhor cortada em cubinhos.
Aliás, você pode já adicionar a manteiga e o açúcar durante a sova ou aguardar até a massa começar a ficar elástica. Não notei muita diferença entre esse antes e depois, o trabalho é o mesmo. É comum a massa ficar grudenta, mas tenha paciência. Atente para que ela esteja em ponto de véu e macia. Depois de cerca de 15 minutos sovando e misturando os ingredientes já deve estar nesse ponto. Se não estiver deixe descansando mais 10 minutos e continue. Quando a massa estiver elástica e ponto de véu, é só colocar em um recipiente fechado formando uma bola e deixar crescer até dobrar. Você pode deixar em temperatura ambiente ou na geladeira, ou em ambos, conforme seu ritmo. Na geladeira o crescimento irá desacelerar, sendo possível até deixar a noite inteira. Em temperatura ambiente é questão de uma ou duas horas, exceto se for fermento natural, o que pode demorar até a noite inteira se for uma noite fria. O objetivo do crescimento é dobrar de tamanho.
Depois de crescida você precisa de uma superfície lisa, limpa e com um pouco de farinha para não grudar. Separe cada porção de cerca de 300g de massa em três pedaços e vá alongando-os em fios grossos, puxando, segurando duas pontas como se fosse uma corda de pular. Pode usar a gravidade para isso, só levantando a massa de um lado e do outro. Só cuidado para não alongar demais. Forme três fios longos um do lado do outro, junte as três pontas e comece a trançar a massa, levando o fio da ponta para o meio, depois o da outra ponta, e assim por diante. Mantenha bem aberto o espaço entre as linhas para não grudar, mas na hora de juntar coloque um em cima do outro e evite puxar demais, pois perde volume. Ao final, junte as três outras pontas. Leve para uma forma untada ou com papel manteiga (vai ser melhor para tirar depois) e aguarde crescer mais por uma hora. É capaz que a trança até dobre de tamanho novamente.
Quando estiver pronta para ir ao forno pré-aqueça em 180 graus. Para uma cobertura opcional pode-se misturar açúcar (de preferência cristal) com canela e gema, ou até o ovo inteiro; pincele essa mistura por cima da massa. A gosto. Deixe assando por pelo menos 20 minutos até cerca de meia-hora ou até a parte externa dourar. Aguarde esfriar para tirar da forma sem desmanchar.
Pão de banana sem açúcar. Experimentei tirar o açúcar do pão de banana e aumentar em 75% a participação da banana na massa, mas o resultado ficou bem sem gosto. Fiz isso testando o fermento fresco que inadvertidamente coloquei demais para alimentar e ele acabou desenvolvendo muito. Agora eu tenho ele alimentado no freezer (e com sal!), mas o pão de banana cresceu. Na próxima devo testar com 100% de banana para farinha. Estou pensando em como deixar a banana mais doce ainda, seja reduzindo mais ou usando bananas bem maduras. To continue.
Fiz uma mega porção com 800g de banana reduzida que estava no freezer e 1,5kg de farinha. Todo o resto segui as proporções oficiais de 20% de manteiga (300g), 30% de açúcar (500g) e 6 ovos por kg de farinha, o que deu 9. Tudo foi feito com fermento natural, 450g já alimentado (150g de base, a mesma quantidade de farinha e água). Por causa da água do fermento fiquei na dúvida sobre o nível de hidratação. Cheguei a fazer os 20% de leite, mas ao hidratar a massa com metade já notei que estava líquida demais e descartei o resto. De fato, após fermentar a noite inteira em temperatura ambiente o resultado estava bem hidratado e tive que colocar bastante farinha na bancada. Fazendo a conta correta agora pela quantidade de farinha total, incluindo a do fermento natural (1500+(450/2)) daria 345.0 de leite. Porém, a água incluída no fermento já é responsável por 225.0, o que deixa a quantidade de leite que resta em 120g (considere ml==g). Ou seja, devo ter colocado 80g a mais do necessário. Porém, acabou dando tudo certo. Ao final do crescimento e montagem deu três tranças médias e uma gigante. Assado por menos de meia hora a parte externa levemente tostada. Usar o papel manteiga tornou muito mais simples retirar da forma após frio. O tamanho gigante foi o único que ficou encruado no meio e devo aposentar este tamanho, que não é prático e tende a queimar nas bordas antes de assar (necessita teste). Pelos cálculos 300g de farinha faz uma trança, ou seja, cada 1kg de farinha gera três porções. As tranças médias ficaram fofinhas e macias. Uma perfeição.
Fiz novamente trança de banana, mas dessa vez simplifiquei o método e agilizei com fermento instantâneo. Fica algumas dicas e atualização do preparo.
Terceira vez fazendo, e dessa vez acertei o ponto. É necessário mais que o dobro de banana reduzida para o gosto da fruta finalmente ser sentida no pão. Fiz no frio do inverno e a fermentação apenas com fermento natural durou umas 48 horas até finalmente estar pronto para o forno, mas valeu a pena o esforço em sovar e em descansar a massa. A textura ficou muito boa, próxima de um panettone. Cresceu bem e um tanto pegajosa. No final usei uma dica da Mitiko de usar banana como cobertura: piquei uma banana e fiz uma massa com gema, canela, açúcar cristal e um pouco de água. O único porém dessa fornada foi o uso de uma banana azeda (acho que nanica), mas usar uma banana mais doce deve corrigir.
Além se trocar o cará por banana usei meu fermento natural (mas depois pedi ajuda e coloquei um pouquinho do instantâneo na esponja) e sovei a massa após misturar tudo. Com esse frio demorou 24 horas para finalmente crescer, mas funcionou. Longuíssima fermentação. O sabor não ficou quase nada de banana. Pretendo usar mais na próxima.
# Algorithms for Dummies
Caloni, 2023-03-14 books interview computer [up] [copy]De John Mueller e Luca Massaron, este livro mantém a fama da série "for Dummies", com livros de conteúdo bem estruturado, acessível para a maioria dos leitores e ainda útil para quem já está acostumado com um termo ou dois do assunto, ou até o assunto inteiro.
A linguagem usada para resolver a criação ou uso de algoritmos conhecidos é o Python, o que inibe a barreira de entrada até mesmo de quem nunca programou na vida. Não contentes com isso, o autores colocaram dois capítulos no início que ensinam o leitor o bê-a-bá do Python e das bibliotecas utilizadas. O código-fonte está todo disponível em um repositório do GitHub.
Existe uma introdução sobre complexidade de algoritmos que é corrida, mas igualmente útil, pois ajuda a não nos aprofundarmos tanto assim na matemática envolvida quando se fala em velocidade e economia de recursos ao executar um código na prática, mas ao mesmo tempo mantém na memória a questão de como desenhar o algoritmo terá impacto profundo em sua execução com uma massa de dados maior que a ideal.
Ainda estou lendo, mas já consegui uma frase intrigante logo no início, referente a como escrever soluções recursivas, intuitivas por natureza, difíceis de mantê-la sob controle.
When working with recursion, you must remain proactive or endure the consequences later.
Without organization, making any sort of decision becomes impossible. An algorithm might end up going in circles or giving inconvenient output.
When faced with difficult problems, you quickly discover that no magic potion exists for making wishes come true or silver bullets to dispel bad things. Similarly, no algorithmic technique saves the day every time. That's the no-free-lunch principle often quoted in the book. The good news is, you can arm yourself with different general techniques and test them all on your problem, because you have a good chance that something will work well.
A greedy algorithm reaches a problem solution using sequential steps where, at each step, it makes a decision based on the best solution at that time, without considering future consequences or implications.
Two elements are essential for distinguishing a greedy algorithm: At each turn, you always make the best decision you can at that particular instant. You hope that making a series of best decisions results in the best final solution.
Puzzle problems, in which the number of possible decisions can become huge, are more frequent than you expect. Some problems of this type have already been solved, but many others aren't, and we can't even transform them (yet) into versions we know how to solve. Until someone is smart enough to find a generic solution for these problems, a greedy approach may be the easiest way to approach them, provided that you accept that you won't always be getting the best solution but a roughly acceptable one instead (in many cases). These difficult problems vary in characteristics and problem domain. Different examples of difficult problems are protein unfolding (which can help cure cancer) or breaking strong password encryption, such as the popular RSA cryptosystem
In the 1960s, researchers found a common pattern for all of them: They are all equally difficult to solve. This pattern is called the NP-completeness theory (NP stands for nondeterministic polynomial). In a sense, these problems distinguish themselves from others because it's not yet possible to find a solution in a reasonable time —that is, in polynomial time. Polynomial time means that an algorithm runs in powers of the number of inputs (known as P problems). Linear time is polynomial time because it runs O(n1). Also quadratic O(n2) and cubic O(n3) complexities are polynomial time, and though they grow quite fast, they don't compare to NP-complete complexity, which is usually exponential time, that is, O(cn).
(...) when you can break down a problem into nested subproblems can dynamic programming beat brute-force approaches that repeatedly rework the same subproblems.
You can trace dynamic programming to two large families of solutions: Bottom-up: Builds an array of partial results that aggregate into a complete solution Top-down: Splits the problem into subproblems, starting from the complete solution (this approach is typical of recursive algorithms) and using memoization (defined in the next section) to avoid repeating computations more than once
# Viveiro
Caloni, 2023-03-15 cinema movies [up] [copy]Filme cheio de metáforas sobre a vida de um casal de classe média. Ainda um jovem casal, eles são obrigados a viver o resto do seu sonho americano em 2x (ou mais), enclausurados em um condomínio de casas, tendo que cuidar de um filho que não pediram. Você já pescou algumas das metáforas. O filme foi feito para o espectador sair da sessão se achando muito esperto por entender algumas delas. Porém, o próprio filme não deve entender metade, pois joga símbolos na nossa cara como a evitar que olhemos para dentro e enxerguemos o vazio que é este filme.
# Passei em uma entrevista técnica?
Caloni, 2023-03-19 [up] [copy]Quis que o título deste poste fosse o contrário do anterior onde falo que não consegui resolver um problema simples de programação em meia hora com minha entrevistadora de olho. Porém, eu não sei se eu passei no teste. O que eu sei é que dos dois testes de programação que fiz, online pelo HackerRank, mas sem monitoração, ambos os códigos resolviam o problema, embora o último deles tivesse uma complexidade acima do desejável.
Este foi um teste de uma hora e meia com 20 e tantas perguntas de C++ moderno, a maioria sobre obtenção de tipos por expressão e algumas maluquices com código criativo, e dois problemas de fazer código. Tudo feito pelo site. Você começava a fazer e um contador de 90 minutos dizia quando você deveria parar.
Infelizmente não copiei os exercícios e seus links não servem mais. Agora resta o código. Então o jeito é continuar praticando.
# As Leis de Lídia Poët
Caloni, 2023-03-20 cinema series [up] [copy]Pautada em uma época onde mulheres possuíam um papel bem definido na sociedade, pelo menos por enquanto, esta série italiana explora uma protagonista sem medo ou noção, que se submete a vários riscos da época, como sair à noite sozinha. O mais curioso é que a série não dramatiza este risco. Do ponto de vista de sua criação esta é uma história contemporânea, com o único detalhe sendo a época histórica para impedir a advogada formada de seguir com a profissão. Igualmente curioso, pois a série se revelou desde o início como investigativa. Proibida ou não, esta moça será mais Sherlock que Saul Goodman. Embalada em rock alternativo com batidas bem definidas para te mostrar o impacto entre a música moderna e a época antiga. Sentiu?
# Além da Imaginação (The Twilight Zone)
Caloni, 2023-03-20 cinema series [up] [copy]Pensava eu que esta reimaginação da série icônica da TV merecia uma assistida, mas após ver o primeiro episódio, O Comediante, entendi que esta série não possui relação com a anterior (exceto o nome). Seria nosso ceticismo exacerbado que alimenta um clima tóxico, não propício para histórias no limiar de nossas crenças e conhecimento? A metáfora dos comediantes que fazem carreira em cima de ataques pessoais é óbvia é engraçada apenas por causa da alienação dos idealizadores, imersos em uma bolha de politicamente correto querendo soar moralista ou algo do tipo.
Os próximos episódios não ficam melhores. Pelo contrário. Até os com potencial, como o da mãe que consegue rebobinar as infinitas gravações de abuso do seu filho por um xerife vindo de uma ficção delirante dos anos 60, adota um final feliz que desmerece nossa atenção. E a tentativa de um novo episódio do avião, um dos episódios do longa-metragem feito inspirado na série original, se torna patético quando percebemos que suas intenções não são de criar nada novo, mas de apenas homenagear um conteúdo de TV que não será renovado. Talvez seja até cancelado. Os novos tempos são mais tenebrosos do que nossa imaginação consegue perceber.
Como diriam meus amigos: todas as teorias da conspiração se tornaram verdade. Agora não tenho mais o que fazer. Talvez assistir a remakes infinitos com versões politicamente conscientes de séries antes instigantes. Ou pelo menos até que a cara e a voz de Jordan Peele fiquem simpáticas? Duvido. Depois de assistir à primeira temporada, incluindo o último episódio onde ele vira personagem, posso afirmar que o narrador deste novo Além da Imaginação é muito, muito ruim. Ele não tem carisma algum. Parece um zumbi sisudo olhando para a câmera e recitando um texto brega que tenta explicar uma história fantástica e dessa forma consegue dois desastres em um só para a série: nos tratar como idiotas e estragar todo o brilho que existia na trama até alguém pagar de chatão do rolê e ficar poetizando o significado dessas histórias de acampamento. É um poeteiro profissional, justamente o que uma série como essa não precisa.
No entanto, a segunda temporada começa melhor. É como se houvessem decidido retirar as críticas sociais para finalmente a história começar a ficar interessante. Se retirassem o Jordan do começo e o final dos episódios a série ficaria ainda melhor.
Além da Imaginação começou muito bem sua segunda temporada. É quase como se não houvesse a primeira. As histórias da segunda, as primeiras pelo menos, são instigantes e em harmonia com a série original.
O narrador continua sendo um péssimo ator. Ele estragou todas as introduções e conclusões da temporada inicial inteira. Jordan Peele não é ator e nem tenta ser. Diferente de figuras magnéticas como Alfred Hitchcock, ele na frente da câmera e nada é a mesma coisa. O texto que lhe entregam é pior ainda.
Mas as histórias iniciais da segunda fazem valer a pena.
Próximo do final as histórias começam a ficar ruins de novo e você percebe que a diferença entre as histórias boas e as ruins é a lacração. Quando um episódio quer lacrar ele será ruim (porque a base é ruim). Pegue o plágio do Dia da Marmota, por exemplo. É um plágio, mas parte de outros personagens em outra situação. Há implicações filosóficas interessantes para explorar com essas novas pessoas. Mas por algum motivo a história acaba sendo uma fábula sobre um incel. E ele perde no final como uma espécie de vingança sobre o poder. É escroto. É ingênuo. É sem noção da realidade.
# Colateral
Caloni, 2023-03-21 cinema movies [up] [copy]Colateral é o estilo de filme bem produzido que parece não contar uma grande história quando na verdade se revela um estudo de corrupção e violência em centros urbanos tão bem amarrado que você se hipnotiza no processo. Nosso alicerce moral é Max, um taxista que está estagnado por 12 anos em Los Angeles, até que chega Vincent, um matador de aluguel que aterrisa na cidade do pecado e vem com uma lista cheia. Ambos irão passar a noite juntos pelas ruas e Vincent irá elevar os pensamentos de Max sobre o que estamos fazendo com nossas vidas. Ele fará isso pelo modo prático que conhece: matar cada item de sua lista. A moral de Vincent é deturpada, mas pragmática. A química entre os dois é o que faz com que essa dupla passe uma noite inteira dirigindo por Los Angeles sem sequer repararmos, e sua floresta urbana se tornará um curioso palco de um filme de ação fantasioso no limite de não nos importarmos. Quem nos mantém interessados é Jamie Fox como Max, que compõe um arco para seu personagem que vai de vítima das circunstâncias para a única pessoa que conseguirá mudar alguma coisa na espiral de violência que vai pintando o mapa da cidade de vermelho. Já Tom Cruise como Vincent é uma surpresa e tanto. O cara se transforma em alguém que não é o Tom Cruise fazendo um de seus costumeiros personagens. Vincent é um assassino frio e prático, mas não deixa de vestir sua carapaça humana, o que torna o conjunto magnético. Seu terno e cabelo cinzas com a barba por fazer ajudam nessa inesperada composição, mas nada disso teria peso se a direção de Michael Mann não nos permitisse sonhar com as possibilidades desses dois atores em construírem uma realidade impossível em camadas que escalam para algo além de tiros e carros dando piruetas e pegando fogo. Quando o filme termina você está ainda naquele universo e não gostaria de sair.
# Catarina, a Menina Chamada Passarinha
Caloni, 2023-03-21 cinema movies [up] [copy]Ela vive na época dos dotes de casamento, seu pai é o Professor Moriarty (Andrew Scott) e sua consciência social de um penico, ou seja, contemporâneo, incapaz de estar em sua época de fato. O filme brinca um pouco com esse choque de cultura e as músicas selecionadas de mulheres dão um tempero new age para uma experiência lúdica, uma comédia doce e com narração em off. A narração vem direto da menina-pássaro porque é o livro que ela está escrevendo. Este livro vem de outro livro, o original, da autora Karen Cushman, que estudou os costumes da Idade Média para contar esta pequena viagem no tempo sob os olhares juvenis. Dirigido por Lena Dunham com uma burocracia que dá pena pelo desperdício de adaptação, esta é uma Sessão da Tarde em streaming. Deve ser leve porque é para crianças, mas deveria ser tão frívolo? Falta um pouco de pimenta na interpretação de Bella Ramsey ou orientação de Dunham para que ambas criem uma atmosfera à altura do livro ganhador do Newbery Honor, um prêmio a trabalhos distintos para o público infantil? Existe ainda um público infantil para este material que seja convertido em filmes? Bella Ramsey é boa em estar no set e iluminar até a mais chata das cenas, mas a questão que fica é se as cenas deveriam ser tão chatas quando há tanta atmosfera medieval para salivarmos.
# Esposa em Tempo Integral
Caloni, 2023-03-26 cinema series [up] [copy]Eu tenho um amigo que me faz lembrar todos os trejeitos e pensamentos do rapaz de Esposa em Tempo Integral de tal forma que a série fica mais engraçada ainda. Para ter uma ideia, ele seria uma pessoa que na vida real, não duvido, poderia propor para sua faxineira um contrato de casamento com salário por mera comodidade.
Só que a vida não é um contrato, e esta série de comédia vai aos poucos delineando de maneira sensível e racional a evolução de um casal que se aproxima e resolve cada passo no relacionamento de cada vez, aprendendo com os erros, dialogando e resolvendo juntos.
No começo é meio difícil imaginar tamanho o nível de imaturidade, mas se torna fácil se você já assistiu animes brincando com as idiossincrasias dos relacionamentos japoneses e todos os ditos que não são ditos, mas pensados, imaginados. Este é um material fácil de trabalhar, é um clichê cultural, e funciona muito bem.
O que essa série consegue é bypassar os clichês que abraça e logo a coisa começa a ficar de fato séria, realista e tocante. Torcemos por este improvável casal fofinho, e qual casal não é improvável no começo? Nenhum relacionamento deveria dar certo e esta história demonstra isso com mais propriedade e uma certa racionalização que faz perder a graça, arriscando tudo para se tornar relevante.
Afinal, esta é a era onde tudo deve ser levado a sério, mesmo que nada seja. A história de produção barata consegue desenvolver seus personagens com tanto afinco que a paixão inicial se perde. Vira um compêndio, um paper acadêmico sobre como fazer relacionamentos dar certo na cultura japonesa e ainda abraçar um perigoso progressismo. Perigoso, sim, mas não inconsequente.
# 10 Exercícios de aquecimento completos
Caloni, 2023-03-26 body [up] [copy]Esta é uma série de exercícios leves para começar o dia e aquecer todos os principais músculos. Gostei da lista porque não envolve (muitos) aeróbicos. Faça 30 segundos de cada movimento.
1. Intro: marchinha leve estando no mesmo lugar;
2. Squat + Knee Pull: agachar e subir, puxando um joelho de cada vez para cima, abraçando-o com os braços;
3. Wall Down Plank: de pé engatinhar com as mãos até ao chão na posição inclinada;
4. Flutter Kicks: deitado, movimentar os pés no ar um de cada lado como caminhando;
5. Crunch Jack: ainda deitado esticar braços e pernas inclinadas para cima e encolher os joelhos para próximo do corpo com as mãos tocando os calcanhares;
6. Push Up + Child's Pose: abdominal de joelho junto com posição de criança;
7. Windmill Turns: de pé curvado totalmente para a frente e os braços abertos girar o tronco de um lado para o outro;
8. Downward Dog to Back Bow: fazer um triângulo com seu corpo, abaixar para deitar de bruços subindo mãos e pés;
9. Arm Cross Swing: de pé abrir e curvar os braços para o lado oposto enquanto com as pernas balançar de um lado para o outro;
10. Front Jack: um polichinelo com os braços para a frente.
# O melhor teste técnico até agora
Caloni, 2023-03-26 cinema series computer interview [up] [copy]As três séries citadas neste post foram: "Que Cilada!", "Três Metros Acima do Céu" e "A Vida Mentirosa dos Adultos".
Hoje fiz mais um teste técnico. O melhor de todos. Não posso contar, por contrato, sobre o que ele se trata, mas posso contextualizar que não é um exercício de lógica, de estrutura de dados e de pegadinhas com complexidade de algoritmo para resolver problemas fictícios. Se trata de um problema que os devs da empresa tiveram que resolver, resolveram e agora pedem para que o candidato resolva. Dão nove horas para isso, começando quando quiser. O sistema de envio valida a compilação do código, que você pode enviar quantas vezes quiser, semelhante ao HackerRank, e no final, depois dos testes que eles atenciosamente lembram para você fazer, você clica no botão para submeter sua resposta. Caso falhe o sistema te diz por que falhou e lhe dá ainda mais uma segunda chance.
Achei tudo muito correto, além de excitante. Lembra trabalho de verdade. É um simulacro do que seria meu dia a dia de trabalho após passar por todo o processo de contratação. Achei foda. Foi um dos dias mais divertidos desde que fui demitido.
Não passei. A resposta não estava exatamente correta e não tinha muita certeza de alguns corner cases que o problema pedia, e não tinha pra quem perguntar. Não importa. Foi uma experiência curiosa. Talvez pense em resolver mais tarde.
Hoje foi um dia de séries italianas. Três delas. Dormi na primeira, sobre alguma morte e dois comediantes em uma história requentada. A segunda é um cotidiano de colégio adolescente nas férias de verão com aquela diversidade que dá preguiça a partir do momento que olhamos. Há motocicletas de corrida e quase nenhuma personalidade nos personagens.
A última pareceu mais promissora. É sobre uma filha mimada de uma família rica. O pai é distante burguês e a tia é uma renegada. O primeiro episódio termina com a sobrinha conhecendo a tia e as duas versões desse encontro, a primeira narrada pela filha ao reencontrar o pai e a segunda a versão que vemos ao som de Edith Piaf. As séries hoje em dia abusam da trilha sonora boa para disfarçar a falta de profundidade no drama. Mas a direção é agradável. Nada de mais, mas agradável. Há uma mescla entre anos 80 e 90 com atualidade. A caracterização da atmosfera é competente. Não deu sono. Ou poderia ter dado, mas a primeira comédia já me fez cochilar.
PS: este novo formato de escrita de tudo no mesmo post, conhecido por blogging do modo chique e fofocando sobre a própria vida na internet de forma chula, é um teste para conseguir escrever mais sem uma pauta fixa. Estou tentando me desvencilhar dos títulos de filmes e séries agora que teoricamente me livrei deste fardo literário.
# Meu Irmão é Filho Único
Caloni, 2023-03-26 cinema movies [up] [copy]Este filme estreou quando eu já conhecia a Mitiko, em 2007, mas nunca havia ouvido falar. Ele é italiano, se passa no pós guerra e seu herói é um fascista. Além de estar do lado certo da história luta bravamente contra o irmão e a namorada, comunistas de carteirinha. Depois que o rapaz transa vira comunista, demonstrando a personalidade de pessoas relaxadas e relapsas.
Há uma parte hilária onde Ode à Alegria de Beethoven é adaptada porque os comunistas estão cansados de lembrar da música associada ao movimento de extrema direita por causa da irmandade e confraternização que ela exala. Então eles começam a citar na letra Mão Tse Tung, Trotsky, Lenin. É uma pataquada.
Este é um ótimo filme. Ele cria um triângulo amoroso desajeitado em torno de uma família pobre comum e os detalhes ao longo das décadas vamos descobrindo pelo ponto de vista do filho mais esperto, o fascista, que muda de ares algumas vezes e que se mantém fiel à ideia, como seu amigo Mário lhe recomendou. Sempre se manter fiel à ideia se torna uma lei para se manter são e vivo nos tempos modernos. Mais tarde nosso herói come a esposa de Mario, que vai preso. A esposa de Mario é uma gostosona. Justificável, é um filme de arte e todos gostamos de sexo e fascismo.
# The Runaways - Garotas do Rock
Caloni, 2023-03-26 cinema movies [up] [copy]Apesar de Dakota Fanning estar um pouco estragada em sua personagem neste filme que emula o arco de sucesso e derrocada de uma banda de rock movida a drogas e seus pesadelos das vidas passadas, é necessário pontuar: que bundinha gostosa. Que lindos olhos. Essa garota e sua família inteira é maravilhosa.
Mas não você, Kristen Stewart. Apesar que eu catava.
Este longa condescendente com uma banda de meninas provando que banda de meninas são possíveis - ainda mais com um ensaio fotográfico sexy da vocalista - não machuca, tem boas músicas, mas nenhuma alma. Sem dor não há ganho e a história de sucesso da banda nunca passa por nenhum percalço que faça suor cair da testa de qualquer membra da banda. As meninas estão curtindo, é preciso produzir um filme sobre essa banda, e apesar da burocracia ele foi feito, e você irá se esquecer dele rapidinho.
São duas as únicas performances difíceis de esquecer. Michael Shannon faz um agente intenso, Bowieniano, que dá medo de tão bizarro e diferentão. É uma atuação que está fora do protagonismo, de um homem, e se sobressai a todas as menininhas do filme, mesmo que elas tenham um bom vocal e movimento, características que não bastam para serem lembradas.
A segunda atuação marcante é da bundinha da Dakota Fanning. Que delícia, minha gente. Os pais das garotas Fanning merecem um Oscar.
# O Pastor e o Guerrilheiro
Caloni, 2023-03-28 cinemaqui cinema movies [up] [copy]"Quando as nossas contradições ficaram irreconciliáveis e o precipício foi escancarado?", questiona, quase que de maneira retórica, José Eduardo Belmonte, diretor de O Pastor e o Guerrilheiro, um filme que explora acontecimentos reais do passado traumático na política brasileira através do pano de fundo dos conflitos particulares de seus personagens.
Levanta-se outra questão durante o filme: estaria o destino determinado pela luta individual e coletiva, ou a batalha apenas define o caráter de quem participa? O futuro já determinado vai sendo empurrado, como o fluxo de um rio, correnteza abaixo, pelas forças inevitáveis da História?
Para responder ambas as questões o longa caminha de igual para igual por duas épocas: os anos 70 com suas guerrilhas e perseguições políticas, e a virada do milênio, onde a releitura do primeiro passado é feita pela estudante Juliana, filha bastarda de um coronel que com sua morte deixa para ela sua riqueza construída na época da ditadura. Uma herança carregada com enormes contradições ideológicas.
Mas não apenas a riqueza material é sua herança. Junto dos pertences do falecido Juliana encontra um livro que começa a ler, "Memórias de um Guerrilheiro". Nessa leitura a estudante restabelece sua conexão com o passado traumático da família, sobre uma época mais dura, quando seu pai protagonizou parte da História como antagonista dos valores que ela defende.
É curioso como dá-se alto relevo a esta época de Juliana, já que as partes principais da narrativa giram em torno dela, mas ela acaba sendo mera espectadora, já que Miguel e Zaqueu, dois homens construídos com grande cuidado pelos três roteiristas deste projeto, é que são os protagonistas de fato. O curioso é como as demandas mercadológicas do presente influenciam na distorção de narrativas claramente diversas da cartilha ideológica do momento.
Miguel se torna um guerrilheiro nos anos 70 e é preso por coincidência junto de Zaqueu, que quase 30 anos depois é um pastor evangélico na periferia de Brasília. Estes são dois personagens que demarcam toda a estrutura dramática de uma história multifacetada. Miguel é movido pelo amor à sua ideologia e se transforma em uma força da natureza, sem passado e mirando apenas o futuro. Enquanto isso, o Zaqueu do futuro passa pelo dilema que seu filho mais velho e mais ambicioso apresenta: a expansão da religião que tanto ama, só que se distanciando de sua comunidade, por vias políticas e midiáticas.
Ambos não deixam de serem idealistas, cada um à sua maneira. A parte mais forte do longa é o encontro desses dois como presos políticos, cada um cuidando de seus valores, mas se comunicando em diálogos inspiradores acerca da visão de mundo de cada um.
Repare que não há brigas nas conversas entre Miguel e Zaqueu; apenas troca de ideias e argumentos. É uma época em que as contradições convivem em paz. E lembre-se que o diretor José Eduardo Belmonte questiona acerca de seu filme. Quando esse precipício entre opiniões, antes coberto por uma camada de civilidade, foi escancarado? Acho que nós do futuro de quando o filme se passa já temos fortes indícios: o avanço da tecnologia e sua aparente conexão entre as pessoas.
Distantes da era dos celulares, Miguel e Zaqueu convivem em paz. O sentimento do espectador também é de paz. Os celulares, apesar de já existirem alguns, não estão nas mãos de milhões de pessoas, nem as redes sociais foram criadas.
E este é o lado mais positivo de O Pastor e o Guerrilheiro: nos esquecemos de nossa própria época ao assisti-lo. As duas metades temporais pertencem ao passado e são observadas com um viés do presente que já acabou ano passado, com a transição de poderes em Brasília.
É um filme melancólico por não conseguir responder uma pergunta tão presente em nossos dias. É um filme esperançoso ao abrir de certa forma um diálogo. Não com o outro lado, mas com o passado. Dialogar com o outro lado não é mais possível. O precipício foi escancarado e não há sinais de que um dia voltaremos a sermos civilizados.
# Fúrias Femininas
Caloni, 2023-03-31 cinema movies [up] [copy]Este título já diz muito do que você vai ver neste filme. As mina tão puta. Uma delas, a vemos na infância, é quase estuprada pelo cliente da mãe. Ela é uma filha da puta. A mãe acaba morrendo tentando defender a filha. Então a filha foge para a cidade e sofre o assédio dos criminosos que detém territórios da periferia. Tudo é muito verde e vermelho. Essas são as luzes. O sangue começa a aparecer também quando as cenas de lutinha começam. E tem muitas. E o sangue é falso, feito por computador da geração passada. Mas tem uma perseguição de moto que é pura adrenalina e fundo verde. Quando ela está acontecendo, frenética, você se dá conta que está no meio do filme e ainda não se enganchou com nenhum drama das personagens femininas porque os personagens são muito falsos e agora o cenário é falso. Tudo no escuro ajuda para a computação, mas no caso desse filme nem isso. Tenho certeza que foi essa sequência o pitch que fez alguém dar dinheiro para a produção deste filme. A pessoa falou "imagina uma perseguição de motos estilo aquele jogo do Mega Drive, Road Rash, mas com minazinhas para vender pra Netflix". Bateu-se o martelo. Negócio fechado. Há mais cenas de luta, surge um monstro cracudo cujo poder é girar a seringa rapidamente (acertará ele uma veia da heroína para injetar heroína?). No final uma dupla traição, não, tripla, não, não sei mais. O diálogo pós luta: "nessa vida tentamos tomar as decisões certas, mas às vezes tomamos as escolhas erradas". Para tudo: alguém recebeu dinheiro por essas linhas? São mulheres caindo de fome pelos becos da vida que viram mestres de luta. Não peça lógica.
# Pacifiction
Caloni, 2023-03-31 cinemaqui cinema movies [up] [copy]Pacifiction é todo seu protagonista. Aliás, nem é pelo personagem. É pela atuação. Benoît Magimel não nos deixa pensar em outra coisa durante 160 minutos de projeção. A cada movimento de ombro, a cada lábio estendido mostrando seus dentes, a cada diálogo equivocado e inflado, a cada passada de mão em seu cabelo que vai ficando cada vez mais laranja, o ponto de interrogação é sempre o mesmo: estamos assistindo ao Donald Trump francês?
Por mais de um momento o personagem de Magimel repete que ele é um mero representante do Estado. O quanto isso dói no século 21 você não faz ideia. E não dói apenas para o simulacro do político laranja. Dói para qualquer idiota de terno branco cuja existência é incômoda, inconveniente e desajeitada.
Porém, não é a pessoa que representa o Estado o que incomoda mais. O que acaba sendo o golpe mais duro em nossa percepção deste filme é ver tantas pessoas prestando atenção ao que o sujeito fala. E o único motivo para isso parece ser a única frase verdadeira: esse sujeito que não tira seu terno branco e seu biquinho no rosto representa o Estado.
E o que é o Estado senão este incômodo eterno? A não ser que você tenha seu político de estimação, caro leitor, viver no século 21 e ver que políticos ainda não foram extintos é de uma dor incomensurável. E mais uma vez: não por causa deles. As pessoas validam sua existência. Ainda.
Mas vamos parar com os devaneios, apesar de que este filme inteiro é um imenso devaneio em cima de um tema escolhido ao acaso: testes nucleares na Polinésia francesa. O fato dela ter francesa no nome é o que mais gera paranoia, suspeitas e potenciais conflitos internacionais em um jogo de interesses em uma especulativa corrida energética. Tudo alheio aos habitantes da região onde os testes parecem que serão feitos, claro.
As figuras que populam Pacifiction não nos ajudam a ter um pingo de esperança. Meros joguetes em um jogo político velho e repetido, o filme ganha pontos por nos fazer prestar atenção por mais de duas horas em dezenas de personagens que não possuem a menor importância para o enredo.
É desesperador se não fosse trágico. E se não fosse cômico. Na vida real é mais cômico que trágico, mas nada como o ponto de vista europeu ao drama para tornar qualquer desgraça em qualquer parte do mundo como trágica. Desde que, claro, envolva a França na geopolítica. Não se esqueça do egocentrismo patriótico na conta do que realmente importa.
Algumas figuras enigmáticas surgem na neblina para nos dar a sensação falsa de que a ação irá de fato se concretizar, mas quando o filme passa da metade nós já entendemos que tudo não passa de uma ilusão da linguagem, introspectiva e psicológica. Pacifiction se revela, então, um longo e retórico exercício de futilidades políticas. Lembra algum governo em específico ou algum representante do Estado? Infelizmente ele se limita justamente nisso.