- Tarot as collaborative storytelling by me
- A Long History of Generated Poetics: cutups from Dickinson to Melitzah by katie rose pipkin
- The History of Text Generation by Holly Gramazio
- Pig Latin, Ghost and other folk word games
- Atlas Obscura on the Eureka Machine
- Automatic writing (among other spiritualist/surrealist techniques)
- How to make a dadaist poem by Tristan Tzara
- [Taroko Gorge](
/// Observes a run loop to detect any stalling or blocking that occurs. | |
/// | |
/// This class is thread-safe. | |
@interface GHRunLoopWatchdog : NSObject | |
/// Initializes the receiver to watch the specified run loop, using a default | |
/// stalling threshold. | |
- (id)initWithRunLoop:(CFRunLoopRef)runLoop; | |
/// Initializes the receiver to detect when the specified run loop blocks for |
# Layout & typography | |
{>|}  | |
NEW YORK – Text set in all caps gets converted to small-caps by default. This means that acronyms like BBC don’t stand out relative to the rest of the text. Acronyms even work with accents like ÀÊØ. A possessive [acronym](/) like CNN's opinion works as well. What about the FCC! The so called (BBC). Also I automatically convert three dots to an ellipsis... « Hello » there should have non-breaking spaces between the punctuation and the word... | |
Accents all work perfectly in Georgia. Albrecht Dürer, François Truffaut, Plácido Domingo should all render appropriately. Cause célèbre, piña colada, Götterdämmerung straße all work too. Links also are improved: note how the [descenders get cleared](/) from the underline stroke. Composing content for the web is complicated because the designer has no control over the dimensions of the screen on which the content will be viewed? | |
"Han |
{ fontWeight: '100' }, // Thin | |
{ fontWeight: '200' }, // Ultra Light | |
{ fontWeight: '300' }, // Light | |
{ fontWeight: '400' }, // Regular | |
{ fontWeight: '500' }, // Medium | |
{ fontWeight: '600' }, // Semibold | |
{ fontWeight: '700' }, // Bold | |
{ fontWeight: '800' }, // Heavy | |
{ fontWeight: '900' }, // Black |
componentWillReceiveProps(nextProps) { | |
if (nextProps.lastRequestedUserLocationAt > this.props.lastRequestedUserLocationAt) { | |
this.centerMapToUser(nextProps.currentLocation); | |
} | |
if (nextProps.lastUpdated > this.props.lastUpdated) { | |
const markers = this.createMarkersForLocations(nextProps); | |
if (markers && Object.keys(markers)) { | |
const clusters = {}; |
import React, { Component } from 'react'; | |
// I used redux's compose b/c it was there, but you could of course compose however you wanted | |
import { compose } from 'redux'; | |
// db is just the return of firebase.firestore() from an initialized Firebase | |
import { db } from './store'; | |
// pipe and reduce are from https://github.com/adampash/pipe/blob/master/src/index.js | |
import { pipe, reduce } from './utils/pipe'; | |
class FirestoreData extends Component { | |
constructor(props) { |
/*: | |
This is a concept re-implementation of the @Binding and @State property wrappers from SwiftUI | |
The only purpose of this code is to implement those wrappers myself | |
just to understand how they work internally and why they are needed, | |
⚠️ This is not supposed to be a reference implementation nor cover all | |
subtleties of the real Binding and State types. | |
The only purpose of this playground is to show how re-implementing | |
them myself has helped me understand the whole thing better |
-- This function is based on this description: | |
-- https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html | |
CREATE OR REPLACE FUNCTION | |
sign_s3_url( | |
m_host text, | |
m_verb text, | |
m_resource text, | |
m_region text, | |
m_key text, |
export default (element: HTMLElement, options: any = {}) => { | |
// if added as action on non focusable element you should add tabindex=0 attribute | |
const { | |
direction = undefined, | |
shiftMultiplier = 10, | |
bubbles = false, | |
stopKeydownPropagation = true, | |
} = options; |
Deploying a Phoenix app to Fly.io is a breeze...is what everyone kept telling me. In fairness, I imagine the process would have been breezier had I just used postgres, but all the sqlite and litestream talk has been far too intriguing to ignore. "Wait", you say. "It is just a flat file. How much harder can it be?"
It is easy to make something harder than it should be. It is hard to take something complex and make it truly simple. flyctl launch
does an amazing job at providing a simple interface to the utterly complex task of generating deployment resources, especially now that we are living in a containerd
(erm, firecracker) world.
This gist is for anyone who, like me, thinks they know better than to read all of the documentation and therefore necessari