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

Crescendo com Software livre e Lua