SlideShare a Scribd company logo
1 of 162
Download to read offline
I18n
                         Rails Globalization




Tuesday, April 7, 2009
Fabio Akita
 AkitaOnRails.com




Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tutorial-like



Tuesday, April 7, 2009
Tuesday, April 7, 2009
I18n Before 2.2



Tuesday, April 7, 2009
Chaos



Tuesday, April 7, 2009
Monkey Patch
                          Approach


Tuesday, April 7, 2009
Many
                         incompatible
                           projects


Tuesday, April 7, 2009
Reinventing the
             Wheel all the time


Tuesday, April 7, 2009
September 2007



Tuesday, April 7, 2009
Rails I18n Project



Tuesday, April 7, 2009
Lead from
      Sven Fuchs
                         adva-cms.org



Tuesday, April 7, 2009
Every plugin
                 creator gathered


Tuesday, April 7, 2009
Common Goals:



Tuesday, April 7, 2009
100% swappable



Tuesday, April 7, 2009
The Least
                         Denominator


Tuesday, April 7, 2009
Not a full blown
                      L10n solution


Tuesday, April 7, 2009
Common,
                         Powerful API


Tuesday, April 7, 2009
Simple Backend
                      (en_US only)


Tuesday, April 7, 2009
Getting Started ...



Tuesday, April 7, 2009
rails locos




Tuesday, April 7, 2009
rails locos

     ./script/generate nifty_layout




Tuesday, April 7, 2009
rails locos

     ./script/generate nifty_layout




Tuesday, April 7, 2009
rails locos

     ./script/generate nifty_layout

     ./script/generate nifty_scaffold Contact
     name:string email:string phone:string
     mobile:string




Tuesday, April 7, 2009
rails locos

     ./script/generate nifty_layout

     ./script/generate nifty_scaffold Contact
     name:string email:string phone:string
     mobile:string




Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Getting i18n files



Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
config/locales/pt-BR_rails.yml




Tuesday, April 7, 2009
config/locales/pt-BR.rb




Tuesday, April 7, 2009
>> I18n.locale = :en




Tuesday, April 7, 2009
>> I18n.locale = :en

   >> I18n.translate quot;helloquot;
   => quot;Hello worldquot;




Tuesday, April 7, 2009
>> I18n.locale = :en

   >> I18n.translate quot;helloquot;
   => quot;Hello worldquot;

   >> I18n.localize Time.now
   => quot;Wed, 01 Apr 2009 22:52:08 -0300quot;




Tuesday, April 7, 2009
>> I18n.locale = :en

   >> I18n.translate quot;helloquot;
   => quot;Hello worldquot;

   >> I18n.localize Time.now
   => quot;Wed, 01 Apr 2009 22:52:08 -0300quot;




Tuesday, April 7, 2009
>> I18n.locale = :en

   >> I18n.translate quot;helloquot;
   => quot;Hello worldquot;

   >> I18n.localize Time.now
   => quot;Wed, 01 Apr 2009 22:52:08 -0300quot;




Tuesday, April 7, 2009
>> I18n.locale = :en

   >> I18n.t quot;helloquot;
   => quot;Hello worldquot;

   >> I18n.l Time.now
   => quot;Wed, 01 Apr 2009 22:52:08 -0300quot;




Tuesday, April 7, 2009
>> I18n.locale = :quot;pt-BRquot;




Tuesday, April 7, 2009
>> I18n.locale = :quot;pt-BRquot;

   >> I18n.t quot;helloquot;
   => quot;Alo Mundoquot;




Tuesday, April 7, 2009
>> I18n.locale = :quot;pt-BRquot;

   >> I18n.t quot;helloquot;
   => quot;Alo Mundoquot;

   >> I18n.l Time.now
   => quot;Quarta, 01 de Abril de 2009, 22:49 hsquot;




Tuesday, April 7, 2009
>> I18n.locale = :quot;pt-BRquot;

   >> I18n.t quot;helloquot;
   => quot;Alo Mundoquot;

   >> I18n.l Time.now
   => quot;Quarta, 01 de Abril de 2009, 22:49 hsquot;

   >> I18n.l Time.now,
         :format => :short
   => quot;01/04, 22:52 hsquot;



Tuesday, April 7, 2009
>> I18n.locale = :quot;pt-BRquot;

   >> I18n.t quot;helloquot;
   => quot;Alo Mundoquot;

   >> I18n.l Time.now
   => quot;Quarta, 01 de Abril de 2009, 22:49 hsquot;

   >> I18n.l Time.now,
         :format => :short
   => quot;01/04, 22:52 hsquot;



