Planeta ANSOL

Os conteúdos abaixo são artigos de blogues de sócios da ANSOL agregados automaticamente, e são da inteira responsabilidade dos seus respetivos autores. Assim sendo...

  • não representam nenhuma opinião ou posição formal da ANSOL mesmo que possam coincidir ou a sua autoria ser de membros dos órgãos sociais;
  • não podem ser censurados ou modificados quaisquer conteúdos devendo tais solicitações ser orientadas aos respetivos blogues agregados, bem como tais solicitações poderão eventualmente ser expostas publicamente em repúdio.

O vestido.

Publicado por Ludwig Krippal em 10 de Julho de 2021 às 13:37

Depois de apreciar o tronco nu do Renato Saches e criticar o vestido da Lenka da Silva, Fernanda Câncio justificou-se como quem quer sair de um buraco escavando o fundo. Explicou que o problema não é o vestido da Lenka mas «O princípio constitucional [...] da igualdade de género [e] "a prossecução de políticas ativas de igualdade entre mulheres e homens" como "dever inequívoco de qualquer governo e uma obrigação de todos aqueles e aquelas que asseguram o serviço público em geral"». É por isto que Câncio quer que o Estado combata os tais «estereótipos de género» regulando o que as mulheres vestem na TV. Mas só as mulheres. Os homens até podem aparecer em tronco nu, que Câncio aprecia, porque «os estereótipos de género não objetificam nem sexualizam os homens» (1). Estranha igualdade.

A igualdade de género que faz sentido é a igualdade perante a lei. Mas para isso bastava fazer como a igualdade de direitos em função da beleza ou da inteligência: omitir da lei qualquer referência a esses atributos. É claro que isto não impede as pessoas de discriminar feios e belos ou burros e inteligentes. Mas isso compete a cada um decidir, bem como se valoriza estas coisas mais numas pessoas que noutras. Câncio parece querer o contrário. Quer regulação intrusiva e discriminatória para combater a «visão diferenciada do que é suposto valorizar-se nas mulheres e nos homens». Que não lhe compete nem a ela nem ao Estado decidir pelos outros. Eu dou mais importância à beleza nas mulheres do que nos homens, reivindico o direito de o fazer e não reconheço ao Estado legitimidade para me regular estes valores. O papel do Estado é garantir direitos. Não é manipular preferências. Se Câncio quer igualdade nisto, então que dê ela mais importância à beleza nos homens. Eles não se vão queixar e evita usar o Estado para forçar as pessoas a terem todas os mesmos gostos que ela.

Além do abuso do poder do Estado, é fútil regular os vestidos na RTP para alterar estereótipos de género. Mesmo que Lenka vá para o Preço Certo de fato de treino e gola alta, continua a ter página no Instagram, as mulheres continuam a vestir-se como querem na rua e há partes da Internet cheias de estereótipos de género em várias posições, combinações e número de participantes. E nem adiantava censurar tudo isso, como evidencia a persistência de estereótipos de género em países onde as mulheres são obrigadas a disfarçarem-se de saco preto. A razão da futilidade está na origem destes estereótipos, que não são causados pelo vestido da Lenka mas sim por milhões de anos de evolução que criaram na nossa espécie dois sexos especializados em aspectos diferentes da reprodução, com estratégias diferentes, preferências diferentes na selecção de parceiros e comportamentos diferentes.

É por isso que não se consegue igualdade de género declarando que não há géneros. Seria o mais prático. Acabava de uma vez a desigualdade, a discriminação e essas coisas todas. Mas não funciona porque os géneros são consequência dos sexos. É algo tão profundo no ser humano, e tão resistente a propaganda e programas de televisão, que há pessoas que recorrem a tratamentos drásticos ou se suicidam por o seu corpo não corresponder ao que concebem ser o seu género. Na verdade, combater estereótipos de género é combater a identidade de género. Cada pessoa tem de conceber e generalizar características que distinguem os géneros para se categorizar e para se relacionar com os outros. Mas essa generalização conceptual exige estereótipos. O que é ser homem ou ser mulher, por exemplo. Câncio quer usar o Estado para alterar a forma como certas pessoas concebem os géneros, violando o dever de respeitar a autonomia de cada um nestas matérias.

Esta ideologia woke é inconsistente, demagógica e até hipócrita. Diz ser pela igualdade e justiça mas a igualdade que defende é injusta. Em vez de ser igualdade nas liberdades quer forçar igualdade de preferências e escolhas, que ninguém deve ser obrigado a ter igual aos outros. Combate estereótipos sem reconhecer que os estereótipos fazem parte de como cada um pensa acerca de si e dos outros. Daquela identidade que dizem defender e que não deve ser alvo de regulação governamental. Combate a sexualização das mulheres de forma claramente discriminatória (o tronco nu do homem não tem problema) e sem perceber que as competições desportivas sexualizam os homens como os vestidos curtos sexualizam as mulheres.

A "objectificação" é mais uma treta. Objectificar uma pessoa é tratá-la como um objecto, em oposição a tratá-la como um ser humano. Mas se bem que quando apreciamos a apresentadora de mini saia ou o futebolista de tronco nu não os estamos a valorizar em toda a sua dimensão humana, a atracção sexual é caracteristicamente humana. Muito mais objectificado é quem recolhe o lixo, desentope sarjetas ou desempenha tantas outras profissões nas quais as pessoas, principalmente homens, fazem papel de coisa e até seriam substituídas por máquinas se ficasse mais barato. E raramente conhecemos alguém com tal intimidade que o possamos apreciar plenamente como ser humano. É o vizinho, o colega, a professora, todos objectificados em maior ou menor grau em função da relação que tenhamos com cada um. O termo "objectificação" como Câncio o usa apenas disfarça o puritanismo desigual com que encara a sexualidade, segundo o qual ser sexualmente atraente é bom para homens mas desumanizador para as mulheres.

Esta esquerda evangélica abandonou a luta por liberdades e direitos e está fixada em usar o Estado para doutrinar. O combate aos estereótipos, a exigência de igualdade em valores e opções e a demagogia envolvente visam politizar opiniões pessoais para justificar restringi-las àquilo que declaram ser correcto. Quem preze a democracia, mesmo que se considere de esquerda, deve opor esta tentativa de eliminar a fronteira entre o Estado e a opinião de cada um.

1- DN, O preço (errado) de uma polémica

Os ciclos.

Publicado por Ludwig Krippal em 3 de Julho de 2021 às 13:06

Com o aumento de novos casos aumenta também a acusação de falsos positivos. Independentemente do aumento nos internamentos, cuidados intensivos ou óbitos, é tudo falsos positivos porque a um bom conspiracionista os factos não metem medo. Uma variante sofisticada desta alegação é a dos ciclos de amplificação nos testes de PCR. Reza a conspiração que "eles" aumentam o número de ciclos para dar falsos positivos porque o PCR não é fiável acima dos 35 ciclos. É uma boa conspiração porque não só tem os tais "eles" que nos andam a enganar como permite ao conspiracionista passar por entendido sem o trabalho de entender seja o que for. Noutras circunstâncias, esta coisa dos ciclos até teria graça.

O muco que vem na zaragatoa tem células da pessoa testada, bactérias diversas, vários vírus e sabe-se lá mais o quê. Uma forma de testar se a pessoa está infectada com SARS-CoV-2 é usar moléculas que se ligam especificamente a certas proteínas desse vírus. É o que se usa no teste rápido, que assim fica com uma marca visível apenas se a amostra contém essas proteínas do vírus. O problema dos testes rápidos é que a marca só é visível se houver proteína suficiente e, por isso, só são fiáveis num período curto após o início dos sintomas, quando a carga viral é mais alta. Para detectar infecções antes dos sintomas é preciso usar PCR, que aproveita as propriedades do ADN* para conseguir detectar o vírus mesmo em quantidades pequenas.

As moléculas de ADN são longas cadeias formadas pela ligação sequencial de quatro tipos de nucleótidos, as tais letras A, C, G, e T **. Na cadeia de ADN, estes nucleótidos ficam com umas caudas espetadas e há uma forte afinidade entre a cauda de A e a de T, e entre e a cauda de C e a de G. Uma consequência disto é a forte tendência das moléculas de ADN se colarem a moléculas complementares. Se uma tem ACTGAC... vai ficar presa a outra que tenha TGACTG... como um fecho de correr. A outra consequência desta afinidade específica é permitir que enzimas sintetizem uma cadeia de ADN a partir de uma cadeia mãe e um trecho inicial ligando pela ordem certa os nucleótidos complementares. Estas enzimas são as polimerases, o P em PCR.

A ligação entre duas moléculas complementares de ADN é forte mas não tão forte como as ligações covalentes dentro de cada molécula. Por isso, se as aquecermos conseguimos que a agitação as separe sem degradar as moléculas. E quando arrefecem ficam novamente coladas aos pares complementares, porque a afinidade das sequências de nucleótidos é muito específica. Ou seja, podemos separar e juntar os pares sempre que quisermos, bastando aquecer e arrefecer a solução com o ADN. E com isto temos praticamente tudo para o PCR. Faltam só os primers.

