- 2 tablespoons vegetable oil
- 1 large onion, chopped
- 1 green bell pepper, seeded and chopped
- 8 garlic cloves, thinly sliced
- 1 tablespoon cumin seeds
- 1 tablespoon chili powder
- 1 tablespoon dried oregano
- 2 cups fresh or frozen corn
- 1 398-millilitre can black beans, rinsed and drained
- 1 398-millilitre can kidney beans, rinsed and drained
- 1 796-millilitre can whole tomatoes
- 1 sweet potato, peeled and finely diced
- 1 tablespoon canned chipotle chilies in adobo sauce, chopped
- 1/2 cup sour cream
- 1 teaspoon cinnamon
- 1 or 2 sprinkles salt
- 1 cup tender cilantro sprigs
- 2 green onions, thinly sliced
Heat the oil in a soup pot over medium-high heat. Toss in the onions and green pepper and sauté, stirring frequently, until the vegetables begin to brown (6 to 8 minutes). Stir in the garlic, cumin seeds, chili powder and oregano. Reduce the heat to medium and cook, stirring, until the spices are very fragrant (another 2 minutes or so).
Stir in the corn, black beans and kidney beans. Add the juice from the canned tomatoes, then coarsely chop the tomatoes and add them as well. Add the sweet potatoes and chipotle chilies. Bring to a boil, then reduce the heat so the liquid is just barely simmering. Simmer, stirring frequently, until the sweet potatoes are tender and the chili begins to thicken (20 to 25 minutes).
Meanwhile, stir together the sour cream and cinnamon. Just before serving, season the chili to your taste with salt. Ladle into serving bowls and top with the sour cream and a tangle of cilantro and green onions.
I saw this show years ago and remember loving the music. The acrobatic performances I recall less unfortunately. Carmen and I went to see this yesterday and were blown away by the strength, and grace of what we saw.
- https://github.com/ghostinthewires/Azure-Readiness-Checklist/blob/master/README.md A list of things to think about when planning to run a workload in Azure. (This list works equally well with pretty much any cloud platform I dare say.)
- https://engblog.nextdoor.com/what-is-the-technology-behind-nextdoor-in-2019-ccc3d2173eda Technology and tools, that feels to me like when a new technology is picked up it’s for good reason and in a measured way.
Heredoc that converts newlines to spaces and ignores leading indent
a_long_line: > line 1 line 2 line 3 ... # Prints: line 1 line 2 line 3
Heredoc that preserves newlines and ignores leading indent
private_key: | line 1 line 2 line 3 ... # Prints: line 1 line 2 line 3 ...
Perf Gathering facts is expensive If you can skip this step, do so I have a couple plays that looks at memory Think about tuning the number of forks 5 is the default Too many doesn't work (kinda heavy weight) 25-50 is probably good for a dedicated ansible server 5-25 for a dev machine Use scp (default is sftp) Increase ControlPersist (default 60s) Sample ansible.cfg [default] gathering = smart gather_subset = min fact_caching = jsonfile fact_caching_connection = ~/.ansible/cache fact_caching_timeout = 3600 forks=50 [ssh_connection] pipelining = True scp_if_ssh = True ssh_args = -C -o ControlMaster=auto -o ControlPersist=15m Python3 is better than python2
Use ansible to update centos packages
List updates > ansible -i "hosts / inventory file," all -m yum -a "list=updates" Apply updates > ansible -i "host / inventory file," all -m yum -a "name='*' state=latest"
“Genius has an important role in developing mathematics, but actually the knowledge itself is the result of the activity of a community. It’s the real goal of knowledge to become the knowledge of the community, not the knowledge of one or two persons.”André Joyal (Mathematician)
Powerful json message parsing on the command line
# Gets me all keys connected to the doc node jq '. | keys' a.json # Tells me how many sub docs are rooted at events jq '.events | count' a.json # Generate a csv from a json array # https://stackoverflow.com/questions/32960857/how-to-convert-arbitrary-simple-json-to-csv-using-jq/32965227#32965227 jq -r '(map(keys) | add | unique) as $cols | map(. as $row | $cols | map($row[.])) as $rows | $cols, $rows | @csv' a.js.out # Filter a list of json documents by the State field # Like Java's stream programming model (and other languages?) # filter, map, reduce! cat a.sh.out | jq '.BackupJobs | map(select(.State == "FAILED"))'