Skip to content

Instantly share code, notes, and snippets.

View hastebrot's full-sized avatar

Benjamin Gudehus hastebrot

  • Freiheit.com
  • Hamburg, Germany
  • 02:53 (UTC +02:00)
View GitHub Profile
@tmcw
tmcw / xyz_vs_tms.md
Last active April 29, 2025 02:26
The difference between XYZ and TMS tiles and how to convert between them

The difference between XYZ and TMS tiles and how to convert between them

Lots of tile-based maps use either the XYZ or TMS scheme. These are the maps that have tiles ending in /0/0/0.png or something. Sometimes if it's a script, it'll look like &z=0&y=0&x=0 instead. Anyway, these are usually maps in Spherical Mercator.

Good examples are OpenStreetMap, Google Maps, MapBox, MapQuest, etc. Lots of maps.

Most of those are in XYZ. The best documentation for that is slippy map tilenames on the OSM Wiki, and Klokan's Tiles a la Google.

@jewelsea
jewelsea / StackedPanes.java
Last active September 14, 2021 22:44
Simple demo of stacking TitledPanes in a VBox.
import javafx.application.*;
import javafx.beans.value.*;
import javafx.geometry.*;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.image.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
/**
@mviitanen
mviitanen / create-jekyll-post.sh
Last active February 24, 2018 16:00
A shell script to create a new jekyll post. Maybe there is an easier way, but this script generates a basic markdown post for jekyll. It has head matter, samples of some common formatting, and a link to a more complete documentation of the format.
#!/bin/bash
if [ "$#" -ne 1 ] ; then
echo "Usage: $0 <title>" >&2
exit 1
fi
title=`echo "$1" |sed 's/ /-/g'`
fileName="_posts/`date +%Y-%m-%d-$title.markdown`"
@joshareed
joshareed / GithubClient.groovy
Last active March 2, 2023 21:26
Fetch list of issues from Github and draft an email
//#!/usr/bin/env groovy
import groovy.json.JsonSlurper
import java.text.SimpleDateFormat
// fetches a Github API URL and parses the result as JSON
def fetch(addr, params = [:]) {
def auth = "<personal api token>"
def json = new JsonSlurper()
return json.parse(addr.toURL().newReader(requestProperties: ["Authorization": "token ${auth}".toString(), "Accept": "application/json"]))
@willurd
willurd / web-servers.md
Last active May 20, 2025 11:28
Big list of http static server one-liners

Each of these commands will run an ad hoc http static server in your current (or specified) directory, available at http://localhost:8000. Use this power wisely.

Discussion on reddit.

Python 2.x

$ python -m SimpleHTTPServer 8000
@halgari
halgari / gist:7160778
Created October 25, 2013 19:47
Using core.logic to query custom data sources.
(ns extend-core-logic.core
(:require [clojure.core.logic :refer :all]
[clojure.core.logic.protocols :refer [walk]]
[clojure.java.io :as jio]
[clojure.string :as string])
(:import [java.io BufferedReader StringReader]))
;; from: http://federalgovernmentzipcodes.us/
(defn load-db []
(let [data (java.io.BufferedReader. (java.io.StringReader. (slurp "/Users/tim/Downloads/free-zipcode-database.csv")))
@orangy
orangy / event.kt
Last active September 30, 2019 09:45
C#-style events in Kotlin
class Event<T> {
private val handlers = arrayListOf<(Event<T>.(T) -> Unit)>()
fun plusAssign(handler: Event<T>.(T) -> Unit) { handlers.add(handler) }
fun invoke(value: T) { for (handler in handlers) handler(value) }
}
val e = Event<String>() // define event
fun main(args : Array<String>) {
e += { println(it) } // subscribe
@orangy
orangy / using.kt
Created May 2, 2014 12:56
DSL for C#-style using statement
trait Disposable {
fun dispose()
}
fun using(value : Disposable, body : ()->Unit) {
try {
body()
} finally {
value.dispose()
}
pub fn main() {
let f = action(floats(), p);
let parser = spaces() << string_s("vertex") << string_s("[") <<
f << spaces() << f << spaces() << f << spaces() << string("]");
let input = ParserInput::new(std::os::args()[1]);
let result = parser.parse(&input);
}