O propósito do processo PCR é amplificar trechos específicos de ADN se estes existirem. Dessa forma, mesmo que haja pouco vírus na amostra, com PCR conseguimos aumentar a concentração do ADN correspondente até ser detectável. Para isso vamos juntar à amostra uma quantidade grande de pedaços de ADN, sintetizados artificialmente, cuja sequência encaixa especificamente em partes do ADN viral. Quando aquecemos e arrefecemos a amostra, as moléculas de ADN vão emparelhar e, se houver lá ADN do vírus, vai ficar com esses primers agarrados. Pomos a polimerase a trabalhar e todos os primers que encontraram parceiro vão ser aumentados pela polimerase, sintetizando a partir deles cópias do ADN do vírus. Agora aquecemos e arrefecemos de novo e vamos repetindo o processo. A cada ciclo a quantidade de ADN do vírus duplica, aproximadamente, porque estamos a criar cópias, e cópias de cópias, e assim por diante.

Tipicamente, se a pessoa está infectada com este vírus, ao fim de uns vinte ciclos já há tanto ADN que se nota o sinal de fluorescência no aparelho. Nesse caso o teste deu positivo. Se não houver vírus na amostra, então não acontece nada e ao fim de quarenta ciclos acaba o teste, que nesse caso deu negativo. O tal problema dos 35 ciclos ocorre se o sinal de fluorescência surgir acima deste número de ciclos. Isso é um problema porque sugere que há vírus na amostra mas para o sinal só surgir depois dos 35 ciclos é porque alguma coisa correu mal ou a quantidade inicial de vírus era tão pequena que pode ter sido contaminação. A zaragatoa pode ter tocado onde não devia, alguém espirrou lá perto ou coisa do género. Por isso, nesses casos, manda a DGS que o teste seja repetido do início, incluindo meter outra vez a zaragatoa no nariz do desgraçado que, sem culpa nenhuma, teve um teste inconclusivo.

Em conclusão, se bem que seja verdade que acima de 35 ciclos o resultado positivo não é de fiar, é ridícula a ideia de que "eles" andam a aumentar os ciclos para dar falsos positivos. O número de ciclos depende da amostra. Se não tem nada o teste pára aos 40 ciclos e é negativo. Se houver sinal é no ciclo que calhar. Normalmente é abaixo de 35 e é positivo, mas se calhar acima repete-se. Não há um botão no aparelho para aumentar a taxa de falsos positivos.

* Em rigor, este vírus tem ARN em vez de ADN. Mas o que se faz é usar enzimas que copiam o ARN do vírus para o ADN correspondente, pelo que isto acaba por ser um detalhe irrelevante.
** Adenina, Citosina, Guanina e Timina, mas esta parte não vem para o teste.

Status update, June 2021

Publicado por Hugo Peixoto em 30 de Junho de 2021 às 01:00

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto

F-Zero Central

After bringing the website back up, I worked on making it possible for existing players to reset their passwords, logging in, and submitting new times.

Time submission took a bit longer than I expected because we have a bunch of tables that cache several scores and rankings that needed to be recalculated. This used to be done as a cron job because it took too long to do inline, but I was able to make it fast enough. It took me a while to understand what each table represented and to figure out the formulas from the code and FAQ, but it seems to be working.

Part of the good news is, the code is now licensed under AGPL, and it’s available here:

https://github.com/fzerocentral/fzerocentral

Cyberscore

The most visible thing I did this month was to rewrite the login, registration and password recovery pages to be mobile friendly. Apart from that, I worked on improving the way we do html escaping. Some old translation strings were being stored in escaped form, and some functions like GetGameName was also returning an already escaped string. I normalized the database and moved all escaping to the html templates. These were all detected thanks to an effort to translate the website to japanese, given all the influx of New Pokémon Snap submissions from japanese players.

During fzero’s rewrite, I added a migration system. I want to port it to cyberscore, we’ve been doing some changes to the database and it’s kind of troublesome to keep everyone in sync without one.

Personal infrastructure

I have a bunch of HDDs in my desktop that are not encrypted. I started moving files around to get those disks empty so I can format them, but it’s taking forever. When emptying one disk, I decided to create at least two copies on different disks to improve my redundancy. This means I need to have a lot of free space available to move everything around, so this doubles the time it takes to empty a disk.

Every time I make a new copy, I double check that everything was copied successfully with a sha1sum:

1 2 3 4 5 find . -type f -print0 | LC_ALL=C sort -z | xargs -0 sha1sum | tee ../shasums.txt | sha1sum

I never detected any issues when copying files between two disks on the same machine, but one of my larger disks is in another computer in the network, so some of the files are being transfered via rsync. I transferred 2.4 TB in one go, and the checksums didn’t match. There were differences in three files, of sizes 8 GB, 93 GB, and 256 GB.

I was curious to know how many bits were corrupted, but I didn’t want to make a trivial diff over the network, since it would require copying all those gigabytes, so I ended up writing a rust cli tool that would find the differences between the two using a merkle tree to detect where the errors were. You can find the source code of netdiff here:

https://github.com/hugopeixoto/netdiff/

Using this tool, I found that the files had, respectively, 1 bit flip, 2 bit flips, 4 bit flips. I could just flip those bits to fix the issue, but I’ll rsync those files again instead.

Other stuff

I accidentally discovered Mindustry while browsing F-Droid for games. It looks great, it’s GPLv3, and I already played it for more hours than I should. I kind of want to play with setting up a multiplayer server and playing it on the desktop instead, but it’s probably better if it stays contained in my phone.

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto

Contradições.

Publicado por Ludwig Krippal em 6 de Junho de 2021 às 13:37

Tenho acompanhado com ambivalência os analistas da Bitcoin. Se por um lado me parece que esta tecnologia pode ser útil, por outro lado o que tenho visto de análises e da conferência sobre Bitcoin em Miami parece-me tele-evangelismo de geração TEDx (1). A defesa irracional da Bitcoin, especialmente atacando as alternativas, cai em tantas contradições que me faz suspeitar das suas intenções. Hugo Ramos é um exemplo português desta religião. Trocámos há tempos algumas impressões cordiais sobre a COVID e desde então tenho seguido a sua análise técnica da price action da Bitcoin (2), em particular o seu price to time model. Este "modelo científico" que Ramos criou traçando uma linha exponencial a partir de dois pontos prevê que na primeira semana de Outubro cada Bitcoin vai valer 282 mil dólares (3). Mas esta abordagem pretensamente objectiva contrasta com o fervor ideológico dos olhos de laser, as mãos de diamante, o desprezo por qualquer outra implementação da blockchain e a recomendação constante de se comprar Bitcoin, se subir porque está a subir e se baixar porque está barata (4).

Outra contradição recorrente dos bitcoiners é queixarem-se de que os tweets do Elon Musk afectam o preço da Bitcoin ao mesmo tempo que apregoam a Bitcoin como robusta e invulnerável até ao poder dos Estados. Isto também destoa do silêncio acerca de outras formas óbvias de manipulação. A mediação financeira é fortemente regulada porque o mediador que vê por quanto cada participante quer comprar ou vender pode aproveitar-se disso para ganhar dinheiro à custa de todos. Também pode manipular o mercado com transacções fictícias ou permitindo que uma entidade venda a si própria para aumentar o interesse aparente por um activo. Estas maroscas são ilegais num mercado regulado mas são certamente corriqueiras na selva dos activos criptográficos (5). Perante isto, a preocupação com tweets é ridícula.

Mais estranha ainda é a cumplicidade silenciosa com o Tether. Falei sobre isto com Hugo Ramos mas ele ameaçou bloquear-me no Facebook. Temendo o terrível castigo, optei por escrever aqui, onde estou mais seguro. Ramos declarou ser «contra a existência do USDT desde 2017!» mas acha que isto não tem nada que ver com as Bitcoin. Para o analista técnico, 60% do volume diário ser em moeda falsa não é um risco (6). Nem acha preocupante que a Bitcoin, auto-regulada, distribuída e transparente, tenha o seu mercado capturado por uma "moeda" emitida de forma opaca, centralizada e sem garantias fiáveis. É quase como se as pessoas que participam neste mercado estivessem mais interessadas no lucro fácil do que nos ideais que apregoam.

A defesa evangélica da Bitcoin também está a deturpar o propósito destes activos. No artigo que inspirou isto tudo a blockchain serve para garantir segurança num sistema de transacções descentralizado, transparente e onde todos podem participar. A Bitcoin, sendo a primeira implementação, está para uma verdadeira moeda criptográfica como o Gopher esteve para as redes sociais. Só permite vinte mil transacções por hora, demora dez minutos a registar cada bloco e o registo é caro. Neste momento uma transacção custa 6 dólares mas em Abril, no pico do preço e movimento, chegou aos 60 (7). É óbvio que não vai destronar a Visa ou MasterCard (8). Mas o progresso tem continuado e há outros activos com transacções mais rápidas e baratas, com algoritmos mais sofisticados e outras funcionalidades. A resposta dos evangélicos da Bitcoin é chamar a tudo isto shitcoins e fingir que o propósito da Bitcoin afinal é outro, o de "guardar valor" em vez de facilitar transacções.

