SlideShare a Scribd company logo
1 of 52
Download to read offline
Crescendo através de
Software Livre e
Lua


Etiene Dalcol
@etiene_d
@etiene_dFISL 17
Etiene Dalcol
@etiene_d
@etiene_dFISL 17
wooga.com/jobs
@etiene_dFISL 17
A Lua MVC web framework

sailorproject.org
@etiene_dFISL 17
@etiene_dFISL 17
@etiene_dFISL 17
@etiene_dFISL 17
luaconf.com
@etiene_dFISL 17
Por que estou
aqui hoje?
@etiene_dFISL 17
@etiene_dFISL 17
@etiene_dFISL 17
@etiene_dFISL 17
@etiene_dFISL 17
@etiene_dFISL 17
Alguma vez pensamos
em tecnologia?
@etiene_dFISL 17
18 milhões
de desenvolvedores
ao redor do mundo
@etiene_dFISL 17
@etiene_dFISL 17
Vale do Silício
x
Rio de Janeiro
@etiene_dFISL 17
Se o apoio não está
vindo das
instituições, do
governo ou da
indústria, ele tem que
vir de nós mesmos
@etiene_dFISL 17
@etiene_dFISL 17
Nós temos o poder de
endossar
tecnologias com a nossa
escolha
@etiene_dFISL 17
<video>
@etiene_dFISL 17
@etiene_dFISL 17
• Linguagem dinâmica
• Criada em 1993
• Multi-paradigma
• procedural, OO, funcional
• Garbage collection
• Coroutines
• First-class functions
• Lexical scoping
• Proper tail calls
• Licença MIT
• 276Kb
O que é Lua?
@etiene_dFISL 17
@etiene_dFISL 17
@etiene_dFISL 17
Tabelas
Header
key value
“x” 9.2
nil
value
100
200
300
nil
@etiene_dFISL 17
_G
_VERSION
assert
collectgarbage
dofile
error
getmetatable
ipairs
load
loadfile
next
pairs
pcall
print
rawequal
rawget
rawlen
rawset
require
select
setmetatable
tonumber
tostring
type
xpcall
bit32.arshift
bit32.band
bit32.bnot
bit32.bor
bit32.btest
bit32.bxor
bit32.extract
bit32.lrotate
bit32.lshift
bit32.replace
bit32.rrotate
bit32.rshift
coroutine.create
coroutine.resume
coroutine.running
coroutine.status
coroutine.wrap
coroutine.yield
debug.debug
debug.getuservalue
debug.gethook
debug.getinfo
debug.getlocal
debug.getmetatable
debug.getregistry
debug.getupvalue
debug.setuservalue
debug.sethook
debug.setlocal
debug.setmetatable
debug.setupvalue
debug.traceback
debug.upvalueid
debug.upvaluejoin
io.close
io.flush
io.input
io.lines
io.open
io.output
io.popen
io.read
io.stderr
io.stdin
io.stdout
io.tmpfile
io.type
io.write
file:close
file:flush
file:lines
file:read
file:seek
file:setvbuf
file:write
math.abs
math.acos
math.asin
math.atan
math.atan2
math.ceil
math.cos
math.cosh
math.deg
math.exp
math.floor
math.fmod
math.frexp
math.huge
math.ldexp
math.log
math.max
math.min
math.modf
math.pi
math.pow
math.rad
math.random
math.randomseed
math.sin
math.sinh
math.sqrt
math.tan
math.tanh
os.clock
os.date
os.difftime
os.execute
os.exit
os.getenv
os.remove
os.rename
os.setlocale
os.time
os.tmpname
package
package.config
package.cpath
package.loaded
package.loadlib
package.path
package.preload
package.searchers
package.searchpath
string.byte
string.char
string.dump
string.find
string.format
string.gmatch
string.gsub
string.len
string.lower
string.match
string.rep
string.reverse
string.sub
string.upper
table.concat
table.insert
table.pack
table.remove
table.sort
table.unpack
@etiene_dFISL 17
@etiene_dFISL 17
“Já que Lua é uma
linguagem tão simples, ela
tende a te encorajar a
resolver problemas de forma
simples."
Ragnar Svensson - Lead Developer na King
(Lua Workshop 15/10/2015)
@etiene_dFISL 17
http://www.humbedooh.com/presentations/ACNA%20-%20mod_lua.odp Introducing mod_lua by Daniel Gruno
@etiene_dFISL 17
• 1976 - Reserva de mercado
• 1985 - EUA ameaça sanções
• 1992 - Fim da reserva de mercado
• 1993 - Lua é criada no Tecgraf
• 1996 - Artigo de Lua na Dr. Dobbs
• 1997 - Lua-l
• 1998 - Lançamento do Grim Fandango
• 1999 - Lua mencionada no GDC
• 2003 - Programming in Lua
• 2008 - TIOBE linguagem do ano
• 2011 - Lua chega a no. 12 no TIOBE
• 2015 - Programando em Lua
História
@etiene_dFISL 17
Estratégia de carreira
através de comunidades
locais de software livre
@etiene_dFISL 17
@etiene_dFISL 17
English
@etiene_dFISL 17
Resultado:
programadora tardia
@etiene_dFISL 17
Lições do mundo
da música:
valorize as suas
origens
@etiene_dFISL 17
Mais popular
x
Menos popular
x
Early adopter
x
Local adopter
@etiene_dFISL 17
Conexões locais,
Hisham, LabLua &
Sailor
@etiene_dFISL 17
@etiene_dFISL 17
Conexões locais,
Hisham, LabLua &
Sailor
@etiene_dFISL 17
@etiene_dFISL 17
• Acesso ao centro da informação
• Networking com especialistas
• Acesso a vagas de emprego
• Menor custo
• Documentação no idioma local
• Acesso próximo à comunidade
• Tecnologia adaptada pra realidade do local
Tecnologia Local
@etiene_dFISL 17
Instalando Lua
• lua.org > download
• OS package manager
• apt-get install lua
• brew install lua
LuaRocks
• luarocks.org > install
• OS package manager
• apt-get install luarocks
@etiene_dFISL 17


