SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
Building Web Apps with Rails

                           III
Recap
● Rails Console
●
  ActiveRecord Queries

●   Views
    ●
      Embedded Ruby Syntax
    ● Layouts

    ● Helper Methods
Recap: ActiveRecord




               Models             Controllers
 DB


       In stations_controller.rb (show):

@stations = Station.find(params[:id])
The Rails Console


1. Open the terminal
2. Navigate to the 'firstfm' directory
3. Run the commands:
   rails console
   @stations = Station.all
show.html.erb:


<%= link_to 'Edit', 
edit_station_path(@station) %> 
|
<%= link_to 'Back', stations_path %>




    These are both view helpers.
<!DOCTYPE html>
<html>
<head>
 <title>Firstfm</title>
 <%= stylesheet_link_tag "application" %>
 <%= javascript_include_tag "application"
%>
   <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>              The default layout
                              template.
</body>
</html>
Web Browser
Session 3



            Rails
                              Routing System


                             Views


                    Models
DB                                    Controllers
Web Browser
Session 3: Routing



           Rails
                             Routing System


                            Views


                   Models
DB                                   Controllers
Web Browser
Session 3:
Validations & Testing


           Rails
                             Routing System


                            Views


                   Models
DB                                   Controllers
Web Browser
Session 3:
Associations
& The 'Stream' Model

           Rails
                             Routing System


                            Views


                   Models
 DB                                  Controllers
Routing in Rails
Routing in Rails

                   ●
                       Which controller to
    Web Browser
                       instantiate

                   ●
                       Which action to invoke

                       Parameter(s) to pass
        ?
                   ●
Routing in Rails
     Web Browser



                        ●   Follows routing rules
                             defined in:
   Routing System
                        ●   config/routes.rb
  Views


          Controllers
Routing in Rails
Config/Routes.rb:

Firstfm::Application.routes.draw do
  resources :stations
  #comments
end

                    Generates RESTful routes
                    for the 'Station' resource
Routing in Rails
Config/Routes.rb:

Firstfm::Application.routes.draw do
  resources :stationsTransfer Principles:
     Representational State
  #comments
           Use HTTP methods explicitly
end
                     Be stateless
          Expose directory structure-like URIs
        Handle multiple formats e.g. XML, JSON
Routing in Rails
Config/Routes.rb:

Firstfm::Application.routes.draw do
  resources :stations
  #comments
end
                    This means we can accept
                    requests for all the CRUD
                             actions
Routing in Rails: Terminal Time!

1. Open the terminal
2. Navigate to the 'firstfm' directory
3. Run the commands:

 rake routes
Routing in Rails: Writing Rules
Config/Routes.rb:

   resources :stations
Routing in Rails: Writing Rules
Config/Routes.rb (rewritten):

get 'statations' => 'stations#index'
get 'statations/:id' => 'stations#show'
get 'statations/new' => 'stations#new'
post 'statations' => 'stations#create'
put 'statations/:id' => 'stations#update'
delete 'statations/:id' =>
'stations#destroy'
Routing in Rails: Writing Rules
Config/Routes.rb:

   resources :stations

Generates URL helpers for us e.g.

  stations_path
  station_path(:id)
  new_station_path
  Etc...
Routing in Rails: Task

1. Define a root controller and action

2. Add a new action

  2.1 Write a new method in the controller
  2.2 Write a view file for it
  2.3 Write a routing rule so we can access it


 For docs on routing: guides.rubyonrails.org/routing.html
Tests and Validations
We have a
problem...
Our app accepts
empty station data
Tests and Validations
Solution:

  Write validations to prevent erroneous data
Tests and Validations
But First!

  Let's write tests.
Tests and Validations


               Scaffolding has generated test
                         files for us
Tests and Validations: Unit Testing
In firstfm/test/unit/station_test.rb:


require 'test_helper'

class StationTest < ActiveSupport::TestCase
  # test "the truth" do
  #   assert true
  # end
end


         We write tests by writing out 'assertions'
Tests and Validations: Unit Testing

require 'test_helper'

class StationTest < ActiveSupport::TestCase
  test "the truth" do
     assert 10 > 9
  end
end




'assertions' evaluate whether an object is what we expect it to be
Tests and Validations: Unit Testing

Running test scripts

