SlideShare uma empresa Scribd logo
1 de 44
RIDING
RAILS 4
#BCNONRAILS4
PHILIP DE SMEDT
  @PHILIPDESMEDT
PHILIPDESMEDT.COM
FREELANCE
FULL-STACK
DEVELOPER
       (HIRE ME)
I WROTE A BOOK
     UPGRADE TO RAILS 4
WHO HAS
TRIED RAILS 4?

    gem install rails --version
    4.0.0.beta1 --no-ri --no-rdoc
TURBOLINKS
CLICK
LISTENS TO

   EVENTS
LISTENS TO CLICK EVENTS

      LOADS CONTENT

    WITHOUT
   RELOADING
    THE PAGE
LISTENS TO CLICK EVENTS
LOADS CONTENT WITHOUT
RELOADING THE PAGE

   REPLACES BODY+TITLE

        HTML5
     USING

     pushState
DEMO
RUSSIAN DOLL CACHING
LET’S CACHE

class Post < ActiveRecord::Base
 has_many :categories
end

class Category < ActiveRecord::Base
 belongs_to :post, touch: true
end
RAILS 3

<!-- app/views/posts/show.html.erb -->
<% cache [„v1‟, @post] do %>
 <h1><%= @post.title %> categories:</h1>
 <ul><%= render @post.categories %></ul>
<% end %>
RAILS 3
<!-- app/views/categories/_category.html.erb -->
<% cache [„v1‟, category] do %>
 <li>
   <%= category.title %>
   <%= link_to “edit”, category %>
 </li>
<% end %>
RAILS 3 CACHE KEYS


  views/v1/posts/1-
  20130228151844
RAILS 3
<!-- app/views/categories/_category.html.erb -->

<% cache [„v2  ‟, category] do %>
 <li>
  <%= category.title %>

  <%= link_to “RENAME”, category %>
 </li>
<% end %>
RAILS 3

<!-- app/views/posts/show.html.erb -->
<% cache [„v2‟, @post] do %>
 <h1><%= @post.title %> categories:</h1>
 <ul><%= render @post.categories %></ul>
<% end %>
<!-- app/views/posts/show.html.erb -->
<% cache @post do %>
 <h1><%= @post.title %> categories:</h1>
 <ul><%= render @post.categories %></ul>
<% end %>
<!-- app/views/categories/_category.html.erb -->
<% cache category do %>
 <li>
   <%= category.title %>
   <%= link_to “edit”, category %>
 </li>
<% end %>
RAILS 4 CACHE DIGEST

views/posts/1-
20130228151844/fbda9857
614e68ed1df453559a761d4
7
STRONG PARAMETERS
RAILS 3

class User < ActiveRecord::Base
     attr_accessible :name, :email
end

def create
  @user = User.new(params[:user])
  @user.save
end
EXAMPLE
RAILS 4

class CarsController < ApplicationController
   def create
           @car = Car.new(car_params)
           if @car.save
            redirect_to @car
           else
               render „new‟
         end
    end
end
private
  def car_params
   params.require(:car).permit(:name, :year, :brand)
  end


require(key) - Ensures that a parameter is present. If it‟s present,
returns the parameter at the given key, otherwise raises an
ActionController:: ParameterMissing error.

permit(filters) - Returns a new ActionController::Parameters
instance that includes only the given filters
and sets the permitted attribute for the object to true. This is useful
for limiting which attributes should be allowed for mass updating.
LIVE STREAMING
ACTIONCONTROLLER::LIVE

MIXIN I/O OBJECT
STREAM DATA TO CLIENT
DON’T USE
WEBrick
USE PUMA OR RAINBOWS!
RUNS IN
SEPARATE
 THREAD
CLOSE YOUR
STREAM WHEN
    DONE
PUMA vs.
RAINBOWS! vs.
  NODE.JS
RUBYSNIPPETS.COM
DEMO
ACTIVEMODEL::MODEL
FORM WITHOUT
ACTIVE RECORD.
     WTF?
FORM_TAG
  HELPER