Tuesday, April 7, 2009
>>       time_ago_in_words(1.month.ago)
   =>       quot;about 1 monthquot;
   >>       time_ago_in_words(1.5.hours.ago)
   =>       quot;about 2 hoursquot;




Tuesday, April 7, 2009
>>       time_ago_in_words(1.month.ago)
   =>       quot;about 1 monthquot;
   >>       time_ago_in_words(1.5.hours.ago)
   =>       quot;about 2 hoursquot;


   >> I18n.locale = :quot;pt-BRquot;

   >>       time_ago_in_words(1.month.ago)
   =>       quot;aproximadamente 1 mêsquot;
   >>       time_ago_in_words(1.5.hours.ago)
   =>       quot;aproximadamente 2 horasquot;


Tuesday, April 7, 2009
>> I18n.t [:hello, :world]
   => [quot;aloquot;, quot;mundoquot;]




Tuesday, April 7, 2009
>> I18n.t [:hello, :world]
   => [quot;aloquot;, quot;mundoquot;]

   >> I18n.t :brazil,
      :defaults => [:argentina, quot;Chilequot;]
   => quot;Argentinaquot;




Tuesday, April 7, 2009
message: quot;Hello, {{name}}!quot;




Tuesday, April 7, 2009
message: quot;Hello, {{name}}!quot;

        I18n.t :message, :name => quot;Johnquot;
        # => quot;Hello John!quot;




Tuesday, April 7, 2009
message: quot;Hello, {{name}}!quot;

        I18n.t :message, :name => quot;Johnquot;
        # => quot;Hello John!quot;

        # en-US
        :days => {
          :one   => quot;one dayquot;
          :other => quot;{{count}} daysquot;
        }




Tuesday, April 7, 2009
message: quot;Hello, {{name}}!quot;

        I18n.t :message, :name => quot;Johnquot;
        # => quot;Hello John!quot;

        # en-US
        :days => {
          :one   => quot;one dayquot;
          :other => quot;{{count}} daysquot;
        }

       I18n.t :days, :count => 1 # => quot;one dayquot;
       I18n.t :days, :count => 2 # => quot;2 daysquot;

Tuesday, April 7, 2009
Extracting Strings



Tuesday, April 7, 2009
app/views/contacts/views/index.html.erb




      <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Phone</th>
        <th>Mobile</th>
      </tr>




Tuesday, April 7, 2009
app/views/contacts/views/index.html.erb

   config/locales/pt-BR.rb




      <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Phone</th>
        <th>Mobile</th>
      </tr>




Tuesday, April 7, 2009
app/views/contacts/views/index.html.erb

   config/locales/pt-BR.rb
                          {
                              :quot;pt-BRquot; => {
                                :hello => quot;Alô Mundoquot;,

                                  :contacts => {
                                    :index => {
      <tr>
                                      :name => quot;Nomequot;,
        <th>Name</th>
                                      :email => quot;Emailquot;,
        <th>Email</th>
                                      :phone => quot;Telefonequot;,
        <th>Phone</th>
                                      :mobile => quot;Celularquot;
        <th>Mobile</th>
                                    }
      </tr>
                                  }
                              }
                          }

Tuesday, April 7, 2009
app/views/contacts/views/index.html.erb



      <tr>
        <th><%=          t(quot;contacts.index.namequot;) %></th>
        <th><%=          t(quot;index.emailquot;, :scope => quot;contactsquot;) %></th>
        <th><%=          t(quot;phonequot;, :scope => quot;contacts.indexquot;) %></th>
        <th><%=          t(quot;.mobilequot;) %></th>
      </tr>




Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
config/locales/en.yml

        en:
          hello: quot;Hello worldquot;

               contacts:
                 index:
                   name: Name
                   email: Email
                   phone: Phone
                   mobile: Mobile

Tuesday, April 7, 2009
Tuesday, April 7, 2009
Setting Locale



Tuesday, April 7, 2009
app/controllers/application_controller.rb

         class ApplicationController < ActionController::Base
           helper :all
           protect_from_forgery

             before_filter :set_locale

             private

           def set_locale
             I18n.locale = params[:locale] if params[:locale]
           end
         end




