Dominion Enterprises _H@<k@th0n_

Dominion Enterprises _H@<k@th0n_

Dominion Enterprise Hackathon Inspiration.

F0b14b7dbae1e90259eb946d1c841a17?s=128

Ken Collins

April 11, 2012
Tweet

Transcript

  1. Ken Collins metaskills.net _H@<k@th0n_ 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. Software Engineer @ Decisiv Monday, September 12, 11

  9. Monday, September 12, 11

  10. JavaScript Monday, September 12, 11

  11. Monday, September 12, 11

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

  13. Freetime @ HomeMarks.com 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

  19. CSS3 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
  26. Transitions, Transforms, Animations Monday, September 12, 11

  27. Transitions, Transforms, Animations 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. <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> Data Format (JSON & XML) 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. 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" Data Format (JSON & XML) Monday, September 12, 11
  38. Representation State Transfer (REST) Monday, September 12, 11

  39. Representation State Transfer (REST) CREATE READ UPDATE DELETE DB HTTP

    INSERT SELECT UPDATE DELETE POST GET PUT DELETE Monday, September 12, 11
  40. Representation State Transfer (REST) CREATE READ UPDATE DELETE DB HTTP

    INSERT SELECT UPDATE DELETE POST GET PUT DELETE Monday, September 12, 11
  41. Representation State Transfer (REST) CREATE READ UPDATE DELETE DB HTTP

    INSERT SELECT UPDATE DELETE 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
  43. HTTP Clients 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 https:/ /github.com/dbalatero/typhoeus High Speed! Built On Top Of libcurl

    Simple RESTful Request Parallel Requests Memoization & Caching Monday, September 12, 11
  50. 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. Typhoeus Monday, September 12, 11
  51. SOAP Monday, September 12, 11

  52. 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> Pragmatic Use Of Builder http:/ /builder.rubyforge.org/ Monday, September 12, 11
  53. If You Embrace SOAP http:/ /savonrb.com/ https:/ /github.com/unwire/handsoap Savon Handsoap

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