You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
443 lines
14 KiB
443 lines
14 KiB
<!doctype html> |
|
<html lang="en"> |
|
|
|
<head> |
|
<meta charset="utf-8"> |
|
|
|
<title>FISL 2016</title> |
|
|
|
<meta name="description" content="A framework for easily creating beautiful presentations using HTML"> |
|
<meta name="author" content="Hakim El Hattab"> |
|
|
|
<meta name="apple-mobile-web-app-capable" content="yes"> |
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> |
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> |
|
|
|
<link rel="stylesheet" href="reveal.js/css/reveal.css"> |
|
<link rel="stylesheet" href="reveal.js/css/theme/black.css" id="theme"> |
|
|
|
<!-- Code syntax highlighting --> |
|
<link rel="stylesheet" href="reveal.js/lib/css/zenburn.css"> |
|
|
|
<!-- Printing and PDF exports --> |
|
<script> |
|
var link = document.createElement( 'link' ); |
|
link.rel = 'stylesheet'; |
|
link.type = 'text/css'; |
|
link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css'; |
|
document.getElementsByTagName( 'head' )[0].appendChild( link ); |
|
</script> |
|
|
|
<!--[if lt IE 9]> |
|
<script src="lib/js/html5shiv.js"></script> |
|
<![endif]--> |
|
|
|
<style> |
|
.semi-opaque { |
|
background-color: rgba(0, 0, 0, 0.7); |
|
} |
|
|
|
* { |
|
hyphens: none !important; |
|
-moz-hyphens: none !important; |
|
} |
|
|
|
img { |
|
height: 400px; |
|
} |
|
</style> |
|
</head> |
|
|
|
<body> |
|
<div class="reveal"> |
|
<div class="slides"> |
|
<section data-background='_images/fisl2016.png'> |
|
<section> |
|
<h1 class="semi-opaque">FISL 2016</h1> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section> |
|
<h2>Disclaimer!</h2> |
|
|
|
<ul> |
|
<li>As apresentações não são minhas;</li> |
|
<li>Ver as apresentações não me tornou um expert no assunto;</li> |
|
<li>Essas são as minhas opiniões.</li> |
|
</ul> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/fisl-elixir1481354.png'> |
|
|
|
<div class="semi-opaque"> |
|
<h2>Elixir, quem é esse pokemon?</h2> |
|
<h3>Bruno Loureiro Volcov</h3> |
|
<p><a href="http://hemingway.softwarelivre.org/fisl17/41f/sala41f-high-201607150900.ogv" target="_blank">(video)</a></p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- Suporte a docstrings |
|
- Baseado no Erlang |
|
- "hot code swap" |
|
- Ferramenta "mix": cria estrutura básica, instala |
|
pacotes |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/fisl-electronmaxresdefault.jpg'> |
|
<div class="semi-opaque"> |
|
<h2>Electron: Construindo Aplicações Desktop Multi-Plataforma com HTML, CSS e JS</h2> |
|
<h3>Rafael Jaques</h3> |
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41d/sala41d-high-201607151059.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- Package.json, main.js, Index.html |
|
- Github.com/rafajaques/electron-exemplos |
|
- Npm install -g electron-prebuild |
|
- Github/electron/electron-quick-start |
|
- Electron-api-demos |
|
- Hokein/electron-sample-apps |
|
- Require('./require.json') |
|
- Electron builder |
|
- Appveyor.com |
|
- Photonkit.com |
|
- React-desktop |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/fisl-docker-python.png'> |
|
<div class="semi-opaque"> |
|
<h2>BeavOps : Como o Python e Docker construíram um ambiente DevOps</h2> |
|
<h3>Alisson Machado de Menezes</h3> |
|
<h3>Gabriela Dias</h3> |
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41c/sala41c-high-201607151159.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- Ferramenta de orquestração de geração de ambientes |
|
- 4Linux |
|
- Integração com o CRM de venda de cursos |
|
- Pyramid vs flask |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/fisl-shell-script.png'> |
|
<div class="semi-opaque"> |
|
<h2>Shell Script Moderno</h2> |
|
<h3>Aurelio Marinho Jargas</h3> |
|
|
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-201607151309.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- @oreio |
|
- Bash -exu |
|
- E - abort on errors |
|
- X - debug |
|
- Criar funções |
|
- Praticar posix |
|
- Usar echo e "-v" |
|
- Usar variáveis de ambiente ao invés de parmetros para o script |
|
- Strict: set -euo pipefail |
|
- Shellcheck |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/fisl-puppet-ansible-salt.png'> |
|
<div class="semi-opaque"> |
|
<h2>Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade</h2> |
|
<h3>Diego Francisco de Gastal Morales</h3> |
|
|
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41d/sala41d-high-201607151403.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- @dgmorales |
|
- Mcollective - orquestração puppet |
|
- Puppet explorer, puppetboard |
|
- Rundeck - Dashboard ansible |
|
- Salt: tem clients como puppet e agora tem ssh como ansible |
|
- Saltpad: Dashboard do salt |
|
- Telegram.me/ansiblebr |
|
- Telegram.me/puppetbr |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/fisl-ansible.png'> |
|
<div class="semi-opaque"> |
|
<h2>Ansible: Infraestrutura como Código</h2> |
|
<h3>Jonatas Baldin de Oliveira</h3> |
|
|
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-201607151559.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- Jonatas Baldwin |
|
- @vuashhhh |
|
- Powershell remoting para Windows vs ssh unix |
|
- Idempotente |
|
- Inventory: grupos indicam o tipo do servidor; da pra definir as chaves privadas no inventário para não precisar de senhas |
|
- Módulos = ferramentas, playbook = design da infraestrutura |
|
- Ansible-playbook -i inventory playbook.yml |
|
- Notify: executa a "task" apenas se houver alteração do estado da task |
|
- "Ansible for DevOps" |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/fisl-luciano-ramalho.jpg'> |
|
<div class="semi-opaque"> |
|
<h2>Antes e depois de Python: minhas linguagens favoritas</h2> |
|
<h3>Luciano Ramalho</h3> |
|
|
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-201607151659.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- @ramalhoorg |
|
- Estética de linguagens de programação |
|
- "Fonte 3270" |
|
- "Bauhaus chess" |
|
- Palavras reservadas = peças de um jogo de xadrez |
|
- Número de palavras != sofisticação |
|
- Scheme tem macros sintáticas |
|
- Quem fez o turbo Pascal fez C# |
|
- "Iniciação à estética" - suassuna |
|
- "Beauty" |
|
- Baungarten |
|
- Machine Beauty |
|
- Go (concorrencia CSP), Clojure, Elixir |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/fisl-pentaho.jpg'> |
|
<div class="semi-opaque"> |
|
<h2>Business Intelligence com dados abertos</h2> |
|
<h3>Rafaela Raganham</h3> |
|
|
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-201607151800.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- Coleta de dados, organização, análise, compartilhamento e monitoramento de informações |
|
- Selecionar base de dados |
|
- Mapeamento e limpeza (ETL) |
|
- Definindo-se dos cubos - construção e desenvolvimento |
|
- Interface com usuário |
|
- Pentaho Business Analytics |
|
- Portal braisleiro de dados abertos |
|
- Portal de transparência |
|
- Pentaho Day |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/fisl-xpaas.jpg'> |
|
<div class="semi-opaque"> |
|
<h2>Explorando xPaaS</h2> |
|
<h3>Ricardo Martinelli de Oliveira</h3> |
|
|
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41c/sala41c-high-201607151901.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- Ricardo martinelli de oliveira |
|
- Openshift |
|
- Kubernetes |
|
- Xip.io para resolver nomes - coloca o IP de resultando dentro do próprio name. |
|
- Developers.redhat.com |
|
- Cdk tem um openshift inteiro dentro de um vagrants |
|
- @rimolive |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/mongodb.jpg'> |
|
<div class="semi-opaque"> |
|
<h2>MongoDB - Tudo o que você precisa saber</h2> |
|
<h3>Christiano Anderson de Souza</h3> |
|
|
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-201607161000.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- Propus.science - parceiro do MongoDB |
|
- Consultoria MongoDB e Hadoop |
|
- @dump |
|
- Christiano.me |
|
- Joins - versão 3.2 |
|
- Validação de documentos - versão 3.2 |
|
- Teorema de capi |
|
- Sharding precisa de replicação - se um shard cai fora, o mongo para de responder. |
|
- Sharding precisa de um config server, para manter os indicies gerais. Normalmente 3. |
|
- Mongos fica normalmente na máquina da aplicação. |
|
- Documento "ID 0" - mantém todos os valores possíveis de todos os campos. |
|
- $lookup - join |
|
- CreateCollection().validator() |
|
- Robomongo.org |
|
- 3t.io/mongochef/ |
|
- Com lookup, como fica dbref? |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/fisl-software-licensing.png'> |
|
<div class="semi-opaque"> |
|
<h2>Tudo que você sempre quis saber sobre licenças de software e nunca pode perguntar</h2> |
|
<h3>Kemel Zaidan</h3> |
|
|
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-201607161105.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- @kemelzaidan |
|
- Convenção de Berna e Paris + leis nacionais (direito autoral) |
|
- Direito autoral != patente , mas são propriedade autoral |
|
- Patente tem uma parte de conhecimento público |
|
- As 4 liberdades forçam o código a ficar disponível. |
|
- Direito de autor vs direito de cópia (copyright) |
|
- Sem licença = copyright = o autor que decide como o produto será distribuído (ou se será) |
|
- Livros do Ronaldo Lemos |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/fisl-docker-for-developers.png'> |
|
<div class="semi-opaque"> |
|
<h2>Docker Para Programadores Preguiçosos</h2> |
|
<h3>Paulo Diovani Gonçalves</h3> |
|
|
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-201607161213.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/fisl-ux.jpg'> |
|
<div class="semi-opaque"> |
|
<h2>Modelos de integração de UX e Engenharia de Software</h2> |
|
<h3>Erik Guimarães da Silva</h3> |
|
|
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41d/sala41d-high-201607161300.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- Erik Guimarães |
|
- Quadrilátero UX: apresentação, controle, comunicação, essencialidade. |
|
- Apresentação = aparência, estética. |
|
- Controle = liberdade na iteração, navegação concisa e flexível |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section> |
|
<section data-background='_images/cordova.png'> |
|
<div class="semi-opaque"> |
|
<h2>Desenvolvimento mobile do jeito certo: Apache Cordova, Zepto e Handlebars</h2> |
|
<h3>Kemel Zaidan</h3> |
|
|
|
<p> |
|
<a href="http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-201607161400.ogv" target="_blank">(video)</a> |
|
</p> |
|
</div> |
|
|
|
<aside class="notes"> |
|
- http://slides.com/kemelzaidan/mobile-fail |
|
- @kemelzaidan |
|
- Eventos.locaweb.com.br |
|
- Loopback.io - criação de apis |
|
- Plugin do MoMa para converter posts para WordPress. |
|
- Phonegap = cordova |
|
- Plugins de acesso ao hardware não fucnionam em emuladores |
|
- Intel XDK = distribuição da Intel para Cordova |
|
- Também tem build na cloud |
|
- Intel app preview - envia a aplicação para o dispositivo, sem fazer build |
|
- Para push, tem plugin (inotifier?) |
|
</aside> |
|
</section> |
|
</section> |
|
|
|
<section data-background='_images/thats-all-folks.jpg'> |
|
<section></section> |
|
</section> |
|
</div> |
|
|
|
</div> |
|
|
|
<script src="reveal.js/lib/js/head.min.js"></script> |
|
<script src="reveal.js/js/reveal.js"></script> |
|
|
|
<script> |
|
|
|
// Full list of configuration options available at: |
|
// https://github.com/hakimel/reveal.js#configuration |
|
Reveal.initialize({ |
|
controls: true, |
|
progress: true, |
|
history: true, |
|
center: true, |
|
|
|
transition: 'slide', // none/fade/slide/convex/concave/zoom |
|
|
|
// Optional reveal.js plugins |
|
dependencies: [ |
|
{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } }, |
|
{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, |
|
{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, |
|
{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }, |
|
{ src: 'plugin/zoom-js/zoom.js', async: true }, |
|
{ src: 'plugin/notes/notes.js', async: true } |
|
] |
|
}); |
|
|
|
</script> |
|
|
|
</body> |
|
</html> |
|
|
|
|