Tuesday, April 7, 2009
app/controllers/application_controller.rb

         class ApplicationController < ActionController::Base
           helper :all
           protect_from_forgery

             before_filter :set_locale

             private

           def set_locale
             I18n.locale = params[:locale] if params[:locale]
           end
         end




Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
More strings



Tuesday, April 7, 2009
app/views/contacts/views/index.html.erb



      <td><%= link_to t(quot;common.showquot;), contact %></td>
      <td><%= link_to t(quot;common.editquot;),
        edit_contact_path(contact) %></td>
      <td><%= link_to t(quot;common.destroyquot;), contact,
        :confirm => t('common.destroy_confirm'),
        :method => :delete %></td>




Tuesday, April 7, 2009
config/locales/pt-BR.rb

      {
           :quot;pt-BRquot; => {
             :hello => quot;Alô Mundoquot;,

               :common => {
                  :show => quot;Mostrarquot;,
                  :edit => quot;Editarquot;,
                  :destroy => quot;Apagarquot;,
                  :destroy_confirm => quot;Tem certeza?quot;
               },

               ...
           }
      }


Tuesday, April 7, 2009
config/locales/en.yml

      en:
        hello: quot;Hello worldquot;

           common:
             show: Show
             edit: Edit
             destroy: Destroy
             destroy_confirm: Are you sure?

           ...




Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
ActiveRecord



Tuesday, April 7, 2009
<% form_for @contact do |f| %>
        <%= f.error_messages %>
        <p>
          <%= f.label :name %><br />
          <%= f.text_field :name %>
        </p>
        <p>
          <%= f.label :email %><br />
          <%= f.text_field :email %>
        </p>
        <p>
          <%= f.label :phone %><br />
          <%= f.text_field :phone %>
        </p>
        <p>
          <%= f.label :mobile %><br />
          <%= f.text_field :mobile %>
        </p>
        <p><%= f.submit t(quot;common.submitquot;) %></p>
      <% end %>
Tuesday, April 7, 2009
<% form_for @contact do |f| %>
        <%= f.error_messages %>
        <p>
          <%= f.label :name %><br />
          <%= f.text_field :name %>
        </p>
        <p>
          <%= f.label :email %><br />
          <%= f.text_field :email %>
        </p>
        <p>
          <%= f.label :phone %><br />
          <%= f.text_field :phone %>
        </p>
        <p>
          <%= f.label :mobile %><br />
          <%= f.text_field :mobile %>
        </p>
        <p><%= f.submit t(quot;common.submitquot;) %></p>
      <% end %>
Tuesday, April 7, 2009
...
                         :activerecord => {
                           :models => {
                              :contact => quot;Contatoquot;
                           },
                           :attributes => {
                              :contact => {
                                :name => quot;Nomequot;,
                                :email => quot;Emailquot;,
                                :phone => quot;Telefonequot;,
                                :mobile => quot;Celularquot;
                              }
                           }
                         }
                         ...



Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
./script/plugin install git://github.com/iain/i18n_label.git




Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
app/views/contacts/views/show.html.erb

      <p>
        <strong>Name:</strong>
        <%=h @contact.name %>
      </p>
      <p>
        <strong>Email:</strong>
        <%=h @contact.email %>
      </p>
      <p>
        <strong>Phone:</strong>
        <%=h @contact.phone %>
      </p>
      <p>
        <strong>Mobile:</strong>
        <%=h @contact.mobile %>
      </p>



Tuesday, April 7, 2009
app/views/contacts/views/show.html.erb

      <p>
        <strong>Name:</strong>
        <%=h @contact.name %>
      </p>
      <p>
        <strong>Email:</strong>
        <%=h @contact.email %>
      </p>
      <p>
        <strong>Phone:</strong>
        <%=h @contact.phone %>
      </p>
      <p>
        <strong>Mobile:</strong>
        <%=h @contact.mobile %>
      </p>



Tuesday, April 7, 2009
app/views/contacts/views/show.html.erb

      <p>
        <strong><%= Contact.human_attribute_name('name') %>:</strong>
        <%=h @contact.name %>
      </p>
      <p>
        <strong><%= Contact.human_attribute_name('email') %>:</strong>
        <%=h @contact.email %>
      </p>
      <p>
        <strong><%= Contact.human_attribute_name('phone') %>:</strong>
        <%=h @contact.phone %>
      </p>
      <p>
        <strong><%= Contact.human_attribute_name('mobile') %>:</strong>
        <%=h @contact.mobile %>
      </p>



