SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
CoffeeScript
JavaScript's Less Ostentatious Kid Brother



             Ryan McGeary
        http://ryan.mcgeary.org
               @rmm5t




                                             1
Jeremy Ashkenas
         JavaScript's less
     ostentatious kid brother

           one-to-one
         with JavaScript

             better
        functional syntax

            compiles to
          the good parts


http://jashkenas.github.com/coffee-script/
                                                               2
if (typeof elvis !== "undefined" && elvis !== null) {
  alert("I knew it!");
}




                                                        3
alert "I knew it!" if elvis?




                               3
var cube, square;
square = function(x) {
   return x * x;
};
cube = function(x) {
   return square(x) * x;
};




                           4
square = (x) -> x * x
cube   = (x) -> square(x) * x




                                4
var _i, _len, _ref, _result, food, lunch;
lunch = (function() {
  _result = []; _ref = ['toast', 'cheese', 'wine'];
  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
    food = _ref[_i];
    _result.push(eat(food));
  }
  return _result;
})();




                                                        5
lunch = (eat food for food in ['toast', 'cheese', 'wine'])




                                                             5
var _i, _j, _len, _len2, _ref, _ref2, roid, roid2;
_ref = asteroids;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
  roid = _ref[_i];
  _ref2 = asteroids;
  for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) {
    roid2 = _ref2[_j];
    if (roid !== roid2) {
      if (roid.overlaps(roid2)) {
        roid.explode();
      }
    }
  }
}




                                                           6
for roid in asteroids
  for roid2 in asteroids when roid isnt roid2
    roid.explode() if roid.overlaps roid2




                                                6
Installation
$ brew install npm

# Add /usr/local/share/npm/bin to PATH


$ npm install coffee-script




                                         7
Usage
$ coffee -c path/to/script.coffee

$ coffee --watch experimental.coffee

$ coffee --print *.coffee > all.js




                                       8
Significant Whitespace

if happy and knowsIt
  clapsHands()
  chaChaCha()
else
  showIt()


                         9
Significant Whitespace

if (happy && knowsIt) {
  clapsHands();
  chaChaCha();
} else {
  showIt();
}


                          9
Functions
square = (x) -> x * x

area   = (x, y) -> x * y

noop   = ->



                           10
Functions
var area, noop, square;
square = function(x) {
   return x * x;
};
area = function(x, y) {
   return x * y;
};
noop = function() {};


                          10
Objects
                         var kids;
kids =                   kids = {
  brother:                  brother: {
                               name: "Max",


                    >>
    name: "Max"                age: 11
    age: 11                 },
                            sister: {
  sister:                      name: "Ida",
    name: "Ida"                age: 9
                            }
    age: 9
                         };




                                              11
Lexical Scoping / Variable Safety

                        (function() {
                          var change, inner, outer;
outer = 1                 outer = 1;
change = ->
                   >>
                          change = function() {
                             var inner;
  inner = -1                 inner = -1;
  outer = 10                 return (outer = 10);
                          };
inner = change()
                          inner = change();
                        }).call(this);




                                                      12
Aliases
==   >>   ===   is   >>   ===

!=   >>   !==   isnt >>   !==




                                13
Aliases


on  >>   true    yes   >>    true

off >>   false   no    >>   false




                                    13
Aliases




@property   >>   this.property




                                 13
Aliases
and >>   &&   or       >> ||
not >>   !    unless   >> if !




                                 13
Aliases


winner = yes if pick in [47, 92, 13]

render = yes if key of { a: 1, b: 2 }




                                        13
OOP
class Animal
  constructor: (@name) ->

  move: (meters) ->
    alert @name + " moved " + meters + "m."

class Snake extends Animal
  move: ->
    alert "Slithering..."
    super 5

sam = new Snake "Sammy the Python"
sam.move()




                                              14
OOP
var Animal, Snake, sam;
var __extends = function(child, parent) {
      var ctor = function(){};
      ctor.prototype = parent.prototype;
      child.prototype = new ctor();
      child.prototype.constructor = child;
      if (typeof parent.extended === "function") parent.extended(child);
      child.__super__ = parent.prototype;
   };
Animal = function(_arg) {
   this.name = _arg;
   return this;
};
Animal.prototype.move = function(meters) {
   return alert(this.name + " moved " + meters + "m.");
};
Snake = function() {
   return Animal.apply(this, arguments);
};
__extends(Snake, Animal);
Snake.prototype.move = function() {
   alert("Slithering...");
   return Snake.__super__.move.call(this, 5);
};
sam = new Snake("Sammy the Python");
sam.move();




                                                                           14