CREATE MODEL
EXAMPLE
class Contact
   include ActiveModel::Model

  attr_accessor :name, :email, :message
  validates :name, presence: true
  validates :email, presence: true
  validates :message, presence: true, length:
  { maximum: 300 }
end

contact = Contact.new(name: 'John Doe', email:
'john@doe.com', message: 'a test')
<h1>Contact Us</h1>

<%= form_for @contact do |f| %>
  <%= f.label :name %>
  <%= f.text_field :name %>
  <%= f.label :email %>
  <%= f.email_field :email %>
  <%= f.label :message %>
  <%= f.text_area :message %>
  <%= f.submit 'Submit' %>
<% end %>
class ContactsController < ApplicationController
    def new
        @contact = Contact.new
    end

      def create
          @contact = Contact.new(params[:contact])
          if @contact.valid?
              UserMailer.new_contact(@contact).deliver
              redirect_to root_path, notice: "Message sent! Thanks.”
           else
              render :new
          end
      end
end
LOTS OF OTHER STUFF
  ROUTING CONCERNS          THREAD SAFETY


CONTROLLER-WIDE E-TAGS        ENCRYPTED COOKIES

               HTTP PATCH VERB
                                     CUSTOM FLASH TYPES
HTML5 FORM HELPERS

                                   SCHEMA CACHE DUMP
      PAGE/ACTION CACHING

           NO MORE OBSERVERS/SWEEPERS

     ACTIVE RESOURCE             INDEX PAGE CONTROLLER
EDUCATION IS BROKEN.
I’LL BE TEACHING RAILS…
            IN BARCELONA.



          I <3 DEVBOOTCAMP/STARTER LEAGUE/…
COME SAY HI

    PHILIP DE SMEDT
            @PHILIPDESMEDT

          PHILIPDESMEDT.COM

LEANPUB.COM/UPGRADETORAILS4

Mais conteúdo relacionado

Mais procurados

Custom Template for Joomla! 3
Custom Template for Joomla! 3Custom Template for Joomla! 3
Custom Template for Joomla! 3Carly Willats
 
Beginning WordPress Plugin Development
Beginning WordPress Plugin DevelopmentBeginning WordPress Plugin Development
Beginning WordPress Plugin DevelopmentAizat Faiz
 
How to remove alhea.com from your computer
How to remove alhea.com from your computerHow to remove alhea.com from your computer
How to remove alhea.com from your computerharoNaroum
 
Copycat Site BluePrint - make money online fast
Copycat Site BluePrint - make money online fastCopycat Site BluePrint - make money online fast
Copycat Site BluePrint - make money online fastEdward806784
 
Scraping Handout
Scraping HandoutScraping Handout
Scraping HandoutCindy Royal
 
Joomla Quick Start 1
Joomla  Quick  Start 1Joomla  Quick  Start 1
Joomla Quick Start 1guest38bfe1
 
Using Wordpress with Reclaim Hosting
Using Wordpress with Reclaim HostingUsing Wordpress with Reclaim Hosting
Using Wordpress with Reclaim HostingCindy Royal
 
45 Minute Drupal Site
45 Minute Drupal Site45 Minute Drupal Site
45 Minute Drupal SiteAngus Pratt
 
Really Awesome WordPress Plugins You Should Know About
Really Awesome WordPress Plugins You Should Know AboutReally Awesome WordPress Plugins You Should Know About
Really Awesome WordPress Plugins You Should Know AboutAngela Bowman
 
Facebook Social Plugins
Facebook Social PluginsFacebook Social Plugins
Facebook Social PluginsAizat Faiz
 
Riann salandanan howtouse_canva
Riann salandanan howtouse_canvaRiann salandanan howtouse_canva
Riann salandanan howtouse_canvaRiann Salandanan
 
Cbcode volume2
Cbcode volume2Cbcode volume2
Cbcode volume2Madfex
 
Material emociones
Material emocionesMaterial emociones
Material emocionesPaula Muñoz
 
How to use a SharePoint Team Site effectively for Collaboration
How to use a SharePoint Team Site effectively for CollaborationHow to use a SharePoint Team Site effectively for Collaboration
How to use a SharePoint Team Site effectively for CollaborationBenjamin Niaulin
 
