Skip to content

Instantly share code, notes, and snippets.

We can't make this file beautiful and searchable because it's too large.
wals_code,iso_code,glottocode,Name,latitude,longitude,genus,family,macroarea,countrycodes,1A Consonant Inventories,2A Vowel Quality Inventories,3A Consonant-Vowel Ratio,4A Voicing in Plosives and Fricatives,5A Voicing and Gaps in Plosive Systems,6A Uvular Consonants,7A Glottalized Consonants,8A Lateral Consonants,9A The Velar Nasal,10A Vowel Nasalization,11A Front Rounded Vowels,12A Syllable Structure,13A Tone,14A Fixed Stress Locations,15A Weight-Sensitive Stress,16A Weight Factors in Weight-Sensitive Stress Systems,17A Rhythm Types,18A Absence of Common Consonants,19A Presence of Uncommon Consonants,20A Fusion of Selected Inflectional Formatives,21A Exponence of Selected Inflectional Formatives,22A Inflectional Synthesis of the Verb,23A Locus of Marking in the Clause,24A Locus of Marking in Possessive Noun Phrases,25A Locus of Marking: Whole-language Typology,26A Prefixing vs. Suffixing in Inflectional Morphology,27A Reduplication,28A Case Syncretism,29A Syncretism in Verbal Person/Number Marking,30A Number
@ravecat
ravecat / config.exs
Last active April 4, 2024 00:07
Callback ueberauth tests
config :ueberauth, Ueberauth,
providers: [
auth0: {Ueberauth.Strategy.Auth0, [ignores_csrf_attack: true]}
],
json_library: Poison
@ravecat
ravecat / benchmark.js
Created October 25, 2020 19:31
node, time, benchmark
const begin = process.hrtime.bigint();
{...}
const diff = (process.hrtime.bigint() - begin) / 1000000n;
@ravecat
ravecat / eventEmitter.js
Created October 20, 2020 18:01
event, emitter, js
const emitter = () => {
const events = new Map();
const wrapped = new Map();
const ee = {
on: (name, f, timeout = 0) => {
const event = events.get(name);
if (event) event.push(f);
else events.set(name, [f]);
if (timeout) setTimeout(() => {
ee.remove(name, f);
function Memoized() {}
const memoize = fn => {
const cache = new Map();
const memoized = function(...args) {
const callback = args.pop();
const key = args[0];
const record = cache.get(key);
if (record) {
const downloadAsCSVFile = function(csv, fname) {
let csvfile = new Blob([csv], {type: 'text/csv'})
let downlink = document.createElement('a')
downlink.download = fname
downlink.href = window.URL.createObjectURL(csvfile)
downlink.style.display = 'none'
document.body.appendChild(downlink)
downlink.click()
@ravecat
ravecat / parse_args.sh
Last active December 14, 2020 22:46
bash
function get_help () {
cat << EOF
Help
EOF
}
function handle_kwarg () {
if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
@ravecat
ravecat / bose_bluetooth
Last active October 17, 2020 20:45
linux, bose, bluetooth
I would recommend to clean up you past attempts to pair:
On Ubuntu, remove the headphones from the Bluetooth paired list.
On the headphones, hold the switch in Bluetooth pairing position for 10 seconds to delete all paired devices (You'll get a voice confirmation).
If you can, deactivate Bluetooth on other surrounding devices to make sure they won't interact.
Deactivate Bluetooth LE
Edit Bluetooth configuration file:
sudo nano /etc/bluetooth/main.conf
@ravecat
ravecat / extract_archive
Last active October 17, 2020 20:44
linux, tips
extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xvjf $1 ;;
*.tar.gz) tar xvzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) rar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xvf $1 ;;
*.xz) unxz $1 ;;
@ravecat
ravecat / vscode_debugging_chrome
Last active February 22, 2021 09:43
ide, vscode, debugging
{
"type": "chrome",
"request": "launch",
"name": "chrome",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}"
}