SlideShare una empresa de Scribd logo
1 de 54
Descargar para leer sin conexión
_H@<k@th0n_

                             Ken Collins
                            metaskills.net

Monday, September 12, 11
Who Am I Again?




                              ?
Monday, September 12, 11
Who Am I Again?
                            @MetaSkills




Monday, September 12, 11
Who Am I Again?
                            @MetaSkills




Monday, September 12, 11
Who Am I Again?
                            @MetaSkills




Monday, September 12, 11
Who Am I Again?
                            @MetaSkills




Monday, September 12, 11
Who Am I Again?
                            @MetaSkills

                                       ...


Monday, September 12, 11
Sr. Soft ware Engineer @ Decisiv




Monday, September 12, 11
Monday, September 12, 11
JavaScript


Monday, September 12, 11
Monday, September 12, 11
Blog @ MetaSkills.net




Monday, September 12, 11
Freetime @ HomeMarks.com




Monday, September 12, 11
Advocate @ 757rb.org




Monday, September 12, 11
HTML5
                            CSS3

Monday, September 12, 11
Divitis

                 <div id="post">
                   <div id="header">
                     <span class="pubdate">
                        <span class="day">27</span>
                        <span class="month">Dec</span>
                        <span class="year">2010</span>
                     </span>
                     <h1>My New Blog</h1>
                   </div>
                   ...
                   <div id="disqus_thread">
                     ...
                   </div>
                 </div>




Monday, September 12, 11
Semantic

                 <article id="post">
                   <header>
                     <time pubdate datetime="2010-12-27T00:00:00-05:00">
                       <span class="day">27</span>
                       <span class="month">Dec</span>
                       <span class="year">2010</span>
                     </time>
                     <h1>My New Blog</h1>
                   </header>
                   ...
                   <footer id="disqus_thread">
                     ...
                   </footer>
                 </article>




Monday, September 12, 11
Dive Into HTML5




                           http://diveintohtml5.org/semantics.html#new-elements


Monday, September 12, 11
CSS3




Monday, September 12, 11
CSS3
                           Selectors




Monday, September 12, 11
CSS3
                           Selectors
                           Borders (images, radius, shadows)




Monday, September 12, 11
CSS3
                           Selectors
                           Borders (images, radius, shadows)
                           Colors (rgba, hsla, opacity)




Monday, September 12, 11
CSS3
                           Selectors
                           Borders (images, radius, shadows)
                           Colors (rgba, hsla, opacity)
                           Text (wrap, overlay, shadows)




Monday, September 12, 11
CSS3
                           Selectors
                           Borders (images, radius, shadows)
                           Colors (rgba, hsla, opacity)
                           Text (wrap, overlay, shadows)
                           Backgrounds (gradients, clip, origin)



Monday, September 12, 11
CSS3
                           Selectors
                           Borders (images, radius, shadows)
                           Colors (rgba, hsla, opacity)
                           Text (wrap, overlay, shadows)
                           Backgrounds (gradients, clip, origin)
                           Media Queries & Fonts


Monday, September 12, 11
Transitions, Transforms, Animations




Monday, September 12, 11
Transitions, Transforms, Animations




Monday, September 12, 11
jQuery
                           “Mobile”

Monday, September 12, 11
Encapsulate Your JavaScript




                    http://metaskills.net/2011/09/06/how-do-you-encapsulate-your-javascript/


Monday, September 12, 11
Leveraging
                      API's In Ruby

Monday, September 12, 11
Data Format (JSON & XML)




Monday, September 12, 11
Data Format (JSON & XML)
                             Always Use Object Notation




Monday, September 12, 11
Data Format (JSON & XML)
                    {
                           "id":8,
                           "email":"foo@bar.com",
                           "posts":[
                             {"id":30, "title":"First Post", "body":"Some text..."},
                             {"id":73, "title":"Second Post", "body":"More text..."}
                           ]
                    }




Monday, September 12, 11
Data Format (JSON & XML)
                    <user>
                      <id type="integer">8</id>
                      <email>foo@bar.com</email>
                      <posts type="array">
                        <post>
                           <id type="integer">30</id>
                           <title>First Post</title>
                           <body>Some text...</body>
                        </post>
                        <post>
                           <id type="integer">73</id>
                           <title>Second Post</title>
                           <body>More text...</body>
                        </post>
                      </posts>
                    </user>




Monday, September 12, 11
Data Format (JSON & XML)
                             Always Use Object Notation
                             Rails has #to_json and #to_xml
                             Define #as_json for obj primitive.




