SlideShare a Scribd company logo
1 of 154
Download to read offline
Ruby
A apresentação já vai começar ...
AkitaOnRails.com
 @AkitaOnRails
www.slideshare.net/akitaonrails
 http://dl.dropbox.com/u/1732133/dicas-de-desenvolvimento-web-com-rails.zip




                boss@akitaonrails.com
Entendendo a Web
Dicas sobre Desenvolvimento Web com Ruby



            Fabio Akita
Recapitulando ...
Rails não Escala
(TM)

Rails não Escala
Blaine Cook

http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter
Para colocar as coisas em
  perspectiva, o Friendster foi
escrito em Java e eles mudaram
 para PHP. MySpace foi escrito
em ColdFusion e eles mudaram
         para ASP.NET.




                                                                  Blaine Cook

             http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter
Para colocar as coisas em
  perspectiva, o Friendster foi
escrito em Java e eles mudaram
 para PHP. MySpace foi escrito
em ColdFusion e eles mudaram
         para ASP.NET.


 Quando as pessoas caem em
 problemas de escalabilidade,
  normalmente acham que a
linguagem é o problema, mas
eu acho que isso raramente é a
          realidade.                                              Blaine Cook

             http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter
“O The New York Times usou Ruby on Rails para
  agregar, analizar e mostrar os resultados das
 eleições em quase tempo real em um de seus
   sites mais acessados de todos os tempos.”



    http://www.computerworld.com.au/article/268003/ruby_rails_rolls_into_enterprise?fp=16&fpid=1
“O The New York Times usou Ruby on Rails para
  agregar, analizar e mostrar os resultados das
 eleições em quase tempo real em um de seus
   sites mais acessados de todos os tempos.”



    http://www.computerworld.com.au/article/268003/ruby_rails_rolls_into_enterprise?fp=16&fpid=1
Browser




Web Server




 MySQL
Browser


             Varnish/HAProxy


Web Server




 MySQL
Browser


             Varnish/HAProxy


Web Server


               Memcached


 MySQL
Browser


              Varnish/HAProxy


Web Server


                Memcached


 MySQL

             CouchDB/MongoDB
Ruby é Lento
(TM)
Ruby é Lento
Existem mentiras,
mentiras malditas e
   estatísticas.
Existem mentiras,
mentiras malditas e
   estatísticas.
Existem mentiras,
mentiras malditas e
   estatísticas.
x mais lento que C++
x mais lento que C++


            0   32.5             65           97.5   130

Python 2


Ruby 1.9


   JRuby


     Perl


 Python 3


     PHP


 Ruby 1.8
Homepage: 331 ms
Homepage: 331 ms

Total: 5.45 s
Performance
      !=
Escalabilidade
Sempre se Lembre




Poderíamos contratar um Macaco Treinado
        para fazer seu Trabalho!
Exemplo
6
Técnicas
Menos Requisições
Mini que CSS e
  Javascript
Juicer
http://github.com/cjohansen/juicer/
gem install juicer



script/plugin install git://github.com/ktheory/juicer-rails.git
gem install juicer



script/plugin install git://github.com/ktheory/juicer-rails.git
juicer install yuicompressor

juicer install jslint

juicer install closure_compiler
juicer install yuicompressor

juicer install jslint

juicer install closure_compiler
juicer install yuicompressor

juicer install jslint

juicer install closure_compiler
/app/views/layouts/application.html.erb




               <%= juiced_tag '/stylesheets/application.css' %>
               <%= yield(:head) %>
           </head>
           <body>
               ...
               <%= juiced_tag '/javascripts/application.js' %>
           </body>
/app/views/layouts/application.html.erb




               <%= juiced_tag '/stylesheets/application.css' %>
               <%= yield(:head) %>
           </head>
           <body>
               ...
               <%= juiced_tag '/javascripts/application.js' %>
           </body>
/public/stylesheets/application.css




                          @import url("reset.css");
                          @import url("base.css");
                          @import url("fonts.css");

                          ...

 /public/javascripts/application.js




                          /*
                               @depends jquery-1.4.min.js
                               @depends jquery.edit_in_place.js
                               @depends jqueryamail.js
                          */

                          ...