ruby -Itest <script_name>


e.g.

ruby -Itest test/unit/station_test.rb
Tests and Validations: Unit Testing

ruby -Itest test/unit/station_test.rb

Script report example:

pass: 1, fail: 1, error: 0
total: 2 tests with 2 assertions in 0.215168805
seconds
Tests and Validations: Unit Testing

test "shouldnt save without name" do
  station = Station.new
  station.url = “http://myradio.com”
  station.description = “A cool radio 
station”
  assert !station.save
end
Tests and Validations: Unit Testing

test "should save" do
  station = Station.new
  Station.name = “My Radio”
  station.url = “http://myradio.com”
  station.description = “A cool radio 
station”
  assert station.save
end
Tests and Validations: Task!

Write test cases for your validations

Consider more than just presence of data e.g.

●
    Name shouldn't be longer than x characters

●
    URL should start with 'http://'

●
    Description shouldn't be less than x characters
Tests and Validations: Validate
●
    We write validation code in the model

●
    Rails provides us with several built in validation methods

●
    For example: 'validates_presence_of'
Tests and Validations: Validate
 Example: Using validates_presence_of
 In models/station.rb:




class Station < ActiveRecord::Base

 validates_presence_of :name, :url,
:description

end
Tests and Validations: Task!
 Make your tests pass by implementing validations
 like below




class Station < ActiveRecord::Base

 validates_presence_of :name, :url,
:description

end
Associations in RoR
Adding 'Streams'
First FM




           Station
First FM




    Station   Stream
First FM




    Station   Has many   Streams
First FM


Let's generate the stream model


 rails generate model stream
   url:string name:string
Create the db table by running the migration script...

 rake db:migrate
First FM



Let's check out our new stream model


rails c

mystream = Stream.new
First FM




    Station   Stream
First FM




    Station   Has many   Streams
First FM


has_many :streams


     Station   Has many    Streams


                    belongs_to :station
First FM


Let's see if our models are associated


 rails c

 mystation = Station.first

 mystation.streams
First FM

           OH NOES!
  We need to add a secondary key.


rails generate migration
  AddStationIdToStreams
  station_id:integer
First FM

           OH YEA!
    We've got a secondary key!

rake db:migrate

rails c
mystation = Station.first

mystation.streams
First FM

            Build
   Build and save a new stream


stream = mystation.streams.build

Weitere ähnliche Inhalte

Was ist angesagt?

AngularJS meets Rails
AngularJS meets RailsAngularJS meets Rails
AngularJS meets RailsElena Torró
 
Using Angular with Rails
Using Angular with RailsUsing Angular with Rails
Using Angular with RailsJamie Davidson
 
Laravel Restful API and AngularJS
Laravel Restful API and AngularJSLaravel Restful API and AngularJS
Laravel Restful API and AngularJSBlake Newman
 
Ember Reusable Components and Widgets
Ember Reusable Components and WidgetsEmber Reusable Components and Widgets
Ember Reusable Components and WidgetsSergey Bolshchikov
 
Rest api titouan benoit
Rest api   titouan benoitRest api   titouan benoit
Rest api titouan benoitTitouan BENOIT
 
Intro to Ruby on Rails
Intro to Ruby on RailsIntro to Ruby on Rails
Intro to Ruby on RailsMark Menard
 
Introduction to AJAX In WordPress
Introduction to AJAX In WordPressIntroduction to AJAX In WordPress
Introduction to AJAX In WordPressCaldera Labs
 
Be Happy With Ruby on Rails - Ecosystem
Be Happy With Ruby on Rails - EcosystemBe Happy With Ruby on Rails - Ecosystem
Be Happy With Ruby on Rails - EcosystemLucas Renan
 
devise tutorial - 2011 rubyconf taiwan
devise tutorial - 2011 rubyconf taiwandevise tutorial - 2011 rubyconf taiwan
devise tutorial - 2011 rubyconf taiwanTse-Ching Ho
 
Bullet: The Functional PHP Micro-Framework
Bullet: The Functional PHP Micro-FrameworkBullet: The Functional PHP Micro-Framework
Bullet: The Functional PHP Micro-FrameworkVance Lucas
 
Jsp (java server page)
Jsp (java server page)Jsp (java server page)
Jsp (java server page)Chitrank Dixit
 