Tuesday, April 7, 2009
app/views/contacts/views/show.html.erb

      <p>
        <strong><%= Contact.human_attribute_name('name') %>:</strong>
        <%=h @contact.name %>
      </p>
      <p>
        <strong><%= Contact.human_attribute_name('email') %>:</strong>
        <%=h @contact.email %>
      </p>
      <p>
        <strong><%= Contact.human_attribute_name('phone') %>:</strong>
        <%=h @contact.phone %>
      </p>
      <p>
        <strong><%= Contact.human_attribute_name('mobile') %>:</strong>
        <%=h @contact.mobile %>
      </p>



Tuesday, April 7, 2009
Tuesday, April 7, 2009
app/controllers/contacts_controller.rb
    flash[:notice] = quot;Successfully created contact.quot;

    flash[:notice] = t(quot;contacts.messages.successful_createquot;)

     messages:
        successful_create: Successfully created contact.
        successful_update: Successfully updated contact.
        successful_destroy: Successfully destroyed contact.


     :messages => {
        :successful_create => quot;Contato criado com sucesso.quot;,
        :successful_update => quot;Contato atualizado com sucesso.quot;,
        :successful_destroy => quot;Contato apagado com sucesso.quot;,
     },


Tuesday, April 7, 2009
app/models/contact.rb




                         class Contact < ActiveRecord::Base
                           validates_presence_of :name
                         end




Tuesday, April 7, 2009
Tuesday, April 7, 2009
Routing



Tuesday, April 7, 2009
http://localhost:3000/pt-BR/contacts/new

      { :locale => :quot;pt-BRquot;,
        :controller => quot;contactsquot;, :action => quot;newquot;}




Tuesday, April 7, 2009
http://localhost:3000/pt-BR/contacts/new

      { :locale => :quot;pt-BRquot;,
        :controller => quot;contactsquot;, :action => quot;newquot;}




      ./script/plugin install
      git://github.com/svenfuchs/routing-filter.git




Tuesday, April 7, 2009
http://localhost:3000/pt-BR/contacts/new

      { :locale => :quot;pt-BRquot;,
        :controller => quot;contactsquot;, :action => quot;newquot;}




      ./script/plugin install
      git://github.com/svenfuchs/routing-filter.git




      ActionController::Routing::Routes.draw do |map|
        map.filter 'locale'
        map.resources :contacts
      end



Tuesday, April 7, 2009
http://localhost:3000/pt-BR/contacts/new

      { :locale => :quot;pt-BRquot;,
        :controller => quot;contactsquot;, :action => quot;newquot;}




      ./script/plugin install
      git://github.com/svenfuchs/routing-filter.git




      ActionController::Routing::Routes.draw do |map|
        map.filter 'locale'
        map.resources :contacts
      end



Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Views



Tuesday, April 7, 2009
./script/generate controller page




Tuesday, April 7, 2009
./script/generate controller page



            class PageController < ApplicationController
              def show
                render :template => params[:id]
              end
            end




Tuesday, April 7, 2009
./script/generate controller page



            class PageController < ApplicationController
              def show
                render :template => params[:id]
              end
            end




            app/views/page/_header.html.erb
            app/views/page/about.html.erb



Tuesday, April 7, 2009
Tuesday, April 7, 2009
app/views/page/_header.pt-BR.html.erb
                         app/views/page/about.pt-BR.html.erb




Tuesday, April 7, 2009
app/views/page/_header.pt-BR.html.erb
                         app/views/page/about.pt-BR.html.erb




Tuesday, April 7, 2009
app/views/page/about.html.erb

                         <%= render :partial => quot;headerquot; %>

                         <p>Faster than a bullet<br/>
                         Terrifying scream<br/>
                         Enraged and full of anger<br/>
                         He’s half man and half machine</p>




Tuesday, April 7, 2009
app/views/page/about.html.erb

                         <%= render :partial => quot;headerquot; %>

                         <p>Faster than a bullet<br/>
                         Terrifying scream<br/>
                         Enraged and full of anger<br/>
                         He’s half man and half machine</p>



          app/views/page/about.pt-BR.html.erb

                         <%= render :partial => quot;headerquot; %>

                         <p>Mais rápido que uma bala<br/>
                         Um grito apavorante<br/>
                         Enfurecido e cheio de raiva<br/>
                         Ele é metade homem, metade máquina</p>
