SlideShare uma empresa Scribd logo
Software Livre dentro das possibilidades acadêmicas
Tudo tem um começo...
E um fim que queremos evitar... Head Hunter 5 anos pra isso?
A universidade é um espaço para aprender e experimentar...
Mas com pouco tempo de aula vão perceber... Queria achar uma coisa  legal p/ fazer.... Já passou em Cálculo?
Mostrar como o  Sofware Livre  pode ajudar a entender algumas matérias na graduação e como isso pode te ajudar no futuro.
Antes de focarmos em argumentos técnicos, precisamos compreender o conceito sobre as liberdades essenciais para um sofware ser considerado livre. 0. A liberdade para executar o programa, para qualquer propósito 1.  A liberdade de estudar como o programa funciona,  e adaptá-lo para as suas necessidades  2. A liberdade de redistribuir, inclusive vender, cópias de modo que você possa ajudar ao seu próximo 3.  A liberdade de modificar o programa , e liberar estas modificações, de modo que toda a comunidade se beneficie
E toda jornada tem um começo... É preciso andar por onde a estrada vai de modo a unir o que você aprende dentro da universidade com o que é praticado fora dela.
A lista de áreas não é pequena... ...nem as soluções oferecidas. FPGA, SoC, .. . Dataware House Banco de Dados Sistemas Embarcados Compiladores Virtualização Jogos Simulação Web Escalabilidade Sistemas de comunicação Sistemas Operacionais RTOS Arquitetura de Processadores CAD Drivers Office* Servidores GUI
Como eu posso  começar então?
A primeira parte diz respeito a familiarização com as ferramentas básicas.
Pré-requisito 1) Instalar alguma distribuição GNU/Linux. 2) Se familiarizar com a interface da linha de comando.
Nos primeiro semestres, nas parte que envolvem software temos: Introdução a Programação
Estrutura de Dados
Programação Orientada a Objeto (POO) A primeira coisa é um  compilador  para executar seus testes. Vale a pena estudar e conhecer as opções do  GCC . A segunda coisa é um  depurador  para executar seus testes. Vale a pena estudar e conhecer as opções do  GDB .
G NU  C ompiler  C ollection  gcc exemplo.c -o exemplo.exe Executável do compilador  (gcc ou g++) Código-fonte (lembre-se da extensão) Este parâmetro idica um nome de saída, se nada for definido o padrão é a.out Arquivo de saída
G NU  C ompiler  C ollection  gcc  -Wall   -ggdb  exemplo.c -o exemplo.exe  Habilita todas as  warnings  que alguns usuários consideram questionáveis e que são fáceis de evitar (ou modificar para previnir) Gera as informações de  debug  para o GDB
#include <stdio.h> int main(int argc, char *argv[]) { printf(“Olá Mundo!\n”); return 0; } $ gcc  -Wall   -ggdb  exemplo.c -o exemplo.exe  $ ./exemplo.exe  Olá Mundo! Compilar o programa: E executar o código:
E se alguma coisa der errado? Se você rodar o programa e ele não funcionar da forma como você pretendia?
G NU  D e b ugger  gdb exemplo.exe Executável do depurador  Arquivo executável (ELF)
$ gdb -q exemplo.exe Reading symbols from /home/maluta/exemplo.exe...done. G NU  D e b ugger  (gdb) l 1  #include <stdio.h> 2 3  int main(int argc, char *argv[]) { 4 5 6  printf(&quot;Olá Mundo!\n&quot;); 7  return 0; 8  } (gdb) r Starting program: /home/maluta/exemplo.exe Olá Mundo! http://www.coding.com.br/programacao/basico-de-ponteiros-com-o-gdb/
Além disso é preciso entender ferramentas que não se aprendem na escola...
Dominar algum software que faça o  controle de versão  do seu código.  Existem vários, vale a pena entender pelo menos: GIT [git] Mercurial [hg] Bazaar [bzr] Dominar algum software que faça a  automatização na construção  do seu executável.  Existem vários, vale a pena entender pelo menos: autotools cmake scons
Python   Bônus ex. Parser Visualização
# -*- coding: utf-8 -*- from pylab import * N = 100 start = 0 end = 1 A = rand() B = rand() x =  linspace (start,end,N) y = A*x + B y +=  randn (N)/10 p =  polyfit (x,y,1) figure() title(' Regressao linear ') plot(x,y,' o ',label='A=%.2f, B=%.2f' % (A,B)) plot(x,polyval(p,x),'-',label= 'A =%.2f,  B= %.2f' % tuple(p)) legend(loc=' bes t') show() Um exemplo comum é fazer uma  regressão linear  (muito utilizado nas atividades práticas de física)  $   python reglin.py
 
