Skip to content

Instantly share code, notes, and snippets.

Tim Wisniewski timwis

Block or report user

Report or block timwis

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@timwis
timwis / property-assessments.v2.json
Last active Oct 11, 2019
Property assessments VizWit configuration
View property-assessments.v2.json
{
"version": "2",
"header": {
"title": "OPA Property Records",
"description": "Records of buildings and parcel data from the Office of Property Assessment. All maps and charts are interactive: click on an area to filter the visualization by that dimension, and scroll down to view the filtered results as a table.",
"navigation": [
{
"label": "Download",
"url": "https://data.phila.gov/api/views/3h6i-2hfj/rows.csv?accessType=DOWNLOAD&bom=true"
}
@timwis
timwis / orcsv
Created Sep 20, 2019
Import and export CSV files with orc
View orcsv
#!/usr/bin/env bash
import () {
csvjson "${3:-/dev/stdin}" \
| jq --raw-output '.[] | @sh "echo orc add-entry '"$1"' user \(.'"$2"') \(tostring)"' \
| xargs -0 bash -c
}
export_ () {
orc ls "$1" user | cut -f 4 | in2csv -f ndjson
@timwis
timwis / default.html
Created Jan 27, 2016
How to use rows and columns in a Jekyll page
View default.html
<!DOCTYPE html>
<html>
<body>
<div class="container">
{% assign rows = content | split:"@row" %}
{% for row in rows %}
<div class="row" id="row-{{ forloop.index }}">
{% assign columns = row | split:"@column" %}
@timwis
timwis / App.vue
Created Feb 19, 2019
Using mapbox-gj-leaflet with Vue2Leaflet
View App.vue
<template>
<LMap id="map" :center="center" :zoom="zoom">
<LTileLayer
:options="layerOptions"
:tile-layer-class="tileLayerClass" />
</LMap>
</template>
<script>
import { LMap, LTileLayer } from 'vue2-leaflet'
View dataface.md

problem statement

  • enterprises will inevitably have more data being collected and maintained than their IT departments can keep up with, so business users resort to using spreadsheets or proprietary/incompatible tools.
  • hard to share or integrate this data with other systems
  • eventually the IT departments have to come in and build on top of or fix these tools (crazy formatting, having to reverse engineer the export)
  • there isn't really a great alternative
    • access: desktop software, outdated, not multi-user.
    • airtable: prioprietary, saas-only and could disappear/pivot.
    • salesforce: expensive, proprietary, easy to cross the line where it's very difficult to port (e.g. workflows, notifications).

goals

View vue-error-1.js
import { mapActions, mapState } from 'vuex'
export default {
computed: mapState({
services: (state) => state.services
}),
methods: mapActions([
'getServices'
]),
async created () {
@timwis
timwis / keybase.md
Created Dec 31, 2017
Keybase proof
View keybase.md

Keybase proof

I hereby claim:

  • I am timwis on github.
  • I am timwis (https://keybase.io/timwis) on keybase.
  • I have a public key ASDZvrXjQGJWWeDkYoCfyTS1tZaempyiVUgGSj0wMRJkhwo

To claim this, I am signing this object:

@timwis
timwis / Map.vue
Created Nov 9, 2017
city basemap example
View Map.vue
<template lang="pug">
div.crosshairs
</template>
<script>
import L from 'leaflet'
import esri from 'esri-leaflet'
import 'leaflet-easybutton'
export default {
View choo-onload-test.js
const choo = require('choo')
const html = choo.view
const onload = require('on-load')
const app = choo()
const page1 = (params, state, send) => {
const tree = html`
<div>
<h1>Page 1</h1>
View nestable.js
const Nestable = require('react-nestable').default
const React = require('react')
const ReactDOM = require('react-dom')
const Nanocomponent = require('nanocomponent')
const css = require('sheetify')
css('react-nestable/dist/Nestable/Nestable.css')
css('react-nestable/dist/Icon/Icon.css')
module.exports = class TaskList extends Nanocomponent {
You can’t perform that action at this time.