Tuesday, April 7, 2009
app/views/page/about.html.erb

                         <%= render :partial => quot;headerquot; %>

                         <p>Faster than a bullet<br/>
                         Terrifying scream<br/>
                         Enraged and full of anger<br/>
                         He’s half man and half machine</p>



          app/views/page/about.pt-BR.html.erb

                         <%= render :partial => quot;headerquot; %>

                         <p>Mais rápido que uma bala<br/>
                         Um grito apavorante<br/>
                         Enfurecido e cheio de raiva<br/>
                         Ele é metade homem, metade máquina</p>
Tuesday, April 7, 2009
app/views/page/about.html.erb

                         <%= render :partial => quot;headerquot; %>

                         <p>Faster than a bullet<br/>
                         Terrifying scream<br/>
                         Enraged and full of anger<br/>
                         He’s half man and half machine</p>



          app/views/page/about.pt-BR.html.erb

                         <%= render :partial => quot;headerquot; %>

                         <p>Mais rápido que uma bala<br/>
                         Um grito apavorante<br/>
                         Enfurecido e cheio de raiva<br/>
                         Ele é metade homem, metade máquina</p>
Tuesday, April 7, 2009
app/views/page/_header.html.erb


               <% title quot;Official Rails I18n Project Hymnquot; %>
               <h3>Judas Priest - Painkiller</h3>




               app/views/page/_header.pt-BR.erb


                <% title quot;Hino Oficial do Projeto Rails I18nquot; %>
                <h3>Judas Priest - Painkiller</h3>



Tuesday, April 7, 2009
Tuesday, April 7, 2009
Browser
                         Languages


Tuesday, April 7, 2009
Tuesday, April 7, 2009
./script/plugin install git://github.com/iain/http_accept_language.git




Tuesday, April 7, 2009
./script/plugin install git://github.com/iain/http_accept_language.git




  app/controllers/application_controller.rb




Tuesday, April 7, 2009
./script/plugin install git://github.com/iain/http_accept_language.git




  app/controllers/application_controller.rb


  def set_locale
    # comment the next line to disable http_accept_language
  recognition
    params[:locale] = request.compatible_language_from(
      I18n.available_locales) unless params[:locale]
    I18n.locale = params[:locale] if params[:locale]
  end




Tuesday, April 7, 2009
./script/plugin install git://github.com/iain/http_accept_language.git




  app/controllers/application_controller.rb


  def set_locale
    # comment the next line to disable http_accept_language
  recognition
    params[:locale] = request.compatible_language_from(
      I18n.available_locales) unless params[:locale]
    I18n.locale = params[:locale] if params[:locale]
  end




Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Fast Backend



Tuesday, April 7, 2009
./script/plugin install git://github.com/thedarkone/i18n.git




Tuesday, April 7, 2009
./script/plugin install git://github.com/thedarkone/i18n.git



     I18n.backend = I18n::Backend::Fast.new




Tuesday, April 7, 2009
./script/plugin install git://github.com/thedarkone/i18n.git



     I18n.backend = I18n::Backend::Fast.new



     6 ~ 20x faster at lookups

     Slightly less memory efficient

     Slower to reload

     Faster for production


Tuesday, April 7, 2009
Globalize 2



Tuesday, April 7, 2009
./script/plugin install git://github.com/joshmh/globalize2.git




Tuesday, April 7, 2009
./script/generate migration AddDescriptionFieldForContact




Tuesday, April 7, 2009
./script/generate migration AddDescriptionFieldForContact



 class AddDescriptionFieldForContact < ActiveRecord::Migration
   def self.up
     add_column :contacts, :description, :text
     Contact.create_translation_table! :description => :text
   end

   def self.down
     remove_column :contacts, :description
     Contact.drop_translation_table!
   end
 end




Tuesday, April 7, 2009
app/models/contact.rb

                         class Contact < ActiveRecord::Base
                           translates :description
                           validates_presence_of :name
                         end




Tuesday, April 7, 2009
app/models/contact.rb

                         class Contact < ActiveRecord::Base
                           translates :description
                           validates_presence_of :name
                         end




Tuesday, April 7, 2009
app/models/contact.rb

                         class Contact < ActiveRecord::Base
                           translates :description
                           validates_presence_of :name
                         end



   app/views/contacts/views/_form.html.erb

                         ...
                         <p>
                           <%= f.label :description %><br />
                           <%= f.text_area :description %>
                         </p>
                         <p><%= f.submit t(quot;common.submitquot;) %></p>


Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
config/initializers/globalize.rb



                         I18n.fallbacks[:en]




Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Tuesday, April 7, 2009
Globalize2
                • Model Translation
                • Custom Pluralization
                • Locale Fallbacks
                • Globalize::LoadPath
                • Globalize::Translation classes
                • Missing Translation Log Handler

