Group: LibrePlanet Brasil/Pesquisas eleitorais
Contents
Procedimentos
Exceto quando mencionado, as pesquisas feitas seguem os procedimentos descritos aqui, que por sua vez são baseados no e-mail[1] enviado por User:Adfeno.
Coleta dos endereços de e-mail
Os endereços de e-mail estão disponíveis nos arquivos .csv feitos pelo TSE para cada ano, por exemplo, podes baixar o do ano de 2020[2] — arquivos estes que podem ser acessados indiretamente tanto pelo [3] quanto pelo seu repositório[4], para ambos os casos, vejam a respectiva nota para saber como baixar os dados[5] caso este link esteja quebrado ou queiram saber como chegar a este arquivo de forma alternativa sem usar software não livre —, cada uma das tabelas tem o campo NM_EMAIL
que precisamos.
Sobre este campo, o TSE cometeu os seguintes erros:
- Segundo os padrões internacionais de envio de e-mails RFC 5322[6] (seções 3.2.3, 3.2.4, 3.4.1), a notação descrita pela RFC 5234[7], e Korokithakis (2018[8]), a parte local/nome de usuário do endereço é sensível à capitalização (letras minúsculas ou maiúsculas levam a diferentes caixas de e-mail), mas o TSE optou por transformar todos os endereços em letras maiúsculas. Para resolver isso, tentou-se transformar todo o e-mail para letras minúsculas.
- Parece que o TSE não usou validação de e-mails usando mensagens de e-mail normais (via SMTP) na ocasião do registro, ou usou um que dependia apenas do servidor HTTP e do conjunto HTML + JavaScript, este último que não é recomendado, segundo Korokithakis (2018[8]). Assim, nota-se que alguns dos endereços podem ter erros visíveis de grafia para provedores que já conhecemos.
Feitas estas observações, tendo os arquivos .csv e usando o arquivo consulta_cand_2020_AC.csv
como exemplo, vais precisar de uma cópia do interpretador da linguagem estatística GNU R e do pacote/biblioteca adicional data.table visível para o mesmo interpretador, com isso pronto use do script presente na próxima subseção e dos exemplos na subsequente.
Script para pegar os e-mails
Recomenda-se salvar este como pegar-emails.R
.
# pegar-emails: Coleta endereços de e-mail dos candidatos aptos segundo TSE # Copyright (C) 2018, 2020 Adonay “adfeno” Felipe Nogueira https://libreplanet.org/wiki/User:Adfeno # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License. # # This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. # Argumentos: # * 1: arquivo .csv. # * 2 (opcional): texto para selecionar as condições dos campos/colunas, usando sintaxe do GNU R. # Se ausente, `DS_SITUACAO_CANDIDATURA == "APTO"` é usado. # Exemplo: # DS_SITUACAO_CANDIDATURA == "APTO" & (NM_UE == "RIO BRANCO" | NM_UE == "CRUZEIRO DO SUL") # # Resultado # * Saída padrão: lista contendo somente os e-mails, separados por “, ” (uma vírgula seguida de um espaço), terminada por uma quebra de linha (line feed, LF). # Exemplo de uso: # Rscript --verbose "pegar_emails.r" "consulta_cand_2020_AC.csv" "e-mails.txt" # Carrega a biblioteca data.table, para tratar de grandes tabelas de forma mais rápida. library(data.table) # Lê o arquivo .csv conforme descrição em “leiame.pdf” e armazena este em um quadro de dados padrão do GNU R. dados <- read.csv(file = commandArgs(trailingOnly = TRUE)[1], header = TRUE, sep = ";", na.strings = c("#NULO#", -1), fileEncoding = "Latin1") # Converte o quadro de dados do GNU R para tabela de dados do data.table, otimizando assim a leitura e definição dos dados. dados <- data.table(dados) # Se um segundo argumento não for fornecido… if (is.na(commandArgs(trailingOnly = TRUE)[2])) { # Usa a condição padrão (`DS_SITUACAO_CANDIDATURA == "APTO"`, que retorna a lista de valores lógicos (verdadiro/TRUE ou falso/FALSE) caso o candidato esteja apto. condicoes_das_colunas <- 'DS_SITUACAO_CANDIDATURA == "APTO"' } else { # Se há um segundo argumento, usa-se deste, não importa se está correto ou não. condicoes_das_colunas <- commandArgs(trailingOnly = TRUE)[2] } # `eval(parse(text = …))` transforma um texto em parte de código. `which` enumera quais posições são verdadeiras/TRUE. Efetivamente, cria-se uma lista com o número das linhas dos candidatos aptos (por padrão) ou com base nas condições especificadas. candidatos <- which(dados[, eval(parse(text = condicoes_das_colunas))]) # Coleta os endereços do campo NM_EMAIL, `unique` remove duplicatas, `tolower` transforma os endereços em letras minúsculas, `paste` com `", "` formata o texto de saída com uma vírgula e um espaço repetidamente para cada ítem da lista, `cat` com `"\n"` finaliza com quebra de linha. `sep = ""` evita que `cat`e `paste`coloquem espaços ontre os itens quando não queremos. cat(paste(tolower(unique(dados[candidatos, NM_EMAIL])), ", ", sep = ""), "\n", sep = "")
Exemplos
Candidaturas no Rio Branco ou em Cruzeiro do Sul (AC)
Mesmo que você altere os critérios, guarde o resultado do comando caso queiras enviar os e-mails, tendo em vista que podes precisar dele para os exemplos posteriores.
Rscript --verbose "pegar-emails.R" "consulta_cand_2020_AC.csv" 'DS_SITUACAO_CANDIDATURA == "APTO" & (NM_UE == "RIO BRANCO" | NM_UE == "CRUZEIRO DO SUL"'
Mostrar somente e-mails com servidores possivelmente incorretos
Isto expande o exemplo anterior, de modo a listar somente os endereços de e-mail que podem estar registrados incorretamente ao menos no tocante ao nome de domínio do servidor/fornecedor do endereço (parte após o arroba).
Rscript --verbose "pegar-emails.R" "consulta_cand_2020_AC.csv" 'DS_SITUACAO_CANDIDATURA == "APTO" & (NM_UE == "RIO BRANCO" | NM_UE == "CRUZEIRO DO SUL" & ! grepl("@((gmail|hotmail|icloud|live|outlook)\\.com|yahoo\\.com(\\.br)?|(bol|terra|uol)\\.com\\.br|riseup\\.net|hyperbola\\.info)$", NM_EMAIL, ignore.case = TRUE)'
Com base nesta lista, recomenda-se que verifiques se os fornecedores existem e faça as correções no arquivo da lista de e-mails.
A título de exemplo, para um teste preliminar da existência dos provedores, podes usar o seguinte comando, cujo programa já vem instalado por padrão pelo pacote dnsutils
no GNU+Linux Trisquel[9]:
dig +short -t "MX" "bol.com"
Isto deve retornar ao menos uma linha com algum endereço (qualquer que seja, numérico ou não), indicando que existe ao menos um fornecedor de e-mail associado àquele nome de domínio. Se isto ocorrer, não é necessário ajustar nada.
Todavia, NM_EMAIL
pode ter servidor de e-mail que, apesar de similar a um conhecido, também pode supostamente aceitar e-mails naquele domínio. O exemplo anterior é um destes casos, devido à similaridade com bol.com.br
. Nesse cenário, recomenda-se enviar o e-mail a todos os endereços possíveis.
Remover e-mails com servidores possivelmente incorretos (preterido)
Cuidado: isto pode remover endereços legítimos!
Rscript --verbose "pegar-emails.R" "consulta_cand_2020_AC.csv" 'DS_SITUACAO_CANDIDATURA == "APTO" & (NM_UE == "RIO BRANCO" | NM_UE == "CRUZEIRO DO SUL" & grepl("@((gmail|hotmail|icloud|live|outlook)\\.com|yahoo\\.com(\\.br)?|(bol|terra|uol)\\.com\\.br|riseup\\.net|hyperbola\\.info)$", NM_EMAIL, ignore.case = TRUE)'
Envio das mensagens
Durante o envio da mensagem, User:Adfeno optou por preenchê-la da seguinte forma:
- Campo
To
(Para
em português brasileiro): colocou o e-mail da mailto:libreplanet-br@libreplanet.org (lista de e-mails/discussão[10]), para pelo menos ter um destinatário visível.
- Campo
Reply-To
(Responder a
): idem ao anterior, a razão disto é tentar evitar que os candidatos respondam particularmente ao ativista que enviou a mensagem, uma vez que se entende que este já participa da lista de discussão atual e além disso se justifica pelo fato de que o membro do grupo não precisaria repassar a mensagem recebida para a lista e traria mais transparência à resposta pois o membro não precisaria ser questionado sobre alegada modificação da resposta.
- Campo
Bcc
(Cco
): endereços dos candidatos contidos no arquivo de texto puro, a razão para estarem aqui é para dar a chance de um candidato não precisar expor seu e-mail ao público (ou a outros candidatos), uma vez que os arquivos da lista estão disponíveis a todos os não membros e assim tentando não deixar visível tal endereço para possíveis ataques pessoais contra um candidato. A desvantagem é que isto pode colocar a mensagem em uma posição descriminatória quando avaliada pelo provedor de e-mails que receberá ela, podendo classificá-la como spam ou simplesmente descartá-la — espera-se que com uma mensagem explicativa e transparente expondo os motivos ao remetente.
No tocante ao corpo da mensagem, sugere-se usar o seguinte modelo:
Prezad@ candidat@, Encaminho a seguir — em nome dos coletivos LibrePlanet Brasil, FSF América Latina e do Projeto GNU — algumas questões sobre tuas propostas, particularmente relacionadas ao software livre. Desde já contamos com tua concordância para a publicação das respostas em <https://libreplanet.org/wiki/Action_items>. Software livre é todo programa de computador que respeita as liberdades do usuário de executar, estudar, auditar, adaptar, copiar, modificar e distribuir o programa e as melhorias. Não confundir com software gratuito: a questão é liberdade e, se não puder ser usado, vendido ou explorado comercialmente, não se qualifica como software livre. Para maiores detalhes sobre a definição de software livre, veja Stallman (2015), Hill (2015), Lima (2013), Buckman e Gay (2002). Software livre é software que, usado no poder público, respeita a soberania, a economicidade, a livre concorrência e permite favorecer agentes econômicos locais, sem abrir mão da excelência técnica (OLIVA; REZENDE, 2013). Na esfera privada, evita a invasão de privacidade, o abuso dos efeitos de rede de protocolos não interoperáveis e das restrições contratuais nos arranjos exclusivos de distribuição de software privativo de liberdade. Para todos os usuários, evita a perda de controle sobre os próprios dados, computações e dispositivos computacionais, sendo assim, possibilitando sempre o controle do ambiente material (LIMA, 2013, RANDAL, 2016, VILLA, 2016). Desde antes de o termo ser cunhado, software livre vem sendo desenvolvido e compartilhado por comunidades de pesquisadores, empresas, colaboradores individuais e curiosos em geral. Comunidades de usuários e desenvolvedores se formam ao redor dos programas de maior sucesso, realimentando os esforços neles investidos. Outras comunidades se dedicam a aspectos sociais, políticos e éticos do software livre, com preocupações quanto à indevida influência de grandes empresas desenvolvedoras de software ou de uma rede social centralizada sobre o dia a dia de usuários individuais, corporativos e governamentais (GERWITZ, 2017, BENKLER, 2017); à segurança e confiabilidade de programas não auditáveis e sem transparência, sejam de origem corporativa ou governamental; ao reforço das desigualdades e das dependências fomentadas pelo software privativo de liberdade, especialmente quando ofertado em caráter não oneroso a instituições educacionais (LENON; GOMES; PRETTO, 2011), nos moldes de formação de usuários do tráfico de drogas; à corrupção facilitada pelos arranjos exclusivos de fornecimento (monopólios de fato, senão de direito, já que eventuais redistribuidores de um determinado programa privativo de liberdade estão todos a jusante de um único fornecedor último) e pelos lucros exorbitantes advindos da venda de licenças de custo efetivo zero. A todas essas comunidades nos interessa conhecer teus planos caso seja eleit@. Especificamente, perguntamos, e desde já solicitamos permissão para publicar suas respostas: 1. Quais os planos para aumentar a adoção de software livre no poder público? 2. Que medidas pretendes tomar para que o poder público deixe de impor ou mesmo ofertar a cidadãos naturais e jurídicos aplicativos privativos de liberdade (ex: cálculo de impostos, e-documentos, consultas ou transações online com bancos públicos), substituindo-os por software livre? 3. Que outras propostas tens para promover a adoção e difusão de software livre na esfera privada? 4. Quais as propostas para conter e reverter a cooptação de setores públicos no sentido de entregar a corporações nebulosas os dados pessoais de cidadãos que deveriam ser mantidos sob a guarda do Estado? (exemplo: e-mail e armazenamento de dados em geral terceirizados para provedores de Serviços como Substitutos do Software em escolas, hospitais e defensorias públicas). # Referências BENKLER, Yochai. Degrees of freedom, dimensions of power. 2017. SFLC Fall Conference. Disponível em: <https://downloads.softwarefreedom.org/2017/conference/0-keynote.webm>. Acesso em: 31 jan. 2018. BUCKMAN, Richard E.; GAY, Joshua. A note on software. In: FREE SOFTWARE FOUNDATION, INC. Free software, free society: selected essays of Richard M. Stallman. 3. ed. Boston: GNU Press, 2002. cap. A, p. 271–273. Disponível em: <https://shop.fsf.org/books-docs/free-software-free-society-selected-essays-richard-m-stallman-3rd-edition>. Acesso em: 11 dez. 2016. GERWITZ, Mike. The surreptitious assault on privacy, security, and freedom. 2017. LibrePlanet. Disponível em: <https://media.libreplanet.org/u/libreplanet/m/the-surreptitious-assault-on-privacy-security-and-freedom/>. Acesso em: 2 set. 2017. HILL, Benjamin Mako. Access without empowerment. 2015. LibrePlanet. Disponível em: <https://media.libreplanet.org/u/libreplanet/m/access-without-empowerment-benjamin-mako-hill-6bd1/>. Acesso em: 20 dez. 2016. LENON, Wilkens; GOMES, Alex Sandro; PRETTO, Nelson de Luca. Universidade e software livre: a academia e o compartilhamento do conhecimento. 2011. Fórum Internacional Software Livre. Disponível em: <http://hemingway.softwarelivre.org/fisl12/high/sala41e/sala41e-201107010910.ogv>. Acesso em: 30 set. 2017. LIMA, Leonardo Santos de. Cultura do software livre e desenvolvimento: uma análise sobre potencialidades e limites diante e adiante da “nova economia”. Revista Crítica de Ciências Sociais, n. 102, p. 71–88, 2013. Disponível em: <http://rccs.revues.org/pdf/5462>. Acesso em: 2 ago. 2017. OLIVA, Alexandre; REZENDE, Pedro Antonio Dourado de. Da preferência constitucional pelo Software Livre. 2013. Disponível em: <https://www.fsfla.org/ikiwiki/texto/pref-const-br-swl.pt.html>. Acesso em: 1 set. 2018. RANDAL, Allisson. Free software, free society. 2016. LibrePlanet. Disponível em: <https://media.libreplanet.org/u/libreplanet/m/free-software-free-society/>. Acesso em: 20 dez. 2016. STALLMAN, Richard Matthew. Free software and your freedom. 2015. Seattle GNU/Linux Conference. Disponível em: <http://audio-video.gnu.org/video/2015-10-24--rms--free-software-and-your-freedom--seagl--speech.ogv>. Acesso em: 1 set. 2016. VILLA, Luis. Stallman, Nussbaum and Sen: putting “freedom” in context. 2016. LibrePlanet. Disponível em: <https://media.libreplanet.org/u/libreplanet/m/stallman-nussbaum-and-sen-putting-freedom-in-context/>. Acesso em: 20 dez. 2016.
Tendo pelo menos uma mensagem destas enviada, podes salvá-la como modelo deixando apenas um destinatário no campo Bcc
(Cco
) para lembrar de tal parte, não precisar repetir o processo de apagar todos os vários destinatários neste e sem o trabalho de colar o texto da mensagem novamente.
Apresentação dos resultados
Abstém-se de inserir todos os endereços aqui pois o referido arquivo já os contém, exceto em casos de possível divergência.
Procedimentos e resultados
Referências e notas
- ↑ https://lists.libreplanetbr.org/pipermail/eleicoes2018/2018-September/000026.html
- ↑ http://agencia.tse.jus.br/estatistica/sead/odsele/consulta_cand/consulta_cand_2020.zip
- ↑ http://www.tse.jus.br/
- ↑ https://www.tse.jus.br/hotsites/pesquisas-eleitorais/index.html
-
↑ Pelo GNU IceCat com LibreJS ativo, acesse o site do TSE, na seção
Eleições
clique emEleições 2020
. Na próxima página, no menu lateral, emEleições
, clique emEstatísticas
. Após carregar a tela seguinte, próximo deOutras estatísticas
, clique emRepositório de dados eleitorais
. Com isso, você estará no repositório do TSE, no menu lateral do repositório, clique na opçãoCandidatos
, escolha o ano atual, e clique emCandidatos (formato ZIP)
. - ↑ https://tools.ietf.org/html/rfc5322
- ↑ https://tools.ietf.org/html/rfc5234
- ↑ 8.08.1 https://video.fosdem.org/2018/K.1.105/email_address_quiz.webm
- ↑ http://www.gnu.org/distros/free-distros.html#for-pc
- ↑ https://lists.libreplanet.org/mailman/listinfo/libreplanet-br