/public/stylesheets/application.css




                          @import url("reset.css");
                          @import url("base.css");
                          @import url("fonts.css");

                          ...

 /public/javascripts/application.js




                          /*
                               @depends jquery-1.4.min.js
                               @depends jquery.edit_in_place.js
                               @depends jqueryamail.js
                          */

                          ...
juicer merge public/stylesheets/application.css

public/stylesheets/application.min.css

juicer merge -i public/javascripts/application.js

public/javascripts/application.min.js
juicer merge public/stylesheets/application.css

public/stylesheets/application.min.css

juicer merge -i public/javascripts/application.js

public/javascripts/application.min.js
juicer merge public/stylesheets/application.css

public/stylesheets/application.min.css

juicer merge -i public/javascripts/application.js

public/javascripts/application.min.js
juicer merge public/stylesheets/application.css

public/stylesheets/application.min.css

juicer merge -i public/javascripts/application.js

public/javascripts/application.min.js
DEVELOPMENT
PRODUCTION
Asset Hosts
Navegadores abrem poucas conexões
     simultâneas por domínio
/app/controllers/hello_controller.rb


    def gallery
        gallery_path = File.join(Rails.root, "public/images/gallery/")
        @images = Dir.glob(gallery_path + "*").map{ |f|
           f.gsub(gallery_path, "") }
    end
/app/controllers/hello_controller.rb


    def gallery
        gallery_path = File.join(Rails.root, "public/images/gallery/")
        @images = Dir.glob(gallery_path + "*").map{ |f|
           f.gsub(gallery_path, "") }
    end

 /app/views/hello/gallery.html.erb



    <% title "Gallery" %>


    <% @images.each do |image| -%>
        <%= image_tag "gallery/#{image}" %>
    <% end -%>
/app/controllers/hello_controller.rb


    def gallery
        gallery_path = File.join(Rails.root, "public/images/gallery/")
        @images = Dir.glob(gallery_path + "*").map{ |f|
           f.gsub(gallery_path, "") }
    end

 /app/views/hello/gallery.html.erb



    <% title "Gallery" %>


    <% @images.each do |image| -%>
        <%= image_tag "gallery/#{image}" %>
    <% end -%>
DEVELOPMENT
DEVELOPMENT
/con g/environments/production.rb




config.action_controller.asset_host = Proc.new do |source, request|
  protocol = if request.ssl?
      request.headers["USER_AGENT"] =~ /(Safari)/ ? "http" : "https"
  else
      "http"
  end
  "#{protocol}://asset#{rand(6) + 1}.akitaonrails.local:3000"
end
/con g/environments/production.rb




config.action_controller.asset_host = Proc.new do |source, request|
  protocol = if request.ssl?
      request.headers["USER_AGENT"] =~ /(Safari)/ ? "http" : "https"
  else
      "http"
  end
  "#{protocol}://asset#{rand(6) + 1}.akitaonrails.local:3000"
end
/etc/hosts




##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0 localhost
127.0.0.1       asset1.akitaonrails.local
asset2.akitaonrails.local asset3.akitaonrails.local
asset4.akitaonrails.local asset5.akitaonrails.local
asset6.akitaonrails.local www.akitaonrails.local
PRODUCTION
PRODUCTION
Javascript embaixo!
/app/views/layouts/application.html.erb



  <head>
     <title><%= h(yield(:title) || "Untitled") %></title>
     <%= stylesheet_link_tag 'application' %>
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"
  type="text/javascript"></script>
     <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"
  type="text/javascript"></script>
     <script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"
  type="text/javascript"></script>
     <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/
  CFInstall.min.js" type="text/javascript"></script>
     <%= yield(:head) %>
  </head>
  <body>
  ...
