# Bucket List of the Dead

2023-08-02 tag_animes ^

A ideia é bem boa. Garoto trabalha como um morto-vivo para uma empresa exploradora e quando começa o apocalipse zumbi ele renasce. E vai comprar umas brejas de bike no meio da horda dos novos mortos-vivos. No entanto, por ser um anime adolescente ele perde pontos. É muita enrolação. O conceito é uma bucket list que o jóvi preenche de coisas que ele quer fazer e nunca teve tempo ou chance ou aquelas desculpas que damos a nós mesmos. A analogia pós-pandemia é muito óbvia. A graça é que é como se ele estivesse em pleno lockdown. Eu lembro minha felicidade nerd na época do coronga, que sabia que não viveria um apocalipse, mas que o vírus era o acontecimento mais próximo disso e estava de bom tamanho. Esta série tem alto astral. Se você é jóvi e se ficar na moda vai curtir.


# Brincando com Fogo

2023-08-02 tag_series tag_dorama ^

Esta novela japonesa chega a ser um pouco engraçada, mas é involuntário. Seu elenco é tão caricato. Será influência de anime? O roteiro não ajuda também. Sem conexão com reais personagens de um drama, a história de investigação de uma filha em busca da verdade para sua debilitada mãe por um acontecimento do passado apresenta personagens estereotipados até o talo. É um exagero estilizado (como certos animes) com trilha sonora moderninha. Não chega a ser curiosa esta versão pop dos valores nipônicos.


# Café Pretíssimo

2023-08-02 tag_coffee ^

Como regra de ouro aumentar o grau da torra diminui a acidez e aumenta o amargor. Minha amiga me deu um café em grãos absolutamente preto, pretíssimo, pretérrimo. É para os produtores da Netflix derramarem lágrimas sobre ele. Vocês não têm ideia. Esse café é muito preto. Fiquei com muito medo dele.

Eu já fiz uma torra assim em casa. Umas das primeiras, empestiei a cozinha e cometi o deslize de queimar. Pois é, queimar a torra, que absurdo. Isso acontece quando não se diminui a temperatura dos grãos em tempo hábil. Em questão de segundos eles passam do ponto, o que quer dizer que no copo fica um amargo além da conta e com sabor queimado. Não bom.

Outra característica das torras bem escuras é sua superfície oleosa, pois depois de certa temperatura a gordura começa a sair de dentro do grão. Interessante que estes grãos não estão assim. Apenas há uma sujeira em torno deles que lembra fuligem. Ao passar os dedos uma espécie de fuligem fica impregnada na pele.

Fiz o primeiro teste com 12g para 200g de água. A mesma coisa que surpreendeu minha amiga me deixou encafufado: doze gramas desses grãos são o dobro do volume de outros grãos. Nunca tinha visto isso.

O resultado no copo ficou equilibrado. Como previsto para essa torra, seu corpo é leve, mas diferente do esperado no sabor, não senti muito amargor. É um sabor intenso de tons aveludados bem simples, que combina com o aroma do pó. Sua cor é preta, pretíssima, pretérrima.

Minha segunda tentativa de passar este café foi no pano, em um pó um pouco mais grosso e uma pré infusão de alguns minutinhos. O resultado dessa vez ficou muito mais forte. Chegou a dar um barato no cérebro. Não chega a ser o amargor que se intensifica, mas talvez os outros sabores se tornam perenes demais na boca. Eles não são exatamente desagradáveis, mas também não são muito desejados. Pelo menos para mim. É um desafio. Me sinto naqueles vídeos do James Hoffman onde ele prova um pó de café guardado desde os anos 50, mas com a diferença que nesse caso é bebível. Degustável já é controverso.

Meu próximo teste foi passar em filtro de papel. Pensei nisso por causa da cor que esse papel irá ficar. Quase aquelas folhas de papel carbono, imaginei. E de fato, sim, foi interessante. O sabor ficou muito próximo entre os três métodos, mas sempre havia alguma coisa mais ou menos forte entre elas. No caso do filtro de papel a pouca acidez conseguiu ficar mais acentuada. Porém, ainda assim, o amargor ganha. Isso e o soco no estômago que é este grão.

Fiz um experimento com a prensa francesa. Após moer para prensa usei uma peneira para tirar os fines e daí coloquei em infusão por 5 minutos. Com os fines que ficaram após peneirar usei a Aeropress. Comparei os resultados. Esse café tem um saborzinho ao fundo que pode ser traduzido como "verde". Na passagem da Aeropress ele continuou bem presente, mas na prensa ele quase sumiu. Foi possível assim sentir um pouco mais de doçura na versão com moagem mais grossa, pois na versão original a língua estava muito ocupada (certeza que irão fazer piada disso) tentando entender o tom "verde" para prestar atenção em doçura. Não é uma grande diferença, mas é algo a se notar se você prefere seu café mais suave. Se é que podemos falar de suave em um café como esse, preto, pretésimo, pretérrimo.

O experimento final foi moer os grãos para prensa francesa e deixar em infusão por 5 minutos para em seguida passar pelo Aeropress. Sem peneirar os fines. O resultado foi o melhor até agora. O sabor "verde" ficou sob controle, assim como o amargor. Este é um café tipicamente amargo e você deve senti-lo na bebida; não faria sentido querer tirar algo que compõe seu sabor. Porém, para sentir o resto dos sabores é crucial mantê-lo sob controle. E eu acho que essa receita conseguiu o feito.


# Degustação de Cervejas de Mercado

2023-08-02 tag_beer ^

Provei algumas cervejas de latinha antes de um churrasco para decidir qual levar. Foram: Budweiser Pilsen, Spaten, Colorado Lager, Patagônia Amber Lager e Brahma Puro Malte. Dividi essa tarefa por três dias. Algumas foram mais doces, outras mais encorpadas. Algumas notava-se mais cremosidade ou mais ou menos everfescência. Minha conclusão foi que todas eram ótimas, algumas mais enjoativas que outras, e no dia mesmo eu peguei mais uma penca de cervejas diferentes. Ganhei gosto em pegar sortida.

No dia seguinte teve outro churrasco e peguei mais três rótulos distintos: Brahma Tostada Caramelizada, Brahma Black em Latinha e Therezópolis. As Brahmas destoavam bastante. A caramelizada aparentava ser mais doce, mas ao mesmo tempo mais cremosa, o que tirava um pouco o doce. A Black era chapada, sem muita espuma. Pode ser considerada sem graça por quem gosta da espuma.