Os irmão Winklevoss defendem que a Bitcoin vai substituir o ouro (9) porque enquanto as reservas de ouro vão aumentando a Bitcoin está limitada a 21 milhões de tokens. Mas isto é falso porque cada ramo da Bitcoin (incluindo Bitcoin Cash, Bitcoin SV e Bitcoin Gold) tem os seus tokens e estão constantemente a surgir novos activos criptográficos. É muito mais fácil criar "criptomoedas" do que ouro. Basta convencer as pessoas, e é provavelmente por isso que os evangélicos da Bitcoin chamam shitcoins às outras. Chamar heresia ou blasfémia seria antiquado e demasiado revelador mas estão obviamente receosos da diluição das suas bitcoins num mercado crescente de activos do mesmo tipo. A tese de Michael Saylor é ainda mais absurda: a Bitcoin é o único activo que realmente garante direitos de propriedade porque terrenos, casas, ouro ou dinheiro podem-nos ser retirados por outros ou taxados pelo Estado (10). Mas Bitcoin também. Por muita segurança criptográfica que o algoritmo tenha, qualquer malfeitor com acesso ao dono das Bitcoin consegue contornar essa protecção. Basta uma corda, um barrote e um alicate. Como reserva de valor a Bitcoin é muito menos segura do que praticamente tudo o resto porque a única coisa que temos é uma chave de autenticação numa rede organizada por desconhecidos. Além disso, o carácter automático e anónimo das transacções torna os donos mais vulneráveis a ameaças, chantagens, roubos ou burlas. Somando insulto ao ridículo, Saylor até alega que Bitcoin é ideal para milhares de milhões de pessoas em países pobres, como se o problema dessas pessoas fosse fugir dos impostos e da inflação em vez de garantir um sítio onde dormir e encontrar comida para dar aos filhos.

Activos criptográficos podem ser bons como moeda de troca mas não como reserva de valor. O problema é que a motivação principal para os comprar tem sido a especulação, naquilo que um dos criadores da Dogecoin chama de princípio do tolo maior (10): por muito caro que eu compre agora, há de haver quem me pagará mais ainda. As atitudes irracionais a que recorrem para manter este esquema em pirâmide impedem a boa utilização desta tecnologia de dinheiro inteligente. Mas tenho esperança que o ciclo corrente de manipulação, insuflação e colapso dos preços seja diferente dos anteriores. Este mercado deixou de estar isolado e a aldrabice já não deverá escapar despercebida dos reguladores.

1- Bitcoin 2021
2- Youtube, Hugo Ramos.
3- O vídeo completo está aqui, mas esta parte é especialmente engraçada: 11m09s. É preciso ver alguns minutos para apreciar o método científico em acção, que boa ciência não se faz à pressa.
4- Aparentemente, vendendo até propriedades para comprar Bitcoin, o que me parece insensato: My house arrived at the exchange! #Bitcoin
5- Um short é uma aposta que o preço de um activo vai descer. Por exemplo, alugo Bitcoin por uns dias, vendo-as imediatamente e compro novamente antes de ter de devolver. Se entretanto o preço desceu tive lucro. Neste post no Reddit pode-se ver o gráfico dos shorts no dia antes ao colapso do preço da Bitcoin no dia 19, evidência clara de que alguém sabia antecipadamente o que ia acontecer: BTC short positions on Bitfinex in days leading up to May 19th.
6- No Facebook, num post que julgo ser público:
31 May at 18:42
7- Ycharts, Bitcoin average transaction fee
8- Há formas de fazer transacções rápidas usando uma blockchain. A rede Lightning, por exemplo, usa um fundo registado na blockchain para fazer uma série de transacções e depois registar o resultado consensual dessas transacções. Mas isso nem é específico da Bitcoin nem resolve inteiramente o problema porque as transacções só ficam realmente seguras quando registadas na blockchain que dá segurança ao sistema.
9- News.com.au, Bitcoin price will increase tenfold, argue the famous Winklevoss twins
10- Bitcoin Magazine, Bitcoin 2021 Fireside: Michael Saylor And Max Keiser
11-Benzinga, Dogecoin Co-Creator Says 99.9% Of Crypto Market Is Driven By 'Greater Fool Theory'

A palhaçada, parte 1.

Publicado por Ludwig Krippal em 3 de Junho de 2021 às 11:10

Há tempos conversei com uma pessoa que defende que «A ética é uma palhaçada» porque, enquanto «os objetos de estudo [da ciência] continuariam a existir quer existissem humanos ou não», os valores morais não existem «sem sujeitos. Portanto, são subjetivos». Enquanto «a ciência é procurar saber como é a realidade. A ética é sobre como a realidade deveria ser [... e] isso pode decidir-se de muitas maneiras diferentes, e não há forma de demonstrar que umas estão certas e outras erradas.» (1) À primeira vista, parece ter razão. Afirmar que é maldade torturar crianças é associar à tortura de crianças um conceito de “maldade” que não existe no objecto em si e que tem de ser imaginado por um sujeito. Em contraste, afirmar que a Terra é aproximadamente esférica parece ser uma constatação objectiva de um facto. O interessante em qualificar a ética como “palhaçada” por estas alegadas diferenças é errar não só na compreensão da ética como também da ciência.

Tal como dizer que torturar crianças é maldade, dizer que a Terra é aproximadamente esférica também atribui à Terra uma classificação inventada por nós. “Aproximadamente esférico” não está algures na realidade. É um conceito inventado por nós. Até o conceito de “Terra” é inventado. Os átomos nos minerais do solo fazem parte da Terra. Mas se pegarmos em alguns desses átomos, construirmos um robô e o enviarmos para Marte, ou esses átomos deixam de fazer parte da Terra ou esta deixa de ser aproximadamente esférica. Por um juízo de valor, escolhemos a primeira opção. Os robôs em Marte não contam para a forma da Terra. É o que dá mais jeito. Se bem que “maldade” denote um juízo de valor que “aproximadamente esférica” não denota, a escolha dos conceitos em si também resulta de juízos de valor que guiam a ciência.

A ideia de que a ciência só procura «saber como é a realidade» também está errada. Se assim fosse bastaria listar factos. Medir, contar, registar e acumular dados. Mas não queremos a ciência só para dizer como a realidade é. Não basta dizer que a ponte caiu. Queremos saber porque é que caiu, o que poderíamos ter feito para evitar que caísse e como podemos construir a próxima ponte de forma a não cair. Ou seja, queremos também saber como a realidade podia ter sido e como poderá vir a ser. A explicação causal, peça fundamental da ciência, tem de ir além do que a realidade é. Dizer que houve erosão do leito do rio e a ponte caiu apenas descreve a realidade como ela é. Mas afirmar que a erosão do leito causou a queda da ponte implica que sem essa erosão a ponte não teria caído. Explicar é também saber como a realidade podia ter sido e em que condições seria diferente do que é. Em ciência saber isto é mais importante que a mera recolha de factos porque é isto que dá jeito saber. Este juízo de valor é que fundamenta a ciência.

É por isso ingénuo pensar que a ciência apenas procura a verdade como o critério objectivo de correspondência à realidade. Não só pelos contrafactuais, as tais coisas que poderiam ter sido mas não foram, mas também porque nem toda a verdade interessa. Quantas estrelas há na nossa galáxia? A resposta mais útil que a ciência hoje dá é que provavelmente será entre cem mil milhões e quatrocentos mil milhões. Apesar desta resposta poder estar errada, é melhor que infinitas respostas que sabemos ser verdadeiras mas que não interessam. O número de estrelas da nossa galáxia é metade e outro tanto, é o triplo da terça parte, não é a raiz quadrada de 27, não é -23 nem -35 nem qualquer um de infinitos números inteiros negativos. Claramente, ser verdade não é condição suficiente para ser relevante para a ciência. Nem sequer é condição necessária. Sabemos que as gotas de chuva não são esferas perfeitas mas se queremos calcular a sua velocidade terminal fingir que são esferas é muito conveniente. Sem isso é um berbicacho fazer as contas. Sempre que é útil fingir falsidades a ciência não hesita em fazê-lo nem em reconhecer que o faz. É daí que vem uma das invenções mais extraordinárias da história da humanidade, infelizmente menosprezada por muita gente: as margens de erro.

Quem teve paciência para chegar a esta parte do texto pode suspeitar que me converti ao pós-modernismo. Se a ciência não põe a verdade acima de tudo, se até prescinde dela quando dá jeito e se a sua utilidade nem é compreender a realidade como ela é mas fantasiar acerca do que poderia ter sido, pode parecer que a ciência não se distingue de tanta parvoíce que se inventa para enganar as pessoas. Não é verdade. Há uma grande diferença entre a ciência e os disparates das religiões, superstições e crendices várias que fingem dar conhecimento. O que motiva todas estas criações humanas é a nossa compreensão intuitiva de que temos poder para agir sobre o que nos rodeia mas o que nos rodeia também dá de volta. E isso motiva-nos a tentar saber o que podemos fazer, o que acontece se o fizermos e como podemos obter o resultado que queremos. Ler as folhas do chá, pedir favores aos deuses, espetar agulhas em bonecos ou escrever equações sobre campos electromagnéticos são tudo tentativas de resolver este problema. Que é um problema fundamentalmente subjectivo, de valores humanos. O que separa a ciência do resto é sua a honestidade. Se tentarmos resolver este problema sem nos iludirmos com soluções falsas acabamos eventualmente a fazer ciência. Todas as alternativas exigem fingir que encontrámos soluções sem ter resolvido nada.