Tuesday, April 7, 2009
More Resources
                • Gettext
                 • Masao’s Mutoh
                   • http://github.com/mutoh/gettext
                 • Fernando Blat
                   • http://github.com/ferblape/i18n_gettext
                • http://guides.rails.info/i18n.html
                • http://rails-i18n.org/
Tuesday, April 7, 2009
git clone
     git://github.com/akitaonrails/locosxrails_i18n_demo.git

Tuesday, April 7, 2009
Muchas Gracias!
                         www.akitaonrails.com
                         fabioakita@gmail.com



Tuesday, April 7, 2009

More Related Content

Viewers also liked

Brake Disc Rotor Catalog-Auto HaoYue
Brake Disc Rotor Catalog-Auto HaoYueBrake Disc Rotor Catalog-Auto HaoYue
Brake Disc Rotor Catalog-Auto HaoYuewu mingjun
 
What Heck Is Mobile Marketing? For Hospitality & Tourism
What Heck Is Mobile Marketing? For Hospitality & TourismWhat Heck Is Mobile Marketing? For Hospitality & Tourism
What Heck Is Mobile Marketing? For Hospitality & TourismJunction Creative Solutions
 
Report of Previous Project by Yifan Guo
Report of Previous Project by Yifan GuoReport of Previous Project by Yifan Guo
Report of Previous Project by Yifan GuoYifan Guo
 
Workplace Training follow up 6 months later
Workplace Training follow up 6 months laterWorkplace Training follow up 6 months later
Workplace Training follow up 6 months laterCentre for Mental Health
 
37 3 гдз к уч. русский яз. 10-11кл. грекова и др-2015 -100с
37 3  гдз к уч. русский яз. 10-11кл. грекова и др-2015 -100с37 3  гдз к уч. русский яз. 10-11кл. грекова и др-2015 -100с
37 3 гдз к уч. русский яз. 10-11кл. грекова и др-2015 -100сrobinbad123100
 
Pre Eklamsia Berat
Pre Eklamsia BeratPre Eklamsia Berat
Pre Eklamsia Beratlevoprostol
 
จักรกลของร่างกาย 08 สมอง
จักรกลของร่างกาย 08 สมองจักรกลของร่างกาย 08 สมอง
จักรกลของร่างกาย 08 สมองKunkru PeeChat
 
2009 10 Tcs Supply Lists
2009 10 Tcs Supply Lists2009 10 Tcs Supply Lists
2009 10 Tcs Supply Liststcslj
 
Silver vs Jack Wong Sue Report
Silver vs Jack Wong Sue ReportSilver vs Jack Wong Sue Report
Silver vs Jack Wong Sue ReportDoris Wilson
 
My house and my school
My house and my school My house and my school
My house and my school Lidia-g
 
Alec wi weber_media_baseball_game
Alec wi weber_media_baseball_gameAlec wi weber_media_baseball_game
Alec wi weber_media_baseball_gameDeepDude
 
MPhil CS Curriculum 10 11 2014
MPhil CS Curriculum 10 11 2014MPhil CS Curriculum 10 11 2014
MPhil CS Curriculum 10 11 2014Rao Muhammad Umer
 
Feed Burner Scalability
Feed Burner ScalabilityFeed Burner Scalability
Feed Burner Scalabilitydidip
 
Seawell Marine Catalogue 2015
Seawell Marine Catalogue 2015Seawell Marine Catalogue 2015
Seawell Marine Catalogue 2015Larry Jin
 

Viewers also liked (19)

Brake Disc Rotor Catalog-Auto HaoYue
Brake Disc Rotor Catalog-Auto HaoYueBrake Disc Rotor Catalog-Auto HaoYue
Brake Disc Rotor Catalog-Auto HaoYue
 
What Heck Is Mobile Marketing? For Hospitality & Tourism
What Heck Is Mobile Marketing? For Hospitality & TourismWhat Heck Is Mobile Marketing? For Hospitality & Tourism
What Heck Is Mobile Marketing? For Hospitality & Tourism
 
