SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Ruby
Aslak Hellesøy / Øystein Ellingbø
               Consulting
Yukihiro “Matz”
             Matsumoto
  1993-02-24: Matz starts hacking on Ruby

1995-12-21: Matz released Ruby on fj.sources

        1999: First book in Japanese

         2000: First book in English
Ruby
Sapir-Whorf Hypothesis
People who speak different
languages perceive and think
about the world quite differently

               People's thoughts are determined by the
             categories made available by their language

Differences among languages cause
differences in the thought of their speakers

            Any language that does change the way you
          think about programming isn't worth learning
Sortering i Java
Sortering i Ruby
Ruby implementations
      • MRI
      • YARV
      • JRuby
      • Rubinius
      • IronRuby
      • MagLev
      • MacRuby
Standard library
RubyForge
Irb
Ri
RDoc
Rake
RubyGems
RSpec
Test::Unit
RCov
Debugger
Object Oriented

• In Ruby, Everything is an Object
 • No Primitives
 • A few (seemingly) global functions
    • great for scripting ...
• FUN
Scripting Language
• Interpreted, not compiled
 • Slower execution
 • Faster development
• Implicit ‘main’ method
# hello.rb
puts quot;Hallo NTNU!quot;


$ ruby hello.rb
Hallo NTNU!
$
Coding Conventions
    def hello_world
      my_message = quot;Hiquot;
      puts my_message
    end


   • Two-space indentation
   • No tabs
   • Snake case (mostly)
Variables
ClassName
THIS_IS_A_CONSTANT
local_variable
$global_variable
@instance_variable
regular_method
question_method?
dangerous_method!
Variables
ClassName
THIS_IS_A_CONSTANT
local_variable
$global_variable
@instance_variable
regular_method
question_method?
dangerous_method!
Everything is an Object
   # Classes are objects
   hash = Hash.new

   # Numbers are objects
   -1.abs # => 1

   # Even nil is an object
   a = nil
   a.nil? # => true
Classes
class MyClass
end

o = MyClass.new
puts o
# #<MyClass:0x355e94>
Methods
class MyClass
  def hello(name)
    quot;Hi, #{name}quot;
  end
end

o = MyClass.new
puts o.hello(quot;Bobquot;)
# Hi, Bob
Operators are methods
 2+2               list << 'a'

 2.+(2)            list.<<('a')




          x == 5

          x.==(5)
Method arguments
def no_args
end

def two_args(foo, bar)
end

def varargs(foo, *bar)
  puts bar.class # => Array
end

def with_proc(foo, &proc)
  proc.call(quot;Chunkyquot;, quot;bacon!quot;)
end
Method Signatures
def weirdo(x)
  if x == 5
    quot;Bingoquot;
  else
    23
  end
end

puts weirdo(5)        # => quot;Bingoquot;
puts weirdo(quot;Spongequot;) # => 23
Dynamic Typing
quot;xquot; + 5 # TypeError: can't convert Fixnum into String



a = 'hi'
a = []       # a's type is carried by the value
puts a.class # => Array



def quack_it(o)
  o.quack
end

quack_it(duck) # OK, Duck has a quack method
quack_it(horse) # NoMethodError: undefined method 'quack'
It is still Typing
• Objects are still strongly typed
 • You can not tell an object to be another
    type
   • But you can tell a variable to point to
      an object of a different type
 • You can ask an object its type
  • But don’t
  • Instead, ask what it can do
Open Classes
Add Behaviour to
    Existing Classes
class Object
  def introduce_thyself
    quot;Hello, I am an instance of #{self.class}quot;
  end
end

puts quot;NDCquot;.introduce_thyself
# => Hello, I am an instance of String

puts 5.introduce_thyself
# => Hello, I am an instance of Fixnum

puts lambda {}.introduce_thyself
# => Hello, I am an instance of Proc
puts 5.even?
puts 8.even?
# false
# true
require 'rubygems'
 require 'activesupport'

 puts 2.days.ago

$ ruby days.rb
Sat Jun 14 13:55:51 +0200 2008
Collections
                      # Range
# Array
                      r = 4..9
a = [2, 3, 5]
                      puts r.to_a.inspect
puts a[1] # => 3
                      # [4, 5, 6, 7, 8, 9]
a << 6
puts a[-1] # => 6

        # Hash
        h = {'x' => 99, 'y' => 98}
        puts h['y'] # => 98
        h[1] = 'y'
        puts h[1] # => 'y'