Pattern Matching
theBait   = 1000
theSwitch = 0

[theBait, theSwitch] = [theSwitch, theBait]




weatherReport = (location) ->
  [location, 72, "Mostly Sunny"]

[zip, temp, forecast] = weatherReport "20175




                                               15
Pattern Matching
var _ref, forecast, temp, theBait, theSwitch, weatherReport, zip;
theBait = 1000;
theSwitch = 0;
_ref = [theSwitch, theBait];
theBait = _ref[0];
theSwitch = _ref[1];




weatherReport = function(location) {
   return [location, 72, "Mostly Sunny"];
};
_ref = weatherReport("20175");
zip = _ref[0];
temp = _ref[1];
forecast = _ref[2];




                                                                    15
Existential Operator

alert "I knew it!" if elvis?

speed ?= 140

root = exports ? this

lottery.drawWinner()?.address?.zipcode




                                         16
Existential Operator

var _ref, _ref2, root, speed;
if (typeof elvis !== "undefined" && elvis !== null) {
  alert("I knew it!");
}

speed = (typeof speed !== "undefined" && speed !== null) ? speed : 140;

root = (typeof exports !== "undefined" && exports !== null) ? exports : this;

(typeof (_ref2 = ((_ref = lottery.drawWinner()))) === "undefined" || _ref2 ===
null) ? undefined : _ref2.address == null ? undefined : _ref2.address.zipcode;




                                                                                 16
String and RegExp Interpolation
quote = "A picture is a fact."
author = "Wittgenstein"
phrase = "#{quote} -- #{author}"

sentence = "#{ 22 / 7 } approximates π"

sep   = "[./- ]"
dates = /d+#{sep}d+#{sep}d+/g




                                          17
String and RegExp Interpolation

var author, dates, phrase, quote, sentence, sep;
quote = "A picture is a fact.";
author = "Wittgenstein";
phrase = ("" + (quote) + " -- " + (author));

sentence = ("" + (22 / 7) + " is a decent approximation of π");

sep = "[./- ]";
dates = (new RegExp("d+" + (sep) + "d+" + (sep) + "d+", "g"));




                                                                       17
Splat Arguments


awardMedals = (first, second, others...) ->
  alert("Gold: #{first}");
  alert("Silver: #{second}");
  alert("The Field: #{others}");




                                              18
Splat Arguments

var awardMedals;
var __slice = Array.prototype.slice;
awardMedals = function(first, second) {
   var others;
   others = __slice.call(arguments, 2);
   alert("Gold: " + (first));
   alert("Silver: " + (second));
   return alert("The Field: " + (others));
};




                                             18
Array and Object Comprehensions

foods = ['toast', 'cheese', 'wine']
lunch = (eat(food) for food in foods)

yearsOld = max: 10, ida: 9, tim: 11
ages = for child, age of yearsOld
  "#{child} is #{age}"




                                        19
Array and Object Comprehensions
var _i, _len, _ref, _result, age, ages, child, food, foods, lunch, yearsOld;
var __hasProp = Object.prototype.hasOwnProperty;
foods = ['toast', 'cheese', 'wine'];
lunch = (function() {
  _result = []; _ref = foods;
  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
    food = _ref[_i];
    _result.push(eat(food));
  }
  return _result;
})();

yearsOld = {
   max: 10,
   ida: 9,
   tim: 11
};
ages = (function() {
   _result = []; _ref = yearsOld;
   for (child in _ref) {
     if (!__hasProp.call(_ref, child)) continue;
     age = _ref[child];
     _result.push("" + (child) + " is " + (age));
   }
   return _result;
})();




                                                                               19
Slicing and Splicing

numbers = [0..9]

threeToSix = numbers[3..6]

copy = numbers[0...numbers.length]

numbers[3..6] = [-3, -4, -5, -6]




                                     20
Slicing and Splicing

var copy, numbers, threeToSix;
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

threeToSix = numbers.slice(3, 6 + 1);

copy = numbers.slice(0, numbers.length);

numbers.splice.apply(numbers, [3, 6 - 3 + 1].concat([-3,
-4, -5, -6]));




                                                           20
Function Binding