Em suma, a ciência não é a procura pela verdade ou por «saber como é a realidade». É a melhor ferramenta para atacar o problema humano, e subjectivo, de obtermos o que queremos em vez de deixarmos o universo tramar-nos. É por isso que a ciência escolhe algumas verdades, ou prefere aproximações, ou se debruça sobre cenários fictícios. O que torna a ciência especial é que tenta mesmo resolver este problema em vez de fingir para impingir tretas. E isto torna a ciência muito parecida com a ética. Apenas diferem no problema. Mas isso fica para outro post.

1- Isto foi no Facebook numa conta que é privada, por isso não identifico a pessoa.

Status update, May 2021

Publicado por Hugo Peixoto em 1 de Junho de 2021 às 01:00

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto

Having finished moving, I was able to focus on my tech things again. I worked a lot on cyberscore, and I think I accidentally became part of the development team of F-Zero Central.

F-Zero Central

After last month’s hack, I started rewriting the website, decoupling the scoreboards from the phpbb codebase. I wrote a blog post on the differences between Cyberscore and F-Zero Central if you’re looking for more information on that.

For now, everything is read only and there’s no forum, but at least there’s something online: F-Zero Central.

I’m currently working on adding login support. I’d like to enable submitting scores ASAP to get people using the website again. Since this codebase was written mostly from scratch, it can probably be open sourced without any fears of leaking hardcoded passwords or exposing a bunch of vulnerabilities.

Cyberscore

After getting something online in FZC, I felt more comfortable working on Cyberscore again. I rewrote some more pages and deleted a bunch of code:

1 2 $ git diff master@{"1 month ago"} --shortstat 134 files changed, 5403 insertions(+), 13021 deletions(-)

Most of the deletions come from the rewritten comment system. It had 6 nested loops with a bunch of duplicated markdown in each of them just so we could render six levels of replies. Then, the whole thing was copy pasted around everywhere we had comments (user profiles, news articles, blog posts, game requests).

I also deleted some developer tools like a builtin SQL explorer. It was useful sometimes, but it was thanks to that that the whole database got deleted, the last time. I don’t think these tools belong in a codebase in this state.

I’ve also improved the mobile experience. The header and footer of every page are now responsive, and the homepage was also redesigned.

As for the plans to open source this codebase, I’m pretty confident that there are a bunch of vulnerabilities on the website — SQL injection, mass assignment-like problems, missing authorization checks, etc — that I was trying to fix before releasing the code, but there’s still so much to go. I’ve converted around 8k lines of code, but the /public/ directory still has 22k lines that need converting.

Personal infrastructure

Now that I’ve moved to a new apartment, I’ve started using my desktop computers again. I don’t want to deal with wifi for these devices, so I needed to get some ethernet cables. Instead of getting a bunch of different sized ones, I got a 25 meter one and started crimping some custom cables.

 First, a Cat6 cable without shielding on the tip, with the eight
colored wires spreading out. Second, the same cable with a connector head
installed

It was the first time I did this, so it took me a while to get used to it. I used iperf to make sure that the cable was working OK. Not sure what else to test tbh, if the bandwidth is close to gigabit, I guess it’s fine?

I’ve also installed a pair of shucked 12TB hard drives that I bought a year ago (before the price hike, thankfully). The only disks that I tended to encrypt were the main OS ones, not the extra ones where I keep random files. I’m currently changing this and encrypting every hard disk I have. It’s a whole process, because I have to move files around so I can scrub and reformat every disk.

Another thing I started doing was running syncthing on my phone and on my desktop, so I could sync the pictures I take there automatically. I’ve set the desktop folder to be receive only and to ignore deletions, so I can free space from my phone knowing that I have a copy of the pictures somewhere else.

I have a second computer around that I used to use for backups, but it was shutdown for a couple of years. I finally managed to turn it back on again and update everything. I had to ship the debian GPG keys from my laptop there, it was so old that the keys it had were expired. I’m looking into installing restic on it so I can automate offsite backups of Cyberscore and F-Zero Central.

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto

Are Cassette tapes dead? (again)

Publicado por Marcos Marado em 31 de Maio de 2021 às 23:22

Tired of reading people saying that one or another mature technology was dead, ten years ago I decided to act upon one of those claims (saying that cassette tapes were dead) and write a blog post, where, using the data available on Discogs, I made a graph showing the percentage of cassette releases related to all of the releases on that database.

