SlideShare a Scribd company logo
1 of 86
Download to read offline
Merb Slices
Slice By Who?

• Fabien Franzen a.k.a. loob2
• Actually remembers Merb 0.0.0.1 a.k.a ‘the pastie’
• Representing Belgium (or maybe not...)
Who Am I?
• Daniel Neighman a.k.a. hassox
• Engine Yarder
• Proud Aussie
What’s a Merb Slice?
What’s a Merb Slice?

•   Full Stack Mini Merb
    Application

•   Designed to be shared
    between applications

•   Built on Merbs Public
    API
What’s Included?
•   Full MVC Components

•   Assets

•   Routes

•   Full Namespacing

•   Hot Code Loading /
    Unloading

•   Distribution as Gems
Slice It
Slice It

• Get it:
➡   $ sudo gem install blog_slice
Slice It

• Get it:
➡   $ sudo gem install blog_slice



•   Install it:
➡   $ rake slices:blog_slice:install
Configure It
Configure It
                           config/init.rb

dependency quot;merb-slicesquot;
dependency quot;blog_slicequot;
Configure It
                            config/init.rb

dependency quot;merb-slicesquot;
dependency quot;blog_slicequot;

                           config/routes.rb

Merb::Router.prepare do
  all_slices
end
Run It
Run It


$ merb
Use It
Use It

• By Default, your slice is available at:
 • http://localhost:4000/blog_slice
Use It

• By Default, your slice is available at:
 • http://localhost:4000/blog_slice

• Get the posts:
 • http://localhost:4000/blog_slice/posts
Rake It
Rake It
There are many rake tasks available
Rake It
There are many rake tasks available
Rake It
There are many rake tasks available


•   rake slices
Rake It
There are many rake tasks available


•   rake slices
•   rake slices:install_as_gem
Rake It
There are many rake tasks available


•   rake slices
•   rake slices:install_as_gem
•   rake -T slices:blog_slice
Common Rake Tasks
• rake slices:blog_slice:copy_assets

• rake slices:blog_slice:patch

• rake slices:blog_slice:freeze(:*)

• rake slices:blog_slice:migrate

• rake slices:blog_slice:spec
Customize It
•   It’s just ruby. Monkey Patch it

•   Use the “patch” rake task

•   Slice code is in your app:

    •   Merb.root/slices/blog_slice
Custom Options
Custom Options

• Each Slice has a Configuration Hash
•   Merb::Slices::config[:blog_slice]
Custom Options

• Each Slice has a Configuration Hash
•   Merb::Slices::config[:blog_slice]




• Aliased To:
•   BlogSlice[]
Custom Actions
Custom Actions
Adding the Action to the controller
$ rake slices:blog_slice:patch
Custom Actions
Adding the Action to the controller
$ rake slices:blog_slice:patch



Edit: Merb.root/blog_slices/app/controllers/posts.rb

def publish
  @post = Post.first(:permalink => params[:permalink])
  if @post.publish!
    redirect slice_url(:post, @post), :message => quot;Posts Publishedquot;
  else
    render :edit
  end
end
Custom Views
Custom Views
$ rake slices:blog_slice:freeze:views
Custom Views
$ rake slices:blog_slice:freeze:views


Available in:
   Merb.root/slices/blog_slice/app/views
Custom Views
$ rake slices:blog_slice:freeze:views


Available in:
   Merb.root/slices/blog_slice/app/views


Add templates for additional formats
Custom Layout
Custom Layout

• By Default the Slice layout is used
Custom Layout

• By Default the Slice layout is used
  Merb::BootLoader.after_app_loads do

    BlogSlice[:layout] = :blog_slice_layout
  end
Custom Models
Custom Models

Stubs or Freeze?

$ rake slices:blog_slice:freeze:models
Custom Models
                                         module BlogSlice
                                           class Post

                                            property :published, Boolean
                                            property :published_at, DateTime
Stubs or Freeze?
                                             def publish!
                                               self.published = true
