SlideShare a Scribd company logo
1 of 98
Download to read offline
MacRuby
                           Ruby + ObjC




Friday, February 6, 2009
COCOA
             Apple's Objective-C based programming environment for
                                   Mac OS X
Friday, February 6, 2009
COCOA


    • frameworks

    • APIs

    • accompanying          runtimes

                           Goal: native Mac applications

Friday, February 6, 2009
OBJECTIVE-C 2.0


    • reflective

    • object-oriented

    • garbage              collection

    • 32         and 64-bit support



Friday, February 6, 2009
RUBY


                           obj.method parameter




Friday, February 6, 2009
OBJECTIVE-C 2.0


                           [obj method:parameter];




Friday, February 6, 2009
RUBY


                           friends = []




Friday, February 6, 2009
OBJECTIVE-C 2.0


                NSMutableArray *friends =
             [[NSMutableArray alloc] init];




Friday, February 6, 2009
COCOA



                       Goal => native Mac applications => ObjC




Friday, February 6, 2009
:emo:
Friday, February 6, 2009
RUBYCOCOA


                   bridge between
          the Objective-C runtime and MRI




Friday, February 6, 2009
RUBYCOCOA


               No more ObjC code to write :)




Friday, February 6, 2009
RUBYCOCOA


                    Write cocoa apps in RUBY :)