2014 adp login training
2014 adp login training2014 adp login training
2014 adp login trainingcarecruiter
 
Adp login training
Adp login trainingAdp login training
Adp login trainingcarecruiter
 

Mais procurados (20)

Custom Template for Joomla! 3
Custom Template for Joomla! 3Custom Template for Joomla! 3
Custom Template for Joomla! 3
 
Beginning WordPress Plugin Development
Beginning WordPress Plugin DevelopmentBeginning WordPress Plugin Development
Beginning WordPress Plugin Development
 
How to remove alhea.com from your computer
How to remove alhea.com from your computerHow to remove alhea.com from your computer
How to remove alhea.com from your computer
 
Copycat Site BluePrint - make money online fast
Copycat Site BluePrint - make money online fastCopycat Site BluePrint - make money online fast
Copycat Site BluePrint - make money online fast
 
Scraping Handout
Scraping HandoutScraping Handout
Scraping Handout
 
Joomla Quick Start 1
Joomla  Quick  Start 1Joomla  Quick  Start 1
Joomla Quick Start 1
 
2222
22222222
2222
 
Using Wordpress with Reclaim Hosting
Using Wordpress with Reclaim HostingUsing Wordpress with Reclaim Hosting
Using Wordpress with Reclaim Hosting
 
Sweet-page.com
Sweet-page.comSweet-page.com
Sweet-page.com
 
45 Minute Drupal Site
45 Minute Drupal Site45 Minute Drupal Site
45 Minute Drupal Site
 
Really Awesome WordPress Plugins You Should Know About
Really Awesome WordPress Plugins You Should Know AboutReally Awesome WordPress Plugins You Should Know About
Really Awesome WordPress Plugins You Should Know About
 
Facebook Social Plugins
Facebook Social PluginsFacebook Social Plugins
Facebook Social Plugins
 
Riann salandanan howtouse_canva
Riann salandanan howtouse_canvaRiann salandanan howtouse_canva
Riann salandanan howtouse_canva
 
Cbcode volume2
Cbcode volume2Cbcode volume2
Cbcode volume2
 
Material emociones
Material emocionesMaterial emociones
Material emociones
 
How to use a SharePoint Team Site effectively for Collaboration
How to use a SharePoint Team Site effectively for CollaborationHow to use a SharePoint Team Site effectively for Collaboration
How to use a SharePoint Team Site effectively for Collaboration
 
Killer KPIs: Turning Data into Gs
Killer KPIs: Turning Data into GsKiller KPIs: Turning Data into Gs
Killer KPIs: Turning Data into Gs
 
Jabber Bot
Jabber BotJabber Bot
Jabber Bot
 
2014 adp login training
2014 adp login training2014 adp login training
2014 adp login training
 
Adp login training
Adp login trainingAdp login training
Adp login training
 

Semelhante a Riding Rails 4

What's new in Rails 4
What's new in Rails 4What's new in Rails 4
What's new in Rails 4Fabio Akita
 
Desenvolvimento web com Ruby on Rails (parte 6)
Desenvolvimento web com Ruby on Rails (parte 6)Desenvolvimento web com Ruby on Rails (parte 6)
Desenvolvimento web com Ruby on Rails (parte 6)Joao Lucas Santana
 
HTML::FormFu talk for Sydney PM
HTML::FormFu talk for Sydney PMHTML::FormFu talk for Sydney PM
HTML::FormFu talk for Sydney PMDean Hamstead
 
PHP and MySQL : Server Side Scripting For Web Development
PHP and MySQL : Server Side Scripting For Web DevelopmentPHP and MySQL : Server Side Scripting For Web Development
PHP and MySQL : Server Side Scripting For Web DevelopmentEdureka!
 
OSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialOSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialYi-Ting Cheng
 
Working With The Symfony Admin Generator
Working With The Symfony Admin GeneratorWorking With The Symfony Admin Generator
Working With The Symfony Admin GeneratorJohn Cleveley
 
Ruby on rails3 - introduction to rails
Ruby on rails3 - introduction to railsRuby on rails3 - introduction to rails
Ruby on rails3 - introduction to railsEmad Elsaid
 
Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfonyFrancois Zaninotto
 
