SlideShare a Scribd company logo
1 of 41
Download to read offline
JavaScript	
  -­‐	
  What’s	
  in	
  the	
  
language?	
  
JavaScript	
  as	
  a	
  language	
  
•  Implementa3on	
  of	
  ECMASCRIPT	
  
•  Object	
  oriented	
  
•  No	
  Classes	
  
•  Dynamic	
  Objects	
  -­‐	
  collec3on	
  of	
  named	
  
proper3es.	
  You	
  can	
  add,	
  remove,	
  update	
  its	
  
members.	
  	
  
•  Loose	
  typing	
  
•  lambdas	
  
•  Na3ve	
  and	
  host	
  objects	
  -­‐	
  Environment	
  specific	
  
•  Prototypical	
  inheritance	
  
Good	
  Parts	
  
•  Lambda	
  
•  Dynamic	
  objects	
  
•  Loose	
  typing	
  
•  Object	
  literals	
  
Bad	
  Parts	
  
•  Global	
  Variables	
  
•  +	
  adds	
  and	
  concatenates	
  
•  Semicolon	
  inser3on	
  
•  typeof	
  
•  with	
  and	
  eval	
  
•  ==	
  and	
  !=	
  
•  false,	
  null,	
  undefined,	
  NaN	
  
General	
  Pa8erns	
  
Minimizing	
  global	
  variables	
  
/*#Title:#Minimizing#Globals#Description:#they#are#declared#outside#of#
function#or#simply#used#without#being#declared!
*/!
myglobal!=!"hello";!//#antipattern!
console.log(myglobal);!//#"hello"!
console.log(window.myglobal);!//#"hello"!
console.log(window["myglobal"]);!//#"hello"!
console.log(this.myglobal);!//#"hello"!
Implied	
  global	
  variables	
  
! //!antipatten!1!
! function!sum(x,!y)!{!
! ! //!implied!global!
! ! result!=!x!+!y;!
! ! return!result;!
! }!
! //!preferred!1!
! function!sum(x,!y)!{!
//!a!variable!declared!inside!of!a!function!is!local!to!that!function!and!not!
available!outside!the!function!
! ! var!result!=!x!+!y;!
! ! return!result;!
! }!
! //"antipattern"2!
! function!foo()!{!
! ! var!a!=!b!=!0;!
! ! //"...!
! }!
! //"the"preceding"code"snippet"will"behave"as"if"you've"typed"the"following!
! var!a!=!(b!=!0);!
! //"preferred"2!
! function!foo()!{!
! ! var!a,!b;!
! ! //"...!
! ! a!=!b!=!0;!//"both"local!
! }!
Single	
  var	
  PaSern	
  !
! /*!Benefits:!
!*!1.!Provides!a!single!place!to!look!for!all!the!local!variables!needed!by!the!
function!
! !*!2.!Prevents!logical!errors!when!a!variable!is!used!before!it's!defined!
! !*!3.!Helps!you!remember!to!declare!variables!and!therefore!minimize!globals!
! */!
! function!func()!{!
! ! var!a!=!1,!
! ! ! ! b!=!2,!
! ! ! ! sum!=!a!+!b,!
! ! ! ! myobject!=!{},!
! ! ! ! i,!
! ! ! ! j;!
! ! //!function!body...!
! }!
! function!updateElement()!{!
! ! var!el!=!document.getElementById("result"),!
! ! ! ! style!=!el.style;!
! ! //!do!something!with!el!and!style...!
! }!
Namespacing	
  