Monday, September 12, 11
Data Format (JSON & XML)
                             Always Use Object Notation
                             Rails has #to_json and #to_xml
                             Define #as_json for obj primitive.
                             New objects using #from_json and
                             #from_xml methods.




Monday, September 12, 11
Data Format (JSON & XML)

                    json = '{
                       "id":8,
                       "email":"foo@bar.com",
                       "posts":[
                         {"id":30, "title":"First Post", "body":"Some text..."},
                         {"id":73, "title":"Second Post", "body":"More text..."}
                       ]
                    }'

                    user = User.new.from_json(json)
                    user.email              # => foo@bar.com
                    user.posts.size         # => 2
                    user.post.first.title   # => "First Post"




Monday, September 12, 11
Representation
                           State Transfer
                               (REST)




Monday, September 12, 11
Representation
                                  State Transfer
                                      (REST)
                                  CREATE   READ     UPDATE   DELETE

                           DB     INSERT   SELECT   UPDATE   DELETE

                           HTTP    POST     GET      PUT     DELETE




Monday, September 12, 11
Representation
                                  State Transfer
                                      (REST)
                                  CREATE   READ     UPDATE   DELETE

                           DB     INSERT   SELECT   UPDATE   DELETE

                           HTTP    POST     GET      PUT     DELETE




Monday, September 12, 11
Representation
                                  State Transfer
                                      (REST)
                                  CREATE   READ     UPDATE   DELETE

                           DB     INSERT   SELECT   UPDATE   DELETE

                           HTTP    POST     GET      PUT     DELETE




Monday, September 12, 11
Representation
                                    State Transfer
                                        (REST)
             GET           /users       {:controller=>"users",   :action=>"index"}
             POST          /users       {:controller=>"users",   :action=>"create"}
             GET           /users/:id   {:controller=>"users",   :action=>"show"}
             PUT           /users/:id   {:controller=>"users",   :action=>"update"}
             DELETE        /users/:id   {:controller=>"users",   :action=>"destroy"}




Monday, September 12, 11
HTTP Clients


Monday, September 12, 11
HTTP Clients In Ruby




Monday, September 12, 11
HTTP Clients In Ruby
                           Many choices!




Monday, September 12, 11
HTTP Clients In Ruby
                           Many choices!
                           Ruby’s core lib Net::HTTP looks more
                           like wizardry vs idiomatic Ruby.




Monday, September 12, 11
HTTP Clients In Ruby
                           Many choices!
                           Ruby’s core lib Net::HTTP looks more
                           like wizardry vs idiomatic Ruby.
                           Research and pick one that works
                           best for you.




Monday, September 12, 11
HTTP Clients In Ruby




                           http://ruby-toolbox.com/categories/http_clients.html


Monday, September 12, 11
Typhoeus
                                        High Speed!
                                        Built On Top Of libcurl
                                        Simple RESTful Request
                                        Parallel Requests
                                        Memoization & Caching

                           https://github.com/dbalatero/typhoeus


Monday, September 12, 11
Typhoeus
                hydra = Typhoeus::Hydra.new
                request = Typhoeus::Request.new("http://localhost/posts/1.json")
                request.on_complete do |response|
                  json = JSON.parse(response.body)
                  post = Post.new.from_json(json)
                  # Do crazy callback stuff...
                end

                hydra.queue request
                hydra.run # This is a blocking call that
                          # returns once all requests are complete.




Monday, September 12, 11
SOAP


Monday, September 12, 11
Pragmatic Use Of Builder
                           xml = Builder::XmlMarkup.new(:indent=>2)
                           xml.user do
                             xml.id 8, :type => 'integer'
                             xml.email "foo@bar.com"
                             xml.posts :type => 'array' do
                               xml.post {...}
                             end
                           end
                           xml.target! # =>
                                       # <user>
                                       #    <id type="integer">8</id>
                                       #    <email>foo@bar.com</email>
                                       #    <posts type="array">
                                       #      <post>
                                       #        ...
                                       #      </post>
                                       #    </posts>
                                       # </user>



                                         http://builder.rubyforge.org/


Monday, September 12, 11
If You Embrace SOAP
                               Savon                      Handsoap




                           http://savonrb.com/   https://github.com/unwire/handsoap




Monday, September 12, 11
Thanks!
                            Ken Collins
                           metaskills.net



Monday, September 12, 11

Más contenido relacionado

Destacado

Destacado (6)

Timetap
TimetapTimetap
Timetap
 
TextMate
TextMateTextMate
TextMate
 
