]> gitweb.fluxo.info Git - boaspraticas.git/commitdiff
Diversas mudanças nas aulas
authorSilvio Rhatto <rhatto@riseup.net>
Sun, 15 Nov 2015 13:53:29 +0000 (11:53 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Sun, 15 Nov 2015 13:53:29 +0000 (11:53 -0200)
aulas/ambientes.rst
aulas/devops.rst
aulas/licencas.rst
aulas/metodologias.rst
aulas/reinventando.rst
aulas/seguranca.rst
aulas/versionamento.rst

index 1a4f50bb783010a4847b650e9637d9d5d89f0204..d9b8629223052ca0fffabc2a34f870406ce08144 100644 (file)
   - A criação de uma máquina virtual em GNU/Linux usando o Vagrant de acordo com a aula de `DevOps <devops.html>`_.
   - Ou o uso do Cygwin juntamente com seu editor de textos favorito.
 
+2.2 - Adote o GNU/Linux
+~~~~~~~~~~~~~~~~~~~~~~~
+
+* Além de ser livre, o GNU/Linux é um ambiente natural para desenvolvimento.
+* Você não precisa largar de vez seu sistema operacional. Vá aos poucos, começando com uma imagem live.
+* Sugestões: Debian GNU Linux e Ubuntu.
+
 2.1 - O essencial
 ~~~~~~~~~~~~~~~~~
 
-Desktop sem distrações: o que é o mínimo que você precisa?
+Desktop sem distrações: o que é o mínimo que você precisa? No nosso caso, usaremos basicamente:
 
 - Editor de texto ou IDE: produz código.
 - Emulador de terminal: execução de tarefas.
@@ -150,7 +157,7 @@ Roteiro do screencast:
 2.3 - Básico
 ~~~~~~~~~~~~
 
-- Seu desktop funciona como uma bancada de trabalho: mantenha-o sempre arrumado, limpando a sujeira toda a vez que finalizar um trabalho.
+- Seu desktop funciona como uma bancada de trabalho: mantenha-o sempre arrumado, limpando a sujeira toda a vez que finalizar uma tarefa.
 - 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.
@@ -181,8 +188,14 @@ Roteiro do screencast:
   touch README.md ChangeLog TODO.md
   gedit README.md
 
-2.3 - Sistemas de tickets (tarefas)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2.3 - Markdown e texto estruturado
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* Convenções de formatação para arquivos de texto simples.
+* Podem ser facilmente convertidos para outros formatos (html, pdf, epub, por exemplo).
+
+2.3 - Gestão de tarefas (tickets)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 * Kanban.
 * Arquivo TODO em formatos plaintext, Markdown, etc.
@@ -199,6 +212,7 @@ Roteiro do screncast:
 Imagens:
 
 * Diversos sistemas de tickets.
+* https://en.wikipedia.org/wiki/Kanban_board#/media/File:Simple-kanban-board-.jpg
 
 2.3 - Scripts e templates
 ~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -247,12 +261,8 @@ Roteiro do screencast:
 
 #. Crie uma pasta para o seu projeto.
 
-#. Hora de programar!
-
-Referências
------------
+2.5 Referências
+---------------
 
-- `Atom <https://atom.io/>`_.
-- `Lime Text Editor <http://limetext.org/>`_.
-- `Guia Foca Linux – Site Oficial | Site oficial do guia Foca GNU/Linux, baixe gratuitamente! <http://www.guiafoca.org/>`_.
-- `jgm/pandoc-templates · GitHub <https://github.com/jgm/pandoc-templates>`_.
+- `Guia Foca Linux <http://www.guiafoca.org/>`_.
+- `Solarized - Ethan Schoonover <http://ethanschoonover.com/solarized>`_.
index b8df4e00b2996aa7e972f9366e70808f8a8c0142..45ea0c59e35e481242b36828efba7ff8e6f80dee 100644 (file)
@@ -1,40 +1,58 @@
 5. DevOps: desenvolvendo e orquestrando
 =======================================
 
+5.1 - O que é DevOps
+--------------------
+
+* Aproximação da administração de sistemas (sysadmin) com o desenvolvimento.
+* Entregas constantes em ambientes de alta disponibilidade.
+* Foco na automação.
+
+Imagens:
+
+* https://upload.wikimedia.org/wikipedia/commons/b/b5/Devops.svg
+
 5.1 Ambientes reprodutíveis
 ---------------------------
 
 5.2 - Vagrant
 -------------
 
-5.3 - Docker
-------------
+Roteiro do screencast:
 
-5.4 - KVM, chroot e afins
--------------------------
+::
+
+  # Instalando o vagrant
+  sudo apt-get install vagrant
+
+  cd ~/projetos/blogatico
+  vagrant init
+
+5.3 - KVM, docker, chroot e afins
+---------------------------------
 
-5.5 - Integração contínua
+5.4 - Integração contínua
 -------------------------
 
 - Integração contínua usando o `Travis CI <http://travis-ci.org/>`_.
 
-5.6 - Fazendo o deploy
+5.5 - Fazendo o deploy
 ----------------------
 
-- CLI básico (copiar, mover, apagar e permissões).
 - SSH e rsync.
 - Deploy via git.
 
-5.7 Atividades
+5.6 Atividades
 --------------
 
 #. Instale o vagrant.
 #. Crie uma máquina virtual para desenvolver o seu projeto.
 #. Crie uma conta no Travis CI.
 
-Referências
------------
+5.7 - Referências
+-----------------
 
+- `Trilha sonora: Daft Punk - TRON Legacy <https://www.youtube.com/results?search_query=tron+legacy+soundtrack+>`_.
 - `Automatizando a instalação (deploy) e atualização de sites com Git <http://blog.thiagobelem.net/automatizando-a-instalacao-deploy-e-atualizacao-de-sites-com-git/>`_.
 - `Deploy estilo Heroku usando Git – Elton Minetto <http://eltonminetto.net/blog/2013/11/11/deploy-estilo-heroku-usando-git/>`_.
 - `Deploy fácil com git - Dan Jesus <https://danjesus.github.io/blog/deploy-facil-com-git/>`_.
index 61de438e9ffd3d9b22abffe385121166533c11c8..e438e0ee765b60b2269723c3e95b6ff6013f5696 100644 (file)
@@ -1,5 +1,5 @@
-3. Licenciamento
-================
+3. Licenciamento de software
+============================
 
 3.1 - O que é e por quê licenciar?
 ----------------------------------
 * Permite sublicenciamento.
 * Exemplos de software sob esta licença: Ruby on Rails, Node.js e jQuery. 
 
+Imagens:
+
+* Licença MIT.
+
 3.2 - Estilo BSD
 ~~~~~~~~~~~~~~~~
 
   * Desde que o nome dos/as autores não seja usado para promover produtos derivados.
   * Mas exime autores(as) de quaisquer responsabilidade advindas do software.
 
+Imagens:
+
+* Licença BSD.
+
 3.2 - Vantagens e desvantagens
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Vantagens:
 
-* Facilmente legível (licenças pequenas).
+* Facilmente legíveis (licenças pequenas).
 * Flexibilidade: aderência a modelos de negócios.
 
 Desvantagens:
@@ -57,10 +65,10 @@ Desvantagens:
 3.3 - Histórico
 ---------------
 
-* Custom crescente e comodificação do software.
+* Custo crescente e comodificação do software.
 * Ameaça ao "commons" hacker.
 * Free Software Foundation.
-* Licença copyleft "viral": garante as liberdades
+* Licença copyleft "viral": garante as liberdades.
 
 3.3 Quatro liberdades do software livre
 ---------------------------------------
@@ -77,7 +85,7 @@ Exemplo: `licença desta documentação </LICENSE.html>`_.
 
 * GNU GPL: licença padrão.
 * GNU FDL: para documentação.
-* GNU Affero: requer o fornecimento de código fonte.
+* GNU Affero GPL: requer a disponibilização de código fonte por quem roda o software.
 
 3.3 - Open Source versus Free Software
 --------------------------------------
@@ -95,7 +103,7 @@ Exemplo: `licença desta documentação </LICENSE.html>`_.
 
   * Atribuição.
   * Compartilhamento sob a mesma licença.
-  * (Não-)comercial.
+  * Se o trabalho é comercial ou não.
   * Permite ou não trabalhos derivados.
 
 3.5 - Outras licenças
@@ -120,7 +128,7 @@ Exemplo: `licença desta documentação </LICENSE.html>`_.
 3.6 - Licenciando o seu trabalho
 --------------------------------
 
-3.5 - Escolhendo a licença
+3.6 - Escolhendo a licença
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 * Compatibilidade entre licençar (distribuição e linkagem).
@@ -135,8 +143,8 @@ Roteiro do screencast:
     cd ~/projetos/blogatico
     wget https://www.gnu.org/licenses/gpl.txt -O LICENSE.txt
 
-3.6 Atividades
---------------
+3.7 - Atividades
+----------------
 
 #. Escolha uma licença para o seu projeto.
 
@@ -144,8 +152,8 @@ Roteiro do screencast:
 
 #. Bônus: escreva uma pequena licença de software. Isso pode lhe ajudar a entender melhor o que você acha importante numa licença.
 
-Referências
------------
+3.8 - Referências
+-----------------
 
 * `TLDRLegal <https://tldrlegal.com>`_.
 * `Open Source Initiative <http://opensource.org/>`_.
index 603da7e68c40ccf053152655f81fd946f952f8ab..5ed6cc54c5f39f0750700f41b43c2e2a9fd1d852 100644 (file)
 - Foco em Software Livre e Aberto (FOSS).
 - Experimente diversas metodologias, técnicas e ferramentas e monte seu próprio kit!
 
-1.2 - Mitos e verdades do desenvolvimento
------------------------------------------
+Imagens:
+
+* https://upload.wikimedia.org/wikipedia/commons/7/7c/Yin_and_Yang.svg
+* https://www.gnu.org/graphics/meditate.en.html
+
+Link:
+
+* https://www.youtube.com/watch?v=2FQU0WeGSEM
+
+1.1 - O problema fundamental
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-- Dificuldades essenciais e acidentais.
-- Linearidade: pessoa-mês (Lei de Brooks).
-- Métricas: dificuldade de se estimar o tempo gasto.
-- Deterioramento natural do software!
+* O processo criativo não é linear e difícil de colocá-lo numa metodologia de trabalho.
+* Muitos métodos tentam dominar e formatar o fluxo natural de atividades.
+* Queremos técnicas e ferramentas que reduzam o ruído no trabalho, mas que não acarretem na perda de liberdade criativa.
+* Dificuldades essenciais e acidentais (Aristóteles).
 
-1.3 - Metodologias pessoais
+1.2 - Metodologias pessoais
 ---------------------------
 
 Queremos evitar:
@@ -40,10 +49,10 @@ Queremos evitar:
 
 Queremos:
 
-- Simplicidade sem comprometer funcionalidade (KISS).
-- Excelência (melhoria incremental) ao invés de perfeccionismo obssessivo.
+- Simplicidade sem perda de qualidade (KISS).
+- Excelência (melhoria incremental) ao invés de perfeccionismo obsessivo.
 
-1.3 - Metodologias pessoais - Básico
+1.2 - Metodologias pessoais - Básico
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 - Fundamental: fazer fluir a criatividade.
@@ -52,8 +61,9 @@ Queremos:
 - Foco na missão.
 - Fazer o essencial.
 - Método não é lei, é sugestão de caminho. Você descobriu que é multi-tarefas e funciona melhor assim? Ok! :)