! //!unsafe!
! var!MYAPP!=!{};!
! //!better!
! if!(typeof!MYAPP!===!"undefined")!{!
! ! var!MYAPP!=!{};!
! }!
! //!or!shorter!
! var!MYAPP!=!MYAPP!||!{};!
! MYAPP.namespace!=!function!(ns_string)!{!
! ! var!parts!=!ns_string.split('.'),!
! ! ! ! parent!=!MYAPP,!
! ! ! ! i;!
! ! //"strip"redundant"leading"global!
! ! if!(parts[0]!===!"MYAPP")!{!
! ! ! parts!=!parts.slice(1);!
! ! }!
! ! for!(i!=!0;!i!<!parts.length;!i!+=!1)!{!
! ! ! //"create"a"property"if"it"doesn't"exist!
! ! ! if!(typeof!parent[parts[i]]!===!"undefined")!{!
! ! ! ! parent[parts[i]]!=!{};!
! ! ! }!
! ! ! parent!=!parent[parts[i]];!
! ! }!
! ! return!parent;!
! };!
! //"assign"returned"value"to"a"local"var!
! var!module2!=!MYAPP.namespace('MYAPP.modules.module2');!
! console.log(module2!===!MYAPP.modules.module2);!//"true!
Implied	
  Typecas3ng:	
  false,	
  null,	
  
undefined,	
  NaN	
  
! var!zero!=!0;!
! /*#antipattern!
# #*#JavaScript#implicitly#typecasts#variables#when#you#compare#them.!
# #*#That's#why#comparisons#such#as#false#==#0#or#""#==#0#return#true.!
# #*/!
! if!(zero!==!false)!{!
! ! //#this#block#is#executed...!
! }!
! //#preferred!
! /*#To#avoid#confusion#caused#by#the#implied#typecasting,!
*#always#use#the#===#and#!==#operators#that#check#both#the#values#and#the#type#of#
the#expressions#you#compare!
# */!
! if!(zero!===!false)!{!
! ! //#not#executing#because#zero#is#0,#not#false!
! }!
Avoiding	
  eval	
  
/*!Title:!Avoiding!eval()!
!*!Description:!avoid!using!eval()!
!*/!
//!antipattern!1!
var!property!=!"name";!
alert(eval("obj."!+!property));!
//!preferred!1!
var!property!=!"name";!
alert(obj[property]);!
/*#antipattern#2!
*#It's#also#important#to#remember#that#passing#strings#to#setInterval(),#
setTimeout(),!
*#and#the#Function()#constructor#is,#for#the#most#part,#similar#to#using#eval()#
and#therefore#should#be#avoided.!
*/!
setTimeout("myFunc()",!1000);!
setTimeout("myFunc(1,!2,!3)",!1000);!
//#preferred#2!
setTimeout(myFunc,!1000);!
setTimeout(function!()!{!
! myFunc(1,!2,!3);!
},!1000);!
//#in#supported#browsers#(i.e.#not#IE)!
setTimeout(myFunc,!1000,!1,!2,!3);!
For-­‐in	
  loops	
  
! /*#Title:#for-in#loops!
# #*#Description:#optimized#for-in#loops!
# #*/!
! //#the#object!
! var!man!=!{!
! ! hands:2,!
! ! legs:2,!
! ! heads:1!
! };!
! //#somewhere#else#in#the#code!
! //#a#method#was#added#to#all#objects!
! if!(typeof!Object.prototype.clone!===!'undefined')!{!
! ! Object.prototype.clone!=!function!()!{!
! ! };!
! }!
! //"antipattern!
! //"for,in"loop"without"checking"hasOwnProperty()!
! for!(var!i!in!man)!{!
! ! console.log(i,!":",!man[i]);!
! }!
! /*!
" "*"result"in"the"console!
" "*"hands":"2!
" "*"legs":"2!
" "*"hands":"1!
" "*"clone:"function()!
" "*/!
! //"preferred"1!
! for!(var!i!in!man)!{!
! ! if!(man.hasOwnProperty(i))!{!//"filter!
! ! ! console.log(i,!":",!man[i]);!
! ! }!
! }!
! /*!
" "*"result"in"the"console!
" "*"hands":"2!
" "*"legs":"2!
" "*"heads":"1!
" "*/!
Automa3c	
  semicolon	
  inser3on	
  
//antipattern!
return!
{!
!!!!status:!true!
};!
!
//preferred!
return{!
!!!!status:!true!
};!
!
Func:on	
  Pa8erns	
  
Closures	
  
