ULF do Sr. Arlindo

Em 2020 estive em Coimbra para conhecer as histórias e a loja do Sr. Arlindo. A Fátima Roque me falava muito dele desde 2012, tanto que escrevi esse post aqui em homenagem a essa história com as fotos que a Fátima me mandou e com a entrevista que gravei com ele em 2020.

Agora na segunda quinzena de Abril de 2024 estive por lá novamente e foi muito bom saber como andam as coisas na Diorama. Adorei ver que o Sr. Arlindo continua cheio de idéias e novas construções! Cheio de energia!

Logo depois que passei por lá chegou a pandemia. Sr. Arlindo me conta que ficou trabalhando sozinho ali na sala dos fundos da Diorama, recombinando as coisas que ele já tinha para criar essa câmara de ultra grande formato (28x35cm e 30x40cm).

A câmara tem diversos movimentos, anda sobre 4 rodas, tem foco motorizado e um obturador elétrico com controle de tempo digital. Brutal!

Uma pequena placa na frente contém uma dedicatória, um poema, sua assinatura.

Uma bela construção, cheia de ideias interessantes. Fiquei vidrado com os grampos de marcenaria sendo usados como os standards da frente e da traseira, uma ótima solução!

A Diorama ou o Sr. Arlindo não estão nas redes sociais, é uma ótima desculpa para ir conhecer Coimbra e ele.

Grid

Deve fazer uns dois anos que eu achei um projetor no lixo. Acho que por ele só ter uma entrada VGA deixou de ter utilidade, não havia errado com ele, nem a lâmpada estava velha (coisa que é comum). A resolução era baixa, apenas 800×600 pixels (SVGA).

Eu tinha essa ideia de fotografar alguns objetos com um grid projetado neles, sei lá, olhar para as linhas e para os limites, não sei bem, talvez seja apenas a intersecção das formas.

Mas foi essa semana que sobrou um tempo extra, tirei o carro da garagem, montei um estúdio improvisado ali, levei o projetor, liguei um laptop antigo, fiz um grid adequado. Experimentei com o tempo, com a altura do projetor, com o ângulo etc.

Fiz umas imagens com o smartphone para testar, enquanto faço uma lista mental dos objetos que pretendo fotografar.

O primeiro teste ficou escuro, é difícil fotometrar essas linhas e saber como vão aparecer num filme sensível a luz verde. Acabei optando por colocar um difusor sobre a luz da minha mesa de trabalho e deixar ela ajudar nos volumes (que é a foto que abre esse post).

Arquivos PostScript

Os arquivos PostScript (.ps) podem ser melhor entendidos lendo esse site aqui.

Em 2019, eu recém chegado a Portugal, me inscrevi num workshop com o André Rangel aqui em Braga, no GNRation, para aprender como gerar arquivos desse tipo com uma linguagem de programação chamada Max.

Foram diversos experimentos interessantes, chegamos até a capturar imagens da webcam e filtrar para fazer ASCII arte ou algo do gênero.

No entanto, os arquivos PostScript ficaram na minha mente e eu volta e meia pensava neles. Quando me entendi melhor com o Python, comecei a considerar usar ele para gerar novos arquivos, usando números randômicos.

O .ps é um arquivo de texto que tem um cabeçalho mais ou menos assim:

%!PS-Adobe-3.0 EPSF-3.0
%%DocumentData: Clean7Bit
%%Origin: 0 0
%%BoundingBox: 0 0 2000 3000
%%LanguageLevel: 1
%%Pages: 1
%%Page: 1 1
<< /PageSize [2000 3000] >> setpagedevice
7 setlinewidth

Isso é mais um EPS do que um PS, mas assim o Photoshop entende e consegue abrir isso para salvarmos um jpg depois. Assim damos o tamanho da página, a largura da linha que vamos usar, etc.

Depois do cabeçalho seguem uma série de comandos. Cada um cria uma parte da imagem final. Um exemplo de comando é:

0.33 0.45 0.37 setrgbcolor
497.000 497.000 moveto
738.000 614.000 1854.000 1978.000 1503.000 2503.000 curveto
stroke

Começamos por estabelecer a cor que será usada, um ponto de partida, e desenhamos uma curva, por fim mandamos desenhar de fato com a palavra stroke.

A idéia de usar o Python é criar umas 100 linhas como essa em um único arquivo, com número que variam com incrementos ou randomicamente. Assim mudamos a cor da linha, a forma da curva, o ponto de partida, etc.