+- Mude seus hábitos aos poucos!
 
-1.3 - Metodologias pessoais - Pomodoro
+1.2 - Metodologias pessoais - Pomodoro
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 É uma técnica simples para execução de tarefas:
@@ -65,10 +75,14 @@ Queremos:
 - Pare por um tempo curto (5 minutos, por exemplo).
 - Depois de 4 pomodoros, faça uma pausa mais longa (15 a 30 minutos).
 
-1.4 - Metodologias pessoais - Get Things Done (GTD)
+Imagem:
+
+* `Cronômetro do pomodoro <https://en.wikipedia.org/wiki/Pomodoro_Technique#/media/File:Il_pomodoro.jpg>`_.
+
+1.3 - Metodologias pessoais - Get Things Done (GTD)
 ---------------------------------------------------
 
-É uma técnica para organização do fluxo de tarefas:
+É uma técnica para organização de tarefas / vida.
 
 - Colete: apareceu na sua frente? Coloque para fora da cabeça!
 - Processe.
@@ -77,25 +91,26 @@ Queremos:
 - Faça!
 - Workflow: https://en.wikipedia.org/wiki/Getting_Things_Done#/media/File:GTDcanonical.png
 
-1.5 - Metodologias pessoais - Zen to Done (ZTD)
+1.4 - Metodologias pessoais - Zen to Done (ZTD)
 -----------------------------------------------
 
