# Cul-de-Sac

Caloni, 2020-06-01 cinema movies [up] [copy]

Assisti dois terços. O DVD travou. É um filme preto e branco. Tem uma atriz francesa loira jovem que morreu jovem em um acidente de carro. As loiras jovens da carreira do diretor estão amaldiçoadas. É um filme com cara de autoral e independente, mas possui um elenco solto, de teatro. Ele perde a tensão por ter personagens fora da realidade. Fala sobre um castelo onde vivia um escritor no século onze e agora mora um pedante afeminado com sua amada. Eles são abordados por um bandido culto que se impõe para conseguir consertar um golpe que deu errado. Lembra um pouco a comédia de erros Fargo.

Assisti ao resto na Netflix caseira. Não deu para entender a proposta de Polansky. Seria um Trabalho de Conclusão de Curso? Conversa com os amigos (bêbado)? Enfim, essa loira e a esposa do Polansky morreram jovens. Essa em um acidente de carro aos vinte e cinco. A outra em um ritual macabro com Marilyn Manson. Tarantino filmou como não aconteceu em seu último filme, Era Uma Vez em Hollywood. Tarantino também filmou como não aconteceu a independência americana em Os Oito Odiados. Ele se acha tão a sério como se fosse possível alguém odiar um de seus filmes. Quem dirá oito. Polansky também se leva, ou se levava a sério, mas apesar de ter mais gabarito infelizmente se envolveu com uma menor de idade, crime pior que assassinato em massa na América, e nunca mais voltou para o continente. Passará o resto de seus dias filmando histórias de injustiçados historicamente.


# Easy Rider

Caloni, 2020-06-01 cinema movies [up] [copy]

O conto de fadas dos motoqueiros liberais americanos que se meteram em negócios com drogas nos estados americanos conservadores. Um Thelma e Louise masculino. Produzido e atuado por Peter Fonda, escrito e atuado por Dennis Hopper, este road movie independente de baixo orçamento apresenta "lindas paisagens" do deserto americano e se leva a sério demais, em uma ode aos tempos simples, que nunca existiram, em que os homens deixavam de brigar por dinheiro, ou o que quer que existisse na época, seja poder ou valores morais.

"Eles falam e falam sobre liberdade individual, mas quando vêem um indivíduo livre como você morrem de medo." Uma das melhores falas do filme é de Jack Nicholson, em rápida participação. Ele será morto a pauladas por red necks e os outros dois não conseguirão sair da última cidade que ousaram passar com seus longos cabelos. Apesar de ostentar a bandeira americana cabelos longos são demais para essas mentes atrasadas do sul.

Em cada cenário uma música nova. Em cada cena há tanta naturalidade que não existe roteiro. Este é um filme dirigido sem pressão, ao ponto de não nos importarmos com ele. Também não compramos a briga na história. Deixem o Fonda se divertir com seu filminho de férias. Os ricos também podem sonhar. Essa viagem lúdica e subjetiva você tem que sentir para entender. Pegue, fume um pouquinho este que eu enrolei. E viva a "liberdade".


# Sempre Aposte no Texto

Caloni, 2020-06-01 essays [up] [copy]

Achei o link para o artigo que estava procurando. Always Bet on Text é o título. Ele diz o que eu acredito com outras palavras: texto é a telepatia que funciona no tempo e espaço. É imbatível comparado com tecnologias mais novas. Seu sistema de símbolos permite uma troca tão rica de informação entre duas e mais mentes que é provável que ele seja o método preferencial escolhido pela organização da nossa galáxia.

Talvez até de outras galáxias.


# Transmission

Caloni, 2020-06-01 computer [up] [copy]

Dia de fazer funcionar o download automágico de legendas depois que o Transmission baixou meu Netflix caseiro. O download funcionou, mas não foi dos melhores, pois o sincronismo e o encoding veio errado, e o rename de _pb para o nome do arquivo não está acontecendo rodando pelo transmission-daemon. Fora isso tá com tudo em cima.

No final do dia a correção era mais simples que imaginava: eu só precisava desabilitar duas flags: o uso de sufixo no nome do arquivo salvo e a flag que força todo arquivo a ser salvo como utf8 (os arquivos em português do Brasil são salvos no encoding do Windows, o ISO-8859-1 ou Windows 1252 para os mais íntimos).

No final do dia todos os bugs conterão uma correção trivial escondida do outro lado do muro chinês.


# Azure Missing Lines: Submodules no Git (SSH Version)

Caloni, 2020-06-04 computer [up] [copy]

É curioso como os problemas mais triviais não são resolvidos em ferramentas feitas para resolver esses problemas. No Azure Pipelines existe um fluxo padrão para configurar um build em que você primeiro cria uma tarefa para obter o código de um repositório git remoto e em seguida configura, compila e empacota através de uma máquina chamada de agente. O problema surge logo nesses primeiros passos, para desespero do iniciante.

Para se autenticar no repositório remoto é claro que a ferramenta irá se integrar por algum endpoint com o serviço, seja BitBucket, GitHub ou outros. Uma conta desse serviço é usada e o acesso está liberado. Porém, se o repositório possui submodules, e estes foram configurados como acessos via ssh, a automação do Azure já para de funcionar neste momento.

A causa desse bug é simples: não existe ambiente para as chaves SSH estarem configuradas antes de existir um agente (uma máquina) onde o build irá acontecer. A correção, felizmente, também é simples, apesar de inapropriada: primeiro deve-se baixar o repo sem submodules, instalar a chave SSH, e apenas agora iniciar e atualizar os submodules.


# Awk

Caloni, 2020-06-07 computer blogging [up] [copy]

