Skip to content

Instantly share code, notes, and snippets.

View kueda's full-sized avatar

Ken-ichi kueda

View GitHub Profile
@kueda
kueda / img2pdf
Last active February 14, 2024 08:27
OS X bash script that turns a collection of images into an OCR'd PDF
#!/bin/sh
#
# img2pdf
#
# OS X bash script that turns a collection of images into an OCR'd PDF
#
# Adapted from http://apple.stackexchange.com/questions/128384/ocr-on-pdfs-in-os-x-with-free-open-source-tools,
# where it was in turn adapted from
# http://www.morethantechnical.com/2013/11/21/creating-a-searchable-pdf-with-opensource-tools-ghostscript-hocr2pdf-and-tesseract-ocr/
# from http://www.ehow.com/how_6874571_merge-pdf-files-ghostscript.html
@kueda
kueda / d3.phylogram.js
Last active February 23, 2023 11:53
Right-angle phylograms and circular dendrograms with d3. To preview see http://bl.ocks.org/kueda/1036776
/*
d3.phylogram.js
Wrapper around a d3-based phylogram (tree where branch lengths are scaled)
Also includes a radial dendrogram visualization (branch lengths not scaled)
along with some helper methods for building angled-branch trees.
Copyright (c) 2013, Ken-ichi Ueda
All rights reserved.
@kueda
kueda / import-inat-place.rb
Created February 16, 2023 22:56
Ruby script for importing a production iNat place into a local dev environment
slug = ARGV[0]
open( "https://api.inaturalist.org/v1/places/#{slug}" ) do |f|
json = JSON.parse( f.read )["results"][0]
if !json
puts "No results"
exit!
end
if existing = Place.where( name: json["name"] ).exists?
puts "Already exists: #{existing}"
exit!
@kueda
kueda / esslinger.rb
Last active July 31, 2022 08:32
Script to parse Esslinger's A Cumulative Checklist for the Lichen-forming, Lichenicolous and Allied Fungi of the Continental United States and Canada into machine-readable CSV
#encoding: utf-8
#
# Script to parse Esslinger's A Cumulative Checklist for the Lichen-forming,
# Lichenicolous and Allied Fungi of the Continental United States and Canada
# into machine-readable CSV.
#
# Esslinger's checklist (e.g.
# http://www.ndsu.edu/pubweb/~esslinge/chcklst/chcklst7.htm) is considered
# authoritative for North American lichens, but it's authored with MS Word and
# has incosistent formatting. This script attempts to smooth that out and
@kueda
kueda / inat-password.py
Created July 31, 2015 22:45
iNaturalist API Resource Owner Password Credentials Flow Example (Python)
import requests
site = "https://www.inaturalist.org"
app_id = 'YOUR APP ID'
app_secret = 'YOUR APP SECRET'
username = 'YOUR USERNAME'
password = 'YOUR PASSWORD'
# Send a POST request to /oauth/token with the username and password
payload = {
@kueda
kueda / .block
Last active January 12, 2020 03:40
CNC2017 Species in Common
height: 800
require "rubygems"
require "rest_client"
require "digest"
require "base64"
site = "https://www.inaturalist.org"
app_id = 'YOUR_APP_ID'
redirect_uri = 'YOUR_REDIRECT_URL' # you can set this to some URL you control for testing
code_verifier = "supersecretverifier"
@kueda
kueda / ktodo.plist
Created February 9, 2011 01:43
Textmate language definition for simple todo list highlighting
{ scopeName = 'text.plain';
foldingStartMarker = '/\*\*|\{\s*$';
foldingStopMarker = '\*\*/|^\s*\}';
patterns = (
{ name = 'markup.bold';
match = '^\s*(\*\s.*)$\n?';
},
{ name = 'comment';
match = '^\s*(x\s.*)$\n?';
},
@kueda
kueda / windshaft_single_db.js
Created January 8, 2014 18:34
Windshaft server script for a single-database mapserver. Made with iNaturalist in mind, based on the Windshaft example server at https://github.com/CartoDB/Windshaft/blob/master/examples/readme_server.js
var Windshaft = require('lib/windshaft');
var _ = require('underscore');
var config = {
base_url: '/:table',
base_url_notable: '/',
grainstore: {
datasource: {
user:'kueda',
host: '127.0.0.1',
port: 5432,
App.TaxonTileController = Ember.ObjectController.extend({
defaultPhotoUrl: function() {
var guideTaxon = this.get('content')
var photos = guideTaxon.get('guidePhotos')
var photo = photos ? photos.get('lastObject') : null
var url = photo ? photo.get('url') : 'http://www.inaturalist.org/images/animals.jpg'
if (photo) {
console.log("[DEBUG] photo._data.attributes: ", photo._data.attributes) // this is an empty object
}
return url