Skip to content

Instantly share code, notes, and snippets.

@timwis
timwis / steps.md
Last active November 28, 2016 22:26
Comparing FY16 adopted budget scripts

First, fetch the published file and prepare it for comparison

# Fetch file
curl 'https://data.phila.gov/resource/6quj-54t7.csv?$limit=5000' | \

# Fix currency formatting
sed -E 's/,\$([0-9]+)\.00/,\1/g' | \

# Sort
@timwis
timwis / table.md
Last active December 2, 2016 11:51

Target table format

| ward | registered_total | registered_democratic | registered_republican | turnout_total | turnout_democratic | turnout_republican | turnout_pct_total | turnout_pct_democratic | turnout_pct_republican | |------|------|------|------|------|------|------|------|------|------|------|------|------|------|------| | 1 | | 66A |

Alternate

| ward | party | registered_total | registered_party | turnout_total | turnout_party | turnout_pct_total | turnout_pct_party |

@timwis
timwis / README.md
Last active December 2, 2016 21:29
Voter turnout processing
@timwis
timwis / ward_1_committee.csv
Created December 5, 2016 11:55
Ward 1 democratic committee persons
WARD DISTRICT NAME PARTY TYPE
01 01 LINDA SAMACICIA Democrat M
01 02 BEATRIZ P BORODIAK Democrat M
01 03 MILLICENT BADIE Democrat M
01 04 DARNELL HELEM Democrat M
01 06 KERNARD M SHEARLDS Democrat M
01 07 AIDA L RIBOT Democrat M
01 08 CECILY C KIHN Democrat M
01 10 LARNEY J REED Democrat M
01 12 SYLVIA A HARKER Democrat M
{
"version": "2",
"header": {
"title": "Crime Incidents 2015 - October 2016",
"description": "Philadelphia Police Department crime incidents from calendar year 2006 to present, including Part I and Part II crimes. UCR codes are generalized and incident locations are rounded to the hundred block. These counts may not coincide exactly with data that is submitted to the Uniformed Crime Reporting (UCR) system.",
"navigation": [
{
"label": "Download",
"url": ""
}
@timwis
timwis / choo-async-await.js
Created December 18, 2016 00:08
Use promises and async/await in effects in choo
app.use({
wrapEffects: (cb) => {
return async (state, data, send, done) => {
const psend = promisify(send)
try {
await cb(state, data, psend)
done()
} catch (err) {
done(err)
}
@timwis
timwis / reorder.js
Last active December 25, 2016 18:58
function reorder (state, data) {
const { from, to } = data
const rowsCopy = state.rows.slice()
const fromRowCopy = rowsCopy[from.row].slice()
const item = fromRowCopy[from.index]
fromRowCopy.splice(from.index, 1) // remove from row
rowsCopy[from.row] = fromRowCopy // replace 'from' row
const choo = require('choo')
const html = require('choo/html')
const widget = require('cache-element/widget')
const app = choo()
app.model({
state: {
rows: [ {a: 'a'}, {b: 'b'} ]
},
@timwis
timwis / list.py
Created December 28, 2016 21:51
Get a list of OpenDataPhilly datasets that have resources hosted on Socrata
import csv
import sys
import requests
odp_packages_url = 'https://opendataphilly.org/api/3/action/package_search?rows=10000'
odp_dataset_prefix = 'https://opendataphilly.org/package/'
socrata_keyword = '//data.phila.gov'
response = requests.get(odp_packages_url)
@timwis
timwis / README.md
Last active December 29, 2016 12:33
Indent multi-line string

Indent multi-line string

`
<div>
  ${indent(JSON.stringify(data, null, 2), 2)}
</div>
`