Introduction

Meu amigo sugeriu que aprender awk poderia ser útil de várias maneiras. Uma delas para organizar finanças pessoais. Dei uma lida em alguns tutoriais, sendo que o melhor custo benefício foi o Awk in 20 Minutes, de Fred Hebert (ele é o mesmo autor de um livro sobre erlang). Gostei. É sobre tratamento de texto como sed, mas em uma versão estendida e criada na época com a mesma sintaxe de C.

Agora que vou palestrar sobre no Native Floripa de 2022 eu dei uma olhada em outro tutorial muito bom que eu vou chamar de Tutorial from an Experient Mind, de Bruce Barnett. Ele vai um pouco além porque é de alguém interessado em contar alguns macetes que dão uma visão mais interna da linguagem. E para referência eu considero o Gawk Guide como um ótimo compilado.

1977

Por ela ser uma ferramenta antiga, criada por Alfred Aho, Peter Weinberger e Brian Kernighan na década de 70, AWK usa conceitos antigos, como field e record. Ela foi criada para formatar texto em formato de planilha, ou banco de dados. Um field, ou campo, é uma coluna na planilha, e um record, ou registro, é uma linha dessa planilha. Imagine que você pode usar awk para manipular e extrair dados de qualquer texto que contenha esse padrão, sendo que os detalhes como o separador de campos e registros, por padrão espaço e nova-linha, podem ser alterados no começo do programa ou via parâmetros.

BEGIN {
  print "FS:", FS;
  print "RS:", RS;
  print "OFS:", OFS;
  print "ORS:", ORS;
}
{
  print "NF:", NF
  print "NR:", NR
  print "$0:", $0;
  print "$1:", $1;
  print "$2:", $2;
  print "$NR:", $NR;
  print "";
}

One line at a time

pattern { action }
        { action }
pattern 

Se não houver padrão então a ação é executada sempre. Se não houver ação, então sempre que o padrão for encontrado em uma linha o programa imprime a linha. Ou seja, há um valor default para padrão e ação.

awk '/test/'
awk '{ print }'
awk '/test/ { print }'
awk '{ if( $0 ~ "test" ) print }'
awk '{ if( $0 ~ "test" ) print $2 }'
Awk maintains a delicate balance between being a line-oriented utility like grep and a full programming language. - Andy Oram

Program

Um Hello World interessante do AWK é imprimir a lista de arquivos e seus proprietários de uma pasta se baseando no comando `ls -l`. Isso demonstra os conceitos básicos da linguagem e ainda é útil.

pattern { action }
BEGIN { print "START" }
      { print         }
END   { print "STOP"  }
BEGIN { print "File\tOwner"}
{ print $9, "\t", $3}
END { print " - DONE -" }
ls -l | awk '{ print $9, "\t", $3}'

How to run

O uso do parâmetro `-f` é para conseguirmos rodar programas AWK sem se preocupar se ele é um script. Dessa forma ele funciona como se fosse um bash script:

#!/bin/sh
# Linux users have to change $8 to $9
awk '
BEGIN { print "File\tOwner" }
{ print $8, "\t", $3}
END { print " - DONE -" }
'

Tricks

  • Awk tem internamente dois tipos primitivos (fora o array associativo): `float` e `string`.
  • Awk converte "123X" em 0; Nawk converte em 123.
  • A value of 0 is false, while anything else is true.
  • Undefined variables has the value of 0.
  • Unlike AWK, NAWK lets you use booleans as integers.
  • A positional variable is not a special variable, but a function triggered by the dollar sign.
  • All interpreter scripts accept one and only one argument; so, `/bin/awk -f`.

Research

Reference

Tutorial from an Experient Mind, de Bruce Barnett. Ele vai um pouco além porque é de alguém interessado em contar alguns macetes que dão uma visão mais interna da linguagem. E para referência eu considero o Gawk Guide: https://www.gnu.org/software/gawk/manual/gawk.html


# Leak de Memória

Caloni, 2020-06-07 computer [up] [copy]

Esse fim de semana vi um programa, sem leak de memória, que só de ficar alocando e desalocando apresentava um consumo crescente no Process Explorer. Imaginando que poderia ser alguma lib externa, como o redis, fui eliminando uma por uma as variáveis do sistema, até chegar em um loop em que a única coisa feita no corpo do código era alocar e desalocar memória. E ela apenas subia.

Essa memória é alocada para um objeto acessível por uma interface. Abaixo dessa abstração reside uma mensagem do protocol buffers, ainda na versão 2. Isso quer dizer que cada new e delete construía uma nova mensagem protobuf, além da vtable da interface, e destruía em seguida. Apenas um campo int era preenchido como teste. Para monitorar melhor a memória usei um segundo campo string, pois daí posso alocar quantos bytes quiser para ele e o gráfico do Process Explorer fica dando um berro que não dá para ignorar.

Então me veio o pensamento sobre a versão debug, que não é confiável. Uma versão debug de uma lib pode decidir que é importante manter coisas na memória que o programa não pediu, mas que é importante para diagnóstico. Então compilei a versão release. O padrão de consumo se repetiu, embora em um ritmo menor porque versão release é mais performática. O consumo crescente ainda estava aí.

O jeito foi ir destroçando o código, classe por classe, até fazer o padrão de consumo crescente estabilizar. Este projeto tem uma arquitetura complexa, cheia de interfaces e classes que manipulam dados internos através delas. É complicado destrinchar e me custou o domingo inteiro. E quando finalmente encontrei o problema, não tinha nada a ver com o que eu imaginava. Se tratava da fila de linhas de log que não eram apagadas porque o servidor de log não havia sido configurado no componente, e como ele nunca conectava, a lib de log decidia manter as linhas em memória até conseguir. Pode ser um erro de arquitetura ou uma decisão de segurança. De qualquer forma, não há leak. Apenas um sintoma.