Account = (customer, cart) ->
  @customer = customer
  @cart = cart

  $('#checkout').bind 'click', (event) =>
    @customer.purchase @cart




                                            21
Function Binding

var Account;
var __bind = function(func, context) {
      return function(){ return func.apply(context, arguments); };
   };
Account = function(customer, cart) {
   this.customer = customer;
   this.cart = cart;
   return $('#checkout').bind('click', __bind(function(event) {
      return this.customer.purchase(this.cart);
   }, this));
};




                                                                     21
The Rest...
Everything is an expression; always a return value
Pattern matching with object literals
Switch/When/Else
While/Until/Loop
Try/Catch/Finally
Chained comparison
Multiline Strings, Heredocs, and Block Comments
"text/coffeescript" script tags with extras/coffee-script.js
Cake and Cakefiles



           http://jashkenas.github.com/coffee-script/
                                                               22
Let’s Try It...




                  23
Ideas for Getting Started




                            24
Currently In Use




    Making great
conferences even better
    busyconf.com

                                25
Ryan McGeary
  http://ryan.mcgeary.org
        @rmm5t
    ryan@mcgeary.org




McGeary Consulting Group

                             26
Attributions
http://jashkenas.github.com/coffee-script/
http://www.flickr.com/photos/74234765@N00/488955057/
http://www.flickr.com/photos/adunne/3974874247/
http://www.flickr.com/photos/28111377@N07/2970550798/
http://www.flickr.com/photos/7678790@N06/3380560365/
http://www.flickr.com/photos/40775750@N00/531138641/
http://www.flickr.com/photos/86176561@N00/492795782/
http://www.flickr.com/photos/77555797@N00/133942287/
http://www.flickr.com/photos/34580986@N03/4985041197/
http://www.flickr.com/photos/83275741@N00/291831432/
http://www.flickr.com/photos/58115002@N00/3283033324/
http://www.flickr.com/photos/15133799@N02/3339157498/
http://www.flickr.com/photos/17731548@N00/981372736/
http://www.flickr.com/photos/7576193@N07/2476397335/
http://www.flickr.com/photos/48553010@N00/408767516/
http://www.free-computer-wallpapers.com/pictures/Television_wallpaper/Alias_2
http://www.flickr.com/photos/44742295@N00/3998772594/
http://www.flickr.com/photos/79659919@N00/3413379549/
http://www.flickr.com/photos/82402200@N00/523497824/




                                                                                27

Mais conteúdo relacionado

Mais procurados

Impress Your Friends with EcmaScript 2015
Impress Your Friends with EcmaScript 2015Impress Your Friends with EcmaScript 2015
Impress Your Friends with EcmaScript 2015Lukas Ruebbelke
 
Building fast interpreters in Rust
Building fast interpreters in RustBuilding fast interpreters in Rust
Building fast interpreters in RustIngvar Stepanyan
 
Jsphp 110312161301-phpapp02
Jsphp 110312161301-phpapp02Jsphp 110312161301-phpapp02
Jsphp 110312161301-phpapp02Seri Moth
 
Naïveté vs. Experience
Naïveté vs. ExperienceNaïveté vs. Experience
Naïveté vs. ExperienceMike Fogus
 
Fertile Ground: The Roots of Clojure
Fertile Ground: The Roots of ClojureFertile Ground: The Roots of Clojure
Fertile Ground: The Roots of ClojureMike Fogus
 
RxSwift 시작하기
RxSwift 시작하기RxSwift 시작하기
RxSwift 시작하기Suyeol Jeon
 
20160227 Granma
20160227 Granma20160227 Granma
20160227 GranmaSharon Liu
 
ECMAScript2015
ECMAScript2015ECMAScript2015
ECMAScript2015qmmr
 
How to Clone Flappy Bird in Swift
How to Clone Flappy Bird in SwiftHow to Clone Flappy Bird in Swift
How to Clone Flappy Bird in SwiftGiordano Scalzo
 
Programming Lisp Clojure - 2장 : 클로저 둘러보기
Programming Lisp Clojure - 2장 : 클로저 둘러보기Programming Lisp Clojure - 2장 : 클로저 둘러보기
Programming Lisp Clojure - 2장 : 클로저 둘러보기JangHyuk You
 
Start Writing Groovy
Start Writing GroovyStart Writing Groovy
Start Writing GroovyEvgeny Goldin
 