Building a dashboard using AngularJS
Building a dashboard using AngularJSBuilding a dashboard using AngularJS
Building a dashboard using AngularJSRajthilakMCA
 
Ride on the Fast Track of Web with Ruby on Rails- Part 2
Ride on the Fast Track of Web with Ruby on Rails- Part 2Ride on the Fast Track of Web with Ruby on Rails- Part 2
Ride on the Fast Track of Web with Ruby on Rails- Part 2A.K.M. Ahsrafuzzaman
 
Project Fedena and Why Ruby on Rails - ArvindArvind G S
Project Fedena and Why Ruby on Rails - ArvindArvind G SProject Fedena and Why Ruby on Rails - ArvindArvind G S
Project Fedena and Why Ruby on Rails - ArvindArvind G SThoughtWorks
 

Was ist angesagt? (20)

AngularJS meets Rails
AngularJS meets RailsAngularJS meets Rails
AngularJS meets Rails
 
Using Angular with Rails
Using Angular with RailsUsing Angular with Rails
Using Angular with Rails
 
Cocoa on-rails-3rd
Cocoa on-rails-3rdCocoa on-rails-3rd
Cocoa on-rails-3rd
 
Laravel Restful API and AngularJS
Laravel Restful API and AngularJSLaravel Restful API and AngularJS
Laravel Restful API and AngularJS
 
Ember - introduction
Ember - introductionEmber - introduction
Ember - introduction
 
Ember Reusable Components and Widgets
Ember Reusable Components and WidgetsEmber Reusable Components and Widgets
Ember Reusable Components and Widgets
 
Rest api titouan benoit
Rest api   titouan benoitRest api   titouan benoit
Rest api titouan benoit
 
Intro to Ruby on Rails
Intro to Ruby on RailsIntro to Ruby on Rails
Intro to Ruby on Rails
 
Introduction to AJAX In WordPress
Introduction to AJAX In WordPressIntroduction to AJAX In WordPress
Introduction to AJAX In WordPress
 
Be Happy With Ruby on Rails - Ecosystem
Be Happy With Ruby on Rails - EcosystemBe Happy With Ruby on Rails - Ecosystem
Be Happy With Ruby on Rails - Ecosystem
 
Workshop 21: React Router
Workshop 21: React RouterWorkshop 21: React Router
Workshop 21: React Router
 
Workshop 16: EmberJS Parte I
Workshop 16: EmberJS Parte IWorkshop 16: EmberJS Parte I
Workshop 16: EmberJS Parte I
 
devise tutorial - 2011 rubyconf taiwan
devise tutorial - 2011 rubyconf taiwandevise tutorial - 2011 rubyconf taiwan
devise tutorial - 2011 rubyconf taiwan
 
Rails::Engine
Rails::EngineRails::Engine
Rails::Engine
 
Expressjs
ExpressjsExpressjs
Expressjs
 
Bullet: The Functional PHP Micro-Framework
Bullet: The Functional PHP Micro-FrameworkBullet: The Functional PHP Micro-Framework
Bullet: The Functional PHP Micro-Framework
 
Jsp (java server page)
Jsp (java server page)Jsp (java server page)
Jsp (java server page)
 
Building a dashboard using AngularJS
Building a dashboard using AngularJSBuilding a dashboard using AngularJS
Building a dashboard using AngularJS
 
Ride on the Fast Track of Web with Ruby on Rails- Part 2
Ride on the Fast Track of Web with Ruby on Rails- Part 2Ride on the Fast Track of Web with Ruby on Rails- Part 2
Ride on the Fast Track of Web with Ruby on Rails- Part 2
 
Project Fedena and Why Ruby on Rails - ArvindArvind G S
Project Fedena and Why Ruby on Rails - ArvindArvind G SProject Fedena and Why Ruby on Rails - ArvindArvind G S
Project Fedena and Why Ruby on Rails - ArvindArvind G S
 

Ähnlich wie RoR 101: Session 3

RoR 101: Session 4
RoR 101: Session 4RoR 101: Session 4
RoR 101: Session 4Rory Gianni
 
Learning to code for startup mvp session 3
Learning to code for startup mvp session 3Learning to code for startup mvp session 3
Learning to code for startup mvp session 3Henry S
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011Fabio Akita
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do railsDNAD
 
