Ir para o conteúdo
ou

Software livre Brasil

Minha rede

 Voltar a planetas
Tela cheia Sugerir um artigo
 Feed RSS

Planeta do ArchLinux

11 de Fevereiro de 2010, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

Magnun Leno : Entendendo o Heartbleed e Previnindo-se

10 de Abril de 2014, 7:26, por Software Livre Brasil - 0sem comentários ainda

Há um tempo nos acostumamos a pensar que, se estamos em um site com HTTPS (Protocolo HTTP encriptado por SSL/TLS) estamos seguros, assim como nossos dados. A criptografia SSL/TLS baseada em certificados supostamente previne qualquer tipo de interceptação de dados entre você e o servidor. Isso até aparecer o Heartbleed.

Heartbleed

O Heartbleed é uma vulnerabilidade séria que afeta a biblioteca e os softwares de criptografia contidos no OpenSSL. Esta falha permite que informações protegidas sejam roubadas (mesmo em circunstâncias normais de uso) em diversos serviços como web, email, instant messaging (IM) e algumas VPNs (virtual private networks).

Entendendo o Heartbleed e Previnindo-se é um artigo original de Mind Bending



Magnun Leno : Curso de Filosofia GNU - Parte 3

9 de Abril de 2014, 6:17, por Software Livre Brasil - 0sem comentários ainda

Na terceira parte do Curso de Filosofia GNU lhe serão apresentadas as 4 liberdades básicas que um software livre te garante e você irá entender porque a FSF (Free Software Foundation) luta para garantir esta liberdade.

Free Sfotware Word Cloud

Lembrando que este é um conteúdo livre obtido no CDTC.

Curso de Filosofia GNU - Parte 3 é um artigo original de Mind Bending



Magnun Leno : Curso de Filosofia GNU - Parte 2

7 de Abril de 2014, 18:53, por Software Livre Brasil - 0sem comentários ainda

Dando continuidade ao Curso de Filosofia GNU, hoje veremos um pouco porquê o software proprietário é considerado anti ético e anti social. Como podemos ser controlados pela obsolescência programada e como as empresas públicas e privadas gastam bilhões para garantir que suas próprias informações continuarão disponíveis e acessíveis para eles próprios.

Vida de Programador #55

Tirinha #55 "Software Prorietário" do site Vida de Programador

Lembrando que este é um conteúdo livre obtido no CDTC.

Curso de Filosofia GNU - Parte 2 é um artigo original de Mind Bending



Magnun Leno : Curso de Filosofia GNU - Parte 1

7 de Abril de 2014, 7:42, por Software Livre Brasil - 0sem comentários ainda

Olá pessoa! Há muito tempo eu descobri o Projeto CDTC (Centro de Difusão de Tecnologia e Conhecimento), onde fiz alguns cursos na área de tecnologia utilizando softwares livres. O Projeto CDTC visa a promoção e o desenvolvimento de ações que incentivem a disseminação de soluções que utilizem padrões abertos e não proprietários de tecnologia, em proveito do desenvolvimento social, cultural, político, tecnológico e econômico da sociedade brasileira.

GNU

Alguns dos cursos disponibilizados por eles me chamaram muito a atenção pelo simples fato de não ter visto antes um agregado de informações tão bem elaborado sobre certos assunto, um destes assuntos é o curso de Filosofia GNU. Uma vez que o conteúdo do curso é disponibilizado sobre os termos da FDL (GNU Free Documentation License) eu tenho o direito de reproduzi-lo aqui (mantendo os créditos).

Curso de Filosofia GNU - Parte 1 é um artigo original de Mind Bending



Helio Costa - hlegius : O que Test-Driven Development não é

6 de Abril de 2014, 21:00, por Software Livre Brasil - 0sem comentários ainda

Uma dúvida muito pertinente em engenharia de software é sobre Test-Driven Development, TDD para os mais chegados. Há resistência por parte daqueles que não conhece - ora, também não é para menos: o nome remete a Teste e teste remete a um processo da área de Verificação e Validação.

Após ouvir o developer dizer nunca fez e nunca viu “fazerem TDD” e suas argumentações sobre o porque isso não funciona, costumo perguntar uma simples pergunta: para você, o que é TDD ?

Até o momento as respostas foram uma derivação de: “Serve ahn… pra você verificar se seu software funciona (..) serve para evitar bugs”. Ora, não é para menos que você desacredita - e por isso nunca tentou - na ideia.

Redução de bugs é um efeito do TDD e não seu objetivo. Alguns já não definem mais a sigla como Test-Driven Development, mas sim como: Test-Driven Design o que na minha opinião é muito mais descritivo para os “novatos no assunto”. Este novo nome deixa tudo mais claro: TDD é sobre a construção do seu design. Pronto. Só isso.

Partindo do princípio que você saiba o que “design” significa em engenharia de software, aposto que está repensando em tudo que você argumentava (se é que) contra a adoção do estilo de desenvolvimento. Explicado o que é o Test-Driven Development Design há ainda outras barreiras a ser vencidas. Vamos a elas.