Lá pela metade do curso novidades que irão refinar seu conhecimento aprendido na base.  Design Patterns Banco de Dados Redes Sistemas Operacionais
Design Patterns Sua utilização na maioria dos casos será intuitiva, o quanto antes você se acostumar com a prática melhor será seu código. Os padrões de desenvolvimento são utilizados em programas que utilizam Interface Gráfica, acesso a Banco de Dados, ... Mas também em código estruturais, como o  kernel .
Sistemas Operacionais Os livros tradicionais que abordam S.O são teóricos, abordam o conceito mas  não  a prática. O  kernel  Linux ao longo do tempo foi sendo aprimorado, são boas fontes de informação: Source :-)
Documentation/
Linux Kernel Maillist (lkml)
Livro: Linux Kernel Development
(Robert Love)
Livro: Essencial Linux Device Drivers
(Sreekrishnan Venkateswaran)
Banco de Dados Conheçer os  wrappers  de acesso, novamente o Python é um começo. MySQL  é um bom começo, mas infelizmente a industria é voltada  também as soluções proprietárias BD orientado a objeto é uma promessa.

Mais conteúdo relacionado

ODP
Workshop Python.1
ODP
Workshop Python.2
PPTX
Automação de Aplicativos: Scripting com Python
PDF
Introdução à Programação em Python
PDF
Trabalho sobre a linguagem Python
PPT
Introdução ao Deep Learning com o TensorFlow
PPT
Rastreamento 3D de objetos para realidade virtual
PDF
Aplicações não convencionais de grafos
Workshop Python.1
Workshop Python.2
Automação de Aplicativos: Scripting com Python
Introdução à Programação em Python
Trabalho sobre a linguagem Python
Introdução ao Deep Learning com o TensorFlow
Rastreamento 3D de objetos para realidade virtual
Aplicações não convencionais de grafos

Mais procurados (19)

PPTX
Trabalho de Paradigmas Da Linguagem De Programação - Python
ODP
Matando o Java e Mostrando o Python
ODP
Python para Programadores
PDF
Linguagens de Script: Caso de Estudo Lua
ODP
Grafos - Uma abordagem divertida - Latinoware 2014
DOCX
Python, CPython, Pythonico, Cython
PDF
Linguagem c wellington telles - aula 02
PDF
PPTX
Linguagem de Programação Java
ODP
PDF
Programação Estruturada 2 - Curso Completo
PPTX
Programação Concorrente - Aula 02
PPTX
Tutorial pascal zim
PPT
Apresentando a Linguagem de Programação Python
PPTX
Melhorias na interface do Management Studio
PDF
Introdução a linguagem Python
PPT
Estruturas
PDF
Estrdado materia-06-alocacao-de-memoria1
Trabalho de Paradigmas Da Linguagem De Programação - Python
Matando o Java e Mostrando o Python
Python para Programadores
Linguagens de Script: Caso de Estudo Lua
Grafos - Uma abordagem divertida - Latinoware 2014
Python, CPython, Pythonico, Cython
Linguagem c wellington telles - aula 02
Linguagem de Programação Java
Programação Estruturada 2 - Curso Completo
Programação Concorrente - Aula 02
Tutorial pascal zim
Apresentando a Linguagem de Programação Python
Melhorias na interface do Management Studio
Introdução a linguagem Python
Estruturas
Estrdado materia-06-alocacao-de-memoria1
Anúncio

Semelhante a Calourada2010 (20)