• Hardware
• eLua: http://www.eluaproject.net/
• nodemcu: http://nodemcu.com

• Matemática e computação científica
• Torch: http://torch.ch
• SciLua http://www.scilua.org/
• GSL Shell: http://www.nongnu.org/gsl-shell/
Ferramentas em Lua
@etiene_dFISL 17


• Desenvolvimento de jogos
• Corona: https://coronalabs.com
• Love2D: https://love2d.org/
• Defold: http://www.defold.com/
• Cocos2d: http://www.cocos2d-x.org/
• Web development
• OpenResty http://openresty.org
• Lapis: http://leafo.net/lapis/
• Luvit: https://luvit.io/
• Sailor: http://sailorproject.org/
• Moonshine: http://moonshinejs.org/
Ferramentas em Lua
@etiene_dFISL 17
• IDE
• ZeroBrane Studio: http://studio.zerobrane.com/

• Testes
• Busted: http://olivinelabs.com/busted/
• Gerenciador de pacotes
• LuaRocks http://luarocks.org

• Misc
• Moonscript: http://moonscript.org/
• Awesome Lua:

https://github.com/LewisJEllis/awesome-lua
Ferramentas em Lua
@etiene_dFISL 17
• Livros
• Programming in Lua: http://www.lua.org/pil/
• Programando em Lua
• Lua Programming Gems
• Coding Places
• Tutoriais
• Lua Style Guide: 

http://lua-users.org/wiki/LuaStyleGuide
• Lua Missions: https://github.com/kikito/lua_missions

• Misc
• CodeCombat: https://codecombat.com
Referências
@etiene_dFISL 17
• Comunidades
• Lista de email: http://www.lua.org/lua-l.html
• Blog comunitário: http://lua.space
• Subreddit: http://reddit.com/r/lua
• Canal IRC: irc.freenode.net #lua
• Grupo no FB: https://facebook.com/groups/lua.br
• Lua Ladies: http://lualadies.org
• London Lua: meetup.com/London-Lua-User-Group
• Lua Ceará: https://facebook.com/lualang.ce
• Eventos
• LuaConf: http://luaconf.com
• Lua Workshop: https://www.lua.org/wshop16.html
• Bay Area Lua Devs: meetup.com/lua-devs
Comunidade
@etiene_dFISL 17
O que você consegue
fazer aqui que não
conseguiria fazer em
outro lugar?
Obrigada!
etiene.net

