From 9c70507ce73635da4d0de31605344b9bc45327c4 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 12 Nov 2015 15:33:29 -0200 Subject: Mais screencasts --- aulas/ambientes.rst | 143 ++++++++++++++++++++++++++++++++++++++++++------ aulas/licencas.rst | 1 + aulas/reinventando.rst | 6 ++ aulas/seguranca.rst | 17 ++++++ aulas/versionamento.rst | 12 ++-- 5 files changed, 158 insertions(+), 21 deletions(-) (limited to 'aulas') diff --git a/aulas/ambientes.rst b/aulas/ambientes.rst index 57eebef..7499b02 100644 --- a/aulas/ambientes.rst +++ b/aulas/ambientes.rst @@ -1,43 +1,104 @@ 2. Ambientes de desenvolvimento =============================== +2.1 - Ambiente básico +--------------------- + +2.1 - Sistemas Operacionais +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + - Neste curso será adotado o sistema operacional GNU/Linux como plataforma básica de trabalho. - Porém, o conteúdo do curso pode ser facilmente adaptado para outros sistemas, como é o caso do MacOSX. - Se você usa Windows, recomendamos: - A criação de uma máquina virtual em GNU/Linux usando o Vagrant de acordo com a aula de `DevOps `_. - Ou o uso do Cygwin juntamente com seu editor de textos favorito. -2.1 - Ambiente básico e a guerra dos editores de texto ------------------------------------------------------- +2.1 - O essencial +~~~~~~~~~~~~~~~~~ -2.1 - Ambiente básico -~~~~~~~~~~~~~~~~~~~~~ +Desktop sem distrações: o que é o mínimo que você precisa? -- Desktop sem distrações: o que é o mínimo que você precisa? - Editor de texto ou IDE: produz código. - Emulador de terminal: execução de tarefas. - Navegador web: ambiente de teste. +Roteiro do screencast: + +#. Exibir um desktop básico e limpo. +#. Discorrer sobre cores de fundo, teclas de atalho e abas de terminal e editor de texto. + 2.1 - Editores ~~~~~~~~~~~~~~ - Vantagens dos IDEs (NetBeans, Eclipse, Aptana, etc): - Facilidade de uso. - Ambiente de desenvolvimento integrado. -- Vantagens dos editores de texto (Atom, Emacs, VIM, Notepad++, gedit etc): +- Vantagens dos editores de texto (Atom, Emacs, VIM, Notepad++, Gedit etc): - Simplicidade. - Performance. +Roteiro do screncast: + +#. Abrir alguns editores de texto e IDEs e seus sites. + 2.2 - Emulador de terminal ~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Despacha comandos para sistemas. -- Comandos podem ser automatizados. +- Despacha comandos textuais. +- Comandos podem ser automatizados em scripts. +- Comandos básicos de UNIX usados no curso. +- Atalhos do terminal (histórico de comandos, limpeza da tela e movimentos do cursor). +- Shells: bash, zsh, php, python, rvm, node, etc! + +Roteiro do screencast: + +:: + + # Navegação + pwd + ls + ls / + ls .. + ls ~ + cd + cd - + cd .. + cd / + + # Criando e apagando arquivos e pastas + touch arquivo + mkdir pasta + rm arquivo + rmdir pasta + + # Movendo e copiando arquivos + cp arquivo pasta + mv pasta pasta.20151112 + rm arquivo + + # Criando atalhos + ln pasta.20151112 pasta.latest + ls -l + + # Procurando ajuda! + man ls + + # Quem sou eu? + whoami + + # Executando com permissões de superusuário + sudo whoami + + # Instalando um programa + sudo apt-get install git 2.3 - Fluxo de trabalho -~~~~~~~~~~~~~~~~~~~~~~~ +----------------------- + +2.3 - Básico +~~~~~~~~~~~~ -- Diário de bordo: de um arquivo de texto a um blog sobre desenvolvimento. +- Diário de bordo: de um arquivo de texto a um blog sobre desenvolvimento (o próprio blogático, no nosso caso!). - Organização de pastas. - Backups. @@ -45,18 +106,49 @@ Roteiro do screencast: :: - # Criando uma pasta para projetos - mkdir ~/projetos + # Criando uma pasta para projetos + mkdir ~/projetos - # Criando a pasta do nosso projeto - mkdir ~/projetos/blogatico + # Criando a pasta do nosso projeto + mkdir ~/projetos/blogatico + +2.3 - Arquivos básicos +~~~~~~~~~~~~~~~~~~~~~~ + +* README: em Markdown (.md), reStructuredText (.rst), texto simples (.txt), etc. +* ChangeLog: opcional e pode ser gerado automaticamente. +* Makefile ou outro arquivo dependendo do método de construção do software (Rakefile, setup.py, etc). + +Roteiro do screencast: + +:: # Criando a estrutura básica do seu projeto cd ~/projetos/blogatico touch README.md ChangeLog TODO.md -2.4 - Scripts e templates -------------------------- +2.3 - Sistemas de tickets (tarefas) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* Kanban. +* Arquivo TODO em formatos plaintext, Markdown, etc. +* Um arquivo por tarefa em pastas `open` e `closed`. +* Taskwarrior ou similar. +* Aplicação própria (Trac, etc) +* TODOs and FIXMEs ao longo do código (em última instância). + +Roteiro do screncast: + +:: + + gedit README.md TODO.md + +Imagens: + +* Diversos sistemas de tickets. + +2.3 - Scripts e templates +~~~~~~~~~~~~~~~~~~~~~~~~~ - Configurações, scripts e atalhos de produtividade. - Templates de desenvolvimento. @@ -66,7 +158,24 @@ Roteiro do screencast: * Porém tem um custo de criação e de manutenção. * Existem customizações disponíveis e prontas para uso. -2.5 - Atividades +Roteiro do screencast: + +:: + + # Criando um script! + mkdir bin + touch bin/build + + # Não funciona sem permissão de execução! + ./bin/build + + # Agora vai! + chmod +x bin/build + ./bin/build + + gedit bin/build + +2.4 - Atividades ---------------- #. Teste diversos editores de textos e IDEs disponíveis para sua plataforma de desenvolvimento. Avalie cada um deles em termos de performance, funcionalidades, facilidade de uso e adaptação. A preferência pela plataforma de desenvolvimento varia muito de pessoa para pessoa: tente descobrir a sua! diff --git a/aulas/licencas.rst b/aulas/licencas.rst index d56b8af..61de438 100644 --- a/aulas/licencas.rst +++ b/aulas/licencas.rst @@ -132,6 +132,7 @@ Roteiro do screencast: :: + cd ~/projetos/blogatico wget https://www.gnu.org/licenses/gpl.txt -O LICENSE.txt 3.6 Atividades diff --git a/aulas/reinventando.rst b/aulas/reinventando.rst index d27f40c..16086d4 100644 --- a/aulas/reinventando.rst +++ b/aulas/reinventando.rst @@ -23,3 +23,9 @@ Hora de converter nosso projeto blogático para uma plataforma com mais funciona 6.5 - Documentação: lendo e escrevendo -------------------------------------- + +Roteiro do screencast: + +:: + + sudo apt-get install ttyrec diff --git a/aulas/seguranca.rst b/aulas/seguranca.rst index 103b25b..cce1689 100644 --- a/aulas/seguranca.rst +++ b/aulas/seguranca.rst @@ -13,6 +13,23 @@ 6.3 - Princípio das permissões mínimas -------------------------------------- +* Permissões de arquivos são propriedades no sistema de arquivo! Elas não são necessariamente preservadas com a cópia de arquivos entre sistemas! + +Roteiro do screencast: + +:: + + # Vendo as permissões e a posse de arquivos e pastas + ls -l projetos + + # Mudando as permissões de um arquivo + touch cofrinho + chmod 000 cofrinho + chmod 600 cofrinho + + # Mudando a posse de arquivos e pastas + chown + 6.4 - Criptografia básica ------------------------- diff --git a/aulas/versionamento.rst b/aulas/versionamento.rst index a2324a1..63b18b2 100644 --- a/aulas/versionamento.rst +++ b/aulas/versionamento.rst @@ -77,9 +77,8 @@ Roteiro do screencast: :: - cd ~/projetos/blogatico - git config --global user.name "Seu Nome" - git config --global user.email "seu@email" + git config --global user.name "Seu Nome" + git config --global user.email "seu@email" 4.3 - Repositórios ~~~~~~~~~~~~~~~~~~ @@ -108,7 +107,7 @@ Roteiro do screencast: :: - gedit README.md # edite seu arquivo + gedit README.md # edite seu arquivo git status git add README.md # em seguida edite mais um pouco git status @@ -145,6 +144,7 @@ Roteiro do screencast: :: + cd ~/projetos/blogatico git log git cola gitk @@ -178,6 +178,7 @@ Roteiro do screencast: :: + cd ~/projetos/blogatico git branch develop git checkout develop git commit @@ -200,6 +201,7 @@ Roteiro do screencast: :: + cd ~/projetos/blogatico git flow init git flow feature start doc @@ -215,6 +217,7 @@ Roteiro do screencast: :: # No repositorio + cd ~/projetos/blogatico git submodule add https://github.com/dhg/Skeleton skeleton git commit -a -m "Adiciona skeleton" @@ -246,6 +249,7 @@ Roteiro do screencast: #. Instale o git. #. Crie uma conta do `Github `_ ou no `Gitlab `_. #. Faça um pequeno site com o Skeleton. +#. Bônus: git log to ChangeLog! Referências ----------- -- cgit v1.2.3