A Therezópolis já conhecia, é um misto entre um pouco doce, mas encorpado e levemente amarga.


# Chungking Express (Amores Expressos)

2023-08-08 tag_movies ^

Não são fascinantes as rimas que encontramos pelo cinema? Esta Amelie Poulain nasceu antes mesmo que a original, em 1994. É a gamine mais espontânea de todos os tempos. Isso porque ela não é atriz de verdade, mas a cantora mais famosa de Hong Kong. Ela dança ao som de California Dreamin' e canta sua própria versão de Dreams (The Cranberries). Faye Yong é a alma de um projeto de baixo orçamento, introduzida em seu filme pelo diretor Wong Kar Wai como um estabanado, o que não é costume do cineasta e que ajuda a explicar o caos interno da personagem e das filmagens com uma improvisadora por vocação.

E esta é apenas a segunda e mais comportada metade do filme. Em sua primeira parte existe mais ação, com tiros inclusive, em uma metrópole que não liga para corações atribulados, que mesmo assim insistem em bater. Curiosamente ambos os corações masculinos são de policiais. E mais curioso ainda é a breguice do primeiro.

Seu nome é He Qiwu e ele termina com uma garota chamada May no dia primeiro de abril. Quer dizer, ela termina com ele. Para ele se certificar que ela de fato o abandonou, ele compra uma lata de abacaxi por dia, a fruta favorita dela, até que ela retorne. Ou ela retorna ou todas as latas irão vencer no dia do aniversário dela: primeiro de maio. Em uma história paralela uma peruca loira de óculos escuros inclusive à noite foge pelas ruas depois que um plano de contrabando envolvendo indianos termina mais azedo que os abacaxis do policial. Tiros são trocados neste episódio mais almodovariano da carreira do diretor asiático. É charmoso, bagunçado, clichê e adorável.

Tudo isso empalidece quando começa a história de Faye Wong e sua paixonite pelo segundo policial do longa, que também levou um fora de sua garota, uma comissária de bordo, muito boa por sinal. Assim como ela, Faye mantém sua cabeça nos ares, mas com os pés fincados em terra firme, e invade a casa do moço e cuida dela como se já fosse sua. E eis que nasce a inspiração de Jean-Pierre Jeunet para a icônica versão francesa. E o policial acompanha, batendo um papo com os objetos da casa que um dia foram os participantes de uma história de amor.

Os movimentos de câmera do filme são frenéticos e acompanham os personagens com energia. Há cenas no começo que evocam isso, pois elas ficam borradas. Há um quê de experimentação, curiosa porque podemos observar traços de uma filmografia pautada nos solitários e as paixões não correspondidas. Uma oportunidade única para entender a evolução das rimas do cinema.


# Descobrir ativação de classes WinRT

2023-08-13 tag_coding tag_reversing ^

A Windows Runtime nada mais é que o COM repaginado. O COM já previa o uso de proxies para comunicação remota entre processos. A WinRT adicionou mais uma interface e uma função. Vou neste post descrever o processo pelo qual descobri como funciona o registro de um dispositivo no Azure Active Directory (AAD).

O teste feito é logar no Microsoft Teams com uma conta de empresa pertencente a um domínio federado, o que significa que para fazer o login existe um plugin feito pela empresa que será carregado e autenticar o usuário. TL;DR isto é feito por um processo chamado `Microsoft.AAD.BrokerPlugin.exe`, que usa WinRT para se comunicar com o servidor AAD e com o sistema.

Analisando o disassembly pelo IDA e realizando algumas sessões de debug eu estava caminhando pela interface `IUserDeviceRegManagerStatics` que havia encontrado anteriormente. Eu sabia que essa interface estava por trás do registro da máquina porque depois que alguns de seus métodos são chamados o comando `dsregcmd.exe /status` lista o computador como joined dentro do AAD e se você for na parte de contas do usuário naquela tela de configurações do Windows irá aparecer a mesma conta usada para logar no Teams.

Buscando no registro pelo nome dessa interface existe uma entrada em `HKEY_CLASSES_ROOT\Interface\{b5decd05-58ef-4cd3-ae25-d177bcbcea9e}` aonde existe uma subkey `ProxyStubClsid32`. Essa subkey, de acordo com o MSDN, é usado para traduzir um IID -- ID de Interface -- para um CLSID -- ID de classe. Nas palavras do MSDN (em inglês, por favor): "Maps an IID to a CLSID in 32-bit proxy DLLs".

>

> If you add interfaces, you must use this entry to register them (32-bit systems) so that OLE can find the appropriate remoting code to establish interprocess communication.

>

Eu acredito que a mesma lógica se aplica a ambientes de 64 bits, que é o caso do Windows 10 onde estou analisando.

Então esse ID é um CLSID para o código de um proxy que irá me ajudar a chamar esta interface `IUserDeviceRegManagerStatics`. Tudo bem, vamos lá. O valor default dentro dessa subkey é `{65704743-2513-4987-9fc9-826bbedde743}` e eu devo fazer a busca por este ID dentro de `HKEY_CLASSES_ROOT\CLSID`, já que se trata de um ID de classe. Eu encontro. O valor default dessa chave diz "UserDeviceRegistration", então eu penso ser este o cara que estou procurando.

Existe uma chave `InProcServer32` dentro desta chave. Novamente vamos à documentação, e de acordo com o MSDN:

>

> Registers a 32-bit in-process server and specifies the threading model of the apartment the server can run in.

>

Isso faz todo o sentido, porque o valor default para esta mesma chave é "C:\Windows\System32\UserDeviceRegistration.dll" e existe uma string `ThreadingModel` também especificando "Both". Olhando para as funções exportadas por esta DLL `UserDeviceRegistration.dll` são listadas as bem conhecidas `DllCanUnloadNow`, `DllGetActivationFactory` e `DllGetClassObject`. Isso é bê-a-bá de COM. O código que eu quero usar deve carregar esta DLL e chamar `DllGetActivationFactory` ou `DllGetClassObject` para obter um ponteiro para uma classe implementando esta interface ou um proxy para chamar esta classe remotamente.