PDF
C e assembly x86 64 v0.33.9
PDF
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
PPT
Curso de Introdução ao Software Livre - Aula de 23/09/2009
PDF
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
PDF
Programando Software Livre em C
PPT
SO-aula01diversidadeLgbtqiatbsjashjsnhjhjankjns.ppt
PDF
O_Fantastico_Mundo_da_Linguagem_C em pdf.pdf
PDF
O mundo-da-linguagem-c
PDF
O fantc3a1stico-mundo-da-linguagem-c
PDF
PDF
PPTX
Apresentação da Disciplina de Software Livre
PDF
1º IoT Day - O que é Linux Embarcado
PDF
Linguagem c
PDF
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
PDF
Inf sis opeinf_semana6
PDF
Fascículo Sistema Operacional Linux
PPT
aula 2. ppt LINUX - SISTEMA OPERACIONAL.
PDF
Linux em Sistemas Embarcados - SACTA 2010 - UNIPAMPA
ODP
FISL11: Análise de binários ELF
C e assembly x86 64 v0.33.9
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
Curso de Introdução ao Software Livre - Aula de 23/09/2009
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Programando Software Livre em C
SO-aula01diversidadeLgbtqiatbsjashjsnhjhjankjns.ppt
O_Fantastico_Mundo_da_Linguagem_C em pdf.pdf
O mundo-da-linguagem-c
O fantc3a1stico-mundo-da-linguagem-c
Apresentação da Disciplina de Software Livre
1º IoT Day - O que é Linux Embarcado
Linguagem c
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Inf sis opeinf_semana6
Fascículo Sistema Operacional Linux
aula 2. ppt LINUX - SISTEMA OPERACIONAL.
Linux em Sistemas Embarcados - SACTA 2010 - UNIPAMPA
FISL11: Análise de binários ELF
Anúncio

Mais de Tiago Maluta (6)

PDF
Leite de Soja
PDF
Hardware Open Source
PDF
Internet e o Genero Textual
PDF
Consideracoes sobre Ética e Computação
PPS
A internet colaborativa e o Software Livre
Leite de Soja
Hardware Open Source
Internet e o Genero Textual
Consideracoes sobre Ética e Computação
A internet colaborativa e o Software Livre

Último (20)