Essa sessão de debugging me deu alguns insights, entre eles um que é sempre mais frequente: nunca supor nada antes de analisar um problema. Minha estratégia de dividir para conquistar sempre foi a única que gerou resultados rápidos, ainda que às custas de não confiar em minha intuição. A longo prazo essa estratégia é vencedora, pois a intuição não utilizada sem critérios fica mais afiada conforme você acumula conhecimento. É como o cara dos Axiomas de Zurique (o livro) dizia, intuição é um quase-conhecimento. Saber cada vez mais irá fazer com que você consiga caminhar mais rapidamente por onde quer chegar.


# Vocês, Os Vivos

Caloni, 2020-06-07 cinema movies [up] [copy]

Gosto de filmes assim. Sobre qual assunto? Sobre a vida. Com e sem sentido. Estamos aqui e é isso. Se fôssemos escolher o gênero que filmaríamos vida óbvio que seria comédia. Woody Allen vem dizendo isso há séculos, e ele tem razão. E agora este filme com produção em seis países vem dizer o mesmo, inclusive com a mesma trilha sonora de Allen, em um trabalho instigante e sem muitas respostas prontas. A única é que tudo isso é irrelevante. Então bora assistir TV.

Tons pastéis eternos, a estranheza dos quadros imutáveis, com a câmera parada. Até um prédio inteiro se move, mas a câmera permanece. Isso é entrega total. Muitos olham para nós. Nós somos os vivos. Eles são fruto da imaginação de um. Eles mesmos estão apenas em um filme, e nos contam, olhando para nós, seus desejos e frustrações disfarçados de sonhos. Não são complicados. É a simplicidade que toma conta da tela e nos ensina que não é preciso muito para viver.

Mas mesmo assim esse psiquiatra do filme nos confessa que trata de pacientes egoístas, egocêntricos e mesquinhos por vinte e sete anos tentando fazê-los felizes. Agora desistiu e se contenta em receitar medicamentos mais fortes. Há muitas bandas e tubas, tambores e trompetes. Se há algo na vida que faz sentido este algo é a música, não a psiquiatria.

Um homem sonha que está em uma festa de uma família que ele não conhece ninguém. Para quebrar a gelo ele faz pela primeira vez em sua vida o truque da toalha com a porcelana da trisavô da família e a destrói completamente. É sentenciado à morte pela cadeira elétrica. "Tinha 200 anos a porcelana". A sequência vai até o final e os comentários se tornam bizarros pelo incômodo do surreal. "Tente pensar em outra coisa", sugere o carrasco. Ao final o réu onírico conclui: "que invenção horrível a cadeira elétrica!"

Este é um filme de sensações geradas por montagens estáticas, cuja câmera nunca se move, por orgulho, e pessoas fazendo coisas triviais no dia a dia, mas sempre com algo fora do lugar. Pode ser que nem todas funcionem com você, mas alguma com certeza você se lembrará sem querer daqui a alguns anos. Não é bizarra a vida? Mais do que a TV com certeza.


# Circle of Destiny

Caloni, 2020-06-13 cinema movies [up] [copy]

Documentário produzido para TV, diferente de The Eyes of Fritz Lang, curta documental de dar sono, este traz a visão de alguns especialistas sobre o cinema alemão, apesar de não sabermos exatamente quem são. Enquanto o primeiro doc dos anos dois mil cobre mais sua passagem por Hollywood este cobre unicamente seus filmes feitos na Alemanha, e por isso se traduz em um conteúdo mais rico de arte e detalhes, ainda que periféricos, sobre o artista por trás de obras como "M" e "Metropolis".


# Estômago

Caloni, 2020-06-13 cinema movies [up] [copy]

Este é um filme no auge da retomada do cinema brasileiro e quando os esquerdistas estavam sem ódio no coração com o lulinha da paz. Por isso a prisão não é horrível, mas podia ser melhor. Alguns insetos na comida e só isso. Este roteiro caminha em dois tempos distintos na história de Raimundo Nonato (João Miguel), um nordestino que vem para São Paulo ou outra grande metrópole do sul mostrar como em um filme há tanta desigualdade e desrespeito pelos serumaninhos. Mas um paradoxo se cria quando vemos o final do filme e descobrimos estar enganados a respeito da índole do protagonista. Infelizmente isso acontece tarde demais e soa falso. No entanto, a diversão fica por conta de diálogos bem trabalhados, com uma preparação de elenco que cria personagens factíveis e genuinamente engraçados. Sanitizados, mas engraçados. O objetivo do filme é ser comercial, e por isso o DVD vem cheio de extras e o play do filme, mesmo normal, nos mostra de maneira irritante um ícone no canto da tela para podermos pressionar um botão do controle remoto e ir para a receita que está sendo feita no filme. Desnecessário. E preguiçoso, já que nos extras a mesma opção existe, sem você precisar assistir ao filme novamente.

João Miguel cria um protagonista que ganha a empatia do público com seu jeito manso ao mesmo tempo que puro, e com isso nos mantém sempre ao seu lado. Ele é o elo fraco da rede de poder que move a economia: o dinheiro. Se você não tem é quase um escravo. Tanto que seu primeiro emprego na cidade grande, fazer coxinhas para o dono de um boteco, é pago "apenas" com casa e comida. Mas Nonato, que nasceu de parto difícil (por isso o nome, ele explica) e provavelmente é órfão de mãe que nunca conheceu o pai, uma história como muitas da região de onde veio, cozinha bem, e isso o leva a ser promovido na vida em pouco tempo, indo trabalhar na cozinha de um bacana que se acha um connoisseur de vinho e comida requintada, mas fala com um vocabulário xulo que pessoas da classe média assistindo irão perceber que é para mostrar como ele é boçal, embora ele possa muito bem ter nascido na periferia da cidade grande que o filme tanto despreza.