/app/views/layouts/application.html.erb



  <head>
     <title><%= h(yield(:title) || "Untitled") %></title>
     <%= stylesheet_link_tag 'application' %>
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"
  type="text/javascript"></script>
     <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"
  type="text/javascript"></script>
     <script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"
  type="text/javascript"></script>
     <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/
  CFInstall.min.js" type="text/javascript"></script>
     <%= yield(:head) %>
  </head>
  <body>
  ...
/app/views/layouts/application.html.erb



      ...
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"
 type="text/javascript"></script>
      <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"
 type="text/javascript"></script>
      <script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"
 type="text/javascript"></script>
      <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/
 CFInstall.min.js" type="text/javascript"></script>
      <script type="text/javascript">
      // meu javascript customizado ...
      </script>
    </body>
 </html>
/app/views/layouts/application.html.erb



      ...
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"
 type="text/javascript"></script>
      <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"
 type="text/javascript"></script>
      <script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"
 type="text/javascript"></script>
      <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/
 CFInstall.min.js" type="text/javascript"></script>
      <script type="text/javascript">
      // meu javascript customizado ...
      </script>
    </body>
 </html>
Gzip
a2enmod de ate


editar
/etc/apache2/mods-available/de ate.conf
a2enmod de ate


editar
/etc/apache2/mods-available/de ate.conf
/etc/apache2/mods-available/de ate.conf


               <IfModule mod_deflate.c>
                 AddOutputFilterByType DEFLATE   text/plain
                 AddOutputFilterByType DEFLATE   text/html
                 AddOutputFilterByType DEFLATE   text/xml
                 AddOutputFilterByType DEFLATE   text/css
                 AddOutputFilterByType DEFLATE   image/svg+xml
                 AddOutputFilterByType DEFLATE   image/x-icon
                 AddOutputFilterByType DEFLATE   application/xml
                 AddOutputFilterByType DEFLATE   application/xhtml+xml
                 AddOutputFilterByType DEFLATE   application/rss+xml
                 AddOutputFilterByType DEFLATE   application/javascript
                 AddOutputFilterByType DEFLATE   application/x-javascript

                 AddOutputFilterByType DEFLATE application/x-httpd-php
                 AddOutputFilterByType DEFLATE application/x-httpd-fastphp
                 AddOutputFilterByType DEFLATE application/x-httpd-eruby

                 DeflateCompressionLevel 9

                 # Netscape 4.X has some problems
                 BrowserMatch ^Mozilla/4 gzip-only-text/html

                 # Netscape 4.06-4.08 have some more problems
                 BrowserMatch ^Mozilla/4.0[678] no-gzip

                 # MSIE masquerades as Netscape, but it is fine
                 BrowserMatch bMSIE !no-gzip !gzip-only-text/html
               </IfModule>
Cabeçalhos de
  Expiração
a2enmod expires


editar
/etc/apache2/mods-available/expires.conf
a2enmod expires


editar
/etc/apache2/mods-available/expires.conf
/etc/apache2/mods-available/expires.conf




            <IfModule mod_expires.c>
              ExpiresByType image/x-icon "access plus 1 year"
              ExpiresByType image/png "access plus 1 year"
              ExpiresByType image/jpg "access plus 1 year"
              ExpiresByType image/gif "access plus 1 year"
              ExpiresByType image/jpeg "access plus 1 year"
              ExpiresByType application/pdf "access plus 1 year"
              ExpiresByType audio/x-wav "access plus 1 year"
              ExpiresByType audio/mpeg "access plus 1 year"
              ExpiresByType video/mpeg "access plus 1 year"
              ExpiresByType video/mp4 "access plus 1 year"
              ExpiresByType video/quicktime "access plus 1 year"
              ExpiresByType video/x-ms-wmv "access plus 1 year"
              ExpiresByType application/x-shockwave-flash "access 1 month"
              ExpiresByType text/css "access plus 1 year"
              ExpiresByType text/javascript "access plus 1 year"
            </IfModule>
Cache Busters
/app/views/layouts/application.html.erb




                     <%= stylesheet_link_tag 'application' %>


                     <%= javascript_include_tag 'application' %>


                     <%= image_tag "logo.png" %>