PDF
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
PPTX
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
PDF
Historia da Gastronomia Mundial por Daianna Marques dos Santos
PDF
Combate a Incêndio - Hidrantes,Mangotinhos, Mangueiras de Incêndio, Acessóri...
PPT
Elementos constituintes do esquema argumentativo (tese, argumento, tema, pont...
PPTX
Programa Nacional de Saúde do Adulto.pptx
PPTX
Slides Lição 8, Betel, Jesus e a Mulher Adúltera, 3Tr25.pptx
DOCX
PLANEJAMENTO QUINZENAL - 18.08.2025 à 29.08.2025 - 2ºANO - PROFESSORA PATRÍCI...
PDF
O retorno a origem (islã Islamismo)
PDF
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
PPTX
Fronteiras e soberania..........................pptx
PPTX
sistema nervoso aula 1 faculdade uniplam
PPT
NÚCLEO INTERFÁSICO E DIVISÃO CELULAR.ppt
PPTX
2. A Cultura do Salão - o fim das trevas.pptx
PDF
Combate a Incêndio - Iluminação de Emergência e Sinalização de Segurança por ...
PPTX
Educação Especial na perspectiva Inclusiva 02.pptx
PDF
cadernodoprofessor20142017vol2baixalceducfisicaef6s7a-170409213016.pdf manual...
PPT
Caderno de Boas Práticas dos Professores Alfabetizadores.ppt
PDF
HORÁRIO GERAL SIGAA 2025_PRÉVIA_SIGAA-1.pdf
PDF
EXPRESSÕES IDIOMÁTICAS - LÍNGUA PORTUGUESA
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
Historia da Gastronomia Mundial por Daianna Marques dos Santos
Combate a Incêndio - Hidrantes,Mangotinhos, Mangueiras de Incêndio, Acessóri...
Elementos constituintes do esquema argumentativo (tese, argumento, tema, pont...
Programa Nacional de Saúde do Adulto.pptx
Slides Lição 8, Betel, Jesus e a Mulher Adúltera, 3Tr25.pptx
PLANEJAMENTO QUINZENAL - 18.08.2025 à 29.08.2025 - 2ºANO - PROFESSORA PATRÍCI...
O retorno a origem (islã Islamismo)
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
Fronteiras e soberania..........................pptx
sistema nervoso aula 1 faculdade uniplam
NÚCLEO INTERFÁSICO E DIVISÃO CELULAR.ppt
2. A Cultura do Salão - o fim das trevas.pptx
Combate a Incêndio - Iluminação de Emergência e Sinalização de Segurança por ...
Educação Especial na perspectiva Inclusiva 02.pptx
cadernodoprofessor20142017vol2baixalceducfisicaef6s7a-170409213016.pdf manual...
Caderno de Boas Práticas dos Professores Alfabetizadores.ppt
HORÁRIO GERAL SIGAA 2025_PRÉVIA_SIGAA-1.pdf
EXPRESSÕES IDIOMÁTICAS - LÍNGUA PORTUGUESA

Calourada2010

  • 1. Software Livre dentro das possibilidades acadêmicas
  • 2. Tudo tem um começo...
  • 3. E um fim que queremos evitar... Head Hunter 5 anos pra isso?
  • 4. A universidade é um espaço para aprender e experimentar...
  • 5. Mas com pouco tempo de aula vão perceber... Queria achar uma coisa legal p/ fazer.... Já passou em Cálculo?
  • 6. Mostrar como o Sofware Livre pode ajudar a entender algumas matérias na graduação e como isso pode te ajudar no futuro.
  • 7. Antes de focarmos em argumentos técnicos, precisamos compreender o conceito sobre as liberdades essenciais para um sofware ser considerado livre. 0. A liberdade para executar o programa, para qualquer propósito 1. A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades 2. A liberdade de redistribuir, inclusive vender, cópias de modo que você possa ajudar ao seu próximo 3. A liberdade de modificar o programa , e liberar estas modificações, de modo que toda a comunidade se beneficie
  • 8. E toda jornada tem um começo... É preciso andar por onde a estrada vai de modo a unir o que você aprende dentro da universidade com o que é praticado fora dela.
  • 9. A lista de áreas não é pequena... ...nem as soluções oferecidas. FPGA, SoC, .. . Dataware House Banco de Dados Sistemas Embarcados Compiladores Virtualização Jogos Simulação Web Escalabilidade Sistemas de comunicação Sistemas Operacionais RTOS Arquitetura de Processadores CAD Drivers Office* Servidores GUI
  • 10. Como eu posso começar então?
  • 11. A primeira parte diz respeito a familiarização com as ferramentas básicas.
  • 12. Pré-requisito 1) Instalar alguma distribuição GNU/Linux. 2) Se familiarizar com a interface da linha de comando.
  • 13. Nos primeiro semestres, nas parte que envolvem software temos: Introdução a Programação
  • 15. Programação Orientada a Objeto (POO) A primeira coisa é um compilador para executar seus testes. Vale a pena estudar e conhecer as opções do GCC . A segunda coisa é um depurador para executar seus testes. Vale a pena estudar e conhecer as opções do GDB .
  • 16. G NU C ompiler C ollection gcc exemplo.c -o exemplo.exe Executável do compilador (gcc ou g++) Código-fonte (lembre-se da extensão) Este parâmetro idica um nome de saída, se nada for definido o padrão é a.out Arquivo de saída
  • 17. G NU C ompiler C ollection gcc -Wall -ggdb exemplo.c -o exemplo.exe Habilita todas as warnings que alguns usuários consideram questionáveis e que são fáceis de evitar (ou modificar para previnir) Gera as informações de debug para o GDB
  • 18. #include <stdio.h> int main(int argc, char *argv[]) { printf(“Olá Mundo!\n”); return 0; } $ gcc -Wall -ggdb exemplo.c -o exemplo.exe $ ./exemplo.exe Olá Mundo! Compilar o programa: E executar o código:
  • 19. E se alguma coisa der errado? Se você rodar o programa e ele não funcionar da forma como você pretendia?
  • 20. G NU D e b ugger gdb exemplo.exe Executável do depurador Arquivo executável (ELF)
  • 21. $ gdb -q exemplo.exe Reading symbols from /home/maluta/exemplo.exe...done. G NU D e b ugger (gdb) l 1 #include <stdio.h> 2 3 int main(int argc, char *argv[]) { 4 5 6 printf(&quot;Olá Mundo!\n&quot;); 7 return 0; 8 } (gdb) r Starting program: /home/maluta/exemplo.exe Olá Mundo! http://www.coding.com.br/programacao/basico-de-ponteiros-com-o-gdb/
  • 22. Além disso é preciso entender ferramentas que não se aprendem na escola...
  • 23. Dominar algum software que faça o controle de versão do seu código. Existem vários, vale a pena entender pelo menos: GIT [git] Mercurial [hg] Bazaar [bzr] Dominar algum software que faça a automatização na construção do seu executável. Existem vários, vale a pena entender pelo menos: autotools cmake scons
  • 24. Python Bônus ex. Parser Visualização
  • 25. # -*- coding: utf-8 -*- from pylab import * N = 100 start = 0 end = 1 A = rand() B = rand() x = linspace (start,end,N) y = A*x + B y += randn (N)/10 p = polyfit (x,y,1) figure() title(' Regressao linear ') plot(x,y,' o ',label='A=%.2f, B=%.2f' % (A,B)) plot(x,polyval(p,x),'-',label= 'A =%.2f, B= %.2f' % tuple(p)) legend(loc=' bes t') show() Um exemplo comum é fazer uma regressão linear (muito utilizado nas atividades práticas de física) $ python reglin.py
  • 26.  
  • 27. Lá pela metade do curso novidades que irão refinar seu conhecimento aprendido na base. Design Patterns Banco de Dados Redes Sistemas Operacionais
  • 28. Design Patterns Sua utilização na maioria dos casos será intuitiva, o quanto antes você se acostumar com a prática melhor será seu código. Os padrões de desenvolvimento são utilizados em programas que utilizam Interface Gráfica, acesso a Banco de Dados, ... Mas também em código estruturais, como o kernel .
  • 29. Sistemas Operacionais Os livros tradicionais que abordam S.O são teóricos, abordam o conceito mas não a prática. O kernel Linux ao longo do tempo foi sendo aprimorado, são boas fontes de informação: Source :-)
  • 32. Livro: Linux Kernel Development
  • 34. Livro: Essencial Linux Device Drivers
  • 36. Banco de Dados Conheçer os wrappers de acesso, novamente o Python é um começo. MySQL é um bom começo, mas infelizmente a industria é voltada também as soluções proprietárias BD orientado a objeto é uma promessa.
  • 37. Redes Primeiro terreno que o Linux se tornou popular. Servidor de páginas (ex:. Apache) Servidores de Impressão (ex.: CUPS) Servidores de Arquivos (ex.: proftpd) O NFS ( Network File System ) que além se ser uma das melhores maneiras de compartilhar arquivos é utilizado no desenvolvimento de sistemas embarcados e em algumas implementações de clusters . O 9P ( Plan 9 Filesystem Protocol ) utilizado no Plan9 O sistemas distribuídos criaram situações onde outras soluções foram propostas, No âmbito geral conhecer CORBA e o D-BUS Servidores de Email (ex.: postfix)
  • 38. Tem muitas coisa para nos manter entretidos... E olha que faltou falar de muita coisa...
  • 40. A universidade vai te ensinar pouca coisa sobre software livre.
  • 41. Tente aliar os dois lados: matérias vs. aprendizado prático
  • 42. Tenha o espírito hacker.
  • 43. Tenha paciência, não é do dia p/ noite que você vai entender as coisas.
  • 44. www.twitter.com/maluta Obrigado pela atenção www.coding.com.br Tiago Maluta Imagens utilizadas em http://www.flickr.com/photos/st3f4n/sets/72157616350171741/