View mao.py
import random | |
deck = None | |
hand = None | |
def speak(message="", penalty=""): | |
maxlen = max(len(message), len(penalty)) | |
# pad both parts even |
View minimal-html5-template.html
<!doctype html> | |
<html lang="en"> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Template Site</title> | |
<header> | |
<a href="/">Template Site</a> | |
</header> |
View cipher-helper.js
// A tool to help you create or solve monoalphabetic substitution ciphers. | |
// This code is left to the public domain. | |
// | |
// Run this in a Node interactive session or web browser console. | |
// Start by creating a machine instance with m = machine(message); | |
// Call m.repeat() to progressively replace each letter with a new one. | |
// Use lowercase for your original message and uppercase for the | |
// substituted letters so you and the code can tell them apart. | |
// m.frequency will give you the fequency of each letter in the message. |
View mrx.js
// Tag which parses a multiline regexp pattern into a RegExp object, removing whitespace and comments | |
export function mrx (strings) { | |
if (strings.length !== 1) { | |
throw Error("mrx cannot process template strings with arguments.") | |
}; | |
// capture pattern and flags from a string in format `/pattern/flags` | |
const captureRx = /^\s*\/(.*)\/([a-z]*)\s*$/si; | |
const match = captureRx.exec(strings.raw[0]); | |
if (match === null) { |