├── .eslintignore ├── .eslintrc.js ├── .github └── workflows │ ├── ci.yml │ └── release.yml ├── .gitignore ├── LICENSE.md ├── README.md ├── action.yml ├── dist └── index.js ├── index.ts ├── jest.config.js ├── jest.setup.js ├── lib ├── blob.ts ├── commit.ts ├── github-client.ts ├── input.ts ├── ref.ts ├── repo.ts ├── resource.ts └── tree.ts ├── package-lock.json ├── package.json ├── tests ├── blob.test.ts ├── fixtures │ ├── blob.payload.json │ └── blob.txt └── github-client.test.ts ├── tsconfig.json └── zen.txt /.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | parser: "@typescript-eslint/parser", // Specifies the ESLint parser 4 | extends: [ 5 | "plugin:@typescript-eslint/recommended", // Uses the recommended rules from the @typescript-eslint/eslint-plugin 6 | "prettier/@typescript-eslint", // Uses eslint-config-prettier to disable ESLint rules from @typescript-eslint/eslint-plugin that would conflict with prettier 7 | "plugin:prettier/recommended", // Enables eslint-plugin-prettier and eslint-config-prettier. This will display prettier errors as ESLint errors. Make sure this is always the last configuration in the extends array. 8 | ], 9 | parserOptions: { 10 | ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features 11 | sourceType: "module", // Allows for the use of imports 12 | }, 13 | rules: { 14 | // Place to specify ESLint rules. Can be used to overwrite rules specified from the extended configs 15 | // e.g. "@typescript-eslint/explicit-function-return-type": "off", 16 | }, 17 | env: { 18 | es6: true, 19 | node: true, 20 | jest: true, 21 | }, 22 | }; 23 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: tests 2 | on: 3 | push: 4 | branches: 5 | - main 6 | pull_request: 7 | branches: 8 | - main 9 | jobs: 10 | test: 11 | name: test 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v2 15 | - uses: actions/setup-node@v1 16 | - run: npm ci 17 | - run: npm run lint 18 | - run: npm run test 19 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: release v2 2 | on: 3 | push: 4 | branches: 5 | - main 6 | 7 | # Trigger release manually 8 | workflow_dispatch: 9 | 10 | jobs: 11 | release: 12 | name: release 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Ensure v2.x exists 16 | continue-on-error: true 17 | env: 18 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 19 | run: | 20 | export SHA=$( gh api \ 21 | /repos/$GITHUB_REPOSITORY/git/refs/heads/main \ 22 | | jq --raw-output '.object.sha' ) 23 | gh api /repos/$GITHUB_REPOSITORY/git/refs \ 24 | --field sha="$SHA" \ 25 | --field ref="refs/heads/v2.x" 26 | - uses: actions/checkout@v2 27 | - uses: actions/setup-node@v1 28 | - run: npm ci 29 | - run: npm run build 30 | - uses: ./ 31 | env: 32 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 33 | with: 34 | files: | 35 | dist/index.js 36 | commit-message: Add dist/index.js 37 | ref: refs/heads/v2.x 38 | - uses: actions/upload-artifact@v2 39 | with: 40 | name: build 41 | path: dist/index.js 42 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .envrc 2 | 3 | # Logs 4 | logs 5 | *.log 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | lerna-debug.log* 10 | 11 | # Diagnostic reports (https://nodejs.org/api/report.html) 12 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 13 | 14 | # Runtime data 15 | pids 16 | *.pid 17 | *.seed 18 | *.pid.lock 19 | 20 | # Directory for instrumented libs generated by jscoverage/JSCover 21 | lib-cov 22 | 23 | # Coverage directory used by tools like istanbul 24 | coverage 25 | *.lcov 26 | 27 | # nyc test coverage 28 | .nyc_output 29 | 30 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 31 | .grunt 32 | 33 | # Bower dependency directory (https://bower.io/) 34 | bower_components 35 | 36 | # node-waf configuration 37 | .lock-wscript 38 | 39 | # Compiled binary addons (https://nodejs.org/api/addons.html) 40 | build/Release 41 | 42 | # Dependency directories 43 | node_modules/ 44 | jspm_packages/ 45 | 46 | # Snowpack dependency directory (https://snowpack.dev/) 47 | web_modules/ 48 | 49 | # TypeScript cache 50 | *.tsbuildinfo 51 | 52 | # Optional npm cache directory 53 | .npm 54 | 55 | # Optional eslint cache 56 | .eslintcache 57 | 58 | # Microbundle cache 59 | .rpt2_cache/ 60 | .rts2_cache_cjs/ 61 | .rts2_cache_es/ 62 | .rts2_cache_umd/ 63 | 64 | # Optional REPL history 65 | .node_repl_history 66 | 67 | # Output of 'npm pack' 68 | *.tgz 69 | 70 | # Yarn Integrity file 71 | .yarn-integrity 72 | 73 | # dotenv environment variables file 74 | .env 75 | .env.test 76 | 77 | # parcel-bundler cache (https://parceljs.org/) 78 | .cache 79 | .parcel-cache 80 | 81 | # Next.js build output 82 | .next 83 | out 84 | 85 | # Nuxt.js build / generate output 86 | .nuxt 87 | dist 88 | 89 | # Gatsby files 90 | .cache/ 91 | # Comment in the public line in if your project uses Gatsby and not Next.js 92 | # https://nextjs.org/blog/next-9-1#public-directory-support 93 | # public 94 | 95 | # vuepress build output 96 | .vuepress/dist 97 | 98 | # Serverless directories 99 | .serverless/ 100 | 101 | # FuseBox cache 102 | .fusebox/ 103 | 104 | # DynamoDB Local files 105 | .dynamodb/ 106 | 107 | # TernJS port file 108 | .tern-port 109 | 110 | # Stores VSCode versions used for testing VSCode extensions 111 | .vscode-test 112 | 113 | # yarn v2 114 | .yarn/cache 115 | .yarn/unplugged 116 | .yarn/build-state.yml 117 | .yarn/install-state.gz 118 | .pnp.* 119 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | ISC License 2 | 3 | Copyright (c) 2020, Steve Winton (https://github.com/swinton) 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Commit 2 | > :white_check_mark: Create a _verified_ commit with GitHub Actions 3 | 4 | ![](https://github.com/swinton/commit/workflows/tests/badge.svg) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) 5 | 6 | ## About 7 | This action allows you to create a commit with GitHub Actions. Commits created with this actions will be marked as _verified_. 8 | 9 | ![image](https://user-images.githubusercontent.com/27806/102705224-ab118f80-424a-11eb-94c5-ab7396ccba13.png) 10 | 11 | ## Usage 12 | In your workflow, to commit a file `./myfile`, include a step like this: 13 | 14 | ```yaml 15 | - name: Commit file 16 | uses: swinton/commit@v2.x 17 | env: 18 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 19 | with: 20 | files: | 21 | myfile 22 | commit-message: Committing ./myfile 23 | ref: refs/heads/my-branch 24 | ``` 25 | 26 | Note, the `GH_TOKEN` environment variable is _required_, since commits are created using GitHub's [Git Database API](https://docs.github.com/rest/reference/git). 27 | 28 | To commit multiple files in a single commit, pass each file on a newline to the `files` input: 29 | 30 | ```yaml 31 | - name: Commit files 32 | uses: swinton/commit@v2.x 33 | env: 34 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 35 | with: 36 | files: | 37 | path/to/myfile1 38 | path/to/myfile2 39 | path/to/myfile3 40 | commit-message: Committing files 41 | ref: refs/heads/my-branch 42 | ``` 43 | 44 | ## Inputs 45 | The following inputs are _required_: 46 | 47 | - `files`: Newline-separated list of files to be committed, relative to root of repository, e.g.
myfile1
myfile2
...
myfileN
48 | - `commit-message`: Commit message to be used, e.g. `Add ./myfile` 49 | - `ref`: Fully qualified name of reference to be updated with commit, e.g. `refs/heads/production`. This reference _must_ already exist. Defaults to the repository's default branch ref. 50 | 51 | ## Outputs 52 | This action provides the following outputs: 53 | 54 | - `commit-sha`: SHA of created commit 55 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: Verified commit 2 | description: GitHub Action to create verified commits 3 | inputs: 4 | files: 5 | description: | 6 | Newline-separated list of files to be committed, relative to root of repository. 7 | required: true 8 | workspace: 9 | description: | 10 | Base directory containing files to be committed, defaults to the GitHub workspace directory path, $GITHUB_WORKSPACE. 11 | required: false 12 | default: '' 13 | commit-message: 14 | description: | 15 | Commit message to be used 16 | required: true 17 | ref: 18 | description: | 19 | Reference to be updated with commit. This reference must already exist. Defaults to the repository's default branch ref. 20 | required: false 21 | default: '' 22 | outputs: 23 | commit-sha: 24 | description: SHA of created commit 25 | runs: 26 | using: node12 27 | main: dist/index.js 28 | branding: 29 | icon: git-commit 30 | color: purple 31 | -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- 1 | import * as core from "@actions/core"; 2 | 3 | import getInput from "./lib/input"; 4 | import { Repo } from "./lib/repo"; 5 | import { Ref } from "./lib/ref"; 6 | import { getBlobsFromFiles } from "./lib/blob"; 7 | import { Tree } from "./lib/tree"; 8 | import { Commit } from "./lib/commit"; 9 | 10 | export default async function run(): Promise { 11 | try { 12 | // Get repo 13 | const repo = new Repo(process.env.GITHUB_REPOSITORY); 14 | await repo.load(); 15 | 16 | // Get inputs 17 | const files = getInput("files"); 18 | const baseDir = getInput("workspace", { 19 | default: process.env.GITHUB_WORKSPACE, 20 | }); 21 | const commitMessage = getInput("commit-message"); 22 | 23 | // Load ref details 24 | const ref = new Ref( 25 | repo, 26 | getInput("ref", { default: repo.defaultBranchRef }) 27 | ); 28 | await ref.load(); 29 | 30 | // Expand files to an array of "blobs", which will be created on GitHub via the create blob API 31 | const blobs = getBlobsFromFiles(repo, files, { baseDir }); 32 | core.debug( 33 | `Received ${blobs.length} blob${ 34 | blobs.length === 1 ? "" : "s" 35 | }: ${blobs.map((blob) => blob.absoluteFilePath).join(", ")}` 36 | ); 37 | 38 | // Create a tree 39 | const tree: Tree = new Tree(repo, blobs, ref.treeOid); 40 | 41 | // Create commit 42 | const commit: Commit = new Commit(repo, tree, commitMessage, [ 43 | ref.commitOid, 44 | ]); 45 | await commit.save(); 46 | 47 | // Set commit sha output 48 | core.setOutput("commit-sha", commit.sha); 49 | 50 | // Update ref to point at new commit sha 51 | await ref.update(commit.sha); 52 | } catch (e) { 53 | core.setFailed(e); 54 | } 55 | } 56 | 57 | run(); 58 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleFileExtensions: ["js", "ts"], 3 | setupFilesAfterEnv: ["./jest.setup.js"], 4 | testEnvironment: "node", 5 | testMatch: ["**/*.test.ts"], 6 | transform: { 7 | "^.+\\.ts$": "ts-jest", 8 | }, 9 | verbose: true, 10 | }; 11 | -------------------------------------------------------------------------------- /jest.setup.js: -------------------------------------------------------------------------------- 1 | jest.setTimeout(5000); 2 | -------------------------------------------------------------------------------- /lib/blob.ts: -------------------------------------------------------------------------------- 1 | import * as fs from "fs"; 2 | import { Readable } from "stream"; 3 | import { join } from "path"; 4 | import { Base64Encode } from "base64-stream"; 5 | import MultiStream from "multistream"; 6 | import Resource from "./resource"; 7 | import { Repo } from "./repo"; 8 | 9 | export class Blob extends Resource { 10 | readonly type: string = "blob"; 11 | readonly absoluteFilePath: string; 12 | readonly mode: string; 13 | sha: string; 14 | 15 | constructor( 16 | readonly repo: Repo, 17 | readonly baseDir: string, 18 | readonly file: string 19 | ) { 20 | super(); 21 | this.absoluteFilePath = join(baseDir, file); 22 | // Reject files that don't exist 23 | if (!fs.existsSync(this.absoluteFilePath)) { 24 | throw new Error(`File does not exist: ${this.absoluteFilePath}.`); 25 | } 26 | // Set the file's mode, this should be represented as an octal string 27 | this.mode = fs.statSync(this.absoluteFilePath).mode.toString(8); 28 | } 29 | 30 | /** 31 | * Produces a stream that conforms to the shape expected 32 | * by the POST /repos/{owner}/{repo}/git/blobs GitHub API 33 | * 34 | * For example, streams produced by this class will resolve to a shape like: 35 | * { 36 | * "encoding": "base64", 37 | * "content": "SGFsZiBtZWFzdXJlcyBhcmUgYXMgYmFkIGFzIG5vdGhpbmcgYXQgYWxsLg==" 38 | * } 39 | * 40 | * See: https://docs.github.com/rest/reference/git#create-a-blob 41 | */ 42 | get stream(): Readable { 43 | const streams: Readable[] = [ 44 | Readable.from('{"encoding":"base64","content":"'), 45 | fs.createReadStream(this.absoluteFilePath).pipe(new Base64Encode()), 46 | Readable.from('"}'), 47 | ]; 48 | 49 | // Produces the JSON body as a stream, so that we don't have to read ( 50 | // potentially very large) files into memory 51 | return new MultiStream(streams); 52 | } 53 | 54 | get path(): string { 55 | return this.file; 56 | } 57 | 58 | async save(): Promise { 59 | const response = await this.github.post( 60 | `/repos/${this.repo.nameWithOwner}/git/blobs`, 61 | this.stream 62 | ); 63 | this.sha = response.data.sha; 64 | this.debug(`Sha for blob ${this.file}: ${this.sha}.`); 65 | } 66 | } 67 | 68 | export interface Options { 69 | /** Optional. Default base dir to use when expanding a set of files. */ 70 | baseDir?: string; 71 | } 72 | 73 | export function getBlobsFromFiles( 74 | repo: Repo, 75 | files: string, 76 | options: Options = {} 77 | ): Blob[] { 78 | const { baseDir } = options; 79 | return files 80 | .trim() 81 | .split("\n") 82 | .map((file) => new Blob(repo, baseDir, file)); 83 | } 84 | -------------------------------------------------------------------------------- /lib/commit.ts: -------------------------------------------------------------------------------- 1 | import Resource from "./resource"; 2 | import { Repo } from "./repo"; 3 | import { Tree } from "./tree"; 4 | 5 | export class Commit extends Resource { 6 | sha: string; 7 | constructor( 8 | readonly repo: Repo, 9 | readonly tree: Tree, 10 | readonly message: string, 11 | readonly parents: string[] 12 | ) { 13 | super(); 14 | } 15 | 16 | async save(): Promise { 17 | // Save the tree first 18 | await this.tree.save(); 19 | 20 | // Save the commit 21 | // Via: POST https://api.github.com/repos/$GITHUB_REPOSITORY/git/commits 22 | const response = await this.github.post( 23 | `/repos/${this.repo.nameWithOwner}/git/commits`, 24 | { 25 | message: this.message, 26 | tree: this.tree.sha, 27 | parents: this.parents, 28 | } 29 | ); 30 | 31 | this.sha = response.data.sha; 32 | this.debug(`Commit: ${this.sha}`); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/github-client.ts: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | 3 | // eslint-disable-next-line @typescript-eslint/no-var-requires 4 | const pkg = require("../package.json"); 5 | 6 | const github = axios.create({ 7 | baseURL: `https://api.github.com/`, 8 | headers: { 9 | accept: `application/vnd.github.v3+json`, 10 | authorization: `bearer ${process.env.GH_TOKEN}`, 11 | "user-agent": `${pkg.name}/${pkg.version}`, 12 | }, 13 | }); 14 | 15 | export default github; 16 | -------------------------------------------------------------------------------- /lib/input.ts: -------------------------------------------------------------------------------- 1 | import * as core from "@actions/core"; 2 | 3 | export interface InputOptions extends core.InputOptions { 4 | /** Optional. Default value to use for an input option if the option is not set. */ 5 | default?: string | null; 6 | } 7 | 8 | export default function getInput( 9 | name: string, 10 | options: InputOptions = {} 11 | ): string | null { 12 | const value = core.getInput(name, options); 13 | 14 | if (!value && options.default) { 15 | core.debug(`${name}: ${options.default}`); 16 | return options.default; 17 | } 18 | 19 | core.debug(`${name}: ${value}`); 20 | return value; 21 | } 22 | -------------------------------------------------------------------------------- /lib/ref.ts: -------------------------------------------------------------------------------- 1 | import Resource from "./resource"; 2 | import { Repo } from "./repo"; 3 | 4 | export class Ref extends Resource { 5 | prefix: string; 6 | name: string; 7 | commitOid: string; 8 | treeOid: string; 9 | 10 | constructor(readonly repo: Repo, readonly ref: string) { 11 | super(); 12 | } 13 | 14 | async save(): Promise { 15 | throw new Error("Not implemented"); 16 | } 17 | 18 | get fullyQualifiedName(): string { 19 | return this.prefix + this.name; 20 | } 21 | 22 | async load(): Promise { 23 | type ResponseShape = { 24 | data: { 25 | repository: { 26 | ref: { 27 | name: string; 28 | prefix: string; 29 | commit: { 30 | oid: string; 31 | tree: { 32 | oid: string; 33 | }; 34 | }; 35 | }; 36 | }; 37 | }; 38 | }; 39 | 40 | const response = await this.graphql( 41 | `query inspectRef($owner: String!, $name: String!, $ref: String!) { 42 | repository(owner: $owner, name: $name) { 43 | ref(qualifiedName: $ref) { 44 | name 45 | prefix 46 | commit: target { 47 | ... on Commit { 48 | oid 49 | tree { 50 | oid 51 | } 52 | } 53 | } 54 | } 55 | } 56 | }`, 57 | { owner: this.repo.owner, name: this.repo.name, ref: this.ref } 58 | ); 59 | this.name = (response.data as ResponseShape).data.repository.ref.name; 60 | this.prefix = (response.data as ResponseShape).data.repository.ref.prefix; 61 | this.commitOid = (response.data as ResponseShape).data.repository.ref.commit.oid; 62 | this.treeOid = (response.data as ResponseShape).data.repository.ref.commit.tree.oid; 63 | this.debug( 64 | `Ref: ${this.fullyQualifiedName}, prefix: ${this.prefix}, commitOid: ${this.commitOid}, treeOid: ${this.treeOid}` 65 | ); 66 | } 67 | 68 | async update(sha: string): Promise { 69 | // Update ref 70 | // Via: PATCH https://api.github.com/repos/$GITHUB_REPOSITORY/git/$REF 71 | await this.github.patch( 72 | `/repos/${this.repo.nameWithOwner}/git/${this.fullyQualifiedName}`, 73 | { sha } 74 | ); 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /lib/repo.ts: -------------------------------------------------------------------------------- 1 | import Resource from "./resource"; 2 | 3 | export class Repo extends Resource { 4 | readonly owner: string; 5 | readonly name: string; 6 | defaultBranchRef: string; 7 | constructor(readonly nameWithOwner: string) { 8 | super(); 9 | const [owner, name] = this.nameWithOwner.split("/"); 10 | this.owner = owner; 11 | this.name = name; 12 | } 13 | 14 | async save(): Promise { 15 | throw new Error("Not implemented"); 16 | } 17 | 18 | async load(): Promise { 19 | const response = await this.github.get(`/repos/${this.nameWithOwner}`); 20 | this.defaultBranchRef = response.data.default_branch; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/resource.ts: -------------------------------------------------------------------------------- 1 | import { AxiosInstance, AxiosResponse } from "axios"; 2 | import * as core from "@actions/core"; 3 | 4 | import github from "./github-client"; 5 | 6 | export interface Saveable { 7 | save(): Promise; 8 | } 9 | 10 | export default abstract class Resource implements Saveable { 11 | protected debug: (message: string) => void; 12 | protected github: AxiosInstance; 13 | constructor() { 14 | this.debug = core.debug; 15 | this.github = github; 16 | } 17 | 18 | protected graphql( 19 | query: string, 20 | variables: Record 21 | ): Promise> { 22 | const body: Record = { 23 | query, 24 | variables, 25 | }; 26 | return this.github.post(`/graphql`, body); 27 | } 28 | 29 | abstract save(): Promise; 30 | } 31 | -------------------------------------------------------------------------------- /lib/tree.ts: -------------------------------------------------------------------------------- 1 | import Resource from "./resource"; 2 | 3 | import { Repo } from "./repo"; 4 | import { Blob } from "./blob"; 5 | 6 | export class Tree extends Resource { 7 | sha: string; 8 | 9 | constructor( 10 | readonly repo: Repo, 11 | readonly blobs: Blob[], 12 | readonly parentOid?: string 13 | ) { 14 | super(); 15 | } 16 | 17 | async save(): Promise { 18 | // Save all the blobs 19 | for await (const blob of this.blobs) { 20 | await blob.save(); 21 | } 22 | 23 | // Save the tree 24 | // Via: POST https://api.github.com/repos/$GITHUB_REPOSITORY/git/trees 25 | const response = await this.github.post( 26 | `repos/${this.repo.nameWithOwner}/git/trees`, 27 | { 28 | tree: this.blobs.map((blob) => { 29 | return { 30 | path: blob.path, 31 | mode: blob.mode, 32 | type: blob.type, 33 | sha: blob.sha, 34 | }; 35 | }), 36 | base_tree: this.parentOid, 37 | } 38 | ); 39 | 40 | this.sha = response.data.sha; 41 | this.debug(`Tree: ${this.sha}`); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@swinton/commit", 3 | "version": "2.0.0", 4 | "description": "Create a verified commit with GitHub Actions", 5 | "main": "dist/index.js", 6 | "scripts": { 7 | "start": "node dist/index.js", 8 | "lint": "tsc --noEmit && eslint '*/**/*.{js,ts,tsx}'", 9 | "test": "jest", 10 | "build": "ncc build index.ts -o dist" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git+https://github.com/swinton/commit.git" 15 | }, 16 | "keywords": [], 17 | "author": "Steve Winton (https://github.com/swinton)", 18 | "license": "ISC", 19 | "bugs": { 20 | "url": "https://github.com/swinton/commit/issues" 21 | }, 22 | "homepage": "https://github.com/swinton/commit#readme", 23 | "devDependencies": { 24 | "@types/jest": "^26.0.19", 25 | "@types/node": "^14.14.10", 26 | "@typescript-eslint/eslint-plugin": "^4.9.1", 27 | "@typescript-eslint/parser": "^4.9.1", 28 | "@vercel/ncc": "^0.25.1", 29 | "eslint": "^7.15.0", 30 | "eslint-config-prettier": "^7.0.0", 31 | "eslint-plugin-prettier": "^3.2.0", 32 | "jest": "^26.6.3", 33 | "prettier": "^2.2.1", 34 | "tempy": "^1.0.0", 35 | "ts-jest": "^26.4.4", 36 | "typescript": "^4.1.2" 37 | }, 38 | "dependencies": { 39 | "@actions/core": "^1.2.6", 40 | "axios": "^0.21.0", 41 | "base64-stream": "^1.0.0", 42 | "multistream": "^4.0.1" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /tests/blob.test.ts: -------------------------------------------------------------------------------- 1 | import fs from "fs"; 2 | import { join } from "path"; 3 | import { finished } from "stream"; 4 | import { promisify } from "util"; 5 | import tempy from "tempy"; 6 | 7 | import { Repo } from "../lib/repo"; 8 | import { Blob } from "../lib/blob"; 9 | 10 | describe("Blob", () => { 11 | let repo: Repo; 12 | let blob: Blob; 13 | 14 | beforeEach(() => { 15 | repo = new Repo("foo/bar"); 16 | blob = new Blob(repo, __dirname, "fixtures/blob.txt"); 17 | }); 18 | 19 | test("mode", () => { 20 | expect(blob.mode).toBe("100644"); 21 | }); 22 | 23 | test("path", () => { 24 | expect(blob.path).toBe("fixtures/blob.txt"); 25 | }); 26 | 27 | test("stream", async () => { 28 | const source = blob.stream; 29 | const dest = fs.createWriteStream(tempy.file({ extension: "json" })); 30 | await promisify(finished)(source.pipe(dest)); 31 | expect( 32 | JSON.parse(fs.readFileSync(dest.path.toString()).toString()) 33 | ).toEqual( 34 | JSON.parse( 35 | fs 36 | .readFileSync(join(__dirname, "fixtures", "blob.payload.json")) 37 | .toString() 38 | ) 39 | ); 40 | }); 41 | }); 42 | -------------------------------------------------------------------------------- /tests/fixtures/blob.txt: -------------------------------------------------------------------------------- 1 | Keep it logically awesome. 2 | Mind your words, they are important. 3 | Keep it logically awesome. 4 | Non-blocking is better than blocking. 5 | Responsive is better than fast. 6 | Favor focus over features. 7 | Keep it logically awesome. 8 | Approachable is better than simple. 9 | Responsive is better than fast. 10 | Keep it logically awesome. 11 | Approachable is better than simple. 12 | Encourage flow. 13 | Speak like a human. 14 | Anything added dilutes everything else. 15 | Practicality beats purity. 16 | Half measures are as bad as nothing at all. 17 | Anything added dilutes everything else. 18 | Approachable is better than simple. 19 | Avoid administrative distraction. 20 | Approachable is better than simple. 21 | Encourage flow. 22 | Practicality beats purity. 23 | Approachable is better than simple. 24 | Avoid administrative distraction. 25 | Non-blocking is better than blocking. 26 | Favor focus over features. 27 | Half measures are as bad as nothing at all. 28 | Responsive is better than fast. 29 | Design for failure. 30 | Responsive is better than fast. 31 | Keep it logically awesome. 32 | Design for failure. 33 | Non-blocking is better than blocking. 34 | Responsive is better than fast. 35 | Mind your words, they are important. 36 | It's not fully shipped until it's fast. 37 | Anything added dilutes everything else. 38 | Encourage flow. 39 | Avoid administrative distraction. 40 | Keep it logically awesome. 41 | Responsive is better than fast. 42 | Anything added dilutes everything else. 43 | Avoid administrative distraction. 44 | Encourage flow. 45 | Anything added dilutes everything else. 46 | Speak like a human. 47 | Non-blocking is better than blocking. 48 | Practicality beats purity. 49 | Favor focus over features. 50 | Mind your words, they are important. 51 | It's not fully shipped until it's fast. 52 | Encourage flow. 53 | It's not fully shipped until it's fast. 54 | Speak like a human. 55 | Keep it logically awesome. 56 | Design for failure. 57 | Responsive is better than fast. 58 | Non-blocking is better than blocking. 59 | Mind your words, they are important. 60 | Design for failure. 61 | Avoid administrative distraction. 62 | Design for failure. 63 | It's not fully shipped until it's fast. 64 | Avoid administrative distraction. 65 | Avoid administrative distraction. 66 | Anything added dilutes everything else. 67 | Encourage flow. 68 | Avoid administrative distraction. 69 | Encourage flow. 70 | Approachable is better than simple. 71 | Anything added dilutes everything else. 72 | Anything added dilutes everything else. 73 | Responsive is better than fast. 74 | Design for failure. 75 | Speak like a human. 76 | Practicality beats purity. 77 | Avoid administrative distraction. 78 | Responsive is better than fast. 79 | It's not fully shipped until it's fast. 80 | Favor focus over features. 81 | Approachable is better than simple. 82 | It's not fully shipped until it's fast. 83 | Keep it logically awesome. 84 | Encourage flow. 85 | Keep it logically awesome. 86 | Responsive is better than fast. 87 | Responsive is better than fast. 88 | Half measures are as bad as nothing at all. 89 | Avoid administrative distraction. 90 | Mind your words, they are important. 91 | Practicality beats purity. 92 | Mind your words, they are important. 93 | Favor focus over features. 94 | Keep it logically awesome. 95 | Anything added dilutes everything else. 96 | Speak like a human. 97 | It's not fully shipped until it's fast. 98 | Mind your words, they are important. 99 | Keep it logically awesome. 100 | Speak like a human. 101 | Encourage flow. 102 | Favor focus over features. 103 | Practicality beats purity. 104 | Half measures are as bad as nothing at all. 105 | Speak like a human. 106 | It's not fully shipped until it's fast. 107 | Mind your words, they are important. 108 | It's not fully shipped until it's fast. 109 | Non-blocking is better than blocking. 110 | Mind your words, they are important. 111 | Responsive is better than fast. 112 | Speak like a human. 113 | Favor focus over features. 114 | Approachable is better than simple. 115 | Keep it logically awesome. 116 | Favor focus over features. 117 | Half measures are as bad as nothing at all. 118 | Avoid administrative distraction. 119 | Anything added dilutes everything else. 120 | Keep it logically awesome. 121 | Mind your words, they are important. 122 | Responsive is better than fast. 123 | Design for failure. 124 | Keep it logically awesome. 125 | Mind your words, they are important. 126 | Non-blocking is better than blocking. 127 | Anything added dilutes everything else. 128 | Avoid administrative distraction. 129 | Practicality beats purity. 130 | Favor focus over features. 131 | Keep it logically awesome. 132 | Favor focus over features. 133 | Keep it logically awesome. 134 | Anything added dilutes everything else. 135 | Practicality beats purity. 136 | Mind your words, they are important. 137 | Anything added dilutes everything else. 138 | Speak like a human. 139 | It's not fully shipped until it's fast. 140 | Half measures are as bad as nothing at all. 141 | It's not fully shipped until it's fast. 142 | Design for failure. 143 | Non-blocking is better than blocking. 144 | Encourage flow. 145 | Practicality beats purity. 146 | Favor focus over features. 147 | Approachable is better than simple. 148 | Favor focus over features. 149 | Approachable is better than simple. 150 | Anything added dilutes everything else. 151 | Practicality beats purity. 152 | Responsive is better than fast. 153 | Avoid administrative distraction. 154 | It's not fully shipped until it's fast. 155 | It's not fully shipped until it's fast. 156 | Speak like a human. 157 | Keep it logically awesome. 158 | Non-blocking is better than blocking. 159 | Speak like a human. 160 | Practicality beats purity. 161 | Design for failure. 162 | Approachable is better than simple. 163 | Design for failure. 164 | Speak like a human. 165 | Approachable is better than simple. 166 | Design for failure. 167 | Encourage flow. 168 | Half measures are as bad as nothing at all. 169 | Mind your words, they are important. 170 | Responsive is better than fast. 171 | Responsive is better than fast. 172 | Mind your words, they are important. 173 | Favor focus over features. 174 | Practicality beats purity. 175 | Approachable is better than simple. 176 | Favor focus over features. 177 | Keep it logically awesome. 178 | Avoid administrative distraction. 179 | Avoid administrative distraction. 180 | Responsive is better than fast. 181 | Half measures are as bad as nothing at all. 182 | Design for failure. 183 | Design for failure. 184 | Encourage flow. 185 | Half measures are as bad as nothing at all. 186 | Speak like a human. 187 | Encourage flow. 188 | Speak like a human. 189 | Non-blocking is better than blocking. 190 | Half measures are as bad as nothing at all. 191 | Non-blocking is better than blocking. 192 | Mind your words, they are important. 193 | Half measures are as bad as nothing at all. 194 | Design for failure. 195 | Favor focus over features. 196 | Anything added dilutes everything else. 197 | Avoid administrative distraction. 198 | It's not fully shipped until it's fast. 199 | Design for failure. 200 | Keep it logically awesome. 201 | Anything added dilutes everything else. 202 | Avoid administrative distraction. 203 | Practicality beats purity. 204 | Approachable is better than simple. 205 | Approachable is better than simple. 206 | Anything added dilutes everything else. 207 | Avoid administrative distraction. 208 | Keep it logically awesome. 209 | Responsive is better than fast. 210 | Non-blocking is better than blocking. 211 | Encourage flow. 212 | Mind your words, they are important. 213 | Speak like a human. 214 | Practicality beats purity. 215 | Approachable is better than simple. 216 | Keep it logically awesome. 217 | Practicality beats purity. 218 | Practicality beats purity. 219 | Mind your words, they are important. 220 | Design for failure. 221 | Responsive is better than fast. 222 | Approachable is better than simple. 223 | Design for failure. 224 | Encourage flow. 225 | Practicality beats purity. 226 | It's not fully shipped until it's fast. 227 | Anything added dilutes everything else. 228 | Half measures are as bad as nothing at all. 229 | Responsive is better than fast. 230 | Half measures are as bad as nothing at all. 231 | Keep it logically awesome. 232 | Half measures are as bad as nothing at all. 233 | Approachable is better than simple. 234 | Speak like a human. 235 | Avoid administrative distraction. 236 | Encourage flow. 237 | Non-blocking is better than blocking. 238 | Speak like a human. 239 | Encourage flow. 240 | Anything added dilutes everything else. 241 | Speak like a human. 242 | Practicality beats purity. 243 | Speak like a human. 244 | It's not fully shipped until it's fast. 245 | Favor focus over features. 246 | Practicality beats purity. 247 | Half measures are as bad as nothing at all. 248 | Keep it logically awesome. 249 | Responsive is better than fast. 250 | Design for failure. 251 | Approachable is better than simple. 252 | Non-blocking is better than blocking. 253 | Half measures are as bad as nothing at all. 254 | Speak like a human. 255 | Approachable is better than simple. 256 | Responsive is better than fast. 257 | Design for failure. 258 | Design for failure. 259 | Favor focus over features. 260 | Non-blocking is better than blocking. 261 | Speak like a human. 262 | Mind your words, they are important. 263 | Design for failure. 264 | Half measures are as bad as nothing at all. 265 | Practicality beats purity. 266 | Practicality beats purity. 267 | Keep it logically awesome. 268 | Encourage flow. 269 | Anything added dilutes everything else. 270 | Half measures are as bad as nothing at all. 271 | Encourage flow. 272 | Mind your words, they are important. 273 | Keep it logically awesome. 274 | Practicality beats purity. 275 | Half measures are as bad as nothing at all. 276 | Responsive is better than fast. 277 | Favor focus over features. 278 | It's not fully shipped until it's fast. 279 | Favor focus over features. 280 | Responsive is better than fast. 281 | Half measures are as bad as nothing at all. 282 | Design for failure. 283 | Non-blocking is better than blocking. 284 | Mind your words, they are important. 285 | Practicality beats purity. 286 | Non-blocking is better than blocking. 287 | Encourage flow. 288 | Keep it logically awesome. 289 | Approachable is better than simple. 290 | Design for failure. 291 | Speak like a human. 292 | Half measures are as bad as nothing at all. 293 | Practicality beats purity. 294 | Encourage flow. 295 | Half measures are as bad as nothing at all. 296 | Favor focus over features. 297 | Mind your words, they are important. 298 | Speak like a human. 299 | Practicality beats purity. 300 | Anything added dilutes everything else. 301 | Avoid administrative distraction. 302 | Keep it logically awesome. 303 | Responsive is better than fast. 304 | It's not fully shipped until it's fast. 305 | It's not fully shipped until it's fast. 306 | Favor focus over features. 307 | Non-blocking is better than blocking. 308 | Mind your words, they are important. 309 | Approachable is better than simple. 310 | Non-blocking is better than blocking. 311 | Anything added dilutes everything else. 312 | Encourage flow. 313 | Mind your words, they are important. 314 | Approachable is better than simple. 315 | Avoid administrative distraction. 316 | Avoid administrative distraction. 317 | Speak like a human. 318 | Responsive is better than fast. 319 | Approachable is better than simple. 320 | Anything added dilutes everything else. 321 | Encourage flow. 322 | Anything added dilutes everything else. 323 | Half measures are as bad as nothing at all. 324 | Favor focus over features. 325 | Design for failure. 326 | Avoid administrative distraction. 327 | Design for failure. 328 | It's not fully shipped until it's fast. 329 | Half measures are as bad as nothing at all. 330 | Practicality beats purity. 331 | Encourage flow. 332 | Favor focus over features. 333 | It's not fully shipped until it's fast. 334 | Half measures are as bad as nothing at all. 335 | Practicality beats purity. 336 | Anything added dilutes everything else. 337 | Design for failure. 338 | Non-blocking is better than blocking. 339 | Keep it logically awesome. 340 | Favor focus over features. 341 | Responsive is better than fast. 342 | Mind your words, they are important. 343 | Encourage flow. 344 | Avoid administrative distraction. 345 | Keep it logically awesome. 346 | Practicality beats purity. 347 | Half measures are as bad as nothing at all. 348 | Approachable is better than simple. 349 | It's not fully shipped until it's fast. 350 | Responsive is better than fast. 351 | Keep it logically awesome. 352 | Mind your words, they are important. 353 | Responsive is better than fast. 354 | Keep it logically awesome. 355 | Approachable is better than simple. 356 | Non-blocking is better than blocking. 357 | Design for failure. 358 | Half measures are as bad as nothing at all. 359 | Responsive is better than fast. 360 | Practicality beats purity. 361 | Keep it logically awesome. 362 | Approachable is better than simple. 363 | Half measures are as bad as nothing at all. 364 | Favor focus over features. 365 | Practicality beats purity. 366 | Encourage flow. 367 | Avoid administrative distraction. 368 | Approachable is better than simple. 369 | Anything added dilutes everything else. 370 | Mind your words, they are important. 371 | Keep it logically awesome. 372 | Avoid administrative distraction. 373 | Speak like a human. 374 | Approachable is better than simple. 375 | Non-blocking is better than blocking. 376 | Speak like a human. 377 | Mind your words, they are important. 378 | Design for failure. 379 | Anything added dilutes everything else. 380 | Practicality beats purity. 381 | It's not fully shipped until it's fast. 382 | Speak like a human. 383 | Anything added dilutes everything else. 384 | Avoid administrative distraction. 385 | Non-blocking is better than blocking. 386 | Avoid administrative distraction. 387 | Non-blocking is better than blocking. 388 | Avoid administrative distraction. 389 | Practicality beats purity. 390 | Speak like a human. 391 | Half measures are as bad as nothing at all. 392 | Anything added dilutes everything else. 393 | Speak like a human. 394 | Non-blocking is better than blocking. 395 | Speak like a human. 396 | Keep it logically awesome. 397 | Mind your words, they are important. 398 | Non-blocking is better than blocking. 399 | Mind your words, they are important. 400 | Avoid administrative distraction. 401 | Half measures are as bad as nothing at all. 402 | Design for failure. 403 | Design for failure. 404 | Favor focus over features. 405 | It's not fully shipped until it's fast. 406 | Avoid administrative distraction. 407 | Half measures are as bad as nothing at all. 408 | Favor focus over features. 409 | It's not fully shipped until it's fast. 410 | Speak like a human. 411 | Half measures are as bad as nothing at all. 412 | Encourage flow. 413 | Non-blocking is better than blocking. 414 | Favor focus over features. 415 | Anything added dilutes everything else. 416 | Keep it logically awesome. 417 | Mind your words, they are important. 418 | It's not fully shipped until it's fast. 419 | Half measures are as bad as nothing at all. 420 | Approachable is better than simple. 421 | Responsive is better than fast. 422 | Design for failure. 423 | Design for failure. 424 | Encourage flow. 425 | Avoid administrative distraction. 426 | Approachable is better than simple. 427 | Design for failure. 428 | Design for failure. 429 | Encourage flow. 430 | It's not fully shipped until it's fast. 431 | Half measures are as bad as nothing at all. 432 | Design for failure. 433 | Anything added dilutes everything else. 434 | Half measures are as bad as nothing at all. 435 | Half measures are as bad as nothing at all. 436 | Practicality beats purity. 437 | Non-blocking is better than blocking. 438 | Practicality beats purity. 439 | It's not fully shipped until it's fast. 440 | Mind your words, they are important. 441 | Non-blocking is better than blocking. 442 | It's not fully shipped until it's fast. 443 | Design for failure. 444 | Encourage flow. 445 | Non-blocking is better than blocking. 446 | Design for failure. 447 | Non-blocking is better than blocking. 448 | Non-blocking is better than blocking. 449 | Half measures are as bad as nothing at all. 450 | Practicality beats purity. 451 | Speak like a human. 452 | Practicality beats purity. 453 | Responsive is better than fast. 454 | Speak like a human. 455 | Non-blocking is better than blocking. 456 | Half measures are as bad as nothing at all. 457 | Anything added dilutes everything else. 458 | Design for failure. 459 | Half measures are as bad as nothing at all. 460 | Non-blocking is better than blocking. 461 | Favor focus over features. 462 | Non-blocking is better than blocking. 463 | Speak like a human. 464 | Encourage flow. 465 | Anything added dilutes everything else. 466 | Favor focus over features. 467 | It's not fully shipped until it's fast. 468 | Responsive is better than fast. 469 | Responsive is better than fast. 470 | Keep it logically awesome. 471 | Practicality beats purity. 472 | Practicality beats purity. 473 | Design for failure. 474 | Design for failure. 475 | Mind your words, they are important. 476 | Keep it logically awesome. 477 | Anything added dilutes everything else. 478 | Half measures are as bad as nothing at all. 479 | Approachable is better than simple. 480 | Practicality beats purity. 481 | Half measures are as bad as nothing at all. 482 | It's not fully shipped until it's fast. 483 | Mind your words, they are important. 484 | Responsive is better than fast. 485 | Mind your words, they are important. 486 | Speak like a human. 487 | Practicality beats purity. 488 | Approachable is better than simple. 489 | Practicality beats purity. 490 | Keep it logically awesome. 491 | Responsive is better than fast. 492 | Anything added dilutes everything else. 493 | Keep it logically awesome. 494 | Non-blocking is better than blocking. 495 | Favor focus over features. 496 | Anything added dilutes everything else. 497 | Non-blocking is better than blocking. 498 | Practicality beats purity. 499 | Practicality beats purity. 500 | Non-blocking is better than blocking. 501 | Design for failure. 502 | Speak like a human. 503 | Avoid administrative distraction. 504 | Design for failure. 505 | Avoid administrative distraction. 506 | Favor focus over features. 507 | Half measures are as bad as nothing at all. 508 | Design for failure. 509 | Half measures are as bad as nothing at all. 510 | Responsive is better than fast. 511 | Half measures are as bad as nothing at all. 512 | Design for failure. 513 | Responsive is better than fast. 514 | Keep it logically awesome. 515 | Half measures are as bad as nothing at all. 516 | Design for failure. 517 | Mind your words, they are important. 518 | Mind your words, they are important. 519 | Non-blocking is better than blocking. 520 | Speak like a human. 521 | Favor focus over features. 522 | Non-blocking is better than blocking. 523 | Design for failure. 524 | Non-blocking is better than blocking. 525 | Non-blocking is better than blocking. 526 | Design for failure. 527 | Non-blocking is better than blocking. 528 | Anything added dilutes everything else. 529 | Avoid administrative distraction. 530 | Responsive is better than fast. 531 | Half measures are as bad as nothing at all. 532 | It's not fully shipped until it's fast. 533 | Encourage flow. 534 | Favor focus over features. 535 | Half measures are as bad as nothing at all. 536 | Approachable is better than simple. 537 | Anything added dilutes everything else. 538 | It's not fully shipped until it's fast. 539 | Mind your words, they are important. 540 | Responsive is better than fast. 541 | Avoid administrative distraction. 542 | Speak like a human. 543 | Keep it logically awesome. 544 | Responsive is better than fast. 545 | Encourage flow. 546 | It's not fully shipped until it's fast. 547 | Design for failure. 548 | It's not fully shipped until it's fast. 549 | Practicality beats purity. 550 | Keep it logically awesome. 551 | Mind your words, they are important. 552 | Speak like a human. 553 | Favor focus over features. 554 | Design for failure. 555 | Encourage flow. 556 | It's not fully shipped until it's fast. 557 | Half measures are as bad as nothing at all. 558 | It's not fully shipped until it's fast. 559 | Encourage flow. 560 | Responsive is better than fast. 561 | Design for failure. 562 | Favor focus over features. 563 | Practicality beats purity. 564 | Anything added dilutes everything else. 565 | Mind your words, they are important. 566 | Design for failure. 567 | Responsive is better than fast. 568 | Avoid administrative distraction. 569 | Practicality beats purity. 570 | Responsive is better than fast. 571 | Keep it logically awesome. 572 | Non-blocking is better than blocking. 573 | Practicality beats purity. 574 | It's not fully shipped until it's fast. 575 | Half measures are as bad as nothing at all. 576 | Half measures are as bad as nothing at all. 577 | Responsive is better than fast. 578 | Half measures are as bad as nothing at all. 579 | Half measures are as bad as nothing at all. 580 | Practicality beats purity. 581 | Avoid administrative distraction. 582 | Mind your words, they are important. 583 | Favor focus over features. 584 | Half measures are as bad as nothing at all. 585 | It's not fully shipped until it's fast. 586 | Design for failure. 587 | Avoid administrative distraction. 588 | Half measures are as bad as nothing at all. 589 | Speak like a human. 590 | Non-blocking is better than blocking. 591 | Design for failure. 592 | Anything added dilutes everything else. 593 | Encourage flow. 594 | Keep it logically awesome. 595 | Speak like a human. 596 | It's not fully shipped until it's fast. 597 | Keep it logically awesome. 598 | Non-blocking is better than blocking. 599 | Anything added dilutes everything else. 600 | Practicality beats purity. 601 | Anything added dilutes everything else. 602 | Mind your words, they are important. 603 | Half measures are as bad as nothing at all. 604 | Mind your words, they are important. 605 | Avoid administrative distraction. 606 | Mind your words, they are important. 607 | Speak like a human. 608 | Non-blocking is better than blocking. 609 | Half measures are as bad as nothing at all. 610 | Favor focus over features. 611 | Responsive is better than fast. 612 | Responsive is better than fast. 613 | Mind your words, they are important. 614 | Avoid administrative distraction. 615 | Design for failure. 616 | Speak like a human. 617 | Favor focus over features. 618 | Encourage flow. 619 | Encourage flow. 620 | Avoid administrative distraction. 621 | Non-blocking is better than blocking. 622 | Mind your words, they are important. 623 | Encourage flow. 624 | Half measures are as bad as nothing at all. 625 | Approachable is better than simple. 626 | Practicality beats purity. 627 | Keep it logically awesome. 628 | Responsive is better than fast. 629 | Favor focus over features. 630 | It's not fully shipped until it's fast. 631 | Favor focus over features. 632 | Speak like a human. 633 | Non-blocking is better than blocking. 634 | Anything added dilutes everything else. 635 | Non-blocking is better than blocking. 636 | Approachable is better than simple. 637 | Avoid administrative distraction. 638 | Avoid administrative distraction. 639 | Responsive is better than fast. 640 | Encourage flow. 641 | Keep it logically awesome. 642 | Responsive is better than fast. 643 | Responsive is better than fast. 644 | Responsive is better than fast. 645 | Mind your words, they are important. 646 | Approachable is better than simple. 647 | Practicality beats purity. 648 | Anything added dilutes everything else. 649 | Keep it logically awesome. 650 | Practicality beats purity. 651 | Responsive is better than fast. 652 | Approachable is better than simple. 653 | Anything added dilutes everything else. 654 | Keep it logically awesome. 655 | Encourage flow. 656 | Practicality beats purity. 657 | Anything added dilutes everything else. 658 | It's not fully shipped until it's fast. 659 | Speak like a human. 660 | It's not fully shipped until it's fast. 661 | Anything added dilutes everything else. 662 | It's not fully shipped until it's fast. 663 | Approachable is better than simple. 664 | Mind your words, they are important. 665 | Half measures are as bad as nothing at all. 666 | Non-blocking is better than blocking. 667 | Speak like a human. 668 | Non-blocking is better than blocking. 669 | Practicality beats purity. 670 | Favor focus over features. 671 | Favor focus over features. 672 | Anything added dilutes everything else. 673 | Half measures are as bad as nothing at all. 674 | Favor focus over features. 675 | It's not fully shipped until it's fast. 676 | Avoid administrative distraction. 677 | It's not fully shipped until it's fast. 678 | Half measures are as bad as nothing at all. 679 | Keep it logically awesome. 680 | Responsive is better than fast. 681 | Practicality beats purity. 682 | Favor focus over features. 683 | Half measures are as bad as nothing at all. 684 | Responsive is better than fast. 685 | Approachable is better than simple. 686 | Avoid administrative distraction. 687 | It's not fully shipped until it's fast. 688 | Anything added dilutes everything else. 689 | Favor focus over features. 690 | Design for failure. 691 | Mind your words, they are important. 692 | Favor focus over features. 693 | Half measures are as bad as nothing at all. 694 | It's not fully shipped until it's fast. 695 | Speak like a human. 696 | Favor focus over features. 697 | It's not fully shipped until it's fast. 698 | Non-blocking is better than blocking. 699 | Half measures are as bad as nothing at all. 700 | Half measures are as bad as nothing at all. 701 | Avoid administrative distraction. 702 | Anything added dilutes everything else. 703 | Keep it logically awesome. 704 | Practicality beats purity. 705 | Favor focus over features. 706 | Avoid administrative distraction. 707 | Non-blocking is better than blocking. 708 | Anything added dilutes everything else. 709 | Responsive is better than fast. 710 | Anything added dilutes everything else. 711 | Practicality beats purity. 712 | Non-blocking is better than blocking. 713 | Anything added dilutes everything else. 714 | Anything added dilutes everything else. 715 | Responsive is better than fast. 716 | Design for failure. 717 | Mind your words, they are important. 718 | Approachable is better than simple. 719 | Encourage flow. 720 | Non-blocking is better than blocking. 721 | Non-blocking is better than blocking. 722 | It's not fully shipped until it's fast. 723 | Mind your words, they are important. 724 | Encourage flow. 725 | It's not fully shipped until it's fast. 726 | Responsive is better than fast. 727 | Non-blocking is better than blocking. 728 | Encourage flow. 729 | Mind your words, they are important. 730 | Practicality beats purity. 731 | Anything added dilutes everything else. 732 | Non-blocking is better than blocking. 733 | Favor focus over features. 734 | Mind your words, they are important. 735 | Half measures are as bad as nothing at all. 736 | Non-blocking is better than blocking. 737 | Avoid administrative distraction. 738 | Practicality beats purity. 739 | Speak like a human. 740 | Keep it logically awesome. 741 | It's not fully shipped until it's fast. 742 | Non-blocking is better than blocking. 743 | Anything added dilutes everything else. 744 | Favor focus over features. 745 | Approachable is better than simple. 746 | Non-blocking is better than blocking. 747 | Encourage flow. 748 | Avoid administrative distraction. 749 | Half measures are as bad as nothing at all. 750 | It's not fully shipped until it's fast. 751 | Mind your words, they are important. 752 | Keep it logically awesome. 753 | Favor focus over features. 754 | Avoid administrative distraction. 755 | Half measures are as bad as nothing at all. 756 | It's not fully shipped until it's fast. 757 | Responsive is better than fast. 758 | Keep it logically awesome. 759 | Encourage flow. 760 | Encourage flow. 761 | Avoid administrative distraction. 762 | Half measures are as bad as nothing at all. 763 | Responsive is better than fast. 764 | Responsive is better than fast. 765 | Avoid administrative distraction. 766 | Responsive is better than fast. 767 | Practicality beats purity. 768 | Keep it logically awesome. 769 | Approachable is better than simple. 770 | Keep it logically awesome. 771 | It's not fully shipped until it's fast. 772 | Keep it logically awesome. 773 | Approachable is better than simple. 774 | Responsive is better than fast. 775 | Keep it logically awesome. 776 | Keep it logically awesome. 777 | Encourage flow. 778 | Approachable is better than simple. 779 | Encourage flow. 780 | Non-blocking is better than blocking. 781 | Practicality beats purity. 782 | Encourage flow. 783 | Mind your words, they are important. 784 | Responsive is better than fast. 785 | It's not fully shipped until it's fast. 786 | Half measures are as bad as nothing at all. 787 | Non-blocking is better than blocking. 788 | Encourage flow. 789 | Design for failure. 790 | Favor focus over features. 791 | It's not fully shipped until it's fast. 792 | It's not fully shipped until it's fast. 793 | Speak like a human. 794 | Speak like a human. 795 | Speak like a human. 796 | Favor focus over features. 797 | Encourage flow. 798 | Speak like a human. 799 | Mind your words, they are important. 800 | Responsive is better than fast. 801 | Practicality beats purity. 802 | Mind your words, they are important. 803 | Non-blocking is better than blocking. 804 | It's not fully shipped until it's fast. 805 | Mind your words, they are important. 806 | Avoid administrative distraction. 807 | Half measures are as bad as nothing at all. 808 | Mind your words, they are important. 809 | Anything added dilutes everything else. 810 | Favor focus over features. 811 | Responsive is better than fast. 812 | Speak like a human. 813 | Mind your words, they are important. 814 | Favor focus over features. 815 | Avoid administrative distraction. 816 | Responsive is better than fast. 817 | Non-blocking is better than blocking. 818 | Design for failure. 819 | Non-blocking is better than blocking. 820 | Practicality beats purity. 821 | Favor focus over features. 822 | Design for failure. 823 | Design for failure. 824 | Favor focus over features. 825 | Responsive is better than fast. 826 | It's not fully shipped until it's fast. 827 | Design for failure. 828 | Half measures are as bad as nothing at all. 829 | Avoid administrative distraction. 830 | Non-blocking is better than blocking. 831 | Favor focus over features. 832 | Practicality beats purity. 833 | Mind your words, they are important. 834 | Anything added dilutes everything else. 835 | Favor focus over features. 836 | Encourage flow. 837 | Speak like a human. 838 | Favor focus over features. 839 | Half measures are as bad as nothing at all. 840 | Approachable is better than simple. 841 | Approachable is better than simple. 842 | Speak like a human. 843 | Design for failure. 844 | Speak like a human. 845 | Half measures are as bad as nothing at all. 846 | Non-blocking is better than blocking. 847 | Design for failure. 848 | Anything added dilutes everything else. 849 | Favor focus over features. 850 | Design for failure. 851 | Speak like a human. 852 | Half measures are as bad as nothing at all. 853 | Non-blocking is better than blocking. 854 | Half measures are as bad as nothing at all. 855 | Half measures are as bad as nothing at all. 856 | Non-blocking is better than blocking. 857 | Responsive is better than fast. 858 | Practicality beats purity. 859 | Approachable is better than simple. 860 | Mind your words, they are important. 861 | Speak like a human. 862 | Approachable is better than simple. 863 | Speak like a human. 864 | It's not fully shipped until it's fast. 865 | Half measures are as bad as nothing at all. 866 | Mind your words, they are important. 867 | Responsive is better than fast. 868 | Anything added dilutes everything else. 869 | Mind your words, they are important. 870 | Practicality beats purity. 871 | Favor focus over features. 872 | Design for failure. 873 | Design for failure. 874 | It's not fully shipped until it's fast. 875 | Practicality beats purity. 876 | Avoid administrative distraction. 877 | Half measures are as bad as nothing at all. 878 | Favor focus over features. 879 | Approachable is better than simple. 880 | Anything added dilutes everything else. 881 | Keep it logically awesome. 882 | Design for failure. 883 | Speak like a human. 884 | Keep it logically awesome. 885 | Mind your words, they are important. 886 | Design for failure. 887 | Approachable is better than simple. 888 | Avoid administrative distraction. 889 | It's not fully shipped until it's fast. 890 | Keep it logically awesome. 891 | Practicality beats purity. 892 | Mind your words, they are important. 893 | Encourage flow. 894 | Favor focus over features. 895 | Responsive is better than fast. 896 | Encourage flow. 897 | Practicality beats purity. 898 | Encourage flow. 899 | Avoid administrative distraction. 900 | Approachable is better than simple. 901 | Mind your words, they are important. 902 | Design for failure. 903 | Anything added dilutes everything else. 904 | Keep it logically awesome. 905 | Practicality beats purity. 906 | Speak like a human. 907 | Mind your words, they are important. 908 | Favor focus over features. 909 | Avoid administrative distraction. 910 | Non-blocking is better than blocking. 911 | It's not fully shipped until it's fast. 912 | Encourage flow. 913 | Favor focus over features. 914 | Non-blocking is better than blocking. 915 | Practicality beats purity. 916 | Practicality beats purity. 917 | Encourage flow. 918 | Non-blocking is better than blocking. 919 | Avoid administrative distraction. 920 | Responsive is better than fast. 921 | Anything added dilutes everything else. 922 | Responsive is better than fast. 923 | Keep it logically awesome. 924 | Speak like a human. 925 | Mind your words, they are important. 926 | Responsive is better than fast. 927 | Non-blocking is better than blocking. 928 | Keep it logically awesome. 929 | Anything added dilutes everything else. 930 | Anything added dilutes everything else. 931 | Anything added dilutes everything else. 932 | Design for failure. 933 | Speak like a human. 934 | Responsive is better than fast. 935 | It's not fully shipped until it's fast. 936 | Speak like a human. 937 | Encourage flow. 938 | Keep it logically awesome. 939 | Keep it logically awesome. 940 | Practicality beats purity. 941 | Anything added dilutes everything else. 942 | Mind your words, they are important. 943 | Practicality beats purity. 944 | Anything added dilutes everything else. 945 | Keep it logically awesome. 946 | Non-blocking is better than blocking. 947 | Keep it logically awesome. 948 | Mind your words, they are important. 949 | It's not fully shipped until it's fast. 950 | Approachable is better than simple. 951 | Favor focus over features. 952 | Keep it logically awesome. 953 | Approachable is better than simple. 954 | Favor focus over features. 955 | Practicality beats purity. 956 | Favor focus over features. 957 | Approachable is better than simple. 958 | Responsive is better than fast. 959 | Anything added dilutes everything else. 960 | Anything added dilutes everything else. 961 | It's not fully shipped until it's fast. 962 | Non-blocking is better than blocking. 963 | It's not fully shipped until it's fast. 964 | Encourage flow. 965 | Avoid administrative distraction. 966 | Responsive is better than fast. 967 | Half measures are as bad as nothing at all. 968 | Mind your words, they are important. 969 | Design for failure. 970 | Non-blocking is better than blocking. 971 | Anything added dilutes everything else. 972 | Speak like a human. 973 | Design for failure. 974 | Non-blocking is better than blocking. 975 | Non-blocking is better than blocking. 976 | Mind your words, they are important. 977 | Keep it logically awesome. 978 | Non-blocking is better than blocking. 979 | Design for failure. 980 | Practicality beats purity. 981 | Practicality beats purity. 982 | Encourage flow. 983 | Responsive is better than fast. 984 | Design for failure. 985 | It's not fully shipped until it's fast. 986 | Avoid administrative distraction. 987 | Responsive is better than fast. 988 | Half measures are as bad as nothing at all. 989 | Avoid administrative distraction. 990 | Non-blocking is better than blocking. 991 | It's not fully shipped until it's fast. 992 | Non-blocking is better than blocking. 993 | Anything added dilutes everything else. 994 | Avoid administrative distraction. 995 | Design for failure. 996 | Half measures are as bad as nothing at all. 997 | Mind your words, they are important. 998 | Responsive is better than fast. 999 | Responsive is better than fast. 1000 | Approachable is better than simple. 1001 | Keep it logically awesome. 1002 | Non-blocking is better than blocking. 1003 | Keep it logically awesome. 1004 | Responsive is better than fast. 1005 | Non-blocking is better than blocking. 1006 | Approachable is better than simple. 1007 | Design for failure. 1008 | Design for failure. 1009 | Responsive is better than fast. 1010 | Design for failure. 1011 | Avoid administrative distraction. 1012 | Anything added dilutes everything else. 1013 | Half measures are as bad as nothing at all. 1014 | Speak like a human. 1015 | Encourage flow. 1016 | Avoid administrative distraction. 1017 | Approachable is better than simple. 1018 | Speak like a human. 1019 | Half measures are as bad as nothing at all. 1020 | Mind your words, they are important. 1021 | Design for failure. 1022 | Design for failure. 1023 | Speak like a human. 1024 | Approachable is better than simple. 1025 | Half measures are as bad as nothing at all. 1026 | Keep it logically awesome. 1027 | Approachable is better than simple. 1028 | Practicality beats purity. 1029 | Avoid administrative distraction. 1030 | It's not fully shipped until it's fast. 1031 | Encourage flow. 1032 | Half measures are as bad as nothing at all. 1033 | Approachable is better than simple. 1034 | Non-blocking is better than blocking. 1035 | Responsive is better than fast. 1036 | Mind your words, they are important. 1037 | Encourage flow. 1038 | Practicality beats purity. 1039 | Speak like a human. 1040 | Keep it logically awesome. 1041 | Practicality beats purity. 1042 | Encourage flow. 1043 | Design for failure. 1044 | Practicality beats purity. 1045 | Responsive is better than fast. 1046 | Speak like a human. 1047 | Design for failure. 1048 | Keep it logically awesome. 1049 | It's not fully shipped until it's fast. 1050 | Practicality beats purity. 1051 | Mind your words, they are important. 1052 | It's not fully shipped until it's fast. 1053 | Responsive is better than fast. 1054 | It's not fully shipped until it's fast. 1055 | Half measures are as bad as nothing at all. 1056 | Half measures are as bad as nothing at all. 1057 | Encourage flow. 1058 | Approachable is better than simple. 1059 | Half measures are as bad as nothing at all. 1060 | Speak like a human. 1061 | Half measures are as bad as nothing at all. 1062 | Encourage flow. 1063 | Avoid administrative distraction. 1064 | Mind your words, they are important. 1065 | Practicality beats purity. 1066 | Favor focus over features. 1067 | Speak like a human. 1068 | Speak like a human. 1069 | Non-blocking is better than blocking. 1070 | Responsive is better than fast. 1071 | Mind your words, they are important. 1072 | Practicality beats purity. 1073 | Design for failure. 1074 | Avoid administrative distraction. 1075 | Speak like a human. 1076 | Speak like a human. 1077 | Half measures are as bad as nothing at all. 1078 | Half measures are as bad as nothing at all. 1079 | Anything added dilutes everything else. 1080 | Keep it logically awesome. 1081 | Encourage flow. 1082 | Approachable is better than simple. 1083 | Design for failure. 1084 | Favor focus over features. 1085 | Design for failure. 1086 | Anything added dilutes everything else. 1087 | Anything added dilutes everything else. 1088 | Keep it logically awesome. 1089 | It's not fully shipped until it's fast. 1090 | Approachable is better than simple. 1091 | Practicality beats purity. 1092 | Favor focus over features. 1093 | Approachable is better than simple. 1094 | Responsive is better than fast. 1095 | Half measures are as bad as nothing at all. 1096 | Favor focus over features. 1097 | Approachable is better than simple. 1098 | Avoid administrative distraction. 1099 | Design for failure. 1100 | Speak like a human. 1101 | Design for failure. 1102 | Responsive is better than fast. 1103 | Speak like a human. 1104 | Half measures are as bad as nothing at all. 1105 | Half measures are as bad as nothing at all. 1106 | Non-blocking is better than blocking. 1107 | Half measures are as bad as nothing at all. 1108 | Avoid administrative distraction. 1109 | It's not fully shipped until it's fast. 1110 | Encourage flow. 1111 | Responsive is better than fast. 1112 | Mind your words, they are important. 1113 | Speak like a human. 1114 | Keep it logically awesome. 1115 | Responsive is better than fast. 1116 | Approachable is better than simple. 1117 | Encourage flow. 1118 | Design for failure. 1119 | Half measures are as bad as nothing at all. 1120 | Keep it logically awesome. 1121 | Practicality beats purity. 1122 | Encourage flow. 1123 | It's not fully shipped until it's fast. 1124 | Responsive is better than fast. 1125 | Design for failure. 1126 | Speak like a human. 1127 | Responsive is better than fast. 1128 | Speak like a human. 1129 | Responsive is better than fast. 1130 | Practicality beats purity. 1131 | Avoid administrative distraction. 1132 | Favor focus over features. 1133 | Responsive is better than fast. 1134 | Mind your words, they are important. 1135 | Mind your words, they are important. 1136 | Approachable is better than simple. 1137 | Encourage flow. 1138 | Favor focus over features. 1139 | Avoid administrative distraction. 1140 | Mind your words, they are important. 1141 | Mind your words, they are important. 1142 | Half measures are as bad as nothing at all. 1143 | Responsive is better than fast. 1144 | Keep it logically awesome. 1145 | Non-blocking is better than blocking. 1146 | It's not fully shipped until it's fast. 1147 | Anything added dilutes everything else. 1148 | Mind your words, they are important. 1149 | It's not fully shipped until it's fast. 1150 | Non-blocking is better than blocking. 1151 | Avoid administrative distraction. 1152 | Approachable is better than simple. 1153 | Mind your words, they are important. 1154 | Favor focus over features. 1155 | Encourage flow. 1156 | Practicality beats purity. 1157 | It's not fully shipped until it's fast. 1158 | Practicality beats purity. 1159 | Design for failure. 1160 | Speak like a human. 1161 | Practicality beats purity. 1162 | Responsive is better than fast. 1163 | Anything added dilutes everything else. 1164 | Practicality beats purity. 1165 | It's not fully shipped until it's fast. 1166 | Practicality beats purity. 1167 | Speak like a human. 1168 | Encourage flow. 1169 | Favor focus over features. 1170 | Half measures are as bad as nothing at all. 1171 | Design for failure. 1172 | Mind your words, they are important. 1173 | Responsive is better than fast. 1174 | Avoid administrative distraction. 1175 | Responsive is better than fast. 1176 | Half measures are as bad as nothing at all. 1177 | Non-blocking is better than blocking. 1178 | Design for failure. 1179 | Favor focus over features. 1180 | Encourage flow. 1181 | Practicality beats purity. 1182 | Design for failure. 1183 | Responsive is better than fast. 1184 | Mind your words, they are important. 1185 | Design for failure. 1186 | Half measures are as bad as nothing at all. 1187 | Encourage flow. 1188 | Mind your words, they are important. 1189 | Design for failure. 1190 | Favor focus over features. 1191 | Favor focus over features. 1192 | Mind your words, they are important. 1193 | Half measures are as bad as nothing at all. 1194 | Non-blocking is better than blocking. 1195 | Favor focus over features. 1196 | Design for failure. 1197 | Mind your words, they are important. 1198 | Anything added dilutes everything else. 1199 | Speak like a human. 1200 | Favor focus over features. 1201 | Speak like a human. 1202 | Half measures are as bad as nothing at all. 1203 | It's not fully shipped until it's fast. 1204 | Mind your words, they are important. 1205 | Encourage flow. 1206 | Practicality beats purity. 1207 | Anything added dilutes everything else. 1208 | Responsive is better than fast. 1209 | Approachable is better than simple. 1210 | Non-blocking is better than blocking. 1211 | Design for failure. 1212 | Design for failure. 1213 | Encourage flow. 1214 | Responsive is better than fast. 1215 | Avoid administrative distraction. 1216 | Design for failure. 1217 | It's not fully shipped until it's fast. 1218 | Practicality beats purity. 1219 | Design for failure. 1220 | Responsive is better than fast. 1221 | Speak like a human. 1222 | Speak like a human. 1223 | Keep it logically awesome. 1224 | Keep it logically awesome. 1225 | Non-blocking is better than blocking. 1226 | Non-blocking is better than blocking. 1227 | Avoid administrative distraction. 1228 | Anything added dilutes everything else. 1229 | Approachable is better than simple. 1230 | Speak like a human. 1231 | Half measures are as bad as nothing at all. 1232 | Anything added dilutes everything else. 1233 | Approachable is better than simple. 1234 | Speak like a human. 1235 | Encourage flow. 1236 | Approachable is better than simple. 1237 | Favor focus over features. 1238 | Approachable is better than simple. 1239 | Speak like a human. 1240 | Mind your words, they are important. 1241 | Favor focus over features. 1242 | Responsive is better than fast. 1243 | Mind your words, they are important. 1244 | Speak like a human. 1245 | Responsive is better than fast. 1246 | Keep it logically awesome. 1247 | Speak like a human. 1248 | Favor focus over features. 1249 | Encourage flow. 1250 | Approachable is better than simple. 1251 | Practicality beats purity. 1252 | Mind your words, they are important. 1253 | Anything added dilutes everything else. 1254 | Half measures are as bad as nothing at all. 1255 | Design for failure. 1256 | Mind your words, they are important. 1257 | Design for failure. 1258 | Favor focus over features. 1259 | Non-blocking is better than blocking. 1260 | It's not fully shipped until it's fast. 1261 | Non-blocking is better than blocking. 1262 | Keep it logically awesome. 1263 | Non-blocking is better than blocking. 1264 | Responsive is better than fast. 1265 | Practicality beats purity. 1266 | Mind your words, they are important. 1267 | Design for failure. 1268 | Speak like a human. 1269 | Mind your words, they are important. 1270 | Responsive is better than fast. 1271 | Approachable is better than simple. 1272 | Responsive is better than fast. 1273 | Practicality beats purity. 1274 | Non-blocking is better than blocking. 1275 | Practicality beats purity. 1276 | Keep it logically awesome. 1277 | It's not fully shipped until it's fast. 1278 | Approachable is better than simple. 1279 | Design for failure. 1280 | Non-blocking is better than blocking. 1281 | Responsive is better than fast. 1282 | Encourage flow. 1283 | Favor focus over features. 1284 | Responsive is better than fast. 1285 | Non-blocking is better than blocking. 1286 | Design for failure. 1287 | Mind your words, they are important. 1288 | It's not fully shipped until it's fast. 1289 | Anything added dilutes everything else. 1290 | Avoid administrative distraction. 1291 | Mind your words, they are important. 1292 | Anything added dilutes everything else. 1293 | It's not fully shipped until it's fast. 1294 | Practicality beats purity. 1295 | Approachable is better than simple. 1296 | Half measures are as bad as nothing at all. 1297 | Favor focus over features. 1298 | Keep it logically awesome. 1299 | Practicality beats purity. 1300 | Anything added dilutes everything else. 1301 | Practicality beats purity. 1302 | Favor focus over features. 1303 | Encourage flow. 1304 | Anything added dilutes everything else. 1305 | Design for failure. 1306 | Avoid administrative distraction. 1307 | Encourage flow. 1308 | Responsive is better than fast. 1309 | Speak like a human. 1310 | Design for failure. 1311 | Favor focus over features. 1312 | Mind your words, they are important. 1313 | Responsive is better than fast. 1314 | Keep it logically awesome. 1315 | Favor focus over features. 1316 | Anything added dilutes everything else. 1317 | Design for failure. 1318 | Responsive is better than fast. 1319 | Practicality beats purity. 1320 | Half measures are as bad as nothing at all. 1321 | Design for failure. 1322 | Encourage flow. 1323 | Practicality beats purity. 1324 | Approachable is better than simple. 1325 | Responsive is better than fast. 1326 | Speak like a human. 1327 | Avoid administrative distraction. 1328 | Encourage flow. 1329 | Anything added dilutes everything else. 1330 | It's not fully shipped until it's fast. 1331 | Favor focus over features. 1332 | It's not fully shipped until it's fast. 1333 | Responsive is better than fast. 1334 | Practicality beats purity. 1335 | Design for failure. 1336 | Practicality beats purity. 1337 | Encourage flow. 1338 | Approachable is better than simple. 1339 | Encourage flow. 1340 | Half measures are as bad as nothing at all. 1341 | Avoid administrative distraction. 1342 | Practicality beats purity. 1343 | Approachable is better than simple. 1344 | Anything added dilutes everything else. 1345 | Anything added dilutes everything else. 1346 | Speak like a human. 1347 | It's not fully shipped until it's fast. 1348 | Anything added dilutes everything else. 1349 | Practicality beats purity. 1350 | Responsive is better than fast. 1351 | Avoid administrative distraction. 1352 | Anything added dilutes everything else. 1353 | Responsive is better than fast. 1354 | Non-blocking is better than blocking. 1355 | It's not fully shipped until it's fast. 1356 | Half measures are as bad as nothing at all. 1357 | Encourage flow. 1358 | Non-blocking is better than blocking. 1359 | Speak like a human. 1360 | Anything added dilutes everything else. 1361 | Avoid administrative distraction. 1362 | Anything added dilutes everything else. 1363 | Non-blocking is better than blocking. 1364 | Practicality beats purity. 1365 | Approachable is better than simple. 1366 | Half measures are as bad as nothing at all. 1367 | Practicality beats purity. 1368 | Responsive is better than fast. 1369 | Mind your words, they are important. 1370 | Design for failure. 1371 | Non-blocking is better than blocking. 1372 | Encourage flow. 1373 | Practicality beats purity. 1374 | Anything added dilutes everything else. 1375 | Encourage flow. 1376 | Non-blocking is better than blocking. 1377 | Keep it logically awesome. 1378 | Non-blocking is better than blocking. 1379 | Keep it logically awesome. 1380 | Responsive is better than fast. 1381 | Avoid administrative distraction. 1382 | Anything added dilutes everything else. 1383 | Approachable is better than simple. 1384 | Keep it logically awesome. 1385 | Half measures are as bad as nothing at all. 1386 | Avoid administrative distraction. 1387 | Design for failure. 1388 | Half measures are as bad as nothing at all. 1389 | It's not fully shipped until it's fast. 1390 | It's not fully shipped until it's fast. 1391 | Non-blocking is better than blocking. 1392 | Approachable is better than simple. 1393 | Avoid administrative distraction. 1394 | Encourage flow. 1395 | Practicality beats purity. 1396 | Half measures are as bad as nothing at all. 1397 | Anything added dilutes everything else. 1398 | Encourage flow. 1399 | Half measures are as bad as nothing at all. 1400 | Responsive is better than fast. 1401 | Non-blocking is better than blocking. 1402 | Responsive is better than fast. 1403 | Non-blocking is better than blocking. 1404 | Mind your words, they are important. 1405 | Favor focus over features. 1406 | Responsive is better than fast. 1407 | Speak like a human. 1408 | Keep it logically awesome. 1409 | Speak like a human. 1410 | Design for failure. 1411 | Non-blocking is better than blocking. 1412 | Approachable is better than simple. 1413 | Practicality beats purity. 1414 | Design for failure. 1415 | Avoid administrative distraction. 1416 | Avoid administrative distraction. 1417 | Approachable is better than simple. 1418 | It's not fully shipped until it's fast. 1419 | Encourage flow. 1420 | Responsive is better than fast. 1421 | Non-blocking is better than blocking. 1422 | Favor focus over features. 1423 | Favor focus over features. 1424 | Approachable is better than simple. 1425 | Anything added dilutes everything else. 1426 | Practicality beats purity. 1427 | Approachable is better than simple. 1428 | Responsive is better than fast. 1429 | Responsive is better than fast. 1430 | Practicality beats purity. 1431 | Favor focus over features. 1432 | Encourage flow. 1433 | Avoid administrative distraction. 1434 | Approachable is better than simple. 1435 | Practicality beats purity. 1436 | It's not fully shipped until it's fast. 1437 | Favor focus over features. 1438 | Keep it logically awesome. 1439 | Practicality beats purity. 1440 | Speak like a human. 1441 | Encourage flow. 1442 | Approachable is better than simple. 1443 | Approachable is better than simple. 1444 | Responsive is better than fast. 1445 | Responsive is better than fast. 1446 | Responsive is better than fast. 1447 | Non-blocking is better than blocking. 1448 | Design for failure. 1449 | Speak like a human. 1450 | Avoid administrative distraction. 1451 | Practicality beats purity. 1452 | Keep it logically awesome. 1453 | Responsive is better than fast. 1454 | Avoid administrative distraction. 1455 | Keep it logically awesome. 1456 | Avoid administrative distraction. 1457 | Mind your words, they are important. 1458 | Encourage flow. 1459 | Design for failure. 1460 | Favor focus over features. 1461 | Speak like a human. 1462 | Mind your words, they are important. 1463 | Speak like a human. 1464 | Encourage flow. 1465 | Favor focus over features. 1466 | Responsive is better than fast. 1467 | Responsive is better than fast. 1468 | Half measures are as bad as nothing at all. 1469 | Responsive is better than fast. 1470 | Anything added dilutes everything else. 1471 | Non-blocking is better than blocking. 1472 | Keep it logically awesome. 1473 | Non-blocking is better than blocking. 1474 | Design for failure. 1475 | Anything added dilutes everything else. 1476 | Half measures are as bad as nothing at all. 1477 | Practicality beats purity. 1478 | Approachable is better than simple. 1479 | Responsive is better than fast. 1480 | Design for failure. 1481 | Non-blocking is better than blocking. 1482 | It's not fully shipped until it's fast. 1483 | Half measures are as bad as nothing at all. 1484 | Responsive is better than fast. 1485 | Encourage flow. 1486 | Speak like a human. 1487 | Design for failure. 1488 | Keep it logically awesome. 1489 | Approachable is better than simple. 1490 | Favor focus over features. 1491 | It's not fully shipped until it's fast. 1492 | Mind your words, they are important. 1493 | Responsive is better than fast. 1494 | It's not fully shipped until it's fast. 1495 | Practicality beats purity. 1496 | Mind your words, they are important. 1497 | Encourage flow. 1498 | Keep it logically awesome. 1499 | Practicality beats purity. 1500 | Speak like a human. 1501 | Encourage flow. 1502 | Encourage flow. 1503 | Responsive is better than fast. 1504 | Encourage flow. 1505 | Mind your words, they are important. 1506 | It's not fully shipped until it's fast. 1507 | Half measures are as bad as nothing at all. 1508 | Responsive is better than fast. 1509 | Approachable is better than simple. 1510 | It's not fully shipped until it's fast. 1511 | Mind your words, they are important. 1512 | Keep it logically awesome. 1513 | Design for failure. 1514 | Approachable is better than simple. 1515 | Keep it logically awesome. 1516 | Approachable is better than simple. 1517 | Half measures are as bad as nothing at all. 1518 | Keep it logically awesome. 1519 | Mind your words, they are important. 1520 | Design for failure. 1521 | Practicality beats purity. 1522 | Responsive is better than fast. 1523 | Practicality beats purity. 1524 | Practicality beats purity. 1525 | Half measures are as bad as nothing at all. 1526 | It's not fully shipped until it's fast. 1527 | Practicality beats purity. 1528 | It's not fully shipped until it's fast. 1529 | Design for failure. 1530 | Approachable is better than simple. 1531 | Approachable is better than simple. 1532 | Design for failure. 1533 | Keep it logically awesome. 1534 | Keep it logically awesome. 1535 | Speak like a human. 1536 | Keep it logically awesome. 1537 | Keep it logically awesome. 1538 | Approachable is better than simple. 1539 | Keep it logically awesome. 1540 | Design for failure. 1541 | Avoid administrative distraction. 1542 | Encourage flow. 1543 | Mind your words, they are important. 1544 | It's not fully shipped until it's fast. 1545 | Half measures are as bad as nothing at all. 1546 | Mind your words, they are important. 1547 | Keep it logically awesome. 1548 | Encourage flow. 1549 | Practicality beats purity. 1550 | Avoid administrative distraction. 1551 | Design for failure. 1552 | Practicality beats purity. 1553 | Speak like a human. 1554 | It's not fully shipped until it's fast. 1555 | Favor focus over features. 1556 | Half measures are as bad as nothing at all. 1557 | Favor focus over features. 1558 | Practicality beats purity. 1559 | Anything added dilutes everything else. 1560 | Design for failure. 1561 | Responsive is better than fast. 1562 | Anything added dilutes everything else. 1563 | Speak like a human. 1564 | Avoid administrative distraction. 1565 | Keep it logically awesome. 1566 | Design for failure. 1567 | Non-blocking is better than blocking. 1568 | Non-blocking is better than blocking. 1569 | Mind your words, they are important. 1570 | It's not fully shipped until it's fast. 1571 | Favor focus over features. 1572 | Practicality beats purity. 1573 | Design for failure. 1574 | Responsive is better than fast. 1575 | Encourage flow. 1576 | Keep it logically awesome. 1577 | Design for failure. 1578 | Anything added dilutes everything else. 1579 | Practicality beats purity. 1580 | Speak like a human. 1581 | Avoid administrative distraction. 1582 | Approachable is better than simple. 1583 | Favor focus over features. 1584 | Approachable is better than simple. 1585 | Keep it logically awesome. 1586 | Favor focus over features. 1587 | Keep it logically awesome. 1588 | Design for failure. 1589 | Mind your words, they are important. 1590 | Avoid administrative distraction. 1591 | Anything added dilutes everything else. 1592 | Design for failure. 1593 | Avoid administrative distraction. 1594 | Encourage flow. 1595 | Speak like a human. 1596 | Mind your words, they are important. 1597 | Anything added dilutes everything else. 1598 | Practicality beats purity. 1599 | Design for failure. 1600 | Speak like a human. 1601 | Practicality beats purity. 1602 | Encourage flow. 1603 | Approachable is better than simple. 1604 | Design for failure. 1605 | Encourage flow. 1606 | Responsive is better than fast. 1607 | Speak like a human. 1608 | Non-blocking is better than blocking. 1609 | Half measures are as bad as nothing at all. 1610 | It's not fully shipped until it's fast. 1611 | Avoid administrative distraction. 1612 | Anything added dilutes everything else. 1613 | It's not fully shipped until it's fast. 1614 | Encourage flow. 1615 | It's not fully shipped until it's fast. 1616 | Favor focus over features. 1617 | Avoid administrative distraction. 1618 | Practicality beats purity. 1619 | Approachable is better than simple. 1620 | Half measures are as bad as nothing at all. 1621 | Practicality beats purity. 1622 | Responsive is better than fast. 1623 | Approachable is better than simple. 1624 | Approachable is better than simple. 1625 | Non-blocking is better than blocking. 1626 | Mind your words, they are important. 1627 | It's not fully shipped until it's fast. 1628 | Responsive is better than fast. 1629 | Encourage flow. 1630 | Approachable is better than simple. 1631 | Non-blocking is better than blocking. 1632 | Practicality beats purity. 1633 | It's not fully shipped until it's fast. 1634 | Half measures are as bad as nothing at all. 1635 | Favor focus over features. 1636 | Speak like a human. 1637 | Keep it logically awesome. 1638 | Encourage flow. 1639 | Design for failure. 1640 | Half measures are as bad as nothing at all. 1641 | Speak like a human. 1642 | Keep it logically awesome. 1643 | Encourage flow. 1644 | Half measures are as bad as nothing at all. 1645 | Keep it logically awesome. 1646 | Half measures are as bad as nothing at all. 1647 | Approachable is better than simple. 1648 | Design for failure. 1649 | Approachable is better than simple. 1650 | Design for failure. 1651 | Encourage flow. 1652 | Encourage flow. 1653 | Speak like a human. 1654 | Keep it logically awesome. 1655 | Non-blocking is better than blocking. 1656 | Encourage flow. 1657 | Anything added dilutes everything else. 1658 | Favor focus over features. 1659 | Practicality beats purity. 1660 | Mind your words, they are important. 1661 | Non-blocking is better than blocking. 1662 | Responsive is better than fast. 1663 | Encourage flow. 1664 | Responsive is better than fast. 1665 | Responsive is better than fast. 1666 | Anything added dilutes everything else. 1667 | Keep it logically awesome. 1668 | Half measures are as bad as nothing at all. 1669 | Mind your words, they are important. 1670 | Keep it logically awesome. 1671 | Avoid administrative distraction. 1672 | Favor focus over features. 1673 | Half measures are as bad as nothing at all. 1674 | Mind your words, they are important. 1675 | Mind your words, they are important. 1676 | Anything added dilutes everything else. 1677 | Non-blocking is better than blocking. 1678 | Practicality beats purity. 1679 | Anything added dilutes everything else. 1680 | Half measures are as bad as nothing at all. 1681 | It's not fully shipped until it's fast. 1682 | Encourage flow. 1683 | Anything added dilutes everything else. 1684 | Anything added dilutes everything else. 1685 | Favor focus over features. 1686 | Speak like a human. 1687 | Favor focus over features. 1688 | Encourage flow. 1689 | Keep it logically awesome. 1690 | Speak like a human. 1691 | Anything added dilutes everything else. 1692 | Approachable is better than simple. 1693 | Keep it logically awesome. 1694 | Mind your words, they are important. 1695 | Anything added dilutes everything else. 1696 | Mind your words, they are important. 1697 | Responsive is better than fast. 1698 | Practicality beats purity. 1699 | Half measures are as bad as nothing at all. 1700 | Encourage flow. 1701 | Keep it logically awesome. 1702 | Half measures are as bad as nothing at all. 1703 | Mind your words, they are important. 1704 | Favor focus over features. 1705 | Practicality beats purity. 1706 | Favor focus over features. 1707 | Responsive is better than fast. 1708 | Favor focus over features. 1709 | Approachable is better than simple. 1710 | Encourage flow. 1711 | Design for failure. 1712 | It's not fully shipped until it's fast. 1713 | Encourage flow. 1714 | Keep it logically awesome. 1715 | It's not fully shipped until it's fast. 1716 | Responsive is better than fast. 1717 | Speak like a human. 1718 | Avoid administrative distraction. 1719 | Practicality beats purity. 1720 | Non-blocking is better than blocking. 1721 | It's not fully shipped until it's fast. 1722 | Responsive is better than fast. 1723 | Speak like a human. 1724 | Approachable is better than simple. 1725 | Encourage flow. 1726 | Practicality beats purity. 1727 | Avoid administrative distraction. 1728 | Encourage flow. 1729 | Approachable is better than simple. 1730 | Keep it logically awesome. 1731 | Favor focus over features. 1732 | Keep it logically awesome. 1733 | Anything added dilutes everything else. 1734 | Anything added dilutes everything else. 1735 | Anything added dilutes everything else. 1736 | Encourage flow. 1737 | Responsive is better than fast. 1738 | Keep it logically awesome. 1739 | Keep it logically awesome. 1740 | Approachable is better than simple. 1741 | Practicality beats purity. 1742 | Half measures are as bad as nothing at all. 1743 | Mind your words, they are important. 1744 | Favor focus over features. 1745 | Keep it logically awesome. 1746 | Encourage flow. 1747 | Approachable is better than simple. 1748 | Anything added dilutes everything else. 1749 | Non-blocking is better than blocking. 1750 | Non-blocking is better than blocking. 1751 | Favor focus over features. 1752 | Keep it logically awesome. 1753 | Responsive is better than fast. 1754 | Avoid administrative distraction. 1755 | Avoid administrative distraction. 1756 | Avoid administrative distraction. 1757 | Avoid administrative distraction. 1758 | Practicality beats purity. 1759 | Favor focus over features. 1760 | It's not fully shipped until it's fast. 1761 | It's not fully shipped until it's fast. 1762 | Keep it logically awesome. 1763 | Mind your words, they are important. 1764 | Design for failure. 1765 | Design for failure. 1766 | Encourage flow. 1767 | Encourage flow. 1768 | Half measures are as bad as nothing at all. 1769 | Speak like a human. 1770 | Keep it logically awesome. 1771 | Non-blocking is better than blocking. 1772 | Encourage flow. 1773 | Approachable is better than simple. 1774 | Anything added dilutes everything else. 1775 | Keep it logically awesome. 1776 | Encourage flow. 1777 | Speak like a human. 1778 | Anything added dilutes everything else. 1779 | Favor focus over features. 1780 | Keep it logically awesome. 1781 | Mind your words, they are important. 1782 | Half measures are as bad as nothing at all. 1783 | Design for failure. 1784 | Avoid administrative distraction. 1785 | It's not fully shipped until it's fast. 1786 | Speak like a human. 1787 | Approachable is better than simple. 1788 | Speak like a human. 1789 | Encourage flow. 1790 | Non-blocking is better than blocking. 1791 | Approachable is better than simple. 1792 | Practicality beats purity. 1793 | Favor focus over features. 1794 | It's not fully shipped until it's fast. 1795 | Anything added dilutes everything else. 1796 | Avoid administrative distraction. 1797 | Keep it logically awesome. 1798 | Approachable is better than simple. 1799 | Mind your words, they are important. 1800 | Avoid administrative distraction. 1801 | Keep it logically awesome. 1802 | Approachable is better than simple. 1803 | Responsive is better than fast. 1804 | Avoid administrative distraction. 1805 | Practicality beats purity. 1806 | Mind your words, they are important. 1807 | Favor focus over features. 1808 | Keep it logically awesome. 1809 | Approachable is better than simple. 1810 | Keep it logically awesome. 1811 | Non-blocking is better than blocking. 1812 | Practicality beats purity. 1813 | Keep it logically awesome. 1814 | Half measures are as bad as nothing at all. 1815 | Favor focus over features. 1816 | Avoid administrative distraction. 1817 | Design for failure. 1818 | Responsive is better than fast. 1819 | Practicality beats purity. 1820 | Speak like a human. 1821 | Anything added dilutes everything else. 1822 | Mind your words, they are important. 1823 | It's not fully shipped until it's fast. 1824 | Responsive is better than fast. 1825 | Non-blocking is better than blocking. 1826 | Favor focus over features. 1827 | Avoid administrative distraction. 1828 | Encourage flow. 1829 | Design for failure. 1830 | Half measures are as bad as nothing at all. 1831 | Half measures are as bad as nothing at all. 1832 | Speak like a human. 1833 | Favor focus over features. 1834 | Design for failure. 1835 | Non-blocking is better than blocking. 1836 | Non-blocking is better than blocking. 1837 | Practicality beats purity. 1838 | Design for failure. 1839 | Avoid administrative distraction. 1840 | Design for failure. 1841 | Anything added dilutes everything else. 1842 | Speak like a human. 1843 | Encourage flow. 1844 | Avoid administrative distraction. 1845 | Keep it logically awesome. 1846 | Keep it logically awesome. 1847 | Anything added dilutes everything else. 1848 | Avoid administrative distraction. 1849 | Half measures are as bad as nothing at all. 1850 | Design for failure. 1851 | Anything added dilutes everything else. 1852 | It's not fully shipped until it's fast. 1853 | Speak like a human. 1854 | Anything added dilutes everything else. 1855 | It's not fully shipped until it's fast. 1856 | Favor focus over features. 1857 | Non-blocking is better than blocking. 1858 | Favor focus over features. 1859 | Approachable is better than simple. 1860 | Encourage flow. 1861 | Design for failure. 1862 | Anything added dilutes everything else. 1863 | Avoid administrative distraction. 1864 | Favor focus over features. 1865 | Anything added dilutes everything else. 1866 | Non-blocking is better than blocking. 1867 | It's not fully shipped until it's fast. 1868 | It's not fully shipped until it's fast. 1869 | Anything added dilutes everything else. 1870 | Favor focus over features. 1871 | Keep it logically awesome. 1872 | Keep it logically awesome. 1873 | Anything added dilutes everything else. 1874 | Keep it logically awesome. 1875 | Half measures are as bad as nothing at all. 1876 | Encourage flow. 1877 | Keep it logically awesome. 1878 | Non-blocking is better than blocking. 1879 | Avoid administrative distraction. 1880 | Keep it logically awesome. 1881 | Mind your words, they are important. 1882 | Non-blocking is better than blocking. 1883 | Favor focus over features. 1884 | Keep it logically awesome. 1885 | Non-blocking is better than blocking. 1886 | Avoid administrative distraction. 1887 | Avoid administrative distraction. 1888 | Speak like a human. 1889 | Avoid administrative distraction. 1890 | Speak like a human. 1891 | Encourage flow. 1892 | Avoid administrative distraction. 1893 | Responsive is better than fast. 1894 | Avoid administrative distraction. 1895 | Approachable is better than simple. 1896 | Practicality beats purity. 1897 | Half measures are as bad as nothing at all. 1898 | Favor focus over features. 1899 | Non-blocking is better than blocking. 1900 | Mind your words, they are important. 1901 | Speak like a human. 1902 | Favor focus over features. 1903 | Encourage flow. 1904 | Favor focus over features. 1905 | Avoid administrative distraction. 1906 | Design for failure. 1907 | Anything added dilutes everything else. 1908 | Non-blocking is better than blocking. 1909 | It's not fully shipped until it's fast. 1910 | Speak like a human. 1911 | Encourage flow. 1912 | Encourage flow. 1913 | It's not fully shipped until it's fast. 1914 | Mind your words, they are important. 1915 | Non-blocking is better than blocking. 1916 | Non-blocking is better than blocking. 1917 | Anything added dilutes everything else. 1918 | Approachable is better than simple. 1919 | Avoid administrative distraction. 1920 | It's not fully shipped until it's fast. 1921 | Approachable is better than simple. 1922 | Anything added dilutes everything else. 1923 | Favor focus over features. 1924 | Non-blocking is better than blocking. 1925 | Keep it logically awesome. 1926 | Favor focus over features. 1927 | Design for failure. 1928 | Design for failure. 1929 | Speak like a human. 1930 | Encourage flow. 1931 | Practicality beats purity. 1932 | Half measures are as bad as nothing at all. 1933 | Keep it logically awesome. 1934 | Keep it logically awesome. 1935 | Anything added dilutes everything else. 1936 | Mind your words, they are important. 1937 | Mind your words, they are important. 1938 | Favor focus over features. 1939 | Responsive is better than fast. 1940 | Non-blocking is better than blocking. 1941 | Anything added dilutes everything else. 1942 | Encourage flow. 1943 | Encourage flow. 1944 | Encourage flow. 1945 | Keep it logically awesome. 1946 | Approachable is better than simple. 1947 | Approachable is better than simple. 1948 | Speak like a human. 1949 | Approachable is better than simple. 1950 | Responsive is better than fast. 1951 | Approachable is better than simple. 1952 | Encourage flow. 1953 | Practicality beats purity. 1954 | Design for failure. 1955 | Approachable is better than simple. 1956 | Encourage flow. 1957 | Encourage flow. 1958 | Approachable is better than simple. 1959 | Approachable is better than simple. 1960 | It's not fully shipped until it's fast. 1961 | Keep it logically awesome. 1962 | Practicality beats purity. 1963 | Practicality beats purity. 1964 | Responsive is better than fast. 1965 | Non-blocking is better than blocking. 1966 | Practicality beats purity. 1967 | Speak like a human. 1968 | It's not fully shipped until it's fast. 1969 | Speak like a human. 1970 | Design for failure. 1971 | Practicality beats purity. 1972 | Half measures are as bad as nothing at all. 1973 | Anything added dilutes everything else. 1974 | Half measures are as bad as nothing at all. 1975 | It's not fully shipped until it's fast. 1976 | Anything added dilutes everything else. 1977 | Mind your words, they are important. 1978 | Anything added dilutes everything else. 1979 | Responsive is better than fast. 1980 | Anything added dilutes everything else. 1981 | Encourage flow. 1982 | Avoid administrative distraction. 1983 | Keep it logically awesome. 1984 | Keep it logically awesome. 1985 | Responsive is better than fast. 1986 | Encourage flow. 1987 | Favor focus over features. 1988 | Non-blocking is better than blocking. 1989 | Favor focus over features. 1990 | It's not fully shipped until it's fast. 1991 | It's not fully shipped until it's fast. 1992 | Encourage flow. 1993 | Encourage flow. 1994 | Responsive is better than fast. 1995 | Responsive is better than fast. 1996 | Speak like a human. 1997 | Avoid administrative distraction. 1998 | Favor focus over features. 1999 | Design for failure. 2000 | Encourage flow. 2001 | Keep it logically awesome. 2002 | Practicality beats purity. 2003 | Approachable is better than simple. 2004 | It's not fully shipped until it's fast. 2005 | Half measures are as bad as nothing at all. 2006 | Half measures are as bad as nothing at all. 2007 | Encourage flow. 2008 | Practicality beats purity. 2009 | Favor focus over features. 2010 | Favor focus over features. 2011 | Practicality beats purity. 2012 | Practicality beats purity. 2013 | Design for failure. 2014 | It's not fully shipped until it's fast. 2015 | Keep it logically awesome. 2016 | Half measures are as bad as nothing at all. 2017 | Anything added dilutes everything else. 2018 | Favor focus over features. 2019 | Anything added dilutes everything else. 2020 | Mind your words, they are important. 2021 | Favor focus over features. 2022 | Anything added dilutes everything else. 2023 | Practicality beats purity. 2024 | It's not fully shipped until it's fast. 2025 | Design for failure. 2026 | Non-blocking is better than blocking. 2027 | Avoid administrative distraction. 2028 | Favor focus over features. 2029 | Avoid administrative distraction. 2030 | Avoid administrative distraction. 2031 | Approachable is better than simple. 2032 | Keep it logically awesome. 2033 | Avoid administrative distraction. 2034 | Practicality beats purity. 2035 | It's not fully shipped until it's fast. 2036 | Mind your words, they are important. 2037 | Design for failure. 2038 | Keep it logically awesome. 2039 | Non-blocking is better than blocking. 2040 | Half measures are as bad as nothing at all. 2041 | Design for failure. 2042 | Encourage flow. 2043 | Avoid administrative distraction. 2044 | Speak like a human. 2045 | Favor focus over features. 2046 | It's not fully shipped until it's fast. 2047 | Keep it logically awesome. 2048 | Encourage flow. 2049 | It's not fully shipped until it's fast. 2050 | Responsive is better than fast. 2051 | Speak like a human. 2052 | Mind your words, they are important. 2053 | Avoid administrative distraction. 2054 | It's not fully shipped until it's fast. 2055 | Favor focus over features. 2056 | Practicality beats purity. 2057 | Speak like a human. 2058 | Mind your words, they are important. 2059 | Avoid administrative distraction. 2060 | Half measures are as bad as nothing at all. 2061 | Approachable is better than simple. 2062 | Avoid administrative distraction. 2063 | Avoid administrative distraction. 2064 | Speak like a human. 2065 | It's not fully shipped until it's fast. 2066 | Anything added dilutes everything else. 2067 | Responsive is better than fast. 2068 | Half measures are as bad as nothing at all. 2069 | Half measures are as bad as nothing at all. 2070 | Mind your words, they are important. 2071 | Mind your words, they are important. 2072 | Practicality beats purity. 2073 | Approachable is better than simple. 2074 | Practicality beats purity. 2075 | Avoid administrative distraction. 2076 | Speak like a human. 2077 | Mind your words, they are important. 2078 | Favor focus over features. 2079 | Non-blocking is better than blocking. 2080 | Non-blocking is better than blocking. 2081 | Responsive is better than fast. 2082 | Design for failure. 2083 | Half measures are as bad as nothing at all. 2084 | Mind your words, they are important. 2085 | Favor focus over features. 2086 | Favor focus over features. 2087 | Speak like a human. 2088 | Speak like a human. 2089 | It's not fully shipped until it's fast. 2090 | Design for failure. 2091 | Speak like a human. 2092 | Favor focus over features. 2093 | Approachable is better than simple. 2094 | Avoid administrative distraction. 2095 | Favor focus over features. 2096 | Non-blocking is better than blocking. 2097 | Keep it logically awesome. 2098 | Favor focus over features. 2099 | Encourage flow. 2100 | Keep it logically awesome. 2101 | Encourage flow. 2102 | Encourage flow. 2103 | Practicality beats purity. 2104 | Half measures are as bad as nothing at all. 2105 | Keep it logically awesome. 2106 | It's not fully shipped until it's fast. 2107 | Responsive is better than fast. 2108 | Mind your words, they are important. 2109 | Keep it logically awesome. 2110 | Avoid administrative distraction. 2111 | Responsive is better than fast. 2112 | Non-blocking is better than blocking. 2113 | Encourage flow. 2114 | Approachable is better than simple. 2115 | Anything added dilutes everything else. 2116 | Encourage flow. 2117 | Mind your words, they are important. 2118 | Non-blocking is better than blocking. 2119 | Encourage flow. 2120 | Keep it logically awesome. 2121 | Non-blocking is better than blocking. 2122 | It's not fully shipped until it's fast. 2123 | Mind your words, they are important. 2124 | Favor focus over features. 2125 | Keep it logically awesome. 2126 | Mind your words, they are important. 2127 | It's not fully shipped until it's fast. 2128 | It's not fully shipped until it's fast. 2129 | Speak like a human. 2130 | Avoid administrative distraction. 2131 | Design for failure. 2132 | Responsive is better than fast. 2133 | Avoid administrative distraction. 2134 | Approachable is better than simple. 2135 | Practicality beats purity. 2136 | Approachable is better than simple. 2137 | Encourage flow. 2138 | It's not fully shipped until it's fast. 2139 | Responsive is better than fast. 2140 | Practicality beats purity. 2141 | Responsive is better than fast. 2142 | Practicality beats purity. 2143 | Design for failure. 2144 | Favor focus over features. 2145 | Responsive is better than fast. 2146 | Non-blocking is better than blocking. 2147 | Mind your words, they are important. 2148 | Responsive is better than fast. 2149 | Keep it logically awesome. 2150 | Practicality beats purity. 2151 | Design for failure. 2152 | Half measures are as bad as nothing at all. 2153 | Keep it logically awesome. 2154 | Approachable is better than simple. 2155 | Design for failure. 2156 | Responsive is better than fast. 2157 | Design for failure. 2158 | Design for failure. 2159 | Anything added dilutes everything else. 2160 | Favor focus over features. 2161 | Avoid administrative distraction. 2162 | Practicality beats purity. 2163 | Responsive is better than fast. 2164 | Encourage flow. 2165 | Encourage flow. 2166 | Anything added dilutes everything else. 2167 | Practicality beats purity. 2168 | Design for failure. 2169 | Approachable is better than simple. 2170 | Practicality beats purity. 2171 | Half measures are as bad as nothing at all. 2172 | Design for failure. 2173 | Mind your words, they are important. 2174 | Anything added dilutes everything else. 2175 | Keep it logically awesome. 2176 | Non-blocking is better than blocking. 2177 | Keep it logically awesome. 2178 | Avoid administrative distraction. 2179 | Avoid administrative distraction. 2180 | Keep it logically awesome. 2181 | Approachable is better than simple. 2182 | Mind your words, they are important. 2183 | Avoid administrative distraction. 2184 | Non-blocking is better than blocking. 2185 | Speak like a human. 2186 | It's not fully shipped until it's fast. 2187 | Anything added dilutes everything else. 2188 | Favor focus over features. 2189 | Keep it logically awesome. 2190 | Non-blocking is better than blocking. 2191 | Avoid administrative distraction. 2192 | Keep it logically awesome. 2193 | Anything added dilutes everything else. 2194 | Keep it logically awesome. 2195 | It's not fully shipped until it's fast. 2196 | Favor focus over features. 2197 | Half measures are as bad as nothing at all. 2198 | Encourage flow. 2199 | Avoid administrative distraction. 2200 | Approachable is better than simple. 2201 | Design for failure. 2202 | Approachable is better than simple. 2203 | Favor focus over features. 2204 | Mind your words, they are important. 2205 | Practicality beats purity. 2206 | Half measures are as bad as nothing at all. 2207 | Favor focus over features. 2208 | Mind your words, they are important. 2209 | Design for failure. 2210 | Avoid administrative distraction. 2211 | Non-blocking is better than blocking. 2212 | Practicality beats purity. 2213 | Design for failure. 2214 | Favor focus over features. 2215 | Responsive is better than fast. 2216 | Non-blocking is better than blocking. 2217 | Favor focus over features. 2218 | Half measures are as bad as nothing at all. 2219 | Half measures are as bad as nothing at all. 2220 | Encourage flow. 2221 | Practicality beats purity. 2222 | Avoid administrative distraction. 2223 | Encourage flow. 2224 | Responsive is better than fast. 2225 | Practicality beats purity. 2226 | Encourage flow. 2227 | Non-blocking is better than blocking. 2228 | Approachable is better than simple. 2229 | Encourage flow. 2230 | Encourage flow. 2231 | Speak like a human. 2232 | Half measures are as bad as nothing at all. 2233 | Encourage flow. 2234 | Approachable is better than simple. 2235 | Encourage flow. 2236 | Non-blocking is better than blocking. 2237 | Keep it logically awesome. 2238 | Responsive is better than fast. 2239 | Speak like a human. 2240 | Approachable is better than simple. 2241 | Half measures are as bad as nothing at all. 2242 | Mind your words, they are important. 2243 | Responsive is better than fast. 2244 | Mind your words, they are important. 2245 | Non-blocking is better than blocking. 2246 | Approachable is better than simple. 2247 | Practicality beats purity. 2248 | Design for failure. 2249 | Responsive is better than fast. 2250 | Mind your words, they are important. 2251 | Responsive is better than fast. 2252 | Design for failure. 2253 | Half measures are as bad as nothing at all. 2254 | Anything added dilutes everything else. 2255 | Keep it logically awesome. 2256 | Encourage flow. 2257 | Approachable is better than simple. 2258 | Speak like a human. 2259 | Practicality beats purity. 2260 | Design for failure. 2261 | Encourage flow. 2262 | Design for failure. 2263 | Keep it logically awesome. 2264 | Favor focus over features. 2265 | Practicality beats purity. 2266 | Favor focus over features. 2267 | Anything added dilutes everything else. 2268 | Favor focus over features. 2269 | Design for failure. 2270 | It's not fully shipped until it's fast. 2271 | Encourage flow. 2272 | Anything added dilutes everything else. 2273 | Anything added dilutes everything else. 2274 | Speak like a human. 2275 | Non-blocking is better than blocking. 2276 | Anything added dilutes everything else. 2277 | Responsive is better than fast. 2278 | Design for failure. 2279 | Speak like a human. 2280 | Anything added dilutes everything else. 2281 | It's not fully shipped until it's fast. 2282 | It's not fully shipped until it's fast. 2283 | Design for failure. 2284 | Responsive is better than fast. 2285 | Design for failure. 2286 | Responsive is better than fast. 2287 | Anything added dilutes everything else. 2288 | Avoid administrative distraction. 2289 | Mind your words, they are important. 2290 | Avoid administrative distraction. 2291 | Approachable is better than simple. 2292 | Keep it logically awesome. 2293 | Approachable is better than simple. 2294 | Design for failure. 2295 | Keep it logically awesome. 2296 | Non-blocking is better than blocking. 2297 | Responsive is better than fast. 2298 | Half measures are as bad as nothing at all. 2299 | Encourage flow. 2300 | Anything added dilutes everything else. 2301 | Mind your words, they are important. 2302 | Non-blocking is better than blocking. 2303 | Encourage flow. 2304 | Non-blocking is better than blocking. 2305 | Speak like a human. 2306 | Design for failure. 2307 | Non-blocking is better than blocking. 2308 | Half measures are as bad as nothing at all. 2309 | Practicality beats purity. 2310 | Design for failure. 2311 | Encourage flow. 2312 | Non-blocking is better than blocking. 2313 | Avoid administrative distraction. 2314 | Avoid administrative distraction. 2315 | Favor focus over features. 2316 | Mind your words, they are important. 2317 | Non-blocking is better than blocking. 2318 | Avoid administrative distraction. 2319 | Encourage flow. 2320 | Mind your words, they are important. 2321 | Practicality beats purity. 2322 | Non-blocking is better than blocking. 2323 | It's not fully shipped until it's fast. 2324 | It's not fully shipped until it's fast. 2325 | Favor focus over features. 2326 | Speak like a human. 2327 | It's not fully shipped until it's fast. 2328 | Design for failure. 2329 | Keep it logically awesome. 2330 | Non-blocking is better than blocking. 2331 | Responsive is better than fast. 2332 | Responsive is better than fast. 2333 | Non-blocking is better than blocking. 2334 | Avoid administrative distraction. 2335 | Favor focus over features. 2336 | Design for failure. 2337 | Encourage flow. 2338 | Encourage flow. 2339 | Favor focus over features. 2340 | Practicality beats purity. 2341 | Design for failure. 2342 | Mind your words, they are important. 2343 | Encourage flow. 2344 | Avoid administrative distraction. 2345 | It's not fully shipped until it's fast. 2346 | Encourage flow. 2347 | Half measures are as bad as nothing at all. 2348 | Keep it logically awesome. 2349 | Keep it logically awesome. 2350 | Design for failure. 2351 | Anything added dilutes everything else. 2352 | Responsive is better than fast. 2353 | Encourage flow. 2354 | Half measures are as bad as nothing at all. 2355 | Mind your words, they are important. 2356 | Encourage flow. 2357 | It's not fully shipped until it's fast. 2358 | Avoid administrative distraction. 2359 | Anything added dilutes everything else. 2360 | Practicality beats purity. 2361 | Keep it logically awesome. 2362 | Practicality beats purity. 2363 | Design for failure. 2364 | Responsive is better than fast. 2365 | It's not fully shipped until it's fast. 2366 | Favor focus over features. 2367 | Keep it logically awesome. 2368 | Speak like a human. 2369 | Anything added dilutes everything else. 2370 | Approachable is better than simple. 2371 | Responsive is better than fast. 2372 | Half measures are as bad as nothing at all. 2373 | Non-blocking is better than blocking. 2374 | Favor focus over features. 2375 | Keep it logically awesome. 2376 | Practicality beats purity. 2377 | Avoid administrative distraction. 2378 | Mind your words, they are important. 2379 | Design for failure. 2380 | Mind your words, they are important. 2381 | Encourage flow. 2382 | Non-blocking is better than blocking. 2383 | Favor focus over features. 2384 | Favor focus over features. 2385 | Mind your words, they are important. 2386 | Responsive is better than fast. 2387 | Keep it logically awesome. 2388 | Design for failure. 2389 | Responsive is better than fast. 2390 | Keep it logically awesome. 2391 | Encourage flow. 2392 | Speak like a human. 2393 | Mind your words, they are important. 2394 | Practicality beats purity. 2395 | Favor focus over features. 2396 | Design for failure. 2397 | Design for failure. 2398 | Approachable is better than simple. 2399 | Responsive is better than fast. 2400 | Speak like a human. 2401 | Favor focus over features. 2402 | Half measures are as bad as nothing at all. 2403 | Anything added dilutes everything else. 2404 | Design for failure. 2405 | Keep it logically awesome. 2406 | It's not fully shipped until it's fast. 2407 | It's not fully shipped until it's fast. 2408 | Anything added dilutes everything else. 2409 | Non-blocking is better than blocking. 2410 | Keep it logically awesome. 2411 | Speak like a human. 2412 | Practicality beats purity. 2413 | Favor focus over features. 2414 | Half measures are as bad as nothing at all. 2415 | Avoid administrative distraction. 2416 | Speak like a human. 2417 | It's not fully shipped until it's fast. 2418 | It's not fully shipped until it's fast. 2419 | Approachable is better than simple. 2420 | Design for failure. 2421 | Mind your words, they are important. 2422 | Anything added dilutes everything else. 2423 | Favor focus over features. 2424 | It's not fully shipped until it's fast. 2425 | Practicality beats purity. 2426 | Avoid administrative distraction. 2427 | Speak like a human. 2428 | Responsive is better than fast. 2429 | Encourage flow. 2430 | Responsive is better than fast. 2431 | It's not fully shipped until it's fast. 2432 | Design for failure. 2433 | Keep it logically awesome. 2434 | Favor focus over features. 2435 | Approachable is better than simple. 2436 | Design for failure. 2437 | Anything added dilutes everything else. 2438 | Approachable is better than simple. 2439 | Mind your words, they are important. 2440 | Speak like a human. 2441 | Non-blocking is better than blocking. 2442 | Non-blocking is better than blocking. 2443 | Encourage flow. 2444 | Responsive is better than fast. 2445 | Mind your words, they are important. 2446 | Practicality beats purity. 2447 | Favor focus over features. 2448 | Speak like a human. 2449 | Half measures are as bad as nothing at all. 2450 | Anything added dilutes everything else. 2451 | Encourage flow. 2452 | Anything added dilutes everything else. 2453 | Anything added dilutes everything else. 2454 | Non-blocking is better than blocking. 2455 | Avoid administrative distraction. 2456 | Speak like a human. 2457 | Practicality beats purity. 2458 | Encourage flow. 2459 | Practicality beats purity. 2460 | It's not fully shipped until it's fast. 2461 | Responsive is better than fast. 2462 | Design for failure. 2463 | Non-blocking is better than blocking. 2464 | Responsive is better than fast. 2465 | Responsive is better than fast. 2466 | Practicality beats purity. 2467 | Anything added dilutes everything else. 2468 | Non-blocking is better than blocking. 2469 | Responsive is better than fast. 2470 | Favor focus over features. 2471 | Mind your words, they are important. 2472 | Design for failure. 2473 | Mind your words, they are important. 2474 | Practicality beats purity. 2475 | Favor focus over features. 2476 | Favor focus over features. 2477 | Mind your words, they are important. 2478 | Responsive is better than fast. 2479 | Speak like a human. 2480 | Design for failure. 2481 | Non-blocking is better than blocking. 2482 | Responsive is better than fast. 2483 | Mind your words, they are important. 2484 | Avoid administrative distraction. 2485 | Design for failure. 2486 | Half measures are as bad as nothing at all. 2487 | Avoid administrative distraction. 2488 | Practicality beats purity. 2489 | Design for failure. 2490 | It's not fully shipped until it's fast. 2491 | Design for failure. 2492 | Anything added dilutes everything else. 2493 | Encourage flow. 2494 | Approachable is better than simple. 2495 | Favor focus over features. 2496 | Design for failure. 2497 | Mind your words, they are important. 2498 | Keep it logically awesome. 2499 | Practicality beats purity. 2500 | Approachable is better than simple. 2501 | Design for failure. 2502 | Design for failure. 2503 | Approachable is better than simple. 2504 | Encourage flow. 2505 | Favor focus over features. 2506 | Practicality beats purity. 2507 | Favor focus over features. 2508 | Responsive is better than fast. 2509 | Anything added dilutes everything else. 2510 | Approachable is better than simple. 2511 | Avoid administrative distraction. 2512 | Half measures are as bad as nothing at all. 2513 | Encourage flow. 2514 | It's not fully shipped until it's fast. 2515 | Favor focus over features. 2516 | Practicality beats purity. 2517 | Half measures are as bad as nothing at all. 2518 | Mind your words, they are important. 2519 | Mind your words, they are important. 2520 | Approachable is better than simple. 2521 | Half measures are as bad as nothing at all. 2522 | It's not fully shipped until it's fast. 2523 | Practicality beats purity. 2524 | Mind your words, they are important. 2525 | Favor focus over features. 2526 | Keep it logically awesome. 2527 | Speak like a human. 2528 | Keep it logically awesome. 2529 | Mind your words, they are important. 2530 | Anything added dilutes everything else. 2531 | Design for failure. 2532 | Non-blocking is better than blocking. 2533 | Half measures are as bad as nothing at all. 2534 | Anything added dilutes everything else. 2535 | Responsive is better than fast. 2536 | It's not fully shipped until it's fast. 2537 | Encourage flow. 2538 | Half measures are as bad as nothing at all. 2539 | Anything added dilutes everything else. 2540 | Approachable is better than simple. 2541 | Practicality beats purity. 2542 | Design for failure. 2543 | Anything added dilutes everything else. 2544 | Responsive is better than fast. 2545 | Non-blocking is better than blocking. 2546 | It's not fully shipped until it's fast. 2547 | Mind your words, they are important. 2548 | Non-blocking is better than blocking. 2549 | Avoid administrative distraction. 2550 | Anything added dilutes everything else. 2551 | Approachable is better than simple. 2552 | It's not fully shipped until it's fast. 2553 | It's not fully shipped until it's fast. 2554 | Favor focus over features. 2555 | Mind your words, they are important. 2556 | It's not fully shipped until it's fast. 2557 | Keep it logically awesome. 2558 | Mind your words, they are important. 2559 | Half measures are as bad as nothing at all. 2560 | Half measures are as bad as nothing at all. 2561 | Speak like a human. 2562 | Encourage flow. 2563 | Mind your words, they are important. 2564 | Favor focus over features. 2565 | Practicality beats purity. 2566 | Avoid administrative distraction. 2567 | Mind your words, they are important. 2568 | Non-blocking is better than blocking. 2569 | Encourage flow. 2570 | Keep it logically awesome. 2571 | Responsive is better than fast. 2572 | Anything added dilutes everything else. 2573 | Favor focus over features. 2574 | Encourage flow. 2575 | Design for failure. 2576 | Keep it logically awesome. 2577 | Encourage flow. 2578 | Non-blocking is better than blocking. 2579 | Keep it logically awesome. 2580 | Half measures are as bad as nothing at all. 2581 | Responsive is better than fast. 2582 | Practicality beats purity. 2583 | Anything added dilutes everything else. 2584 | Responsive is better than fast. 2585 | Approachable is better than simple. 2586 | Mind your words, they are important. 2587 | It's not fully shipped until it's fast. 2588 | Avoid administrative distraction. 2589 | Half measures are as bad as nothing at all. 2590 | Approachable is better than simple. 2591 | Favor focus over features. 2592 | Practicality beats purity. 2593 | Avoid administrative distraction. 2594 | Anything added dilutes everything else. 2595 | Avoid administrative distraction. 2596 | Half measures are as bad as nothing at all. 2597 | Speak like a human. 2598 | Encourage flow. 2599 | Non-blocking is better than blocking. 2600 | Encourage flow. 2601 | Favor focus over features. 2602 | Practicality beats purity. 2603 | Approachable is better than simple. 2604 | Approachable is better than simple. 2605 | Favor focus over features. 2606 | Non-blocking is better than blocking. 2607 | Anything added dilutes everything else. 2608 | Approachable is better than simple. 2609 | Anything added dilutes everything else. 2610 | It's not fully shipped until it's fast. 2611 | Design for failure. 2612 | Approachable is better than simple. 2613 | Design for failure. 2614 | Half measures are as bad as nothing at all. 2615 | Encourage flow. 2616 | Responsive is better than fast. 2617 | Responsive is better than fast. 2618 | Keep it logically awesome. 2619 | Avoid administrative distraction. 2620 | Approachable is better than simple. 2621 | Mind your words, they are important. 2622 | Speak like a human. 2623 | Responsive is better than fast. 2624 | Keep it logically awesome. 2625 | Keep it logically awesome. 2626 | Encourage flow. 2627 | Speak like a human. 2628 | Non-blocking is better than blocking. 2629 | Responsive is better than fast. 2630 | It's not fully shipped until it's fast. 2631 | Responsive is better than fast. 2632 | Favor focus over features. 2633 | Approachable is better than simple. 2634 | Speak like a human. 2635 | Responsive is better than fast. 2636 | Mind your words, they are important. 2637 | Mind your words, they are important. 2638 | It's not fully shipped until it's fast. 2639 | Design for failure. 2640 | Speak like a human. 2641 | Half measures are as bad as nothing at all. 2642 | Approachable is better than simple. 2643 | Mind your words, they are important. 2644 | Keep it logically awesome. 2645 | Keep it logically awesome. 2646 | Encourage flow. 2647 | Speak like a human. 2648 | Speak like a human. 2649 | Avoid administrative distraction. 2650 | Mind your words, they are important. 2651 | Non-blocking is better than blocking. 2652 | Practicality beats purity. 2653 | Favor focus over features. 2654 | Approachable is better than simple. 2655 | Favor focus over features. 2656 | Avoid administrative distraction. 2657 | Responsive is better than fast. 2658 | Design for failure. 2659 | It's not fully shipped until it's fast. 2660 | Keep it logically awesome. 2661 | Responsive is better than fast. 2662 | Keep it logically awesome. 2663 | Mind your words, they are important. 2664 | Responsive is better than fast. 2665 | Favor focus over features. 2666 | Mind your words, they are important. 2667 | Design for failure. 2668 | Responsive is better than fast. 2669 | Speak like a human. 2670 | Responsive is better than fast. 2671 | Speak like a human. 2672 | Anything added dilutes everything else. 2673 | Non-blocking is better than blocking. 2674 | Favor focus over features. 2675 | Practicality beats purity. 2676 | Speak like a human. 2677 | Avoid administrative distraction. 2678 | Favor focus over features. 2679 | Keep it logically awesome. 2680 | Keep it logically awesome. 2681 | Approachable is better than simple. 2682 | Encourage flow. 2683 | Avoid administrative distraction. 2684 | Approachable is better than simple. 2685 | Practicality beats purity. 2686 | Keep it logically awesome. 2687 | Keep it logically awesome. 2688 | Keep it logically awesome. 2689 | Speak like a human. 2690 | Mind your words, they are important. 2691 | Design for failure. 2692 | Non-blocking is better than blocking. 2693 | Responsive is better than fast. 2694 | Practicality beats purity. 2695 | Non-blocking is better than blocking. 2696 | Mind your words, they are important. 2697 | Non-blocking is better than blocking. 2698 | Mind your words, they are important. 2699 | Design for failure. 2700 | Encourage flow. 2701 | Avoid administrative distraction. 2702 | Approachable is better than simple. 2703 | Practicality beats purity. 2704 | Speak like a human. 2705 | Anything added dilutes everything else. 2706 | Half measures are as bad as nothing at all. 2707 | Approachable is better than simple. 2708 | Favor focus over features. 2709 | Speak like a human. 2710 | Responsive is better than fast. 2711 | Keep it logically awesome. 2712 | Half measures are as bad as nothing at all. 2713 | Mind your words, they are important. 2714 | Favor focus over features. 2715 | Encourage flow. 2716 | Approachable is better than simple. 2717 | Favor focus over features. 2718 | Practicality beats purity. 2719 | Speak like a human. 2720 | It's not fully shipped until it's fast. 2721 | Mind your words, they are important. 2722 | Practicality beats purity. 2723 | Approachable is better than simple. 2724 | Speak like a human. 2725 | Practicality beats purity. 2726 | Favor focus over features. 2727 | Responsive is better than fast. 2728 | Approachable is better than simple. 2729 | Speak like a human. 2730 | Non-blocking is better than blocking. 2731 | Half measures are as bad as nothing at all. 2732 | Design for failure. 2733 | Anything added dilutes everything else. 2734 | It's not fully shipped until it's fast. 2735 | Approachable is better than simple. 2736 | It's not fully shipped until it's fast. 2737 | Speak like a human. 2738 | Favor focus over features. 2739 | Anything added dilutes everything else. 2740 | Anything added dilutes everything else. 2741 | It's not fully shipped until it's fast. 2742 | Approachable is better than simple. 2743 | Anything added dilutes everything else. 2744 | Design for failure. 2745 | It's not fully shipped until it's fast. 2746 | Avoid administrative distraction. 2747 | Practicality beats purity. 2748 | Speak like a human. 2749 | Keep it logically awesome. 2750 | Encourage flow. 2751 | Avoid administrative distraction. 2752 | Mind your words, they are important. 2753 | Encourage flow. 2754 | Responsive is better than fast. 2755 | Encourage flow. 2756 | Anything added dilutes everything else. 2757 | Anything added dilutes everything else. 2758 | Half measures are as bad as nothing at all. 2759 | It's not fully shipped until it's fast. 2760 | Responsive is better than fast. 2761 | Favor focus over features. 2762 | Favor focus over features. 2763 | Practicality beats purity. 2764 | Practicality beats purity. 2765 | Speak like a human. 2766 | Design for failure. 2767 | It's not fully shipped until it's fast. 2768 | Design for failure. 2769 | Approachable is better than simple. 2770 | Keep it logically awesome. 2771 | It's not fully shipped until it's fast. 2772 | Mind your words, they are important. 2773 | Practicality beats purity. 2774 | Anything added dilutes everything else. 2775 | Design for failure. 2776 | Anything added dilutes everything else. 2777 | Half measures are as bad as nothing at all. 2778 | Avoid administrative distraction. 2779 | Design for failure. 2780 | Design for failure. 2781 | Encourage flow. 2782 | Half measures are as bad as nothing at all. 2783 | Keep it logically awesome. 2784 | Keep it logically awesome. 2785 | Favor focus over features. 2786 | Keep it logically awesome. 2787 | Design for failure. 2788 | Responsive is better than fast. 2789 | Anything added dilutes everything else. 2790 | Mind your words, they are important. 2791 | Favor focus over features. 2792 | Anything added dilutes everything else. 2793 | Non-blocking is better than blocking. 2794 | Mind your words, they are important. 2795 | Practicality beats purity. 2796 | Keep it logically awesome. 2797 | Encourage flow. 2798 | Encourage flow. 2799 | Non-blocking is better than blocking. 2800 | Speak like a human. 2801 | Design for failure. 2802 | Half measures are as bad as nothing at all. 2803 | Anything added dilutes everything else. 2804 | Speak like a human. 2805 | Favor focus over features. 2806 | Avoid administrative distraction. 2807 | Encourage flow. 2808 | Design for failure. 2809 | It's not fully shipped until it's fast. 2810 | Half measures are as bad as nothing at all. 2811 | Design for failure. 2812 | Anything added dilutes everything else. 2813 | Mind your words, they are important. 2814 | Speak like a human. 2815 | Half measures are as bad as nothing at all. 2816 | Practicality beats purity. 2817 | Responsive is better than fast. 2818 | Anything added dilutes everything else. 2819 | Half measures are as bad as nothing at all. 2820 | Practicality beats purity. 2821 | Approachable is better than simple. 2822 | Encourage flow. 2823 | Keep it logically awesome. 2824 | It's not fully shipped until it's fast. 2825 | Keep it logically awesome. 2826 | Speak like a human. 2827 | Mind your words, they are important. 2828 | Responsive is better than fast. 2829 | Approachable is better than simple. 2830 | Speak like a human. 2831 | Design for failure. 2832 | Anything added dilutes everything else. 2833 | Keep it logically awesome. 2834 | Non-blocking is better than blocking. 2835 | Avoid administrative distraction. 2836 | Encourage flow. 2837 | Design for failure. 2838 | Mind your words, they are important. 2839 | Design for failure. 2840 | Favor focus over features. 2841 | Practicality beats purity. 2842 | Approachable is better than simple. 2843 | Non-blocking is better than blocking. 2844 | Non-blocking is better than blocking. 2845 | Keep it logically awesome. 2846 | Encourage flow. 2847 | Keep it logically awesome. 2848 | Half measures are as bad as nothing at all. 2849 | Speak like a human. 2850 | Encourage flow. 2851 | It's not fully shipped until it's fast. 2852 | Speak like a human. 2853 | Half measures are as bad as nothing at all. 2854 | Encourage flow. 2855 | Design for failure. 2856 | Keep it logically awesome. 2857 | Keep it logically awesome. 2858 | Favor focus over features. 2859 | Practicality beats purity. 2860 | Half measures are as bad as nothing at all. 2861 | Favor focus over features. 2862 | Non-blocking is better than blocking. 2863 | Mind your words, they are important. 2864 | Approachable is better than simple. 2865 | Approachable is better than simple. 2866 | Half measures are as bad as nothing at all. 2867 | Approachable is better than simple. 2868 | Speak like a human. 2869 | Non-blocking is better than blocking. 2870 | It's not fully shipped until it's fast. 2871 | It's not fully shipped until it's fast. 2872 | It's not fully shipped until it's fast. 2873 | Keep it logically awesome. 2874 | Practicality beats purity. 2875 | It's not fully shipped until it's fast. 2876 | Favor focus over features. 2877 | Avoid administrative distraction. 2878 | Avoid administrative distraction. 2879 | Speak like a human. 2880 | Approachable is better than simple. 2881 | Encourage flow. 2882 | Anything added dilutes everything else. 2883 | Speak like a human. 2884 | Favor focus over features. 2885 | Practicality beats purity. 2886 | It's not fully shipped until it's fast. 2887 | Responsive is better than fast. 2888 | Practicality beats purity. 2889 | Approachable is better than simple. 2890 | Anything added dilutes everything else. 2891 | Anything added dilutes everything else. 2892 | Keep it logically awesome. 2893 | Anything added dilutes everything else. 2894 | Half measures are as bad as nothing at all. 2895 | Design for failure. 2896 | Practicality beats purity. 2897 | Half measures are as bad as nothing at all. 2898 | Design for failure. 2899 | Practicality beats purity. 2900 | Half measures are as bad as nothing at all. 2901 | Keep it logically awesome. 2902 | Half measures are as bad as nothing at all. 2903 | Speak like a human. 2904 | It's not fully shipped until it's fast. 2905 | It's not fully shipped until it's fast. 2906 | Half measures are as bad as nothing at all. 2907 | Non-blocking is better than blocking. 2908 | Mind your words, they are important. 2909 | Anything added dilutes everything else. 2910 | Responsive is better than fast. 2911 | Encourage flow. 2912 | Favor focus over features. 2913 | Keep it logically awesome. 2914 | Keep it logically awesome. 2915 | Favor focus over features. 2916 | Avoid administrative distraction. 2917 | Approachable is better than simple. 2918 | Practicality beats purity. 2919 | Speak like a human. 2920 | It's not fully shipped until it's fast. 2921 | Favor focus over features. 2922 | Anything added dilutes everything else. 2923 | Keep it logically awesome. 2924 | Half measures are as bad as nothing at all. 2925 | Non-blocking is better than blocking. 2926 | It's not fully shipped until it's fast. 2927 | Speak like a human. 2928 | Half measures are as bad as nothing at all. 2929 | It's not fully shipped until it's fast. 2930 | Design for failure. 2931 | Favor focus over features. 2932 | Encourage flow. 2933 | Encourage flow. 2934 | Encourage flow. 2935 | Non-blocking is better than blocking. 2936 | Avoid administrative distraction. 2937 | Mind your words, they are important. 2938 | It's not fully shipped until it's fast. 2939 | Non-blocking is better than blocking. 2940 | Non-blocking is better than blocking. 2941 | Half measures are as bad as nothing at all. 2942 | It's not fully shipped until it's fast. 2943 | Approachable is better than simple. 2944 | Approachable is better than simple. 2945 | Encourage flow. 2946 | Encourage flow. 2947 | Practicality beats purity. 2948 | Non-blocking is better than blocking. 2949 | Mind your words, they are important. 2950 | It's not fully shipped until it's fast. 2951 | Encourage flow. 2952 | Responsive is better than fast. 2953 | Responsive is better than fast. 2954 | Encourage flow. 2955 | Practicality beats purity. 2956 | Speak like a human. 2957 | Responsive is better than fast. 2958 | Keep it logically awesome. 2959 | Keep it logically awesome. 2960 | Avoid administrative distraction. 2961 | Avoid administrative distraction. 2962 | Design for failure. 2963 | Anything added dilutes everything else. 2964 | Avoid administrative distraction. 2965 | Mind your words, they are important. 2966 | Speak like a human. 2967 | Keep it logically awesome. 2968 | Approachable is better than simple. 2969 | It's not fully shipped until it's fast. 2970 | Responsive is better than fast. 2971 | Encourage flow. 2972 | Design for failure. 2973 | Approachable is better than simple. 2974 | Half measures are as bad as nothing at all. 2975 | Speak like a human. 2976 | Practicality beats purity. 2977 | Design for failure. 2978 | Approachable is better than simple. 2979 | Half measures are as bad as nothing at all. 2980 | Anything added dilutes everything else. 2981 | Approachable is better than simple. 2982 | Favor focus over features. 2983 | Practicality beats purity. 2984 | Anything added dilutes everything else. 2985 | Speak like a human. 2986 | Mind your words, they are important. 2987 | Avoid administrative distraction. 2988 | It's not fully shipped until it's fast. 2989 | Approachable is better than simple. 2990 | Practicality beats purity. 2991 | It's not fully shipped until it's fast. 2992 | Non-blocking is better than blocking. 2993 | Half measures are as bad as nothing at all. 2994 | Keep it logically awesome. 2995 | Half measures are as bad as nothing at all. 2996 | Mind your words, they are important. 2997 | Half measures are as bad as nothing at all. 2998 | Responsive is better than fast. 2999 | Non-blocking is better than blocking. 3000 | Anything added dilutes everything else. 3001 | Design for failure. 3002 | Encourage flow. 3003 | Favor focus over features. 3004 | Encourage flow. 3005 | Encourage flow. 3006 | Approachable is better than simple. 3007 | Avoid administrative distraction. 3008 | Design for failure. 3009 | Favor focus over features. 3010 | Half measures are as bad as nothing at all. 3011 | Non-blocking is better than blocking. 3012 | Practicality beats purity. 3013 | Encourage flow. 3014 | Practicality beats purity. 3015 | Anything added dilutes everything else. 3016 | Non-blocking is better than blocking. 3017 | Keep it logically awesome. 3018 | Keep it logically awesome. 3019 | Design for failure. 3020 | Favor focus over features. 3021 | Encourage flow. 3022 | Half measures are as bad as nothing at all. 3023 | Half measures are as bad as nothing at all. 3024 | Favor focus over features. 3025 | Half measures are as bad as nothing at all. 3026 | Mind your words, they are important. 3027 | Keep it logically awesome. 3028 | Anything added dilutes everything else. 3029 | Keep it logically awesome. 3030 | Encourage flow. 3031 | Encourage flow. 3032 | Avoid administrative distraction. 3033 | Practicality beats purity. 3034 | Keep it logically awesome. 3035 | Non-blocking is better than blocking. 3036 | Half measures are as bad as nothing at all. 3037 | Speak like a human. 3038 | Keep it logically awesome. 3039 | Anything added dilutes everything else. 3040 | Speak like a human. 3041 | Keep it logically awesome. 3042 | Encourage flow. 3043 | Avoid administrative distraction. 3044 | Approachable is better than simple. 3045 | Non-blocking is better than blocking. 3046 | Practicality beats purity. 3047 | Favor focus over features. 3048 | Keep it logically awesome. 3049 | Keep it logically awesome. 3050 | Design for failure. 3051 | Mind your words, they are important. 3052 | Responsive is better than fast. 3053 | Responsive is better than fast. 3054 | Favor focus over features. 3055 | Speak like a human. 3056 | Mind your words, they are important. 3057 | It's not fully shipped until it's fast. 3058 | Design for failure. 3059 | Approachable is better than simple. 3060 | Approachable is better than simple. 3061 | Non-blocking is better than blocking. 3062 | Design for failure. 3063 | Practicality beats purity. 3064 | Anything added dilutes everything else. 3065 | Favor focus over features. 3066 | Encourage flow. 3067 | It's not fully shipped until it's fast. 3068 | Practicality beats purity. 3069 | Approachable is better than simple. 3070 | Mind your words, they are important. 3071 | Favor focus over features. 3072 | Encourage flow. 3073 | Avoid administrative distraction. 3074 | Keep it logically awesome. 3075 | Mind your words, they are important. 3076 | Responsive is better than fast. 3077 | Half measures are as bad as nothing at all. 3078 | Encourage flow. 3079 | Favor focus over features. 3080 | Favor focus over features. 3081 | Mind your words, they are important. 3082 | Anything added dilutes everything else. 3083 | Avoid administrative distraction. 3084 | Encourage flow. 3085 | Non-blocking is better than blocking. 3086 | It's not fully shipped until it's fast. 3087 | Speak like a human. 3088 | Speak like a human. 3089 | Encourage flow. 3090 | Anything added dilutes everything else. 3091 | It's not fully shipped until it's fast. 3092 | Design for failure. 3093 | Responsive is better than fast. 3094 | Half measures are as bad as nothing at all. 3095 | Non-blocking is better than blocking. 3096 | Practicality beats purity. 3097 | Responsive is better than fast. 3098 | Anything added dilutes everything else. 3099 | Keep it logically awesome. 3100 | Encourage flow. 3101 | Practicality beats purity. 3102 | Responsive is better than fast. 3103 | Practicality beats purity. 3104 | Design for failure. 3105 | Favor focus over features. 3106 | Practicality beats purity. 3107 | Approachable is better than simple. 3108 | Encourage flow. 3109 | Avoid administrative distraction. 3110 | Responsive is better than fast. 3111 | Practicality beats purity. 3112 | It's not fully shipped until it's fast. 3113 | Non-blocking is better than blocking. 3114 | Approachable is better than simple. 3115 | Non-blocking is better than blocking. 3116 | Favor focus over features. 3117 | Approachable is better than simple. 3118 | Avoid administrative distraction. 3119 | Half measures are as bad as nothing at all. 3120 | Mind your words, they are important. 3121 | Encourage flow. 3122 | Mind your words, they are important. 3123 | Non-blocking is better than blocking. 3124 | Approachable is better than simple. 3125 | It's not fully shipped until it's fast. 3126 | Anything added dilutes everything else. 3127 | Avoid administrative distraction. 3128 | Half measures are as bad as nothing at all. 3129 | Practicality beats purity. 3130 | Keep it logically awesome. 3131 | Mind your words, they are important. 3132 | It's not fully shipped until it's fast. 3133 | Approachable is better than simple. 3134 | Speak like a human. 3135 | Mind your words, they are important. 3136 | Favor focus over features. 3137 | Favor focus over features. 3138 | Non-blocking is better than blocking. 3139 | Approachable is better than simple. 3140 | Design for failure. 3141 | Approachable is better than simple. 3142 | Mind your words, they are important. 3143 | Keep it logically awesome. 3144 | Keep it logically awesome. 3145 | Practicality beats purity. 3146 | Practicality beats purity. 3147 | Approachable is better than simple. 3148 | Mind your words, they are important. 3149 | Speak like a human. 3150 | Mind your words, they are important. 3151 | It's not fully shipped until it's fast. 3152 | Design for failure. 3153 | Anything added dilutes everything else. 3154 | Mind your words, they are important. 3155 | Anything added dilutes everything else. 3156 | It's not fully shipped until it's fast. 3157 | Mind your words, they are important. 3158 | Anything added dilutes everything else. 3159 | Encourage flow. 3160 | Approachable is better than simple. 3161 | Encourage flow. 3162 | Mind your words, they are important. 3163 | Favor focus over features. 3164 | Design for failure. 3165 | Half measures are as bad as nothing at all. 3166 | Encourage flow. 3167 | Approachable is better than simple. 3168 | It's not fully shipped until it's fast. 3169 | Practicality beats purity. 3170 | Mind your words, they are important. 3171 | Mind your words, they are important. 3172 | Favor focus over features. 3173 | Speak like a human. 3174 | Favor focus over features. 3175 | Design for failure. 3176 | Design for failure. 3177 | Speak like a human. 3178 | Speak like a human. 3179 | Design for failure. 3180 | Speak like a human. 3181 | Anything added dilutes everything else. 3182 | Avoid administrative distraction. 3183 | Avoid administrative distraction. 3184 | Half measures are as bad as nothing at all. 3185 | Non-blocking is better than blocking. 3186 | Non-blocking is better than blocking. 3187 | Design for failure. 3188 | It's not fully shipped until it's fast. 3189 | It's not fully shipped until it's fast. 3190 | Speak like a human. 3191 | Responsive is better than fast. 3192 | Encourage flow. 3193 | Approachable is better than simple. 3194 | Encourage flow. 3195 | Favor focus over features. 3196 | Design for failure. 3197 | It's not fully shipped until it's fast. 3198 | Non-blocking is better than blocking. 3199 | Non-blocking is better than blocking. 3200 | Encourage flow. 3201 | Keep it logically awesome. 3202 | Favor focus over features. 3203 | Half measures are as bad as nothing at all. 3204 | Speak like a human. 3205 | Encourage flow. 3206 | Anything added dilutes everything else. 3207 | Speak like a human. 3208 | Practicality beats purity. 3209 | Encourage flow. 3210 | Responsive is better than fast. 3211 | Design for failure. 3212 | It's not fully shipped until it's fast. 3213 | Approachable is better than simple. 3214 | Keep it logically awesome. 3215 | It's not fully shipped until it's fast. 3216 | Favor focus over features. 3217 | Anything added dilutes everything else. 3218 | Speak like a human. 3219 | Practicality beats purity. 3220 | Design for failure. 3221 | Half measures are as bad as nothing at all. 3222 | Anything added dilutes everything else. 3223 | Anything added dilutes everything else. 3224 | Speak like a human. 3225 | Half measures are as bad as nothing at all. 3226 | Avoid administrative distraction. 3227 | Speak like a human. 3228 | Non-blocking is better than blocking. 3229 | Speak like a human. 3230 | Avoid administrative distraction. 3231 | Non-blocking is better than blocking. 3232 | Approachable is better than simple. 3233 | Anything added dilutes everything else. 3234 | Favor focus over features. 3235 | It's not fully shipped until it's fast. 3236 | Favor focus over features. 3237 | Half measures are as bad as nothing at all. 3238 | Keep it logically awesome. 3239 | Practicality beats purity. 3240 | Practicality beats purity. 3241 | Design for failure. 3242 | Design for failure. 3243 | Speak like a human. 3244 | Approachable is better than simple. 3245 | Responsive is better than fast. 3246 | It's not fully shipped until it's fast. 3247 | Speak like a human. 3248 | Encourage flow. 3249 | Half measures are as bad as nothing at all. 3250 | Speak like a human. 3251 | Encourage flow. 3252 | Approachable is better than simple. 3253 | Favor focus over features. 3254 | Anything added dilutes everything else. 3255 | Avoid administrative distraction. 3256 | It's not fully shipped until it's fast. 3257 | Anything added dilutes everything else. 3258 | Anything added dilutes everything else. 3259 | Design for failure. 3260 | Half measures are as bad as nothing at all. 3261 | Responsive is better than fast. 3262 | Design for failure. 3263 | Encourage flow. 3264 | Half measures are as bad as nothing at all. 3265 | Half measures are as bad as nothing at all. 3266 | Approachable is better than simple. 3267 | Half measures are as bad as nothing at all. 3268 | Approachable is better than simple. 3269 | Avoid administrative distraction. 3270 | Avoid administrative distraction. 3271 | It's not fully shipped until it's fast. 3272 | Speak like a human. 3273 | Design for failure. 3274 | Keep it logically awesome. 3275 | Keep it logically awesome. 3276 | Responsive is better than fast. 3277 | Speak like a human. 3278 | Design for failure. 3279 | Mind your words, they are important. 3280 | Mind your words, they are important. 3281 | Half measures are as bad as nothing at all. 3282 | Speak like a human. 3283 | Approachable is better than simple. 3284 | Speak like a human. 3285 | Half measures are as bad as nothing at all. 3286 | Avoid administrative distraction. 3287 | Practicality beats purity. 3288 | It's not fully shipped until it's fast. 3289 | Approachable is better than simple. 3290 | Anything added dilutes everything else. 3291 | Speak like a human. 3292 | Mind your words, they are important. 3293 | Encourage flow. 3294 | Half measures are as bad as nothing at all. 3295 | Non-blocking is better than blocking. 3296 | Half measures are as bad as nothing at all. 3297 | Mind your words, they are important. 3298 | Practicality beats purity. 3299 | Design for failure. 3300 | Speak like a human. 3301 | Mind your words, they are important. 3302 | Speak like a human. 3303 | Favor focus over features. 3304 | Non-blocking is better than blocking. 3305 | Keep it logically awesome. 3306 | Anything added dilutes everything else. 3307 | Anything added dilutes everything else. 3308 | Approachable is better than simple. 3309 | Anything added dilutes everything else. 3310 | Encourage flow. 3311 | Keep it logically awesome. 3312 | Keep it logically awesome. 3313 | Anything added dilutes everything else. 3314 | Keep it logically awesome. 3315 | Speak like a human. 3316 | Anything added dilutes everything else. 3317 | Design for failure. 3318 | Practicality beats purity. 3319 | Mind your words, they are important. 3320 | Speak like a human. 3321 | Keep it logically awesome. 3322 | Half measures are as bad as nothing at all. 3323 | Keep it logically awesome. 3324 | Keep it logically awesome. 3325 | Non-blocking is better than blocking. 3326 | Responsive is better than fast. 3327 | Responsive is better than fast. 3328 | Keep it logically awesome. 3329 | Non-blocking is better than blocking. 3330 | Anything added dilutes everything else. 3331 | Mind your words, they are important. 3332 | Half measures are as bad as nothing at all. 3333 | Design for failure. 3334 | Approachable is better than simple. 3335 | Design for failure. 3336 | Mind your words, they are important. 3337 | Practicality beats purity. 3338 | Half measures are as bad as nothing at all. 3339 | Half measures are as bad as nothing at all. 3340 | Design for failure. 3341 | Anything added dilutes everything else. 3342 | Favor focus over features. 3343 | Non-blocking is better than blocking. 3344 | Encourage flow. 3345 | Keep it logically awesome. 3346 | Keep it logically awesome. 3347 | Encourage flow. 3348 | Non-blocking is better than blocking. 3349 | Speak like a human. 3350 | Approachable is better than simple. 3351 | Avoid administrative distraction. 3352 | Mind your words, they are important. 3353 | Non-blocking is better than blocking. 3354 | Half measures are as bad as nothing at all. 3355 | Favor focus over features. 3356 | Half measures are as bad as nothing at all. 3357 | It's not fully shipped until it's fast. 3358 | It's not fully shipped until it's fast. 3359 | It's not fully shipped until it's fast. 3360 | Avoid administrative distraction. 3361 | Mind your words, they are important. 3362 | Design for failure. 3363 | Half measures are as bad as nothing at all. 3364 | Encourage flow. 3365 | Avoid administrative distraction. 3366 | Approachable is better than simple. 3367 | Anything added dilutes everything else. 3368 | Practicality beats purity. 3369 | Mind your words, they are important. 3370 | Speak like a human. 3371 | Keep it logically awesome. 3372 | Design for failure. 3373 | Encourage flow. 3374 | Encourage flow. 3375 | Anything added dilutes everything else. 3376 | Half measures are as bad as nothing at all. 3377 | It's not fully shipped until it's fast. 3378 | It's not fully shipped until it's fast. 3379 | Keep it logically awesome. 3380 | Favor focus over features. 3381 | Half measures are as bad as nothing at all. 3382 | Speak like a human. 3383 | Keep it logically awesome. 3384 | Practicality beats purity. 3385 | Avoid administrative distraction. 3386 | Approachable is better than simple. 3387 | Mind your words, they are important. 3388 | Keep it logically awesome. 3389 | Keep it logically awesome. 3390 | It's not fully shipped until it's fast. 3391 | Keep it logically awesome. 3392 | Avoid administrative distraction. 3393 | Anything added dilutes everything else. 3394 | Approachable is better than simple. 3395 | Speak like a human. 3396 | Practicality beats purity. 3397 | Half measures are as bad as nothing at all. 3398 | Keep it logically awesome. 3399 | Avoid administrative distraction. 3400 | Responsive is better than fast. 3401 | Responsive is better than fast. 3402 | Half measures are as bad as nothing at all. 3403 | Non-blocking is better than blocking. 3404 | Responsive is better than fast. 3405 | Speak like a human. 3406 | Keep it logically awesome. 3407 | Speak like a human. 3408 | Responsive is better than fast. 3409 | Non-blocking is better than blocking. 3410 | Speak like a human. 3411 | Half measures are as bad as nothing at all. 3412 | Encourage flow. 3413 | Avoid administrative distraction. 3414 | Practicality beats purity. 3415 | Non-blocking is better than blocking. 3416 | Approachable is better than simple. 3417 | Responsive is better than fast. 3418 | Speak like a human. 3419 | Keep it logically awesome. 3420 | Mind your words, they are important. 3421 | Non-blocking is better than blocking. 3422 | Design for failure. 3423 | Anything added dilutes everything else. 3424 | Speak like a human. 3425 | Encourage flow. 3426 | Non-blocking is better than blocking. 3427 | Encourage flow. 3428 | Mind your words, they are important. 3429 | It's not fully shipped until it's fast. 3430 | Approachable is better than simple. 3431 | Responsive is better than fast. 3432 | Speak like a human. 3433 | Half measures are as bad as nothing at all. 3434 | Half measures are as bad as nothing at all. 3435 | It's not fully shipped until it's fast. 3436 | Responsive is better than fast. 3437 | Avoid administrative distraction. 3438 | Practicality beats purity. 3439 | Anything added dilutes everything else. 3440 | Non-blocking is better than blocking. 3441 | Non-blocking is better than blocking. 3442 | Approachable is better than simple. 3443 | Approachable is better than simple. 3444 | Mind your words, they are important. 3445 | Practicality beats purity. 3446 | Half measures are as bad as nothing at all. 3447 | Keep it logically awesome. 3448 | Avoid administrative distraction. 3449 | Practicality beats purity. 3450 | Non-blocking is better than blocking. 3451 | Non-blocking is better than blocking. 3452 | Practicality beats purity. 3453 | Avoid administrative distraction. 3454 | Responsive is better than fast. 3455 | It's not fully shipped until it's fast. 3456 | Mind your words, they are important. 3457 | Anything added dilutes everything else. 3458 | Mind your words, they are important. 3459 | Mind your words, they are important. 3460 | It's not fully shipped until it's fast. 3461 | Non-blocking is better than blocking. 3462 | Design for failure. 3463 | Design for failure. 3464 | Half measures are as bad as nothing at all. 3465 | Speak like a human. 3466 | Approachable is better than simple. 3467 | Approachable is better than simple. 3468 | Practicality beats purity. 3469 | It's not fully shipped until it's fast. 3470 | Half measures are as bad as nothing at all. 3471 | Avoid administrative distraction. 3472 | Avoid administrative distraction. 3473 | Speak like a human. 3474 | Keep it logically awesome. 3475 | Favor focus over features. 3476 | Anything added dilutes everything else. 3477 | Anything added dilutes everything else. 3478 | Encourage flow. 3479 | Approachable is better than simple. 3480 | Approachable is better than simple. 3481 | Responsive is better than fast. 3482 | Practicality beats purity. 3483 | Encourage flow. 3484 | Encourage flow. 3485 | It's not fully shipped until it's fast. 3486 | Practicality beats purity. 3487 | Mind your words, they are important. 3488 | Practicality beats purity. 3489 | Speak like a human. 3490 | Favor focus over features. 3491 | Half measures are as bad as nothing at all. 3492 | Practicality beats purity. 3493 | Practicality beats purity. 3494 | Design for failure. 3495 | Approachable is better than simple. 3496 | Practicality beats purity. 3497 | Anything added dilutes everything else. 3498 | Anything added dilutes everything else. 3499 | It's not fully shipped until it's fast. 3500 | Speak like a human. 3501 | Mind your words, they are important. 3502 | Encourage flow. 3503 | Avoid administrative distraction. 3504 | Favor focus over features. 3505 | It's not fully shipped until it's fast. 3506 | Favor focus over features. 3507 | Responsive is better than fast. 3508 | Approachable is better than simple. 3509 | Encourage flow. 3510 | Speak like a human. 3511 | Mind your words, they are important. 3512 | Non-blocking is better than blocking. 3513 | Responsive is better than fast. 3514 | Design for failure. 3515 | Responsive is better than fast. 3516 | Practicality beats purity. 3517 | Keep it logically awesome. 3518 | Mind your words, they are important. 3519 | Avoid administrative distraction. 3520 | Anything added dilutes everything else. 3521 | Anything added dilutes everything else. 3522 | Anything added dilutes everything else. 3523 | Favor focus over features. 3524 | Responsive is better than fast. 3525 | Non-blocking is better than blocking. 3526 | Favor focus over features. 3527 | Approachable is better than simple. 3528 | Non-blocking is better than blocking. 3529 | Non-blocking is better than blocking. 3530 | Non-blocking is better than blocking. 3531 | Responsive is better than fast. 3532 | Approachable is better than simple. 3533 | Half measures are as bad as nothing at all. 3534 | It's not fully shipped until it's fast. 3535 | Keep it logically awesome. 3536 | Design for failure. 3537 | Half measures are as bad as nothing at all. 3538 | It's not fully shipped until it's fast. 3539 | Non-blocking is better than blocking. 3540 | Approachable is better than simple. 3541 | Speak like a human. 3542 | Encourage flow. 3543 | It's not fully shipped until it's fast. 3544 | Anything added dilutes everything else. 3545 | It's not fully shipped until it's fast. 3546 | Practicality beats purity. 3547 | Half measures are as bad as nothing at all. 3548 | Design for failure. 3549 | Half measures are as bad as nothing at all. 3550 | Encourage flow. 3551 | Speak like a human. 3552 | Keep it logically awesome. 3553 | Responsive is better than fast. 3554 | It's not fully shipped until it's fast. 3555 | Design for failure. 3556 | Approachable is better than simple. 3557 | It's not fully shipped until it's fast. 3558 | Half measures are as bad as nothing at all. 3559 | Practicality beats purity. 3560 | Practicality beats purity. 3561 | Speak like a human. 3562 | Approachable is better than simple. 3563 | Mind your words, they are important. 3564 | Encourage flow. 3565 | Design for failure. 3566 | Speak like a human. 3567 | Avoid administrative distraction. 3568 | Approachable is better than simple. 3569 | Non-blocking is better than blocking. 3570 | Speak like a human. 3571 | Anything added dilutes everything else. 3572 | It's not fully shipped until it's fast. 3573 | Speak like a human. 3574 | Responsive is better than fast. 3575 | Avoid administrative distraction. 3576 | Practicality beats purity. 3577 | Mind your words, they are important. 3578 | Encourage flow. 3579 | Avoid administrative distraction. 3580 | Keep it logically awesome. 3581 | Favor focus over features. 3582 | Practicality beats purity. 3583 | Speak like a human. 3584 | Keep it logically awesome. 3585 | Avoid administrative distraction. 3586 | Speak like a human. 3587 | It's not fully shipped until it's fast. 3588 | Practicality beats purity. 3589 | Avoid administrative distraction. 3590 | Mind your words, they are important. 3591 | It's not fully shipped until it's fast. 3592 | Favor focus over features. 3593 | Half measures are as bad as nothing at all. 3594 | Half measures are as bad as nothing at all. 3595 | Encourage flow. 3596 | Encourage flow. 3597 | Speak like a human. 3598 | Avoid administrative distraction. 3599 | Practicality beats purity. 3600 | Approachable is better than simple. 3601 | Anything added dilutes everything else. 3602 | Favor focus over features. 3603 | Mind your words, they are important. 3604 | Avoid administrative distraction. 3605 | Mind your words, they are important. 3606 | Practicality beats purity. 3607 | Design for failure. 3608 | Responsive is better than fast. 3609 | Anything added dilutes everything else. 3610 | Approachable is better than simple. 3611 | Speak like a human. 3612 | Approachable is better than simple. 3613 | Keep it logically awesome. 3614 | Anything added dilutes everything else. 3615 | Anything added dilutes everything else. 3616 | Approachable is better than simple. 3617 | Favor focus over features. 3618 | Encourage flow. 3619 | Mind your words, they are important. 3620 | Responsive is better than fast. 3621 | Design for failure. 3622 | Non-blocking is better than blocking. 3623 | Favor focus over features. 3624 | Speak like a human. 3625 | Keep it logically awesome. 3626 | Practicality beats purity. 3627 | Mind your words, they are important. 3628 | Responsive is better than fast. 3629 | Half measures are as bad as nothing at all. 3630 | Keep it logically awesome. 3631 | Mind your words, they are important. 3632 | It's not fully shipped until it's fast. 3633 | Half measures are as bad as nothing at all. 3634 | Keep it logically awesome. 3635 | Avoid administrative distraction. 3636 | Favor focus over features. 3637 | Keep it logically awesome. 3638 | Half measures are as bad as nothing at all. 3639 | Speak like a human. 3640 | Keep it logically awesome. 3641 | It's not fully shipped until it's fast. 3642 | Speak like a human. 3643 | Keep it logically awesome. 3644 | Practicality beats purity. 3645 | It's not fully shipped until it's fast. 3646 | Practicality beats purity. 3647 | Keep it logically awesome. 3648 | Approachable is better than simple. 3649 | It's not fully shipped until it's fast. 3650 | Mind your words, they are important. 3651 | Avoid administrative distraction. 3652 | Responsive is better than fast. 3653 | It's not fully shipped until it's fast. 3654 | Anything added dilutes everything else. 3655 | Avoid administrative distraction. 3656 | Half measures are as bad as nothing at all. 3657 | Design for failure. 3658 | Half measures are as bad as nothing at all. 3659 | Non-blocking is better than blocking. 3660 | Anything added dilutes everything else. 3661 | Avoid administrative distraction. 3662 | Avoid administrative distraction. 3663 | Speak like a human. 3664 | Responsive is better than fast. 3665 | It's not fully shipped until it's fast. 3666 | Half measures are as bad as nothing at all. 3667 | Keep it logically awesome. 3668 | Anything added dilutes everything else. 3669 | Speak like a human. 3670 | Encourage flow. 3671 | Responsive is better than fast. 3672 | Keep it logically awesome. 3673 | It's not fully shipped until it's fast. 3674 | Non-blocking is better than blocking. 3675 | Keep it logically awesome. 3676 | It's not fully shipped until it's fast. 3677 | Keep it logically awesome. 3678 | Anything added dilutes everything else. 3679 | Anything added dilutes everything else. 3680 | Favor focus over features. 3681 | Approachable is better than simple. 3682 | Avoid administrative distraction. 3683 | Practicality beats purity. 3684 | Mind your words, they are important. 3685 | Mind your words, they are important. 3686 | It's not fully shipped until it's fast. 3687 | Encourage flow. 3688 | Design for failure. 3689 | It's not fully shipped until it's fast. 3690 | Practicality beats purity. 3691 | Avoid administrative distraction. 3692 | Approachable is better than simple. 3693 | Practicality beats purity. 3694 | Avoid administrative distraction. 3695 | Approachable is better than simple. 3696 | It's not fully shipped until it's fast. 3697 | Encourage flow. 3698 | Speak like a human. 3699 | It's not fully shipped until it's fast. 3700 | Half measures are as bad as nothing at all. 3701 | Non-blocking is better than blocking. 3702 | Speak like a human. 3703 | Anything added dilutes everything else. 3704 | Half measures are as bad as nothing at all. 3705 | Non-blocking is better than blocking. 3706 | Avoid administrative distraction. 3707 | Responsive is better than fast. 3708 | Non-blocking is better than blocking. 3709 | Design for failure. 3710 | Favor focus over features. 3711 | Design for failure. 3712 | Avoid administrative distraction. 3713 | Anything added dilutes everything else. 3714 | Favor focus over features. 3715 | It's not fully shipped until it's fast. 3716 | Mind your words, they are important. 3717 | Encourage flow. 3718 | Responsive is better than fast. 3719 | Speak like a human. 3720 | Anything added dilutes everything else. 3721 | Speak like a human. 3722 | Mind your words, they are important. 3723 | It's not fully shipped until it's fast. 3724 | Non-blocking is better than blocking. 3725 | Approachable is better than simple. 3726 | Speak like a human. 3727 | Keep it logically awesome. 3728 | Responsive is better than fast. 3729 | It's not fully shipped until it's fast. 3730 | Design for failure. 3731 | Mind your words, they are important. 3732 | Speak like a human. 3733 | Anything added dilutes everything else. 3734 | Half measures are as bad as nothing at all. 3735 | Keep it logically awesome. 3736 | Half measures are as bad as nothing at all. 3737 | Responsive is better than fast. 3738 | Avoid administrative distraction. 3739 | Half measures are as bad as nothing at all. 3740 | It's not fully shipped until it's fast. 3741 | It's not fully shipped until it's fast. 3742 | Design for failure. 3743 | Non-blocking is better than blocking. 3744 | Half measures are as bad as nothing at all. 3745 | Practicality beats purity. 3746 | Favor focus over features. 3747 | Non-blocking is better than blocking. 3748 | Approachable is better than simple. 3749 | Practicality beats purity. 3750 | Design for failure. 3751 | Design for failure. 3752 | Design for failure. 3753 | Anything added dilutes everything else. 3754 | It's not fully shipped until it's fast. 3755 | Mind your words, they are important. 3756 | It's not fully shipped until it's fast. 3757 | Practicality beats purity. 3758 | Non-blocking is better than blocking. 3759 | Favor focus over features. 3760 | Encourage flow. 3761 | Favor focus over features. 3762 | Keep it logically awesome. 3763 | Avoid administrative distraction. 3764 | Speak like a human. 3765 | Encourage flow. 3766 | Design for failure. 3767 | Half measures are as bad as nothing at all. 3768 | Non-blocking is better than blocking. 3769 | Keep it logically awesome. 3770 | Favor focus over features. 3771 | Non-blocking is better than blocking. 3772 | Anything added dilutes everything else. 3773 | Responsive is better than fast. 3774 | Anything added dilutes everything else. 3775 | Anything added dilutes everything else. 3776 | Favor focus over features. 3777 | Approachable is better than simple. 3778 | It's not fully shipped until it's fast. 3779 | Encourage flow. 3780 | Practicality beats purity. 3781 | Responsive is better than fast. 3782 | Practicality beats purity. 3783 | Speak like a human. 3784 | Half measures are as bad as nothing at all. 3785 | Anything added dilutes everything else. 3786 | Keep it logically awesome. 3787 | Half measures are as bad as nothing at all. 3788 | Speak like a human. 3789 | Anything added dilutes everything else. 3790 | Keep it logically awesome. 3791 | Encourage flow. 3792 | Speak like a human. 3793 | Approachable is better than simple. 3794 | Encourage flow. 3795 | Half measures are as bad as nothing at all. 3796 | Design for failure. 3797 | Half measures are as bad as nothing at all. 3798 | Favor focus over features. 3799 | Favor focus over features. 3800 | Responsive is better than fast. 3801 | Half measures are as bad as nothing at all. 3802 | Speak like a human. 3803 | Keep it logically awesome. 3804 | Design for failure. 3805 | Practicality beats purity. 3806 | Speak like a human. 3807 | Avoid administrative distraction. 3808 | Speak like a human. 3809 | Encourage flow. 3810 | Anything added dilutes everything else. 3811 | Mind your words, they are important. 3812 | Half measures are as bad as nothing at all. 3813 | It's not fully shipped until it's fast. 3814 | Design for failure. 3815 | It's not fully shipped until it's fast. 3816 | Practicality beats purity. 3817 | Approachable is better than simple. 3818 | Half measures are as bad as nothing at all. 3819 | Practicality beats purity. 3820 | Practicality beats purity. 3821 | Speak like a human. 3822 | Non-blocking is better than blocking. 3823 | Favor focus over features. 3824 | Mind your words, they are important. 3825 | Mind your words, they are important. 3826 | Encourage flow. 3827 | Mind your words, they are important. 3828 | Favor focus over features. 3829 | Anything added dilutes everything else. 3830 | Approachable is better than simple. 3831 | Encourage flow. 3832 | Practicality beats purity. 3833 | Anything added dilutes everything else. 3834 | Practicality beats purity. 3835 | Favor focus over features. 3836 | Anything added dilutes everything else. 3837 | Avoid administrative distraction. 3838 | Encourage flow. 3839 | It's not fully shipped until it's fast. 3840 | Responsive is better than fast. 3841 | Approachable is better than simple. 3842 | Keep it logically awesome. 3843 | Mind your words, they are important. 3844 | It's not fully shipped until it's fast. 3845 | Speak like a human. 3846 | Keep it logically awesome. 3847 | Design for failure. 3848 | Design for failure. 3849 | Speak like a human. 3850 | Approachable is better than simple. 3851 | Non-blocking is better than blocking. 3852 | Responsive is better than fast. 3853 | Non-blocking is better than blocking. 3854 | Encourage flow. 3855 | Avoid administrative distraction. 3856 | Mind your words, they are important. 3857 | Avoid administrative distraction. 3858 | Responsive is better than fast. 3859 | Half measures are as bad as nothing at all. 3860 | Anything added dilutes everything else. 3861 | It's not fully shipped until it's fast. 3862 | Mind your words, they are important. 3863 | Keep it logically awesome. 3864 | Speak like a human. 3865 | Keep it logically awesome. 3866 | Design for failure. 3867 | Practicality beats purity. 3868 | Speak like a human. 3869 | Responsive is better than fast. 3870 | Design for failure. 3871 | Speak like a human. 3872 | Half measures are as bad as nothing at all. 3873 | Encourage flow. 3874 | Avoid administrative distraction. 3875 | Encourage flow. 3876 | Favor focus over features. 3877 | Half measures are as bad as nothing at all. 3878 | Half measures are as bad as nothing at all. 3879 | Speak like a human. 3880 | Speak like a human. 3881 | Responsive is better than fast. 3882 | Keep it logically awesome. 3883 | Avoid administrative distraction. 3884 | Non-blocking is better than blocking. 3885 | Favor focus over features. 3886 | Speak like a human. 3887 | Approachable is better than simple. 3888 | Encourage flow. 3889 | Approachable is better than simple. 3890 | Anything added dilutes everything else. 3891 | Favor focus over features. 3892 | Anything added dilutes everything else. 3893 | Non-blocking is better than blocking. 3894 | Mind your words, they are important. 3895 | Favor focus over features. 3896 | Approachable is better than simple. 3897 | Practicality beats purity. 3898 | Half measures are as bad as nothing at all. 3899 | Practicality beats purity. 3900 | Favor focus over features. 3901 | Anything added dilutes everything else. 3902 | Practicality beats purity. 3903 | Encourage flow. 3904 | Speak like a human. 3905 | Half measures are as bad as nothing at all. 3906 | Half measures are as bad as nothing at all. 3907 | Practicality beats purity. 3908 | It's not fully shipped until it's fast. 3909 | Non-blocking is better than blocking. 3910 | Keep it logically awesome. 3911 | Avoid administrative distraction. 3912 | Encourage flow. 3913 | Half measures are as bad as nothing at all. 3914 | Practicality beats purity. 3915 | Design for failure. 3916 | Avoid administrative distraction. 3917 | Favor focus over features. 3918 | Favor focus over features. 3919 | Practicality beats purity. 3920 | Practicality beats purity. 3921 | Non-blocking is better than blocking. 3922 | Approachable is better than simple. 3923 | Responsive is better than fast. 3924 | Favor focus over features. 3925 | Approachable is better than simple. 3926 | Favor focus over features. 3927 | It's not fully shipped until it's fast. 3928 | Keep it logically awesome. 3929 | Design for failure. 3930 | Favor focus over features. 3931 | Avoid administrative distraction. 3932 | Speak like a human. 3933 | Mind your words, they are important. 3934 | Half measures are as bad as nothing at all. 3935 | Keep it logically awesome. 3936 | Design for failure. 3937 | Avoid administrative distraction. 3938 | Half measures are as bad as nothing at all. 3939 | Favor focus over features. 3940 | Non-blocking is better than blocking. 3941 | Practicality beats purity. 3942 | Encourage flow. 3943 | Responsive is better than fast. 3944 | Half measures are as bad as nothing at all. 3945 | Responsive is better than fast. 3946 | It's not fully shipped until it's fast. 3947 | Favor focus over features. 3948 | Favor focus over features. 3949 | Non-blocking is better than blocking. 3950 | Keep it logically awesome. 3951 | It's not fully shipped until it's fast. 3952 | Anything added dilutes everything else. 3953 | Practicality beats purity. 3954 | Non-blocking is better than blocking. 3955 | Practicality beats purity. 3956 | Anything added dilutes everything else. 3957 | It's not fully shipped until it's fast. 3958 | Favor focus over features. 3959 | Anything added dilutes everything else. 3960 | It's not fully shipped until it's fast. 3961 | Non-blocking is better than blocking. 3962 | Mind your words, they are important. 3963 | Keep it logically awesome. 3964 | Responsive is better than fast. 3965 | Anything added dilutes everything else. 3966 | Encourage flow. 3967 | Half measures are as bad as nothing at all. 3968 | Anything added dilutes everything else. 3969 | Approachable is better than simple. 3970 | Responsive is better than fast. 3971 | Half measures are as bad as nothing at all. 3972 | Favor focus over features. 3973 | Approachable is better than simple. 3974 | It's not fully shipped until it's fast. 3975 | Design for failure. 3976 | Speak like a human. 3977 | Practicality beats purity. 3978 | Speak like a human. 3979 | Practicality beats purity. 3980 | Approachable is better than simple. 3981 | It's not fully shipped until it's fast. 3982 | Half measures are as bad as nothing at all. 3983 | Approachable is better than simple. 3984 | Speak like a human. 3985 | Mind your words, they are important. 3986 | Favor focus over features. 3987 | Avoid administrative distraction. 3988 | Encourage flow. 3989 | Keep it logically awesome. 3990 | Half measures are as bad as nothing at all. 3991 | Favor focus over features. 3992 | Half measures are as bad as nothing at all. 3993 | Mind your words, they are important. 3994 | Avoid administrative distraction. 3995 | Design for failure. 3996 | Non-blocking is better than blocking. 3997 | Half measures are as bad as nothing at all. 3998 | Practicality beats purity. 3999 | It's not fully shipped until it's fast. 4000 | Encourage flow. 4001 | Mind your words, they are important. 4002 | Non-blocking is better than blocking. 4003 | Favor focus over features. 4004 | Encourage flow. 4005 | Favor focus over features. 4006 | Practicality beats purity. 4007 | Non-blocking is better than blocking. 4008 | Non-blocking is better than blocking. 4009 | Anything added dilutes everything else. 4010 | Anything added dilutes everything else. 4011 | Favor focus over features. 4012 | Responsive is better than fast. 4013 | Encourage flow. 4014 | Approachable is better than simple. 4015 | Design for failure. 4016 | Encourage flow. 4017 | Design for failure. 4018 | Practicality beats purity. 4019 | Responsive is better than fast. 4020 | Encourage flow. 4021 | Avoid administrative distraction. 4022 | Practicality beats purity. 4023 | Mind your words, they are important. 4024 | Speak like a human. 4025 | Practicality beats purity. 4026 | Half measures are as bad as nothing at all. 4027 | Avoid administrative distraction. 4028 | Anything added dilutes everything else. 4029 | Encourage flow. 4030 | It's not fully shipped until it's fast. 4031 | Half measures are as bad as nothing at all. 4032 | Approachable is better than simple. 4033 | Favor focus over features. 4034 | It's not fully shipped until it's fast. 4035 | Avoid administrative distraction. 4036 | Approachable is better than simple. 4037 | Mind your words, they are important. 4038 | Mind your words, they are important. 4039 | Responsive is better than fast. 4040 | Avoid administrative distraction. 4041 | Approachable is better than simple. 4042 | Avoid administrative distraction. 4043 | It's not fully shipped until it's fast. 4044 | Approachable is better than simple. 4045 | Approachable is better than simple. 4046 | Speak like a human. 4047 | Avoid administrative distraction. 4048 | Encourage flow. 4049 | Approachable is better than simple. 4050 | Speak like a human. 4051 | Encourage flow. 4052 | Speak like a human. 4053 | Half measures are as bad as nothing at all. 4054 | Responsive is better than fast. 4055 | Anything added dilutes everything else. 4056 | It's not fully shipped until it's fast. 4057 | Keep it logically awesome. 4058 | Mind your words, they are important. 4059 | Half measures are as bad as nothing at all. 4060 | Keep it logically awesome. 4061 | Speak like a human. 4062 | Half measures are as bad as nothing at all. 4063 | Non-blocking is better than blocking. 4064 | Responsive is better than fast. 4065 | Anything added dilutes everything else. 4066 | Practicality beats purity. 4067 | Encourage flow. 4068 | Anything added dilutes everything else. 4069 | Encourage flow. 4070 | Mind your words, they are important. 4071 | Responsive is better than fast. 4072 | It's not fully shipped until it's fast. 4073 | It's not fully shipped until it's fast. 4074 | Non-blocking is better than blocking. 4075 | Speak like a human. 4076 | Non-blocking is better than blocking. 4077 | Anything added dilutes everything else. 4078 | Avoid administrative distraction. 4079 | It's not fully shipped until it's fast. 4080 | Keep it logically awesome. 4081 | Mind your words, they are important. 4082 | Approachable is better than simple. 4083 | It's not fully shipped until it's fast. 4084 | Anything added dilutes everything else. 4085 | Keep it logically awesome. 4086 | Responsive is better than fast. 4087 | Favor focus over features. 4088 | Practicality beats purity. 4089 | Design for failure. 4090 | Favor focus over features. 4091 | Practicality beats purity. 4092 | Favor focus over features. 4093 | Design for failure. 4094 | Anything added dilutes everything else. 4095 | Approachable is better than simple. 4096 | Speak like a human. 4097 | Approachable is better than simple. 4098 | Non-blocking is better than blocking. 4099 | Responsive is better than fast. 4100 | Practicality beats purity. 4101 | Practicality beats purity. 4102 | Avoid administrative distraction. 4103 | Encourage flow. 4104 | Practicality beats purity. 4105 | Keep it logically awesome. 4106 | Approachable is better than simple. 4107 | Approachable is better than simple. 4108 | Non-blocking is better than blocking. 4109 | Non-blocking is better than blocking. 4110 | Mind your words, they are important. 4111 | Responsive is better than fast. 4112 | It's not fully shipped until it's fast. 4113 | Practicality beats purity. 4114 | Keep it logically awesome. 4115 | Half measures are as bad as nothing at all. 4116 | Mind your words, they are important. 4117 | Mind your words, they are important. 4118 | Practicality beats purity. 4119 | Approachable is better than simple. 4120 | It's not fully shipped until it's fast. 4121 | Practicality beats purity. 4122 | Mind your words, they are important. 4123 | Avoid administrative distraction. 4124 | Favor focus over features. 4125 | Design for failure. 4126 | Responsive is better than fast. 4127 | Responsive is better than fast. 4128 | Favor focus over features. 4129 | Keep it logically awesome. 4130 | Speak like a human. 4131 | Keep it logically awesome. 4132 | Speak like a human. 4133 | Half measures are as bad as nothing at all. 4134 | Design for failure. 4135 | Anything added dilutes everything else. 4136 | Non-blocking is better than blocking. 4137 | Half measures are as bad as nothing at all. 4138 | Non-blocking is better than blocking. 4139 | Half measures are as bad as nothing at all. 4140 | Favor focus over features. 4141 | Speak like a human. 4142 | Speak like a human. 4143 | Anything added dilutes everything else. 4144 | Encourage flow. 4145 | Encourage flow. 4146 | Encourage flow. 4147 | Anything added dilutes everything else. 4148 | Anything added dilutes everything else. 4149 | Avoid administrative distraction. 4150 | Non-blocking is better than blocking. 4151 | Avoid administrative distraction. 4152 | Mind your words, they are important. 4153 | Avoid administrative distraction. 4154 | Approachable is better than simple. 4155 | Keep it logically awesome. 4156 | Design for failure. 4157 | Anything added dilutes everything else. 4158 | Mind your words, they are important. 4159 | Design for failure. 4160 | Mind your words, they are important. 4161 | Speak like a human. 4162 | Responsive is better than fast. 4163 | Mind your words, they are important. 4164 | Half measures are as bad as nothing at all. 4165 | Avoid administrative distraction. 4166 | Non-blocking is better than blocking. 4167 | Anything added dilutes everything else. 4168 | Speak like a human. 4169 | Avoid administrative distraction. 4170 | Favor focus over features. 4171 | Practicality beats purity. 4172 | Anything added dilutes everything else. 4173 | Speak like a human. 4174 | Favor focus over features. 4175 | Encourage flow. 4176 | Mind your words, they are important. 4177 | Half measures are as bad as nothing at all. 4178 | Practicality beats purity. 4179 | Speak like a human. 4180 | Speak like a human. 4181 | Anything added dilutes everything else. 4182 | Avoid administrative distraction. 4183 | Half measures are as bad as nothing at all. 4184 | Favor focus over features. 4185 | Approachable is better than simple. 4186 | Approachable is better than simple. 4187 | Responsive is better than fast. 4188 | Non-blocking is better than blocking. 4189 | Favor focus over features. 4190 | Encourage flow. 4191 | Mind your words, they are important. 4192 | It's not fully shipped until it's fast. 4193 | Speak like a human. 4194 | It's not fully shipped until it's fast. 4195 | Speak like a human. 4196 | Design for failure. 4197 | Design for failure. 4198 | Responsive is better than fast. 4199 | Responsive is better than fast. 4200 | Speak like a human. 4201 | Anything added dilutes everything else. 4202 | Anything added dilutes everything else. 4203 | Encourage flow. 4204 | Design for failure. 4205 | Keep it logically awesome. 4206 | Avoid administrative distraction. 4207 | Speak like a human. 4208 | Favor focus over features. 4209 | Responsive is better than fast. 4210 | Responsive is better than fast. 4211 | Approachable is better than simple. 4212 | Mind your words, they are important. 4213 | Avoid administrative distraction. 4214 | Non-blocking is better than blocking. 4215 | Anything added dilutes everything else. 4216 | Avoid administrative distraction. 4217 | Anything added dilutes everything else. 4218 | Favor focus over features. 4219 | Encourage flow. 4220 | Avoid administrative distraction. 4221 | Encourage flow. 4222 | Favor focus over features. 4223 | Non-blocking is better than blocking. 4224 | Anything added dilutes everything else. 4225 | Half measures are as bad as nothing at all. 4226 | Avoid administrative distraction. 4227 | Half measures are as bad as nothing at all. 4228 | Anything added dilutes everything else. 4229 | Keep it logically awesome. 4230 | Anything added dilutes everything else. 4231 | Half measures are as bad as nothing at all. 4232 | Design for failure. 4233 | Favor focus over features. 4234 | Practicality beats purity. 4235 | Avoid administrative distraction. 4236 | Speak like a human. 4237 | Approachable is better than simple. 4238 | Avoid administrative distraction. 4239 | Non-blocking is better than blocking. 4240 | It's not fully shipped until it's fast. 4241 | Half measures are as bad as nothing at all. 4242 | Approachable is better than simple. 4243 | Design for failure. 4244 | Speak like a human. 4245 | Favor focus over features. 4246 | Responsive is better than fast. 4247 | Design for failure. 4248 | Responsive is better than fast. 4249 | Keep it logically awesome. 4250 | Favor focus over features. 4251 | Non-blocking is better than blocking. 4252 | Responsive is better than fast. 4253 | Approachable is better than simple. 4254 | Responsive is better than fast. 4255 | Responsive is better than fast. 4256 | Avoid administrative distraction. 4257 | Non-blocking is better than blocking. 4258 | Favor focus over features. 4259 | Responsive is better than fast. 4260 | Keep it logically awesome. 4261 | Keep it logically awesome. 4262 | Keep it logically awesome. 4263 | It's not fully shipped until it's fast. 4264 | Mind your words, they are important. 4265 | Encourage flow. 4266 | Avoid administrative distraction. 4267 | Keep it logically awesome. 4268 | Mind your words, they are important. 4269 | Design for failure. 4270 | Responsive is better than fast. 4271 | Keep it logically awesome. 4272 | Encourage flow. 4273 | It's not fully shipped until it's fast. 4274 | Responsive is better than fast. 4275 | Mind your words, they are important. 4276 | Responsive is better than fast. 4277 | Avoid administrative distraction. 4278 | It's not fully shipped until it's fast. 4279 | Non-blocking is better than blocking. 4280 | Mind your words, they are important. 4281 | Speak like a human. 4282 | Responsive is better than fast. 4283 | Responsive is better than fast. 4284 | Design for failure. 4285 | Design for failure. 4286 | Avoid administrative distraction. 4287 | Design for failure. 4288 | Non-blocking is better than blocking. 4289 | Keep it logically awesome. 4290 | Encourage flow. 4291 | Design for failure. 4292 | Keep it logically awesome. 4293 | Favor focus over features. 4294 | Design for failure. 4295 | Keep it logically awesome. 4296 | Responsive is better than fast. 4297 | Responsive is better than fast. 4298 | Favor focus over features. 4299 | Design for failure. 4300 | Keep it logically awesome. 4301 | Encourage flow. 4302 | Speak like a human. 4303 | Approachable is better than simple. 4304 | Keep it logically awesome. 4305 | Non-blocking is better than blocking. 4306 | Approachable is better than simple. 4307 | It's not fully shipped until it's fast. 4308 | Practicality beats purity. 4309 | Keep it logically awesome. 4310 | Encourage flow. 4311 | Keep it logically awesome. 4312 | Avoid administrative distraction. 4313 | It's not fully shipped until it's fast. 4314 | Keep it logically awesome. 4315 | Anything added dilutes everything else. 4316 | Anything added dilutes everything else. 4317 | Avoid administrative distraction. 4318 | Half measures are as bad as nothing at all. 4319 | Avoid administrative distraction. 4320 | Keep it logically awesome. 4321 | Favor focus over features. 4322 | Responsive is better than fast. 4323 | Speak like a human. 4324 | Practicality beats purity. 4325 | Avoid administrative distraction. 4326 | Mind your words, they are important. 4327 | Anything added dilutes everything else. 4328 | Half measures are as bad as nothing at all. 4329 | Encourage flow. 4330 | Anything added dilutes everything else. 4331 | Encourage flow. 4332 | Keep it logically awesome. 4333 | Avoid administrative distraction. 4334 | Approachable is better than simple. 4335 | Practicality beats purity. 4336 | Favor focus over features. 4337 | Mind your words, they are important. 4338 | Half measures are as bad as nothing at all. 4339 | Favor focus over features. 4340 | Anything added dilutes everything else. 4341 | Anything added dilutes everything else. 4342 | Speak like a human. 4343 | Encourage flow. 4344 | Speak like a human. 4345 | Approachable is better than simple. 4346 | Anything added dilutes everything else. 4347 | Half measures are as bad as nothing at all. 4348 | Anything added dilutes everything else. 4349 | Speak like a human. 4350 | Avoid administrative distraction. 4351 | It's not fully shipped until it's fast. 4352 | Speak like a human. 4353 | Approachable is better than simple. 4354 | Non-blocking is better than blocking. 4355 | Approachable is better than simple. 4356 | It's not fully shipped until it's fast. 4357 | It's not fully shipped until it's fast. 4358 | Approachable is better than simple. 4359 | It's not fully shipped until it's fast. 4360 | Practicality beats purity. 4361 | It's not fully shipped until it's fast. 4362 | Keep it logically awesome. 4363 | Keep it logically awesome. 4364 | Avoid administrative distraction. 4365 | Anything added dilutes everything else. 4366 | Half measures are as bad as nothing at all. 4367 | Speak like a human. 4368 | Half measures are as bad as nothing at all. 4369 | Keep it logically awesome. 4370 | Anything added dilutes everything else. 4371 | Avoid administrative distraction. 4372 | Keep it logically awesome. 4373 | Encourage flow. 4374 | Encourage flow. 4375 | Keep it logically awesome. 4376 | Responsive is better than fast. 4377 | It's not fully shipped until it's fast. 4378 | Mind your words, they are important. 4379 | Practicality beats purity. 4380 | Favor focus over features. 4381 | Mind your words, they are important. 4382 | Anything added dilutes everything else. 4383 | Half measures are as bad as nothing at all. 4384 | Mind your words, they are important. 4385 | Half measures are as bad as nothing at all. 4386 | Approachable is better than simple. 4387 | Practicality beats purity. 4388 | Speak like a human. 4389 | Non-blocking is better than blocking. 4390 | Approachable is better than simple. 4391 | It's not fully shipped until it's fast. 4392 | Anything added dilutes everything else. 4393 | Design for failure. 4394 | Mind your words, they are important. 4395 | Design for failure. 4396 | Approachable is better than simple. 4397 | Practicality beats purity. 4398 | Practicality beats purity. 4399 | Speak like a human. 4400 | Non-blocking is better than blocking. 4401 | Design for failure. 4402 | Speak like a human. 4403 | It's not fully shipped until it's fast. 4404 | Approachable is better than simple. 4405 | Mind your words, they are important. 4406 | Approachable is better than simple. 4407 | Avoid administrative distraction. 4408 | Anything added dilutes everything else. 4409 | It's not fully shipped until it's fast. 4410 | Approachable is better than simple. 4411 | Responsive is better than fast. 4412 | Responsive is better than fast. 4413 | Approachable is better than simple. 4414 | Anything added dilutes everything else. 4415 | Non-blocking is better than blocking. 4416 | Favor focus over features. 4417 | Non-blocking is better than blocking. 4418 | Keep it logically awesome. 4419 | Approachable is better than simple. 4420 | Mind your words, they are important. 4421 | Half measures are as bad as nothing at all. 4422 | Non-blocking is better than blocking. 4423 | Mind your words, they are important. 4424 | Avoid administrative distraction. 4425 | Half measures are as bad as nothing at all. 4426 | Half measures are as bad as nothing at all. 4427 | Design for failure. 4428 | Responsive is better than fast. 4429 | Practicality beats purity. 4430 | Mind your words, they are important. 4431 | Design for failure. 4432 | Practicality beats purity. 4433 | Design for failure. 4434 | Approachable is better than simple. 4435 | Keep it logically awesome. 4436 | Encourage flow. 4437 | Approachable is better than simple. 4438 | Speak like a human. 4439 | Anything added dilutes everything else. 4440 | Design for failure. 4441 | Mind your words, they are important. 4442 | Practicality beats purity. 4443 | Speak like a human. 4444 | Approachable is better than simple. 4445 | Approachable is better than simple. 4446 | Approachable is better than simple. 4447 | Avoid administrative distraction. 4448 | Design for failure. 4449 | Avoid administrative distraction. 4450 | Mind your words, they are important. 4451 | Responsive is better than fast. 4452 | Design for failure. 4453 | Keep it logically awesome. 4454 | Design for failure. 4455 | Keep it logically awesome. 4456 | Encourage flow. 4457 | Non-blocking is better than blocking. 4458 | Keep it logically awesome. 4459 | It's not fully shipped until it's fast. 4460 | Avoid administrative distraction. 4461 | Responsive is better than fast. 4462 | Anything added dilutes everything else. 4463 | Half measures are as bad as nothing at all. 4464 | Encourage flow. 4465 | Avoid administrative distraction. 4466 | Favor focus over features. 4467 | Speak like a human. 4468 | Avoid administrative distraction. 4469 | Avoid administrative distraction. 4470 | Approachable is better than simple. 4471 | Avoid administrative distraction. 4472 | Encourage flow. 4473 | Favor focus over features. 4474 | Avoid administrative distraction. 4475 | Favor focus over features. 4476 | Anything added dilutes everything else. 4477 | It's not fully shipped until it's fast. 4478 | Approachable is better than simple. 4479 | Speak like a human. 4480 | Responsive is better than fast. 4481 | Avoid administrative distraction. 4482 | Favor focus over features. 4483 | Favor focus over features. 4484 | Favor focus over features. 4485 | Encourage flow. 4486 | Half measures are as bad as nothing at all. 4487 | Design for failure. 4488 | Mind your words, they are important. 4489 | It's not fully shipped until it's fast. 4490 | Encourage flow. 4491 | Non-blocking is better than blocking. 4492 | Keep it logically awesome. 4493 | Anything added dilutes everything else. 4494 | Design for failure. 4495 | Anything added dilutes everything else. 4496 | Anything added dilutes everything else. 4497 | Mind your words, they are important. 4498 | Half measures are as bad as nothing at all. 4499 | Encourage flow. 4500 | It's not fully shipped until it's fast. 4501 | Speak like a human. 4502 | Keep it logically awesome. 4503 | Design for failure. 4504 | Anything added dilutes everything else. 4505 | Practicality beats purity. 4506 | Mind your words, they are important. 4507 | Approachable is better than simple. 4508 | Approachable is better than simple. 4509 | Mind your words, they are important. 4510 | Avoid administrative distraction. 4511 | Keep it logically awesome. 4512 | Anything added dilutes everything else. 4513 | Responsive is better than fast. 4514 | Responsive is better than fast. 4515 | Design for failure. 4516 | Mind your words, they are important. 4517 | Half measures are as bad as nothing at all. 4518 | Speak like a human. 4519 | Non-blocking is better than blocking. 4520 | Mind your words, they are important. 4521 | Anything added dilutes everything else. 4522 | Anything added dilutes everything else. 4523 | Practicality beats purity. 4524 | Responsive is better than fast. 4525 | It's not fully shipped until it's fast. 4526 | Design for failure. 4527 | Favor focus over features. 4528 | Responsive is better than fast. 4529 | Mind your words, they are important. 4530 | Practicality beats purity. 4531 | Responsive is better than fast. 4532 | Keep it logically awesome. 4533 | Half measures are as bad as nothing at all. 4534 | Approachable is better than simple. 4535 | Responsive is better than fast. 4536 | Speak like a human. 4537 | Avoid administrative distraction. 4538 | Mind your words, they are important. 4539 | Design for failure. 4540 | Practicality beats purity. 4541 | Anything added dilutes everything else. 4542 | Anything added dilutes everything else. 4543 | Mind your words, they are important. 4544 | Half measures are as bad as nothing at all. 4545 | It's not fully shipped until it's fast. 4546 | Non-blocking is better than blocking. 4547 | Half measures are as bad as nothing at all. 4548 | Half measures are as bad as nothing at all. 4549 | Anything added dilutes everything else. 4550 | Responsive is better than fast. 4551 | Half measures are as bad as nothing at all. 4552 | Mind your words, they are important. 4553 | Approachable is better than simple. 4554 | Avoid administrative distraction. 4555 | Design for failure. 4556 | Practicality beats purity. 4557 | Practicality beats purity. 4558 | Keep it logically awesome. 4559 | Keep it logically awesome. 4560 | Responsive is better than fast. 4561 | Design for failure. 4562 | Anything added dilutes everything else. 4563 | It's not fully shipped until it's fast. 4564 | Practicality beats purity. 4565 | Design for failure. 4566 | Speak like a human. 4567 | Half measures are as bad as nothing at all. 4568 | It's not fully shipped until it's fast. 4569 | Design for failure. 4570 | It's not fully shipped until it's fast. 4571 | Practicality beats purity. 4572 | It's not fully shipped until it's fast. 4573 | Practicality beats purity. 4574 | Favor focus over features. 4575 | Speak like a human. 4576 | It's not fully shipped until it's fast. 4577 | It's not fully shipped until it's fast. 4578 | Anything added dilutes everything else. 4579 | Practicality beats purity. 4580 | Approachable is better than simple. 4581 | Anything added dilutes everything else. 4582 | Mind your words, they are important. 4583 | Keep it logically awesome. 4584 | Approachable is better than simple. 4585 | Avoid administrative distraction. 4586 | Encourage flow. 4587 | Anything added dilutes everything else. 4588 | Responsive is better than fast. 4589 | Responsive is better than fast. 4590 | Design for failure. 4591 | It's not fully shipped until it's fast. 4592 | Encourage flow. 4593 | Speak like a human. 4594 | Keep it logically awesome. 4595 | Keep it logically awesome. 4596 | Mind your words, they are important. 4597 | Mind your words, they are important. 4598 | Design for failure. 4599 | Design for failure. 4600 | Encourage flow. 4601 | Design for failure. 4602 | Avoid administrative distraction. 4603 | Non-blocking is better than blocking. 4604 | Encourage flow. 4605 | Non-blocking is better than blocking. 4606 | Approachable is better than simple. 4607 | It's not fully shipped until it's fast. 4608 | Keep it logically awesome. 4609 | Practicality beats purity. 4610 | Keep it logically awesome. 4611 | Design for failure. 4612 | Avoid administrative distraction. 4613 | Non-blocking is better than blocking. 4614 | Half measures are as bad as nothing at all. 4615 | Design for failure. 4616 | Avoid administrative distraction. 4617 | Encourage flow. 4618 | Speak like a human. 4619 | Design for failure. 4620 | Anything added dilutes everything else. 4621 | Responsive is better than fast. 4622 | Half measures are as bad as nothing at all. 4623 | Avoid administrative distraction. 4624 | Favor focus over features. 4625 | Avoid administrative distraction. 4626 | Mind your words, they are important. 4627 | Responsive is better than fast. 4628 | Speak like a human. 4629 | Design for failure. 4630 | Avoid administrative distraction. 4631 | Mind your words, they are important. 4632 | Mind your words, they are important. 4633 | Responsive is better than fast. 4634 | Half measures are as bad as nothing at all. 4635 | Approachable is better than simple. 4636 | Avoid administrative distraction. 4637 | Avoid administrative distraction. 4638 | Anything added dilutes everything else. 4639 | It's not fully shipped until it's fast. 4640 | Anything added dilutes everything else. 4641 | Speak like a human. 4642 | Design for failure. 4643 | Design for failure. 4644 | Encourage flow. 4645 | Keep it logically awesome. 4646 | It's not fully shipped until it's fast. 4647 | Keep it logically awesome. 4648 | Speak like a human. 4649 | Non-blocking is better than blocking. 4650 | Non-blocking is better than blocking. 4651 | Avoid administrative distraction. 4652 | Encourage flow. 4653 | Non-blocking is better than blocking. 4654 | It's not fully shipped until it's fast. 4655 | Favor focus over features. 4656 | Favor focus over features. 4657 | It's not fully shipped until it's fast. 4658 | Design for failure. 4659 | Keep it logically awesome. 4660 | Non-blocking is better than blocking. 4661 | Avoid administrative distraction. 4662 | Encourage flow. 4663 | Speak like a human. 4664 | Encourage flow. 4665 | Approachable is better than simple. 4666 | Encourage flow. 4667 | Design for failure. 4668 | Non-blocking is better than blocking. 4669 | Non-blocking is better than blocking. 4670 | Mind your words, they are important. 4671 | Design for failure. 4672 | Approachable is better than simple. 4673 | Avoid administrative distraction. 4674 | Favor focus over features. 4675 | Keep it logically awesome. 4676 | Approachable is better than simple. 4677 | Non-blocking is better than blocking. 4678 | Half measures are as bad as nothing at all. 4679 | Responsive is better than fast. 4680 | Speak like a human. 4681 | Mind your words, they are important. 4682 | Favor focus over features. 4683 | Practicality beats purity. 4684 | Approachable is better than simple. 4685 | It's not fully shipped until it's fast. 4686 | Favor focus over features. 4687 | Non-blocking is better than blocking. 4688 | Favor focus over features. 4689 | Practicality beats purity. 4690 | Approachable is better than simple. 4691 | Practicality beats purity. 4692 | Half measures are as bad as nothing at all. 4693 | Speak like a human. 4694 | Half measures are as bad as nothing at all. 4695 | Avoid administrative distraction. 4696 | Keep it logically awesome. 4697 | Keep it logically awesome. 4698 | Mind your words, they are important. 4699 | Non-blocking is better than blocking. 4700 | It's not fully shipped until it's fast. 4701 | Practicality beats purity. 4702 | Responsive is better than fast. 4703 | Keep it logically awesome. 4704 | It's not fully shipped until it's fast. 4705 | Keep it logically awesome. 4706 | Non-blocking is better than blocking. 4707 | Keep it logically awesome. 4708 | Practicality beats purity. 4709 | Practicality beats purity. 4710 | Encourage flow. 4711 | Keep it logically awesome. 4712 | Non-blocking is better than blocking. 4713 | Practicality beats purity. 4714 | Avoid administrative distraction. 4715 | Speak like a human. 4716 | Favor focus over features. 4717 | Anything added dilutes everything else. 4718 | Design for failure. 4719 | It's not fully shipped until it's fast. 4720 | Mind your words, they are important. 4721 | Encourage flow. 4722 | Anything added dilutes everything else. 4723 | Non-blocking is better than blocking. 4724 | Avoid administrative distraction. 4725 | Approachable is better than simple. 4726 | Anything added dilutes everything else. 4727 | Keep it logically awesome. 4728 | Keep it logically awesome. 4729 | Speak like a human. 4730 | Half measures are as bad as nothing at all. 4731 | Favor focus over features. 4732 | Encourage flow. 4733 | Non-blocking is better than blocking. 4734 | Encourage flow. 4735 | Keep it logically awesome. 4736 | Approachable is better than simple. 4737 | Half measures are as bad as nothing at all. 4738 | Design for failure. 4739 | It's not fully shipped until it's fast. 4740 | Mind your words, they are important. 4741 | Speak like a human. 4742 | Speak like a human. 4743 | Avoid administrative distraction. 4744 | Approachable is better than simple. 4745 | Speak like a human. 4746 | Mind your words, they are important. 4747 | Speak like a human. 4748 | Encourage flow. 4749 | It's not fully shipped until it's fast. 4750 | Keep it logically awesome. 4751 | Half measures are as bad as nothing at all. 4752 | Half measures are as bad as nothing at all. 4753 | Anything added dilutes everything else. 4754 | It's not fully shipped until it's fast. 4755 | Responsive is better than fast. 4756 | Favor focus over features. 4757 | Encourage flow. 4758 | Responsive is better than fast. 4759 | Favor focus over features. 4760 | Favor focus over features. 4761 | Practicality beats purity. 4762 | Encourage flow. 4763 | Mind your words, they are important. 4764 | Keep it logically awesome. 4765 | Avoid administrative distraction. 4766 | Mind your words, they are important. 4767 | Design for failure. 4768 | Approachable is better than simple. 4769 | Encourage flow. 4770 | Practicality beats purity. 4771 | Favor focus over features. 4772 | Avoid administrative distraction. 4773 | Keep it logically awesome. 4774 | Design for failure. 4775 | Half measures are as bad as nothing at all. 4776 | Avoid administrative distraction. 4777 | Practicality beats purity. 4778 | Half measures are as bad as nothing at all. 4779 | Non-blocking is better than blocking. 4780 | Approachable is better than simple. 4781 | Favor focus over features. 4782 | Design for failure. 4783 | Keep it logically awesome. 4784 | Anything added dilutes everything else. 4785 | Practicality beats purity. 4786 | Non-blocking is better than blocking. 4787 | Favor focus over features. 4788 | Half measures are as bad as nothing at all. 4789 | Avoid administrative distraction. 4790 | Encourage flow. 4791 | Half measures are as bad as nothing at all. 4792 | Favor focus over features. 4793 | Favor focus over features. 4794 | Favor focus over features. 4795 | Encourage flow. 4796 | Speak like a human. 4797 | Design for failure. 4798 | It's not fully shipped until it's fast. 4799 | Favor focus over features. 4800 | Mind your words, they are important. 4801 | Half measures are as bad as nothing at all. 4802 | Keep it logically awesome. 4803 | Responsive is better than fast. 4804 | Approachable is better than simple. 4805 | Responsive is better than fast. 4806 | Responsive is better than fast. 4807 | Approachable is better than simple. 4808 | Design for failure. 4809 | Half measures are as bad as nothing at all. 4810 | Speak like a human. 4811 | Speak like a human. 4812 | Encourage flow. 4813 | Responsive is better than fast. 4814 | Mind your words, they are important. 4815 | Non-blocking is better than blocking. 4816 | Keep it logically awesome. 4817 | Keep it logically awesome. 4818 | Mind your words, they are important. 4819 | Half measures are as bad as nothing at all. 4820 | Mind your words, they are important. 4821 | Favor focus over features. 4822 | Design for failure. 4823 | Speak like a human. 4824 | Practicality beats purity. 4825 | Favor focus over features. 4826 | Responsive is better than fast. 4827 | Speak like a human. 4828 | Keep it logically awesome. 4829 | Design for failure. 4830 | Half measures are as bad as nothing at all. 4831 | Speak like a human. 4832 | Encourage flow. 4833 | Design for failure. 4834 | Responsive is better than fast. 4835 | Mind your words, they are important. 4836 | Avoid administrative distraction. 4837 | Half measures are as bad as nothing at all. 4838 | Non-blocking is better than blocking. 4839 | Design for failure. 4840 | Encourage flow. 4841 | Encourage flow. 4842 | Practicality beats purity. 4843 | Favor focus over features. 4844 | Favor focus over features. 4845 | It's not fully shipped until it's fast. 4846 | Speak like a human. 4847 | Favor focus over features. 4848 | Keep it logically awesome. 4849 | Non-blocking is better than blocking. 4850 | Anything added dilutes everything else. 4851 | It's not fully shipped until it's fast. 4852 | Keep it logically awesome. 4853 | Approachable is better than simple. 4854 | Responsive is better than fast. 4855 | Practicality beats purity. 4856 | It's not fully shipped until it's fast. 4857 | Practicality beats purity. 4858 | Practicality beats purity. 4859 | Mind your words, they are important. 4860 | It's not fully shipped until it's fast. 4861 | Responsive is better than fast. 4862 | Favor focus over features. 4863 | Encourage flow. 4864 | Keep it logically awesome. 4865 | Design for failure. 4866 | Practicality beats purity. 4867 | Approachable is better than simple. 4868 | Avoid administrative distraction. 4869 | Practicality beats purity. 4870 | Non-blocking is better than blocking. 4871 | Mind your words, they are important. 4872 | Mind your words, they are important. 4873 | Mind your words, they are important. 4874 | Responsive is better than fast. 4875 | Favor focus over features. 4876 | It's not fully shipped until it's fast. 4877 | Approachable is better than simple. 4878 | Keep it logically awesome. 4879 | It's not fully shipped until it's fast. 4880 | Mind your words, they are important. 4881 | Approachable is better than simple. 4882 | Half measures are as bad as nothing at all. 4883 | Anything added dilutes everything else. 4884 | Favor focus over features. 4885 | Mind your words, they are important. 4886 | Avoid administrative distraction. 4887 | It's not fully shipped until it's fast. 4888 | Encourage flow. 4889 | It's not fully shipped until it's fast. 4890 | Favor focus over features. 4891 | Encourage flow. 4892 | Keep it logically awesome. 4893 | Avoid administrative distraction. 4894 | It's not fully shipped until it's fast. 4895 | Favor focus over features. 4896 | Mind your words, they are important. 4897 | It's not fully shipped until it's fast. 4898 | Approachable is better than simple. 4899 | Keep it logically awesome. 4900 | Approachable is better than simple. 4901 | Half measures are as bad as nothing at all. 4902 | Practicality beats purity. 4903 | Encourage flow. 4904 | Anything added dilutes everything else. 4905 | Speak like a human. 4906 | Keep it logically awesome. 4907 | Practicality beats purity. 4908 | Favor focus over features. 4909 | Anything added dilutes everything else. 4910 | Practicality beats purity. 4911 | Responsive is better than fast. 4912 | Design for failure. 4913 | Speak like a human. 4914 | Practicality beats purity. 4915 | It's not fully shipped until it's fast. 4916 | Design for failure. 4917 | Design for failure. 4918 | Practicality beats purity. 4919 | Speak like a human. 4920 | Mind your words, they are important. 4921 | Anything added dilutes everything else. 4922 | Speak like a human. 4923 | Encourage flow. 4924 | It's not fully shipped until it's fast. 4925 | Keep it logically awesome. 4926 | Half measures are as bad as nothing at all. 4927 | Anything added dilutes everything else. 4928 | Design for failure. 4929 | Practicality beats purity. 4930 | Favor focus over features. 4931 | Favor focus over features. 4932 | Responsive is better than fast. 4933 | Approachable is better than simple. 4934 | Half measures are as bad as nothing at all. 4935 | Encourage flow. 4936 | Encourage flow. 4937 | Practicality beats purity. 4938 | Half measures are as bad as nothing at all. 4939 | Half measures are as bad as nothing at all. 4940 | Encourage flow. 4941 | Practicality beats purity. 4942 | Speak like a human. 4943 | Speak like a human. 4944 | Non-blocking is better than blocking. 4945 | Speak like a human. 4946 | It's not fully shipped until it's fast. 4947 | Responsive is better than fast. 4948 | Design for failure. 4949 | Avoid administrative distraction. 4950 | Anything added dilutes everything else. 4951 | Favor focus over features. 4952 | Design for failure. 4953 | Approachable is better than simple. 4954 | Approachable is better than simple. 4955 | Mind your words, they are important. 4956 | It's not fully shipped until it's fast. 4957 | Encourage flow. 4958 | Design for failure. 4959 | Design for failure. 4960 | Speak like a human. 4961 | Approachable is better than simple. 4962 | Keep it logically awesome. 4963 | Mind your words, they are important. 4964 | Anything added dilutes everything else. 4965 | Responsive is better than fast. 4966 | Responsive is better than fast. 4967 | Avoid administrative distraction. 4968 | Practicality beats purity. 4969 | Responsive is better than fast. 4970 | Approachable is better than simple. 4971 | Non-blocking is better than blocking. 4972 | Avoid administrative distraction. 4973 | Encourage flow. 4974 | Non-blocking is better than blocking. 4975 | Speak like a human. 4976 | Speak like a human. 4977 | Avoid administrative distraction. 4978 | Anything added dilutes everything else. 4979 | Non-blocking is better than blocking. 4980 | Keep it logically awesome. 4981 | Keep it logically awesome. 4982 | Encourage flow. 4983 | It's not fully shipped until it's fast. 4984 | Favor focus over features. 4985 | Responsive is better than fast. 4986 | Favor focus over features. 4987 | Mind your words, they are important. 4988 | It's not fully shipped until it's fast. 4989 | Mind your words, they are important. 4990 | Speak like a human. 4991 | Anything added dilutes everything else. 4992 | Responsive is better than fast. 4993 | Avoid administrative distraction. 4994 | Non-blocking is better than blocking. 4995 | Responsive is better than fast. 4996 | It's not fully shipped until it's fast. 4997 | Half measures are as bad as nothing at all. 4998 | Non-blocking is better than blocking. 4999 | -------------------------------------------------------------------------------- /tests/github-client.test.ts: -------------------------------------------------------------------------------- 1 | import github from "../lib/github-client"; 2 | 3 | describe("github-client", () => { 4 | test("user-agent", () => { 5 | const ua = github.defaults.headers["user-agent"]; 6 | expect(ua).toMatch(/^@swinton\/commit\/\d+\.\d+\.\d+$/); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2015", 4 | "moduleResolution": "node", 5 | "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /zen.txt: -------------------------------------------------------------------------------- 1 | Approachable is better than simple. 2 | Practicality beats purity. 3 | --------------------------------------------------------------------------------