This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# coding: utf-8 | |
""" splits.py | |
Usage: | |
./splits .in,cr.. | |
This will print out all known words that match both patterns with fixed | |
letters per dot. In the above example, one answer pair would be: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This is a depth-first traversal function with a few nice features. | |
// | |
// * Call this function as depthFirstTraverse(root, tree, fn) | |
// `tree` is an object whose properties are nodes in a tree; the | |
// values are arrays of that node's child nodes. | |
// `root` is the starting point for the traversal; a property in `tree`. | |
// `fn` is called as in fn(node, depth, childNum) for each node. | |
// childNum is the index of node as a child of its parent; | |
// as a special case, the childNum of `root` is undefined. | |
// `depth` is 0 for the root, and in general indicates how |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* printTree.js | |
* | |
* A little function to print out a tree via console.log(). | |
* | |
* The tree is expected to be an object whose keys (aka properties) are | |
* treated as nodes; each node mapping to an array of its children. | |
* Leaf nodes don't need to be present as keys. | |
* | |
* Here is an example tree with root element 'a': | |
* t = {a: ['b', 'c'], b: ['d'], c: ['e'], d: ['f', 'g'], g: ['h']} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Print out a simple table with right-justified columns of strings. | |
// This can handle some columns having fewer entries than others. | |
// (For mid-table missing entries, provide empty strings.) | |
// The `cols` value is an array of arrays of strings, the columns of the table. | |
// The optional `topSep` is a string the indicates the separator to use in the | |
// top row only. If you don't provide topSep, a single space is used. | |
function showTableWithColumns(cols, topSep) { | |
if (topSep === undefined) topSep = ' '; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This will sort the values in `inputArr` according to the comparison data | |
// provided by calls to `inputCmp()`, which is expected to return the values '=' | |
// (a string), '<', '>', or null; where a null indicates that the comparison | |
// value is undetermined, and that those two elements may go in any order. | |
// This function attempts to reduce the number of calls to inputCmp() in several | |
// ways: | |
// * It memorizes given return values. | |
// * It assumes that if a < b then also b > a (otherwise what is happening?). | |
// * It builds a tree to infer transitive comparisons, and tries to maximize | |
// the use of that tree. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// The inputArr is an array of any kind of values. | |
// The inputCmp() function accepts two values, x and y; with the return | |
// value indicating the relationship as such: | |
// | |
// If: then cmp(x, y) returns: | |
// x < y '<' | |
// x > y '>' | |
// x = y '=' | |
// x ? y null | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
""" toggle | |
Usage: | |
toggle start | |
toggle getip | |
toggle stop | |
""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
if [ -z "$1" ]; then | |
echo Usage: ./fix_aspect.sh '<img_file>' | |
echo | |
echo This will create a new image file with the word 'fixed' appended before | |
echo the filename extension. Eg, myimg.jpg will become myimg.fixed.jpg. | |
exit | |
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" reservoir.py | |
This is an example implementation of an efficient | |
reservoir sampling algorithm -- this algorithm is useful | |
when you have a data stream, possibly of unknown length, | |
and you'd like to maintain an incrementally updated | |
random subset of fixed size k. This algorithm works by | |
occasionally adding a new data point from the stream | |
into the 'reservoir,' which is simply a length-k list | |
of data points. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
""" | |
add_docstrings.py | |
Usage: | |
add_docstrings.py <my_code.py> | |
NOTE: This requires Python 3.9+ (this is openai's library requirement). | |
This app is a work in progress. |
NewerOlder