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

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
 
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
 
"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
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
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
 
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
 
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
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
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
 
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
 

Recently uploaded (20)

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
 
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
 
"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
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
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
 
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
 
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
 
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
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
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
 
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
 

MacRuby - When objective-c and Ruby meet