$ rake slices:blog_slice:freeze:models         self.published_at = DateTime.now
                                               save
                                             end

                                           end # Post
                                         end # BlogSlice
Custom Routes
Merb::Router.prepare do

  add_slice(:blog_slice, :path_prefix => quot;blogquot;, :default_routes => nil) do
    identify BlogSlice::Post => :permalink do
      match(quot;/posts/:permalink/publishquot;).
        to(:controller => quot;postsquot;, :action => quot;publishquot;).
        name(:publish)
    end
  end

end
Prefix URL Paths
Prefix URL Paths


• Setup a Path Prefix
•   add_slice(:blog_slice, quot;awesomequot;)

•   Example: /awesome/posts
Prefix Named Routes
Prefix Named Routes
• Default name_prefix on named routes:
 •   add_slice(:blog_slice)

 •   url(:blog_slice_posts)
Prefix Named Routes
• Default name_prefix on named routes:
 •   add_slice(:blog_slice)

 •   url(:blog_slice_posts)



• Setup a Name Prefix
 •   add_slice(:blog_slice, :name_prefix => quot;blogquot;)

 •   url(:blog_posts)
Write It
Development Flow
Development Flow

•Generate
•Write
•Use
•Write
•Use
•Finish - Install
Development Flow

•Generate
•Write
•Use
•Write
•Use
                    $ slice
•Finish - Install
Generate It


$ merb-gen slice blog_slice
New Slice Structure
blog_slice           blog_slice
   |-app                |-public
   |---controllers      |---images
   |---helpers          |---javascripts
   |---models           |---stylesheets
   |---views            |-spec
   |-----layout         |---controllers
   |-----main           |-stubs
   |-lib                |---app
   |---blog_slice       |-----controllers
   |-pkg                |-----models
Some Important Files
blog_slice/lib
   blog_slice
     merbtasks.rb
     slicetasks.rb   < Here be dragons

     spectasks.rb
   blog_slice.rb
Initialize It
Initialize It

• blog_slice.rb is where the slice initializes
Initialize It

• blog_slice.rb is where the slice initializes
 • Dependencies
Initialize It

• blog_slice.rb is where the slice initializes
 • Dependencies
 • Router
Initialize It

• blog_slice.rb is where the slice initializes
 • Dependencies
 • Router
 • Hooks
Fake It


• Setup a fake “host app” env in config/init.rb
• config/init.rb is not used normally
Controllers
Controllers
•    blog_slice/app/controllers/posts.rb


    class BlogSlice::Posts < BlogSlice::Application

      # Your Controller Code Here

    end # Posts
Views


•   blog_slice/app/views/posts/show.html.haml

•   blog_slice/app/views/layouts/application.html.haml
Layouts


• blog_slice/lib/blog_slice.rb
 Merb::Slices::config[:blog_slice][:layout] ||= :blog_slice
slice_url
slice_url
• Use slice_url for url generation inside a slice
• slice_url(:controller => ..., :action => ...)
• slice_url(:post, @post)
• slice_url(:merb_auth_slice_password, :login)
Models
Namespace your models (you don’t have to)

 class BlogSlice::Post
   include DataMapper::Resource

   property   :id,         Serial
   property   :title,      String, :lenth => 255
   property   :body,       Text
   property   :slug,       Slug

   before :save do
     self.slug = self.title unless self.permalink
   end

 end # BlogSlice::Post
Assets
Assets

• blog_slice/public
       • images, css, javascipt

• Read:
  blog_slice/app/helpers/application_helper.rb
Images


• blog_slice/public/images
• Helper: image_path(image)
Javascript


• blog_slice/public/javascripts
• Helper: javascript_path(javascript)
Stylesheets


• blog_slice/public/stylesheets
• Helper: stylesheet_path(style)
Install Assets


• rake slices:blog_slice:copy_assets
Route It
blog_slice/lib/blog_slice.rb (the init.rb)

def self.setup_router(scope)
  scope.identify Post => :slug do
    resource :posts
  end
end
Hook It
Hook It

• loaded
Hook It