Tool Time
Tool TimeTool Time
Tool Time
 
Secrets of the asset pipeline
Secrets of the asset pipelineSecrets of the asset pipeline
Secrets of the asset pipeline
 
ZSH and RVM
ZSH and RVMZSH and RVM
ZSH and RVM
 
Should you release open source Ruby projects?
Should you release open source Ruby projects?Should you release open source Ruby projects?
Should you release open source Ruby projects?
 

Similar a Dominion Enterprises _H@&lt;k@th0n_

Modern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureModern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureRaven Tools
 
Progressive Advancement, by way of progressive enhancement
Progressive Advancement, by way of progressive enhancementProgressive Advancement, by way of progressive enhancement
Progressive Advancement, by way of progressive enhancementPaul Irish
 
Using Templates to Achieve Awesomer Architecture
Using Templates to Achieve Awesomer ArchitectureUsing Templates to Achieve Awesomer Architecture
Using Templates to Achieve Awesomer ArchitectureGarann Means
 
Introduction To MongoDB
Introduction To MongoDBIntroduction To MongoDB
Introduction To MongoDBYnon Perek
 
Building Sencha Themes
Building Sencha ThemesBuilding Sencha Themes
Building Sencha ThemesSencha
 
Performance & Responsive Web Design
Performance & Responsive Web DesignPerformance & Responsive Web Design
Performance & Responsive Web DesignZach Leatherman
 
What's new in HTML5, CSS3 and JavaScript, James Pearce
What's new in HTML5, CSS3 and JavaScript, James PearceWhat's new in HTML5, CSS3 and JavaScript, James Pearce
What's new in HTML5, CSS3 and JavaScript, James PearceSencha
 
SassConf: It takes a village to raise a stylesheet
SassConf: It takes a village to raise a stylesheetSassConf: It takes a village to raise a stylesheet
SassConf: It takes a village to raise a stylesheetchriseppstein
 
Active Record Introduction - 3
Active Record Introduction - 3Active Record Introduction - 3
Active Record Introduction - 3Blazing Cloud
 
Introduction to Web Programming
Introduction to Web ProgrammingIntroduction to Web Programming
Introduction to Web ProgrammingYnon Perek
 
Keeping responsive into the future by Chris mills
Keeping responsive into the future by Chris millsKeeping responsive into the future by Chris mills
Keeping responsive into the future by Chris millsCodemotion
 
Elasticsearch – mye mer enn søk! [JavaZone 2013]
Elasticsearch – mye mer enn søk! [JavaZone 2013]Elasticsearch – mye mer enn søk! [JavaZone 2013]
Elasticsearch – mye mer enn søk! [JavaZone 2013]foundsearch
 
Practical Ruby Projects (Alex Sharp)
Practical Ruby Projects (Alex Sharp)Practical Ruby Projects (Alex Sharp)
Practical Ruby Projects (Alex Sharp)MongoSF
 
Practical Ruby Projects with MongoDB - MongoSF
Practical Ruby Projects with MongoDB - MongoSFPractical Ruby Projects with MongoDB - MongoSF
Practical Ruby Projects with MongoDB - MongoSFAlex Sharp
 

Similar a Dominion Enterprises _H@&lt;k@th0n_ (20)

Modern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureModern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & Structure
 
How diazo works
How diazo worksHow diazo works
How diazo works
 
Progressive Advancement, by way of progressive enhancement
Progressive Advancement, by way of progressive enhancementProgressive Advancement, by way of progressive enhancement
Progressive Advancement, by way of progressive enhancement
 
Using Templates to Achieve Awesomer Architecture
Using Templates to Achieve Awesomer ArchitectureUsing Templates to Achieve Awesomer Architecture
Using Templates to Achieve Awesomer Architecture
 
Introduction To MongoDB
Introduction To MongoDBIntroduction To MongoDB
Introduction To MongoDB
 
Building Sencha Themes
Building Sencha ThemesBuilding Sencha Themes
Building Sencha Themes
 
Performance & Responsive Web Design
Performance & Responsive Web DesignPerformance & Responsive Web Design
Performance & Responsive Web Design
 
Curious case of Dust
Curious case of DustCurious case of Dust
Curious case of Dust
 
What's new in HTML5, CSS3 and JavaScript, James Pearce
What's new in HTML5, CSS3 and JavaScript, James PearceWhat's new in HTML5, CSS3 and JavaScript, James Pearce
What's new in HTML5, CSS3 and JavaScript, James Pearce
 
