Contribuindo e criando software livre

Vitor Mattos

Fotografem, comentem, twittem!

@VitorMattosRJ

Quem sou eu?

Desenvolvedor PHP desde 2003
Amante de opensource
Evangelista PHP
PHP Zend Certified Engineer ( ZEND024235 )
PHPRio ( https://telegram.me/phprio )

CTO Lyseon Tech
Redes sociais: ( VitorMattos ou VitorMattosRJ )

A Lyseon Tech é uma cooperativa de trabalho com modelo de gestão democrática, segura e eficiente composta por profissionais de T.I. altamente qualificados e experientes no mercado. Prezamos por apresentar vantagens, tanto para o cooperado como para as empresas parceiras.

Cronograma

Tentarei ser breve :-D

  • Definições sobre software livre e opensource
  • Porque devo usar software livre?
  • Porque e quando devo contribuir com software livre?
  • Quais os primeiros passos?
  • Como garantir a qualidade do meu código?
  • Qual licença devo usar?
  • Como interagir com outros profissionais?
  • Comunidades, para que servem?

Definições sobre software livre e opensource

Definições sobre software livre e opensource

software
'sɔftwɛəɹ/
substantivo masculino

  1. conjunto de componentes lógicos de um computador ou sistema de processamento de dados; programa, rotina ou conjunto de instruções que controlam o funcionamento de um computador; suporte lógico.
  2. p.met. todo programa armazenado em discos ou circuitos integrados de computador, esp. destinado a uso com equipamento audiovisual.

Definições sobre software livre e opensource

Código-fonte

  1. (source code em inglês) é o conjunto de palavras ou símbolos escritos de forma ordenada, contendo instruções em uma das linguagens de programação existentes, de maneira lógica.

Definições sobre software livre e opensource

Free software

  1. Free software (software livre) é uma expressão utilizada para designar qualquer programa de computador que pode ser executado, copiado, modificado e redistribuído pelos usuários gratuitamente. Os usuários possuem livre acesso ao código-fonte do software e fazem alterações conforme as suas necessidades.

Definições sobre software livre e opensource

Free software

  1. Free software (software livre) é uma expressão utilizada para designar qualquer programa de computador que pode ser executado, copiado, modificado e redistribuído pelos usuários gratuitamente. Os usuários possuem livre acesso ao código-fonte do software e fazem alterações conforme as suas necessidades.

Definições sobre software livre e opensource

O free não é no sentido de gratuito, mas no sentido de ser livre.

 

Não é uma diferença muito óbvia,  por isso tanta confusão.

 

Free software = software livre

Free software != software grátis

ATENÇÃO

AVISO IMPORTANTE

Definições sobre software livre e opensource

Free Software Foundation

  1. A FSF (1995 - Richard Stallman) mantém artigos históricos que abrange a filosofia do software livre e mantém a definição do termo Software Livre, deixando claro quais são as características necessárias para que seja considerado livre.

4 liberdades do software livre

Liberdade nº 0: A liberdade para executar o programa, para qualquer propósito;

Liberdade nº 1: A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades. Acesso ao código-fonte é um pré-requisito para esta liberdade;

Liberdade nº 2: A liberdade de redistribuir de forma que você possa ajudar o seu próximo;

Liberdade nº 3: A liberdade de modificar o programa, e liberar estas modificações, de modo que toda a comunidade se beneficie. Acesso ao código-fonte é um pré-requisito para esta liberdade;

Definições sobre software livre e opensource

Open source

  1. Open source é um termo em inglês que significa código aberto. Isso diz respeito ao código-fonte de um software, que pode ser adaptado para diferentes fins.  O termo foi criado pela OSI (Open Source Initiative) em 1998 e o utiliza sob um ponto de vista essencialmente técnico.

Definições sobre software livre e opensource

Resumindo:

 

O Software Livre implica em não propriedade do software, o Open Source pode ter um dono.

 

Open Source quer dizer apenas que o código fonte é aberto e dependendo do criador, pode ter restrições de uso.

Porque devo usar software livre?

Porque devo usar software livre?

  • Segurança, possibilitando auditoria do software;
  • Democratização do acesso à informação;
  • Evitar de se tornar refém de uma tecnologia proprietária;
  • Ter uma comunidade mundial para auxiliar;
  • Liberdade para usar, copiar, estudar, alterar e distribuir como desejar;
  • Fomenta o trabalho colaborativo;
  • Sustentabilidade econômica;
  • Apresentar para qualquer pessoa o que fizemos;

Porque e quando devo contribuir com software livre?

Porque e quando devo contribuir com software livre?

Sempre!


Este é o nosso currículo que pode ser apresentado a qualquer pessoa

Quais os primeiros passos?

Quais os primeiros passos?

Perfeccionismo pode ser uma desculpa para a procrastinação

 

Perfeição:

substantivo feminino

  1. o mais alto nível numa escala de valores.
  2. excelência no mais alto grau.

O padrão de beleza e perfeição é uma percepção, cada um tem a sua e sempre terá alguém que dirá que não ficou bom, nunca se terá um ponto conclusivo.

A busca pelo perfeito é uma busca sem fim.

Quais os primeiros passos?

Feito e bem feito é melhor do que perfeito.

"O trabalho se expande de modo a preencher o tempo disponível para a sua realização"
Lei de Parkinson

Defina metas, defina prazos, se possível curtos e cuidado com prazos.

Uma sprint de 2 semanas que contém x tarefas, será concluída com no máximo x tarefas.

Se  determinarmos que um entregável vai levar 2 semanas (uma sprint), ele vai levar duas semanas para concluir.

Quais os primeiros passos?

Pense livre,

 

Pense simples.

 

Comece identificando as partes de um projeto que podem ser livres.

 

Empacote as menores partes em projetos livres (composer)

Quais os primeiros passos?

Pense livre,

Participe das decisões técnicas de um projeto, influencie.

Quais os primeiros passos?

Pense simples.

O que já existe de software livre para atender a minha necessidade?

Quais os primeiros passos?

Identifique as partes de um projeto que podem ser livres.

Empacote as menores partes em projetos livres (composer)

Quais os primeiros passos?

Pense simples.

Não complique, outras pessoas podem utilizar o seu código.

Use PSR - PHP Standards Recommendations - PHP-FIG

Como garantir a qualidade do meu código?

Como garantir a qualidade do meu código?

Faça testes!

Como garantir a qualidade do meu código?

Documente minimamente
Crie um README.md
Implemente badges

  • Build Status
  • Coverage Status
  • Total Downloads
  • Latest Stable Version
  • Latest Unstable Version
  • License

Qual licença devo usar?

Qual licença devo usar?

Qual licença devo usar?

Como interagir com outros profissionais?

Como interagir com outros profissionais?

Fork and pull request

Como interagir com outros profissionais?

CONTRIBUTING

Comunidades, para que servem?

Comunidades, para que servem?

Software livre cresce por conta de comunidades que:

  • Produzem, consomem e debatem
  • Avaliam implicações sociais, técnicas e políticas
  • Interação social de alguma forma

Comunidades, para que servem?

Agrupamento de pessoas em prol de um objetivo

Comunidades, para que servem?

E uma comunidade, em teoria, funciona assim desde o começo dos tempos. Quando várias pessoas atuam em prol do benefício de um indivíduo temos a relação de poder e hierarquia , que vai em direção oposta ao conceito de comunidade

 

Comunidades: para que servem?

Comunidades, para que servem?

Quando a intenção é ajudar...

Comunidades, para que servem?

Quando a intenção é ajudar...

Comunidades, para que servem?

Codando e testando

Comunidades, para que servem?

Conteúdo, Documentando, Tradução...

Comunidades, para que servem?

Criando coisas novas

Comunidades, para que servem?

Espalhe seu sentimento

Comunidades, para que servem?

Desafio: Faça a comunidade parte de você. s2

 

Vista esta camisa! :-D

Concluindo...

Juntos somos mais fortes

Perguntas

vitor@lt.coop.br
linkedin.com/in/vitormattos

Contribuindo e criando software livre

By Vitor Mattos

Contribuindo e criando software livre

O que é software livre? Tem diferença entre software livre e open source? Como devo iniciar um projeto de software livre em PHP? Qual licença devo utilizar em meu projeto? Como garantir a qualidade do meu código? Após esta palestra você certamente saberá como criar um projeto livre em PHP. Abordaremos diversas dicas como: PSR, diversos tipos de testes e ferramentas para testes, análise de sintaxe, como documentar um projeto de forma saudável evitando retrabalho, distribuição do seu software, como interagir com outros profissionais. Existem milhares de desenvolvedores PHP pelo Brasil, também temos dezenas de comunidades PHP e de todas estas pessoas, quantas delas contribuem ou já contribuíram para algum projeto livre de alguma forma? Mas enfim, o que é software livre? Tem diferença entre software livre e open source? Como devo iniciar um projeto de software livre em PHP? Qual licença devo utilizar em meu projeto? Como garantir a qualidade do meu código? São muitas perguntas a serem respondidas, nesta talk encontraremos luz

  • 981