Com um pouco de sorte, os números encontram uma maneira esquisita de interagir e fazemos algo interessante. Na imagem acima há tanto um componente randômico com um componente incremental. Na imagem abaixo os números são randômicos.

Se quiser explorar esses caminhos, deixei os scripts e exemplos de arquivos PostScript em um repositório no GitHub.

Solarizações • Maragram Generator

Para exemplificar o funcionamento da solarização digital, dois exemplos de resultados, um de cada lado da imagem original. À esquerda, um exemplo de altas luzes invertidas e à direita, um exemplo de sombras invertidas.

Mas porque parar ai? Porque não passar a imagem mais uma vez pelo programa e criar mais ruídos interessantes?

E minha preferida até agora:

Enquanto isso, adicionei o app ao Play Store e abri uma sessão de testes. Foi horrível. As pessoas conseguiam baixar o app e instalar, mas ele não abria… A curva de aprendizado ainda aponta para cima, mais e mais.

Finalmente cheguei à versão 1.0.3 que abria sem muitos problemas na maioria dos dispositivos e estava a funcionar. Passou pelos pre-launch tests da PlayStore (que eu só descobri que existiam depois do fiasco da 1.0.0). Aprendi um tanto sobre os mínimos detalhes do arquivo Android Manifest e do arquivo Gradle Build… Aprendi sobre coisas que não pareciam importante no momento em que se cria o arquivo para trabalhar num projeto, no nome que se dá para isso ou aquilo, e de como isso afeta o bundle que é construído no final.

Alguns amigos finalmente conseguiram instalar e rodar o app no seus dispositivos Android e andaram usando a palavra “divertido” para definir o app. Dei o projeto como bem sucedido e concluído – consegui escrever um código novo, num pacote que ainda não tinha um determinado método, consegui implementar isso num app e publicar o app de maneira limitada e segura e ver ele funcionar nos dispositivos dessas pessoas.

Quando escrevi em Janeiro sobre o curso de Python que eu estava começando (e que consegui terminar!!!) eu ainda não imaginava por onde ia andar. Acabei me interessando pelo Flutter também e isso me levou ao Dart. A Angela Yu, professora do curso de Python no Udemy, sempre lembra que faz parte de ser programador a constante busca por exemplos e soluções pela internet. Ela defende que é impossível aprender tudo pela páginas de documentação. Essa última semana é prova disso e de que umas boas buscas pelo StackOverflow conseguem resolver a maioria dos problemas que nos aparecem.

Acho que ainda vou atualizar o código para incluir umas questões de acessibilidade, que o app deveria ter. Ajeitar uns pequenos detalhes. Tudo está disponível no meu Github para quem quiser avançar com a coisa.

Se você quiser experimentar no seu dispositivo Android, me manda uma mensagem com o email da sua conta da Play Store, eu libero a conta para o teste e devolvo um link para o app. Por enquanto a distribuição da app vai permanecer assim.

Dart Image Library • solarize.dart

Durante muito tempo eu sonhei em fazer coisas como essas. No entanto, a vida foi me levando por outros caminhos e quando eu percebi, o tempo tinha passado. Não vou pensar no tempo perdido, afinal…

Quando comecei a aprender Python no fim de 2023, logo me dei conta de que seria necessário estabelecer alguma meta/ objetivo para esse aprendizado. Comecei a listar possibilidades dentro da fotografia. O conceito de solarização digital sempre me atraiu. Lembrei que é uma operação matemática simples, que mesmo eu conseguia imaginar ou formular.

Então na medida em que eu conhecia mais da programação, já ia pesquisando bibliotecas e pacotes de processamento de imagem. Fui tentando aprender o que era possível, no começo a partir do Python. Fiz uns scripts usando a biblioteca Pillow, depois usando Kornia e OpenCV. O que eu queria mesmo era fazer um app para ter no meu smartphone. Isso acabou me levando a tentar aprender outras coisas ao mesmo tempo. Já falei nisso aqui antes…

O caminho que eu escolhi na programação para dispositivos móveis é o do Flutter. Essa linguagem é baseada numa outra linguagem chamada Dart e herda dela seus pacotes. Existe um pacote de processamento de imagem para Dart e estudei isso por uns tempos. O pacote tem código aberto e as implementações estão no Github. Implementações nesse caso se referem ao código interno dos filtros e Dart é relativamente fácil de ler para quem lê inglês.

Fiz um fork. Estudei a implementação do filtro Invert e do filtro Normalize e, apesar de ainda não ser um grande craque do Dart, consegui juntar partes de um de do outro. Tirei algumas dúvidas fazendo buscas no StackOverflow. Introduzi minhas fórmulas para solarizar e fiz algo que considero único (já me achando): dei a opção ao usuário de fazer a solarização pelas sombras ou pelas altas luzes. Inspiração veio do Man Ray.

