SlideShare ist ein Scribd-Unternehmen logo
1 von 86
Downloaden Sie, um offline zu lesen
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?

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
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
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
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
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Kürzlich hochgeladen (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
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
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

Merb Slices