• loaded
• init
Hook It

• loaded
• init
• activate
Hook It

• loaded
• init
• activate
• deactivate
Hooks - loaded

• Slice Code Loads
• Hook - loaded
• Boot Loader LoadClasses
Hooks - init, activate

• Slice Hook - init
• BootLoader AfterAppLoads
• Slice Hook - activate: triggered by
  Merb::Slices.activate(BlogSlice)
Hooks - deactivate


• Triggered by
  Merb::Slices.deactivate(BlogSlice)
Spec It

• Specs go in blog_slice/spec
• rake -T spec
• Spec your slice like an app
Spec It - Setup

• Setup the routes:
 before :all do
   Merb::Router.prepare do
     add_slice(:blog_slice)
   end if standalone?
 end
Distribute It

• rake gemspec

• rake install
Questions?

More Related Content

What's hot

Building web framework with Rack
Building web framework with RackBuilding web framework with Rack
Building web framework with Racksickill
 
Vagrant WordCamp Hamilton
Vagrant  WordCamp HamiltonVagrant  WordCamp Hamilton
Vagrant WordCamp HamiltonPaul Bearne
 
Ruby off Rails (japanese)
Ruby off Rails (japanese)Ruby off Rails (japanese)
Ruby off Rails (japanese)Stoyan Zhekov
 
Sinatra Rack And Middleware
Sinatra Rack And MiddlewareSinatra Rack And Middleware
Sinatra Rack And MiddlewareBen Schwarz
 
Ruby MVC from scratch with Rack
Ruby MVC from scratch with RackRuby MVC from scratch with Rack
Ruby MVC from scratch with RackDonSchado
 
Intro to Rails
Intro to Rails Intro to Rails
Intro to Rails epiineg1
 
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST APIWordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST APIBrian Hogg
 
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpOptimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpMatthew Davis
 
Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!Jeff Jones
 
Ruby on Rails - Introduction
Ruby on Rails - IntroductionRuby on Rails - Introduction
Ruby on Rails - IntroductionVagmi Mudumbai
 
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Alberto Perdomo
 
Rails Girls: Programming, Web Applications and Ruby on Rails
Rails Girls: Programming, Web Applications and Ruby on RailsRails Girls: Programming, Web Applications and Ruby on Rails
Rails Girls: Programming, Web Applications and Ruby on RailsDonSchado
 
Cloud Automation with Opscode Chef
Cloud Automation with Opscode ChefCloud Automation with Opscode Chef
Cloud Automation with Opscode ChefSri Ram
 
The DOM is a Mess @ Yahoo
The DOM is a Mess @ YahooThe DOM is a Mess @ Yahoo
The DOM is a Mess @ Yahoojeresig
 
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistranonickblah
 

What's hot (20)

Mojolicious
MojoliciousMojolicious
Mojolicious
 
Building web framework with Rack
Building web framework with RackBuilding web framework with Rack
Building web framework with Rack
 
Vagrant WordCamp Hamilton
Vagrant  WordCamp HamiltonVagrant  WordCamp Hamilton
Vagrant WordCamp Hamilton
 
Debugging on rails
Debugging on railsDebugging on rails
Debugging on rails
 
Ruby off Rails (japanese)
Ruby off Rails (japanese)Ruby off Rails (japanese)
Ruby off Rails (japanese)
 
Sinatra Rack And Middleware
Sinatra Rack And MiddlewareSinatra Rack And Middleware
Sinatra Rack And Middleware
 
Mojolicious and REST
Mojolicious and RESTMojolicious and REST
Mojolicious and REST
 
Ruby MVC from scratch with Rack
Ruby MVC from scratch with RackRuby MVC from scratch with Rack
Ruby MVC from scratch with Rack
 
Intro to Rails
Intro to Rails Intro to Rails
Intro to Rails
 
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST APIWordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
 
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpOptimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
 
Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!
 
Ruby on Rails - Introduction
Ruby on Rails - IntroductionRuby on Rails - Introduction
Ruby on Rails - Introduction
 
