<span class="latin" style="width:19px;height:19px;">G</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">o</span><span class="latin" style="width:19px;height:19px;">u</span><span class="latin" style="width:19px;height:19px;">p</span><span class="latin" style="width:19px;height:19px;">:</span><span class="latin" style="width:19px;height:19px;">L</span><span class="latin" style="width:19px;height:19px;">i</span><span class="latin" style="width:19px;height:19px;">b</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">P</span><span class="latin" style="width:19px;height:19px;">l</span><span class="latin" style="width:19px;height:19px;">a</span><span class="latin" style="width:19px;height:19px;">n</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">t</span><span class="latin" style="display:block;width:19px;height:19px;"> </span><span class="latin" style="width:19px;height:19px;">B</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">a</span><span class="latin" style="width:19px;height:19px;">s</span><span class="latin" style="width:19px;height:19px;">i</span><span class="latin" style="width:19px;height:19px;">l</span><span class="latin" style="width:19px;height:19px;">/</span><span class="latin" style="width:19px;height:19px;">P</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">s</span><span class="latin" style="width:19px;height:19px;">q</span><span class="latin" style="width:19px;height:19px;">u</span><span class="latin" style="width:19px;height:19px;">i</span></span><span class="tktr-gyo" style="height:640px;margin:0 0 180px 22px;font-size:19px;_width:19px;/width:19px;"><span class="latin" style="width:19px;height:19px;">s</span><span class="latin" style="width:19px;height:19px;">a</span><span class="latin" style="width:19px;height:19px;">s</span><span class="latin" style="display:block;width:19px;height:19px;"> </span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">l</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">i</span><span class="latin" style="width:19px;height:19px;">t</span><span class="latin" style="width:19px;height:19px;">o</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">a</span><span class="latin" style="width:19px;height:19px;">i</span><span class="latin" style="width:19px;height:19px;">s</span><span class="latin" style="display:block;width:19px;height:19px;"> </span><span class="latin" style="width:19px;height:19px;">-</span><span class="latin" style="display:block;width:19px;height:19px;"> </span><span class="latin" style="width:19px;height:19px;">L</span><span class="latin" style="width:19px;height:19px;">i</span><span class="latin" style="width:19px;height:19px;">b</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">P</span><span class="latin" style="width:19px;height:19px;">l</span><span class="latin" style="width:19px;height:19px;">a</span><span class="latin" style="width:19px;height:19px;">n</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">t</span>  

Navigation menu




LibrePlanet


About 
About LibrePlanet
Mission Statement
Founding documents
Support this Community
Code of Conduct
Anti-harassment policy
Teams 
Activists
Wiki Helpers
LibrePlanet Artists
FSF Community Team
Local & Student Teams
Conferences 
LibrePlanet Conference
Non-official
Get involved 
Participate
Discussion channels
Events
 


Login
 










Group: LibrePlanet Brasil/Pesquisas eleitorais

 

From LibrePlanet

< Group:LibrePlanet Brasil

Jump to: navigation, search  


Contents

  • 1.1.2 Exemplos
  • 1.2 Envio das mensagens
  • 1.3 Apresentação dos resultados
  • 2 Procedimentos e resultados
  • 3 Referências e notas
  • 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:

    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:

    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

    !map pages="./* and !."


    Referências e notas

    1. 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 em Eleições 2020. Na próxima página, no menu lateral, em Eleições, clique em Estatísticas. Após carregar a tela seguinte, próximo de Outras estatísticas, clique em Repositório de dados eleitorais. Com isso, você estará no repositório do TSE, no menu lateral do repositório, clique na opção Candidatos, escolha o ano atual, e clique em Candidatos (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
  • Retrieved from "https://libreplanet.org/wiki?title=Group:LibrePlanet_Brasil/Pesquisas_eleitorais&oldid=65167" 

    Category: 
    Pages with reference errors



















    FSF
    The Free Software Foundation (FSF) is a nonprofit with a worldwide mission to promote computer user freedom.

    We defend the rights of all software users. (Read more)
     



    Campaigns


    High Priority Free Software Projects

    Free JavaScript

    Secure Boot vs Restricted Boot

    GNU Operating System

    Defective by Design

    See all campaigns
     



    Get Involved



    Contact
     




    Send your feedback on our translations and new translations of pages to campaigns@fsf.org.

    Copyright © 20132023 Free Software Foundation, Inc.  Privacy Policy, JavaScript license information