SlideShare a Scribd company logo
More Secrets of
JavaScript Libraries
   Nate Koechley, Andrew Dupont,
      Becky Gibson, John Resig


4x 10min talks with Q&A at the end.
Getting Loaded
Easier development. Better performance.
Get & Loader
Easier development. Better performance.
The Problems
JavaScript loading
blocks page rendering.
More les increases blocking.
We know a single le is best:
But in practice...
Widgets & Plugins may
have various prerequisites.
<script   src=quot;jquery/jquery-1.2.2.pack.jsquot;/>
<script   src=quot;jquery/chili/chili.jsquot;/>
<script   src=quot;jquery.cookie.jsquot;/>
<script   src=quot;jquery.clickmenu.pack.jsquot;/>
<script   src=quot;jquery.columnmanager.jsquot;/>
<script   src=quot;yahoo-dom-event.jsquot;/>
<script   src=quot;element-min.jsquot;/>
<script   src=quot;connection-min.jsquot;/>
<script   src=quot;tabview-min.jsquot;/>
Sites often use multiple
unrelated JavaScript les.
<script   src=quot;prototype.jsquot;/>
<script   src=quot;scriptaculous.jsquot;/>
<script   src=quot;csiManager.jsquot;/>
<script   src=quot;StorageManager.jsquot;/>
<script   src=quot;main.jsquot;/>
<script   src=quot;urchin.jsquot;>
Larger projects use
   multiple les for
exibility & optimization
<script   src=quot;yui-base.jsquot;/>
<script   src=quot;oop.jsquot;/>
<script   src=quot;event.jsquot;/>
<script   src=quot;attribute.jsquot;/>
<script   src=quot;base.jsquot;/>
<script   src=quot;dom.jsquot;/>
<script   src=quot;node.jsquot;/>
<script   src=quot;widget.jsquot;/>
<script   src=quot;dd.jsquot;/>
<script   src=quot;slider/slider.js/quot;>
<script src=quot;dd.jsquot;/>

                    dd-ddm-base

                    dd-ddm

                    dd-drag


      dd            dd-proxy

                    dd-constrain

                    dd-drop

                    dd-plugin

                    dd-drop-plugin
Most les are
order-dependent.
Other les aren’t
needed right away.
And it’s nice to easily toggle
 between -raw.js, -min.js,
  and -debug.js versions.
three avors of each
fully-commented
-debug with logging
-min for deployment
So, our goals:
Features
•   Handle prerequisies without duplication
•   Manage order dependency
•   Per-module exibility
•   Fast toggling between avors
•   Continue fetching onDemand
•   Minimize HTTP requests
    and not block rendering
That’s what YUI’s Get
& Loader Utilities do.
They’re partners.
Loader   Get
Combo
Loader   Get
               Handler
Loader            Get              Combo
The “seed” le.                    Parses request.
                 Creates new
                 nodes & src’s.
  Meta data.                      Concats modules
                                      if rst.
                 Non-blocking.
Con g options.
                                   Edge-caches.
                 Cross-domain.
Helpers/Sugar.
                 GET not POST.
Loads anything:

•   Library les
•   Your own les
•   JS, CSS, JSON, ...
•   Urchin.js, badges, includes, ...
Easily de ne your resources
// one or more external modules
// that can be loaded along side of YUI