//"Your"setup"function"can"store"some"private"data"in"a"closure"and"use"that"data"
somehow.!
//"Here"setup()"creates"a"counter"function,"which"gives"a"next"ID"for"example."
But"the"count"variable"is"not"exposed.!
var!setup!=!function!()!{!
! var!count!=!0;!
! return!function!()!{!
! ! return!++count;!
! };!
};!
//"usage!
var!next!=!setup();!
//next();"//"returns"1!
//next();"//"returns"2!
//next();"//"returns"3!
Currying	
  
/***!
#currying!
#***/!
//#a#curried#add()!
//#accepts#partial#list#of#arguments!
function!add(x,!y)!{!
! var!oldx!=!x,!oldy!=!y;!
! if!(typeof!oldy!===!"undefined")!{!//#partial!
! ! return!function!(newy)!{!
! ! ! return!oldx!+!newy;!
! ! }!
! }!
! //#full#application!
! return!x!+!y;!
}!
//#test!
typeof!add(5);!//#"function"!
add(3)(4);!//#7!
Literals,	
  Constructors	
  and	
  Object	
  
crea:on	
  Pa8erns	
  
To	
  ‘new’	
  or	
  not	
  ! ! !
! //!antipattern!
! var!car!=!new!Object();!
! car.goes!=!"far";!
! //!preferred!
! var!car!=!{goes:"far"};!
! //!constructor!
! function!Waffle()!{!
! ! this.tastes!=!"yummy";!
! }!
! //!antipattern!
! //!forgotten!`new`!
! var!good_morning!=!Waffle();!
! console.log(typeof!good_morning);!//!"undefined"!
! console.log(window.tastes);!//!"yummy"!
! //!preferred!
! var!good_morning!=!new!Waffle();!
! console.log(typeof!good_morning);!//!"object"!
! console.log(good_morning.tastes);!//!"yummy"!
PaSerns	
  for	
  enforcing	
  ‘new’	
  
!
function!Waffle()!{!
! if!(!(this!instanceof!Waffle))!{!
! ! return!new!Waffle();!
! }!
! this.tastes!=!"yummy";!
}!
var!good_morning!=!new!Waffle();!
var!good_evening!=!Waffle();!
console.log(typeof!good_morning);!//""object"!
console.log(good_morning.tastes);!//""yummy"!
console.log(typeof!good_evening);!//""object"!
console.log(good_evening.tastes);!//""yummy"!
! //!antipattern!
! //!with!wrappers!
! var!s!=!new!String("my!string");!
! var!n!=!new!Number(101);!
! var!b!=!new!Boolean(true);!
! //!preferred!
! //!without!wrappers!
! var!s!=!"my!string";!
! var!n!=!101;!
! var!b!=!true;!
/*!
#only#use#primitive#wrappers#when#you#want#to#augment#the#value#and#persist#state!
#*/!
//#primitive#string!
var!greet!=!"Hello!there";!
//#primitive#is#converted#to#an#object!
//#in#order#to#use#the#split()#method!
greet.split('!')[0];!//#"Hello"!
//#attemting#to#augment#a#primitive#is#not#an#error!
greet.smile!=!true;!
//#but#it#doesn't#actually#work!
console.log(typeof!greet.smile);!//#"undefined"!
//#primitive#wrapper!
var!greet!=!new!String("Hello!there");!
//#split()#method#is#called#directly#on#the#object!
greet.split('!')[0];!//#"Hello"!
//#augment#the#object!
greet.smile!=!true;!
console.log(typeof!greet.smile);!//#"boolean"!
Module	
  paSern	
  
MYAPP.utilities.array/=/(function/()/{/
/ / / / //"private"properties/
/ / / / var/array_string/=/"[object/Array]",/
/ / / / ops/=/Object.prototype.toString,/
/
/ / / / //"private"methods/
/ / / / inArray/=/function/(haystack,/needle)/{/
/ / / / / for/(var/i/=/0,/max/=/haystack.length;/i/</max;/i/+=/1)/
/ / / / / / if/(haystack[i]/===/needle)/{/
/ / / / / / / return/i;/
/ / / / / / }/
/ / / / / }/
/ / / / / return//1;/
/ / / / },/
/ / / / isArray/=/function/(a)/{/
/ / / / / return/ops.call(a)/===/array_string;/
/ / / / };/
/ / / / //"end"var/
/
/ / / / //"revealing"public"API/
/ / / / return/{/
/ / / / / isArray:isArray,/
/ / / / / indexOf:inArray/
/ / / / };/
/ / / }());/
!
Code	
  Reuse	
  Pa8erns	
  
