SlideShare a Scribd company logo
Alex
Ruby on Rails
for Beginners
Ruby Intro
Types of Objects
String
Integer
Floats
Array
Hash
“london”
12
3.14
[“london”, “paris”]
{first_name: “alex”, last_name: “benoit"}
cities.each do |city|
# …
end
cities = [“london”, “paris”, “new york”]
cities.length # => 3
Class Instances
OOP
class Car
end
car.rb
Car.new
Car.new
Car.new
OOP = Data + Behaviour
MVC
Building a Web Product
Mockup
Let’s mockup the product!
Database Scheme
users
id username email
1 olivier olivier@kudoz.com
2 edward ed@lovelyhood.com
3 vincent vincent@uslide.io
users products
id username email
1 olivier olivier@kudoz.com
2 edward ed@lovelyhood.com
3 vincent vincent@uslide.io
id name url user_id
1 LovelyHood lovely-hood.com
users products
id username email
1 olivier olivier@kudoz.com
2 edward ed@lovelyhood.com
3 vincent vincent@uslide.io
id name url user_id
1 LovelyHood lovely-hood.com 2
users products
id username email
1 olivier olivier@kudoz.com
2 edward ed@lovelyhood.com
3 vincent vincent@uslide.io
id name url user_id
1 LovelyHood lovely-hood.com 2
2 Kudoz getkudoz.com 1
3 uSlide uslide.io 3
4 Freshest frshst.com 2
users products
id username email
1 olivier olivier@kudoz.com
2 edward ed@lovelyhood.com
3 vincent vincent@uslide.io
id name url user_id
1 LovelyHood lovely-hood.com 2
2 Kudoz getkudoz.com 1
3 uSlide uslide.io 3
4 Freshest frshst.com 2
a user has many products
a product belongs to one user
1..N relationship
users products
id username email
1 olivier olivier@kudoz.com
2 edward ed@lovelyhood.com
3 vincent vincent@uslide.io
id name url user_id
1 LovelyHood lovely-hood.com 2
2 Kudoz getkudoz.com 1
3 uSlide uslide.io 3
4 Freshest frshst.com 2
primary key primary key foreign key
Let’s model the database!
Rails Intro
History
Created in 2003 by David Heinemeier Hansson (DHH), while working on Basecamp.
Extracted and released it as open source code in July of 2004
Motto
Convention Configurationover
Ruby community
+100k gems on rubygems.org
Rails new
$ rails new app_name
$ rails new app_name -T --database=postgres
Create the database
$ rails db:create
Launch server
$ rails server
http://localhost:3000
Let’s create the new Rails app!
.
├── app
│ ├──
│ ├──
│ └──
│
└── config
controllers
models
views
└── routes.rb
MVC
config/routes.rb
Router
HTTP
request
MVC
config/routes.rb
Router
app/controllers
Controller
HTTP
request
routed
to controller
MVC
config/routes.rb
Router
app/controllers
Controller
app/models
Model
PostgreSQL

database
HTTP
request
routed
to controller
Get data
from model
MVC
config/routes.rb
Router
app/controllers
Controller
app/models
Model
app/views
View
PostgreSQL

database
HTTP
request
routed
to controller
Get data
from model
Inject it
in view
MVC
config/routes.rb
Router
app/controllers
Controller
app/models
Model
app/views
View
PostgreSQL

database
HTTP
request
routed
to controller
Get data
from model
Inject it
in view
render HTML
MVC
Rails app
config/routes.rb
Router
app/controllers
Controller
app/models
Model
app/views
View
PostgreSQL

database
1 2
3
4
5
Rails Routing
HTTP request?
some link
submit
HTTP basics
A protocol to transfer resources
Based on a system of request / response
Between 2 machines, a client and a server
HTTP request is MORE THAN a URL
HTTP request is 4 things
1 - HTTP verb (GET / POST / PATCH / DELETE)
2 - URL
3 - headers
4 - body (not always)
Rails routing
GET /products
get “home” => “pages#home”
get “about” => “pages#about”
get “products” => “products#index”
post “products” => “products#create”
PagesController
ProductsController
def index
…
end
def create
…
end
PagesController
def home
…
end
def team
…
end
views/pages
home.html.erb
team.html.erb
Action/View convention
ERB
+ =
Embedded Ruby
file.html
<h1>…</h1>
< >
+
file.html.erb
<%= %>
< >
< >
< >
< >
<h1>…</h1>
< >
< >
< >
<%= %>
PagesController
def home
end
pages/home.html.erb
<%= @time %>
<h1>…</h1>
< >
< >
< >
@time = Time.now
Instance variables
Let’s build the pages and product controller!
pages#home pages#about products#index
Active Record
app/models
Model Database
ActiveRecord
$ rails g model Product name:string
class Product < ActiveRecord::Base
…
end
ActiveRecord Model
class CreateProducts < ActiveRecord::Migration
def change
create_table :products do |t|
t.string :name
t.timestamps null: false
end
end
end
ActiveRecord Migration
$ rails db:migrate
Run Pending Migrations
$ rails console
Play with your Model
All
> Product.all
SELECT * FROM products
New & Save
> kudoz = Product.new(name: “kudoz”, url: “getkudoz.com”)
> kudoz.save
INSERT INTO products (name, url)
VALUES ('kudoz', 'getkudoz.com')
> Product.find(1)
SELECT * FROM products
WHERE id = 1
Find
> Product.find_by_name(“kudoz”)
SELECT * FROM products
WHERE name = “kudoz”
Find By
Validations
class Product < ActiveRecord::Base
end
presence: true, uniqueness: truevalidates :name,
Associations
class Product < ActiveRecord::Base
end
belongs_to :user
Let’s build our Product Model!
Rails Params
1 - dynamic URL
GET https://www.facebook.com/:user_name
GET https://www.facebook.com/romainpaillard
params[:user_name] => “romainpaillard”
2 - query string
GET https://www.airbnb.com/s/roma?checkin=02/17/2016
params[:checkin] => 02/17/2016
3 - POST request
POST https://www.lewagon/apply
params[:first_name] => “Boris”
{
“first_name": “Boris",
“last_name”:”Paillard"
} } request 