De qualquer forma, cozinhando bem ou não, Nonato vai preso, no que é a segunda parte da história, que vai avançando em paralelo com a primeira. Os momentos que elas se encontram são tematicamente semelhantes, e com isso o diretor Marcos Jorges quer dizer alguma coisa sobre relação de poder ou como a situação de nossa vida independente de onde estejamos é muito parecida, seja na cadeia ou nas ruas. Seja lá qual for a mensagem, que é vaga demais para prestarmos tanta atenção assim, Marcos possui a habilidade de criar lindas transições no tempo e no espaço pela narrativa. Principalmente no tempo. Algo é cozinhado, foco no fogão, e logo depois passa uma semana, um mês, algum tempo o suficiente para a história avançar. As transições entre a prisão e a vida livre também são feitas assim, e nunca cansam, pois são fluidas. Um exemplo de montagem.

Entre os destaques no elenco o melhor deles sem dúvida é Babu Santana, que faz o chefe de cela Bujiù com tanta naturalidade e convicção que eu assistiria um filme apenas sobre este quase-personagem que parece manter a cela em ordem e em paz. Não há motivos para querermos mal uma pessoa dessas. Diferente de Giovanni, o pedante gordinho da "Cozinha Internacional, Ambiente Familiar". Interpretado por Carlo Briani, ele atua para outro filme, um mais falso, mais estilo "documentário para TV". Não convence e chateia os espectadores mais cultos, diferente de Nonato, que diverte qualquer classe social. Há uma mensagem aí embutida.


# Historical Price

Caloni, 2020-06-13 computer blogging [up] [copy]

Havia um job esta semana de um assunto que me encanta desde a época de investidor: base histórica de cotações. Estamos falando de ações da Bovespa. Na época que era investidor frequente mantinha uma base que era atualizada por um programinha em Java (esqueci o nome), mas nunca tive certeza se os ajustes feitos pelo programa eram os corretos. Surgiu agora a possibilidade de eu realizar código que converte uma base histórica recebida com um minuto por linha em campos divididos por ponto-e-vírgula (o CSV do Windows) para candles de várias periodicidades. E isso justo agora que ando estudando awk. Então não deu outra: usei esta linguagem clássica como ferramenta para esta conversão.

O código ficou, em minha humilde opinião, elegante e pequeno, pois se aproveita da composição das periodicidades. Ou seja, o período de cinco minutos é a consolidação de cinco linhas de um minuto, mas a de quinze minutos não são quinze linhas de um minuto, mas três de cinco minutos, que já estão sendo calculados a cada cinco linha. E assim por diante. Usando os arrays associativos do awk é possível manter o estado de cada candle até o momento de gerar a saída desejada, que no exemplo que codifiquei ficou como um comando SQL de insert em um banco fictício que grava cada tipo de candle em uma tabela.

O uso de um array por candle simplificou o código, pois ao criar uma função que manipula o candle que está finalizando e o próximo eu posso simplesmente passá-los como argumentos. Dessa forma eu só preciso compor os filtros de linhas de acordo com o resto da divisão do seu número. No exemplo inicial, o candle de cinco minutos está finalizando quando RN é igual a cinco ou múltiplos de cinco, enquanto um novo candle se inicia em múltiplos de seis.


# The Eyes of Fritz Lang

Caloni, 2020-06-13 cinema movies [up] [copy]

Um documentário chato, cheio de pessoas elogiando a figura de Fritz Lang em sua fase nos EUA sem substância. Meia-hora quase insuportável de velhos babando ovo para este alemão que narrou sua fuga da Alemanha nazista quando se descobriu que ele fugiu "aos poucos", e que dizem ser judeu quando apenas sua avó era (e se converteu católica). Sua visão cinematográfica não está descrita aqui, apenas opiniões pessoas sobre este cineasta. Uma perda de tempo para os que buscam informação, e uma curiosidade boba para os fãs desse cinema.


# Printf

Caloni, 2020-06-18 computer ccpp blogging [up] [copy]

Entre os segredos escondidos das funções básicas da lib padrão da linguagem C o printf e o scanf lideram o ranking. O printf possui a capacidade de alinhamento de colunas das string impressas com tamanho variável. Sabia disso? Pois é, isso não se ensina nas escolas.

A impressão básica de uma string passada como argumento com printf deve ser feita usando na string de formatação os caracteres "%s". Agora, se você colocar um sinal de menos entre esses dois caracteres essa string será alinhada à esquerda. Mas o que é direita e esquerda se o tamanho usado pela impressão vai ser exatamente o tamanho da string? Aí é que entra o especificador de tamanho, logo após o opcional sinal de menos e antes do s que determina o tipo string. Dessa forma a string de formatação final para uma string variável alinhada à esquerda em uma coluna de trinta caracteres de tamanho seria "%-30s".

Porém, existe um problema com essa abordagem: a string variável pode ter mais de trinta caracteres. Nesse caso existe mais uma opção "escondida" do printf, que é especificar esse trinta em um argumento passado junto dos valores. Para isso basta trocar o número por asterisco e passar o tamanho como se passa qualquer outro valor à função, seguindo a ordem de recebimento. Por exemplo, um printf("%-30s", "minha_string") poderia virar printf("%-*s", 30, "minha_string"). Note que agora o tamanho trinta não está mais fixo no código e pode ser uma variável inteira.