Friday, February 6, 2009
RUBYCOCOA


          potentially prohibitive cost :(




Friday, February 6, 2009
RUBYCOCOA


                           conversion cost :(




Friday, February 6, 2009
RUBYCOCOA


                       message forwarding cost :(




Friday, February 6, 2009
MacRuby




Friday, February 6, 2009
MacRuby




                           APPLE'S OPEN SOURCE
                                  PROJECT



Friday, February 6, 2009
MacRuby




                           NOT A BRIDGE




Friday, February 6, 2009
MacRuby




                           BUILT ON TOP OF THE
                           OBJECTIVE-C RUNTIME



Friday, February 6, 2009
MacRuby




   
 all classes 
 => Objective-C
   
 all methods 
=> Objective-C
   
 all objects 
=> Objective-C

Friday, February 6, 2009
MacRuby




                           CoreFoundation




Friday, February 6, 2009
MacRuby




                           native CoreFoundation
                                  data types



Friday, February 6, 2009
MacRuby




                           native threads




Friday, February 6, 2009
MacRuby




           Objective-C Garbage Collector




Friday, February 6, 2009
CODE EXAMPLE




Friday, February 6, 2009
$ macirb
     >> friends = []
     => []
     >> friends.class
     => NSMutableArray
     >> friends << quot;Juanquot;
     => [quot;Juanquot;]
     >> friends << quot;Denisquot;
     => [quot;Juanquot;, quot;Denisquot;]



Friday, February 6, 2009
>> friends << {first_name: quot;Laurentquot;,
                   last_name: quot;Sansonettiquot;}
   => [quot;Juanquot;, quot;Denisquot;,
                {:first_name=>quot;Laurentquot;,
                 :last_name=>quot;Sansonettiquot;}]
   >> friends.length
   => 3



Friday, February 6, 2009
>>           name = quot;Matt Aimonettiquot;
   =>           quot;Matt Aimonettiquot;
   >>           name.uppercaseString
   =>           quot;MATT AIMONETTIquot;
   >>           name.upcase
   =>           quot;MATT AIMONETTIquot;




Friday, February 6, 2009
X-CODE ENVIRONMENT




Friday, February 6, 2009
FREE



                           http://developer.apple.com/TOOLS/xcode/
Friday, February 6, 2009
WELL DOCUMENTED



                            http://developer.apple.com/index.html
Friday, February 6, 2009
WELL DONE
Friday, February 6, 2009
GREAT TOOLS
Friday, February 6, 2009
NEW PROJECT
Friday, February 6, 2009
MacRuby.framework
Friday, February 6, 2009
rb_main.rb
Friday, February 6, 2009
# Loading the Cocoa framework. If you need to load more
         frameworks, you can
         # do that here too.
         framework 'Cocoa'

         # Loading all the Ruby project files.
         dir_path =
               NSBundle.mainBundle.resourcePath.fileSystemRepresentation
         Dir.entries(dir_path).each do |path|
           if path != File.basename(__FILE__) and path[-3..-1] == '.rb'
             require(path)
           end
         end

         # Starting the Cocoa main loop.
         NSApplicationMain(0, nil)




Friday, February 6, 2009
MainMenu.nib
Friday, February 6, 2009
Friday, February 6, 2009
V of MVC
Friday, February 6, 2009
PREPARE BINDINGS
Friday, February 6, 2009
C of MVC
Friday, February 6, 2009
class Controller
                 attr_writer :friendsTableView

                    def awakeFromNib
                    end

                    def numberOfRowsInTableView(view)
                    end

                    def tableView(view, objectValueForTableColumn:column,
                                        row:index)
                    end

                    def tableView(view, setObjectValue:object,
                                        forTableColumn:column, row:index)
                    end

                    def addFriend(sender)
                    end

               end


Friday, February 6, 2009
class Controller
             attr_writer :friendsTableView
            end




                           ivar = outlet
Friday, February 6, 2009
class Controller

                      def awakeFromNib
                      end

               end




            called when instantiated by nib
Friday, February 6, 2009
class Controller

                      def awakeFromNib
                        @friends = []
                        @friendsTableView.dataSource = self
                      end

               end




      set the NSTableView data source
Friday, February 6, 2009
class Controller

                   def addFriend(sender)
                   end

               end




                            button action
Friday, February 6, 2009
bind the UI with the Controller
Friday, February 6, 2009
NSTableDataSource
                            informal protocol




Friday, February 6, 2009
def numberOfRowsInTableView(view)
                   end




                NSTableDataSource protocol
Friday, February 6, 2009
def tableView( view,
                    objectValueForTableColumn:column,
                    row:index )
            end




                           NSTableView selector
Friday, February 6, 2009
def tableView(view,
                            setObjectValue:object,
                            forTableColumn:column,
                            row:index)
            end




                           NSTableView selector
Friday, February 6, 2009
Compile
Friday, February 6, 2009
HOTCOCOA
Friday, February 6, 2009
PURE RUBY SEXINESS
Friday, February 6, 2009
NO X-CODE
Friday, February 6, 2009
RUBY DSL FOR COCOA
Friday, February 6, 2009
$ hotcocoa sdruby




Friday, February 6, 2009
$ hotcocoa sdruby




                            PROJECT SETTINGS
Friday, February 6, 2009
$ hotcocoa sdruby




                    CORE OF THE APP CODE
Friday, February 6, 2009
$ hotcocoa sdruby




                               MENU BAR
Friday, February 6, 2009
$ hotcocoa sdruby




                               RAKE TASKS
Friday, February 6, 2009
$ hotcocoa sdruby




                             APP RESOURCES
Friday, February 6, 2009
def start
      application :name => quot;Sdrubyquot; do |app|
        app.delegate = self
        window(:frame => [100, 100, 500, 500],
               :title => quot;SDRubyquot;) do |win|
          win << label(:text => quot;Hello from HotCocoaquot;,
                       :layout => {:start => false})
          win.will_close { exit }
        end
      end
    end



                           RUBY HELPERS
Friday, February 6, 2009
application :name => quot;Sdrubyquot; do |app|
               end




                           NSApplication
Friday, February 6, 2009
application :name => quot;Sdrubyquot; do |app|
                 app.delegate = self
               end




                           set the delegation
Friday, February 6, 2009
# file/open
                def on_open(menu)
                end

                # file/new
                def on_new(menu)
                end

                # help menu item
                def on_help(menu)
                end

                # window/zoom
                def on_zoom(menu)
                end

                # window/bring_all_to_front
                def on_bring_all_to_front(menu)
                end


                           set the delegation
Friday, February 6, 2009
window(:frame => [100, 100, 500, 500], :title => quot;SDRubyquot;) do |win|
     end




                           NSWindow helper
Friday, February 6, 2009
label(:text => quot;Hello from HotCocoaquot;, :layout => {:start => false})




                           NSTextField helper
Friday, February 6, 2009
win << label(:text => quot;Hello from HotCocoaquot;)




         contentView.addSubview helper
Friday, February 6, 2009
win.will_close { exit }




                           window callback
Friday, February 6, 2009
$ macrake




Friday, February 6, 2009
USE ANY COCOA
                             FRAMEWORK



Friday, February 6, 2009
WEBKIT




Friday, February 6, 2009
framework 'webkit'




Friday, February 6, 2009
win << web_view( :layout => {:expand => [:width, :height]},
                     :url => quot;http://sdruby.comquot;)




Friday, February 6, 2009
Friday, February 6, 2009
$ macrake deploy

                                  Raffle.app




Friday, February 6, 2009
AND MUCH MORE




Friday, February 6, 2009
DEMO APPS




Friday, February 6, 2009
SD RUBY RAFFLE APP
Friday, February 6, 2009
¿What to do
                           with MacRuby?



Friday, February 6, 2009
WEB APP
                           CLIENT



Friday, February 6, 2009
REUSE RUBY CODE




Friday, February 6, 2009
RETHINK DESKTOP APPS




Friday, February 6, 2009
WEBKIT INTEGRATION




Friday, February 6, 2009
¿MacRuby’s future?




Friday, February 6, 2009
MUCH BETTER
                           PERFORMANCE



Friday, February 6, 2009
NEW VM




Friday, February 6, 2009
SOURCE OBFUSCATION




Friday, February 6, 2009
COMPILED CODE




Friday, February 6, 2009
OPTIMIZATIONS BASED ON
             THE UNDERLYING OS



Friday, February 6, 2009
SOLID & SUPPORTED WAY TO
          WRITE COCOA APPS



Friday, February 6, 2009
¿MAINSTREAM WAY TO WRITE
            COCOA APPS?



Friday, February 6, 2009
¿IPHONE OUTPUT?




Friday, February 6, 2009
resources:
                                       http://www.macruby.org
                            http://tinyurl.com/macruby-getting-started
                           http://macruby.org/trac/wiki/MacRubyTutorial
                               http://github.com/masterkain/macruby
                                http://tinyurl.com/macruby-hillegass




Friday, February 6, 2009
Props to
                              Rich Kilmer
                              (hotcocoa)
                                   &
                           Laurent Sansonetti
                              (MacRuby)

Friday, February 6, 2009

More Related Content

Similar to MacRuby - When objective-c and Ruby meet

Oxente on Rails 2009
Oxente on Rails 2009Oxente on Rails 2009
Oxente on Rails 2009Fabio Akita
 
Developing Cocoa Applications with macRuby
Developing Cocoa Applications with macRubyDeveloping Cocoa Applications with macRuby
Developing Cocoa Applications with macRubyBrendan Lim
 
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 20092009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009Caue Guerra
 
Catalyst And Chained
Catalyst And ChainedCatalyst And Chained
Catalyst And ChainedJay Shirley
 
Rhouse - Home automation is ruby ?
Rhouse - Home automation is ruby ?Rhouse - Home automation is ruby ?
Rhouse - Home automation is ruby ?Fernand Galiana
 
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2Plone in the Cloud - an on-demand CMS hosted on Amazon EC2
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2Jazkarta, Inc.
 
Sqlpo Presentation
Sqlpo PresentationSqlpo Presentation
Sqlpo Presentationsandook
 
Google Web Toolkit for the Enterprise Developer - JBoss World 2009
Google Web Toolkit for the Enterprise Developer - JBoss World 2009Google Web Toolkit for the Enterprise Developer - JBoss World 2009
Google Web Toolkit for the Enterprise Developer - JBoss World 2009Fred Sauer
 
Software livre e padrões abertos no desenvolvimento Web
Software livre e padrões abertos no desenvolvimento WebSoftware livre e padrões abertos no desenvolvimento Web
Software livre e padrões abertos no desenvolvimento WebFelipe Ribeiro
 
RailsConf 2013: RubyMotion
RailsConf 2013: RubyMotionRailsConf 2013: RubyMotion
RailsConf 2013: RubyMotionBrian Sam-Bodden
 
Building a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQueryBuilding a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQueryTatsuhiko Miyagawa
 
Philly Spring UG Roo Overview
Philly Spring UG Roo OverviewPhilly Spring UG Roo Overview
Philly Spring UG Roo Overviewkrimple
 
IronRuby - A brave new world for .Net (NDC2010)
IronRuby - A brave new world for .Net (NDC2010)IronRuby - A brave new world for .Net (NDC2010)
IronRuby - A brave new world for .Net (NDC2010)Ben Hall
 
DjangoCon 2009 Keynote
DjangoCon 2009 KeynoteDjangoCon 2009 Keynote
DjangoCon 2009 KeynoteTed Leung
 
Beyond The Web: Drupal Meets The Desktop (And Mobile)
Beyond The Web: Drupal Meets The Desktop (And Mobile)Beyond The Web: Drupal Meets The Desktop (And Mobile)
Beyond The Web: Drupal Meets The Desktop (And Mobile)Justin Miller
 

Similar to MacRuby - When objective-c and Ruby meet (20)

Oxente on Rails 2009
Oxente on Rails 2009Oxente on Rails 2009
Oxente on Rails 2009
 
Developing Cocoa Applications with macRuby
Developing Cocoa Applications with macRubyDeveloping Cocoa Applications with macRuby
Developing Cocoa Applications with macRuby
 
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 20092009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
 
Catalyst And Chained
Catalyst And ChainedCatalyst And Chained
Catalyst And Chained
 
Rhouse - Home automation is ruby ?
Rhouse - Home automation is ruby ?Rhouse - Home automation is ruby ?
Rhouse - Home automation is ruby ?
 
RubyConf 2009
RubyConf 2009RubyConf 2009
RubyConf 2009
 
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2Plone in the Cloud - an on-demand CMS hosted on Amazon EC2
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2
 
Sqlpo Presentation
Sqlpo PresentationSqlpo Presentation
Sqlpo Presentation
 
Google Web Toolkit for the Enterprise Developer - JBoss World 2009
Google Web Toolkit for the Enterprise Developer - JBoss World 2009Google Web Toolkit for the Enterprise Developer - JBoss World 2009
Google Web Toolkit for the Enterprise Developer - JBoss World 2009
 
Software livre e padrões abertos no desenvolvimento Web
Software livre e padrões abertos no desenvolvimento WebSoftware livre e padrões abertos no desenvolvimento Web
Software livre e padrões abertos no desenvolvimento Web
 
RailsConf 2013: RubyMotion
RailsConf 2013: RubyMotionRailsConf 2013: RubyMotion
RailsConf 2013: RubyMotion
 
Building a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQueryBuilding a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQuery
 
Intro To Git
Intro To GitIntro To Git
Intro To Git
 
Enecomp 2009
Enecomp 2009Enecomp 2009
Enecomp 2009
 
Philly Spring UG Roo Overview
Philly Spring UG Roo OverviewPhilly Spring UG Roo Overview
Philly Spring UG Roo Overview
 
IronRuby - A brave new world for .Net (NDC2010)
IronRuby - A brave new world for .Net (NDC2010)IronRuby - A brave new world for .Net (NDC2010)
IronRuby - A brave new world for .Net (NDC2010)
 
DjangoCon 2009 Keynote
DjangoCon 2009 KeynoteDjangoCon 2009 Keynote
DjangoCon 2009 Keynote
 
Beyond The Web: Drupal Meets The Desktop (And Mobile)
Beyond The Web: Drupal Meets The Desktop (And Mobile)Beyond The Web: Drupal Meets The Desktop (And Mobile)
Beyond The Web: Drupal Meets The Desktop (And Mobile)
 
Becoming Indie
Becoming IndieBecoming Indie
Becoming Indie
 
Using SQLite
Using SQLiteUsing SQLite
Using SQLite
 

More from Matt Aimonetti

Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Matt Aimonetti
 
2D Video Games with MacRuby
2D Video Games with MacRuby2D Video Games with MacRuby
2D Video Games with MacRubyMatt Aimonetti
 
Future Of Ruby And Rails
Future Of Ruby And RailsFuture Of Ruby And Rails
Future Of Ruby And RailsMatt Aimonetti
 
Macruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich KilmerMacruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich KilmerMatt Aimonetti
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The EnterpriseMatt Aimonetti
 
Merb presentation at ORUG
Merb presentation at ORUGMerb presentation at ORUG
Merb presentation at ORUGMatt Aimonetti
 

More from Matt Aimonetti (8)

Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010
 
2D Video Games with MacRuby
2D Video Games with MacRuby2D Video Games with MacRuby
2D Video Games with MacRuby
 
Future Of Ruby And Rails
Future Of Ruby And RailsFuture Of Ruby And Rails
Future Of Ruby And Rails
 
Macruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich KilmerMacruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich Kilmer
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The Enterprise
 
Merb presentation at ORUG
Merb presentation at ORUGMerb presentation at ORUG
Merb presentation at ORUG
 
Merb Plugins 101
Merb Plugins 101Merb Plugins 101
Merb Plugins 101
 
Lazy Indexing
Lazy IndexingLazy Indexing
Lazy Indexing
 

Recently uploaded

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
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
 
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
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
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
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 

Recently uploaded (20)

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
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
 
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
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 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
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 

MacRuby - When objective-c and Ruby meet