body
Good news !
params
dynamic URL query string POST request body
Let’s build the show view of a product!
products#show
Rails CRUD Routes
We already built index and show actions!
What’s CRUD?
C
Create
R
Read
U
Update
D
Delete
We always need same actions
As a user, I can CRUD a flat
As a user, I can CRUD a tweet
As a user, I can CRUD a post
As a user, I can CRUD a product
get “products” “products#index”=>
get “products/:id” “products#show”=>
get “products/new” “products#new”=>
post “products” “products#create”=>
get “products/:id/edit” “products#edit”=>
patch “products/:id” “products#update”=>
delete “products/:id” “products#destroy”=>
resources :products
$ rails routes
Let’s rebuild our Routes
but this time using resources!
Rails Helpers for Links
<%= link_to “New Product”, new_product_path %>
<a href=“/products/new”>New Product</a>
Let’s put links in our website
links to home, to product index, to product show
Rails CRUD Routes
Let’s build the new and create actions
get “products/new” “products#new”=>
So that user can create new product…
post “products” “products#create”=>
resources :products, only: [:new, :create]
class ProductsController
def new
@product = Product.new
end
def create
…
end
end
<%= form_for @product do |f| %>
<%= f.text_field :name %>
<%= f.text_field :tagline %>
<%= f.submit %>
<% end %>
<form action="/products" method="post">
<input type="text" name="product[name]" id=“product_name”>
<input type="text" name="product[tagline]" id=“product_tagline">

<input type="hidden" name="authenticity_token" value=“HJYkH..”>

<input type="submit">
</form>
params.require(:product).permit(:name, :tagline)
Strong params (whitelisted)
class ProductsController
def new
@product = Product.new
end
def create
safe_params = params.require(:product).permit(:name, :tagline)
product = Product.new(safe_params)
product.save

redirect_to products_path
end
end
Let’s implement those actions
products#new, products#create
Rails CRUD Routes
Let’s build the edit and update actions
get “products/:id/edit” “products#edit”=>
So that user can edit an existing product…
patch “products/:id” “products#update”=>
resources :products, only: [:edit, :update]
class ProductsController
def edit
@product = Product.find(params[:id])
end
def update
…
end
end
<%= form_for @product do |f| %>
<%= f.text_field :name %>
<%= f.text_field :tagline %>
<%= f.submit %>
<% end %>
<form action="/products" method="post">
<input type="text" name="product[name]" id=“product_name” value=“Product Hunt”>
<input type="text" name="product[tagline]" id=“product_tagline” value=“Great Website!”>

