from scapy.all import * | |
import unicodedata | |
import sys, getopt | |
import time, datetime | |
import argparse | |
import socket | |
import fcntl | |
import struct | |
import threading |
A checklist for designing and developing internet scale services, inspired by James Hamilton's 2007 paper "On Desgining and Deploying Internet-Scale Services."
- Does the design expect failures to happen regularly and handle them gracefully?
- Have we kept things as simple as possible?
Let's have some command-line fun with curl, [jq][1], and the [new GitHub Search API][2].
Today we're looking for:
Wow. I've now read the whole book and much of the supporting code. I'm not a fan, and recommend against relying on it. Here's a laundry list of concerns:
-
The teaching method the book uses is badly flawed. The book's strategy is to start simple and build to complexity, which makes sense if you're teaching algebra but not if you're teaching heart surgery. The result is that each chapter culminates with the implementation of a system that is grievously insecure. Little warning is given of this, apart from allusions to future chapters improving the system. For instance, Chapter 2 closes with a chat system that uses AES-CBC without an authenticator.
-
The book is full of idiosyncratic recommendations. For instance, AES-CBC requires a padding scheme. There is a standard padding scheme. The book purports to present it, but instead of PKCS7, it presents 80h+00h..00h.
-
At one point about 1/3rd of the way through the book, it suggests using a SHA256 hash of the plaintext as an authenticator for a message. Thi
code | city | country | lat | lon | |
---|---|---|---|---|---|
ZNZ | ZANZIBAR | TANZANIA | -6.13 | 39.31 | |
TYO | TOKYO | JAPAN | 35.68 | 139.76 | |
AKL | AUCKLAND | NEW ZEALAND | -36.85 | 174.78 | |
BKK | BANGKOK | THAILAND | 13.75 | 100.48 | |
DEL | DELHI | INDIA | 29.01 | 77.38 | |
SIN | SINGAPORE | SINGAPOR | 1.36 | 103.75 | |
BSB | BRASILIA | BRAZIL | -15.67 | -47.43 | |
RIO | RIO DE JANEIRO | BRAZIL | -22.90 | -43.24 | |
YTO | TORONTO | CANADA | 43.64 | -79.40 |
#!/usr/bin/env bash | |
# | |
# Inspired by http://www.commandlinefu.com/commands/view/13028 | |
# | |
# Author: Florian Goße <florian@essog.de> | |
# Date: 2014-01-22 | |
# | |
# Check if executed in a terminal |