github.com/Etiene/
dalcol@etiene.net
@etiene_d
Obrigada!
Perguntas?
etiene.net

github.com/Etiene/
dalcol@etiene.net
@etiene_d

More Related Content

Viewers also liked

Viewers also liked (12)

Dicas para construir um cartaz
Dicas para construir um cartazDicas para construir um cartaz
Dicas para construir um cartaz
 
Szczelność budynku i metoda Blower Door Test
Szczelność budynku i metoda Blower Door TestSzczelność budynku i metoda Blower Door Test
Szczelność budynku i metoda Blower Door Test
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
Plus Sized Wars-Documentary Analysis
Plus Sized Wars-Documentary AnalysisPlus Sized Wars-Documentary Analysis
Plus Sized Wars-Documentary Analysis
 
Types of Documentaries
Types of DocumentariesTypes of Documentaries
Types of Documentaries
 
Cateq pt 23
Cateq pt 23Cateq pt 23
Cateq pt 23
 
THE STORY TELLER
THE STORY TELLERTHE STORY TELLER
THE STORY TELLER
 
基于OpenResty的百万级长连接推送
基于OpenResty的百万级长连接推送基于OpenResty的百万级长连接推送
基于OpenResty的百万级长连接推送
 
Global Furniture Market 2016 - 2020
Global Furniture Market 2016 - 2020Global Furniture Market 2016 - 2020
Global Furniture Market 2016 - 2020
 
Genesis ate levitico atualizado ate 15042010
Genesis ate levitico   atualizado ate 15042010Genesis ate levitico   atualizado ate 15042010
Genesis ate levitico atualizado ate 15042010
 
Role of tvs in art
Role of tvs in artRole of tvs in art
Role of tvs in art
 
Gpac -who we are and how we help
Gpac -who we are and how we helpGpac -who we are and how we help
Gpac -who we are and how we help
 

Similar to Crescendo com Software livre e Lua

Opendata - Não posso fazer tijolos sem barro !
Opendata - Não posso fazer tijolos sem barro !Opendata - Não posso fazer tijolos sem barro !
Opendata - Não posso fazer tijolos sem barro !
Thiago Rondon
 

Similar to Crescendo com Software livre e Lua (20)

Opendata - Não posso fazer tijolos sem barro !
Opendata - Não posso fazer tijolos sem barro !Opendata - Não posso fazer tijolos sem barro !
Opendata - Não posso fazer tijolos sem barro !
 
Empreendedorismo Maker 2015 - By Fazedores
Empreendedorismo Maker 2015 - By FazedoresEmpreendedorismo Maker 2015 - By Fazedores
Empreendedorismo Maker 2015 - By Fazedores
 
Ontem, hoje e sempre: o protagonismo dos alunos e docentes
Ontem, hoje e sempre: o protagonismo dos alunos e docentesOntem, hoje e sempre: o protagonismo dos alunos e docentes
Ontem, hoje e sempre: o protagonismo dos alunos e docentes
 
ITNEXT Meetup - Native storage, ephemeral clusters and the pitfalls of buildi...
ITNEXT Meetup - Native storage, ephemeral clusters and the pitfalls of buildi...ITNEXT Meetup - Native storage, ephemeral clusters and the pitfalls of buildi...
ITNEXT Meetup - Native storage, ephemeral clusters and the pitfalls of buildi...
 
2008 08 27 Rede Catolica Sao Paulo
2008 08 27 Rede Catolica Sao Paulo2008 08 27 Rede Catolica Sao Paulo
2008 08 27 Rede Catolica Sao Paulo
 
Web 3.5 da inovação
Web 3.5 da inovaçãoWeb 3.5 da inovação
Web 3.5 da inovação
 
Internet das coisas - Conectando seus dispositivos à nuvem de forma inteligente
Internet das coisas - Conectando seus dispositivos à nuvem de forma inteligenteInternet das coisas - Conectando seus dispositivos à nuvem de forma inteligente
Internet das coisas - Conectando seus dispositivos à nuvem de forma inteligente
 
Dividindo para conquistar: microservicos com o jeitinho .NET
Dividindo para conquistar: microservicos com o jeitinho .NETDividindo para conquistar: microservicos com o jeitinho .NET
Dividindo para conquistar: microservicos com o jeitinho .NET
 