<input type="hidden" name="authenticity_token" value=“HJYkH..”>

<input type="submit">
</form>
params.require(:product).permit(:name, :tagline)
Strong params, again
class ProductsController
def edit
@product = Product.find(params[:id])
end
def create
safe_params = params.require(:product).permit(:name, :tagline)
product = Product.find(params[:id])
product.update(safe_params)

redirect_to products_path
end
end
Let’s implement those actions
products#edit, products#update
Rails CRUD Routes
Let’s build the destroy actions
delete “products/:id” “products#destroy”=>
So that user can delete a product…
resources :products, only: [:destroy]
class ProductsController
def destroy
product = Product.find(params[:id])
product.destroy
redirect_to products_path
end
end
Let’s implement that action
products#destroy
Let’s save this website
Let’s host this website
What about my users?
There is a gem for that!

More Related Content

What's hot

Webapps without the web
Webapps without the webWebapps without the web
Webapps without the web
Remy Sharp
 
jQuery UI and Plugins
jQuery UI and PluginsjQuery UI and Plugins
jQuery UI and Plugins
Marc Grabanski
 
Finding Restfulness - Madrid.rb April 2014
Finding Restfulness - Madrid.rb April 2014Finding Restfulness - Madrid.rb April 2014
Finding Restfulness - Madrid.rb April 2014
samlown
 
iPhone Appleless Apps
iPhone Appleless AppsiPhone Appleless Apps
iPhone Appleless Apps
Remy Sharp
 
Merb jQuery
Merb jQueryMerb jQuery
Merb jQuery
Yehuda Katz
 
Refresh Austin - Intro to Dexy
Refresh Austin - Intro to DexyRefresh Austin - Intro to Dexy
Refresh Austin - Intro to Dexy
ananelson
 
Velocity EU 2014 — Offline-first web apps
Velocity EU 2014 — Offline-first web appsVelocity EU 2014 — Offline-first web apps
Velocity EU 2014 — Offline-first web apps
andrewsmatt
 
jQuery Presentation to Rails Developers
jQuery Presentation to Rails DevelopersjQuery Presentation to Rails Developers
jQuery Presentation to Rails Developers
Yehuda Katz
 
Web Automation Testing Using Selenium
Web Automation Testing Using SeleniumWeb Automation Testing Using Selenium
Web Automation Testing Using Selenium
Pete Chen
 
Crafting Quality PHP Applications (Bucharest Tech Week 2017)
Crafting Quality PHP Applications (Bucharest Tech Week 2017)Crafting Quality PHP Applications (Bucharest Tech Week 2017)
Crafting Quality PHP Applications (Bucharest Tech Week 2017)
James Titcumb
 
Future of Web Apps: Google Gears
Future of Web Apps: Google GearsFuture of Web Apps: Google Gears
Future of Web Apps: Google Gears
dion
 
Introduction to plugin development
Introduction to plugin developmentIntroduction to plugin development
Introduction to plugin development
Caldera Labs
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Matteo Collina
 
RSpec: Feature specs as checklist
RSpec: Feature specs as checklistRSpec: Feature specs as checklist
RSpec: Feature specs as checklist
Edward Fox
 
The Coolest Symfony Components you’ve never heard of - DrupalCon 2017
The Coolest Symfony Components you’ve never heard of - DrupalCon 2017The Coolest Symfony Components you’ve never heard of - DrupalCon 2017
The Coolest Symfony Components you’ve never heard of - DrupalCon 2017
Ryan Weaver
 
OpenERP and Perl
OpenERP and PerlOpenERP and Perl
OpenERP and Perl
OpusVL
 
Crafting Quality PHP Applications (PHPkonf 2018)
Crafting Quality PHP Applications (PHPkonf 2018)Crafting Quality PHP Applications (PHPkonf 2018)
Crafting Quality PHP Applications (PHPkonf 2018)
James Titcumb
 
Crafting Quality PHP Applications (PHP Benelux 2018)
Crafting Quality PHP Applications (PHP Benelux 2018)Crafting Quality PHP Applications (PHP Benelux 2018)
Crafting Quality PHP Applications (PHP Benelux 2018)
James Titcumb
 