Desenvolvimento web com Ruby on Rails (parte 4)
Desenvolvimento web com Ruby on Rails (parte 4)Desenvolvimento web com Ruby on Rails (parte 4)
Desenvolvimento web com Ruby on Rails (parte 4)Joao Lucas Santana
 
Action Controller Overview, Season 2
Action Controller Overview, Season 2Action Controller Overview, Season 2
Action Controller Overview, Season 2RORLAB
 
Ruby on Rails : RESTful 和 Ajax
Ruby on Rails : RESTful 和 AjaxRuby on Rails : RESTful 和 Ajax
Ruby on Rails : RESTful 和 AjaxWen-Tien Chang
 
Getting started with WordPress development
Getting started with WordPress developmentGetting started with WordPress development
Getting started with WordPress developmentSteve Mortiboy
 
CICONF 2012 - Don't Make Me Read Your Mind
CICONF 2012 - Don't Make Me Read Your MindCICONF 2012 - Don't Make Me Read Your Mind
CICONF 2012 - Don't Make Me Read Your Mindciconf
 

Semelhante a Riding Rails 4 (20)

What's new in Rails 4
What's new in Rails 4What's new in Rails 4
What's new in Rails 4
 
Desenvolvimento web com Ruby on Rails (parte 6)
Desenvolvimento web com Ruby on Rails (parte 6)Desenvolvimento web com Ruby on Rails (parte 6)
Desenvolvimento web com Ruby on Rails (parte 6)
 
HTML::FormFu talk for Sydney PM
HTML::FormFu talk for Sydney PMHTML::FormFu talk for Sydney PM
HTML::FormFu talk for Sydney PM
 
PHP and MySQL : Server Side Scripting For Web Development
PHP and MySQL : Server Side Scripting For Web DevelopmentPHP and MySQL : Server Side Scripting For Web Development
PHP and MySQL : Server Side Scripting For Web Development
 
The Rails Way
The Rails WayThe Rails Way
The Rails Way
 
OSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialOSDC 2009 Rails Turtorial
OSDC 2009 Rails Turtorial
 
Working With The Symfony Admin Generator
Working With The Symfony Admin GeneratorWorking With The Symfony Admin Generator
Working With The Symfony Admin Generator
 
Devise and Rails
Devise and RailsDevise and Rails
Devise and Rails
 
Ruby on rails3 - introduction to rails
Ruby on rails3 - introduction to railsRuby on rails3 - introduction to rails
Ruby on rails3 - introduction to rails
 
Rails introduction
Rails introductionRails introduction
Rails introduction
 
How to connect redis and mule esb using spring data redis module
How to connect redis and mule esb using spring data redis moduleHow to connect redis and mule esb using spring data redis module
How to connect redis and mule esb using spring data redis module
 
Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfony
 
Desenvolvimento web com Ruby on Rails (parte 4)
Desenvolvimento web com Ruby on Rails (parte 4)Desenvolvimento web com Ruby on Rails (parte 4)
Desenvolvimento web com Ruby on Rails (parte 4)
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
 
Action Controller Overview, Season 2
Action Controller Overview, Season 2Action Controller Overview, Season 2
Action Controller Overview, Season 2
 
Ruby on Rails : RESTful 和 Ajax
Ruby on Rails : RESTful 和 AjaxRuby on Rails : RESTful 和 Ajax
Ruby on Rails : RESTful 和 Ajax
 
Taking your Web App for a walk
Taking your Web App for a walkTaking your Web App for a walk
Taking your Web App for a walk
 
Getting started with WordPress development
Getting started with WordPress developmentGetting started with WordPress development
Getting started with WordPress development
 
CICONF 2012 - Don't Make Me Read Your Mind
CICONF 2012 - Don't Make Me Read Your MindCICONF 2012 - Don't Make Me Read Your Mind
CICONF 2012 - Don't Make Me Read Your Mind
 
Beyond MVC
Beyond MVCBeyond MVC
Beyond MVC
 

Último

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
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
 
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
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
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
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
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
 

Último (20)

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
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
 
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
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 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
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
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
 

Riding Rails 4