modules: {
  json_org: {
     fullpath: quot;http://www.json.org/json.jsquot;
  },
  json2_org: {
     fullpath: quot;http://www.json.org/json2.jsquot;
  }
}
And their relationships
modules: {
  dom: {
     requires: ['event'],
     submodules: {
       'dom-base': {
          requires: ['event']
       },
       'dom-style': {
          requires: ['dom-base']
       },
       'dom-screen': {
          requires: ['dom-base', 'dom-style']
       },
       selector: {
          requires: ['dom-base']
       }
     }
  },
With ne-grained control
name
  type
  path
fullpath
requires
optional
supersedes
  after
 rollup
Once the seed is on
    the page:
<script src=quot;yui-min.jsquot;/>
<script>
  YUI().use(quot;sliderquot;, function(Y) {
   // Slider available and ready for use.
  });
</script>
Other cool features
      in Get:
Choose where the nodes go.
Purge After Reading
Bene ts
•   Easy to use.
•   No typos. Less to manage.
•   Much faster performance.
•   Extensive exibility.
•   Nice support for lazy-loading.
•   Library agnostic.
nate@koechley.com
developer.yahoo.com/yui/3/yui/
developer.yahoo.com/yui/3/get/
github.com/yui
Meta-Language
 Frameworks
The code you write is
transformed before a
browser consumes it
Google Web Toolkit
  (turns Java into
    JavaScript)
Pyjamas
(turns Python into
    JavaScript)
Cappuccino
(turns “Objective-J”
  into JavaScript)
Some of them are
  lightweight...
Narrative JS
 (adds “sleep”-like
functionality to JS)
function waitForButton() {
  // do some work

    // create our notifier
    var notifier = new EventNotifier();

    // attach our notifier to the button
    document.getElementById(quot;myButtonquot;).onclick = notifier;

    // wait for the button to be clicked
    notifier.wait->();

    // do more work
}
Google Caja
(turns JavaScript into
   safer JavaScript)
var blogComment = document.createElement('div');
blogComment.innerHTML = quot;<b>user entered text quot; +
quot;which happens to contain a script quot; +
quot;tag.</b><script defer>alert('muahahaa');</scrquot; + quot;ipt>quot;;
document.getElementById(quot;resultquot;).appendChild(blogComment);
___.loadModule({
'instantiate': function (___, IMPORTS___) {
var moduleResult___ = ___.NO_RESULT;
var $v = ___.readImport(IMPORTS___, '$v', {
'getOuters': {
'()': { }
},
'ro': {
'()': { }
},
'so': {
'()': { }
},
'initOuter': {
'()': { }
},
'cm': {
'()': { }
},
's': {
'()': { }
}
});
var $dis = $v.getOuters();
$v.initOuter('onerror');
try {
{
$v.so('blogComment', $v.cm($v.ro('document'),
'createElement', [ 'div' ]));
$v.s($v.ro('blogComment'), 'innerHTML',
'<b>user entered text which happens to contain a script '
+
'tag.</b><script defer>alert('muahahaa');</scr'
+ 'ipt>');
moduleResult___ = $v.cm($v.cm($v.ro('document'),
'getElementById', [ 'result' ]),
'appendChild', [ $v.ro('blogComment') ]);
}
} catch (ex___) {
___.getNewModuleHandler().handleUncaughtException(ex___,
$v.ro('onerror'), 'testbed/', '2');
}
return moduleResult___;
},
'cajolerName': 'com.google.caja',
'cajolerVersion': '3339M',
'cajoledDate': 1237011597543
});
}
Why?
GWT gets to use the
  Java toolset
Cappuccino gets to
introduce new syntax
   and new features
Let’s say you want
     Ruby-style
“catch-all” methods
object.methodName(arg);
object.callMethod(quot;methodNamequot;, arg);
[object methodName];
Fine, but now
you’re more distant
  from the code
Harder to debug
Longer feedback loop
It’s a
thicker abstraction
John’s blog post
    http://is.gd/bKwl
Abstractions leak...
what happens when
 stu goes wrong?
Francisco’s Response
      http://is.gd/aJ36
All frameworks
are abstractions
Yeah, abstractions
leak, but we all use
  them anyway
MORAL:
Abstractions
are trade-o s
Thicker abstractions
have more hassle, but
o er greater rewards
Which way
should you go?
Think about
  up-front cost
and ongoing cost
Use what
makes sense
to your head
Consider:
 We’re “stuck”
with JavaScript
!quot;#$%&'($)%*++quot;,,-.-$-/0



1quot;+20%3-.,'4
5'6'%*++quot;,,-.-$-/0%7quot;#)
819%&quot;.%*++quot;,,-.-$-/0%*(+:-/quot;+/
<'=%>%!quot;#,'4,%?quot;'=$quot;%5'4@/%8A=$quot;Aquot;4/
                                   %
            *++quot;,,-.-$-/0




                                       ;
>B%90%,-/quot;%8C%#++quot;,,-.$quot;
    %D%-/@,%E=%;FGHI




                           >
>B%90%,-/quot;%8C%#++quot;,,-.$quot;
    %D%-/@,%E=%;FGHI




                           F
;B%?quot;'=$quot;%K-/:%5-,#.-$-/-quot;,%)'4@/%E,quot;%A0
                                       %
    ,-/quot;




                                           J
;B%?quot;'=$quot;%K-/:%5-,#.-$-/-quot;,%)'4@/%E,quot;%A0
                                       %
    ,-/quot;




                                           L
MB%*))-4N%*MM0%-,%/''%:#()%#4)%K-$$%(E-4%
    A0%)quot;,-N4




                                            H
MB%*))-4N%*MM0%-,%/''%:#()%#4)%K-$$%(E-4%
    A0%)quot;,-N4




                                            O
MB%*))-4N%*MM0%-,%/''%:#()%#4)%K-$$%(E-4%
    A0%)quot;,-N4



         -,%)'-4N%-/




                                            P
MB%*))-4N%*MM0%-,%/''%:#()%#4)%K-$$%(E-4%
    A0%)quot;,-N4



         -,%)'-4N%-/


                       -,%)'-4N%-/




                                            MQ
MB%*))-4N%*MM0%-,%/''%:#()%#4)%K-$$%(E-4%
    A0%)quot;,-N4



         -,%)'-4N%-/


                       -,%)'-4N%-/


                  R8%-,%)'-4N%-/



                                            MM
*$$%/:quot;,quot;%+'A=#4-quot;,%#(quot;%)'-4N%-/




                                   M;