Ao analisar pelo OleView pela `IUserDeviceRegManagerStatics` não há uma biblioteca de tipos com os nomes dos métodos e argumentos. Existe uma vtable genérica com algumas procedures chamadas "Proc1", "Proc2" e assim por diante. Já que desde minha sessão de debugging anterior eu vi um monte de funções RPC sendo chamadas eu irei assumir que `UserDeviceRegistration!DllGetActivationFactory` está sendo chamada. E, mais uma vez, de acordo com o MSDN, este entry point:

>

> Retrieves the activation factory from a DLL that contains activatable Windows Runtime classes.

>

That's a bingo! Windows Runtime classes é o que estou procurando mesmo. Como eu já estudei anteriormente, isso bate com o retorno desta função: um ponteiro para a interface `IActivationFactory`. A entrada deste argumento é uma `HSTRING`, que é uma nova string definida pela Windows Runtime para strings imutáveis das linguagens mais populares, como C# e JS. E, mais uma vez, isso explica porque em minhas sessões de debug observei um monte de chamadas a `WindowsDeleteString`. Quando você começa a fazer reversa começa a ouvir ecos de sessões passadas para conseguir montar o quebra-cabeças.

Com tudo isso que descobri resolvi colocar um breakpoint no evento de load desta DLL.

sxe ld:UserDeviceRegistration.dll

Repito o procedimento de registro de máquina e o breakpoint é ativado. Estou pronto para agora colocar um breakpoint na `DllGetActivationFactory`. Porém, tenho um insight neste momento. Eu me lembro que posso usar o Process Explorer para buscar no sistema inteiro quem é que está usando a mesma DLL que estou de olho. Afinal de contas, se ela é a interface para se comunicar com a implementação, faz sentido que dentro dela exista a implementação.

E com isso eu encontro a `RuntimeBroker.exe`, processo iniciado quase ao mesmo tempo que o BrokerPlugin. Coincidência? Acho que não.

Isso significa que agora eu posso depurar tanto o BrokerPlugin quanto a RuntimeBroker e usar os símbolos da DLL em comum para encontrar quais funções deverão ser chamadas de ambos os lados, já apostando que o método chave seria `CUserDeviceRegManagerStatic::WorkplaceJoin`, já que eu já encontrei este método em sessões passadas e seu nome faz todo sentido.

Na minha primeira tentativa o breakpoint não disparou. Busco, então, por nomes de funções semelhantes:

x UserDeviceRegistration!Windows::Internal::UserDeviceRegistration::CUserDeviceRegManagerStatic::*

Já que estou interessado no macro coloco breakpoint em todos os métodos da classe. Faço isso também do lado do BrokerPlugin e seus métodos dentro de `UserDeviceRegistration::IUserDeviceRegManagerStatics`. Posso acompanhar o fluxo sem parar usando um parâmetro bem esperto nos breakpoints do WinDbg: um comando qualquer. Nesse caso uso imprimir o nome da função chamada e o comando `g`, que segue a execução sem parar. Por exemplos (RuntimeBroker e BrokerPlugin, respectivamente):

bp UserDeviceRegistration!Windows::Internal::UserDeviceRegistration::CUserDeviceRegManagerStatic::DelegatedWorkplaceJoinWithRequestId ".echotime; .echo UserDeviceRegistration!Windows::Internal::UserDeviceRegistration::CUserDeviceRegManagerStatic::DelegatedWorkplaceJoinWithRequestId; g"
bp AAD_Core!Windows::Internal::UserDeviceRegistration::IUserDeviceRegManagerStatics::GetJoinInfo ".echotime; .echo AAD_Core!Windows::Internal::UserDeviceRegistration::IUserDeviceRegManagerStatics::GetJoinInfo; g"

Com isso eu descobri qual o processo e qual a classe envolvida neste processo de registro de máquina. Graças também aos símbolos disponibilizados pela Microsoft fica muito mais fácil entender o fluxo. Pretendo usar esta técnica mais vezes no futuro.


# As Órfãs da Rainha

2023-08-17 tag_movies tag_cinemaqui ^

Este segundo longa da cineasta Elza Cataldo (Vinho de Rosas) é antes de tudo um trabalho documental de uma época pouco vista na cinematografia brasileira. Estamos falando dos longínquos anos 1580 e seus esparsos imigrantes; a maioria está lá por sentença, ainda que alguns vendidos pela chance do novo mundo.

O filme recria este ambiente e os ânimos dos locais, começando pelas pessoas menos satisfeitas por estarem lá: as mulheres de Portugal. Há três delas, irmãs. As duas mais velhas já vieram encomendadas para formar família. A mais nova não: ela tem o pé defeituoso e nenhuma serventia. Então ela fica na igreja com um padre que se sente guardião da moral entre os poucos habitantes de Vila Morena e os nativos em volta. Não demora muito para ela começar a desenhar sua arte e ter uma paixonite por um indiozinho de fala mansa.

O trabalho histórico no filme é impressionante, ainda mais por se tratar de uma produção nacional. Não estamos acostumados a épicos que resgatam o início de nossa brasilidade, e todo o afinco e detalhes em narrar esta passagem aumenta a imersão.

As atuações são precisas, beneficiadas por diálogos que aumentam nossa compreensão dos valores daquela sociedade. Existe um quê teatral que ofusca o realismo que é tão curioso quanto os efeitos de computação gráfica que surgem; na maioria gratuitos, exceto pela morte de uma criança.

Outro detalhe que soa condescendente com o espectador contemporâneo são as cenas de violência cotidiana daquela época, que no filme ocorrem fora de quadro. É de bom tom, mas suaviza a brutalidade, se aproximando de uma novela da vida privada e se afastando do seu potencial de provocar. Ser um filme lembrado por mais tempo do que o tempo de sua produção (mais de uma década) deveria ser um objetivo desejável.

Por falar nisso, suas filmagens terminaram assim que os casos de COVID começaram no Brasil, e todos os meses de preparo da pré-produção se pagaram, pois o trabalho após filmado ocorreu remotamente, quando já havia uma alma construída, idealizada com muito esmero por Cataldo.

Apesar da longa duração e o ritmo procaico o filme passa rápido, mas não o suficiente para seu terceiro ato, que soa arrastado não pelo conteúdo, mas por não esperarmos por todo um episódio final envolvendo a chegada da Santa Inquisição e o julgamento dos moradores da Vila. Essa parte também é um primor de detalhes documentais; quase não deixa escapar a visão parcial de lados e a defesa ferrenha de opinião que estamos acostumados a perceber em produções de viés social. Só que este longo processo que transforma amigos e conhecidos em traidores uns dos outros para salvarem sua pele não acompanha o ritmo do espectador. Por outro lado, lembra um pouco as farpas trocadas na pandemia, que dividiu por completo as pessoas.