1. TDD consome mais tempo

Depende. No início é óbvio que você irá mais devagar, pois estará aprendendo algumas coisas enquanto tenta implementar uma feature:

  • A técnica de codar seguindo TDD;
  • A técnica de codar Testes Unitários de Unidade;
  • O framework de teste;

Codificar seguindo o Test-Driven Design (vou repetir isso inúmeras vezes para fixar), após estudar e pegar prática, você irá produzir mais do que antes. Fato. Além disso, provavelmente o deixará pensando bastante sobre pontos como: como devo começar meu teste? O que devo testar? Como testar? e, até onde testar?

Note que “testar” neste contexto significa: verificar que o método está fazendo o que se espera que seja feito; Apesar de parecer óbvio, é melhor ter isso sempre em mente.

Teste de Unidade é um ponto importantíssimo para conseguir seguir em frente com o Test-Driven Design. Isso dá um post dedicado, por isso podemos discutir sobre o que não é Teste de Unidade.

Ele não “testa” necessariamente todos os métodos da sua classe. Um erro comum é achar que Teste de Unidade significa testar todo getter e setter de uma classe. Errado. Quando estiver testando um método de uma classe e este método chamar outro método de outra classe, você não pode deixar essa chamada acontecer “de verdade”. Aqui entra o assunto Test Double - double, mock e stub. Também digno de outro post. Quando eu digo outro método de outra classe, estou literalmente dizendo que:

class Foo
  def do_something(another_class: MyClassDependency.new)
    # …
    another_class.find_bar(…)
  end
end

o MyClassDependency#find_bar precisa ser “mockado" ou “stubado”, pois devemos sempre partir do princípio de que ele já foi testado isoladamente e o find_bar irá retornar o objeto/valor corretamente. Por isso o Mock/Stub.

Ruby e seu Mock

Ruby à direita e seu double cinza.

Não devemos testar métodos privados diretamente. Dizem que há exceções, realmente podem haver, pois design é questão de experimentar e evoluir, porém eu em particular nunca testei método privado - mesmo em algumas situações eu ter insistido e quase feito.

O motivo é muito simples: devemos encarar nossos métodos privados como versões instáveis da nossa API. Considere toda classe do seu projeto, como uma API: métodos públicos são o canal de comunicação com a classe que tem suas interfaces (nome do método, parâmetros e retorno) estáveis. Já os métodos privados da classe, são nossos métodos instáveis, ou seja, estamos informando ao cliente (outra classe do projeto) que aquele método poderá mudar sua interface de uma versão para a outra sem aviso prévio. Isto não quer dizer que seus métodos privados não serão testados. Muito pelo contrário. Você precisa testar o método público da sua classe que utiliza o método privado em questão. Com isso, você garante não só que seu método instável (privado/protected) está funcionando, mas também que ele está bem relacionado com o(s) método(s) público(s) que o utiliza. E é perfeitamente normal sua classe possuir alguns métodos privados. Não tenha medo de utilizá-los, sempre pensando que um método deve ter apenas uma responsabilidade - um motivo para mudar.

Novamente: Teste de Unidade não deve chamar métodos de classes colaboradoras (igual exemplo acima). Ou seja: não devemos chamar nossa API/abstração de banco de dados, nem aquele Webservice de Pagamento/Notificações, nem o seu Mailer, nem seu Filesystem, etc. Você sempre deverá Mockar ou Stubar essas “dependências” da sua classe.

2. Eu gosto de “Testar” depois.

Há quem diga que já tem em mente o que precisa fazer para aquela feature funcionar e que por isto, prefere fazer o código de produção [1] primeiro e o teste depois.

Essa é fácil: se for para fazer o teste depois, você não estará construindo o design da sua aplicação. Estará perdendo tempo.

Testar depois tem dois problemas: a) perderá a chance de desacoplar suas classes, pois acredite: TDD faz você pensar mais sobre como fazer e isso incrivelmente nos faz mais produtivos, pois você resolverá os problemas de forma mais simples. b) você fará o teste assumindo que sua classe/método está correto e funciona, com isso criará o que chamam de Teste Viciado que em outras palavras quer dizer: você faz seu teste satisfazer seu código de produção, porém seu código de produção não garante que o teste está correto.

Dica simples: não deixe para testar depois. Crie o costume de fazer o teste antes!

[1]: Código de produção é o código que você deploya.

3. Minha equipe/co-workers não tem interesse pelo assunto.

Você não precisa esperar seu chefe instaurar a obrigatoriedade do Test-Driven Design. Não espere que ele saiba das vantagens disso. Aproveite o momento para você começar a espalhar a ideia na equipe.