Iterators
                    a = [2, 3, 5]
a = [2, 3, 5]
                    b = a.map do |e|
a.each do |e|
                      e*e
  puts e
                    end
end
#2
                    puts b.inspect
#3
                    # [4, 9, 25]
#5



    h = {'x' => 99, 'y' => 98}
    h.each do |k, v|
      puts quot;#{k} => #{v}quot;
    end
    # x => 99
    # y => 98
print_down_to_0(5)
#5
#4
#3
#2
#1
#0
Strings
• Similar “feel” to Java and C#, except
 • Mutable
 • No Unicode (getting there)
    s = quot;A Stringquot;
    puts s           # => A String
    puts s.object_id # => 9428360

    s.gsub!(quot;ingquot;,quot;andquot;)
    puts s           # => A Strand
    puts s.object_id # => 9428360
Symbols
• Immutable Strings
• Mostly used as keys in hashes
• Flyweight
x = :foo
y = :foo

puts x.equal?(y) # object identity
# => true
Metaprogrammerin

 def method_missing(name, *args)
 end
r = ReverseAnything.new
puts r.olleh
# hello
Blocks / yield
                    def i_yield(&proc)
def i_yield
                      proc.call('hi')
  yield 'hi'
                    end
end

i_yield do |what|
  puts what
end
# hi
(1...10).each_even do |e|
  puts e
end
#2
#4
#6
#8
(1...10).each_even { |e| puts e }
Modules
module Happiness
  def happy?
    true
  end
end

class RubyDeveloper
  include Happiness
end
Namespaces
module Awesome
  class Stuff
  end
end

s = Awesome::Stuff.new
Regular Expressions

• Find words and patterns in strings
 • Validation
 • Extract substrings
• Used heavily in Ruby, Perl, Python and Javascript
• b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}b
Regular Expressions
String text = quot;Aslak is 181cm tallquot;;
MatchCollection m = Regex.Matches(text, @quot;(d+)cmquot;);

                                                         C#
if (m.Success)
{
    Console.WriteLine(m[0].Groups[1].Value);
}


                          String text = quot;Aslak is 181cm tallquot;;
                          Pattern p = Pattern.compile(quot;(d+)cmquot;);

           Java           Matcher m = p.matcher(text);
                          if(m.find()) {
                            System.out.println(m.group(1));
                          }


text = quot;Aslak is 181cm tallquot;

                                Ruby
if text =~ /(d+)cm/
  puts $1
end
Resources

     http://ruby-lang.org/
    http://rubyforge.org/
    http://rubyquiz.com/
  http://tryruby.hobix.com/
+ thousands of blogs and lists

Weitere ähnliche Inhalte

Was ist angesagt?

Zen and the Art of Code Maintenance
Zen and the Art of Code MaintenanceZen and the Art of Code Maintenance
Zen and the Art of Code MaintenanceJemuel Young
 
Ruby 入門 第一次就上手
Ruby 入門 第一次就上手Ruby 入門 第一次就上手
Ruby 入門 第一次就上手Wen-Tien Chang
 
JSUG - Scala Lightning Talk by Michael Greifeneder
JSUG - Scala Lightning Talk by Michael GreifenederJSUG - Scala Lightning Talk by Michael Greifeneder
JSUG - Scala Lightning Talk by Michael GreifenederChristoph Pickl
 
Functional Pe(a)rls version 2
Functional Pe(a)rls version 2Functional Pe(a)rls version 2
Functional Pe(a)rls version 2osfameron
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)Ary Borenszweig
 
Ruby introduction part1
Ruby introduction part1Ruby introduction part1
Ruby introduction part1Brady Cheng
 
Is Haskell an acceptable Perl?
Is Haskell an acceptable Perl?Is Haskell an acceptable Perl?
Is Haskell an acceptable Perl?osfameron
 
Perl.Hacks.On.Vim Perlchina
Perl.Hacks.On.Vim PerlchinaPerl.Hacks.On.Vim Perlchina
Perl.Hacks.On.Vim Perlchinaguestcf9240
 
Perl 6 in Context
Perl 6 in ContextPerl 6 in Context
Perl 6 in Contextlichtkind
 
VIM for (PHP) Programmers
VIM for (PHP) ProgrammersVIM for (PHP) Programmers
VIM for (PHP) ProgrammersZendCon
 