Prototypal	
  Inheritance	
  
! function!object(o)!{!
! ! function!F()!{!
! ! }!
! ! F.prototype!=!o;!
! ! return!new!F();!
! }!
! //"object"to"inherit"from!
! var!parent!=!{!
! ! name:"Papa"!
! };!
! //"the"new"object!
! var!child!=!object(parent);!
! //"testing!
! console.log(child.name);!//""Papa"!
//"parent"constructor!
function!Person()!{!
! //"an""own""property!
! this.name!=!"Adam";!
}!
//"a"property"added"to"the"prototype!
Person.prototype.getName!=!function!()!{!
! return!this.name;!
};!
//"create"a"new"person!
var!papa!=!new!Person();!
//"inherit!
var!kid!=!object(papa);!
//"test"that"both"the"own"property!
//"and"the"prototype"property"were"inherited!
console.log(kid.getName());!//""Adam"!
Augmen3ng	
  built-­‐in	
  Prototypes	
  
if!(typeof!Object.prototype.myMethod!!==!"function")!{!
! Object.prototype.myMethod!=!function!()!{!
! ! //"implementation...!
! };!
}!
Design	
  Pa8erns	
  
CREATIONAL	
  
Builder	
   constructs	
  complex	
  objects	
  by	
  separa3ng	
  construc3on	
  and	
  
representa3on	
  
Factory	
  Method	
   creates	
  objects	
  without	
  specifying	
  the	
  exact	
  class	
  to	
  create	
  
Singleton	
   restricts	
  object	
  crea3on	
  for	
  a	
  class	
  to	
  only	
  one	
  instance	
  
STRUCTURAL	
  
Decorator	
   dynamically	
  adds/overrides	
  behavior	
  in	
  an	
  exis3ng	
  method	
  of	
  
an	
  object	
  
Facade	
   provides	
  a	
  simplified	
  interface	
  to	
  a	
  large	
  body	
  of	
  code	
  
BEHAVIORAL	
  
Chain	
  of	
  responsibility	
   delegates	
  commands	
  to	
  a	
  chain	
  of	
  processing	
  objects	
  
Command	
   creates	
  objects	
  which	
  encapsulate	
  ac3ons	
  and	
  parameters	
  
Mediator	
   allows	
  loose	
  coupling	
  between	
  classes	
  by	
  being	
  the	
  only	
  class	
  
that	
  has	
  detailed	
  knowledge	
  of	
  their	
  methods	
  
Observer	
   is	
  a	
  publish/subscribe	
  paSern	
  which	
  allows	
  a	
  number	
  of	
  
observer	
  objects	
  to	
  see	
  an	
  event	
  
Composite	
  
//"Single"elements!
$("#singleItem").addClass("active");!
$("#container").addClass("active");!
!
//"Collections"of"elements!
$("div").addClass("active");!
$(".item").addClass("active");!
$("input").addClass("active");!
!
Adapter	
  
//"Cross"browser"opacity:!
//"opacity:"0.9;""Chrome"4+,"FF2+,"Saf3.1+,"Opera"9+,"IE9,"iOS"3.2+,"Android"2.1+!
//"filter:"alpha(opacity=90);""IE6KIE8!
!
//"Setting"opacity!
$(".container").css({!opacity:.5!});!
!
//"Getting"opacity!
var!currentOpacity!=!$(".container").css('opacity');!
!
Observer	
  
//"Equivalent"to"subscribe(topicName,"callback)!
$(document).on("topicName",!function!()!{!
!!!!//..perform"some"behaviour!
});!
!
//"Equivalent"to"publish(topicName)!
$(document).trigger("topicName");!
!
//"Equivalent"to"unsubscribe(topicName)!
$(document).off("topicName");!
!
AMD	
  -­‐	
  Asynchronous	
  module	
  