Async code on kotlin: rx java or/and coroutines - Kotlin Night Turin
Async code on kotlin: rx java or/and coroutines - Kotlin Night TurinAsync code on kotlin: rx java or/and coroutines - Kotlin Night Turin
Async code on kotlin: rx java or/and coroutines - Kotlin Night TurinFabio Collini
 
Down the rabbit hole, profiling in Django
Down the rabbit hole, profiling in DjangoDown the rabbit hole, profiling in Django
Down the rabbit hole, profiling in DjangoRemco Wendt
 
Groovy puzzlers jug-moscow-part 2
Groovy puzzlers jug-moscow-part 2Groovy puzzlers jug-moscow-part 2
Groovy puzzlers jug-moscow-part 2Evgeny Borisov
 
Introduction to Groovy
Introduction to GroovyIntroduction to Groovy
Introduction to GroovyAnton Arhipov
 
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf MilanFrom Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf MilanFabio Collini
 

Mais procurados (20)

Impress Your Friends with EcmaScript 2015
Impress Your Friends with EcmaScript 2015Impress Your Friends with EcmaScript 2015
Impress Your Friends with EcmaScript 2015
 
zinno
zinnozinno
zinno
 
Intro
IntroIntro
Intro
 
Introduction to Groovy
Introduction to GroovyIntroduction to Groovy
Introduction to Groovy
 
Building fast interpreters in Rust
Building fast interpreters in RustBuilding fast interpreters in Rust
Building fast interpreters in Rust
 
Jsphp 110312161301-phpapp02
Jsphp 110312161301-phpapp02Jsphp 110312161301-phpapp02
Jsphp 110312161301-phpapp02
 
Naïveté vs. Experience
Naïveté vs. ExperienceNaïveté vs. Experience
Naïveté vs. Experience
 
Fertile Ground: The Roots of Clojure
Fertile Ground: The Roots of ClojureFertile Ground: The Roots of Clojure
Fertile Ground: The Roots of Clojure
 
Functional programming with php7
Functional programming with php7Functional programming with php7
Functional programming with php7
 
RxSwift 시작하기
RxSwift 시작하기RxSwift 시작하기
RxSwift 시작하기
 
20160227 Granma
20160227 Granma20160227 Granma
20160227 Granma
 
ECMAScript2015
ECMAScript2015ECMAScript2015
ECMAScript2015
 
How to Clone Flappy Bird in Swift
How to Clone Flappy Bird in SwiftHow to Clone Flappy Bird in Swift
How to Clone Flappy Bird in Swift
 
Programming Lisp Clojure - 2장 : 클로저 둘러보기
Programming Lisp Clojure - 2장 : 클로저 둘러보기Programming Lisp Clojure - 2장 : 클로저 둘러보기
Programming Lisp Clojure - 2장 : 클로저 둘러보기
 
Start Writing Groovy
Start Writing GroovyStart Writing Groovy
Start Writing Groovy
 
Async code on kotlin: rx java or/and coroutines - Kotlin Night Turin
Async code on kotlin: rx java or/and coroutines - Kotlin Night TurinAsync code on kotlin: rx java or/and coroutines - Kotlin Night Turin
Async code on kotlin: rx java or/and coroutines - Kotlin Night Turin
 
Down the rabbit hole, profiling in Django
Down the rabbit hole, profiling in DjangoDown the rabbit hole, profiling in Django
Down the rabbit hole, profiling in Django
 
Groovy puzzlers jug-moscow-part 2
Groovy puzzlers jug-moscow-part 2Groovy puzzlers jug-moscow-part 2
Groovy puzzlers jug-moscow-part 2
 
Introduction to Groovy
Introduction to GroovyIntroduction to Groovy
Introduction to Groovy
 
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf MilanFrom Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
 

Destaque

CoffeeScript: The Good Parts
CoffeeScript: The Good PartsCoffeeScript: The Good Parts
CoffeeScript: The Good PartsC4Media
 
One Man Lightning Talks
One Man Lightning TalksOne Man Lightning Talks
One Man Lightning TalksRyan McGeary
 
"Vendor Everything" still applies
"Vendor Everything" still applies"Vendor Everything" still applies
"Vendor Everything" still appliesRyan McGeary
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 

Destaque (8)

CoffeeScript: The Good Parts
CoffeeScript: The Good PartsCoffeeScript: The Good Parts
CoffeeScript: The Good Parts
 