Capistrano2
Capistrano2Capistrano2
Capistrano2
 
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
 
Intro to Rack
Intro to RackIntro to Rack
Intro to Rack
 
Rails Girls: Programming, Web Applications and Ruby on Rails
Rails Girls: Programming, Web Applications and Ruby on RailsRails Girls: Programming, Web Applications and Ruby on Rails
Rails Girls: Programming, Web Applications and Ruby on Rails
 
Cloud Automation with Opscode Chef
Cloud Automation with Opscode ChefCloud Automation with Opscode Chef
Cloud Automation with Opscode Chef
 
The DOM is a Mess @ Yahoo
The DOM is a Mess @ YahooThe DOM is a Mess @ Yahoo
The DOM is a Mess @ Yahoo
 
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
 

Similar to Merb Slices

Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...Jazkarta, Inc.
 
OSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialOSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialYi-Ting Cheng
 
Practical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppPractical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppSmartLogic
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular applicationmirrec
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slidesharetomcopeland
 
Writing Software not Code with Cucumber
Writing Software not Code with CucumberWriting Software not Code with Cucumber
Writing Software not Code with CucumberBen Mabey
 
Damage Control
Damage ControlDamage Control
Damage Controlsintaxi
 
Umleitung: a tiny mochiweb/CouchDB app
Umleitung: a tiny mochiweb/CouchDB appUmleitung: a tiny mochiweb/CouchDB app
Umleitung: a tiny mochiweb/CouchDB appLenz Gschwendtner
 
Deploying Rails Applications with Capistrano
Deploying Rails Applications with CapistranoDeploying Rails Applications with Capistrano
Deploying Rails Applications with CapistranoAlmir Mendes
 
Your own (little) gem: building an online business with Ruby
Your own (little) gem: building an online business with RubyYour own (little) gem: building an online business with Ruby
Your own (little) gem: building an online business with RubyLindsay Holmwood
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.catPablo Godel
 
Perl web frameworks
Perl web frameworksPerl web frameworks
Perl web frameworksdiego_k
 
Curscatalyst
CurscatalystCurscatalyst
CurscatalystKar Juan
 

Similar to Merb Slices (20)

Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
 
OSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialOSDC 2009 Rails Turtorial
OSDC 2009 Rails Turtorial
 
Capistrano
CapistranoCapistrano
Capistrano
 
Practical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppPractical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails App
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular application
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
 
Writing Software not Code with Cucumber
Writing Software not Code with CucumberWriting Software not Code with Cucumber
Writing Software not Code with Cucumber
 
Rails::Engine
Rails::EngineRails::Engine
Rails::Engine
 
Damage Control
Damage ControlDamage Control
Damage Control
 
Umleitung: a tiny mochiweb/CouchDB app
Umleitung: a tiny mochiweb/CouchDB appUmleitung: a tiny mochiweb/CouchDB app
Umleitung: a tiny mochiweb/CouchDB app
 
Deploying Rails Applications with Capistrano
Deploying Rails Applications with CapistranoDeploying Rails Applications with Capistrano
Deploying Rails Applications with Capistrano
 
Deploy like a pro!
Deploy like a pro!Deploy like a pro!
Deploy like a pro!
 
Performance
PerformancePerformance
Performance
 
Capistrano Overview
Capistrano OverviewCapistrano Overview
Capistrano Overview
 
Your own (little) gem: building an online business with Ruby
Your own (little) gem: building an online business with RubyYour own (little) gem: building an online business with Ruby
Your own (little) gem: building an online business with Ruby
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
Capistrano
CapistranoCapistrano
Capistrano
 
Perl web frameworks
Perl web frameworksPerl web frameworks
Perl web frameworks
 
Curscatalyst
CurscatalystCurscatalyst
Curscatalyst
 
Snakes on a Treadmill
Snakes on a TreadmillSnakes on a Treadmill
Snakes on a Treadmill
 

Recently uploaded

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
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
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Recently uploaded (20)

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
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
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

Merb Slices