Fiz um exemplo bem sucinto, que pede o nome das branches master e slave de um controle de fonte e imprime as duas no final, alinhando o nome das branches à esquerda e o número de commits de cada uma à direita, incluindo um header. É assim que o printf resolve esse tipo de problema de saída formatada: de maneira simples e elegante, sem inventar moda nem querer "revolucionar" a computação.


# Cinderela: Versão do Século XXI

Caloni, 2020-06-21 books [up] [copy]

Este livro é um respiro de ar fresco em meio a uma sociedade que vem apodrecendo em ritmo crescente. Ele fala sobre valores e moral. Sobre a dureza das conquistas. Sobre valorizar os que vieram antes de nós. E em termos compaixão antes de pena.

E ainda assim Cinderela do Século 21 é um livro infanto-juvenil. Não possui riqueza de detalhes nem reviravoltas estonteantes, já que se baseia em uma história que todos nós conhecemos e vimos muitas, muitas e muitas vezes. A diferença (nem tão diferente assim) é que ela está atualizada para os tempos atuais e se passa na cidade de São Paulo. Essa Cinderela é filha de pais que batalharam e que foram engolidos pela crescente onda de corrupção dos Tempos Modernos. Para se salvar da madastra trambiqueira e das meia-irmãs interesseiras ela terá que contar com a ajuda de uma fada-madrinha que chega de Uber.

Senti falta de explorar mais as diferenças entre os mundos da fantasia medieval de onde partiram essas histórias, mas mesmo superficial o livro de estreia de Bonnie e H. Rossi e Gianni Rossi (ambos são marido e mulher) é de leitura fluida e contém temas interessantes que merecem ser expandidos em continuações, remakes e adaptações. Você conseguirá ler no máximo em algumas noites de leitura e no final ficará com a sensação de que podia ir mais fundo naquele universo que tanto se aproxima com o nosso.

Com a diferença de que no universo literário ainda há esperança.


# C++ Co Routines

Caloni, 2020-06-21 computer ccpp blogging [up] [copy]

Entre os gêneros mais famosos do cinema e da programação está o terror, esse estado mental que se caracteriza pelo medo ou pela aversão a uma situação que envolve a perda de controle. Nesse quesito se encaixam as novas corrotinas que serão adotadas pelo padrão C++.

No último Caloni Bode Cast Live Privado, aqueles que não estão publicados no YouTube, conversei com um amigo por mais uma vez (já perdi a conta quantas foram) sobre a famigerada implementação, mas acho que dessa vez detectei melhor o que torna essa nova biblioteca de C++ tão repugnante para os amantes de boas soluções de engenharia e do padrão da linguagem.

A primeira ressalva diz respeito à alocação dinâmica. Ao usar esse modelo de rotinas cooperativas o programador é obrigado a alocar espaço para o estado dinamicamente, o que fere duas premissas da linguagem: o controle absoluto do modelo de execução para o programador e a certeza que ele irá apenas pagar em performance o que ele usar. Se os fãs da linguagem fossem religiosos, eles diriam agora que esta não foi uma decisão muito cristã do comitê.

Eu continuo defendendo que a linguagem C seja usada caso surjam contra-indicações na prática da STL.


# Oscar

Caloni, 2020-06-21 cinema movies [up] [copy]

Quando o chefão do Oscar faz um discurso dizendo que agora oficialmente serão dez os indicados a melhor filme para promover representatividade, diversidade e todos os ades de quem é ista, ele não está sendo um cara legal. Ele está apenas revelando o quanto o Oscar e/ou a sociedade como um todo funciona e o que irão fazer a respeito: nada. Porque nada é o que este povo que se diz politicamente consciente está acostumado a fazer para mostrar que sabe de algo que você, alienado, não sabe, e farão algo a respeito. Bom, resumo da história como sempre: não, não sabem e não, não farão. Não sabem matemática e não farão uma revolução. Provarão ignorância na arte dos números e hipocrisia e conveniência na arte política.

Vamos abrir o discurso para a lógica: eu tenho mil filmes disputando a lista entre os indicados. Apenas cinco poderão ser escolhidos. Os cinco imediatamente abaixo destes cinco ficarão de fora. Pelas novas regras esses cinco também entrariam pelo tapete vermelho, e com isso, de acordo com o resto da divulgação, aumentaria a representatividade para o prêmio principal da noite. Essa palavra, diversidade, vale lembrar, atualmente quer dizer indicar não apenas homens héteros brancos, mas também mulheres e homens de todas as cores, sexualidade e planeta.

Bom, essa conta não vai fechar. Não existem apenas dez tipos combinados de gênero, cor e sexualidade (e planeta) para que todos estejam de fato representados na premiação. Se já não é suficiente entre os cinco mais votados, qual a mágica estatística que reza que os dez primeiros o serão suficientes? Vou repetir com outras palavras e deixar a pergunta no ar: se os cinco indicados de hoje são de homens héteros brancos por que os cinco imediatamente abaixo na colocação serão com gêneros, cores e sexualidade diversos?

Se você é de humanas não precisa responder, mas continue levantando suas bandeiras para outro canto.


# Teoria, Prática e Código

Caloni, 2020-06-21 [up] [copy]

Quando se está aprendendo programação é muito bom praticar escrevendo código. Muitos querem aprender a programar e não começam programando, e se você já começou colocando a mão na massa, parabéns por isso.