-- ZTD é um GTD simplificado e mais estruturado.
+ZTD é um GTD simplificado e mais estruturado:
+
 - Tenha uma rotina.
 - Reduza as suas tarefas ao essencial.
 - Comece o dia realizando as tarefas importantes. Não se perca.
 - Sugestão do chef: ZTD com Pomodoro!
 
-1.6 - Metodologias em equipe
+1.5 - Metodologias em equipe
 ----------------------------
 
-1.6 - A Catedral e o Bazar
+1.5 - A Catedral e o Bazar
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 - Eficiência do código aberto.
 - Agile: conjunto de princípios.
 
-1.6 - Metodologias populares
+1.5 - Metodologias populares
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 - Scrum: metodologia de gerenciamento de projetos.
@@ -104,10 +119,10 @@ Queremos:
 - TDD: técnica de desenvolvimento guiada por testes.
 - Híbridação: Scrumban + XP :D
 
-1.7 - Começando um projeto
+1.6 - Começando um projeto
 --------------------------
 
-1.7 - Etapas
+1.6 - Etapas
 ~~~~~~~~~~~~
 
 - Etapa 0: descoberta, brainstorm e levantamento de escopo!
@@ -115,10 +130,10 @@ Queremos:
     - Qual ou quais problemas a serem atacados?
     - Como definir o projeto e seu escopo? O que é e o que não é?
     - Quais soluções possíveis? Qual a escolhida?