/app/views/layouts/application.html.erb




              <link href="/stylesheets/application.css?1264345891"
              media="screen" rel="stylesheet" type="text/css" />


              <script src="/javascripts/application.js?1264345058"
              type="text/javascript"></script>


              <img alt="Logo" src="/images/logo.png?1268943058" />
/app/views/layouts/application.html.erb




              <link href="/stylesheets/application.css?1264345891"
              media="screen" rel="stylesheet" type="text/css" />


              <script src="/javascripts/application.js?1264345058"
              type="text/javascript"></script>


              <img alt="Logo" src="/images/logo.png?1268943058" />
Use CDNs
/app/views/layouts/application.html.erb




    <script src="/javascripts/jquery-1.4.min.js" type="text/javascript"></script>
    <script src="/javascripts/jquery-ui-1.7.2.min.js" type="text/javascript"></script>
    <script src="/javascripts/swfobject-2.2.js" type="text/javascript"></script>
    <script src="/javascripts/CFInstall-1.0.2.min.js" type="text/javascript"></script>
/app/views/layouts/application.html.erb




 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"
 type="text/javascript"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"
 type="text/javascript"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"
 type="text/javascript"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/CFInstall.min.js"
 type="text/javascript"></script>
/app/views/layouts/application.html.erb




 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"
 type="text/javascript"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"
 type="text/javascript"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"
 type="text/javascript"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/CFInstall.min.js"
 type="text/javascript"></script>
Search
select * from ...
where ... like “%...%”
select * from ...
where ... like “%...%”
 or ... like “%...%”
 or ... like “%...%”
 or ... like “%...%”
 or ... like “%...%”
Open Source Enterprise Search Platform
Baseado no famoso Lucene
Full Text Search, com relevância
Indexa documentos (Word, PDF, etc)
Interface REST
Roda em containers de Servlet (Tomcat)
Open Source Enterprise Search Platform
Baseado no famoso Lucene
Full Text Search, com relevância
Indexa documentos (Word, PDF, etc)
Interface REST
Roda em containers de Servlet (Tomcat)
Open Source Enterprise Search Platform
Baseado no famoso Lucene
Full Text Search, com relevância
Indexa documentos (Word, PDF, etc)
Interface REST
Roda em containers de Servlet (Tomcat)
Open Source Enterprise Search Platform
Baseado no famoso Lucene
Full Text Search, com relevância
Indexa documentos (Word, PDF, etc)
Interface REST
Roda em containers de Servlet (Tomcat)
Open Source Enterprise Search Platform
Baseado no famoso Lucene
Full Text Search, com relevância
Indexa documentos (Word, PDF, etc)
Interface REST
Roda em containers de Servlet (Tomcat)
Open Source Enterprise Search Platform
Baseado no famoso Lucene
Full Text Search, com relevância
Indexa documentos (Word, PDF, etc)
Interface REST
Roda em containers de Servlet (Tomcat)
SOLR

Sphinx

Xapian
SOLR

Sphinx

Xapian
SOLR

Sphinx

Xapian
select * from ...
where ... like “%...%”
 or ... like “%...%”
 or ... like “%...%”
 or ... like “%...%”
 or ... like “%...%”
Tarefas
Assíncronas
Requisição
Processamento
Requisição
Processamento
Requisição                   Resposta
Crontab
RMagick
Redis
  Workers
Resque-Web
291 ms
             Processamento
Requisição
32 ms
              Processamento




Requisição                    Resposta


             Worker
Resque       Redis

Delayed Job     SQL

  Warren      RabbitMQ

Whenever      Cron Jobs
Resque       Redis

Delayed Job     SQL

  Warren      RabbitMQ

Whenever      Cron Jobs
Resque       Redis

Delayed Job     SQL

  Warren      RabbitMQ

Whenever      Cron Jobs
Resque       Redis

Delayed Job     SQL

  Warren      RabbitMQ

Whenever      Cron Jobs
Imagens

 Relatórios

Web Services

Transações
Imagens

 Relatórios

Web Services

Transações
Imagens

 Relatórios

