Escolar Documentos
Profissional Documentos
Cultura Documentos
Sumrio
Ruby
Rails
Git
OpenRedu
VdeoAula:OpenreduAula01TreinamentoRuby&Redu
1Destrinchando({video[1h]eslides}>notasemtexto)
Porqueruby,comrails,noredu?
Sobrealinguagem
Discussosobrenoescalar
Multiparadigma
AdministraodesistemasLINUX
Linhadecomando
Root
GPG
SSH
Setup
Windows
InstalandoBundlerGem
InstalandoRMagick
LINUX
RVM
Ruby1.9.3
MySQL(ToDo::SubstituirporpostgreSQL)
InstalaroGit(Tutorial)
Instalaromongodb(Tutorial)
BaixarocdigodoOpenRedu
RodaroOpenRedu
InstalaroRails(Noprecisaseragora)
Instalardependndcias
Criartabelas
InicializarosSubmodules
InserirdadosessenciaisnoBD
InicieoMySQL
InicieoMongoDB
Assets
DEPLOY
Assets
CDN
InstalarNGIXnoDebian(Tutorial)
Introduoadeploy
comMina
comHeroku
Ruby
pt.wikipedia
|
en.wikipedia
http://rubylang.org/ documentation
rubydoc.org
tryruby
codeschooltryruby
|
codeschoolrubybits
codecademyruby
codewars
rubykoans
rubymonk
codequizzes
iwanttolearnruby.com
hackerhours
Comparativocomoutraslinguagens
RubyLanguage
whydopeoplesaythatrubyisslow
|
whatmakesrubyslow
Livros:
RubyEssentials
LearnToProgram
LearnRubyTheHardway
ProgrammingRubyThePragmaticProgrammersGuide
boapratica
rubystyleguide
|
rubystyleguidePTBR
Debug
rubydebugging
VideoAula:
rubyonrailsparainiciante
(passoapassocomcdigoemtela)
playlistcomaulas
TreinamentoRoRCiti
CanalOficialdoOpenRedu
Servioseocorrnciasnocdigo
Padresdecdigo
README.markdown
Rails
thinkful.comRoR
http://rubyonrails.org/
http://code.tutsplus.com
Git
https://gitscm.com/
rogerdudler.github.io
GitBestPractices
gittowerebook
|
cheatsheet
OpenRedu
Vdeo Aula: Openredu - Aula 01 - Treinamento Ruby & Redu
http://youtu.be/VEQcjxKEIyQ
Slides:
introducaoaruby
rails
(
36:24
)
1Destrinchando({video[1h]eslides}>notasemtexto)
voltarao
Sumrio
osslidesintroduoarubyOpenredu(aulaemvideodosslides:
http://youtu.be/VEQcjxKEIyQ
)
1. Porque ruby, com rails, no redu?
facilmentemantida,flexvelparaconstruiremodificar
(requerimentosdosprofessores,difcilprof.usarferramenta)
intuitiva
2.days.ago(retornaalgodedoisdiasatrs)
3.timesumlao
flexvel
aqualquermomentopodeabrirealterarumaclasse
2. Sobre a linguagem
Discusso sobre no escalar
noescalarpois:
1. linguageminterpretada
2. noreconheceerropoisnocompila,apenasroda
Multiparadigma
orientadaaobjetos
(instanciar(new)echamarmtodosusandoasinstncias
(variveisdotiporefernciaalocadasemumespaodememria))
funcional
varivel.(mtodo_da_varivel){(funoenviadacomoparmetroparao
mtodo)}
1. funo:
|n|>paracadaelemento
seguidaporumresultadobooleano
quevaidefiniroqueserselecionado
2.
a. formato:
{|indice|booleana}/*retornanamesmaestruturada
varivelquechamou,todasasvariveisqueacionoua
booleana*/
{|indice|
breakretorno
ifbooleana
}/*retornaavarivel
queestapsobreak,quandoondiceacionara
booleana*/
{|indice|comportamento}
http://apidock.com/ruby/Array/each
http://www.tutorialspoint.com/ruby/ruby_blocks.htm
passandoumbloco(
yield
)paraummtodo
(Passingablocktoamethod)
http://eli.thegreenplace.net/2006/04/18/understandingruby
blocksprocsandmethods/
http://mudge.name/2011/01/26/passingblocksinrubywith
outblock.html
ptbr:
https://brizeno.wordpress.com/2013/10/01/conceitosnapr
aticarubyblockyield/
imperativa
declaraeatribuiasvariveis,criaescopo
(abrecomindentaoefechacom
end
)
Linha de comando
ShellScript
|
Bashshell
|
CURLwiki
|
curl
vivaolinuxBash
tldp.org/BashProgIntro
linuxsystemadministrationbasics
LinuxTutorialSysAdmin
Livros:
LinuxPocketGuide
LinuxAdministration5thEd
linuxtraining
LinuxCommandLineandShellScriptingBible
Root
https://wiki.debian.org/sudo
GPG
wikipediaGPG
gnupg.org/
GPGManual
SSH
introducaoaoSSH
(nolinuxjavemossh,sescreversshcomearoscomandos)
SSH_Tutorial_for_Linux
Setup
(doambiente,para:rodarlocal,fazerteste,fazerodeploy)
voltarao
Sumrio
Windows
Acessar
https://github.com/OpenRedu/OpenRedu/wiki/OpenReduSetup
InstalaroRuby1.9.3
http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller1.9.3p551.exe
BaixarKitdeDesenvolvimento
(
https://github.com/downloads/oneclick/rubyinstaller/DevKittdm324.5.2201112
291559sfx.exe
)
ExtrairoDevKitpara
Ruby193\DevKit
(PastadeinstalaodoRuby)eexecutar
oscomandos:
cdRuby193\DevKit
ruby dk.rb init
ruby dk.rb install
Instalando o RubyGems
Ainda no terminal e na pasta
Ruby193\DevKit
digitar
gem update
InstalandoBundlerGem
EsteGemusado,poisatravsdestedeletodososGemsutilizadosnoOpenReduso
instaladosautomaticamente.
gem install bundler
InstalandoRMagick
Baixeoexecutvel
ImageMagick6.7.70Q16windowsdll.exe
(
http://ftp.sunet.se/pub/multimedia/graphics/Image
Magick/binaries/
).
EssearquivocontemoImageMagickeoRMagickcompatveis.
Ateno:vocdeveinstalaroImageMagickeogemRMagickAPARTIRDOexecutvelque
vocacaboudebaixaracima,issomantemacompatibilidadeentreeles.
VocterqueinstalaroImageMagick(next>next).Depreferencianapasta
C:/ImageMagick
precisomarcartodasasopesdeinstalao,comexceodarelacionadacomoPerl.
OpassoseguinteinstalaragemRMagickcorrespondenteaversodoImageMagick:
gem install rmagick --platform=ruby -- --with-opt-lib=c:/ImageMagick/lib
--with-opt-include=c:/ImageMagick/in
Wiki:
https://github.com/OpenRedu/OpenRedu/wiki/OpenReduSetup
LINUX
RVM
https://en.wikipedia.org/wiki/Ruby_Version_Manager
https://rvm.io/
(Tomecomorefernciaapenas)
https://rvm.io/rvm/security
1. Instalarcurledependncias(Nonecessrioemalgumasverses):
$sudoaptgetinstalllibssldevlibreadline6devzlib1gdevcurl
a. Casoosudonoestejahabilitado,loguecomosuperuser(su)executeo
aptgetinstalllibssldevlibreadline6devzlib1gdevcurlefaalogout.
2. AdcionaachavedeseguranadoMichalPapis(RVMsigning)
$gpgkeyserverhkp://keys.gnupg.netrecvkeys
409B6B1796C275462A1703113804BB82D39DC0E3
a. Casotenhaproblemasemimportarachave,execute:
$curlsSLhttps://rvm.io/mpapis.asc|gpgimport
3. Executascriptdeinstalaonobashatravsdocurl
$\curlsSLhttps://get.rvm.io|bashsstable
4. Verificarseainstalaoobtevesucesso
$typervm|head1
Deveretornar:rvmisafunction
a. Casocontrario,sesolicitado:
*TostartusingRVMyouneedtorun`source/home/
<your
user>
/.rvm/scripts/rvm`inallyouropenshellwindows,inrarecasesyouneedto
reopenallshellwindows.
$source/home/
<youruser>
/.rvm/scripts/rvm
b. ParaqueoRVMsejacarregadocomoumafunosemprequevoceiniciaro
terminal:
i.
Topermanentlyresolvethisjustcut/pastefollowingline:
ii.
[[s"$HOME/.rvm/scripts/rvm"]]&&source"$HOME/.rvm/scripts/rvm"
iii.
From:~/.bash_profilefile
iv.
To:~/.bashrcfile
Ruby 1.9.3
1. Instalarverso1.9.3doRuby
$rvminstall1.9.3
a. Casovocenoutilizeosudo,execute:
i.
rvmautolibsfail
ii.
rvminstall1.9.3
DeveretornarMissingrequiredpackages:
iii.
loguecomo(su)einstaleasdependncias(aptgetinstall)
iv.
Retorneaoseuusurio(Crtl+D)econtinueainstalao(rvminstall
1.9.3)
2. Verifiqueseainstalaofoibemsucedida
a. $rubyv
Deveretornar:ruby1.9.3p551(20141113revision48407)[x86_64linux]
b. $whichruby
Deveretornar:/home/
<youruser>
/.rvm/rubies/ruby1.9.3p551/bin/ruby
Instalar o Git (
Tutorial
)
1. $sudoaptgetinstallgitcore
2. ConfigurarogiteaschavesSSH(
Tutorial
)
$sshkeygentrsab4096C"
your_email@example.com
"//certifiquesedenosero
superusurioqueestcriandoakey
3. Verifiqueseosshagentestahabilitado
$eval"$(sshagents)"
4. Adicionesuachaveaosshagent
$sshadd~/.ssh/id_rsa
5. AdicionesuachaveSSHsuacontadogithub
Abraoarquivopelocomando$cat~/.ssh/id_rsa.pub
ecopieocontedodoarquivoparasuacontadogithub:
a) github.com
b) Perfil>Settings>SSHKeys
c) Click
AddSSHkey
.
d) Crieumttulo(campoTitle)parasuakey
e) AgoracopieocontedogeradopelocomandocatnocampoKey
f) Click
Addkey
g) Casosolicitado,informesuapassworddogithubparaconfirmao
6. Testeaconexo
$sshTgit@github.com
Instalar o mongodb (
Tutorial
)
1. NoDebian7(Wheezy).:
a. ImporteachavepublicadoMongoDB
$sudoaptkeyadvkeyserverkeyserver.ubuntu.comrecv7F0CEB10
b. Createa/etc/apt/sources.list.d/mongodborg3.0.listfileforMongoDB.
$echo"debhttp://repo.mongodb.org/apt/debianwheezy/mongodborg/3.0main"
|sudotee/etc/apt/sources.list.d/mongodborg3.0.list
c. Recarregueoapt
$sudoaptgetupdate
d. $sudoaptgetinstallymongodborg
e. $sudoservicemongodstart
f. $tail/var/log/mongodb/mongod.log
2. NoUbuntu:
a. ImporteachavepublicadoMongoDB
$sudoaptkeyadvkeyserverkeyserver.ubuntu.comrecv7F0CEB10
b. Adicioneosrepositriosaosourcelist:
$echo"debhttp://repo.mongodb.org/apt/ubuntu"$(lsb_release
sc)"/mongodborg/3.0multiverse"|sudotee
/etc/apt/sources.list.d/mongodborg3.0.listdeb
http://repo.mongodb.org/apt/ubuntutrusty/mongodborg/3.0multiverse
Ateno
:MongoDBsoferecepacotesparaosuportede64bitsUbuntu.
Atualmente,istosignifica12.04LTSPrecisePangolin(14,04)eLTS(Trusty
Tahr).EnquantoospacotespodemfuncionarcomoutrasversesdoUbuntu,
estanoumaconfiguraosuportada.CasoaversodoseuUbuntunoseja
compatvel,instaleoDebianusandoocomandoabaixo:
$echo"debhttp://repo.mongodb.org/apt/debianwheezy/mongodborg/3.0main"
|sudotee/etc/apt/sources.list.d/mongodborg3.0.list
c. Atualizeoapt
$sudoaptgetupdate
d. Instaleopacote
$sudoaptgetinstallymongodborg
e. Verifiqueseoservioestativo
$sudoservicemongodstatus
Rodar o OpenRedu
1. Criararquivodatabase.ymlrenomeandooexemplo:
$mvconfig/database.yml.exampleconfig/database.yml
2. configureoarquivodeacordocomseuDB:
$viconfig/database.yml
SeabriroVI,escrevaaspasswordcorrespondentes(sevoctinhacolocadoantes).
ParasairdoVI,bastaescrever:wqeclicaremEnterparavoltaraoterminalecontinuarcomos
passosseguintes.
3. Vocpodetestaraconexoverificandoascredenciais:\
$mysqladminurootpstatus
4. CriarumGems$rvmgemsetcreateOpenRedu
5. UtilizaragemsetOpenReducomodefault
6. $rvmuseruby1.9.3p551@OpenRedudefault
Casonod,oufr4aaaneedtochangeyourterminalemulatorpreferencestoallowloginshell.
Instalar o Rails
1. InstalaroRails
$geminstallrailsversion3.1.0
Instalar dependndcias
1. InstalandoGemsnecessriosaoOpenRedu
$bundleinstall
a. Casoainstalaodonokogiriretorneerronalibxml2andlibxslt
$sudoaptgetinstalllibxsltdevlibxml2dev
b. Casodeerronainstalaododebuggerruby_core_source
$gemupdatedebuggerruby_core_source
c. Rodenovamenteo$bundleinstall
(Uso temporrio)
Criar tabelas
<=====================Necessarioalteraesnocdigoconformeexpostoporlarissa
em:
https://github.com/larissapaz/redu/commit/c6a0e0611842c0715ce2ee88c975800db72b3568
=================================================================>
modified:app/models/access_token.rb
modified:app/models/licensed_invoice.rb
modified:app/models/oauth2_token.rb
modified:app/models/package_invoice.rb
modified:app/models/user_course_association.rb
modified:app/models/user_course_invitation.rb
<=======================================================xxxxxxx
=============================================================>
1. Executararaketaskcreateparacriarosbancosdedados:
$rakedb:create
2. Executararaketaskschemaloadparaquetodasastabelassejamcriadas:
$rakedb:schema:load
3. Executararaketaskmigratepararodaralgumamodificaoaindapendente:
$rakedb:migrate
Vocpodeexecutararaketaskmigrateantesdaraketaskschemaloadcasovoctenha
problemascomseuload.
Inicializar os Submodules
1. OReduaindautilizaalgunspluginsqueestocomosubmodulesdogit(has_friendspor
exemplo),entoprecisamosexecutardoiscomandos:
$gitsubmoduleinit
$gitsubmoduleupdate
Inicie o MySQL
1. sudo/etc/init.d/mysqlstop
2. sudo/etc/init.d/mysqlstart
3. Referncias:
Ubuntu
*
MacOS
*
Windows
Inicie o MongoDB
1. VerifiqueainstalaodoJAVA:
$dpkgl|grepjre
$javaversion
a. Casonoestejainstalado:
$sudoaptgetinstalldefaultjre
1. Iniciaroservidordebuscasolr:
rakesunspot:solr:start
Assets
http://www.sitepoint.com/assetprecompileworkspart/
OpsTeam
https://www.igvita.com/2009/11/20/stateofrubyvmsrubyrenaissance/
http://stackoverflow.com/questions/2529852/whydopeoplesaythatrubyisslow
DEPLOY
voltarao
Sumrio
Assets
Removerasset_hostdeconfig/environments/production.rb
$RAILS_ENV=productionbin/rakeassets:precompile
http://guides.rubyonrails.org/asset_pipeline.html
akitaonrails/assetpipelineparainiciantes
https://railsassets.org/
CDN
Wiki
http://aws.amazon.com/pt/cloudfront/
(
Tutorial
)
https://www.incapsula.com/cdncontentdeliverynetwork/
https://www.cloudflare.com/plans
http://www.coralcdn.org/
Chef
https://docs.chef.io/chef_why.html
http://www.agileweboperations.com/thechefinfrastructureautomationcookbook
Capstriano
http://capistranorb.com/documentation/gettingstarted/installation/
2. AddHTTPSsupportforAPT.OurAPTrepositoryisstoredonanHTTPSserver.
$sudoaptgetinstallapttransporthttpscacertificates
3. Createafile/etc/apt/sources.list.d/passenger.listandinsert:
#Debian7
debhttps
:
//ossbinaries
.
phusionpassenger
.
com/apt/passengerwheezymain
4. Securepassenger.listandupdateyourAPTcache:
$sudochownroot:/etc/apt/sources.list.d/passenger.list
$sudochmod600/etc/apt/sources.list.d/passenger.list
$sudoaptgetupdate
5. Installthepackages:
$sudoaptgetinstallnginxextraspassenger
6.
https://github.com/OpenRedu/OpenRedu
https://github.com/OpenRedu/OpenRedu/blob/master/READMEvm.mkd
linkdocursodeformacao
Tags:Passanger,unicorn,apache,ngix,sinatra,capistrano,nginx
Referencias:
https://blog.engineyard.com/2012/passengervsunicorn
https://www.digitalocean.com/community/tutorials/apachevsnginxpracticalconsiderations
http://mojoware.com/posts/upgradingapachetonginxpassengertounicorn
http://recipes.sinatrarb.com/p/deployment/apache_with_passenger
http://www.zorched.net/2008/06/17/capistranodeploywithgitandpassenger/
http://awaxman11.github.io/blog/2013/09/09/deployingarailsappwithcapistrano/
https://www.digitalocean.com/community/tutorials/howtoautomaterubyonrailsapplicationde
ploymentsusingcapistrano
MonitorarLinuxservercom
http://mmonit.com/monit/
senecessrio.
Introduo a deploy
(deploy:colocaraaplicao/siteparafuncionarnainternet(colocaremmododeproduo))
voltarao
Sumrio
http://codefol.io/posts/whydoweneedbothcapistranoandchef
com Mina
palestra(ptbr)sobre
DeploydeaplicaesRubycomMina(videoeslidesusadosesincronizados)
http://www.infoq.com/br/presentations/deploydeaplicacoesrubycommina
com Heroku
custo:freeenquantopequeno(poucoacesso)
https://www.youtube.com/watch?v=Iek1rK4pVEo
heroku
introducaodautilidadedogithub
18:35
exploraocodigofonteruby,passoapasso
commit>fecharversoatual,parapublicar
Mudanas/atualizacao
servidoraplicao
servidorHTTP
atualizado
unicorn
nginx
x
atual
x
passanger
x
apache