Criando uma cultura data driven
Criando uma cultura data drivenCriando uma cultura data driven
Criando uma cultura data driven
 
Como se tornar um desenvolvedor de software melhor
Como se tornar um desenvolvedor de software melhorComo se tornar um desenvolvedor de software melhor
Como se tornar um desenvolvedor de software melhor
 
Python: A Arma Secreta do Cientista de Dados
Python: A Arma Secreta do Cientista de DadosPython: A Arma Secreta do Cientista de Dados
Python: A Arma Secreta do Cientista de Dados
 
Demoiselle EGov 2012
Demoiselle EGov 2012Demoiselle EGov 2012
Demoiselle EGov 2012
 
Linux e a cultura do compartilhamento flisol-ies [16-04-2016]
Linux e a cultura do compartilhamento   flisol-ies [16-04-2016]Linux e a cultura do compartilhamento   flisol-ies [16-04-2016]
Linux e a cultura do compartilhamento flisol-ies [16-04-2016]
 
2008 08 01 Cenarios E Tendencias Em Tics
2008 08 01 Cenarios E Tendencias Em Tics2008 08 01 Cenarios E Tendencias Em Tics
2008 08 01 Cenarios E Tendencias Em Tics
 
Princípios de Transformação - Apresentação Share Rio 2017
Princípios de Transformação - Apresentação Share Rio 2017Princípios de Transformação - Apresentação Share Rio 2017
Princípios de Transformação - Apresentação Share Rio 2017
 
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
 
Sinfonier, Campus Party Recife 2014
Sinfonier, Campus Party Recife 2014Sinfonier, Campus Party Recife 2014
Sinfonier, Campus Party Recife 2014
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o python
 
Técnico em Informática
Técnico em InformáticaTécnico em Informática
Técnico em Informática
 
Mercado e carreira em TI
Mercado e carreira em TIMercado e carreira em TI
Mercado e carreira em TI
 

More from Etiene Dalcol

More from Etiene Dalcol (12)

Making wearables with NodeMCU - FOSDEM 2017
Making wearables with NodeMCU - FOSDEM 2017Making wearables with NodeMCU - FOSDEM 2017
Making wearables with NodeMCU - FOSDEM 2017
 
Get started with Lua - Hackference 2016
Get started with Lua - Hackference 2016Get started with Lua - Hackference 2016
Get started with Lua - Hackference 2016
 
Web development with Lua @ Bulgaria Web Summit 2016
Web development with Lua @ Bulgaria Web Summit 2016Web development with Lua @ Bulgaria Web Summit 2016
Web development with Lua @ Bulgaria Web Summit 2016
 
Web development in Lua @ FOSDEM 2016
Web development in Lua @ FOSDEM 2016Web development in Lua @ FOSDEM 2016
Web development in Lua @ FOSDEM 2016
 
Get started with Lua programming
Get started with Lua programmingGet started with Lua programming
Get started with Lua programming
 
Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...
Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...
Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...
 
What I learned teaching programming to 150 beginners
What I learned teaching programming to 150 beginnersWhat I learned teaching programming to 150 beginners
What I learned teaching programming to 150 beginners
 
Web development with Lua and Sailor @ GeeCon 2015
Web development with Lua and Sailor @ GeeCon 2015Web development with Lua and Sailor @ GeeCon 2015
Web development with Lua and Sailor @ GeeCon 2015
 
What I learned teaching programming to ~150 young women
What I learned teaching programming to ~150 young womenWhat I learned teaching programming to ~150 young women
What I learned teaching programming to ~150 young women
 
Humblelotto @HackJSY
Humblelotto @HackJSYHumblelotto @HackJSY
Humblelotto @HackJSY
 
Lua web development and Sailor @conc_at 2015
Lua web development and Sailor @conc_at 2015Lua web development and Sailor @conc_at 2015
Lua web development and Sailor @conc_at 2015
 
Sailor - A web MVC framework in Lua by Etiene Dalcol (Lua Workshop 2014)
Sailor - A web MVC framework in Lua by Etiene Dalcol (Lua Workshop 2014)Sailor - A web MVC framework in Lua by Etiene Dalcol (Lua Workshop 2014)
Sailor - A web MVC framework in Lua by Etiene Dalcol (Lua Workshop 2014)
 

Crescendo com Software livre e Lua