Web Services

Transações
Imagens

 Relatórios

Web Services

Transações
Aprendendo
   Mais
RAILS LABS
RAILSCASTS.com
caelum.com.br
egenial.com.br
Entenda os browsers

   Entenda HTTP

    Arquiteturas

 Mundo Assíncrono

Mundo não Relacional
Entenda os browsers

   Entenda HTTP

    Arquiteturas

 Mundo Assíncrono

Mundo não Relacional
Entenda os browsers

   Entenda HTTP

    Arquiteturas

 Mundo Assíncrono

Mundo não Relacional
Entenda os browsers

   Entenda HTTP

    Arquiteturas

 Mundo Assíncrono

Mundo não Relacional
Entenda os browsers

   Entenda HTTP

    Arquiteturas

 Mundo Assíncrono

Mundo não Relacional
Thx!
www.slideshare.net/akitaonrails
 http://dl.dropbox.com/u/1732133/dicas-de-desenvolvimento-web-com-rails.zip




                boss@akitaonrails.com

More Related Content

What's hot

[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web Design[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web DesignChristopher Schmitt
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5dynamis
 
Avoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.jsAvoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.jsAlex Speller
 
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJLeonardo Balter
 
Optaros Surf Code Camp Walkthrough 1
Optaros Surf Code Camp Walkthrough 1Optaros Surf Code Camp Walkthrough 1
Optaros Surf Code Camp Walkthrough 1Jeff Potts
 
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011brucelawson
 
HTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a treeHTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a treebrucelawson
 
HTML5 Who what where when why how
HTML5 Who what where when why howHTML5 Who what where when why how
HTML5 Who what where when why howbrucelawson
 
Design+Performance Velocity 2015
Design+Performance Velocity 2015Design+Performance Velocity 2015
Design+Performance Velocity 2015Steve Souders
 
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...Matt Raible
 
Game Development Using HTML 5
Game Development Using HTML 5Game Development Using HTML 5
Game Development Using HTML 5osa_ora
 
Rails Girls: Programming, Web Applications and Ruby on Rails
Rails Girls: Programming, Web Applications and Ruby on RailsRails Girls: Programming, Web Applications and Ruby on Rails
Rails Girls: Programming, Web Applications and Ruby on RailsDonSchado
 
High Performance Web Components
High Performance Web ComponentsHigh Performance Web Components
High Performance Web ComponentsSteve Souders
 
Learning from the Best jQuery Plugins
Learning from the Best jQuery PluginsLearning from the Best jQuery Plugins
Learning from the Best jQuery PluginsMarc Grabanski
 
Bundling Client Side Assets
Bundling Client Side AssetsBundling Client Side Assets
Bundling Client Side AssetsTimothy Oxley
 
High Performance Mobile (SF/SV Web Perf)
High Performance Mobile (SF/SV Web Perf)High Performance Mobile (SF/SV Web Perf)
High Performance Mobile (SF/SV Web Perf)Steve Souders
 
High Performance HTML5 (SF HTML5 UG)
High Performance HTML5 (SF HTML5 UG)High Performance HTML5 (SF HTML5 UG)
High Performance HTML5 (SF HTML5 UG)Steve Souders
 
Ruby MVC from scratch with Rack
Ruby MVC from scratch with RackRuby MVC from scratch with Rack
Ruby MVC from scratch with RackDonSchado
 
Primefaces Nextgen Lju
Primefaces Nextgen LjuPrimefaces Nextgen Lju
Primefaces Nextgen LjuSkills Matter
 

What's hot (20)

jQuery UI and Plugins
jQuery UI and PluginsjQuery UI and Plugins
jQuery UI and Plugins
 
[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web Design[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web Design
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
Avoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.jsAvoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.js
 
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
 
Optaros Surf Code Camp Walkthrough 1
Optaros Surf Code Camp Walkthrough 1Optaros Surf Code Camp Walkthrough 1
Optaros Surf Code Camp Walkthrough 1
 
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
 
HTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a treeHTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a tree
 
HTML5 Who what where when why how
HTML5 Who what where when why howHTML5 Who what where when why how
HTML5 Who what where when why how
 
Design+Performance Velocity 2015
Design+Performance Velocity 2015Design+Performance Velocity 2015
Design+Performance Velocity 2015
 
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
 
Game Development Using HTML 5
Game Development Using HTML 5Game Development Using HTML 5
Game Development Using HTML 5
 
Rails Girls: Programming, Web Applications and Ruby on Rails
Rails Girls: Programming, Web Applications and Ruby on RailsRails Girls: Programming, Web Applications and Ruby on Rails
Rails Girls: Programming, Web Applications and Ruby on Rails
 
High Performance Web Components
High Performance Web ComponentsHigh Performance Web Components
High Performance Web Components
 
Learning from the Best jQuery Plugins
Learning from the Best jQuery PluginsLearning from the Best jQuery Plugins
Learning from the Best jQuery Plugins
 
Bundling Client Side Assets
Bundling Client Side AssetsBundling Client Side Assets
Bundling Client Side Assets
 
High Performance Mobile (SF/SV Web Perf)
High Performance Mobile (SF/SV Web Perf)High Performance Mobile (SF/SV Web Perf)
High Performance Mobile (SF/SV Web Perf)
 
High Performance HTML5 (SF HTML5 UG)
High Performance HTML5 (SF HTML5 UG)High Performance HTML5 (SF HTML5 UG)
High Performance HTML5 (SF HTML5 UG)
 
Ruby MVC from scratch with Rack
Ruby MVC from scratch with RackRuby MVC from scratch with Rack
Ruby MVC from scratch with Rack
 
Primefaces Nextgen Lju
Primefaces Nextgen LjuPrimefaces Nextgen Lju
Primefaces Nextgen Lju
 

Similar to Fisl 11 - Dicas de Desenvolvimento Web com Ruby

Desenvolvimento web com Ruby on Rails (parte 2)
Desenvolvimento web com Ruby on Rails (parte 2)Desenvolvimento web com Ruby on Rails (parte 2)
Desenvolvimento web com Ruby on Rails (parte 2)Joao Lucas Santana
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Matt Raible
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVCAlive Kuo
 
Rapid Prototyping FTW!!!
Rapid Prototyping FTW!!!Rapid Prototyping FTW!!!
Rapid Prototyping FTW!!!cloudbring
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBob Paulin
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTimothy Oxley
 
20130528 solution linux_frousseau_nopain_webdev
20130528 solution linux_frousseau_nopain_webdev20130528 solution linux_frousseau_nopain_webdev
20130528 solution linux_frousseau_nopain_webdevFrank Rousseau
 
Integrating Browserify with Sprockets
Integrating Browserify with SprocketsIntegrating Browserify with Sprockets
Integrating Browserify with SprocketsSpike Brehm
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Matt Raible
 
Everything is Awesome - Cutting the Corners off the Web
Everything is Awesome - Cutting the Corners off the WebEverything is Awesome - Cutting the Corners off the Web
Everything is Awesome - Cutting the Corners off the WebJames Rakich
 
以Vue開發電子商務網站
架構與眉角
以Vue開發電子商務網站
架構與眉角以Vue開發電子商務網站
架構與眉角
以Vue開發電子商務網站
架構與眉角Mei-yu Chen
 

Similar to Fisl 11 - Dicas de Desenvolvimento Web com Ruby (20)

Sprockets
SprocketsSprockets
Sprockets
 
Web-Performance
Web-PerformanceWeb-Performance
Web-Performance
 
Desenvolvimento web com Ruby on Rails (parte 2)
Desenvolvimento web com Ruby on Rails (parte 2)Desenvolvimento web com Ruby on Rails (parte 2)
Desenvolvimento web com Ruby on Rails (parte 2)
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
 
Rapid Prototyping FTW!!!
Rapid Prototyping FTW!!!Rapid Prototyping FTW!!!
Rapid Prototyping FTW!!!
 
Webpack
Webpack Webpack
Webpack
 
Create a new project in ROR
Create a new project in RORCreate a new project in ROR
Create a new project in ROR
 
Play vs Rails
Play vs RailsPlay vs Rails
Play vs Rails
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache Sling
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascript
 
20130528 solution linux_frousseau_nopain_webdev
20130528 solution linux_frousseau_nopain_webdev20130528 solution linux_frousseau_nopain_webdev
20130528 solution linux_frousseau_nopain_webdev
 
Death of a Themer
Death of a ThemerDeath of a Themer
Death of a Themer
 
Integrating Browserify with Sprockets
Integrating Browserify with SprocketsIntegrating Browserify with Sprockets
Integrating Browserify with Sprockets
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020
 
Rails3 asset-pipeline
Rails3 asset-pipelineRails3 asset-pipeline
Rails3 asset-pipeline
 
Everything is Awesome - Cutting the Corners off the Web
Everything is Awesome - Cutting the Corners off the WebEverything is Awesome - Cutting the Corners off the Web
Everything is Awesome - Cutting the Corners off the Web
 
Killer page load performance
Killer page load performanceKiller page load performance
Killer page load performance
 
以Vue開發電子商務網站
架構與眉角
以Vue開發電子商務網站
架構與眉角以Vue開發電子商務網站
架構與眉角
以Vue開發電子商務網站
架構與眉角
 

More from Fabio Akita

Devconf 2019 - São Carlos
Devconf 2019 - São CarlosDevconf 2019 - São Carlos
Devconf 2019 - São CarlosFabio Akita
 
Meetup Nerdzão - English Talk about Languages
Meetup Nerdzão  - English Talk about LanguagesMeetup Nerdzão  - English Talk about Languages
Meetup Nerdzão - English Talk about LanguagesFabio Akita
 
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018Fabio Akita
 
Desmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPDesmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPFabio Akita
 
Desmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaDesmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaFabio Akita
 
Blockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersBlockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersFabio Akita
 
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
Elixir  -Tolerância a Falhas para Adultos - GDG CampinasElixir  -Tolerância a Falhas para Adultos - GDG Campinas
Elixir -Tolerância a Falhas para Adultos - GDG CampinasFabio Akita
 
Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017Fabio Akita
 
30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to RubyFabio Akita
 
Uma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TIUma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TIFabio Akita
 
THE CONF - Opening Keynote
THE CONF - Opening KeynoteTHE CONF - Opening Keynote
THE CONF - Opening KeynoteFabio Akita
 
A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017Fabio Akita
 
Desmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APDesmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APFabio Akita
 
A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017Fabio Akita
 
A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017Fabio Akita
 
A Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech DayA Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech DayFabio Akita
 
A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016Fabio Akita
 
Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016Fabio Akita
 
Conexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraConexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraFabio Akita
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilFabio Akita
 

More from Fabio Akita (20)

Devconf 2019 - São Carlos
Devconf 2019 - São CarlosDevconf 2019 - São Carlos
Devconf 2019 - São Carlos
 
Meetup Nerdzão - English Talk about Languages
Meetup Nerdzão  - English Talk about LanguagesMeetup Nerdzão  - English Talk about Languages
Meetup Nerdzão - English Talk about Languages
 
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
 
Desmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPDesmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SP
 
Desmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaDesmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter Goiania
 
Blockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersBlockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7Masters
 
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
Elixir  -Tolerância a Falhas para Adultos - GDG CampinasElixir  -Tolerância a Falhas para Adultos - GDG Campinas
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
 
Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017
 
30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby
 
Uma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TIUma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TI
 
THE CONF - Opening Keynote
THE CONF - Opening KeynoteTHE CONF - Opening Keynote
THE CONF - Opening Keynote
 
A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017
 
Desmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APDesmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - AP
 
A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017
 
A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017
 
A Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech DayA Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech Day
 
A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016
 
Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016
 
Conexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraConexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização Prematura
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
 

Recently uploaded

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Recently uploaded (20)

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

Fisl 11 - Dicas de Desenvolvimento Web com Ruby