Why TypeScript?
Why TypeScript?Why TypeScript?
Why TypeScript?FITC
 
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Kang-min Liu
 
Impacta - Show Day de Rails
Impacta - Show Day de RailsImpacta - Show Day de Rails
Impacta - Show Day de RailsFabio Akita
 
How To Think In Go
How To Think In GoHow To Think In Go
How To Think In Golestrrat
 
Ruby For Java Programmers
Ruby For Java ProgrammersRuby For Java Programmers
Ruby For Java ProgrammersMike Bowler
 

Was ist angesagt? (19)

Zen and the Art of Code Maintenance
Zen and the Art of Code MaintenanceZen and the Art of Code Maintenance
Zen and the Art of Code Maintenance
 
Ruby 入門 第一次就上手
Ruby 入門 第一次就上手Ruby 入門 第一次就上手
Ruby 入門 第一次就上手
 
What's new in c#7
What's new in c#7What's new in c#7
What's new in c#7
 
JSUG - Scala Lightning Talk by Michael Greifeneder
JSUG - Scala Lightning Talk by Michael GreifenederJSUG - Scala Lightning Talk by Michael Greifeneder
JSUG - Scala Lightning Talk by Michael Greifeneder
 
Functional Pe(a)rls version 2
Functional Pe(a)rls version 2Functional Pe(a)rls version 2
Functional Pe(a)rls version 2
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 
Ruby introduction part1
Ruby introduction part1Ruby introduction part1
Ruby introduction part1
 
Is Haskell an acceptable Perl?
Is Haskell an acceptable Perl?Is Haskell an acceptable Perl?
Is Haskell an acceptable Perl?
 
Perl.Hacks.On.Vim Perlchina
Perl.Hacks.On.Vim PerlchinaPerl.Hacks.On.Vim Perlchina
Perl.Hacks.On.Vim Perlchina
 
Perl 6 in Context
Perl 6 in ContextPerl 6 in Context
Perl 6 in Context
 
VIM for (PHP) Programmers
VIM for (PHP) ProgrammersVIM for (PHP) Programmers
VIM for (PHP) Programmers
 
Beginning Python
Beginning PythonBeginning Python
Beginning Python
 
Groovy Programming Language
Groovy Programming LanguageGroovy Programming Language
Groovy Programming Language
 
Why TypeScript?
Why TypeScript?Why TypeScript?
Why TypeScript?
 
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)
 
Impacta - Show Day de Rails
Impacta - Show Day de RailsImpacta - Show Day de Rails
Impacta - Show Day de Rails
 
Coffee script
Coffee scriptCoffee script
Coffee script
 
How To Think In Go
How To Think In GoHow To Think In Go
How To Think In Go
 
Ruby For Java Programmers
Ruby For Java ProgrammersRuby For Java Programmers
Ruby For Java Programmers
 

Ähnlich wie Ruby presentasjon på NTNU 22 april 2009

Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)Benjamin Bock
 
Rapid Development with Ruby/JRuby and Rails
Rapid Development with Ruby/JRuby and RailsRapid Development with Ruby/JRuby and Rails
Rapid Development with Ruby/JRuby and Railselliando dias
 
Migrating To Ruby1.9
Migrating To Ruby1.9Migrating To Ruby1.9
Migrating To Ruby1.9tomaspavelka
 
Arulalan Ruby An Intro
Arulalan  Ruby An IntroArulalan  Ruby An Intro
Arulalan Ruby An IntroArulalan T
 
Dealing with Legacy Perl Code - Peter Scott
Dealing with Legacy Perl Code - Peter ScottDealing with Legacy Perl Code - Peter Scott
Dealing with Legacy Perl Code - Peter ScottO'Reilly Media
 
Hacking with ruby2ruby
Hacking with ruby2rubyHacking with ruby2ruby
Hacking with ruby2rubyMarc Chung
 
Regular Expressions: JavaScript And Beyond
Regular Expressions: JavaScript And BeyondRegular Expressions: JavaScript And Beyond
Regular Expressions: JavaScript And BeyondMax Shirshin
 
Creating a compiler in Perl 6
Creating a compiler in Perl 6Creating a compiler in Perl 6
Creating a compiler in Perl 6Andrew Shitov
 
name name2 n
name name2 nname name2 n
name name2 ncallroom
 
name name2 n2
name name2 n2name name2 n2
name name2 n2callroom
 
name name2 n
name name2 nname name2 n
name name2 ncallroom
 
