SlideShare a Scribd company logo
1 of 84
Download to read offline
Civic Hacking
Luigi Montanez
luigi@sunlightfoundation.com
Question? @LuigiMontanez
I am here to
recruit you.
Question? @LuigiMontanez
“Transparency”
Question? @LuigiMontanez
Everyone Wants
Transparency
Question? @LuigiMontanez
Questions for me?
@LuigiMontanez
Question? @LuigiMontanez
“Civic Hacking”
Question? @LuigiMontanez
Participatory
Democracy
Question? @LuigiMontanez
But today...
Question? @LuigiMontanez
Just plain lame!
Question? @LuigiMontanez
Something not
lame...
Text
Civic Hacking
Question? @LuigiMontanez
Some Guiding
Principles...
Question? @LuigiMontanez
Electoral Politics
Question? @LuigiMontanez
Electoral Politics
Governance
Question? @LuigiMontanez
Closed Source
Question? @LuigiMontanez
Closed Source
Open Source
Question? @LuigiMontanez
Civic Side Projects
Question? @LuigiMontanez
Open Source + Open Data
=
Better Government
Question? @LuigiMontanez
Government as a
wholesaler, not retailer
Question? @LuigiMontanez
.fec? .wtf?
Question? @LuigiMontanez
High Quality Raw Data
✴ First: Raw data in XML, JSON, or CSV
✴ Second: RESTful APIs in JSON/XML
✴ Third: Nothing really...
Question? @LuigiMontanez
Civic Hacking
Defined
Question? @LuigiMontanez
Federal
Government
Credit: vgm8383 on Flickr
Question? @LuigiMontanez
APIs about Congress
✴ Sunlight Labs API - Bio and contact info
✴ OpenSecrets.org - Contributions
✴ GovTrack.us - Bills and Vote Records
✴ MAPLight.org - Vote Influence
Question? @LuigiMontanez
U.S. Courts System
✴ Supreme Court (1)
✴ Courts of Appeals (12)
✴ District Courts (94)
✴ Courts for Patents, International Trade,
Bankruptcy
Question? @LuigiMontanez
States
✴ Not much yet...
✴ FollowTheMoney.org
✴ 50 State Project - transform legislative data
for all 50 states into a common format
Question? @LuigiMontanez
Cities
✴ Washington, D.C. - api.dc.gov
Question? @LuigiMontanez
A CITY HAS
AN API!!!
Question? @LuigiMontanez
Cities
✴ Washington, D.C. - Data Catalog, Open
311 API
✴ New York City - Big Apps contest, Open
311 API
✴ San Francisco - DataSF.org, App Store
Question? @LuigiMontanez
Getting Involved
✴ groups.google.com/group/sunlightlabs
✴ #transparency on Freenode
✴ github.com/sunlightlabs
✴ @sunlightlabs on Twitter
✴ SunlightLabs.com
Question? @LuigiMontanez
Project Lifecycle
1. Explore
2. Design
3. Implement/Test
4. Deploy
Question? @LuigiMontanez
Deployment?
Question? @LuigiMontanez
GAE Daily Quotas
✴ 1.3 million requests
✴ 1 GB bandwidth outgoing
✴ 1 GB bandwidth incoming
✴ 6.5 CPU Hours
✴ 10 million calls to the Datastore
✴ 1 GB in the Datastore
$ sudo gem install google-appengine
$ sinatra-gen mycivicapp
# Inside config.ru
require 'appengine-rack'
AppEngine::Rack.configure_app(
:application => 'mycivicapp',
:version => 1)
require 'mycivicapp'
run Sinatra::Application
$ appcfg.rb gem sources
$ appcfg.rb gem sources --add 
http://gems.datamapper.org
$ appcfg.rb gem install sinatra dm-appengine
Question? @LuigiMontanez
WEB-INF Directory
✴ XML and YAML config
✴ .jars for:
✴ AppEngine SDK (holds webserver,
Datastore)
✴ JRuby, RubyGems, jruby-rack
✴ Our installed gems
$ appcfg.rb --help
usage: /usr/bin/appcfg.rb [options] <action> <app-dir> [<output-file>]
Action must be one of:
help: Print help for a specific action.
request_logs: Write request logs in Apache common log format.
rollback: Rollback an in-progress update.
update: Create or update an app version.
update_indexes: Update application indexes.
version: Prints version information.
update_cron: Update application cron jobs.
run: run jruby in your application environment.
gem: run rubygems for your application.
bundle: package your application for deployment.
The 'gem' and 'run' commands assume the app directory is the current
directory.
$ dev_appserver.rb .
=> Booting DevAppServer
=> Press Ctrl-C to shutdown server
=> Installing JRuby
=> Retrieving jruby-rack
=> Installing appengine-sdk
=> Generating configuration files
The server is running at http://localhost:8080/
^C
$ appcfg.rb run -S irb
$ appcfg.rb update .
Question? @LuigiMontanez
GAE Limitations
✴ No ActiveRecord
✴ No ImageMagick
✴ No Sphinx
✴ No Ruby gems with C extensions
Question? @LuigiMontanez
Consider Civic Hacking
✴ Enhance your skillset
✴ Get noticed
✴ Low risk, high reward
✴ Another TDD framework? Really?
✴ Local/state govts. an untapped market
✴ Solve a hard problem
Question? @LuigiMontanez
Thanks!
Question? @LuigiMontanez
Questions?

More Related Content