Se eu fosse você eu assistiria este filme no cinema. É muito difícil na vida moderna do sofá de casa ou dos gadgets na palma do mão escapar do ritmo alucinante de luzes piscando. Este trabalho histórico merece uma imersão que não está disponível em streaming. Exceto, talvez, em sua revisita.


# Já Pias 375 mL

2023-08-17 tag_wine ^

Além do Wine ter me enganado no sistema de assinaturas ainda oferece meia-garrafa em sua loja sem avisar corretamente. Nunca imaginei que essas lojas ofertasssem esse tipo de garrafa para entrega. Meia-garrafa na minha concepção é para comprar no mercado porque você vai beber vinho sozinho para acompanhar a pizza. O Já Pias, apesar da conotação, não é tão ruim assim. Ele é bebível. "Uma raridade", diz o sommelier do Wine. Eles sabem vender suco de uva estragado. No entanto, para um vinho português achei bem bom. Os taninos são macios, mesmo.


# Oppenheimer

2023-08-17 tag_movies ^

Tarde de solteiro, resolvi dar uma ida e volta ao cinema de caminhada. Pensei que teria muito a refletir na volta. Estava lembrando na ida da última vez que fiz isso e assisti sem pretensão o maravilhoso Tudo, No Mesmo Lugar, Ao Mesmo Tempo. Qual seria o filme escolhido dessa vez?

Oppenheimer, é claro. Eu assistiria Barbie, mas já está prometido para ver com a Mitiko. De qualquer forma seria um dos dois. O motivo é que ambos são um dueto de um meme que se espalhou em 2023. Tanto que ambos os filmes tiveram bilheterias significativa nas estreias.

Porém, por via das dúvidas, fui comprar pipoca. Desde a bagunça de Tennet, nunca se sabe o que o diretor Christopher Nolan pode aprontar. Na direção e no roteiro. Então, que pelo menos a pipoca seja boa. Sem contar que são três horas de duração.

Escolho um cinema com os efeitos porque meu amigo me disse que era importante. Hoje eu entendo para que serviriam nesse caso: para disfarçar a quantidade de vergonha alheia que vai vindo aos borbotões conforme assisto a uma lástima de cinema.

A começar pelas falas. Nolan tem um elenco de peso, das antigas, e não entrega um diálogo sequer que não te faça pensar "o que eu estou fazendo aqui". Os únicos minutos em que o filme faz algum sentido é na introdução, os primeiros quinze minutos. Faz sentido e é agradável ser apresentado aos poucos às mentes brilhantes daquela época.

Ao final, se você se lembrar que a primeira cena é Oppenheimer olhando para gotas de água caindo em um lago, vai perceber que sua última cena sequer rima. Se você for um espectador autista ainda pode observar que antes do teste da bomba de Los Alamos choveu torrencialmente, o que faria rima com a vinda da guerra fria e suas ameaças de bombas de todos os lados e os delírios do cientista em vislumbrar este futuro e... não, chega. Você não precisa disso. Ninguém precisa disso.

A impressão após assistir a Oppenheimer é de que o mundo não precisa de um filme sobre esses fatos históricos conforme descritos, em estilo documental e ao mesmo tempo thriller de ação psicológica ou o que seja. Assim como o final da guerra não precisava dessa demonstração de forças irracional e desproporcional. No entanto, aí estão as mazelas das bombas, por gerações. O aí está o filme. A vantagem do filme é que ele só será lembrado este ano. E olha lá. Só por causa dos memes.

Nolan gosta de testar coisas novas no cinema, e isso é admirável. Ele quis uma produção "modesta" que poderia evocar parte do charme visto em Dunkirk se não fosse pelas distrações narrativas, cuja divisão de tempos para criar uma espécie de suspense eu nem vou comentar de tão incômodo que foi.

Queria mais comentar um dos maiores equívocos deste diretor que hora flerta de Kubrick, hora de Hitchcock, mas nos últimos tempos tem ido de Ed Wood. Estou falando de sua conversa sobre o som.

Nolan constrói com a ajuda nada inspirada e toda exagerada do seu diretor de música uma sinfonia do caos audiovisual. Não são apenas as notas musicais tenebrosas, exageradas no ritmo e volume, mas também o que acontece ao mesmo tempo no filme. Os delírios, as alterações. Tente, por exemplo, defender um Oppenheimer pelado fazendo sexo com sua amante na sala onde está sendo julgado como uma tentativa de mostrar o que sua esposa está visualizando e vai começar a entender onde eu quero chegar quando critico o autismo severo de um dos diretores mais brilhantes que já passou por Hollywood.

Faz parte da experimentação do cineasta estes pequenos grandes tropeços em sua carreira. Porém, o que me incomoda é ele não ter enxergado o que nós admiramos em vários de seus trabalhos. É como se seus acertos fossem incidentais, assim como os erros. E isso preocupa quem gosta da sétima arte, onde Nolan é exemplo nas últimas duas décadas.

É triste dizer, mas faz falta o seu irmão no equilíbrio entre direção e roteiro. Gênios não trabalham sozinhos nem partem do nada. É uma pena que a pessoa que dedicou os últimos anos a entender isso do ponto de vista da ciência não consiga enxergar isso em sua própria área.


# Vinia Le Fruité I.G.P. Pays d'Oc 2021

2023-08-17 tag_wine ^

Eu abro vinho francês como quem não está afim de tomar vinho. Daí fico naquela de suquinho e talz. Este Vinia eu nem me lembro se tinha mais algum gosto do que uva estragada. O sommelier do Wine já deu a dica em suas notas: vinho elegante. Isso é sinônimo para bleh. Tem Carignan, Syrah e Grenache nesta garrafa (só para constar).


# Eami

2023-08-19 tag_cinemaqui tag_movies ^

Eami ganhou diversos prêmios mundo lá fora e é o representante do Paraguai para o Oscar desse ano. Então deve ser muito bom, né? Você sabe que não é assim que a banda toca.

Uma mescla de imagens enigmáticas e paradas com uma narração simbólica, quase hermenêutica, sobre eventos passados, o filme prefere assumir a narrativa do oprimido indígena, o que se torna para o espectador não-indígena e não-engajado nesse assunto, ou seja, qualquer desavisado que entrar na sala de cinema, uma história sobre coisa alguma. E pior: que dá vontade de dormir.