Quando tentei com Pillow, Kornia e OpenCV acabei optando por solarizar e inverter, para conseguir algo parecido com esse efeito. Mas já que eu ia escrever tudo do início, o melhor era já incorporar a opção no código e finalizar com um tapa no contraste para deixar tudo mais interessante.

E sim, Man Ray chama seus fotogramas de rayograms.

Montei uma app simples no Flutter e incorporei o filtro para testar meu código. Tive que fazer uns ajustes e sofri com o null safety do Dart, mas valeu. A app rodou no meu Xiaomi e fiz versões solarizadas de várias imagens da minha galeria como as que ilustram esse post.

Aqui uma comparação dos dois modos de operação do filtro: sombras (esq) e altas luzes (dir). Depois de ter certeza que o código funcionava e gerava os resultados esperados fiz um pull request. Um dos responsáveis pelo pacote aceitou minha adição.

Olho para isso, assim, disponível para quem quiser usar e penso em como foi tão fácil passar pelas partes mais difíceis, não sei porque eu demorei tanto para começar essas coisas.

De micreiro a programador num estalo ou dois…

90 segundos de lampejos ininterruptos

Agora em Maio vai se fechar um ciclo de dois anos trabalhando com fotografia de e-commerce na Farfetch. O fim dessa história vem através de um despedimento colectivo, parte de uma história bizarra de como a empresa foi conduzida e vendida nos últimos 6 meses, mas isso você pode ler aqui ou aqui.

A minha história aqui começou em 2 de maio de 2022. Meu primeiro dia aqui também foi o dia em que os funcionários foram autorizados a começar a trabalhar sem máscaras, ou seja, após a parte grave da pandemia. O prédio ainda estava meio vazio, muita gente ainda trabalhava de casa, mas aos poucos foi voltando à vida. Pelo sistema de gerenciamento de assets digitais posso ver que estou prestes a completar 90.000 imagens salvas e ainda não completei os dois anos (se o Profoto D2 Industrial daqui tem um flash de 1ms, então ele ficou aceso por 1’30” graças a mim, brutal!). É um trabalho interessantíssimo, um contacto direto com milhares de artigos de vestuário e diversos tipos de acessórios e objetos. Fiz um pequeno portfólio desses tempos nesse link aqui. Aprendi muito sobre moda, tecidos, reflexos, etc.

Produzir uma quantidade tão grande de imagens gera uma série de aprendizados e uma percepção do processo muito afinada. O olho passa a estar alerta para variações de luz da ordem de 1/3 de ponto e estúdios que são calibrados para serem iguais começam a se revelar diferentes ao longo do tempo, tudo nos pequenos detalhes.

Para dezenas de fotógrafos produzirem essa quantidade de imagens diariamente, a empresa criou e atualizou ao longo do tempo uma série de procedimentos e tutoriais. Ou seja, é um trabalho a ser executado dentro de regras muito rígidas, num estúdio imutável, onde tudo tenta ser altamente reprodutível. É um desafio interessantíssimo tentar ser criativo nesse ambiente, achar pequenos elementos que podem ser flexibilizados. E ainda ao mesmo tempo, repensar a lógica da coisa e propor soluções diferentes para simplificar a estrutura.

E em vários momentos, a quantidade de trabalho é tão grande que mais vale colocar os fones, deixar a mente se inundar de música e pensamentos aleatórios e seguir mecanicamente e meticulosamente as regras. O que ajuda? Os sets do Cercle em alto volume, Radiohead, Jan Blomquvst, essas coisas que movem o corpo. E depois HVOB, Still Corners e London Grammar para acalmar.

Mas às vezes o que sobrava era o tempo, principalmente na baixa temporada.

Educar o corpo ao ritmo de fotografar 115 artigos diferentes por cada turno é também um desafio. Cheguei aqui logo depois de 2 anos e meio trabalhando como suporte técnico. Passava o dia inteiro sentado à frente de um computador. Passar 8 horas de pé por dia foi doloroso nos primeiros meses. Ainda hoje os dedos sofrem se os botôes das camisas ainda estão muito justos e/ou se são muitas camisas num dia só. E não vamos falar nem de idade, nem que quilometragem…

Foto: Inês Ferreira

Quando tudo que eu podia fazer era me esticar no chão do estúdio, tentar relaxar as costas, podia sempre contar com o olhar atento do departamento de QC.