Similar to Civic Hacking @ Ruby Hoedown

Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08
Ari Leichtberg
 
Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011
Ted Husted
 
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
MongoDB
 

Similar to Civic Hacking @ Ruby Hoedown (20)

Be A Civic Coder - DCRUG
Be A Civic Coder - DCRUGBe A Civic Coder - DCRUG
Be A Civic Coder - DCRUG
 
Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019
Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019
Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019
 
Goodle Developer Days Madrid 2008 - Open Social Update
Goodle Developer Days Madrid 2008 - Open Social UpdateGoodle Developer Days Madrid 2008 - Open Social Update
Goodle Developer Days Madrid 2008 - Open Social Update
 
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social webFuturopolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
 
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social UpdateGoodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
 
Ajaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationAjaxworld Opensocial Presentation
Ajaxworld Opensocial Presentation
 
Be A Civic Coder
Be A Civic CoderBe A Civic Coder
Be A Civic Coder
 
Progressive Web Apps For Startups
Progressive Web Apps For StartupsProgressive Web Apps For Startups
Progressive Web Apps For Startups
 
SearchLove San Diego 2017 | Emily Grossman | The New Mobile
SearchLove San Diego 2017 | Emily Grossman | The New MobileSearchLove San Diego 2017 | Emily Grossman | The New Mobile
SearchLove San Diego 2017 | Emily Grossman | The New Mobile
 
Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08
 
Enterprise Social Graphing (SPS Redmond, September 2013)
Enterprise Social Graphing (SPS Redmond, September 2013)Enterprise Social Graphing (SPS Redmond, September 2013)
Enterprise Social Graphing (SPS Redmond, September 2013)
 
Google Cloud: Next'19 Extended Hanoi
Google Cloud: Next'19 Extended HanoiGoogle Cloud: Next'19 Extended Hanoi
Google Cloud: Next'19 Extended Hanoi
 
How to Build a Nonprofit Mobile App To Engage Supporters
How to Build a Nonprofit Mobile App To Engage SupportersHow to Build a Nonprofit Mobile App To Engage Supporters
How to Build a Nonprofit Mobile App To Engage Supporters
 
Progressive Web Apps – the return of the web?
Progressive Web Apps – the return of the web?Progressive Web Apps – the return of the web?
Progressive Web Apps – the return of the web?
 
Civic Commons: NAGW 2011 Lightning Round
Civic Commons: NAGW 2011 Lightning RoundCivic Commons: NAGW 2011 Lightning Round
Civic Commons: NAGW 2011 Lightning Round
 
Power Apps community call_April 2020
Power Apps community call_April 2020Power Apps community call_April 2020
Power Apps community call_April 2020
 
Using Visualizations to Monitor Changes and Harvest Insights from a Global-sc...
Using Visualizations to Monitor Changes and Harvest Insights from a Global-sc...Using Visualizations to Monitor Changes and Harvest Insights from a Global-sc...
Using Visualizations to Monitor Changes and Harvest Insights from a Global-sc...
 
Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011
 
Programming Social Applications
Programming Social ApplicationsProgramming Social Applications
Programming Social Applications
 
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
 

More from Luigi Montanez (12)

Open Government Data and MongoDB
Open Government Data and MongoDBOpen Government Data and MongoDB
Open Government Data and MongoDB
 
Search-Friendly Web Development at RubyNation
Search-Friendly Web Development at RubyNationSearch-Friendly Web Development at RubyNation
Search-Friendly Web Development at RubyNation
 
Civic Hacking @ Strange Loop 2010
Civic Hacking @ Strange Loop 2010Civic Hacking @ Strange Loop 2010
Civic Hacking @ Strange Loop 2010
 
Civic Hacking @ Strange Loop 2010
Civic Hacking @ Strange Loop 2010Civic Hacking @ Strange Loop 2010
Civic Hacking @ Strange Loop 2010
 
Civic Coding @ SunnyConf
Civic Coding @ SunnyConfCivic Coding @ SunnyConf
Civic Coding @ SunnyConf
 
Search-Friendly Web Development @ Ruby|Web Conference 2010
Search-Friendly Web Development @ Ruby|Web Conference 2010Search-Friendly Web Development @ Ruby|Web Conference 2010
Search-Friendly Web Development @ Ruby|Web Conference 2010
 
Search-Friendly Web Development @ Lone Star Ruby Conference 2010
Search-Friendly Web Development @ Lone Star Ruby Conference 2010Search-Friendly Web Development @ Lone Star Ruby Conference 2010
Search-Friendly Web Development @ Lone Star Ruby Conference 2010
 
Search-Friendly Web Development @ DC RUG - August 2010
Search-Friendly Web Development @ DC RUG - August 2010Search-Friendly Web Development @ DC RUG - August 2010
Search-Friendly Web Development @ DC RUG - August 2010
 
Civic Hacking @ Ruby Midwest 2010
Civic Hacking @ Ruby Midwest 2010Civic Hacking @ Ruby Midwest 2010
Civic Hacking @ Ruby Midwest 2010
 
Civic Hacking @ Ignite RailsConf
Civic Hacking @ Ignite RailsConfCivic Hacking @ Ignite RailsConf
Civic Hacking @ Ignite RailsConf
 
Civic Hacking @ MongoNYC
Civic Hacking @ MongoNYCCivic Hacking @ MongoNYC
Civic Hacking @ MongoNYC
 
Thin
ThinThin
Thin
 

Recently uploaded

+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...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

+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...
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
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
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Civic Hacking @ Ruby Hoedown