defini3on	
  
define('
''''module_id'/*optional*/,'
''''[dependencies]'/*optional*/,'
''''definition'
function'/*function-for-instantiating-the-module-or-object*/'
)'
!
!
!
require(["foo",'"bar"],'function'(foo,'bar)'{'
''''//-rest-of-your-code-here'
''''foo.doSomething();'
});'
!
Prolifera3on	
  of	
  MV*	
  frameworks	
  
Prolifera3on	
  of	
  MV*	
  frameworks	
  
•  Rich	
  internet	
  single	
  page	
  applica3ons	
  
•  Data	
  Binding	
  
•  Client	
  side	
  templates	
  
•  Client-­‐Centric	
  or	
  Server-­‐Centric-­‐	
  that	
  is	
  the	
  
ques3on.	
  
•  Minify,	
  concatenate,	
  compress	
  
•  Load	
  scripts	
  at	
  the	
  end	
  of	
  pages	
  
•  Sta3c	
  code	
  analysis	
  using	
  Jslint/Jshint	
  
•  Tes3ng	
  your	
  code	
  –	
  Jasmine,	
  Phantomjs	
  etc	
  
References	
  
Ques:ons?	
  

More Related Content

Similar to Javascript patterns

RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!Gautam Rege
 
Groovy 1.8 and 2.0 at GR8Conf Europe 2012
Groovy 1.8 and 2.0 at GR8Conf Europe 2012Groovy 1.8 and 2.0 at GR8Conf Europe 2012
Groovy 1.8 and 2.0 at GR8Conf Europe 2012Guillaume Laforge
 
Feed Normalization with Ember Data 1.0
Feed Normalization with Ember Data 1.0Feed Normalization with Ember Data 1.0
Feed Normalization with Ember Data 1.0Jeremy Gillick
 
bol.com Partner event 2013 - Presentatie Wienke Giezeman
bol.com Partner event 2013 - Presentatie Wienke Giezemanbol.com Partner event 2013 - Presentatie Wienke Giezeman
bol.com Partner event 2013 - Presentatie Wienke Giezemanbolcompp
 
Beginning Scala with Skinny Framework #jjug_ccc
Beginning Scala with Skinny Framework #jjug_cccBeginning Scala with Skinny Framework #jjug_ccc
Beginning Scala with Skinny Framework #jjug_cccKazuhiro Sera
 
Plugin jQuery, Design Patterns
Plugin jQuery, Design PatternsPlugin jQuery, Design Patterns
Plugin jQuery, Design PatternsRobert Casanova
 
Scala Workshop
Scala WorkshopScala Workshop
Scala WorkshopClueda AG
 
Compiled Python UDFs for Impala
Compiled Python UDFs for ImpalaCompiled Python UDFs for Impala
Compiled Python UDFs for ImpalaCloudera, Inc.
 
Desert Code Camp 2014: C#, the best programming language
Desert Code Camp 2014: C#, the best programming languageDesert Code Camp 2014: C#, the best programming language
Desert Code Camp 2014: C#, the best programming languageJames Montemagno
 
Learn You a Functional JavaScript for Great Good
Learn You a Functional JavaScript for Great GoodLearn You a Functional JavaScript for Great Good
Learn You a Functional JavaScript for Great GoodMike Harris
 
Javascript - The Good, the Bad and the Ugly
Javascript - The Good, the Bad and the UglyJavascript - The Good, the Bad and the Ugly
Javascript - The Good, the Bad and the UglyThorsten Suckow-Homberg
 
rOCCI : An overview of the Ruby OCCI Framework
rOCCI: An overview of the Ruby OCCI FrameworkrOCCI: An overview of the Ruby OCCI Framework
rOCCI : An overview of the Ruby OCCI FrameworkFlorian Feldhaus
 
Section 8 Programming Style and Your Brain: Douglas Crockford
Section 8 Programming Style and Your Brain: Douglas CrockfordSection 8 Programming Style and Your Brain: Douglas Crockford
Section 8 Programming Style and Your Brain: Douglas Crockfordjaxconf
 
"Writing Maintainable JavaScript". Jon Bretman, Badoo
"Writing Maintainable JavaScript". Jon Bretman, Badoo"Writing Maintainable JavaScript". Jon Bretman, Badoo
"Writing Maintainable JavaScript". Jon Bretman, BadooYandex
 
Go(lang) for the Rubyist
Go(lang) for the RubyistGo(lang) for the Rubyist
Go(lang) for the RubyistMark
 

Similar to Javascript patterns (20)

Es.next
Es.nextEs.next
Es.next
 
RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!
 
Groovy 1.8 and 2.0 at GR8Conf Europe 2012
Groovy 1.8 and 2.0 at GR8Conf Europe 2012Groovy 1.8 and 2.0 at GR8Conf Europe 2012
Groovy 1.8 and 2.0 at GR8Conf Europe 2012
 
3. javascript bangla tutorials
3. javascript bangla tutorials3. javascript bangla tutorials
3. javascript bangla tutorials
 
Feed Normalization with Ember Data 1.0
Feed Normalization with Ember Data 1.0Feed Normalization with Ember Data 1.0
Feed Normalization with Ember Data 1.0
 
bol.com Partner event 2013 - Presentatie Wienke Giezeman
bol.com Partner event 2013 - Presentatie Wienke Giezemanbol.com Partner event 2013 - Presentatie Wienke Giezeman
bol.com Partner event 2013 - Presentatie Wienke Giezeman
 
Beginning Scala with Skinny Framework #jjug_ccc
Beginning Scala with Skinny Framework #jjug_cccBeginning Scala with Skinny Framework #jjug_ccc
Beginning Scala with Skinny Framework #jjug_ccc
 
Plugin jQuery, Design Patterns
Plugin jQuery, Design PatternsPlugin jQuery, Design Patterns
Plugin jQuery, Design Patterns
 
Scala Workshop
Scala WorkshopScala Workshop
Scala Workshop
 
Compiled Python UDFs for Impala
Compiled Python UDFs for ImpalaCompiled Python UDFs for Impala
Compiled Python UDFs for Impala
 
Desert Code Camp 2014: C#, the best programming language
Desert Code Camp 2014: C#, the best programming languageDesert Code Camp 2014: C#, the best programming language
Desert Code Camp 2014: C#, the best programming language
 
Learn You a Functional JavaScript for Great Good
Learn You a Functional JavaScript for Great GoodLearn You a Functional JavaScript for Great Good
Learn You a Functional JavaScript for Great Good
 
Javascript - The Good, the Bad and the Ugly
Javascript - The Good, the Bad and the UglyJavascript - The Good, the Bad and the Ugly
Javascript - The Good, the Bad and the Ugly
 
"Javascript" por Tiago Rodrigues
"Javascript" por Tiago Rodrigues"Javascript" por Tiago Rodrigues
"Javascript" por Tiago Rodrigues
 
rOCCI : An overview of the Ruby OCCI Framework
rOCCI: An overview of the Ruby OCCI FrameworkrOCCI: An overview of the Ruby OCCI Framework
rOCCI : An overview of the Ruby OCCI Framework
 
Section 8 Programming Style and Your Brain: Douglas Crockford
Section 8 Programming Style and Your Brain: Douglas CrockfordSection 8 Programming Style and Your Brain: Douglas Crockford
Section 8 Programming Style and Your Brain: Douglas Crockford
 
Device deployment
Device deploymentDevice deployment
Device deployment
 
"Writing Maintainable JavaScript". Jon Bretman, Badoo
"Writing Maintainable JavaScript". Jon Bretman, Badoo"Writing Maintainable JavaScript". Jon Bretman, Badoo
"Writing Maintainable JavaScript". Jon Bretman, Badoo
 
Go(lang) for the Rubyist
Go(lang) for the RubyistGo(lang) for the Rubyist
Go(lang) for the Rubyist
 
ES6: The future is now
ES6: The future is nowES6: The future is now
ES6: The future is now
 

Recently uploaded

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
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
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
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
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
 
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
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 

Recently uploaded (20)

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...
 
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)
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
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
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
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
 
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
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL 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...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

Javascript patterns