Report of Previous Project by Yifan Guo
Report of Previous Project by Yifan GuoReport of Previous Project by Yifan Guo
Report of Previous Project by Yifan Guo
 
Workplace Training follow up 6 months later
Workplace Training follow up 6 months laterWorkplace Training follow up 6 months later
Workplace Training follow up 6 months later
 
37 3 гдз к уч. русский яз. 10-11кл. грекова и др-2015 -100с
37 3  гдз к уч. русский яз. 10-11кл. грекова и др-2015 -100с37 3  гдз к уч. русский яз. 10-11кл. грекова и др-2015 -100с
37 3 гдз к уч. русский яз. 10-11кл. грекова и др-2015 -100с
 
Pre Eklamsia Berat
Pre Eklamsia BeratPre Eklamsia Berat
Pre Eklamsia Berat
 
จักรกลของร่างกาย 08 สมอง
จักรกลของร่างกาย 08 สมองจักรกลของร่างกาย 08 สมอง
จักรกลของร่างกาย 08 สมอง
 
2009 10 Tcs Supply Lists
2009 10 Tcs Supply Lists2009 10 Tcs Supply Lists
2009 10 Tcs Supply Lists
 
4 m & 1e
4 m & 1e4 m & 1e
4 m & 1e
 
inam
inaminam
inam
 
Silver vs Jack Wong Sue Report
Silver vs Jack Wong Sue ReportSilver vs Jack Wong Sue Report
Silver vs Jack Wong Sue Report
 
My house and my school
My house and my school My house and my school
My house and my school
 
trhtrh
trhtrhtrhtrh
trhtrh
 
PÚBLICIDAD PHOTOSHOP
PÚBLICIDAD PHOTOSHOPPÚBLICIDAD PHOTOSHOP
PÚBLICIDAD PHOTOSHOP
 
Alec wi weber_media_baseball_game
Alec wi weber_media_baseball_gameAlec wi weber_media_baseball_game
Alec wi weber_media_baseball_game
 
MPhil CS Curriculum 10 11 2014
MPhil CS Curriculum 10 11 2014MPhil CS Curriculum 10 11 2014
MPhil CS Curriculum 10 11 2014
 
ebook filsafat Jawa
ebook filsafat Jawaebook filsafat Jawa
ebook filsafat Jawa
 
Feed Burner Scalability
Feed Burner ScalabilityFeed Burner Scalability
Feed Burner Scalability
 
Seawell Marine Catalogue 2015
Seawell Marine Catalogue 2015Seawell Marine Catalogue 2015
Seawell Marine Catalogue 2015
 

Similar to Locos x Rails

Evolution of API With Blogging
Evolution of API With BloggingEvolution of API With Blogging
Evolution of API With BloggingTakatsugu Shigeta
 
Blogworkshop Part 1
Blogworkshop Part 1Blogworkshop Part 1
Blogworkshop Part 1planetsab
 
Lecture 3 - Comm Lab: Web @ ITP
Lecture 3 - Comm Lab: Web @ ITP Lecture 3 - Comm Lab: Web @ ITP
Lecture 3 - Comm Lab: Web @ ITP yucefmerhi
 
Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)Michiel Rook
 
PHP - RAQ (Rarely Asked Questions!)
PHP - RAQ (Rarely Asked Questions!)PHP - RAQ (Rarely Asked Questions!)
PHP - RAQ (Rarely Asked Questions!)Suresh Pandian
 
Real-time Ruby for the Real-time Web
Real-time Ruby for the Real-time WebReal-time Ruby for the Real-time Web
Real-time Ruby for the Real-time WebIlya Grigorik
 
Rack Middleware
Rack MiddlewareRack Middleware
Rack MiddlewareJon Crosby
 
Kurzeinführung: Atom Publishing Protocol
Kurzeinführung: Atom Publishing ProtocolKurzeinführung: Atom Publishing Protocol
Kurzeinführung: Atom Publishing ProtocolDirk Haun
 
IAP09 CUDA@MIT 6.963 - Lecture 03: CUDA Basics #2 (Nicolas Pinto, MIT)
IAP09 CUDA@MIT 6.963 - Lecture 03: CUDA Basics #2 (Nicolas Pinto, MIT)IAP09 CUDA@MIT 6.963 - Lecture 03: CUDA Basics #2 (Nicolas Pinto, MIT)
IAP09 CUDA@MIT 6.963 - Lecture 03: CUDA Basics #2 (Nicolas Pinto, MIT)npinto
 