Pelo menos nisso o filme acerta, já que os delírios são sobre um passado longínquo, 30 anos atrás, sobre ou um massacre, ou uma invasão, ou a queima da floresta, habitat natural do povo retratado. Porém, diferente de trabalhos instigantes, este não te provoca para buscar conhecimento após a sessão.

O idioma e os costumes deste povo são extremamente primitivos. Indígenas do novo mundo são o último elo entre a civilização e o homem pré-histórico. Talvez por isso este mundo nos pareça tão estranho. Para alguns fascinante. Para o resto, nós, completamente estranho. Alienígena.

Entre este elo e o homem moderno infinitas disputas de terra e muito derramamento de sangue existiu e continua existindo até a configuração geográfica e política atual dos países. Assassinatos, escravidão, tortura, estupros, sabotagens e muitas outras ações pela sobrevivência dos povos existiu na história. Mas, por algum motivo, os indígenas ocupam uma posição especial quando se fala de algo que sofreram.

E não é o surgimento do cinema, este mecanismo de pausterização de dramas. Há várias outras histórias de opressão de outros povos onde entendemos a língua que está sendo falada. O drama consegue ser transmitido, mesmo que pelo próprio povo que massacrou o derrotado.

Talvez seja esse mito do bom selvagem misturado com políticas sociais e uma pitada de nascisismo geopolítico. Nós gostamos de nos sentir importantes ao falar sobre algo no sentido de denúncia, pois nos posicionamos como salvadores, ou parte da salvação. Nem que seja assistindo, dialogando sobre o filme ou expressando nossa opinião muito original e independente a respeito de concordarmos com tudo que a cineasta mostra. Este é o verdadeiro debate do século: só há um lado e é sempre o lado certo.

As imagens de Eima não fazem sentido. Suas trucagens com filtro de cor, luz e transições entre cenas , além de bregas, são o combustível que dá mais sono ainda. Nada do que você ver neste filme te salvará do sono eterno. Estamos fadados a acompanhar o drama indígena em nossos sonhos. Nosso único consolo é que o tormento acaba logo.


# Finalmente blogawk [link]

2023-08-20 tag_coding ^

Fiquei muito empolgado com a solução awk que converte meus posts para um epub "carregável" em um leitor de ebook e no computador e parti para usar a mesma estratégia em meu blog para abandonar dessa vez o Hugo, um renderizador de sites estáticos feito em golang extremamente rápido, mas que não está dando conta dos meus mais de 4000 posts.

O maior peso dessa conversão é o file system. A leitura e escrita de milhares de arquivos, mesmo que não seja feita nenhuma conversão, por si só já é a parte mais pesada. Sendo assim, adotei duas estratégias de otimização:

1. Usar um único arquivo de leitura.

Com isso eu consigo aplicar a leitura deste arquivo pelo script awk em um passo só. De quebra, as mudanças sistêmicas no blogue serão muito mais fáceis.

2. Usar um arquivo por mês na escrita.

Esse foi o maior economizador de tempo. Gerar 4000 novas entradas no file system do Windows estava custando caro, em torno de um minuto. Transformar isso em uns 300 arquivos fez a escrita levar de dois a três segundos!

A tradução do site para awk levou no total uns dois dias. A ideia foi copiar o HTML gerado pelo Hugo e fazer os mapeamentos de data, tags e estruturas de listagem no awk, que lida com isso através de seus arrays dinâmicos com muita facilidade e rapidez.

Um ponto de atenção aos novatos do awk que eu destacaria dessa experiência é sobre as variáveis. Exceto os argumentos de funções, todas as variáveis são globais, o que pode dar alguns pesadelos quando há mais de um uso do mesmo nome, especialmente quando há diferença entre tipos escalares e arrays. Se eu fosse fazer do zero novamente eu não economizaria na largura dos nomes e nos prefixos, como g_ para denotar as globais. Um truque muito bom do awk também é declarar variáveis da função como parâmetros que não são recebíveis pelo chamador. Há uma convenção de separar por espaços os parâmetros reais dos locais.

De resto, agora tenho a liberdade de renderizar meu blogue em questão de segundos. Aposentei a estrutura do Hugo e estou usando awk para gerar tanto o blogue quanto o ebook.

Não achei justo fazer benchmarks de comparação com o Hugo pelo motivo do file system já citado e também pelas diferentes estratégias adotadas. Pelo própria estrutura engessada e necessáriado Hugo em unir estrutura de arquivos fontes e estrutura final do saite eu sei que não seria viável continuar usando a ferramenta.

Além disso, awk me dará a liberdade que gostaria de indexar pesadamente meus textos com o poder dos arrays associativos de awk. Já conhecia eles do PHP, mas agora que conheci os do awk estou pensando seriamente em adotar para outros tipos de tratamento de texto. Talvez até use para minhas finanças pessoais.


# Explorando a HSTRING [link]

2023-08-21 tag_coding tag_reversing ^

Estava me enveredando hoje nos bytes usados para montar e demonstar os argumentos de uma interface COM proxy da WinRT quando quis saber qual era o leiaute da nova string do Windows, a HSTRING, usada na WinRT e em todo o ecossistema dos Universal apps.

Bom, para quem sabe assembly básico, não há nada prático que fazer uma sessão simples de debugging chamando as funções da API. Inspirado na primeira sessão do livro reversing, fiz as chamadas básicas para obter o tamanho da string, o raw buffer, etc, e fui adentrando no disassembly de cada uma, obtendo as linhas-chave para montar a struct que representa uma HSTRING. Abaixo o código-fonte:

#include <winstring.h>
#include <string>
using namespace std;
int main()
{
    wstring str = L"my hstring";
    HSTRING hstr = NULL;
    HRESULT hr = WindowsCreateString(str.c_str(), (UINT32) str.size(), &hstr);
    if( SUCCEEDED( hr ) )
    {
        UINT32 hstrLen = WindowsGetStringLen(hstr);
        hstrLen = 0;
        PCWSTR rawHstr = WindowsGetStringRawBuffer(hstr, &hstrLen);
        BOOL isEmpty = WindowsIsStringEmpty(hstr);
        HSTRING hstr2 = NULL;
        hr = WindowsDuplicateString(hstr, &hstr2);
        if( SUCCEEDED(hr) )
        {
            hr = WindowsDeleteString(hstr2);
        }
        hr = WindowsDeleteString(hstr);
    }
    HSTRING_HEADER hstrHeader = {};
    HSTRING hstr3 = NULL;
    hr = WindowsCreateStringReference(str.c_str(), (UINT32) str.size(), &hstrHeader, &hstr3);
    if( SUCCEEDED( hr ) )
    {
        hr = WindowsDeleteString(hstr3);
    }
    return hr;
}

