Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Dominion Enterprises _H@<k@th0n_
Search
Ken Collins
April 11, 2012
Technology
1
91
Dominion Enterprises _H@<k@th0n_
Dominion Enterprise Hackathon Inspiration.
Ken Collins
April 11, 2012
Tweet
Share
More Decks by Ken Collins
See All by Ken Collins
Experts.js @ Norfolk.js
metaskills
0
59
The Rise of AI Copilots
metaskills
0
140
Real-World AI Automation with Lambda & Bedrock
metaskills
0
120
The Lambda Sidecar Pattern for Event-Driven Kubernetes
metaskills
0
370
The Case for Rails on Lambda v1
metaskills
0
690
Learn to Program The Cloud with Ruby & AWS Lambda
metaskills
0
81
Full-Stack to Functions & Back Again
metaskills
0
320
AWS Lambda & Ruby/Rails with SAM
metaskills
1
4.5k
Turbo Applications - Winning with Ajax + pushState + Rails
metaskills
0
290
Other Decks in Technology
See All in Technology
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
100
Tech-Verse 2025 Global CTO Session
lycorptech_jp
PRO
0
850
Wasm元年
askua
0
160
2年でここまで成長!AWSで育てたAI Slack botの軌跡
iwamot
PRO
4
810
怖くない!はじめてのClaude Code
shinya337
0
230
解析の定理証明実践@Lean 4
dec9ue
1
180
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
mrubyと micro-ROSが繋ぐロボットの世界
kishima
2
360
CursorによるPMO業務の代替 / Automating PMO Tasks with Cursor
motoyoshi_kakaku
1
510
プロダクトエンジニアリング組織への歩み、その現在地 / Our journey to becoming a product engineering organization
hiro_torii
0
130
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
3
230
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
340
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
BBQ
matthewcrist
89
9.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
Building Adaptive Systems
keathley
43
2.6k
Transcript
Ken Collins metaskills.net _H@<k@th0n_ 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. Software 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":"
[email protected]
", "posts":[ {"id":30,
"title":"First Post", "body":"Some text..."}, {"id":73, "title":"Second Post", "body":"More text..."} ] } Monday, September 12, 11
<user> <id type="integer">8</id> <email>
[email protected]
</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
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
json = '{ "id":8, "email":"
[email protected]
", "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 # =>
[email protected]
user.posts.size # => 2 user.post.first.title # => "First Post" Data Format (JSON & XML) Monday, September 12, 11
Representation State Transfer (REST) Monday, September 12, 11
Representation State Transfer (REST) CREATE READ UPDATE DELETE DB HTTP
INSERT SELECT UPDATE DELETE POST GET PUT DELETE Monday, September 12, 11
Representation State Transfer (REST) CREATE READ UPDATE DELETE DB HTTP
INSERT SELECT UPDATE DELETE POST GET PUT DELETE Monday, September 12, 11
Representation State Transfer (REST) CREATE READ UPDATE DELETE DB HTTP
INSERT SELECT UPDATE DELETE 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 https:/ /github.com/dbalatero/typhoeus High Speed! Built On Top Of libcurl
Simple RESTful Request Parallel Requests Memoization & Caching Monday, September 12, 11
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
SOAP Monday, September 12, 11
xml = Builder::XmlMarkup.new(:indent=>2) xml.user do xml.id 8, :type => 'integer'
xml.email "
[email protected]
" xml.posts :type => 'array' do xml.post {...} end end xml.target! # => # <user> # <id type="integer">8</id> # <email>
[email protected]
</email> # <posts type="array"> # <post> # ... # </post> # </posts> # </user> Pragmatic Use Of Builder http:/ /builder.rubyforge.org/ Monday, September 12, 11
If You Embrace SOAP http:/ /savonrb.com/ https:/ /github.com/unwire/handsoap Savon Handsoap
Monday, September 12, 11
Thanks! Ken Collins metaskills.net Monday, September 12, 11