*!8*%D *++quot;,,-.$quot;%!-+:%84/quot;(4quot;/%*==$-+#/-'4,
     %




                                               M>
*!8*%D%&:#/%-,%-/S
! *++quot;,,-.$quot;%!-+:%84/quot;(4quot;/%*==$-+#/-'4,
! &>T%C=quot;+-U-+#/-'4V%$-2quot;%W<97V%TCCV%X97%quot;/+B
! &-/:-4%?('/'+'$,%Y%Z'(A#/,%&'(2-4N%3('E=%K:-+:%-, %
  =#(/%'U%&*8%D%&quot;.%*++quot;,,-.-$-/0%84-/-#/-[quot;
! 84%7#,/%T#$$%C/#/E,
! 8A=$quot;Aquot;4/quot;)%-4%Z-(quot;U'GV%8O%K-/:%]=quot;(#%#4)%C#U#(-
                                                  %
  E4)quot;(%)quot;[quot;$'=Aquot;4/
! 3#-4-4N%-4+(quot;#,-4N%,E=='(/%.0%.('K,quot;(,V%&quot;.%/''$2-/,%
  #4)%#,,-,/-[quot;%/quot;+:4'$'N-quot;,


                                                          MF
*!8*%][quot;([-quot;K
! *))%('$quot;%,quot;A#4/-+,%/'%,+(-=/quot;)%R8%quot;$quot;Aquot;4/,
! R=)#/quot;%,/#/quot;%-4U'(A#/-'4%)04#A-+#$$0
! 9#2quot;%-/quot;A,%U'+E,#.$quot;%[-#%/#.-4)quot;G%#//(-.E/quot;
! *))%2quot;0.'#()%quot;[quot;4/%:#4)$-4N
  ^ 9-A-+%/:quot;%2quot;0.'#()%.quot;:#[-'(%'U%/:quot;%(-+:%+$-quot;4/%R8
  ^ 9-4-A-_quot;%/#.%2quot;0%4#[-N#/-'4
! *))%$-[quot;%(quot;N-'4%-4U'%#4)%4'/-U-+#/-'4%/'%,E=='(/%*6#G




                                                          MJ
*!8*%G#A=$quot;%D%<(quot;quot;

                      !'$quot;%`%/(quot;quot;
                      a'4%'E/quot;(%+'4/#-4quot;(b


                      !'$quot;%` %
                      /(quot;quot;-/quot;A
                      quot;G=#4)quot;)`/(Equot;
                      a'4%'=quot;4%*U(-+#%4')quot;b
                      !'$quot;%`%/(quot;quot;-/quot;A
                      ,quot;$quot;+/quot;)`/(Equot;
                      a'4%:-N:$-N:/quot;)%N0=/%+:-$)%4')quot;%K-/:%4'%+:-$)(quot;4b




                         !'$quot;%`%/(quot;quot;-/quot;A
                         quot;G=#4)quot;)`U#$,quot;
                         a'4%+$',quot;)%*E,/(#$-#%4')quot;b




                                                               ML
*!8*%!'$quot;,
! $-42                ! #==$-+#/-'4
! +'A.'.'GV%'=/-'4    ! =(quot;,quot;4/#/-'4
! +:quot;+2.'G            ! N('E=
! (#)-'V%(#)-'N('E=   ! N(-)V%N(-)+quot;$$
! .E//'4              ! /#.V%/#.+'4/#-4quot;(V%
                        /#.$-,/V%/#.=#4quot;$
! =('N(quot;,,.#(
                      ! $-,/V%$-,/-/quot;A
! ,$-)quot;(
                      ! Aquot;4E.#(V%Aquot;4E
! ,=-4.E//'4
                      ! /''$.#(
! /(quot;quot;V%/(quot;quot;-/quot;A
                      ! A'(quot;cc
! #$quot;(/

                                              MH
*!8*D%%C/#/quot;,

 C/#/quot;                     e#$Equot;,
 +:quot;+2quot;)                   /(Equot;%d%U#$,quot;%d%A-Gquot;)
 )-,#.$quot;)                  /(Equot;%d%U#$,quot;
 (quot;#)'4$0                  /(Equot;%d%U#$,quot;
 quot;G=#4)quot;)                  /(Equot;%d%U#$,quot;
 [#$Equot;A-4V%[#$Equot;A#GV
                   %       T5*<*
 [#$Equot;4'K
 'K4,V%:#,='=E=            85!Z
 )quot;,+(-.quot;).0B%$#.quot;$$quot;).0   85!Z
 9#40%A'(quot;%ccB
                                                  MO
*!8*%7#4)A#(2%!'$quot;,
! 9#2quot;,%U-4)-4N%#4)%4#[-N#/-4N%/'%,quot;+/-'4,%'U%/:quot;%=#Nquot;
                                                     %
  quot;#,-quot;(
       !quot;quot;#$%&'$()
   ^
       *&))+,
   ^
       -(.quot;#+.+)'&,/
   ^
       -()'+)'$)0(
   ^
       1&$)
   ^
       2&3$4&'$()
   ^
       5+&,%6
   ^




                                                         MP
7#4)A#(2,%G#A=$quot;




                    ;Q
7#4)A#(2,%G#A=$quot;

                    .#44quot;(




                             ;M
7#4)A#(2,%G#A=$quot;

                    .#44quot;(



     f#[-N#/-'4




                             ;;
7#4)A#(2,%G#A=$quot;

                     .#44quot;(



     f#[-N#/-'4

                    9#-4




                              ;>
7#4)A#(2,%G#A=$quot;

                                  .#44quot;(



     f#[-N#/-'4

                             9#-4




                    +'4/quot;4/-4U'


                                           ;F
7#4)A#(2%G#A=$quot;
g)-[%)'6'<0=quot;`h)-6-/B$#0'E/BT'4/quot;4/?#4quot;h%(quot;N-'4`h/'=h      %
         +$#,,`h.#44quot;(h%('$quot;`h.#44quot;(hi
                  g,=#4%+$#,,`h$'N'hi&quot;.*MM0gj,=#4i      %
%% gj)-[igIDD%quot;4)%'U%/'=%DDi
 %
%% g)-[%-)`h$quot;U/h%)'6'<0=quot;`h)-6-/B$#0'E/BT'4/quot;4/?#4quot;h%(quot;N-'4`h$quot;U/h
 %                                                                  %
                  ('$quot;`h4#[-N#/-'4hi
                  gIDD%<(quot;quot;%N'quot;,%:quot;(quot;%DDi
%% gj)-[igIDD%quot;4)%'U%$quot;U/%DDi
 %
%% g)-[%-)`h+'4/quot;4/h%)'6'<0=quot;`h)-6-/B$#0'E/BT'4/quot;4/?#4quot;h%/-/$quot;`hT'4/quot;4/h
 %                                                                       %
                  ('$quot;`hA#-4h%#(-#D$-[quot;`h#,,quot;(/-[quot;h%#(-#D#/'A-+`h/(Equot;h%i
%%%%%%%%          84U'%U('A%,quot;$quot;+/quot;)%/(quot;quot;%-/quot;A%-,%$'#)quot;)%:quot;(quot;
%% gj)-[igIDD%quot;4)%'U%+quot;4/quot;(%DDi
 %
%% g)-[%)'6'<0=quot;`h)-6-/B$#0'E/BT'4/quot;4/?#4quot;h%(quot;N-'4`h.'//'Ah
 %                                                             %
                  ('$quot;`h+'4/quot;4/-4U'h i
                                    %
                  gIDD%U''/quot;(%N'quot;,%:quot;(quot;%DDi
%% gj)-[igIDD%quot;4)%'U%.'//'A%DDi
 %
                                                                       ;J
*!8*%7-[quot;%!quot;N-'4,
! ?quot;(+quot;-[#.$quot;%,quot;+/-'4,%#(quot;%-)quot;4/-U-quot;)%K-/:%(quot;N-'4%('$quot;
! 7-[quot;%-4)-+#/quot;,%(quot;N-'4%-,%E=)#/quot;)
   ^ e#$Equot;,%'Uk%]UUV%?'$-/quot;V%*,,quot;(/-[quot;V%!E)quot;
! */'A-+%-)quot;4/-U-quot;,%/:quot;%quot;G/quot;4/%'U%E=)#/quot;,
   ^ <(Equot;%^%quot;4/-(quot;%(quot;N-'4%-,%E=)#/quot;)%#4)%(quot;$quot;[#4/
   ^ Z#$,quot;%^%'4$0%+:#4Nquot;)%quot;$quot;Aquot;4/%4quot;quot;),%/'%.quot;%=(quot;,quot;4/quot;)%/'%E,quot;(




                                                                  ;L
7-[quot;%!quot;N-'4%G#A=$quot;




                      ;H
7-[quot;%!quot;N-'4%G#A=$quot;
gIDD%Aquot;,,#Nquot;%=(quot;[-quot;K%=#4quot;%DDi

g)-[%-)`hAquot;,,#Nquot;h%)'6'<0=quot;`h)-6-/B$#0'E/BT'4/quot;4/?#4quot;h    %
       (quot;N-'4`h+quot;4/quot;(h%A-4C-_quot;`h;Qh
       ('$quot;`h(quot;N-'4h%#(-#D$-[quot;`h#,,quot;(/-[quot;h%#(-#D#/'A-+`h/(Equot;h%i

              9quot;,,#Nquot;%T'4/quot;4/,%$'#)quot;)%:quot;(quot;

gj)-[i%

gIDD%quot;4)%'U%hAquot;,,#Nquot;h%DDi


                                                              ;O
CEAA#(0
! lC%<''$2-/,%#(quot;%-A=$quot;Aquot;4/-4N%*!8*%D%E,quot;%/:quot;AI
   ^ 5'6'%)-6-/,%#(quot;%#$$%UE$$0%#++quot;,,-.$quot;
! *!8*%A#2quot;,%*6#G%#++quot;,,-.$quot;
! 9#2quot;%0'E(%Kquot;.,-/quot;,%)04#A-+%*f5%#++quot;,,-.$quot;I



                 8A='(/#4+quot;%'U%mquot;0.'#()




                                                  ;P
Performance and
     Testing
     John Resig
Performance
Analyzing Performance
    Optimizing performance is a huge
!
    concern: Faster code = happy users!
    Measure execution time
!

    Loop the code a few times
!

    Measure the di!erence:
!
    ! quot;new Date#.getTimequot;#;
Stack Pro$ling
    jQuery Stack Pro$ler
!

    Look for problematic methods and plugins
!

    http://ejohn.org/blog/deep%pro$ling%
!
    jquery%apps/
Accuracy of
  JavaScript Time
We’re measuring the performance of
 JavaScript from within JavaScript!


  http://ejohn.org/blog/accuracy-of-javascript-time/
15ms intervals ONLY!

     Error Rate of 50-750%!
Performance Tools
    How can we get good numbers?
!

    We have to go straight to the source: Use
!
    the tools the browsers provide.
    Tools:
!
    ! Firebug Pro$ler
    ! Safari Pro$ler
      ! quot;Part of Safari 4#
    ! IE 8 Pro$ler
Firebug Pro$ler
Safari 4 Pro$ler
IE 8 Pro$ler
FireUnit
    A simple JavaScript test suite embedded in
!
    Firebug.
    http://$reunit.org/
!
FireUnit Pro$le Data

                                            {
 fireunit.getProfile();                              quot;timequot;: 8.443,
                                                   quot;callsquot;: 611,
                                                   quot;dataquot;:[
                                                   {
                                                      quot;namequot;:quot;makeArray()quot;,
                                                      quot;callsquot;:1,
                                                      quot;percentquot;:23.58,
                                                      quot;ownTimequot;:1.991,
                                                      quot;timequot;:1.991,
                                                      quot;avgTimequot;:1.991,
                                                      quot;minTimequot;:1.991,
                                                      quot;maxTimequot;:1.991,
                                                      quot;fileNamequot;:quot;jquery.js (line 2059)quot;
                                                   },
                                                   // etc.
http://ejohn.org/blog/function-call-profiling/ ]}
Complexity Analysis
             Analyze complexity rather than raw time
         !

             jQuery Call Count Pro$ler quot;uses FireUnit#
         !

             Method                        Calls           Big-O
.addClass(quot;testquot;);                 542             6n
.addClass(quot;testquot;);                 592             6n
.removeClass(quot;testquot;);              754             8n
.removeClass(quot;testquot;);              610             6n
.css(quot;colorquot;, quot;redquot;);              495             5n
.css({color: quot;redquot;, border: quot;1px   887             9n
solid redquot;});
.remove();                         23772           2n+n2
.append(quot;<p>test</p>quot;);            307             3n
Complexity Analysis
               Reducing call count helps to reduce
           !
               complexity
               Results for 1.3.3:
           !

                        Method                        Calls        Big-O

              .remove();                        298           3n

              .html(quot;<p>test</p>quot;); 507                       5n

              .empty();                         200           2n



http://ejohn.org/blog/function-call-profiling/
Testing
Test Suites
    Automated testing
!

    jQuery, Prototype, Dojo, YUI all have
!
    their own test suites
QUnit
    jQuery&s Test Suite
!
    ! Nice and simple
    ! Works well for asynchronous tests, too.
qUnit Usage
    test(quot;a basic test examplequot;, function() {
!

      ok( true, quot;this test is finequot; );
      var value = quot;helloquot;;
      equals( quot;helloquot;, value, quot;We expect value to be helloquot; );
    });

    module(quot;Module Aquot;);
    test(quot;first test within modulequot;, function() {
      ok( true, quot;all passquot; );
    });
    test(quot;second test within modulequot;, function() {
      ok( true, quot;all passquot; );
    });

    module(quot;Module Bquot;);
    test(quot;some other testquot;, function() {
      expect(1);
      ok( true, quot;wellquot; );
    });
qUnit Output
Choose Your Browsers
Cost / Bene$t




  IE 7     IE 6          FF 3    Safari 3   Opera 9.5
                  Cost          Benefit


         Draw a line in the sand.
Graded Support




   Yahoo Browser Compatibility
Browser Support Grid
           IE      Firefox   Safari   Opera Chrome


Previous   6.0       2.0      3.0      9.5


Current    7.0       3.0      3.2      9.6    1.0


 Next      8.0       3.1      4.0     10.0    2.0

                 jQuery Browser Support
Browser Support Grid
           IE       Firefox   Safari   Opera Chrome


Previous                       3.0      9.5
           6.0        2.0


Current    7.0        3.0      3.2      9.6    1.0


 Next      8.0        3.1      4.0             2.0
                                       10.0

                jQuery 1.3 Browser Support
The Scaling Problem
    The Problem:
!
    ! jQuery has 6 test suites
    ! Run in 11 browsers
    ! quot;Not even including multiple platforms!#

    All need to be run for every commit,
!
    patch, and plugin.
    JavaScript testing doesn&t scale well.
!
Distributed Testing
    Hub server
!

    Clients connect and help run tests
!

    A simple JavaScript client that can be run
!
    in all browsers
    ! Including mobile browsers!


! TestSwarm
FF 3.5 FF 3.5 FF 3.5
                                                  IE 6
                                                         IE 6
       FF 3                                                      IE 6
                                           Op 9
FF 3

                                                                 IE 7

                               TestSwarm
                                                                  IE 7




              Test Suite        Test Suite          Test Suite
Manual Testing
    Push tests to users who follow pre%de$ned
!
    steps
    Answer 'Yes&/&No& questions which are
!
    pushed back to the server.
    An e!ective way to distribute manual test
!
    load to dozens of clients.
TestSwarm.com
    Incentives for top testers quot;t%shirts, books#
!

    Will be opening for testing at the end of
!
    the month
    Help your favorite JavaScript library
!
    become better tested!
    http://testswarm.com
!
Q&A
Please come up to the microphones!

More Related Content

What's hot

HTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymoreHTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymore
Remy Sharp
 
Building an HTML5 Video Player
Building an HTML5 Video PlayerBuilding an HTML5 Video Player
Building an HTML5 Video Player
Jim Jeffers
 
WordPress and Ajax
WordPress and AjaxWordPress and Ajax
WordPress and Ajax
Ronald Huereca
 
HTML 5 & CSS 3
HTML 5 & CSS 3HTML 5 & CSS 3
HTML 5 & CSS 3
Kevin van Dijk
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
Joseph Scott
 
Maintainable JavaScript 2012
Maintainable JavaScript 2012Maintainable JavaScript 2012
Maintainable JavaScript 2012
Nicholas Zakas
 
jQuery Anti-Patterns for Performance & Compression
jQuery Anti-Patterns for Performance & CompressionjQuery Anti-Patterns for Performance & Compression
jQuery Anti-Patterns for Performance & Compression
Paul Irish
 
What's new in Rails 2?
What's new in Rails 2?What's new in Rails 2?
What's new in Rails 2?
brynary
 
Building Realtime Apps with Ember.js and WebSockets
Building Realtime Apps with Ember.js and WebSocketsBuilding Realtime Apps with Ember.js and WebSockets
Building Realtime Apps with Ember.js and WebSockets
Ben Limmer
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
dynamis
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the Finish
Yehuda Katz
 
Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the IslandsOpening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands
Bastian Hofmann
 
OSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialOSDC 2009 Rails Turtorial
OSDC 2009 Rails Turtorial
Yi-Ting Cheng
 
Game Development Using HTML 5
Game Development Using HTML 5Game Development Using HTML 5
Game Development Using HTML 5
osa_ora
 
Building a Single Page Application using Ember.js ... for fun and profit
Building a Single Page Application using Ember.js ... for fun and profitBuilding a Single Page Application using Ember.js ... for fun and profit
Building a Single Page Application using Ember.js ... for fun and profit
Ben Limmer
 
前端概述
前端概述前端概述
前端概述
Ethan Zhang
 
Ruby gems
Ruby gemsRuby gems
Ruby gems
Papp Laszlo
 
How to actually use promises - Jakob Mattsson, FishBrain
How to actually use promises - Jakob Mattsson, FishBrainHow to actually use promises - Jakob Mattsson, FishBrain
How to actually use promises - Jakob Mattsson, FishBrain
Codemotion Tel Aviv
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Paulo Ragonha
 
#NewMeetup Performance
#NewMeetup Performance#NewMeetup Performance
#NewMeetup Performance
Justin Cataldo
 

What's hot (20)

HTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymoreHTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymore
 
Building an HTML5 Video Player
Building an HTML5 Video PlayerBuilding an HTML5 Video Player
Building an HTML5 Video Player
 
WordPress and Ajax
WordPress and AjaxWordPress and Ajax
WordPress and Ajax
 
HTML 5 & CSS 3
HTML 5 & CSS 3HTML 5 & CSS 3
HTML 5 & CSS 3
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
 
Maintainable JavaScript 2012
Maintainable JavaScript 2012Maintainable JavaScript 2012
Maintainable JavaScript 2012
 
jQuery Anti-Patterns for Performance & Compression
jQuery Anti-Patterns for Performance & CompressionjQuery Anti-Patterns for Performance & Compression
jQuery Anti-Patterns for Performance & Compression
 
What's new in Rails 2?
What's new in Rails 2?What's new in Rails 2?
What's new in Rails 2?
 
Building Realtime Apps with Ember.js and WebSockets
Building Realtime Apps with Ember.js and WebSocketsBuilding Realtime Apps with Ember.js and WebSockets
Building Realtime Apps with Ember.js and WebSockets
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the Finish
 
Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the IslandsOpening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands
 
OSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialOSDC 2009 Rails Turtorial
OSDC 2009 Rails Turtorial
 
Game Development Using HTML 5
Game Development Using HTML 5Game Development Using HTML 5
Game Development Using HTML 5
 
Building a Single Page Application using Ember.js ... for fun and profit
Building a Single Page Application using Ember.js ... for fun and profitBuilding a Single Page Application using Ember.js ... for fun and profit
Building a Single Page Application using Ember.js ... for fun and profit
 
前端概述
前端概述前端概述
前端概述
 
Ruby gems
Ruby gemsRuby gems
Ruby gems
 
How to actually use promises - Jakob Mattsson, FishBrain
How to actually use promises - Jakob Mattsson, FishBrainHow to actually use promises - Jakob Mattsson, FishBrain
How to actually use promises - Jakob Mattsson, FishBrain
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
 
#NewMeetup Performance
#NewMeetup Performance#NewMeetup Performance
#NewMeetup Performance
 

Similar to More Secrets of JavaScript Libraries

Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
Bruce Snyder
 
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
Amazon Web Services
 
Plone Interactivity
Plone InteractivityPlone Interactivity
Plone Interactivity
Eric Steele
 
Rails 3 And The Real Secret To High Productivity Presentation
Rails 3 And The Real Secret To High Productivity PresentationRails 3 And The Real Secret To High Productivity Presentation
Rails 3 And The Real Secret To High Productivity Presentation
railsconf
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
Carles Farré
 
JSUG - Spring by Christoph Pickl
JSUG - Spring by Christoph PicklJSUG - Spring by Christoph Pickl
JSUG - Spring by Christoph Pickl
Christoph Pickl
 
jQuery Internals + Cool Stuff
jQuery Internals + Cool StuffjQuery Internals + Cool Stuff
jQuery Internals + Cool Stuff
jeresig
 
Adventurous Merb
Adventurous MerbAdventurous Merb
Adventurous Merb
Matt Todd
 
SearchMonkey
SearchMonkeySearchMonkey
SearchMonkey
Paul Tarjan
 
Using Geeklog as a Web Application Framework
Using Geeklog as a Web Application FrameworkUsing Geeklog as a Web Application Framework
Using Geeklog as a Web Application Framework
Dirk Haun
 
Satchmo
SatchmoSatchmo
Satchmo
DjangoCon2008
 
Capistrano2
Capistrano2Capistrano2
Capistrano2
Luca Mearelli
 
Orbitz and Spring Webflow Case Study
Orbitz and Spring Webflow Case StudyOrbitz and Spring Webflow Case Study
Orbitz and Spring Webflow Case Study
Mark Meeker
 
T5 Oli Aro
T5 Oli AroT5 Oli Aro
T5 Oli Aro
Javier Toledo
 
Php
PhpPhp
Curso Symfony - Clase 4
Curso Symfony - Clase 4Curso Symfony - Clase 4
Curso Symfony - Clase 4
Javier Eguiluz
 
The Dojo Build System
The Dojo Build SystemThe Dojo Build System
The Dojo Build System
klipstein
 
Developing and testing ajax components
Developing and testing ajax componentsDeveloping and testing ajax components
Developing and testing ajax components
Ignacio Coloma
 
jQuery Performance Rules
jQuery Performance RulesjQuery Performance Rules
jQuery Performance Rules
nagarajhubli
 
Even Faster Web Sites at jQuery Conference '09
Even Faster Web Sites at jQuery Conference '09Even Faster Web Sites at jQuery Conference '09
Even Faster Web Sites at jQuery Conference '09
Steve Souders
 

Similar to More Secrets of JavaScript Libraries (20)

Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
 
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
 
Plone Interactivity
Plone InteractivityPlone Interactivity
Plone Interactivity
 
Rails 3 And The Real Secret To High Productivity Presentation
Rails 3 And The Real Secret To High Productivity PresentationRails 3 And The Real Secret To High Productivity Presentation
Rails 3 And The Real Secret To High Productivity Presentation
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
 
JSUG - Spring by Christoph Pickl
JSUG - Spring by Christoph PicklJSUG - Spring by Christoph Pickl
JSUG - Spring by Christoph Pickl
 
jQuery Internals + Cool Stuff
jQuery Internals + Cool StuffjQuery Internals + Cool Stuff
jQuery Internals + Cool Stuff
 
Adventurous Merb
Adventurous MerbAdventurous Merb
Adventurous Merb
 
SearchMonkey
SearchMonkeySearchMonkey
SearchMonkey
 
Using Geeklog as a Web Application Framework
Using Geeklog as a Web Application FrameworkUsing Geeklog as a Web Application Framework
Using Geeklog as a Web Application Framework
 
Satchmo
SatchmoSatchmo
Satchmo
 
Capistrano2
Capistrano2Capistrano2
Capistrano2
 
Orbitz and Spring Webflow Case Study
Orbitz and Spring Webflow Case StudyOrbitz and Spring Webflow Case Study
Orbitz and Spring Webflow Case Study
 
T5 Oli Aro
T5 Oli AroT5 Oli Aro
T5 Oli Aro
 
Php
PhpPhp
Php
 
Curso Symfony - Clase 4
Curso Symfony - Clase 4Curso Symfony - Clase 4
Curso Symfony - Clase 4
 
The Dojo Build System
The Dojo Build SystemThe Dojo Build System
The Dojo Build System
 
Developing and testing ajax components
Developing and testing ajax componentsDeveloping and testing ajax components
Developing and testing ajax components
 
jQuery Performance Rules
jQuery Performance RulesjQuery Performance Rules
jQuery Performance Rules
 
Even Faster Web Sites at jQuery Conference '09
Even Faster Web Sites at jQuery Conference '09Even Faster Web Sites at jQuery Conference '09
Even Faster Web Sites at jQuery Conference '09
 

More from jeresig

Does Coding Every Day Matter?
Does Coding Every Day Matter?Does Coding Every Day Matter?
Does Coding Every Day Matter?
jeresig
 
Accidentally Becoming a Digital Librarian
Accidentally Becoming a Digital LibrarianAccidentally Becoming a Digital Librarian
Accidentally Becoming a Digital Librarian
jeresig
 
2014: John's Favorite Thing (Neo4j)
2014: John's Favorite Thing (Neo4j)2014: John's Favorite Thing (Neo4j)
2014: John's Favorite Thing (Neo4j)
jeresig
 
Computer Vision as Art Historical Investigation
Computer Vision as Art Historical InvestigationComputer Vision as Art Historical Investigation
Computer Vision as Art Historical Investigation
jeresig
 
Hacking Art History
Hacking Art HistoryHacking Art History
Hacking Art History
jeresig
 
Using JS to teach JS at Khan Academy
Using JS to teach JS at Khan AcademyUsing JS to teach JS at Khan Academy
Using JS to teach JS at Khan Academy
jeresig
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art History
jeresig
 
NYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri ResultsNYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri Results
jeresig
 
EmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image AnalysisEmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image Analysis
jeresig
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art History
jeresig
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)
jeresig
 
Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)
jeresig
 
jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)
jeresig
 
jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)
jeresig
 
jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)
jeresig
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
jeresig
 
jQuery Open Source (Fronteer 2011)
jQuery Open Source (Fronteer 2011)jQuery Open Source (Fronteer 2011)
jQuery Open Source (Fronteer 2011)
jeresig
 
Holistic JavaScript Performance
Holistic JavaScript PerformanceHolistic JavaScript Performance
Holistic JavaScript Performance
jeresig
 
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)
jeresig
 
Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)
jeresig
 

More from jeresig (20)

Does Coding Every Day Matter?
Does Coding Every Day Matter?Does Coding Every Day Matter?
Does Coding Every Day Matter?
 
Accidentally Becoming a Digital Librarian
Accidentally Becoming a Digital LibrarianAccidentally Becoming a Digital Librarian
Accidentally Becoming a Digital Librarian
 
2014: John's Favorite Thing (Neo4j)
2014: John's Favorite Thing (Neo4j)2014: John's Favorite Thing (Neo4j)
2014: John's Favorite Thing (Neo4j)
 
Computer Vision as Art Historical Investigation
Computer Vision as Art Historical InvestigationComputer Vision as Art Historical Investigation
Computer Vision as Art Historical Investigation
 
Hacking Art History
Hacking Art HistoryHacking Art History
Hacking Art History
 
Using JS to teach JS at Khan Academy
Using JS to teach JS at Khan AcademyUsing JS to teach JS at Khan Academy
Using JS to teach JS at Khan Academy
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art History
 
NYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri ResultsNYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri Results
 
EmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image AnalysisEmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image Analysis
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art History
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)
 
Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)
 
jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)
 
jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)
 
jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
jQuery Open Source (Fronteer 2011)
jQuery Open Source (Fronteer 2011)jQuery Open Source (Fronteer 2011)
jQuery Open Source (Fronteer 2011)
 
Holistic JavaScript Performance
Holistic JavaScript PerformanceHolistic JavaScript Performance
Holistic JavaScript Performance
 
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)
 
Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)
 

Recently uploaded

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
Edge AI and Vision Alliance
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 

Recently uploaded (20)

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 

More Secrets of JavaScript Libraries