Recentemente entrei numa equipe que não faz testes de unidade, tão pouco TDD. No começo, fiquei observando a reação das pessoas sobre Test-Driven Design e suas queixas sobre a possibilidade de fazer. Minha meta era em um mês conseguir mostrar o que a técnica de teste poderia resolver nos projetos e o quão empolgante é codificar com Test-First. Passado este um mês, eu já tinha mostrado TDD in Action para três desenvolvedores que além de ficarem convencidos e animados com a ideia, passaram a defendê-la. Eu acredito que mudanças de cultura deste tipo, devem sempre ser bottom-up, dos developers para os gestores. Muito improvável que seu gestor não aprovará a ideia se você se propuser a explicar para que o Test-Driven Design é executado em todo o mundo.

Concluindo

Test-Driven Development Design é sobre como construir seu design de forma simples e desacoplada. Sem bullshits, sem bala de prata ou santo graau. Adotar Test-Driven Development é evoluir sua forma de fazer software de uma forma muito rápida.



Magnun Leno : Servindo Sites Estáticos Com o NGINX

3 de Abril de 2014, 11:05, por Software Livre Brasil - 0sem comentários ainda

Três fatos me deixaram muito satisfeitos ao migrar para o Pelican, conforme informado nesses outros artigos. O primeiro deles foi não ter que utilizar mais nenhum editor WYSIWYG (hat you see is what you get), agora escrevo apenas no VIM. O segundo deles foi utilizar o Pelican em conjunto com o Git, tanto para versionamento de artigos, configurações, temas, plugins e etc, quanto para fazer publicações, através do Git Hooks. Por último, mas não menos importante, foi o fato de finalmente parar de o usar o Apache e migrar para o NGINX!

NGINX Logo

Lembrando que tudo que será apresentado neste artigo é usável (sob certos ajustes) tanto para ambientes de produção (para o servidor que "roda" seu site) quando para ambientes de desenvolvimento (sua estação de trabalho).

Servindo Sites Estáticos Com o NGINX é um artigo original de Mind Bending



Magnun Leno : Lançado o Gnome 3.12

26 de Março de 2014, 12:26, por Software Livre Brasil - 0sem comentários ainda

Hoje, dia 26 de Março de 2014, o foi lançado o GNOME 3.12, o próximo milestone da série GNOME 3. Esta release contém diversas melhorias, atualizações, novas funcionalidades, bem como diversas mudanças na API para desenvolvedores. Já está disponível a Press Release e o Release Notes.

GNOME 3.12 Window Selection

Citando Matthias Clasen, da Equipe de Lançamento do GNOME

Esta é uma versão emocionante para GNOME, traz muitas novidades e melhorias, incluindo pastas de aplicativos, melhorias no system status e suporte a monitores de alta resolução.

Lançado o Gnome 3.12 é um artigo original de Mind Bending



Farid Abdelnour : Série de vídeos Cerratinga

24 de Março de 2014, 12:14, por Software Livre Brasil - 0sem comentários ainda

O site Cerratinga é uma iniciativa do Instituto Sociedade, População e Natureza – ISPN, em parceria com a Cooperativa Central do Cerrado, com a ong Agendha e com a Bodega de Produtos Sustentáveis do Bioma Caatinga. O site busca divulgar e sensibilizar a população a respeito do grande potencial de uso dos recursos da biodiversidade do Cerrado e da Caatinga. Funciona também como ferramenta de apoio para iniciativas produtivas comunitárias, que promovem a geração de renda e a inclusão social.

Nessa série de vídeos, a Cerratinga busca disseminar o conhecimento acerca dos frutos nativos da Caatinga e do Cerrado, mostrando todo o processo de beneficiamento, desde a coleta até o produto pronto. Os dois primeiros vídeos foram sobre o Baru e o Maracujá da Caatinga.


Cliente: Instituto Sociedade, População e Natureza
Serviços: produção, direção e direção de fotografia



Farid Abdelnour : Logo Prosas Paridas

24 de Março de 2014, 12:00, por Software Livre Brasil - 0sem comentários ainda

Logo para o coletivo Eu Livre – Educação e Saúde, usada nos encontros sobre parto e na série de vídeo Prosas Paridas – Relatos sobre Gestação, Parto e Maternidade. Feita com Inkscape.

prosas_paridas



Magnun Leno : Temas no Pelican

17 de Março de 2014, 13:46, por Software Livre Brasil - 0sem comentários ainda

Muito bem, agora que temos nosso site com o conteúdo migrado, e os plugins ativados está na hora de definir a aparência do nosso site e de quebra 75% da funcionalidade do seu site. Sim isso mesmo, o tema que você adota para o Pelican influencia (e muito) as funcionalidades do seu site, como por exemplo, o sistema de comentários utilizado, onde serão apresentadas os ícones das redes sociais, onde e como serão apresentadas as tags, categorias, arquivos e tudo mais.

Pelican

Não sabe do que eu estou falando? Então, antes de prosseguir, descubra o que é o Pelican, como instalá-lo, como configurá-lo, como migrar artigos antigos do Wordpress e quais plugins utilizar.

Temas no Pelican é um artigo original de Mind Bending



Tags deste artigo: archlinux planet planeta