Você está na página 1de 17

Sumrio

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)

1- Destrinchando ( {video [1h] e slides} -> notas em texto )

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
)

Administrao de sistemas LINUX

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

MySQL (ToDo::Substituir por postgreSQL)


1. InstalaroMySQL
$sudoaptgetinstallmysqlclientmysqlserverlibmysqlclientdev

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

Baixar o cdigo do OpenRedu


1. Baixeocdigo
$gitclone
git@github.com
:OpenRedu/OpenRedu.git//nofazernosuperusuario

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

Inserir dados essenciais no BD


1. Executara
raketaskall
paraquetodososdadosnecessriossejaminseridosnoBanco
deDados:
$rakebootstrap:all

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/

Instalar NGIX no Debian (


Tutorial
)
1. InstallourPGPkey.Packagesaresignedby"PhusionAutomatedSoftwareSigning
(autosoftwaresigning@phusion.nl)",fingerprint16378A33A6EF16762922526E561F
9B9CAC40B2F7.
$sudoaptkeyadvkeyserverkeyserver.ubuntu.comrecvkeys561F9B9CAC40B2F7

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

Você também pode gostar