Foi graças ao acesso ilimitado ao Udemy (que a Farfetch dá a seus empregados) que foi possível finalmente mergulhar no mundo do software e descobrir tanta coisa interessante e rever coisas do passado (HTML e CSS). Chega a sair fumaça da cabeça em alguns momentos, aprendendo Python, Flutter, Ethical Hacking e SQL em cursos simultâneos, loucuras que a gente escolhe para si mesmo. Acabei deixando de lado as coisas do meu passado (Processing, etc), mas ainda pretendo retomar o Matlab.

Dai os momentos de baixa temporada acabaram ganhando outro propósito. Cursos atrás de cursos. Há quem diga que achei mais um pedaço do meu ikigai.

Quando veio a notícia do despedimento colectivo, uma colega muito experiente se prontificou a ajudar outros colegas a reescrever seus currículos. A Isabel me ajudou com o meu e ficou assim:

É isso que tenho para mostrar hoje, se você não sabia o que o cara por trás desse blog fazia para ganhar o pão, agora sabe das partes mais glamourosas, né? ;-)

E vamos em busca de novos desafios (é assim que fala?).

Espaços virtuais e experimentais

Nesses últimos dias entrei numa parte dos meus cursos em que o Python é usado para criar caminhos para gerar HTML dinamicamente. Aproveitei para afiar meus códigos HTML e reaprender a escrever CSS. Numa viagem bem maluca eu lembrei quando o Jan me ensinou a fazer HTML num app chamado Hot Dog:

Isso foi há muito tempo. Logo depois apareceu Dreamweaver, que eu não tinha como rodar em casa. Eu ia ao estúdio do Clício usar no PC dele. E assim nasceu o coisasdavida ponto com que agora é bem defunto.

Na viagem atual eu comecei a descobrir diversas ferramentas interessantes para explorar o mundinho dos códigos, entre elas o Glitch, onde está esse espaço aqui:

O GitHub também oferece espaço para você hospedar uma página sobre a sua conta, lá eu criei esse cantinho aqui:

E assim vou experimentando os novos e velhos caminhos ao mesmo tempo, criando umas coisas esquisitas e usando algumas imagens mais esquecidas.

2024 • mais código, menos redes

Vou dar um tempo das redes nesse ano, pelo menos esse é meu plano. Já desinstalei os apps do telemóvel há uma semana e corre bem essa tentativa.

Comecei o ano com um curso de Python que chama 100 Days of Code. Imagino que vai me levar uns 200 dias, mas vamos lá!

Conversão de Nikon D100 para espectro total

Essa Nikon D100 veio parar aqui já há um tempo. Até que um dia me deparei com um vídeo no Youtube mostrando como é simples remover o filtro IR cut da frente do sensor. É razoávelmente fácil desmontar a câmara. Na foto abaixo, os quatro parafusos que se pode ver na beirada do sensor podem ser removidos para libertar o filtro azulado e pronto, está feito.

Já tinha testado a câmara com uma bateria e sabia que ela ligava. Mas não tinha bateria, nem queria comprar uma para esse projeto. O projeto tinha que ser mais barato que isso, me tornei essa pessoa.

Comecei a pesquisar e descobri que a Nikon fazia um adaptador chamado EH-5 para ligar a D100 direto à tomada 110/220v. Num post do dpreview achei até informação do pinout do adaptador, além da informação principal: 9v e até 4amp.

Na minha sucata tinha um carregador da Sony que veio do lixo também. Tem saída 8.4v e vai até 1.7amp. Me pareceu próximo o suficiente para um teste. Os plugs de ambos eram bem diferentes, no entando era possível encostar um no outro e fazer contato entre os polos corretos. Assim a câmara ligou sem problemas.

Dobrei um pouco os metais do contato da câmara e forcei o plug do adaptador um pouco mais longe, não encaixou mas ficou sob pressão. Envolvi tudo em cola epóxi e com uma fita hellerman prendi o cabo ao ponto de fixação da alça, para evitar que um puxão desfizesse tudo. Deixei a cola secar um dia.

Seguia pensando o que poderia fazer… Sem o filtro IR cut no lugar, era provável que não fosse mais possível focar a câmara no infinito. As primeiras imagens ficaram totalmente rosadas, efeito do IR atingindo todo o sensor.

Separei um canto ao lado da janela e posicionei minha aloe vera iluminada pelo céu azul. Coloquei a câmara no tripé, compus a primeira imagem e então rosqueei o filtro IR 850nm na objetiva. O filtro é opaco para a luz visível, nada se via pelo visor então. A câmara não tem live view. Comecei a fotografar e analisar o resultado, localizar o ponto de foco, ajustar a composição e tentar novamente. Fotografei essa aloe vera em f/8 com velocidades de 1/2s a 1/8s em ISO 200.