-    - A ser realizado em conjunto pel equipe de desenvolvimento e quaisquer partes envolvidas (clientes, por exemplo).
+    - A ser realizado em conjunto pela equipe de desenvolvimento e quaisquer partes envolvidas (clientes, por exemplo).
     - Descrição em alto nível.
 
-- Etapa 1: pesquisa do que já existe: quais projetos abarcam os problemas? No que deixam a desejar?
+- Etapa 1: pesquisa do que já existe: quais soluções abarcam os problemas formulados? No que deixam a desejar?
 - Etapa 2: planejamento inicial: escolha inicial de metodologias, bootstrap, provas de conceito, etc.
 - Etapa 3: aplicar um conjunto de metodologias mas principalmente *realizar* o projeto.
 
@@ -126,7 +141,7 @@ Imagens:
 
 * Diagramas jocosos de problema/solução.
 
-1.8 - Projeto de exemplo
+1.7 - Projeto de exemplo
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
 0. Descoberta:
@@ -143,7 +158,7 @@ Imagens:
 
     * Criar um blog em qualquer lugar e fazer backups na unha? Pouco elegante e não atende a todos os requisitos.
     * Criar um blog em HTML simples e subir manualmente para um servidor? Não, queremos algo entre a web 1.0 e a web contemporânea.
-    * Que tal criarmos um blog gerado estaticamente, isto é, um conjunto de arquivos simples de editar e que são compilados num site que possa ser facilmente enviado para um servidor como qualquer outra aplicação web?
+    * Que tal criarmos um blog gerado estaticamente, isto é, um conjunto de arquivos simples de editar e que são compilados para o formato de site que possa ser facilmente enviado para um servidor como qualquer outra aplicação web?
 
 1. Pesquisa: pesquise pesquise pesquise! O que você encontrou?
 2. Bootstrap:
@@ -167,12 +182,10 @@ Imagens:
 
 #. Para este curso, definimos o nosso projeto de exemplo como sendo um website/blog bem simples. Você pode fazer o mesmo ou então escolher qualquer projeto que queira fazer usando qualquer linguagem de programação e adaptar as atividades propostas nas aulas seguintes de acordo com o seu caso. Sugerimos apenas que você escolhe um nome para o seu projeto, mesmo que temporário! Mas lembre-se: nomes tem poder! :)
 
-#. Pesquise geradores de site estáticos (static site generators). O que você encontrou?
-
 #. Bônus: esboce um documento simples de escopo para o seu projeto. Ele pode ser um importante guia nas fases iniciais.
 
-Referências
------------
+1.9 Referências
+---------------
 
 - `Best coding practices - Wikipedia, the free encyclopedia <https://en.wikipedia.org/wiki/Best_coding_practices>`_.
 - `Best practices for software development projects <http://www.ibm.com/developerworks/websphere/library/techarticles/0306_perks/perks2.html>`_.
@@ -190,3 +203,7 @@ Referências
 - `Manifesto para o desenvolvimento ágil de software <http://www.manifestoagil.com.br/>`_.
 - https://www.mountaingoatsoftware.com/blog/differences-between-scrum-and-extreme-programming
 - http://manifesto.co.uk/kanban-vs-scrum-vs-xp-an-agile-comparison/