What's hot (20)

Java Script
Java ScriptJava Script
Java Script
 
Webapps without the web
Webapps without the webWebapps without the web
Webapps without the web
 
jQuery UI and Plugins
jQuery UI and PluginsjQuery UI and Plugins
jQuery UI and Plugins
 
Finding Restfulness - Madrid.rb April 2014
Finding Restfulness - Madrid.rb April 2014Finding Restfulness - Madrid.rb April 2014
Finding Restfulness - Madrid.rb April 2014
 
iPhone Appleless Apps
iPhone Appleless AppsiPhone Appleless Apps
iPhone Appleless Apps
 
Merb jQuery
Merb jQueryMerb jQuery
Merb jQuery
 
Refresh Austin - Intro to Dexy
Refresh Austin - Intro to DexyRefresh Austin - Intro to Dexy
Refresh Austin - Intro to Dexy
 
Velocity EU 2014 — Offline-first web apps
Velocity EU 2014 — Offline-first web appsVelocity EU 2014 — Offline-first web apps
Velocity EU 2014 — Offline-first web apps
 
jQuery Presentation to Rails Developers
jQuery Presentation to Rails DevelopersjQuery Presentation to Rails Developers
jQuery Presentation to Rails Developers
 
Web Automation Testing Using Selenium
Web Automation Testing Using SeleniumWeb Automation Testing Using Selenium
Web Automation Testing Using Selenium
 
Rails 4.0
Rails 4.0Rails 4.0
Rails 4.0
 
Crafting Quality PHP Applications (Bucharest Tech Week 2017)
Crafting Quality PHP Applications (Bucharest Tech Week 2017)Crafting Quality PHP Applications (Bucharest Tech Week 2017)
Crafting Quality PHP Applications (Bucharest Tech Week 2017)
 
Future of Web Apps: Google Gears
Future of Web Apps: Google GearsFuture of Web Apps: Google Gears
Future of Web Apps: Google Gears
 
Introduction to plugin development
Introduction to plugin developmentIntroduction to plugin development
Introduction to plugin development
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
 
RSpec: Feature specs as checklist
RSpec: Feature specs as checklistRSpec: Feature specs as checklist
RSpec: Feature specs as checklist
 
The Coolest Symfony Components you’ve never heard of - DrupalCon 2017
The Coolest Symfony Components you’ve never heard of - DrupalCon 2017The Coolest Symfony Components you’ve never heard of - DrupalCon 2017
The Coolest Symfony Components you’ve never heard of - DrupalCon 2017
 
OpenERP and Perl
OpenERP and PerlOpenERP and Perl
OpenERP and Perl
 
Crafting Quality PHP Applications (PHPkonf 2018)
Crafting Quality PHP Applications (PHPkonf 2018)Crafting Quality PHP Applications (PHPkonf 2018)
Crafting Quality PHP Applications (PHPkonf 2018)
 
Crafting Quality PHP Applications (PHP Benelux 2018)
Crafting Quality PHP Applications (PHP Benelux 2018)Crafting Quality PHP Applications (PHP Benelux 2018)
Crafting Quality PHP Applications (PHP Benelux 2018)
 

Similar to Rails for Beginners - Le Wagon

Introduction à Ruby
Introduction à RubyIntroduction à Ruby
Introduction à Ruby
Microsoft
 
Supa fast Ruby + Rails
Supa fast Ruby + RailsSupa fast Ruby + Rails
Supa fast Ruby + Rails
Jean-Baptiste Feldis
 
Ruby on Rails - Introduction
Ruby on Rails - IntroductionRuby on Rails - Introduction
Ruby on Rails - Introduction
Vagmi Mudumbai
 
Ruby on Rails + AngularJS + Twitter Bootstrap
Ruby on Rails + AngularJS + Twitter BootstrapRuby on Rails + AngularJS + Twitter Bootstrap
Ruby on Rails + AngularJS + Twitter Bootstrap
Marcio Marinho
 
Pourquoi ruby et rails déchirent
Pourquoi ruby et rails déchirentPourquoi ruby et rails déchirent
Pourquoi ruby et rails déchirent
Nicolas Ledez
 
Ruby/Rails
Ruby/RailsRuby/Rails
Ruby/Rails
rstankov
 