Oxente on Rails 2009
Oxente on Rails 2009Oxente on Rails 2009
Oxente on Rails 2009Fabio Akita
 
Outside In Development With Cucumber
Outside In Development With CucumberOutside In Development With Cucumber
Outside In Development With CucumberLittleBIGRuby
 
Outside-In Development With Cucumber
Outside-In Development With CucumberOutside-In Development With Cucumber
Outside-In Development With CucumberBen Mabey
 
Data Portability - Fronteers Meetup
Data Portability - Fronteers MeetupData Portability - Fronteers Meetup
Data Portability - Fronteers MeetupAndreas - Creten
 
Lecture 6 - Comm Lab: Web @ ITP
Lecture 6 - Comm Lab: Web @ ITPLecture 6 - Comm Lab: Web @ ITP
Lecture 6 - Comm Lab: Web @ ITPyucefmerhi
 
XML processing with perl
XML processing with perlXML processing with perl
XML processing with perlJoe Jiang
 
Douglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation JsonsagaDouglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation JsonsagaAjax Experience 2009
 

Similar to Locos x Rails (20)

Evolution of API With Blogging
Evolution of API With BloggingEvolution of API With Blogging
Evolution of API With Blogging
 
Blogworkshop Part 1
Blogworkshop Part 1Blogworkshop Part 1
Blogworkshop Part 1
 
Lecture 3 - Comm Lab: Web @ ITP
Lecture 3 - Comm Lab: Web @ ITP Lecture 3 - Comm Lab: Web @ ITP
Lecture 3 - Comm Lab: Web @ ITP
 
HTML5: 5 Quick Wins
HTML5:  5 Quick WinsHTML5:  5 Quick Wins
HTML5: 5 Quick Wins
 
Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)
 
XML::Liberal
XML::LiberalXML::Liberal
XML::Liberal
 
PHP - RAQ (Rarely Asked Questions!)
PHP - RAQ (Rarely Asked Questions!)PHP - RAQ (Rarely Asked Questions!)
PHP - RAQ (Rarely Asked Questions!)
 
Real-time Ruby for the Real-time Web
Real-time Ruby for the Real-time WebReal-time Ruby for the Real-time Web
Real-time Ruby for the Real-time Web
 
Rack Middleware
Rack MiddlewareRack Middleware
Rack Middleware
 
Kurzeinführung: Atom Publishing Protocol
Kurzeinführung: Atom Publishing ProtocolKurzeinführung: Atom Publishing Protocol
Kurzeinführung: Atom Publishing Protocol
 
IAP09 CUDA@MIT 6.963 - Lecture 03: CUDA Basics #2 (Nicolas Pinto, MIT)
IAP09 CUDA@MIT 6.963 - Lecture 03: CUDA Basics #2 (Nicolas Pinto, MIT)IAP09 CUDA@MIT 6.963 - Lecture 03: CUDA Basics #2 (Nicolas Pinto, MIT)
IAP09 CUDA@MIT 6.963 - Lecture 03: CUDA Basics #2 (Nicolas Pinto, MIT)
 
Los signos del despertar 1
Los signos del despertar 1Los signos del despertar 1
Los signos del despertar 1
 
Oxente on Rails 2009
Oxente on Rails 2009Oxente on Rails 2009
Oxente on Rails 2009
 
Outside In Development With Cucumber
Outside In Development With CucumberOutside In Development With Cucumber
Outside In Development With Cucumber
 
Outside-In Development With Cucumber
Outside-In Development With CucumberOutside-In Development With Cucumber
Outside-In Development With Cucumber
 
Data Portability - Fronteers Meetup
Data Portability - Fronteers MeetupData Portability - Fronteers Meetup
Data Portability - Fronteers Meetup
 
Happy Coding with Ruby on Rails
Happy Coding with Ruby on RailsHappy Coding with Ruby on Rails
Happy Coding with Ruby on Rails
 
Lecture 6 - Comm Lab: Web @ ITP
Lecture 6 - Comm Lab: Web @ ITPLecture 6 - Comm Lab: Web @ ITP
Lecture 6 - Comm Lab: Web @ ITP
 
XML processing with perl
XML processing with perlXML processing with perl
XML processing with perl
 
Douglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation JsonsagaDouglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation Jsonsaga
 

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

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
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
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
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
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Recently uploaded (20)

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
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
 
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
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
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
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

Locos x Rails