RoR 101: Session 1
RoR 101: Session 1RoR 101: Session 1
RoR 101: Session 1Rory Gianni
 
Introduction to Rails 3 - Anup Nivargi
Introduction to Rails 3 - Anup NivargiIntroduction to Rails 3 - Anup Nivargi
Introduction to Rails 3 - Anup NivargiPuneRailsMeetup
 
Intro to Rails 3 - Anup Nivargi
Intro to Rails 3 - Anup NivargiIntro to Rails 3 - Anup Nivargi
Intro to Rails 3 - Anup NivargiPuneRailsMeetup
 
Introduction to Rails 3
Introduction to Rails 3Introduction to Rails 3
Introduction to Rails 3Anup Nivargi
 
One does not simply "Upgrade to Rails 3"
One does not simply "Upgrade to Rails 3"One does not simply "Upgrade to Rails 3"
One does not simply "Upgrade to Rails 3"testflyjets
 
Intro to EmberJS
Intro to EmberJSIntro to EmberJS
Intro to EmberJSBilly Onjea
 
Migration from Rails2 to Rails3
Migration from Rails2 to Rails3Migration from Rails2 to Rails3
Migration from Rails2 to Rails3Umair Amjad
 
Ninad cucumber rails
Ninad cucumber railsNinad cucumber rails
Ninad cucumber railsninad23p
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Dimitri de Putte
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular applicationmirrec
 
Ember.js 101 - JSChannel NCR
Ember.js 101 - JSChannel NCREmber.js 101 - JSChannel NCR
Ember.js 101 - JSChannel NCRAchal Aggarwal
 

Ähnlich wie RoR 101: Session 3 (20)

RoR 101: Session 4
RoR 101: Session 4RoR 101: Session 4
RoR 101: Session 4
 
Learning to code for startup mvp session 3
Learning to code for startup mvp session 3Learning to code for startup mvp session 3
Learning to code for startup mvp session 3
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails
 
RoR 101: Session 1
RoR 101: Session 1RoR 101: Session 1
RoR 101: Session 1
 
Workshop 17: EmberJS parte II
Workshop 17: EmberJS parte IIWorkshop 17: EmberJS parte II
Workshop 17: EmberJS parte II
 
Introduction to Rails 3 - Anup Nivargi
Introduction to Rails 3 - Anup NivargiIntroduction to Rails 3 - Anup Nivargi
Introduction to Rails 3 - Anup Nivargi
 
Intro to Rails 3 - Anup Nivargi
Intro to Rails 3 - Anup NivargiIntro to Rails 3 - Anup Nivargi
Intro to Rails 3 - Anup Nivargi
 
Introduction to Rails 3
Introduction to Rails 3Introduction to Rails 3
Introduction to Rails 3
 
Rail3 intro 29th_sep_surendran
Rail3 intro 29th_sep_surendranRail3 intro 29th_sep_surendran
Rail3 intro 29th_sep_surendran
 
One does not simply "Upgrade to Rails 3"
One does not simply "Upgrade to Rails 3"One does not simply "Upgrade to Rails 3"
One does not simply "Upgrade to Rails 3"
 
TorqueBox
TorqueBoxTorqueBox
TorqueBox
 
Intro to EmberJS
Intro to EmberJSIntro to EmberJS
Intro to EmberJS
 
Rails course day 2
Rails course  day 2Rails course  day 2
Rails course day 2
 
Migration from Rails2 to Rails3
Migration from Rails2 to Rails3Migration from Rails2 to Rails3
Migration from Rails2 to Rails3
 
Ninad cucumber rails
Ninad cucumber railsNinad cucumber rails
Ninad cucumber rails
 
Asp.Net MVC3 - Basics
Asp.Net MVC3 - BasicsAsp.Net MVC3 - Basics
Asp.Net MVC3 - Basics
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular application
 
Ember.js 101 - JSChannel NCR
Ember.js 101 - JSChannel NCREmber.js 101 - JSChannel NCR
Ember.js 101 - JSChannel NCR
 

Kürzlich hochgeladen

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
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
 
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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
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
 
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
 
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
 
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
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Kürzlich hochgeladen (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
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
 
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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
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
 
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
 
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
 
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
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
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!
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

RoR 101: Session 3