• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Civic Hacking @ Ruby Hoedown

on

  • 3,995 views

Presented at Ruby Hoedown 2009.

Presented at Ruby Hoedown 2009.

Statistics

Views

Total Views
3,995
Views on SlideShare
3,738
Embed Views
257

Actions

Likes
6
Downloads
20
Comments
1

8 Embeds 257

http://feeds.feedburner.com 160
http://sunlightlabs.com 42
http://luigimontanez.com 30
http://sunlightfoundation.com 8
http://www.slideshare.net 7
http://www.sunlightlabs.com 6
http://www.luigimontanez.com 3
http://192.168.1.8 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Civic Hacking @ Ruby Hoedown Civic Hacking @ Ruby Hoedown Presentation Transcript

    • Civic Hacking Luigi Montanez luigi@sunlightfoundation.com
    • 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... Question? @LuigiMontanez
    • Civic Hacking Text
    • 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 Question? @LuigiMontanez
    • Credit: vgm8383 on Flickr
    • 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 Question? @LuigiMontanez
    • $ 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
    • WEB-INF Directory ✴ XML and YAML config ✴ .jars for: ✴ AppEngine SDK (holds webserver, Datastore) ✴ JRuby, RubyGems, jruby-rack ✴ Our installed gems Question? @LuigiMontanez
    • $ 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 .
    • 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? Question? @LuigiMontanez