Agora, para avançar nos estudos, além da prática, a teoria tem que avançar. E teoria vai além dos estudos de livros e vídeo-aulas. É possível aprender muito mais rápido lendo o código dos outros, disponível aos milhões pela internet. A vinda do GitHub veio para democratizar esse acesso e descomplicar os caminhos de colaboração. Agora você pode encontrar um bug no código de uma pessoa do outro lado do mundo e mandar a correção para todos envolvidos no projeto validarem. O quão sensacional é isso?

Ler código de outra pessoa pode ser desafiador no começo porque é necessário seguir um raciocínio diferente, que não saiu de sua cabeça. Não é a maneira que você resolveria um problema, mas, se o código estiver correto, é uma maneira igualmente válida. E possivelmente melhor. Por estar fora da zona de conforto se torna uma oportunidade para aprender coisas que não estão exatamente nem na teoria nem na prática. É a experiência de outra pessoa traduzida em código.

Note que não digo essas coisas apenas do meu código, que não é perfeito nem exemplar, mas de qualquer código que resolva um problema que você está estudando resolver. Ler código é como ter o texto de um livro, mas compactado. Tem muitas ideias legais para copiar e usar, uma vez que você aprendeu o que o código faz.

Mas para isso é necessário quase o mesmo esforço usado para programar. Parece fácil, mas está longe disso. A boa notícia é que vai economizar muito tempo se persistir em entender.


# Westworld No More

Caloni, 2020-06-21 cinema series [up] [copy]

Não consigo mais continuar assistindo à terceira temporada de Westworld. Eu sei que as robôs feministas são demais, mas a loira com o cabelo preso vestindo preto parece mais uma alemã lésbica. E Jesse é o aviãozinho que lhe traz as drogas para ela e sua esposa mais alta que eu imagino que deveria existir neste universo de beldades estéreis. Uma droga psicodélica faz Jessie enxergar a realidade sob diferentes gêneros cinematográficos e eu me escondo de vergonha de ainda estar interessado em dar play nessa monstruosidade que se tornou a série.


# Era uma Vez na Anatolia

Caloni, 2020-06-22 cinema movies [up] [copy]

A fotografia cria um personagem à parte com suas luzes de diferentes tons enquanto essa trupe de três veículos cruza os pequenos vales de uma região remota e perigosa na Turquia.

Um fato curioso, para não dizer hilário, é que o diretor, Nuri Bilge Ceylan, é colocado contra a parede em uma entrevista em Cannes, em que o entrevistador precisa fazer a pergunta da cartilha comunista sugerindo que um dos temas do filme é sobre os "homens poderosos e com dinheiro". O entrevistador leva umas pequenas e boas palmadas quando o próprio diretor explica que são burocratas do governo em cidadezinha de província e seus conflitos refletem parte do que ele viu com seu pai, que também era um burocrata em uma cidadezinha.

Ceylan também diz na entrevista se sentir desmotivado com o cinema atual, não se considerando ele próprio um cinéfilo, pois não gosta de todos os tipos de filme, e não acha que Cannes ou outros eventos sejam lugares que representem muito a arte. Ceylan entende que os filmes de hoje em dia tentam chamar a atenção do espectador de todas as maneiras. Ceylan, é preciso dizer, tem minha total, incondicional, compaixão e compreensão.

Este elenco funciona tão bem, e não é de atores muito bons. É a luz que incide em cada um deles que determina em boa parte suas personalidades e humor, e esse cinema que foge das convenções narrativas para contar não sobre a história, mas as circunstâncias em que ela ocorre, delineia o resto dos conflitos entre essas pessoas. A sinopse oficial é sobre um assassinato, mas na verdade nem é sobre uma investigação de fato, mas como o trabalho e a rotina dado a cada um deles os mecaniza no nível de detalhes bem sutis, e como é condenável que em meio a tudo isso cada um deseja conseguir verba para seu próprio projeto de poder.

Por outro lado alguns elementos não ornam apesar de belos. A bela menina que chama a atenção de todos pode ser uma isca para o que acontece no final do filme, mas as conexões temáticas são soltas demais para fazer muito sentido. De qualquer forma, boa a tentativa de trazer algo mais para o cinema. Melhor ainda não se preocupar com a duração desse projeto.


# Histórias Proibidas

Caloni, 2020-06-22 cinema movies [up] [copy]

Um filme pesado como Coringa e Parasita. Desses que você acha sensacional, mas não quer pensar a respeito das implicações morais da história. No caso, das duas histórias. Uma mais curta e outra mais longa. A curta se chama Ficção e a longa... acertou: Não-Ficção. E apesar dos nomes as diferenças são poucas. Ambas apelam para o lado mais dark do ser humano, em específico da sociedade norte-americana.

Já tem umas décadas que virou lugar-comum criticar a família americana que vive nos subúrbios, a famigerada classe média. Os que criticam são os baby boomers e seus filhos e netos, um pessoal que cresceu em um ambiente livre de privações financeiras e cuja única maneira de se revoltar contra tanta riqueza foi narrar o que viveram sob o viés marxista que aprendem nas universidades.

Sob este viés paradoxalmente não existem valores nem moral. Somos apenas matéria interagindo com matéria. Átomos que encontram outros átomos. No entanto, os átomos ricos sentem pena dos átomos pobres. Pobres partículas! A partícula-empregada é a que mais é oprimida. Veio de um país miserável e violento sofrer no país mais rico do mundo. Seu triste destino é trabalhar como uma condenada e em troca sentir saudades da época maravilhosa em que vivia com sua família no inferno.