+- `Zen e a Arte de Manutenção de Motocicletas <https://pedropeixotoferreira.files.wordpress.com/2014/03/robert-pirsig-zen-e-a-arte-da-manutenc3a7c3a3o-de-motocicletas.pdf>`_.
+- `O Tao da programação <http://www.geocities.ws/worgtal/2002/tao.pdf>`_.
+- `Top Open-Source Static Site Generators - StaticGen <https://www.staticgen.com/>`_.
+- `principles - IndieWebCamp <https://indiewebcamp.com/Principles>`_.
index 1659e30b55ee68b5f3299ea95b17009703e5705d..a0a539dbb15e598ce134c6ce25547f188b65d404 100644 (file)
@@ -14,6 +14,8 @@
 6.2 - Antipatterns
 ------------------
 
+* Linearidade: o mito da pessoa-mês (Lei de Brooks).
+
 6.3 - Inferno de dependências
 -----------------------------
 
@@ -30,3 +32,8 @@ Roteiro do screencast:
 ::
 
   sudo apt-get install ttyrec
+
+6.7 - Referências
+-----------------
+
+* `Versionamento Semântico 2.0.0 <http://semver.org/lang/pt-BR/>`_.
index cce16897bab75eda30f9bb78a6a01683ad8cf652..0e8f21bbcf671713bf7bd7146d7311506fb06b44 100644 (file)
@@ -5,7 +5,9 @@
 -----------------------------------------
 
 * Criptografia é só uma parte das práticas seguras.
-* Testes de penetração: inverta os papéis: e se você fosse o/a atacante?
+* Modelagem de ameaças e testes de penetração: inverta os papéis: e se você fosse o/a atacante?
+* A dificuldade de se encontrar vulnerabilidades.
+* Segurança por isolamento.
 
 6.2 - Use bibliotecas consolidadas!
 -----------------------------------
index ff1d84452827bdd0307f63598f84a448d1b2695b..876e160a1fd5631ed0ab290d7599742ac66189bb 100644 (file)
@@ -4,20 +4,21 @@
 4.1 - O que é? Pra que serve?
 -----------------------------
 
-Tópicos:
-
 * Salvar o estado do código em revisões sequenciais.
 * Integrar o trabalho do time.
 * Acompanhar as mudanças no código (encontrar bugs, rollback, etc).
-* Boa prática: versionando desde o dia 0.
 * Ajuda, mas não resolve conflitos na edição de arquivos.
+* Boa prática: versionando desde o dia 0.
 
 Imagens:
 
 * https://git-scm.com/book/en/v2/book/01-introduction/images/local.png
 
+4.2 - Sistemas de controle de versão
+------------------------------------
+
 4.2 - Quais sistemas existem?
------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Tópicos:
 
@@ -31,16 +32,16 @@ Imagens:
 * Ícones e screenshots do site de cada sistema.
 
 4.2 - Centralizados versus distribuídos
----------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Tópicos:
 
-* Centralizado:
+* Centralizadaso:
 
   * Repositório central para onde são enviadas mudanças.
   * Ou seja, existe uma cópia de referência.
 
-* Distribuído:
+* Distribuídos:
 
   * Cada cópia de trabalho é um repositório completo e possui todo o histórico de revisões (também uma forma de backup).
   * Não requer um repositório central, porém um ponto de trocas central pode ser estipulado entre os desenvolvedores/as.
@@ -61,17 +62,12 @@ Imagens:
 * Complexo e poderoso, porém pode ser usado de modo simples.
 * Checagem de integridade nativa!
 
-4.3 - Instalando
-~~~~~~~~~~~~~~~~
+4.3 - Instalando e configurando
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 * Focaremos em git pela linha de comando.
 * Disponível em tudo que é tipo de sistema operacional.
-
-4.3 - Configurando
-~~~~~~~~~~~~~~~~~~
-
-A única exigência é especificar um nome e email (de preferência funcional ;)
-ara constar nas informações de revisão.
+* A única exigência é especificar um nome e email (de preferência funcional ;) para constar nas informações de revisão.
 
 Roteiro do screencast:
 
@@ -99,7 +95,10 @@ Roteiro do screencast:
   cd ~/projetos/
   git clone https://github.com/rhatto/boaspraticas
 
-4.3 - Trabalhando no projeto
+4.4 - Trabalhando no projeto
+----------------------------
+
+4.4 - Trabalhando no projeto
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 * Três estágios de mudanças: cometidas (commited), marcadas para commit (staged) e modificadas (changed).
@@ -109,32 +108,22 @@ Roteiro do screencast:
 ::
 
   cd ~/projetos/blogatico