Logo percebi que algumas imagens tinham uma pequena barra preta no canto inferior esquerdo da imagem vertical. Parece que o obturador está dando sinal de que vai chegar ao fim. Em alguns outros momentos o obturador simplesmente não abriu completamente, expos só uma faixa. Bom ficar de olho e checar todas as imagens antes de partir para a próxima.

Cheguei a testar um filtro Wratten 87 (segundo a Wikipedia “Blocks wavelengths shorter than 740 nm”), mas gostei mais das imagens com o 850nm, por enquanto.

Virei a câmara para a janela. Fiz uma imagem em f/16 e 1/25s com o mesmo ISO 200, sucesso em obter foco no infinito com a objetiva 50mm, pelo menos.

E depois me diverti com a sinuosidade da rua aqui em frente de casa, com a grama brilhante, enfim, coisas do infravermelho.

Em breve chega do AliExpress um filtro IR Fader que vai de 530nm a 750nm, espero que funcione, queria testar umas imagens em comprimentos menores, entre 600nm e 720nm. Depois conto mais dessa próxima etapa.

Câmara caixote para filme 4×5″

Tudo começou com essa caixa de Ilford FP3 Series 2 que foi fabricado entre 1960 e 1968. Tinha achado ela em Biévres, em 2022, junto com outras tantas tranqueiras. Nem achei que tinha filme dentro, mas passou no raio-x do aeroporto e não fui chamado para inspeção, então, tudo bem. Dai deixei um ano aqui enquanto ganhava coragem para abrir, imaginando tudo que poderia ter ali dentro.

Enfim, vi que tinha filme mesmo. Na melhor das hipóteses esse filme tinha 55 anos de idade. Já meio ondulado e cheirando a vinagre, o acetato se desfazendo com o tempo. Queria usar, mas não tinha mais câmara 4×5″. Só tinha a Technika 13x18cm e não tinha como adaptar.

Minha mãe veio visitar e me trouxe um saco de outras tranqueiras que eu tinha deixado na casa dela. Tinha pedaços de um film holder 4×5″ e uns darkslides de outros, tudo separado para um futuro distante. Com paciência e uma faquinha jeitosa consegui montar um film holder razoavelmente funcional de partes diversas.

Com um caixote de vinho do Porto que peguei no lixo comecei a imaginar uma câmara fotográfica. Do lixo vieram também uns pedaços de madeira compensada, era da embalagem de algum eletrodoméstico grande. Cortei o compensado para fazer uma frente e uma traseira para o caixote, usei cola branca e paciência.

Optei por deixar a câmara com foco fixo, ali pelos 3 metros de distância, para o primeiro teste. Assim podia fazer umas fotos dentro da garagem e se desse certo poderia fazer retratos ou detalhes de ambientes como os que eu tinha feito com a 6×6 uns meses antes.

Fechei as frestas do caixote com massa corrida e pintei o interior de preto. Colei umas tirar de veludo na parte traseira e estava quase pronto.

A Cooke Primoplane de 155mm estava já num board para a Technika, usei cola quente para ameaçar ela ali na frente do caixote. Com um elástico segurei o film holder contra as tiras de veludo. Foi um tanto difícil colocar o filme no holder, a ondulação do filme impede que ele deslize facilmente para dentro.

Também não coloquei uma rosca no inferior da câmara poder usar tripé, nem sabia se o filme estava OK, não quis ter o trabalho à toa. Empilhei umas caixas na entrada da garagem e posicionei a câmara apontada para minha mesa de trabalho. Pela janela entrava uma luz fraca de um dia de inverno, a foto com o telefone dá impressão de muito brilho, mas não era tanto assim. Fechei o diafragma em f/11 e deixei a objetiva aberta por 30 segundos.

30 segundos em f/11

Agora no inverno a temperatura da garagem varia entre os 12C e os 14C, levei água quente da cozinha de casa e fiz um Rodinal 1:50 bem morno. Revelei por 2 minutos com agitação constante. Resultou um negativo pouco denso, mas com muitos detalhes nas sombras (se vê até o timer que está sob a mesa do Durst). Aparecem alguns pequenos pontos de mofo no filme, mínimos. Uma pena, podiam ser maiores.

Acho que agora se faz necessário passar um verniz rápido no caixote e instalar uma rosca na base para poder prender ao tripé. Contar quantas folhas sobraram e usar esse resto da caixa de filme.