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
94
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
76
The Rise of AI Copilots
metaskills
0
170
Real-World AI Automation with Lambda & Bedrock
metaskills
0
130
The Lambda Sidecar Pattern for Event-Driven Kubernetes
metaskills
0
400
The Case for Rails on Lambda v1
metaskills
0
730
Learn to Program The Cloud with Ruby & AWS Lambda
metaskills
0
97
Full-Stack to Functions & Back Again
metaskills
0
350
AWS Lambda & Ruby/Rails with SAM
metaskills
1
4.6k
Turbo Applications - Winning with Ajax + pushState + Rails
metaskills
0
300
Other Decks in Technology
See All in Technology
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
Master Dataグループ紹介資料
sansan33
PRO
1
4k
プロダクト負債と歩む持続可能なサービスを育てるための挑戦
sansantech
PRO
1
1.1k
AI駆動開発を実現するためのアーキテクチャと取り組み
baseballyama
17
14k
Android Studio Otter の最新 Gemini 機能 / Latest Gemini features in Android Studio Otter
yanzm
0
460
確実に伝えるHealth通知 〜半自動システムでほどよく漏れなく / JAWS-UG 神戸 #9 神戸へようこそ!LT会
genda
0
150
『ソフトウェア』で『リアル』を動かす:クレーンゲームからデータ基盤までの統一アーキテクチャ / アーキテクチャConference 2025
genda
0
1.2k
【ASW21-02】STAMP/CAST分析における生成AIの支援 ~羽田空港航空機衝突事故を題材として (Support of Generative AI in STAMP/CAST Analysis - A Case Study Based on the Haneda Airport Aircraft Accident -)
hianraku9498
0
220
社内外から"使ってもらえる"データ基盤を支えるアーキテクチャの秘訣/登壇資料(飯塚 大地・高橋 一貴)
hacobu
PRO
0
7.7k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
45k
現地速報!Microsoft Ignite 2025 M365 Copilotアップデートレポート
kasada
2
1.8k
自然言語でAPI作業を片付ける!「Postman Agent Mode」
nagix
0
140
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Docker and Python
trallard
46
3.7k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Language of Interfaces
destraynor
162
25k
Mobile First: as difficult as doing things right
swwweet
225
10k
Fireside Chat
paigeccino
41
3.7k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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