That blog post had more success than I thought would have, with some people, once in a while, wondering how were things progressing (not only regarding the cassette tapes market on current days, but also the growth of discogs' database and its knowledge of past releases). I did update the graph a few times since the initial blog post, but today, to mark the 10th anniversary of the initial post, I decided to actually write a script that automatically generates such a graphic, and generate one of those graphs, once again.

And, guess what!, turns out cassette tapes aren't dead, or even dying.

graph showing the percentage of cassette tape releases

tags: discogs, stats, cassette, tape, compact cassette, music, data, software, music business, music market, en

comentários? tweetar  

Tale of two sites

Publicado por Hugo Peixoto em 24 de Maio de 2021 às 01:00

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto

Last month, two video game related websites, Cyberscore and F-Zero Central, were breached. I wrote about it in last month’s report. I’ve been helping out Cyberscore for a while now, and I started helping the F-Zero Central staff since the hack.

These two sites are kind of similar in functionality, but my approach when I started working on them was quite different.

Cyberscore

Cyberscore is a frameworkless PHP website, of roughly 45k lines of code. There’s also a Simple Machines forum installation, but the codebases are independent, so we can upgrade the forum without breaking the main website’s functionality. Cyberscore doesn’t use any templating engine, ORM or routing library.

When I started working on it, I started by making some small fixes to get the website to a stable place. There were some cron jobs that were bringing the website to a halt. When things started being stable, I started fixing bugs, but more weird things kept popping up. At this point, the dev team discussed rewriting the whole thing from scratch.

I started a Laravel project but didn’t get very far. The website is just too big to rewrite in one go. There’s no documentation except for some code comments here and there, so it was hard to start building the data model to cover the existing functionality. It would take months to get to a place where we’d be able to deploy it, so I ditched the idea and started doing incremental changes in the existing codebase instead.

The first changes were on the directory structure. I moved every php file to /public/ and pointed the http root to it instead of pointing to the root repository, so we would stop exposing other files (like /.git/) to the web. Files that felt like experiments or files that were accidentally duplicated via FTP were all moved to /attic/, for later reference or deletion. Extracted some configurations to a git ignored /config.ini so that things like the database password wouldn’t be tracked by git. Added a simple router so that the new code could be extracted to /src instead of /public.

Then, I added a few helpers for things like accessing the database with prepared statements, html helpers to generate forms, etc. Whenever I had to touch a page to fix something, I’d rewrite it to make use of these helpers and moved it to /src/pages/, extracting the HTML part to /src/templates/. I still haven’t covered half the website, but this way I can track which files have been converted to the new helpers.

The hardest part has been dealing with the database. There are a bunch of integer enums whose values aren’t documented anywhere, there’s no foreign key enforcing so we have a ton of dangling references, there are many cache tables and columns which are hard to identify, and sometimes sql and html escaping is applied in the database instead of being applied when rendering. Sometimes I have to spend hours going through the code, discord logs, and gitlab issues to understand what’s up with the database.

If I had gone the rewrite route, I’d have to do all of this work upfront, and I would probably still be working on the rewrite right now. By working incrementally, I can stop working on cyberscore any time and the community still benefits from my work until then.

Maybe when I’ve converted every page I can start working on adding proper templates and an ORM. Then I can start thinking about converting it to a Laravel project, but I’m still too far away from that to think about all the steps.

F-Zero Central

F-Zero Central is built on top of a quite old phpbb forum, with around 17k lines of code added. The custom pages are heavily dependant on the forum codebase, relying on it for html templates, sql queries, and user authentication. I joined the project to help with the forum hack. The plan was to upgrade phpbb from 2.x to 3.x, fix whatever would be broken, and be done with it.

Unfortunately, the migration wasn’t easy. There’s no upgrade button from the 2.x version. You have to setup a 3.x and import the data from the other database. This part took me a while to get right, mostly due to latin1 vs utf8 problems, and the presence of multiple users with the same username. When I got that right, I could see the posts, but the new phpbb doesn’t support HTML posts, which is what we were using, so every post was a bunch of HTML. I’d have to find a way to convert it to bbcode, and some posts are not representable in bbcode.

The templates/styles structure also changed, so that’s another thing I’d have to convert. Even if I left the forum using the default theme, our custom pages rely on the templates, so I’d have to convert at least part of the styles to get the website working. The phpbb functions used by the custom pages also changed, so I’d have to rewrite every custom page to use the new functions. Basically, I’d have to rewrite the custom pages anyway.

By now, almost two weeks had passed since we took the website down, so I decided to take a different approach. I wanted to get something working to signal the community that we were working on it. Having a “we’re down” page for months won’t do anyone any good.

I installed twig, which is what phpbb 2.x uses, and started rewriting some pages from scratch. I focused on displaying existing scoreboard information first, ignoring sign in and registrations. I copied over parts of the templates but took the time to rewrite them to use css grids, background gradients and radius borders instead of nesting tables and using images.

Most pages I converted follow the same structure: read and sanitize query params, make some SQL queries, transform and pass the data over to a template and render it. Some of them also read data from XML files. These contain the information of each game, things like cups and courses. Dealing with these files was the weirdest thing I had to deal with while working on this project, even using simplexml_load_file. I copied over some database handling functions from cyberscore, and since I didn’t have to deal with authentication, I didn’t depend on any phpbb code.

The end result doesn’t look exactly how it looked before, and it’s missing a lot of information and details, but my priority was to get something live so that the website didn’t look dead. It was way easier to rewrite the pages than to deal with all the phpbb cruft. Now I can add things back slowly without the pressure of losing community interest.

I’m still not sure what I’m going to do with the forum, but at least folks can view their record times and their scoreboard positions. I’m working on allowing users to sign in and submit new records. I will probably end up converting the XML files to either JSON or YAML.

Conclusions

Rewriting a project from scratch, if you have to achieve feature parity to get it live, doesn’t work for me. This is particularly true if you’re working on a voluntary project like these two, where it’s usually hard to find motivation to work and contributions are scarse.

I have a preference for improving existing codebases instead of writing things from scratch. I find it more interesting to move things around and trying to understand how things work and what their intention was, rather than being faced with a blank canvas, and having to make a bunch of boring decisions upfront, like which framework to use, what CSS model, etc. But sometimes the rewrite is the right option.

I just take whichever approach gets me visible results faster, even if I have to deal with non ideal codebases.

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto

O manifesto das cebolas na era da transição digital

Publicado por Marcos Marado em 11 de Maio de 2021 às 16:01

Ocorre-me com regularidade que eu escrevo demasidos comentários em redes sociais efémeras por natureza, ideais que rapidamente se perdem em eternos scrolls. Este é um texto que escrevi numa thread no twitter e que agora republico aqui, para mais fácil guardar para a posteridade.

Em 2012, a ANSOL - Associação Nacional para o Software Livre, lançou o seu manifesto do campo das cebolas. Aí criticava o esbanjar de dinheiros públicos na aquisição - frequentemente ilegal - de software.

A ESOP - Associação de Empresas de Software Open Source Portuguesas, fez de um desses contratos exemplo: levou a Câmara Municipal de Almada a tribunal e ganhou. Mas de que serve uma vitória, num caso, se a prática se mantém?

Em 2013, observaram um aumento de 143% no valor destes contratos ilegais. Tinha já, entretanto, entrado em funcionamento o mecanismo de pareceres prévios da AMA. Ainda assim...

Em 2017, numa investigação do Público, chega-se à conclusão que, neste aspecto, nada mudou para melhor. Diz-se, então, que esta prática "deveria merecer uma acção da Comissão Europeia." Hoje fala-se de transição digital, mas sobre isto nada foi feito.

Hoje lembrei-me disto, porque alguém reclamava deste contrato, em que o SNS gasta perto de 300 mil euro em licenças de Office 365. Dir-me-ão que o SNS, agora, não tem alternativa noutro fornecedor. Já estava previsto no manifesto da ANSOL:

"provavelmente dirão que não têm conhecimento de alternativas ou que têm conhecimento mas não têm capacidade para as implementar e gerir. Ou pior, dirão que devido às decisões que eles mesmo tomaram no passado - que os deixaram enredados num esparguete de dependências"

Mas, convém sublinhar, também diz o manifesto das cebolas, "quem paga somos nós", e há alternativa.

Estes milhões são nossos. Até quando estaremos dispostos a esbanjá-los assim?

tags: PT, ANSOL, ESOP, SNS, Microsoft, Licenças, Office-365, Office, manifesto, contratos, públicos, ilegais, contratos-públicos, contratos-ilegais, transição, digital, transição-digital

comentários? tweetar  

Voto electrónico em Portugal - mais do que um problema técnico, um problema legal

Publicado por Marcos Marado em 11 de Maio de 2021 às 13:45

O debate do voto electrónico tem décadas, mas, ainda que a investigação na área tenha apresentado evoluções, a discussão sobre a temática nem por isso. Pilotos atrás de pilotos, e tentativas de implementar o voto electrónico em Portugal vieram e falharam, mas pode-se sempre apontar o dedo a uma coisa: uma fraca implementação. Esse problema tem duas facetas: se, por um lado, aqueles que se opõe na generalidade ao voto electrónico têm uma forma fácil de apontar o dedo à má impementação e dizer "vêm?, não presta!", esse argumento acaba por não convencer aqueles que são a favor do voto electrónico, com o argumento de que "lá porque este foi mal feito, não quer dizer que não se possa fazer bem".

Também foi assim nas últimas Europeias, que em Portugal incluiram um piloto de voto de electrónico, que correu francamente mal - porque (adivinhe-se) tinha uma implementação má. Mas se a experiência serviu para alguma coisa, no que diz respeito à comunicação social e ao debate político, foi para por o tema outra vez na agenda política, e nunca se falou em portugal sobre o voto electrónico como hoje. Em vez que servir como prova de que o voto electrónico é uma má ideia, o exemplo serviu para aguçar apetites.

Mas, para o debate - se alguém o quiser efectivamente ter, e de forma séria - sobre a implementação de um sistema de voto electrónico em Portugal, o melhor contributo deste exemplo piloto que tivemos foi o post-mortem feito pela CNPD. O documento, que fez headlines nos jornais, e que demonstra que a implementação da solução usada era má, foi, mais uma vez, usado por vários como ponto de partida para dizer "a solução é má, mas podem haver boas." Contudo, parece-me, quem diz isso não olhou para o documento como um todo.

O parecer da CNPD é uma leitura no total interessante, mas há um segmento em particular que me parecem muito útil. Mas, para quem pensava que ia ler um artigo a falar blockchain ou de consenso bizantino... lamento. O excerto do parecer que me parece valer a pena destacar é o que demonstra que o problema do voto electrónico em Portugal é, mais do que um problema técnico, um problema legal. Não me refiro à parte que diz "qualquer solução precisa de ser legislada exaustivamente, o que não tem acontecido" (o que é verdade, mas é resolúvel apenas com a criação de mais legislação), mas sim à parte que diz:

a questão da transparência elencada no n.º 1 do artigo 5.º do RGPD tem de ser tida à luz da possibilidade de os titulares dos dados (leia-se "eleitores") poderem compreender, de forma completa (ainda que não exaustiva), como decorrem as operações de tratamento que incidem sobre os seus dados pessoais, entre as quais se encontra a votação.

É importante, porque declara que, à luz do RGPD (em vigor não só em Portugal mas nos diversos estados membros), obriga-se a que um sistema eleitoral - que por natureza lida com eleitores e seus votos - seja compreensível pela generalidade dos eleitores, coisa que não pode acontecer num sistema da complexidade exida por um sistema fiável de voto electrónico.

A CNPD aponta para o exemplo da Alemanha, em que este conflicto entre os sistemas de voto electrónico e a compreensão pelo cidadão comum do seu funcionamento foi levado ao seu Tribunal Constitucional, levando à decisão de não implementação de voto electrónico, mas não é só na Alemanha que esta questão precede o RGPD. No texto da associação D3 - Defesa dos Direitos Digitais - sobre o voto electrónico, escrito em antecipação às europeias - quando a última experiência de voto electrónico decorreu em Portugal - lê-se:

todo o cidadão deve poder compreender ele próprio o funcionamento do sistema eleitoral do país, qualquer que seja o sistema, por forma a ter suficiente confiança de que este está em conformidade com a lei. Uma solução digital será sempre uma solução demasiado complexa, mesmo para os eleitores mais esclarecidos, o que irá inevitavelmente trazer desconfiança ao processo legislativo e aos seus resultados por parte de quem tenha resultados inferiores ao que esperava.

Mas será assim? Bem, em Portugal existem vários actos eleitorais, cada um com a sua Legislação aplicável. Temos, por exemplo, na Lei Eleitoral dos Órgãos das Autarquias Locais (que rege as Autárquicas que em breve decorrerão em território nacional), o Artigo 52.º que diz:

Cabe à Comissão Nacional de Eleições promover, através de meios de comunicação social, públicos e privados, o esclarecimento objectivo dos cidadãos sobre o significado das eleições para a vida do País, sobre o processo eleitoral e sobre o processo de votação.

Terá a CNE os meios necessários para cumprir tal artigo - no que diz respeito ao esclarecimento objectivo sobre o processo eleitoral - se o processo for por via electrónica?

Em jeito de conclusão

Tem-se discutido cada vez mais sobre o voto electrónico em Portugal. Contudo, tem-se falado do tema como se ele fosse maioritariamente um desafio técnico, quando, a meu ver, os entraves são legislativos. Não estou a defender que o "direito ao esclarecimento" deve ser posto de parte, mas acredito que é aí que o debate se deve centrar. A legislação actualmente em vigor - tanto nacional como comunitária - defende esse direito ao esclarecimento, que é incompatível com um sistema de voto electrónico(1). Acredito que haja quem ache que ter voto electrónico é mais importante - mas então é esse o argumento que deve ser feito por quem assim o acha, em particular devendendo as alterações legislativas necessárias. Esse debate pode trazer algum fruto. O técnico, parece-me, está ao mesmo nível em 2021 que estava há duas décadas atrás, e assim continuará.

comentários? tweetar  

Status update, April 2021

Publicado por Hugo Peixoto em 5 de Maio de 2021 às 01:00

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto

Most of my month was spent packing things and moving them to the new place. Unfortunately, this was also the month where two websites that I help maintain were hacked, so I had to deal with that.

ink! upgradeability gig

During the review process, it came up that the testing process should be automated. I spent a couple of days working on this (https://github.com/trustfractal/ink-upgrade-template/pull/2) and afterwards the project was accepted.

AlumniEI Mentorados

We had a pending PR to deal with dark/light/system theme toggling. The user preferences were being persisted, but there was no effect on the CSS, so I finished implementing it. I also implemented language detection based on Accept-Language (https://github.com/alumniei/mentorados/pull/21).

Cyberscore

On April 24th, a group of people joined our discord and started bragging that the website was now theirs. They had found a way to login as any user. Since no one from the staff team was online at the time, they got no attention so they started escalating the damage and eventually found a way to our builtin SQL editor and dropped every database table.

When I found this, the website was non-functional, so I shut down apache and started looking for the vulnerability. Our logging capabilities are non-existent, so I had to rely mostly on the discord chat and apache logs to find what had happened. The attackers had used the live search to find a user that they wanted to harass, so I was able to track their IP addresses and grab their history of HTTP requests.

From their request history, I was able to find a pattern in which the attackers accessed the forgot password pages, went through all the steps, and ended up in the /user/:id page, with a different id every time. This pointed to the vulnerability being in the “forgot password” functionality. Running the site locally, I tried to recover the password of a random user, and one of the steps is to either answer a secret question or enter a code that was sent to the user’s email. I tried leaving that field blank, and the website let me proceed to change the user’s password.

Going through the code to find the problem, I found this (reformatted for clarity):

1 2 3 4 5 6 7 8 9 10 if ($p_verification != "") { if ($vanswer != $p_verification) { $_SESSION['authed'] = "n"; db_close(); header("Location: resetpass_2.php?err=wrong"); exit; } } // proceed to the next step

The surrounding if statement is the cause of the vulnerability. Removing it fixes the immediate problem. It had been there for years, it’s kind of surprising that it had only been found now.

I ended up rewriting the whole thing, only allowing recovery via email code (and not via secret question), and fixed a few other vulnerabilities in the process.

Unfortunately, we don’t have automated backups, and the last backup I had made was from the beginning of March, so we lost practically two months of data (around 11k submissions).

This was a very low effort exploit, dropping tables wasn’t that damaging. They could’ve compromised the server, or deleted the image proofs, which were not backed up at the time.

My next step is to automate the backup process and probably remove the builtin SQL editor. It’s handy for folks who are not used to dealing with SSH, but it creates a huge hole in the website.

F-Zero Central

F-Zero Central is a community with leaderboards, world record tracking and forums around the F-Zero games. I don’t maintain the website, but I did help them migrate servers in the past with some ansible automation. It’s a PHPBB installation with some extra pages and other tweaks.

On April 18th, the website’s front page was replaced with one of those generic “HaCkEd By <xxx>” messages. The PHPBB installation is super old (it’s still running 2.x), so there are probably a lot of known exploits.

I’m working on upgrading it to PHPBB 3.3. Not sure if we’ll restore the website before the upgrade is complete, but this will probably take a while.

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto

25 de Abril e o fascismo.

Publicado por Ludwig Krippal em 25 de Abril de 2021 às 15:39

Faz hoje 47 anos que os portugueses iniciaram um processo difícil, de vários meses, para substituir uma ditadura por uma democracia. Foi por pouco, mas teve sucesso. Apesar do que defende uma minoria idiota de direita, mesmo admitindo alguns excessos, o resultado foi muito melhor do que a ditadura que havia antes. Quem disser que o 25 de Abril foi má ideia não está a ser meramente ignorante. Está a ser aldrabão. Mas o processo foi imperfeito e o perigo que a promessa da democracia correu nesse período é uma lição importante.

«25 de Abril sempre! Fascismo nunca mais!» é um slogan famoso do PREC ainda hoje apregoado. E ilustra esse perigo que se correu em 1974 e que, em grau muito menor, ainda corremos agora. A vitória da URSS contra o fascismo foi o factor mais importante na projecção internacional do comunismo. A Rússia comunista passou a dominar muitos países e até o comunismo chinês beneficiou dessa vitória. Tendo em conta a ideologia política de partidos como o PCP e o MRPP, que integravam o PREC, é evidente que a escolha do fascismo como alvo veio desta mitologia comunista e do objectivo de conseguir em Portugal uma vitória contra o “fascismo” análoga às de 1945 contra o fascismo na Polónia e por toda a Europa de leste. Não me parece que a escolha deste slogan tenha sido inocente, especialmente considerando que a ditadura portuguesa em 1974 não era um regime fascista. Foi uma falácia para facilitar a substituição de uma forma de repressão por outra e ainda hoje serve esse propósito.

É conveniente para a esquerda rotular de “fascismo” qualquer coisa de direita que queiram condenar porque o fascismo é tão obviamente mau que o rótulo é meio caminho andado para justificar tudo o que se faça em oposição. É este raciocínio falacioso que concede virtude automática a quem diz ser anti-fascista, anti-racista, anti-machista e essas coisas, antes sequer de se questionar o que propõe em concreto. Para muitos em 1974, o anti-fascismo revolucionário justificaria até uma ditadura comunista na linha da URSS ou da China. Mas isso não só seria errado mesmo que Portugal estivesse sob um regime fascista, como estava a Jugoslávia antes de Tito se tornar ditador, como nem sequer é uma caracterização correcta da ditadura Portuguesa.

Não é possível definir “fascismo” de forma consistente olhando para a ideologia. As falanges católicas de Espanha eram ideologicamente muito diferentes dos fasci di combattimento italianos ou dos sturmabteilung alemães. O Império do Japão em 1940 era um regime autoritário, nacionalista, militarista e racista mas não era um fascismo. Era uma monarquia. Ideologicamente, Hitler e Mussolini eram muito diferentes. O primeiro vivia obcecado com o extermínio dos judeus e o segundo considerava essa obsessão uma barbaridade repugnante. Mas os regimes de Mussolini, Hitler e Franco surgiram graças a grupos civis violentos. Isso é o fascismo. É mais o processo do que a ideologia. É isso que Bolsonaro e Trump tentaram imitar, felizmente com muito menos competência. Isto não tem nada que ver com a nomeação de Salazar para Ministro das Finanças pela junta militar em 1926 ou a constituição do Estado Novo em 1933. Muito menos com o que Portugal era em 1974. É por isso incorrecto dizer que o 25 de Abril foi uma vitória contra o fascismo. Foi uma vitória da liberdade. Foi uma vitória contra a ditadura e a opressão. Mas o papão do fascismo foi invocado pela esquerda por razões de propaganda política pelo seu objectivo de substituir uma ditadura por outra.

Este ardil continua a ser usado hoje. Em grande parte, a esquerda continua a definir-se em oposição a perigos empolados e mal definidos como o racismo, o colonialismo, os estereótipos e, ainda, o fascismo, para tentar desviar a atenção de medidas contrárias àqueles princípios de liberdade e democracia que triunfaram após o 25 de Abril. E que triunfaram apesar do esforço de muita da esquerda de então, que idealizava um futuro bem diferente para Portugal. Por isso, sim, 25 de Abril sempre. Temos de defender a democracia e a liberdade, protegendo-as de todos que as queiram substituir pela repressão. Mas “25 de Abril sempre!” com cuidado ao que põem a seguir, porque traz água no bico.

Bitcoin e Tether, parte 2.

Publicado por Ludwig Krippal em 18 de Abril de 2021 às 22:36

Imaginem que aqui na rua muita gente começa a trocar cromos, a comprá-los e a vendê-los, e os preços sobem com a especulação. Mas fazer isso com euros deixa registo de transferências, o fisco pode cobrar mais-valias e os bancos estão atentos à origem do dinheiro. Para facilitar a vida aos mais preocupados, eu imprimo uns papelinhos a dizer “vale um euro” e prometo que vou sempre vendê-los e comprá-los a um euro cada um. É uma maravilha. Com os papelinhos toda a gente compra e vende cromos sem problemas e o preço dos cromos vai subindo.

Os euros que recebo pelos papelinhos podiam ficar no banco, como garantia. Mas eu confio que não vai toda a gente querer trocar papelinhos por euros ao mesmo tempo e entro também no jogo, comprando cromos para aproveitar a sua valorização. E como tanta gente vende cromos a troco de papelinhos eu nem preciso vender os papelinhos. Basta imprimir e usá-los para comprar cromos. Isto empurra o preço ainda mais para cima e deixa toda a gente contente. Entretanto, há muito mais papelinhos em circulação do que euros na minha conta, porque tenho quase tudo em cromos, mas enquanto o preço for subindo não há problema. E se o preço dos cromos ameaça baixar basta-me imprimir mais papelinhos, comprar mais cromos e empurrar o preço novamente para cima. Enquanto toda a gente acreditar que papelinhos são euros vai correndo tudo bem.

Em traços gerais, é isto que tem acontecido no mercado dos cripto-activos com o USDT, uma “criptomoeda” emitida pela empresa Tether sob a vaga promessa* de que cada USDT vale um dólar. O gráfico abaixo mostra o número de USDT em circulação nos últimos 15 dias e o preço de cada bitcoin (BTC).



Nos dias 9 e 12 nota-se dois exemplos de como a emissão de centenas de milhões de USDT de cada vez empurra a seguir o preço das bitcoin. Mas o efeito parece estar a desaparecer. Apesar da emissão de mais de dois mil milhões de USDT nos últimos dias, nominalmente equivalente ao mesmo número de dólares, o preço das bitcoin está a cair. Isto aconteceu também em 2017, mas nessa altura a quantidade de USDT emitido era quarenta vezes menor do que é agora (1).

Não sei o que vai acontecer a seguir mas é pouco plausível que a Tether tenha 48 mil milhões de dólares no banco para comprar os USDT de volta se muita gente decidir trocar os papelinhos por dinheiro. Possivelmente tem em bitcoin ou algo parecido. E como a maior parte das vendas de bitcoin são por USDT, se tentarem vender muitas bitcoin por dinheiro o preço vai cair. Há muito menos dinheiro neste mercado do que parece porque a maior parte é papelinhos.

*Nas letras miudinhas a empresa esclarece que não se compromete legalmente.

1- Investopedia, Bitcoin's 2017 Rise Was Market Manipulation By Tether: Study

O plano.

Publicado por Ludwig Krippal em 18 de Abril de 2021 às 00:20

Está disponível para consulta pública o Plano Nacional de Combate ao Racismo e à Discriminação 2021-2025 (1). Começa logo por uma confusão grave que inquina toda a proposta: «O direito à igualdade e à não discriminação é um alicerce da democracia portuguesa». O “direito à igualdade” é um absurdo. Os nossos direitos são o outro lado dos deveres que têm para connosco. O direito à vida é a outra face do dever de não nos matarem, o direito à educação é a do dever de garantir um ensino universal e o direito à saúde do dever de garantir assistência médica para todos. O direito à igualdade nem se percebe o que possa ser. Que dever têm outros que eu seja igual? E igual a quem? Ao Cristiano Ronaldo? À Sara Sampaio? A expressão “direito à igualdade” não é sequer inteligível. Têm é o dever de me deixar ser diferente.

O que é um alicerce da democracia é a igualdade de direitos. Porque os deveres do Estado são iguais para todos, temos direitos iguais na nossa relação com o Estado e o Estado democrático não pode discriminar por características como sexo, raça, religião e afins. Por isso não é legitimo o Estado proibir-me de casar com um homem só por eu ser homem. Nem em nome da igualdade de género ou de quotas de representatividade. Se naquelas circunstâncias é permitido a uma mulher casar-se, então também tem de ser permitido a um homem. Mas esse dever de não discriminar pelo sexo é um dever do Estado. Não é dever de cada um de nós, e o homem com quem eu possa querer casar tem o direito de recusar casar-se comigo por eu ser homem, ou por ser branco, ou por ser ateu ou o que for. Nós temos alguns deveres por igual para com todos os outros, como o dever de chamar o 112 se vemos alguém ser atropelado. Mesmo que seja o André Ventura. Mas na vida pessoal esses deveres são excepção e não a regra. Quem tem por regra o dever de não discriminar é o Estado. O cidadão deve ser livre de escolher como se relaciona com os outros e de gostar mais destes que daqueles. Seja por que razão for.

Isto não é apenas para implicar por terem escrito «direito à igualdade» em vez de igualdade de direitos. É um problema fundamental na proposta porque ignora que o dever do Estado não discriminar entre cidadãos refere-se a direitos e à igualdade perante a lei e não se restringe a aspectos como sexo ou raça. Como se pode ler no artigo 13º da Constituição:

«1. Todos os cidadãos têm a mesma dignidade social e são iguais perante a lei.
2. Ninguém pode ser privilegiado, beneficiado, prejudicado, privado de qualquer direito ou isento de qualquer dever em razão de ascendência, sexo, raça, língua, território de origem, religião, convicções políticas ou ideológicas, instrução, situação económica, condição social ou orientação sexual.»


É um alicerce do Estado democrático que o Estado também não discrimine os cidadãos em função de crenças ou ideologias. Porque numa democracia a autoridade última é o povo e é o povo quem tem de decidir. Esse principio é claramente violado por um governo que se ponha a combater ideologias. Não importa que ideologias sejam. Tal como discordo do racismo, também discordo da astrologia, do criacionismo, da monarquia, do nacionalismo, das religiões em geral e de algumas em particular mas nunca concordaria com um plano de combate a essas ideologias ou crenças. É dever do Estado garantir que todos têm informação para perceber que essas crenças são parvas e a liberdade para as rejeitar. Mas também é dever de todos respeitar a liberdade de quem, apesar disso, opta por acreditar em parvoíces. Mesmo que seja o racismo.

Sob esta inversão de valores fundamentais, o plano contempla coisas como «contrariar e deslegitimar os estereótipos», dar formação a «pessoal docente e não docente, envolvendo também estudantes, famílias, encarregados/as de educação» e medidas de contratação que visem «a promoção de maior diversidade entre os trabalhadores». O objectivo deste plano é doutrinar os cidadãos, algo que o Estado democrático não devia fazer. E propostas como «Avaliar formas de ação positiva de promoção de maior diversidade e representatividade nos cargos de decisão política e nos cargos de assessoria política» ou «Definir um contingente especial adicional de alunos das escolas TEIP no acesso ao ensino superior» sugerem que nem se importam que o Estado discrimine se for preciso para empurrar as estatísticas. Em vez de garantir igualdade de direitos e a liberdade de cada um pensar à sua maneira, vão discriminar nos direitos para reduzir o mais possível a diversidade de opiniões.

Além do equívoco acerca dos direitos dos cidadãos e dos deveres do Estado, e o retrocesso perigoso a quando o Estado doutrinava as pessoas nas ideologias escolhidas pelo governo, algumas medidas são imbecis até no aspecto prático. Por exemplo, o tal contingente especial para alunos dos Territórios Educativos de Intervenção Prioritária (TEIP). Eu estudei em escolas dessas até ao nono ano e sei como a falta de condições materiais e humanas colocam muitos alunos em desvantagem. Não é fácil estudar quando se vive numa barraca com a avó e se tem os pais na prisão. Mas nem todas as crianças nessas escolas estão nessas condições. Eu nunca estive. E as que estão não vão beneficiar de quotas para o ensino superior porque nem vão chegar lá. A solução justa seria investir em apoio às famílias carenciadas, mais professores nessas escolas, turmas mais pequenas e medidas afins que custam dinheiro mas funcionam. É esse tipo de medidas que este plano devia propor, para que o Estado cumpra os seus deveres sem discriminar. Em vez disso propõe que o Estado tome medidas discriminatórias e se dedique a doutrinar as pessoas. É um ataque duplo aos alicerces da democracia que o plano alega defender.

1- Consultas LEX, Plano Nacional de Combate ao Racismo e à Discriminação 2021-2025

Artigos 11 e 13 aprovados. Mas ainda podemos salvar a Internet. #SaveYourInternet

Publicado por Paula Simões em 20 de Junho de 2018 às 23:24

Hoje a Comissão JURI aprovou o artigo 11 (por um voto: 12-13) e aprovou o artigo 13 (por dez votos: 15-25).

O único representante Português na Comissão, o Eurodeputado Marinho e Pinto, votou a favor dos dois artigos, ou seja votou a favor da “taxa dos links”, que vai reduzir a circulação de notícias de jornalismo profissional na Internet, e votou a favor das “máquinas de censura”, que obrigam todas as plataformas a implementarem filtros automáticos de verificação prévia.

De uma forma geral, podemos dizer que a Comissão JURI decidiu dar ainda mais poder à grande indústria de conteúdos e às grandes tecnológicas. As medidas positivas que estavam em cima da mesa para os utilizadores, como a obrigatoriedade da excepção de panorama e a permissão para usar obras em conteúdos gerados pelos utilizadores (User Generated Content) foram rejeitadas.

A excepção para fins de ensino, que restringe a utilização digital de obras a estabelecimentos de ensino ou actividades noutros locais, mas sob a responsabilidade de um estabelecimento de ensino, e que restringe a utilização digital de obras a redes electrónicas privadas, apenas acessíveis por alunos e professores desse estabelecimento de ensino também foi aprovada. O texto aprovado permite ainda aos Estados-Membros eliminarem a excepção para fins de ensino, obrigando os estabelecimentos a negociarem licenças e adicionalmente podendo impor uma taxa às escolas, universidades e outras instituições à semelhança da taxa da cópia privada.

A excepção para fins de prospecção de texto e dados fica restrita às organizações de investigação. Os deputados decidiram que mesmo que nós tenhamos acesso legal a textos e dados não os podemos “ler”, através de uma ferramenta tecnológica.

Para além de aprovar o texto, os deputados aprovaram ainda dar um mandato para se iniciarem as negociações com o Conselho da União Europeia

O que se segue?

Apesar de ter sido aprovado o mandato para as negociações com o Conselho, é possível que este voto tenha de ser confirmado em plenário, se 76 deputados assim o quiserem. É provável que isto aconteça. Se assim for, este voto no plenário poderá ocorrer já a 4 de Julho. Todos os deputados serão chamados a votar, incluindo os 21 deputados Portugueses.

Se o mandato for rejeitado no plenário agora em Julho, os deputados poderão submeter novas emendas à proposta hoje aprovada na Comissão JURI, que poderão eliminar ou tornar minimamente razoáveis os pontos problemáticos. Isto significa mais uma oportunidade de corrigir os pontos negativos da proposta.

Se e quando o mandato for aprovado, então começam os chamados “triálogos”, ou seja, negociações informais entre o Parlamento Europeu, o Conselho da União Europeia e a Comissão Europeia. Não há obrigação destas discussões serem públicas ou dos documentos produzidos serem tornados públicos.

Para mais informação sobre este processo, ver o site Save Your Internet (em Inglês).

Depois destas negociações, estas três entidades chegarão a uma versão final do texto, que deverá ser levada a plenário em Dezembro/Janeiro. O Parlamento deverá querer acelerar o processo o mais possível, uma vez que as eleições Europeias estão marcadas para 23 – 26 de Maio de 2019.

 

 

O que vai votar amanhã o Eurodeputado @marinhopintoeu #SaveYourInternet

Publicado por Paula Simões em 19 de Junho de 2018 às 12:50

Deixo aqui duas tabelas com um resumo do que está em causa nos artigos 11 e 13, feita pela deputada Julia Reda, que confirmei e validei com todos os documentos, debates, estudos que foram publicados nos quase últimos dois anos:

Artigo 11 Proposta da Comissão Proposta Voss/JURI Proposta Reda/JURI Os mais pequenos excertos de notícias têm de ser licenciados, para poderem ser usados. Os mais pequenos excertos de notícias têm de ser licenciados, para poderem ser usados.  Simplificação do licenciamento e respeito do direito de autor através da regra de presumpção. Aplica-se a links em todo o lado. Aplica-se a links em plataformas Web. Duração de 20 anos. Duração de 5 anos. Artigo 13

Na lista de votação, o artigo 13 corresponde à Compromise Amendment (CA) 14 e a proposta razoável do artigo 13 corresponde à Compromise Amendment (CA) 14b.

 

Proposta da Comissão Proposta Voss/JURI Proposta Reda/JURI Plataformas têm de usar filtros de upload automáticos (prévios). Plataformas são responsabilizadas pelos conteúdos que os utilizadores publicam. Plataformas activas devem concluir acordos justos de licenciamento Aplica-se a qualquer plataforma que disponibilize “grandes quantidades” de conteúdos de utilizadores. Plataformas têm de usar filtros automáticos prévios na mesma.  Filtros de upload automáticos (prévios) são banidos. Aplica-se a todas as plataformas excepto Wikipedia, GitHub e a pouco mais.

 

Se quiserem ter uma ideia dos vários argumentos, estudos científicos, artigos e análises sobre isto podem consultar o site Decisões, decisões…

LetMeLink

Se querem continuar a ver os Tweets do @CinemaSaoJorge , tirem 5 minutos para pedir ao deputado @marinhopintoeu para votar contra o artigo 13º #SaveYourInternet

Publicado por Paula Simões em 12 de Junho de 2018 às 09:27

A conta do Cinema São Jorge no Twitter é um exemplo de como usar aquela rede social.

No entanto, no dia 20 ou 21 de Junho, a Comissão dos Assuntos Legais (JURI) do Parlamento Europeu vai votar um texto, que servirá de base para votar uma nova diretiva sobre o Direito de Autor, cujo artigo 13º pode impedir entidades como o Cinema São Jorge de usar o Twitter como ele deve ser usado.

O artigo 13º passa a obrigar todas as plataformas a impedir a publicação de conteúdos que não respeitam direitos de autor. A única forma de cumprir este ponto passa por verificar todos os conteúdos que queremos publicar na Internet, antes de os publicarmos. Isto só é possível através de filtros automáticos. Os filtros automáticos são cegos às exceções.

Se esta proposta for aprovada, o Cinema São Jorge não vai conseguir publicar os Tweets que tem publicado. Abaixo podem ver um screenshot tirado em Março de 2018 da timeline do @cinemasaojorge e a mesma timeline se o artigo 13º já tivesse sido aprovado.

Temos apenas um representante Português na Comissão JURI, o Senhor Eurodeputado Marinho e Pinto. A informação que chega de Bruxelas dá conta de que há 12 deputados contra o artigo 13ª e 13 deputados a favor, nos quais parece incluir-se o Deputado Marinho e Pinto (Grupo ALDE).

 

O site Save Your Internet tem ferramentas que permitem rapidamente contactar os nossos representantes, por email, por telefone e pelo Twitter. São cinco minutos para salvar a Internet. 

 

Prazo de garantia dos produtos, em Portugal, pode ser reduzida para um ano. O Sr. Eurodeputado @CarlosCoelhoPE votou contra e muito bem! #consumidores

Publicado por Paula Simões em 5 de Março de 2018 às 21:11

Um post muito rápido sobre uma proposta, que está em discussão no Parlamento Europeu, e que terá consequências negativas na nossa Lei de Defesa do Consumidor.

A proposta, se for aprovada, terá duas consequências para os consumidores Portugueses:

  1. No caso de falta de conformidade do produto (bem móvel), o consumidor Português deixa de poder escolher como quer resolver o problema;
    O que diz a lei actual?

    Hoje, se comprarem um produto e se se verificar algum dos seguintes factos:

    Screen Shot 2018-03-05 at 20.26.06

    Presume-se que o produto não é conforme o contrato e podem escolher uma de quatro soluções, como indicado na lei [PDF] [Leis do Consumo]: podem pedir a reparação, podem pedir a substituição, podem pedir a redução do preço ou podem pedir a devolução do dinheiro. E são vocês que escolhem qual a solução que preferem.

    Screen Shot 2018-03-05 at 20.13.55

    A proposta em discussão passa a permitir que o consumidor escolha apenas entre a reparação e a substituição.

  2. A garantia dos produtos passa, na prática, a ser de um ano.Actualmente, temos em Portugal uma garantia de dois anos, o que significa que durante esses dois anos, no caso de falta de conformidade do bem móvel adquirido cabe ao vendedor provar que o bem estava conforme no momento da venda.
    A proposta em discussão mantém isto, mas apenas durante o primeiro ano. No segundo ano, passa a ser o consumidor a ter de provar que o produto não estava conforme no momento da venda, o que é praticamente impossível, pelo que na prática a garantia passa a ser apenas de um ano.

Não tenho estado a acompanhar este assunto (a Reforma sobre o Direito de Autor já me tira demasiado tempo). Imagino que esta proposta tenha ainda de ser aprovada no Plenário, mas não faço ideia do roadmap.

Sei que foi aprovada na Comissão do Mercado Interno e Protecção do Consumidor (IMCO), onde temos como representante o Sr. Eurodeputado Carlos Coelho (PSD), que votou contra e muito bem.

Se alguém quiser tentar saber mais sobre os próximos passos, era excelente.

De qualquer forma, podemos sempre contactar os Eurodeputados Portugueses para lhes expor as nossas preocupações sobre este assunto. Os contactos estão aqui.

Link para a informação no BEUC.

Mais um ataque ao Domínio Público #PublicDomain Tribunal Alemão manda bloquear acesso ao Projecto Gutenberg

Publicado por Paula Simões em 5 de Março de 2018 às 18:35

(Editado para corrigir um dos anos: 2027 e não 2017. Obrigada ao Nelson Cruz por ter notado.)

Screen Shot 2018-03-05 at 17.07.17

Um tribunal alemão mandou o Projecto Gutenberg bloquear o acesso, na Alemanha, a um conjunto de 18 livros de três autores, que estão em domínio público nos Estados Unidos, mas ainda com direitos de autor na Alemanha até 2020, 2025 e 2027 respectivamente.

A queixa foi feita pelo Grupo Editorial S. Fischer Verlag.

Estando sediado nos EUA, o Projecto Gutenberg apenas está obrigado a cumprir a lei do seu país. É por isso surpreendente que um tribunal de um outro país possa mandar bloquear conteúdos de plataformas, que cumprem a lei do seu próprio país.

O impacto negativo desta decisão já se está a fazer sentir: o Projecto Gutenberg decidiu bloquear o acesso a todo o site, a partir da Alemanha, para se proteger de novos ataques:

PGLAF’s legal advisors disagree with all claims that there must be any blocking, or removal, or anything associated – censorship, fines/fees, disclaimers, etc. – for items that are in the public domain in the US. Period.

Because the German Court has overstepped its jurisdiction, and allowed the world’s largest publishing group to bully Project Gutenberg for these 18 books, there is every reason to think that this will keep happening. There are thousands of eBooks in the Project Gutenberg collection that could be subject to similar over-reaching and illigitimate actions.

PGLAF is a small volunteer organization, with no income (it doesn’t sell anything) other than donations. There is every reason to fear that this huge corporation, with the backing of the German Court, will continue to take legal action. In fact, at least one other similar complaint arrived in 2017 about different books in the Project Gutenberg collection, from another company in Germany.

Project Gutenberg’s focus is to make as much of the world’s literature available as possible, to as many people as possible. But it is, and always has been, entirely US-based, and entirely operating within the copyright laws of the US. Blocking Germany, in an effort to forestall further legal actions, seems the best way to protect the organization and retain focus on its mission.

O Projecto Gutenberg irá apelar desta decisão. Aqui podem obter mais informação sobre o processo e saber como ajudar este projecto.

O Projecto Gutenberg foi fundado em 1971 (sim, leram bem, 1971) por Michael Hart e é um projecto que reúne voluntários, que digitalizam, verificam e disponibilizam livros em domínio público (ou seja, que já não têm direitos de autor patrimoniais). Foi a primeira biblioteca digital.

Páginas

Subscreva Planeta ANSOL