Coffeescript
CoffeescriptCoffeescript
Coffeescript
 
One Man Lightning Talks
One Man Lightning TalksOne Man Lightning Talks
One Man Lightning Talks
 
Ruby Internals
Ruby InternalsRuby Internals
Ruby Internals
 
"Vendor Everything" still applies
"Vendor Everything" still applies"Vendor Everything" still applies
"Vendor Everything" still applies
 
Why A Wiki?
Why A Wiki?Why A Wiki?
Why A Wiki?
 
CoffeeScript By Example
CoffeeScript By ExampleCoffeeScript By Example
CoffeeScript By Example
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 

Semelhante a CoffeeScript

CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScriptNone
 
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and JasmineRails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and JasmineRaimonds Simanovskis
 
Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB jhchabran
 
CoffeeScript - JavaScript in a simple way
CoffeeScript - JavaScript in a simple wayCoffeeScript - JavaScript in a simple way
CoffeeScript - JavaScript in a simple wayLim Chanmann
 
Functional Programming with Groovy
Functional Programming with GroovyFunctional Programming with Groovy
Functional Programming with GroovyArturo Herrero
 
FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6
FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6
FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6FrontDays
 
Adding ES6 to Your Developer Toolbox
Adding ES6 to Your Developer ToolboxAdding ES6 to Your Developer Toolbox
Adding ES6 to Your Developer ToolboxJeff Strauss
 
Coffee Scriptでenchant.js
Coffee Scriptでenchant.jsCoffee Scriptでenchant.js
Coffee Scriptでenchant.jsNaoyuki Totani
 
JavaScript for PHP developers
JavaScript for PHP developersJavaScript for PHP developers
JavaScript for PHP developersStoyan Stefanov
 
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
 
ES6 PPT FOR 2016
ES6 PPT FOR 2016ES6 PPT FOR 2016
ES6 PPT FOR 2016Manoj Kumar
 
ES6 and AngularAMD
ES6 and AngularAMDES6 and AngularAMD
ES6 and AngularAMDdhaval10690
 
Crazy things done on PHP
Crazy things done on PHPCrazy things done on PHP
Crazy things done on PHPTaras Kalapun
 

Semelhante a CoffeeScript (20)

CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
 
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and JasmineRails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
 
Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB
 
CoffeeScript - JavaScript in a simple way
CoffeeScript - JavaScript in a simple wayCoffeeScript - JavaScript in a simple way
CoffeeScript - JavaScript in a simple way
 
Functional Programming with Groovy
Functional Programming with GroovyFunctional Programming with Groovy
Functional Programming with Groovy
 
FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6
FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6
FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6
 
Adding ES6 to Your Developer Toolbox
Adding ES6 to Your Developer ToolboxAdding ES6 to Your Developer Toolbox
Adding ES6 to Your Developer Toolbox
 
Elm: give it a try
Elm: give it a tryElm: give it a try
Elm: give it a try
 
Coffee Scriptでenchant.js
Coffee Scriptでenchant.jsCoffee Scriptでenchant.js
Coffee Scriptでenchant.js
 
Short intro to ECMAScript
Short intro to ECMAScriptShort intro to ECMAScript
Short intro to ECMAScript
 
JavaScript for PHP developers
JavaScript for PHP developersJavaScript for PHP developers
JavaScript for PHP developers
 
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)
 
ES2015 New Features
ES2015 New FeaturesES2015 New Features
ES2015 New Features
 
ES6 PPT FOR 2016
ES6 PPT FOR 2016ES6 PPT FOR 2016
ES6 PPT FOR 2016
 
EcmaScript 6
EcmaScript 6 EcmaScript 6
EcmaScript 6
 
Wakanday JS201 Best Practices
Wakanday JS201 Best PracticesWakanday JS201 Best Practices
Wakanday JS201 Best Practices
 
ES6 and AngularAMD
ES6 and AngularAMDES6 and AngularAMD
ES6 and AngularAMD
 
Crazy things done on PHP
Crazy things done on PHPCrazy things done on PHP
Crazy things done on PHP
 
Pooya Khaloo Presentation on IWMC 2015
Pooya Khaloo Presentation on IWMC 2015Pooya Khaloo Presentation on IWMC 2015
Pooya Khaloo Presentation on IWMC 2015
 

Último

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Último (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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)
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+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...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

CoffeeScript