name name2 n
name name2 nname name2 n
name name2 ncallroom
 

Ähnlich wie Ruby presentasjon på NTNU 22 april 2009 (20)

Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)
 
Rapid Development with Ruby/JRuby and Rails
Rapid Development with Ruby/JRuby and RailsRapid Development with Ruby/JRuby and Rails
Rapid Development with Ruby/JRuby and Rails
 
Migrating To Ruby1.9
Migrating To Ruby1.9Migrating To Ruby1.9
Migrating To Ruby1.9
 
An introduction to Ruby
An introduction to RubyAn introduction to Ruby
An introduction to Ruby
 
Perl Presentation
Perl PresentationPerl Presentation
Perl Presentation
 
Arulalan Ruby An Intro
Arulalan  Ruby An IntroArulalan  Ruby An Intro
Arulalan Ruby An Intro
 
Dealing with Legacy Perl Code - Peter Scott
Dealing with Legacy Perl Code - Peter ScottDealing with Legacy Perl Code - Peter Scott
Dealing with Legacy Perl Code - Peter Scott
 
Hacking with ruby2ruby
Hacking with ruby2rubyHacking with ruby2ruby
Hacking with ruby2ruby
 
Perl Moderno
Perl ModernoPerl Moderno
Perl Moderno
 
Regular Expressions: JavaScript And Beyond
Regular Expressions: JavaScript And BeyondRegular Expressions: JavaScript And Beyond
Regular Expressions: JavaScript And Beyond
 
Creating a compiler in Perl 6
Creating a compiler in Perl 6Creating a compiler in Perl 6
Creating a compiler in Perl 6
 
ppt7
ppt7ppt7
ppt7
 
ppt2
ppt2ppt2
ppt2
 
name name2 n
name name2 nname name2 n
name name2 n
 
name name2 n2
name name2 n2name name2 n2
name name2 n2
 
test ppt
test ppttest ppt
test ppt
 
name name2 n
name name2 nname name2 n
name name2 n
 
ppt21
ppt21ppt21
ppt21
 
name name2 n
name name2 nname name2 n
name name2 n
 
ppt17
ppt17ppt17
ppt17
 

Mehr von Aslak Hellesøy

2017 03-20-testable-architecture-bddx bytes
2017 03-20-testable-architecture-bddx bytes2017 03-20-testable-architecture-bddx bytes
2017 03-20-testable-architecture-bddx bytesAslak Hellesøy
 
Desigining for evolvability
Desigining for evolvabilityDesigining for evolvability
Desigining for evolvabilityAslak Hellesøy
 
Executable Requirements with Behaviour-Driven Development and Cucumber - Euro...
Executable Requirements with Behaviour-Driven Development and Cucumber - Euro...Executable Requirements with Behaviour-Driven Development and Cucumber - Euro...
Executable Requirements with Behaviour-Driven Development and Cucumber - Euro...Aslak Hellesøy
 
2010 10 23 Kanban Smidig2009
2010 10 23 Kanban Smidig20092010 10 23 Kanban Smidig2009
2010 10 23 Kanban Smidig2009Aslak Hellesøy
 
Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Aslak Hellesøy
 
Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Aslak Hellesøy
 

Mehr von Aslak Hellesøy (7)

2017 03-20-testable-architecture-bddx bytes
2017 03-20-testable-architecture-bddx bytes2017 03-20-testable-architecture-bddx bytes
2017 03-20-testable-architecture-bddx bytes
 
Desigining for evolvability
Desigining for evolvabilityDesigining for evolvability
Desigining for evolvability
 
Executable Requirements with Behaviour-Driven Development and Cucumber - Euro...
Executable Requirements with Behaviour-Driven Development and Cucumber - Euro...Executable Requirements with Behaviour-Driven Development and Cucumber - Euro...
Executable Requirements with Behaviour-Driven Development and Cucumber - Euro...
 
2010 10 23 Kanban Smidig2009
2010 10 23 Kanban Smidig20092010 10 23 Kanban Smidig2009
2010 10 23 Kanban Smidig2009
 
Cuke4Duke JavaZone 2009
Cuke4Duke JavaZone 2009Cuke4Duke JavaZone 2009
Cuke4Duke JavaZone 2009
 
Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009
 
Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009
 

Kürzlich hochgeladen

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Kürzlich hochgeladen (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Ruby presentasjon på NTNU 22 april 2009