SassConf: It takes a village to raise a stylesheet
SassConf: It takes a village to raise a stylesheetSassConf: It takes a village to raise a stylesheet
SassConf: It takes a village to raise a stylesheet
 
Active Record Introduction - 3
Active Record Introduction - 3Active Record Introduction - 3
Active Record Introduction - 3
 
RuHL
RuHLRuHL
RuHL
 
Introduction to Web Programming
Introduction to Web ProgrammingIntroduction to Web Programming
Introduction to Web Programming
 
Keeping responsive into the future by Chris mills
Keeping responsive into the future by Chris millsKeeping responsive into the future by Chris mills
Keeping responsive into the future by Chris mills
 
ActiveSupport
ActiveSupportActiveSupport
ActiveSupport
 
Elasticsearch – mye mer enn søk! [JavaZone 2013]
Elasticsearch – mye mer enn søk! [JavaZone 2013]Elasticsearch – mye mer enn søk! [JavaZone 2013]
Elasticsearch – mye mer enn søk! [JavaZone 2013]
 
XML-Javascript
XML-JavascriptXML-Javascript
XML-Javascript
 
XML-Javascript
XML-JavascriptXML-Javascript
XML-Javascript
 
Practical Ruby Projects (Alex Sharp)
Practical Ruby Projects (Alex Sharp)Practical Ruby Projects (Alex Sharp)
Practical Ruby Projects (Alex Sharp)
 
Practical Ruby Projects with MongoDB - MongoSF
Practical Ruby Projects with MongoDB - MongoSFPractical Ruby Projects with MongoDB - MongoSF
Practical Ruby Projects with MongoDB - MongoSF
 

Último

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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
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
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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
 
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
 
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
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 

Último (20)

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...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
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...
 
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...
 
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, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