Mas quem liga? Não somos apenas matéria interagindo com matéria? Átomos não possuem sentimentos, e se os possuem pouco importa. A dor é apenas reação química. Coisas como sentimento e senso de justiça não pertencem a este mundo. Não de acordo com Marx, que apenas descreve o mundo físico como se o homem vivendo nele não importasse o suficiente para ter uma voz. É curioso como esta voz uníssona pós-iluminismo tenha se tornado lugar tão comum nas mentes que de acordo com seus donos possui mais solidariedade. Hoje em dia monopolizam a virtude do bem, seja lá onde ele esteja.

Vamos parar por aqui com a filosofia barata usada nesta produção independente, que quer começar chocando o mundo mostrando peitinhos de uma jovem que será a rival de Reese Witherspoon em Legalmente Loira (sim, é Selma Blair, e está fantastilícia). Os descendentes da prosperidade estão apenas tentando explicar o que está de errado no bairro onde passaram suas perfeitas infância e adolescência. E nada melhor que uma teoria totalmente desconexa da realidade para que qualquer conclusão seja válida, de preferência a sua conclusão, para dar vazão ao xororô dos artistas carentes dessa geração.

Este é um filme que narra as aventuras de personagens que seu criador, Todd Solondz, não tem o mínimo interesse em humanizar. Até o adolescente problemático que é seu alterego (Solondz nasceu na cidade onde se passa a história) não possui uma alma. A vida é tão vazia nos subúrbios de New Jersey que fica difícil acreditar como aquela família ainda não se matou. "Eles são alienados", seria a explicação. Ainda bem que temos seres humanos revoltados... quer dizer, iluminados, que nasceram nessas famílias para nos esclarecer. Sob a forma de filme de arte.

