Your SlideShare is downloading. ×
0
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Dominion Enterprises _H@<k@th0n_

835

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
835
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. _H@<k@th0n_ Ken Collins metaskills.netMonday, September 12, 11
  • 2. Who Am I Again? ?Monday, September 12, 11
  • 3. Who Am I Again? @MetaSkillsMonday, September 12, 11
  • 4. Who Am I Again? @MetaSkillsMonday, September 12, 11
  • 5. Who Am I Again? @MetaSkillsMonday, September 12, 11
  • 6. Who Am I Again? @MetaSkillsMonday, September 12, 11
  • 7. Who Am I Again? @MetaSkills ...Monday, September 12, 11
  • 8. Sr. Soft ware Engineer @ DecisivMonday, September 12, 11
  • 9. Monday, September 12, 11
  • 10. JavaScriptMonday, September 12, 11
  • 11. Monday, September 12, 11
  • 12. Blog @ MetaSkills.netMonday, September 12, 11
  • 13. Freetime @ HomeMarks.comMonday, September 12, 11
  • 14. Advocate @ 757rb.orgMonday, September 12, 11
  • 15. HTML5 CSS3Monday, 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-elementsMonday, September 12, 11
  • 19. CSS3Monday, September 12, 11
  • 20. CSS3 SelectorsMonday, 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 & FontsMonday, September 12, 11
  • 26. Transitions, Transforms, AnimationsMonday, September 12, 11
  • 27. Transitions, Transforms, AnimationsMonday, 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 APIs In RubyMonday, September 12, 11
  • 31. Data Format (JSON & XML)Monday, September 12, 11
  • 32. Data Format (JSON & XML) Always Use Object NotationMonday, 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 DELETEMonday, September 12, 11
  • 40. Representation State Transfer (REST) CREATE READ UPDATE DELETE DB INSERT SELECT UPDATE DELETE HTTP POST GET PUT DELETEMonday, September 12, 11
  • 41. Representation State Transfer (REST) CREATE READ UPDATE DELETE DB INSERT SELECT UPDATE DELETE HTTP POST GET PUT DELETEMonday, 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
  • 43. HTTP ClientsMonday, September 12, 11
  • 44. HTTP Clients In RubyMonday, 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.htmlMonday, September 12, 11
  • 49. Typhoeus High Speed! Built On Top Of libcurl Simple RESTful Request Parallel Requests Memoization & Caching https://github.com/dbalatero/typhoeusMonday, 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
  • 51. SOAPMonday, 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/handsoapMonday, September 12, 11
  • 54. Thanks! Ken Collins metaskills.netMonday, September 12, 11

×