Dominion Enterprises _H@&lt;k@th0n_

  • 1. _H@<k@th0n_ Ken Collins metaskills.net Monday, September 12, 11
  • 2. Who Am I Again? ? Monday, September 12, 11
  • 3. Who Am I Again? @MetaSkills Monday, September 12, 11
  • 4. Who Am I Again? @MetaSkills Monday, September 12, 11
  • 5. Who Am I Again? @MetaSkills Monday, September 12, 11
  • 6. Who Am I Again? @MetaSkills Monday, September 12, 11
  • 7. Who Am I Again? @MetaSkills ... Monday, September 12, 11
  • 8. Sr. Soft ware Engineer @ Decisiv Monday, September 12, 11
  • 12. Blog @ MetaSkills.net Monday, September 12, 11
  • 14. Advocate @ 757rb.org Monday, September 12, 11
  • 15. HTML5 CSS3 Monday, September 12, 11
  • 16. Divitis <div id="post"> <div id="header"> <span class="pubdate"> <span class="day">27</span> <span class="month">Dec</span> <span class="year">2010</span> </span> <h1>My New Blog</h1> </div> ... <div id="disqus_thread"> ... </div> </div> Monday, September 12, 11
  • 17. Semantic <article id="post"> <header> <time pubdate datetime="2010-12-27T00:00:00-05:00"> <span class="day">27</span> <span class="month">Dec</span> <span class="year">2010</span> </time> <h1>My New Blog</h1> </header> ... <footer id="disqus_thread"> ... </footer> </article> Monday, September 12, 11
  • 18. Dive Into HTML5 http://diveintohtml5.org/semantics.html#new-elements Monday, September 12, 11
  • 20. CSS3 Selectors Monday, September 12, 11
  • 21. CSS3 Selectors Borders (images, radius, shadows) Monday, September 12, 11
  • 22. CSS3 Selectors Borders (images, radius, shadows) Colors (rgba, hsla, opacity) Monday, September 12, 11
  • 23. CSS3 Selectors Borders (images, radius, shadows) Colors (rgba, hsla, opacity) Text (wrap, overlay, shadows) Monday, September 12, 11
  • 24. CSS3 Selectors Borders (images, radius, shadows) Colors (rgba, hsla, opacity) Text (wrap, overlay, shadows) Backgrounds (gradients, clip, origin) Monday, September 12, 11
  • 25. CSS3 Selectors Borders (images, radius, shadows) Colors (rgba, hsla, opacity) Text (wrap, overlay, shadows) Backgrounds (gradients, clip, origin) Media Queries & Fonts Monday, September 12, 11
  • 28. jQuery “Mobile” Monday, September 12, 11
  • 29. Encapsulate Your JavaScript http://metaskills.net/2011/09/06/how-do-you-encapsulate-your-javascript/ Monday, September 12, 11
  • 30. Leveraging API's In Ruby Monday, September 12, 11
  • 31. Data Format (JSON & XML) Monday, September 12, 11
  • 32. Data Format (JSON & XML) Always Use Object Notation Monday, September 12, 11
  • 33. Data Format (JSON & XML) { "id":8, "email":"foo@bar.com", "posts":[ {"id":30, "title":"First Post", "body":"Some text..."}, {"id":73, "title":"Second Post", "body":"More text..."} ] } Monday, September 12, 11
  • 34. Data Format (JSON & XML) <user> <id type="integer">8</id> <email>foo@bar.com</email> <posts type="array"> <post> <id type="integer">30</id> <title>First Post</title> <body>Some text...</body> </post> <post> <id type="integer">73</id> <title>Second Post</title> <body>More text...</body> </post> </posts> </user> Monday, September 12, 11
  • 35. Data Format (JSON & XML) Always Use Object Notation Rails has #to_json and #to_xml Define #as_json for obj primitive. Monday, September 12, 11
  • 36. Data Format (JSON & XML) Always Use Object Notation Rails has #to_json and #to_xml Define #as_json for obj primitive. New objects using #from_json and #from_xml methods. Monday, September 12, 11
  • 37. Data Format (JSON & XML) json = '{ "id":8, "email":"foo@bar.com", "posts":[ {"id":30, "title":"First Post", "body":"Some text..."}, {"id":73, "title":"Second Post", "body":"More text..."} ] }' user = User.new.from_json(json) user.email # => foo@bar.com user.posts.size # => 2 user.post.first.title # => "First Post" Monday, September 12, 11
  • 38. Representation State Transfer (REST) Monday, September 12, 11
  • 39. Representation State Transfer (REST) CREATE READ UPDATE DELETE DB INSERT SELECT UPDATE DELETE HTTP POST GET PUT DELETE Monday, September 12, 11
  • 40. Representation State Transfer (REST) CREATE READ UPDATE DELETE DB INSERT SELECT UPDATE DELETE HTTP POST GET PUT DELETE Monday, September 12, 11
  • 41. Representation State Transfer (REST) CREATE READ UPDATE DELETE DB INSERT SELECT UPDATE DELETE HTTP POST GET PUT DELETE Monday, September 12, 11
  • 42. Representation State Transfer (REST) GET /users {:controller=>"users", :action=>"index"} POST /users {:controller=>"users", :action=>"create"} GET /users/:id {:controller=>"users", :action=>"show"} PUT /users/:id {:controller=>"users", :action=>"update"} DELETE /users/:id {:controller=>"users", :action=>"destroy"} Monday, September 12, 11
  • 44. HTTP Clients In Ruby Monday, September 12, 11
  • 45. HTTP Clients In Ruby Many choices! Monday, September 12, 11
  • 46. HTTP Clients In Ruby Many choices! Ruby’s core lib Net::HTTP looks more like wizardry vs idiomatic Ruby. Monday, September 12, 11
  • 47. HTTP Clients In Ruby Many choices! Ruby’s core lib Net::HTTP looks more like wizardry vs idiomatic Ruby. Research and pick one that works best for you. Monday, September 12, 11
  • 48. HTTP Clients In Ruby http://ruby-toolbox.com/categories/http_clients.html Monday, September 12, 11
  • 49. Typhoeus High Speed! Built On Top Of libcurl Simple RESTful Request Parallel Requests Memoization & Caching https://github.com/dbalatero/typhoeus Monday, September 12, 11
  • 50. Typhoeus hydra = Typhoeus::Hydra.new request = Typhoeus::Request.new("http://localhost/posts/1.json") request.on_complete do |response| json = JSON.parse(response.body) post = Post.new.from_json(json) # Do crazy callback stuff... end hydra.queue request hydra.run # This is a blocking call that # returns once all requests are complete. Monday, September 12, 11
  • 52. Pragmatic Use Of Builder xml = Builder::XmlMarkup.new(:indent=>2) xml.user do xml.id 8, :type => 'integer' xml.email "foo@bar.com" xml.posts :type => 'array' do xml.post {...} end end xml.target! # => # <user> # <id type="integer">8</id> # <email>foo@bar.com</email> # <posts type="array"> # <post> # ... # </post> # </posts> # </user> http://builder.rubyforge.org/ Monday, September 12, 11
  • 53. If You Embrace SOAP Savon Handsoap http://savonrb.com/ https://github.com/unwire/handsoap Monday, September 12, 11
  • 54. Thanks! Ken Collins metaskills.net Monday, September 12, 11