-  gedit README.md   # edite seu arquivo
   git status
-  git add README.md # em seguida edite mais um pouco
+  git add README.md
+  git status
+  gedit README.md
   git status
   git diff
   git commit -m "Primeira revisão"
   git add README.md # mudanças recentes adicionadas ao estágio de lançamento
   git commit -m "Segunda revisão"
-  git commit -a -m "Terceira revisão" # coloca todas as mudanças no estágio e comete
-
-  # Agora vamos programar um pouco...
-  mkdir bin
-  touch bin/build
-  chmod +x bin/build
-  gedit bin/build
+  git add .
+  git commit -m "Adiciona demais arquivos" # coloca todas as mudanças no estágio e comete
 
 Imagens:
 
 * https://git-scm.com/book/en/v2/book/01-introduction/images/areas.png
 
-4.4 - Git: navegando no histórico
----------------------------------
-
-* Entendendo um commit.
-* Tags (etiquetas).
-
 4.4 - Log de revisões
 ~~~~~~~~~~~~~~~~~~~~~
 
@@ -148,7 +137,7 @@ Roteiro do screencast:
 
   cd ~/projetos/blogatico
   git log
-  git cola
+  sudo apt-get install gitk
   gitk
 
 Imagens:
@@ -156,18 +145,15 @@ Imagens:
 * https://git-cola.github.io/images/screenshot-main-linux.png
 * https://static.lwn.net/images/ns/kernel/gitk.png
 
-4.4 - Revertendo uma mudança
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-* Você pode fazer um novo commit na unha ou usar o ferramental do git.
+4.4 - Interface gráfica
+~~~~~~~~~~~~~~~~~~~~~~~
 
 Roteiro do screencast:
 
 ::
 
-  git commit --amend
-  git revert
-  git rebase
+  sudo apt-get install git-cola
+  git cola
 
 4.5 - Ramificações (branches e merges)
 --------------------------------------
@@ -183,7 +169,7 @@ Roteiro do screencast:
   cd ~/projetos/blogatico
   git branch develop
   git checkout develop
-  git commit
+  git commit -a
   git checkout master
   git merge develop
 
@@ -206,13 +192,15 @@ Roteiro do screencast:
   cd ~/projetos/blogatico
   git flow init
   git flow feature start doc
+  git commit -a
+  git flow feature finish
 
 4.7 - Submódulos
 ----------------
 
 * Um repositório git dentro de outro.
-* Trava em revisões específicas.
-* "Sistema de empacotamento" simples e integrado ao git.
+* "Trava" o submódulo em revisões específicas.
+* "Sistema" de gestão de dependências de código simples e integrado ao git.
 
 Roteiro do screencast:
 
@@ -225,8 +213,8 @@ Roteiro do screencast:
 
   # Clonando o repositorio noutro local
   cd ..
-  git clone projeto projeto-clonado
-  cd projeto-clonado
+  git clone blogatico blogatico-clonado
+  cd blogatico-clonado
   git submodule update --init
 
   # Ou:
@@ -253,12 +241,11 @@ Roteiro do screencast:
 #. Faça um pequeno site com o Skeleton.
 #. Bônus: git log to ChangeLog!
 
-Referências
------------
+4.13 - Referências
+------------------
 
+* `Instalando Git <https://git-scm.com/book/pt-br/v1/Primeiros-passos-Instalando-Git>`_.
+* `Curso Básico de Git - RBtech <https://www.youtube.com/watch?v=WVLhm1AMeYE&list=PLInBAd9OZCzzHBJjLFZzRl6DgUmOeG3H0>`_.
 * `cheatsheet do git-flow <https://danielkummer.github.io/git-flow-cheatsheet/index.pt_BR.html>`_.
 * `Skeleton: Responsive CSS Boilerplate <http://getskeleton.com/>`_
-* `Versionamento Semântico 2.0.0 <http://semver.org/lang/pt-BR/>`_.
-* `Curso Básico de Git - RBtech <https://www.youtube.com/watch?v=WVLhm1AMeYE&list=PLInBAd9OZCzzHBJjLFZzRl6DgUmOeG3H0>`_.
-* `Instalando Git <https://git-scm.com/book/pt-br/v1/Primeiros-passos-Instalando-Git>`_.
 * `git-cola: The highly caffeinated Git GUI <https://git-cola.github.io/>`_