Rails antipattern-public
Rails antipattern-publicRails antipattern-public
Rails antipattern-public
Chul Ju Hong
 
Rails antipatterns
Rails antipatternsRails antipatterns
Rails antipatterns
Chul Ju Hong
 
Pourquoi Ruby on Rails ça déchire ?
Pourquoi Ruby on Rails ça déchire ?Pourquoi Ruby on Rails ça déchire ?
Pourquoi Ruby on Rails ça déchire ?
Simon Courtois
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the FinishYehuda Katz
 
Android L01 - Warm Up
Android L01 - Warm UpAndroid L01 - Warm Up
Android L01 - Warm Up
Mohammad Shaker
 
Rails 3 overview
Rails 3 overviewRails 3 overview
Rails 3 overviewYehuda Katz
 
Phoenix for Rails Devs
Phoenix for Rails DevsPhoenix for Rails Devs
Phoenix for Rails Devs
Diacode
 
Intro to-rails-webperf
Intro to-rails-webperfIntro to-rails-webperf
Intro to-rails-webperfNew Relic
 
Why ruby on rails
Why ruby on railsWhy ruby on rails
Why ruby on rails
Boris Dinkevich
 
Resource and view
Resource and viewResource and view
Resource and viewPapp Laszlo
 
From Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) AgainFrom Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) Again
jonknapp
 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end Framework
Daniel Spector
 
GDG Almaty Meetup: Reactive full-stack .NET web applications with WebSharper
GDG Almaty Meetup: Reactive full-stack .NET web applications with WebSharperGDG Almaty Meetup: Reactive full-stack .NET web applications with WebSharper
GDG Almaty Meetup: Reactive full-stack .NET web applications with WebSharper
granicz
 

Similar to Rails for Beginners - Le Wagon (20)

Introduction à Ruby
Introduction à RubyIntroduction à Ruby
Introduction à Ruby
 
Supa fast Ruby + Rails
Supa fast Ruby + RailsSupa fast Ruby + Rails
Supa fast Ruby + Rails
 
Ruby on Rails - Introduction
Ruby on Rails - IntroductionRuby on Rails - Introduction
Ruby on Rails - Introduction
 
Ruby on Rails + AngularJS + Twitter Bootstrap
Ruby on Rails + AngularJS + Twitter BootstrapRuby on Rails + AngularJS + Twitter Bootstrap
Ruby on Rails + AngularJS + Twitter Bootstrap
 
Pourquoi ruby et rails déchirent
Pourquoi ruby et rails déchirentPourquoi ruby et rails déchirent
Pourquoi ruby et rails déchirent
 
The Rails Way
The Rails WayThe Rails Way
The Rails Way
 
Ruby/Rails
Ruby/RailsRuby/Rails
Ruby/Rails
 
Rails antipattern-public
Rails antipattern-publicRails antipattern-public
Rails antipattern-public
 
Rails antipatterns
Rails antipatternsRails antipatterns
Rails antipatterns
 
Pourquoi Ruby on Rails ça déchire ?
Pourquoi Ruby on Rails ça déchire ?Pourquoi Ruby on Rails ça déchire ?
Pourquoi Ruby on Rails ça déchire ?
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the Finish
 
Android L01 - Warm Up
Android L01 - Warm UpAndroid L01 - Warm Up
Android L01 - Warm Up
 
Rails 3 overview
Rails 3 overviewRails 3 overview
Rails 3 overview
 
Phoenix for Rails Devs
Phoenix for Rails DevsPhoenix for Rails Devs
Phoenix for Rails Devs
 
Intro to-rails-webperf
Intro to-rails-webperfIntro to-rails-webperf
Intro to-rails-webperf
 
Why ruby on rails
Why ruby on railsWhy ruby on rails
Why ruby on rails
 
Resource and view
Resource and viewResource and view
Resource and view
 
From Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) AgainFrom Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) Again
 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end Framework
 
GDG Almaty Meetup: Reactive full-stack .NET web applications with WebSharper
GDG Almaty Meetup: Reactive full-stack .NET web applications with WebSharperGDG Almaty Meetup: Reactive full-stack .NET web applications with WebSharper
GDG Almaty Meetup: Reactive full-stack .NET web applications with WebSharper
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

Rails for Beginners - Le Wagon