O universo onde se passa esta deprimente, previsível, fascinante e engraçada história é um proto-Beleza Americana, aguardando por mentes mais maduras, como Kevin Spacey, que não se deixa levar pelas hashtags da moda (#metoo) e que conclui seu raciocínio sem precisar de um desfecho deprimente, para melhorar o contexto. Histórias Proibidas é clichê demais fora de Hollywood para ser chamado de corajoso. Mas tem potencial. Tanto que sua versão adulta com Spacey diz a mesma coisa, mas sem o dramalhão da classe média alta, como visto em Parasita e neste filme.

O exercício de futilidade ao qual o filme se entrega neste longa dirigido com muita paixão e pouco cérebro é belíssimo de acompanhar pela sua ironia intrínseca sobre qual a voz que está conduzindo esta crítica social. O resultado continua forte e tenso, mas só se você fingir que não existem bandeiras sendo levantadas.


# Olhos de Gato

Caloni, 2020-06-22 cinema movies [up] [copy]

Animação do tipo Estúdios Ghibli, mas feito pela Netflix. É como se todas aquelas pessoas que compram cursos de desenhar mangá na banca de jornal se reuníssem em um grande projeto encomendado. Se trata de um desenho com alta tecnologia. Cenários de computador estilizados e em 3D se misturam aos personagens 2D. É quase como se fosse real, mas se uma maneira mais estilizada e alinhada com a nossa interpretação subjetiva da realidade. As cores, as formas, são como nós gostaríamos que fossem em um anime que sonhasse em ser real. A história é sobre paixão. Essa menina com problemas emocionais depois que sua mãe abandonou a família chama a atenção de seu crush na escola, que a ignora. Ela não sabe o que fazer até que acha um vendedor de máscaras que a transformam em uma linda gatinha. E com isso ela se aproxima de seu amor juvenil, que também tem problemas em se expressar com sua família. Coincidências na mesa, você já sabe como vai acabar e apenas curte a jornada, com magia, reviravoltas já previstas e um final onde as coisas dão tão certo que o sono bate antes do filme acabar.


# Tio Boomie, Que Pode Recordar Suas Vidas Passadas

Caloni, 2020-06-22 cinema movies [up] [copy]

O diretor tailandês Apichatpong Weerasethakul afirmou em uma entrevista que acompanha este DVD que "sente inveja de quem vê seus filmes". Não é apenas a pretensão de um cineasta que vem à tona, mas todo o humor subjacente se lembrarmos que Tio Boomie é um lixo de filme. Inveja de quem assiste? Se ele pelo menos soubesse...

O filme é inspirado em um livro de 1983, mas apenas inspirado. O livro fez tanto sucesso que deve ter alavancado a produção. Há um curta-metragem também, "dirigido" por Apichatpong e lançado pouco tempo antes do longa. Quem viu esse curta antes deve ter pensado: como alguém que vê dezessete intermináveis minutos disso pensa que seria uma boa ideia algo ainda maior?

Os únicos símbolos que conseguem chegar a nós em um filme essencialmente enigmático são a selva, a caverna e os macacos, remetendo a tempos primordiais. Mas ele mais uma vez só faz sentido porque o título já explica sobre o que se trata. Seja sincero: você conseguiria imaginar que este é um filme sobre reencarnação se o título não fosse tão didático? O que seria de um filme desses se um produtor consciente não resolvesse dar pelo menos um fiapo de significado no pôster do lado de fora do cinema?

Ao acreditar em um estilo autoral de se fazer filmes e convicto de suas qualidades de criador, as influências de Weerasethakul acabam revelando essa ponta de pretensão vista em Tio Boomie, louca para sair e gritar para todos ouvirem, mas ao mesmo tempo se mantém firme em seu objetivo primordial de nos fazer passar sono, confusão e essa sensação de estranhamento que pode-se traduzir como... tédio. Em nosso inconsciente surge a dúvida de como o diretor imaginou em algum momento que esse estranhamento seria uma coisa boa, mas o que é mais estranho nesse filme é o quanto o espectador que é fã da obra literária original acaba sabendo mais que seu próprio idealizador.

Esta é a marca da geração de diretores mimados, que junto da crença em um cinema de autor acredita que fazer cinema é combinar estilos, fazer montagem deles, referenciar, homenagear, usar símbolos porque ele aprendeu a usar na faculdade, sem saber que em um longa metragem há a necessidade de alguma conexão entre as partes. Qualquer conexão que não seja "este é o filme do fulano de tal; é assim que ele faz filmes e é uma referência". Referenciar referências é a forma mais baixa de autocompaixão, que é um disfarce conveniente do orgulho sem motivo. Como qualquer pessoa de vendas sabe, pessoas podem gostar de qualquer coisa se houver alguém convencido do seu lado, certo da qualidade incontestável do produto.

Para a parte mais pessoal do seu filme, uma sequência de fotos com uma narração futurista, que obviamente referencia Chris Marker e seu curta-metragem A Pista, inspiração do longa Os Doze Macacos. Nesta cena ele usa seu estilo autoral e quebra a quarta parede, quebra a narrativa, e quebra a nós, espectadores, que estamos na sala de cinema. Qual o objetivo? Eu não sei, e nem ele sabe. E não sou eu que estou dizendo: ele também afirma na tal entrevista.

O uso de diferentes fotografias, no entanto, quase se torna interessante ao tentarmos desvendar a chave das diferentes narrativas. Há um semi-documentário, uma sequência de fotos, um filme para TV e um experimento metalinguístico no mesmo filme, e nenhum deles dialoga com o outro. Nem a fotografia. Então em dado momento o que era quase interessante se torna apenas repugnante. Na onda das referências, há tantas misturas de filmes, todos óbvios e sem sentido. Planeta dos Macacos, 2001, Star Wars. Apenas pelos macacos fantasmas com olhos vermelhos estilo povo do deserto você nota que este é um projeto sem solução. Há mais filmes, mas o resto procure você. Não quero ter mais flashes desse filme. Nem nessa nem em outras vidas.


# Renata Adler vs Pauline Kael

Caloni, 2020-06-23 books cinema [up] [copy]

Comprei o livro da Amazon em que ela esculacha (com todo o respeito) a escrita de Pauline Kael. É sintomático que Kael tenha se tornado a escritora mais adorada da crítica e do público em uma época onde a forma toma o lugar da substância. Cansados da ciência objetiva as pessoas se viram cada vez mais para as experiências subjetivas de sua própria vida, ignorando evidências empíricas e catalogadas da realidade que torna um filme bom em detrimento da experiência em si. "Todo filme é trash" diria Kael, e eu não consigo ver onde ela pode estar errada em nossos tempos. Fruto e sintoma ao mesmo tempo, Adler permanece com o pé firme do lado empírico. Pelo menos um pé.

É de leitura obrigatória para os que querem entender a treta do século da crítica cinematográfica.


# O Amigo da Minha Amiga

Caloni, 2020-06-27 cinema movies [up] [copy]

Mais um Rohmer como deve ser: preocupado com o realismo da natureza humana e seus relacionamentos, e com paisagens fora do centro parisiense, bem na periferia dos simples e burocratas. Blanche não sabe se está certo se sentir bem com o namorado/amigo de sua recém-melhor amiga. E sua amiga está buscando confirmação de que continuará com seu namorado. Um garanhão existe para que se forme um quatrilho romântico, e o filme faz questão de deixar as trocas claras pelas vestimentas destes quatro no final do filme. Divertido, porém não muito. Um passatempo francês.


# O Raio Verde

Caloni, 2020-06-27 cinema movies [up] [copy]

Mais um filme do Rhomer sobre uma mulher maluca. Ele conheceu várias em sua carreira, e o pior é que não deve ter conseguido comer nenhuma. Nunca confie nas francesas. Mas, falando sério, esta história é comovente, porque é real demais. É sobre depressão ou algo no mínimo parecido, das pessoas que não se encaixam na sociedade contemporânea, cuja boa parcela acha que precisa estar bem e se divertindo o tempo todo (principalmente nas férias). É fácil se disfarçar de pessoa funcional no trabalho, mas uma vez por ano chega o período de viajar e ter essa liberdade de fazer o que quiser surge a falta de controle que todos nós temos um pouco sobre nós mesmos. E é desesperador viver com nós mesmos quando podemos tudo. A protagonista não consegue deixar de chorar por causa disso, e várias situações irão tentar definir o que é exatamente isso. Talvez um raio verde não seja uma completa loucura afinal de contas.


# Pgn2art

Caloni, 2020-06-27 computer blogging [up] [copy]

Meu sonho de consumo para acompanhar partidas de xadrez é às cegas, apenas lendo ou ouvindo o próximo lance e imaginando em minha cabeça o tabuleiro. Porém, enquanto não tenho essa habilidade, um meio-termo aceitável é ver um tabuleiro em ascii art se modificando a cada lance. É possível acompanhar uma partida dessa forma como se estivesse lendo um livro, e por isso esse formato é prático, também, pois posso jogar esse ascii art no meu Kindle.

Usando a biblioteca python-chess fiz um pequeno script que recebe o endereço de PGNs (o formato com que se grava partidas de xadrez) por URL ou path local e cospe esses tabuleiros em ascii art. Com isso pode redirecionar para um arquivo texto e enviar para o Kindle ou ler de qualquer lugar, em formato estático, a tradução da partida.

O próximo passo, antes de ler às cegas, é transformar a leitura do tabuleiro bidimensional para a leitura do formato FEN, que é o formato usado para gravar posições de um tabuleiro.


[2020-05] [2020-07]