SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
Clojurescript
up and running
Timo Sulg, @timgluz
@Helsinki/JS, 27th November, 2013
What? And why?
Was? und warum?
source:
CoffeScript wiki has ~200 langs
JS as assembler for web
JavaScript is an assembly language. The JavaScript + HTML
generate is like a .NET assembly. The browser can execute it, but no
human should really care what’s there. - Erik Meijer, author of Rx
and Linq
source: Scott Hansemal's blog
Photoproof
Clojure's brith
Clojure?
1. Functional
2. Dynamically typed
3. Lisp
Clojure/Script?
Subset of Clojure
No concurrency primitives
Influences from Host
Inner parts

source: Stuart Sierra's "Clojure - getting up and running;"
Best parts
1.
2.
3.
4.
5.

Generic data primitives
Highly composable
Expressinevess
Extensible
core.async
Little peak into syntax
quick steptrough
source: Kanaka's cheatsheet
Getting started
; it j cnoe
; no s osl
(lgj/osl "el wrd";
.o scnoe Hlo ol!)
; it BosrRP
; no rwe EL
(rnl "el wrd)
pitn Hlo ol"
Code modularity
(scj.ol.el
n lswrdhlo
(rqie'sassn:ssn)
:eur [tr.u a u]
(ue'paeserh:ny[a,ngt :serh)
:s [lnt.at ol dy ih] a at])
Primitive collections
; ary
; ras
(e a(ra)
df
ary)
(e a(ra 123)
df
ary
)
(gta1 ; 2
ae
) ;
; ojc
; bet
(e o(soj)
df
j-b)
(e o(soj"o"1"a"2)
df
j-b fo
br )
Generic datastructures
; ls
; it
(e a(it123)
df
ls
)
(e b'123)
df
(
)
; vco
; etr
(e c(etr123)
df
vco
)
(e d[ 234)
df
1
]
; st
; es
(e f(e 1123)
df
st
)
(e g#123)
df
{,,}
; hs-as
; ahmp
(e h(ahmp:o 1:a 2:a 3)
df
hs-a fo
br
bz )
(e i{fo1 :a 2 :a 3)
df
:o , br , br }
Equality
(e a[rd "le "re")
df
"e" bu" gen]
(e b[rd "le "re")
df
"e" bu" gen]
( ab ; = tu
=
) ; > re
Conditionals
(f(o?(on bgnmes)
i ps cut u-ubr)
(rnl "o rayfrrlae)
pitn Nt ed o ees"
(rnl "eppsig)
pitn Ke uhn")
(hn( 0x1)
we >
2
(t "ai tevle)
sr vld i au")
(od
cn
( n0 "eaie
<
) ngtv"
( n0 "oiie
>
) pstv"
:le"eo)
es zr")
Functions
#d-m %)
(ost 1
(o tebn'lc'#d-m %)
.n h-t cik (ost 1)
(e fn(n[ (rnl "o o fn")
df u f ] pitn Lt f u.))
(enfn[
df u ]
(rnl "o o fn")
pitn Lt f u.)
(e fn
df u
"eei eapeo mlil aiy
hr s xml f utpe rt"
(]nl
[ i)
(_ 1
[] )
(__ 2
[ ] )
(___ 3)
[
] )
Destructuring
; cnawy dsrcuei bnigepeso
; a las etutr n idn xrsin
; icuig lt fnto agmns los ec
; nldn, e, ucin ruet, op, t.
(e m{frt"o"
df
:is Bb
:ide""
mdl J
:at"mt")
ls Sih}
(e [:es[is mdl ls] m
lt {ky frt ide at} ]
..
.)
(e clr[5 251005)
df oo 25 5 0 .]
(e [rg_a clr
lt [
] oo]
..
.)
Variable arguments
; alagmnsbyn towl b pae i a
; l ruet eod w il e lcd n
; sqec budt rs
; eune on o et
(enfo[ b&rs]
df o a
et
..
.)
Named parameters &
defaults
(enfo[ {ky [a bz} ..
df o & :es br a]] .)
(o :a 1:a 2
fo br
bz )
(enfo[ {ky [a bz
df o & :es br a]
:r{a "eal1,
o br dfut"
bz"eal2}]..
a dfut"} .)
Iterators
(oe [tm[,,]
dsq ie 123]
(rnl ie)
pitn tm)
(oie [ 5 (rnl "B")
dtms i ] pitn AC)
(op[ 0
lo i ]
(rnl i
pitn )
(eu (n i)
rcr ic ))
;frmprdc;itr
;o;a;euefle
More
Joel Martin, @bus_kanaka, has done great job.
Source:
http://kanaka.github.io/clojurescript/web/synonym.html
Demos
Setting up
Interop with JS
Dommy in Action
Core.Async
Setting up
and getting running
Setting up environment
Download the lein script (or on Windows lein.bat)
Place it on your $PATH where your shell can find it (eg.
~/bin)
Set it to be executable (chmod a+x ~/bin/lein)
Check the version: $> lein version
more info: http://leiningen.org/
Starting with new project
$> lein help new
$> lein new ex1_intro
Result
Change into this
Set up project's file
(epoete1ito"..-NPHT
dfrjc x_nr 010SASO"
:ecito "u iiilpoet"
dsrpin Or nta rjc.
:r "tp/eapecmFXE
ul ht:/xml.o/IM"
:ies {nm "cis Pbi Lcne
lcne :ae Elpe ulc ies"
:r "tp/wwelpeoglglelv0hm"
ul ht:/w.cis.r/ea/p-1.tl}
:eednis[;ht:/w.esoeecmjv/r.ljr:ljr/..
dpnece
;tp/wwvriny.o/aaogcouecoue151
[r.ljr/ljr ".."
ogcouecoue 151]
;ht:/w.esoeecmjv/r.ljr:ljrsrp/.-00
;tp/wwvriny.o/aaogcouecouecit0023
[r.ljr/ljrsrp ".-00]
ogcouecouecit 0023"
[enlgtnel".."]
li-ih-rp 007]

:lgn [li-lsul "..-NPHT]; mkscouecitn ese
puis [encjbid 101SASO" ; ae ljrsrpig air
[ensmltn".."]
li-ipeo 120]
:elotos{nelmdlwr [ihtbenelhnlrlgtal-p]
rp-pin :rp-ideae lgtal.rp.ade/ihtbeos}
; cmrhnieeape hts/gtu.o/mzseli-lsul/lbmse/ape
; opeesv xml: tp:/ihbcmeeek/encjbidbo/atrsml
:lsul {
cjbid
:uls[
bid {
;Tept t tetplvlCouecitsuc drcoy
h ah o h o-ee ljrSrp ore ietr:
:orepts[sccj"
suc-ah "r/ls]
:oplr{
cmie
:uptt "eore/ulcj/oej"
otu-o rsucspbi/scr.s
:piiain :htsae;:oe :ipe :dacd
otmztos wiepc
nn, sml, avne
:annstu
wrig re
:rtypittu}])
pet-rn re}}
ex1_intro/core.cljs
(se1itocr
n x-nr.oe
; uewe yuwn t rp it ti pg
; s hn o at o el no hs ae
(rqie[ljr.rwe.el:srp])
:eur couebosrrp a el)
(en^epr mi [
df :xot an ]
;sryaotta
;or bu ht
(wiej/ouet
.rt sdcmn
"h sye""oo:e;">Hlo HlJ!/1"
<1 tl=clrrd" el, e/S<h>)
;ti pr i rqie frcnetn it brp
;hs at s eurd o oncig no -el
(elcnet"tp/lclot90/el)
rp/onc ht:/oahs:00rp")
index.html
<!<1i ="ra"Frtdm<h>
h d
ae1>is eo/1
<citsc"j/oej"<srp>
srp r=/scr.s>/cit
<cittp=tx/xml"
srp ye"eteape>
e1itocr.an) /cligorfrtap
x_nr.oemi(; /aln u is p;
<srp>
/cit
->
-
Run it
$> lein deps ;; only when you changed deps
$> lein cljsbuild clean ;;
$> lein cljsbuild once ;; or use auto
$> lein simpleton 3000 file :from resources/public
$> goto http://127.0.0.1:3000/index
REPLing with Rhino
$> lein trampoline cljsbuild repl-rhino
$> (dotimes [i 5] (println i))
$> :cljs/quit
Interop with JS
Leap.JS
Dommy
a app for FirefoxOS
Run it
$> lein repl
$> (require '[foxyeye.handler] :reload-all)
$> goto: 127.0.0.1:8080
...
$> (foxyeye.handler/stop-server)
Mainpage
State of project
dependencies
Search
Dommy
(en^epr ii [
df :xot nt ]
(lgj/osl "erhapi iiilzd)
.o scnoe Sac p s ntaie"
(om/itn (e1:sac-t):lc o-erh
dmylse! sl #erhbn cik nsac)
(oe [tm(e :fct-agaeie)
dsq ie sl .aeslnug-tm]
(om/itn ie :lc tgl-aesie))
dmylse! tm cik ogefct-tm)
Templating with Hiccups
(eur 'fxeevessac :ssac-iw)
rqie [oyy.iw.erh a erhve]
..
.
(enrne [ cnet
df edr & otn]
(tl
hm5
(nld-s "csmdr.s"
icuecs /s/oencs
"csmdr-epniecs
/s/oenrsosv.s"
"csapcs)
/s/p.s"
[bd.erucs
:oymtois
[scinapiain{cas"rdcnee"
:eto#plcto :ls gi etrd
:tl "a-it:30x bcgon:wie"
sye mxwdh 8p; akrud ht;}
cnet])
otn])
(edr(erhve sac-tm)
rne sac-iw erhies)

Source: foxyeye.search.cljs
Little Dommy in Action
; gtalslce lnugs
; e l eetd agae
(engtslce-ag [ slcos
df e-eetdlns & eetr]
(pl sr
apy t
(neps 
itroe ,
(o [eetd(e slcos]
fr slce sl eetr)
(om/trslce :aalnug)))
dmyat eetd dt-agae))

Source: foxyeye.search.cljs
Core.async
the last demo
Links
https://github.com/timgluz/heljs
https://github.com/clojure/clojurescript
http://clojure.org/cheatsheet
https://himera.herokuapp.com/synonym.html
https://github.com/magomimmo/modern-cljs
http://kanaka.github.io/clojurescript/web/synonym.html
http://lukevanderhart.com/2011/09/30/using-javascriptand-clojurescript.html
THE END
@timgluz

Contenu connexe

Tendances

Introduction to puppet - Hands on Session at HPI Potsdam
Introduction to puppet - Hands on Session at HPI PotsdamIntroduction to puppet - Hands on Session at HPI Potsdam
Introduction to puppet - Hands on Session at HPI PotsdamChristoph Oelmüller
 
Using the Power to Prove
Using the Power to ProveUsing the Power to Prove
Using the Power to ProveKazuho Oku
 
Php radomize
Php radomizePhp radomize
Php radomizedo_aki
 
The event-driven nature of javascript – IPC2012
The event-driven nature of javascript – IPC2012The event-driven nature of javascript – IPC2012
The event-driven nature of javascript – IPC2012Martin Schuhfuß
 
Unix Programming with Perl
Unix Programming with PerlUnix Programming with Perl
Unix Programming with PerlKazuho Oku
 
Paver: the build tool you missed
Paver: the build tool you missedPaver: the build tool you missed
Paver: the build tool you missedalmadcz
 
Confraria SECURITY & IT - Lisbon Set 29, 2011
Confraria SECURITY & IT - Lisbon Set 29, 2011Confraria SECURITY & IT - Lisbon Set 29, 2011
Confraria SECURITY & IT - Lisbon Set 29, 2011ricardomcm
 
PSR-7 and PSR-15, why can't you ignore them
PSR-7 and PSR-15, why can't you ignore themPSR-7 and PSR-15, why can't you ignore them
PSR-7 and PSR-15, why can't you ignore themSérgio Rafael Siqueira
 
Créer une base NoSQL en 1 heure
Créer une base NoSQL en 1 heureCréer une base NoSQL en 1 heure
Créer une base NoSQL en 1 heureAmaury Bouchard
 
PHPerのためのPerl入門@ Kansai.pm#12
PHPerのためのPerl入門@ Kansai.pm#12PHPerのためのPerl入門@ Kansai.pm#12
PHPerのためのPerl入門@ Kansai.pm#12Kazuki KOMORI
 
Spring scala - Sneaking Scala into your corporation
Spring scala  - Sneaking Scala into your corporationSpring scala  - Sneaking Scala into your corporation
Spring scala - Sneaking Scala into your corporationHenryk Konsek
 

Tendances (20)

Introduction to puppet - Hands on Session at HPI Potsdam
Introduction to puppet - Hands on Session at HPI PotsdamIntroduction to puppet - Hands on Session at HPI Potsdam
Introduction to puppet - Hands on Session at HPI Potsdam
 
iSoligorsk #3 2013
iSoligorsk #3 2013iSoligorsk #3 2013
iSoligorsk #3 2013
 
Using the Power to Prove
Using the Power to ProveUsing the Power to Prove
Using the Power to Prove
 
Expression Language 3.0
Expression Language 3.0Expression Language 3.0
Expression Language 3.0
 
Php radomize
Php radomizePhp radomize
Php radomize
 
The event-driven nature of javascript – IPC2012
The event-driven nature of javascript – IPC2012The event-driven nature of javascript – IPC2012
The event-driven nature of javascript – IPC2012
 
Troubleshooting Puppet
Troubleshooting PuppetTroubleshooting Puppet
Troubleshooting Puppet
 
root-ksk-2010
root-ksk-2010root-ksk-2010
root-ksk-2010
 
Unix Programming with Perl
Unix Programming with PerlUnix Programming with Perl
Unix Programming with Perl
 
gitfs
gitfsgitfs
gitfs
 
Actor model
Actor modelActor model
Actor model
 
Txjs
TxjsTxjs
Txjs
 
Gevent rabbit rpc
Gevent rabbit rpcGevent rabbit rpc
Gevent rabbit rpc
 
Paver: the build tool you missed
Paver: the build tool you missedPaver: the build tool you missed
Paver: the build tool you missed
 
Confraria SECURITY & IT - Lisbon Set 29, 2011
Confraria SECURITY & IT - Lisbon Set 29, 2011Confraria SECURITY & IT - Lisbon Set 29, 2011
Confraria SECURITY & IT - Lisbon Set 29, 2011
 
PSR-7 and PSR-15, why can't you ignore them
PSR-7 and PSR-15, why can't you ignore themPSR-7 and PSR-15, why can't you ignore them
PSR-7 and PSR-15, why can't you ignore them
 
Créer une base NoSQL en 1 heure
Créer une base NoSQL en 1 heureCréer une base NoSQL en 1 heure
Créer une base NoSQL en 1 heure
 
Send mail-oracle11g-det
Send mail-oracle11g-detSend mail-oracle11g-det
Send mail-oracle11g-det
 
PHPerのためのPerl入門@ Kansai.pm#12
PHPerのためのPerl入門@ Kansai.pm#12PHPerのためのPerl入門@ Kansai.pm#12
PHPerのためのPerl入門@ Kansai.pm#12
 
Spring scala - Sneaking Scala into your corporation
Spring scala  - Sneaking Scala into your corporationSpring scala  - Sneaking Scala into your corporation
Spring scala - Sneaking Scala into your corporation
 

Similaire à Clojurescript up and running

SecureSocial - Authentication for Play Framework
SecureSocial - Authentication for Play FrameworkSecureSocial - Authentication for Play Framework
SecureSocial - Authentication for Play Frameworkjaliss
 
An Introduction to CSS Preprocessors
An Introduction to CSS PreprocessorsAn Introduction to CSS Preprocessors
An Introduction to CSS PreprocessorsMiloš Sutanovac
 
Java 8 - project lambda
Java 8 - project lambdaJava 8 - project lambda
Java 8 - project lambdaIvar Østhus
 
Beginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at GoogleBeginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at GoogleAri Lerner
 
Building modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaBuilding modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaAlexander Gyoshev
 
Lambdas myths-and-mistakes
Lambdas myths-and-mistakesLambdas myths-and-mistakes
Lambdas myths-and-mistakesRichardWarburton
 
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)jaxLondonConference
 
JavaScript Design Patterns
JavaScript Design PatternsJavaScript Design Patterns
JavaScript Design PatternsDerek Brown
 
nescala 2013
nescala 2013nescala 2013
nescala 2013Hung Lin
 
Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaTony Fabeen
 
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best PracticesJohannes Hoppe
 
The Power of CSS
The Power of CSSThe Power of CSS
The Power of CSSAniket Pant
 
NodeJS The edge of Reason - Lille fp#6
NodeJS The edge of Reason - Lille fp#6NodeJS The edge of Reason - Lille fp#6
NodeJS The edge of Reason - Lille fp#6Thomas Haessle
 
Drupal 8 in action, the route to the method
Drupal 8 in action, the route to the methodDrupal 8 in action, the route to the method
Drupal 8 in action, the route to the methodjuanolalla
 
Theme Development and Customization
Theme Development and CustomizationTheme Development and Customization
Theme Development and CustomizationAniket Pant
 
Linuxカーネルを読んで改めて知るプロセスとスレッドの違い
Linuxカーネルを読んで改めて知るプロセスとスレッドの違いLinuxカーネルを読んで改めて知るプロセスとスレッドの違い
Linuxカーネルを読んで改めて知るプロセスとスレッドの違いRetrieva inc.
 

Similaire à Clojurescript up and running (20)

SecureSocial - Authentication for Play Framework
SecureSocial - Authentication for Play FrameworkSecureSocial - Authentication for Play Framework
SecureSocial - Authentication for Play Framework
 
JavaFX, because you're worth it
JavaFX, because you're worth itJavaFX, because you're worth it
JavaFX, because you're worth it
 
An Introduction to CSS Preprocessors
An Introduction to CSS PreprocessorsAn Introduction to CSS Preprocessors
An Introduction to CSS Preprocessors
 
Java 8 - project lambda
Java 8 - project lambdaJava 8 - project lambda
Java 8 - project lambda
 
Beginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at GoogleBeginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at Google
 
Building modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaBuilding modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and java
 
Lambdas myths-and-mistakes
Lambdas myths-and-mistakesLambdas myths-and-mistakes
Lambdas myths-and-mistakes
 
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
 
JavaScript Design Patterns
JavaScript Design PatternsJavaScript Design Patterns
JavaScript Design Patterns
 
nescala 2013
nescala 2013nescala 2013
nescala 2013
 
Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with Lua
 
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
 
OOP in Rust
OOP in RustOOP in Rust
OOP in Rust
 
Starting out with Ember.js
Starting out with Ember.jsStarting out with Ember.js
Starting out with Ember.js
 
The Power of CSS
The Power of CSSThe Power of CSS
The Power of CSS
 
NodeJS The edge of Reason - Lille fp#6
NodeJS The edge of Reason - Lille fp#6NodeJS The edge of Reason - Lille fp#6
NodeJS The edge of Reason - Lille fp#6
 
Drupal 8 in action, the route to the method
Drupal 8 in action, the route to the methodDrupal 8 in action, the route to the method
Drupal 8 in action, the route to the method
 
Theme Development and Customization
Theme Development and CustomizationTheme Development and Customization
Theme Development and Customization
 
Introduction to JavaFX 2
Introduction to JavaFX 2Introduction to JavaFX 2
Introduction to JavaFX 2
 
Linuxカーネルを読んで改めて知るプロセスとスレッドの違い
Linuxカーネルを読んで改めて知るプロセスとスレッドの違いLinuxカーネルを読んで改めて知るプロセスとスレッドの違い
Linuxカーネルを読んで改めて知るプロセスとスレッドの違い
 

Dernier

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
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
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Dernier (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
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
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Clojurescript up and running