Com isso fui fazendo as calls e encontrando os offsets pelas instruções referentes ao rcx, primeiro parâmetro passado em x64:

UINT32 hstrLen = WindowsGetStringLen(hstr);
00007FFC84D8BBE7  mov         eax,dword ptr [rcx+4]  
PCWSTR rawHstr = WindowsGetStringRawBuffer(hstr, &hstrLen);
00007FFC84D22345  mov         rax,qword ptr [rcx+10h]  
BOOL isEmpty = WindowsIsStringEmpty(hstr);
00007FFC84D23019  mov         edx,dword ptr [rcx+4]  
00007FFC84D2301C  test        edx,edx  
00007FFC84D2301E  sete        al  
hr = WindowsDuplicateString(hstr, &hstr2);
00007FFC84D1789A  lock inc    dword ptr [rcx+18h]
hr = WindowsDeleteString(hstr2);
00007FFC84D176A8  lock xadd   dword ptr [rcx+18h],eax
hr = WindowsCreateStringReference(...
layout:
0x0000009C0230F848  00000001

E eis o resultado que cheguei:

struct HSTRING {
  BOOL Reference;     // +0x00
  UINT32 Lenght;      // +0x04
  UINT64 Unused2;
  PCWSTR RawString;   // +0x10
  UINT32 RefCounter;  // +0x18
};

Para mais detalhes do uso dessa string dê uma olhada no ótimo artigo de Raymond Chen.


# Anime de Zumbi Live-Action

2023-08-28 tag_series ^

É só olhar para algo mais ou menos diferente que os produtores da Netflix já saem batendo uma e assinando contrato. E eis que nasce este live action de 100 Coisas de Zumbi (esqueci a droga do nome, foda-se), um anime curto que foi escolhido porque tem zumbis, revolta contra as corporações que sugam seus funcionários e tem jovens se divertindo no processo. Seu elenco não tem o menor carisma, são atores-mirins adolescentes, e repetem as falas e os gestos do anime, sem aumentar os custos, sem muito efeitos. Exceto o grotesco, e única diversão do longa, tubarão-centopéia-zumbi. South Park chamaria este ser de metade tubarão, metade centopéia e metade zumbi.


# Zombie Land Saga

2023-08-28 tag_animes ^

Houve uma vez em que assisti vários E01 de animes em sequência na esperança de achar alguns bons, mas passou despercebido este Zombie Land Saga. Hoje reassisto com outros olhos. Se trata de uma produção arrojada. Cores, ângulos, música e detalhes de cena criam com dinamismo e um bom humor espalhafatoso na medida certa a trajetória dessas garotas que morreram cada uma à sua época e hoje estão juntas nessa mansão recebendo instruções de seu agente megalomaníaco. O ritmo lembra Mahou Shoujo Ore com suas meninas mágicas peitudas, onde nos peitos há apenas músculo. Lembra também a parcela Idol da série Aggretsuko. Enfim, a dinâmica das meninas funciona em uma paleta de cores fascinante e em constante movimento. Já assisti mais episódios, apesar de ser bem difícil acabar porque começa a dramatizar e delongar muito.


# Muitos animes, lugares e séries

2023-08-28 ^

A ideia de fazer um apanhado da semana como havia feito em um post anterior não se sustenta se eu deixo de escrever por um mês. Especialmente se a Sra. Mitiko inventa de assistir um milhão de animes. Além do mais, agora que não existe mais uma página por post e a indexação é feita por hashtags fica muito mais simples apenas ir encadeando post a post, como subseções pequenas de um escrito maior. Bom, dependendo do caso, claro. Algumas vezes é bom ligar os pontos.


# Orby Cabernet Sauvignon - Merlot 2012

2023-08-28 tag_wine ^

Vinho francês não costuma ter caráter. É apenas vinho. Mas pode ser que não tenha provado os muito caros. Este blend é okzinho, bebível para o dia-a-dia.


# Reencarnando como uma reencarnação de anime de reencarnação

2023-08-28 tag_animes ^

O que há que os japoneses agora todos reencarnam em um jogo online e os episódios dos animes viram batalhas de RPG, aumento de XP e lições de moral para crianças chatas? E o pior é que a Sra. Mitiko está gostando desse gênero. Dos que eu vi de passagem contei cinco. E isso em apenas um mês!

E a criatividade está em falta. Tem um, Reborn as a Vending Machine, em que a criatura renasce como uma máquina de venda. Não que isso seja muito bizarro. Máquinas de venda são mais comuns no Japão que jovens. Existe cerca de 1 para cada 30 habitantes. E nesse anime o protagonista consegue se transformar nos mais diversos tipos de máquina, convenientemente gerando o efeito desejado para a cena onde isso acontece.

Porém, pior que isso é Sweet Reincarnation, onde um ilustrador muito fã de doces foi enganado a desenhar um anime medieval sob a promessa que um dia o herói começaria finalmente a fazer doces na cozinha real. Não acompanhei muito, mas todas as vezes que eu vi faltou açúcar e sobrou política.

Em Campfire Cooking in Another World a desgraça do personagem nasce no mundo de RPG com a extraordinária habilidade de fazer compras online. Em geral ele compra comida e prepara pratos divinos para todos em volta. A ideia é bacana. E repetitiva. E há um slime com uma dublagem infantil particularmente irritante.

E para finalizar anotei este "Didn't I say to make my abilities average in the next life", em que não me lembro muito bem o enredo, mas acho que o título já diz muita coisa. Na verdade havia anotado mais um, mas eu não tenho a menor noção sobre o que ele é. Exceto que alguém reencarna em um mundo... você já entendeu o gênero.


# The Girl I Like Forgot Her Glasses

2023-08-28 tag_animes ^

Animação meio 3D, meio desenhado. O 3D é horrível, mas tem charme. O plot é a garota com cabelos esvoaçando ficando bem pertinho do garoto que gosta dela porque ela esqueceu os óculos. Japoneses sofrem com paixões platônicas e boa parte dos animes referencia este traço tão comum entre pessoas tímidas.


# The Masterful Cat is Depressed

2023-08-30 tag_animes ^

A garota caótica adota um gatinho que quando cresce fica maior que ela e cuida da casa (e dela). Uma comédia fofinha para esquentar o coração. Em algum lugar no meio das piadas nos encontramos nos episódios que refletem a vida urbana tentando ser sensível. Ah, e tem a parte que é um gato gigante de dona de casa.


# Mashle: Magic and Muscles

2023-08-30 tag_animes ^

A referência a Harry Potter é tão gritante que soa uma sátira. Em um mundo onde todos usam magia este garoto faz não sei quantas flexões por dia e pega de porrada até os bruxos mais gabaritados. A referência à obra de J. K. Howling não acaba por aí. Se trata de um messias, um renegado. E que irá dar muita porrada (acredito, dropei no primeiro) nesses bruxos e suas varinhas gays.


# The Café Terrace and Its Goodness

2023-08-30 tag_animes ^

Este eu dropei antes de terminar o primeiro episódio. O exploitation é explícito demais para conseguir acompanhar. A adaptação é descarada de um mangá que só quer fazer marmanjo se sentir o tal. É uma casa de chá que possui beldades peladas espalhadas pelo recinto enquanto o herdeiro do local se apresenta. Toda nudez será mostrada, mesmo que as pessoas não precisem ficar nuas.


# Masamune-kun's Revenge

2023-08-30 tag_animes ^

Ele era um gordinho zoado pela escola e agora é o garoto popular que quer se vingar da garota que não quis ficar com ele. Eu estou ouvindo Incel lá no fundo? Os ecos do passado irão encontrar o amadurecimento desse personagem. Não é ruim, é um tanto dramático e um tantinho romântico. Bom para ver com a garota do seu lado.


# Meu Casamento Feliz

2023-08-30 tag_animes ^

Este drama de época e com magia irá demonstrar como as aparências enganam. Essa moça maltratada (no mangá mais maltratada ainda), a gata borralheira de um conto japonês, se casa com um nobre que é temido por todos, e por algum motivo mágico (esses roteiristas) simpatiza com a moça. Ele nem precisou sair por aí procurando um pé que calçasse os sapatinhos de cristal. Gostei como constrói a história sem auê, em um ritmo contemplativo. Mas há uma manipulação de maldades exagerada. O núcleo amoroso é o forte. Não sei o por quê da magia (nem saberei, não sou eu que assiste).

2023-09-03 Nota: preciso assistir novos episódios, pois tenho a impressão que alguns detalhes passaram despercebidos.


# Dr. Stone

2023-08-30 tag_animes ^

O forte deste anime, assim como Cells At Work, é ser didático sobre a ciência e ainda assistível. Um embate inicial é formado entre um potencial assassino da humanidade e um gênio que acordou milhares de anos no futuro enquanto todos estavam transformados em pedra. Há também um romancezinho para dar um ar de sacrifício ainda maior. No meio da retomada dos homens na terra o Dr. Pedra irá recorrer aos seus conhecimentos para fazer prevalecer a esperança. Bacana a introdução.


# Luden

2023-08-30 tag_series ^

Esta série é sobre putarias em uma Alemanha da década de... 70? Já esqueci. É sujo porque é alemão, e é isso que eu gosto dessas putarias alemãs. Não é sexy, é apenas sujo. E há um cheiro de sarcasmo e ironia no ar, apesar de no fundo ser uma história fofinha. Baseada teoricamente em uma biografia. Ao final de cada episódio há fotos da época onde vemos os personagens da vida real.


# The Marvelous Mrs. Maisel - Season Finale

2023-08-30 tag_series ^

Não comentei antes, mas vi a season finale desta série maravilhosa (sem trocadilho). Sua comédia advém dos costumes e seus criadores não tentam dar lição de moral todo momento. É um olhar ácido sobre várias décadas onde a mulher tinha um papel mais limitado na sociedade. Os personagens são ricos e os diálogos mais ainda. Esta série não cria situações, elas acontecem, e em um ritmo frenético. Seu final não poderia ser mais digno. Há alguns bons episódios para serem vistos. Não perca.


# Everybody Hates Chris - Season 3

2023-08-30 tag_series ^

Cansei da série do Chris Rock. Acho que na terceira temporada ela já começa a ficar repetitiva e com alfinetadas nos brancos além da conta. Não é mais aquele respiro de ar puro sobre as ruas barra pesada onde Chris conta suas aventuras. A dinâmica se repete tanto e há um cuidado extracomunal na introdução que faz perder o núcleo da comédia. Nada dura para sempre.


# Primer

2023-08-30 tag_movies ^

Revi este filme com meu amigo pausando e comentando e finalmente entendemos a trama principal. E depois que se entende isso acaba ficando um pouco sem graça. Só que não. O universo de viagem no tempo idealizado pelo seu criador continua fresco e vívido. Há tantas possibilidades em entender os plots secundários e tanto o que poderia acontecer em um mundo onde essa máquina existisse que se torna uma diversão à parte só conversar sobre. E é isso que torna Primer ainda um dos melhores filmes do gênero. Ele é uma discussão eterna. Ele nunca termina. Sua produção de baixo orçamento é assistível, inclusive pela fotografia. Suas atuações são milimétricas e seu movimento de câmera preciso. Shane Carruth, diretor e roteirista, produziu além de Primer mais três outros trabalhos, mas este é o único que dirigiu e escreveu. Ele costuma compor trilhas. E ele, assim como o cara do The Room, foi o escolhido para compor esta sinfonia racional e sublime de linhas do tempo.


# Wiñaypacha

2023-08-30 tag_movies ^

Casal idoso vive nos Andes, reclama que seu filho nunca volta, e as coisas apenas pioram na uma hora e meio dessa produção modesta e pálida. Seus acontecimentos são ritmados, mas não há um impulso que nos faça esquecer que tudo está acontecendo conforme prevíamos dez minutos atrás. As atuações são de uma farsa, notadamente ruins. Essa ideia de documentário ficcionado pode funcionar, mas nem sempre. Este é um nem sempre.


# Doceria Zucker

2023-08-30 tag_food ^

Doceria que entramos apenas para pegar um doce, pois já estava fechando e não estavam abertos para atendimento mais à noite. Provamos o carro-chefe deles, banofes de banana e de morango. Foram bem preparados, mas um tanto doce demais. Embora dê para sentir o sabor do doce de leite o resultado ainda é muito doce. Deve ser servido bem gelado, acredito. O "morangofe" é mais equilibrado que o tradicional.


# Hinodê

2023-08-30 tag_food ^

Comida bem preparada apenas com algumas exceções. O sashimi não é barato, mas é de qualidade. Os atendentes estavam distantes. Não espere um cuidado no atendimento, vai ter apenas o básico. O restaurante tem um clima um tanto decadente e fora o atendimento relapso e uma comida aceitável, mantém os preços ligeiramente mais caros pelo que oferece. O lugar é barulhento, não existe um bom isolamento de som e a impressão era que os clientes estavam falando bem alto.


# Estação Cozinha Nordestina

2023-08-30 tag_food ^

É um bom lugar, próximo do metrô, para comer comida nordestina com um bom custo benefício. Também serve bem para um happy hour após o serviço. Os drinks são com preço justo e equilibrados.


# Belka Cafeteria Russa

2023-08-30 tag_food ^

Estamos visitando alguns cafés e este é de um bairro vizinho. O dono é russo e veio para o Brasil faz uns 8 meses. Ele não fala muito português, mas dá para se comunicar (pode-se apelar para o inglês). O café é muito bem tirado, nota especial para o latte. Os doces são uma ótima surpresa. Você não espera doces caseiros, típicos e bem feitos em um café de bairro. O lugar é bem apertado, mas quando fomos não estava cheio. E isso ao lado da feira de domingo. Espero que tenha muito sucesso, pois iremos voltar e experimentar o resto do cardápio.


# Tent Café

2023-08-30 tag_food ^

Este é um dos cafés que andamos visitando na região. Bem simples, nem tem café espresso. Pelo menos eu acho que não era, pois a qualidade é muito fraca. No cardápio diz que tem empanadas, mas não passa de uma massa de empada meio estranha. Não caia nessa. O preço é salgado pelo que oferece. O lugar até que é charmosinho e tranquilo. Uma pena que o cardápio não compense.


# Cozinha da Si

2023-08-30 tag_food ^

Esta baiana veio fazer comida boa e acessível no nosso bairro e já fomos visitar duas vezes. Primeiro pelo acarajé, o primeiro que comemos em que podemos dizer que realmente é um ótimo prato; todos os outros que provamos em outros lugares eram secos e massudos. Este é leve, picante e saborosíssimo. O segundo prato que provamos não lembro qual foi, mas estava muitíssimo saboroso também. Os sucos também são uma maravilha, feitos na hora. Os doces caseirinhos precisam melhorar. Fora isso, além da simpatia da dona, a Si, recomendo muito. Se atente para os horários e o cardápio muda dependendo do dia. O lugar é um pouco barulhento e há transeuntes indesejados na rua a depender do horário; se preferir fique do lado de dentro.


# Restaurante Casa Velha

2023-08-30 tag_food ^

Já fomos não sei quantas vezes neste restaurante que fica no meio do nada em Camanducaia. O especial deles é o frango caipira, que recomenda-se que você peça na véspera para dar tempo de preparar como se deve. O suco de amora é maravilhoso e os doces de laranja e figo servidos ao final divinos. Esta é a comida típica da roça, em um lugar bem tranquilo. Há estradas de terra que partem de Monte Verde e Camanducaia, além de bairros vizinhos. Não é difícil de chegar, mas demorado. As estradas estão em boas condições, pois ao lado ficam terrenos da produtora de papel Melhoramentos. Há movimento de caminhões todos os dias, portanto tome cuidado. Vale muito a pena a visita.


# Indústria de Queijos e Doces Santa Edwirges

2023-08-30 tag_food ^

Fomos por recomendação nesta loja comprar queijo, mas acho que não há muitos queijos bons nessa região. Achei bem insosso e um preço bem salgado. Fica ao lado da rodovia. Se você estiver indo sentido BH pode fazer um retorno antes do pedágio. Há lugar para parar e comer, um café do lado. Há uma imensa quantidade de artesanado, doces e salgados disponíveis.


# O Segredo da Felicidade

2023-08-30 tag_food ^

Este é um café bem jeitosinho no centro de São Caetano, estilo bistrô. Ele é caro pelo que oferece. Achei o espresso e a bebida fria de café um tanto aguados ou insossos. Não vá pelo café, mas pelo ambiente. O atendimento é bom e a localização privilegiada, entre o centro e do lado da avenida Goiás.


# Petiac's Sorvetes e Café

2023-08-30 tag_food ^

Este sorvete nos supreendeu pelo sabor. Não é comum achar lugares assim que servem um bom sorvete, mas foi o caso. É um buffet. O atendimento é bem comunzinho desses em que o dono não está, mas o sorvete valeu muito a pena.


# Hamburgueria do Sujinho

2023-08-30 tag_food ^

Não é de hoje que vamos ao Sujinho, mas cada vez menos. O atendimento é rápido e quase sempre encontra-se uma mesa, mas para paladares mais sofisticados o hambúrguer deles não é lá essas coisas. Ele é gorduroso e vem com uma maionese igualmente gordurosa. Porém, não há um sabor que valha a pena a visita.


# Sorvetes Soroko

2023-08-30 tag_food ^

Vamos nessa sorveteria há décadas. Escrevi um outro review ano passado. Seus sorvetes são sensacionais. É uma sorveteria de bairro próximo da Augusta centro. O simpático dono é o mesmo de não sei quanto tempo. É um buffet rico, com diversas opções de sabores com e sem leite (ou com leite de soja, veganas). Por isso é tão difícil pegar pouco sorvete. Sempre haverá um sabor que te agrade. Fuja das franquias onde os sorvetes parecem sempre os mesmos. Esta é a sorveteria genuína, das antigas, que sua memória afetiva procura.


# Sêneca e a Mente Ordenada

2023-08-30 tag_quotes ^

"Nada, a meu ver, é melhor prova de uma mente bem ordenada do que a capacidade de um homem parar exatamente onde está e passar algum tempo em sua própria companhia." - Sêneca


# Meu amigo pediu para compartilhar estes links (é para uma boa causa)

2023-08-30 tag_movies tag_series tag_animes tag_games tag_lists ^

  • igg-games.com
  • eztv.re
  • 1337x.tw
  • sci-hub.se
  • libgen.rs
  • torrentfreak.com
  • nyaa.si
  • Soulseek
  • Popcorntime

<< >>