Skip to content

Instantly share code, notes, and snippets.

/*!
* Copyright (c) 2020 Eddie Antonio Santos
*
* This Source Code Form is subject to the terms of the Mozilla Public License,
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
* obtain one at http://mozilla.org/MPL/2.0/.
*/
/**
* Simplifies interaction with <template> tags:
@eddieantonio
eddieantonio / create-syllabics-chart.py
Created May 19, 2020 15:05
Create a syllabics chart for Plains Cree (nêhiyawêwin) (ᓀᐦᐃᔭᐤ ᒐᐦᑭᐯᐦᐃᑲᓇ)
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
from cree_sro_syllabics import sro2syllabics
consonants = 'ptkcmnsy'
finals = ('h', 'hk', 'r', 'l', 'w')
vowels_circumflex = 'êioaîôâ'
vowels_macron = 'ēioaīōā'
@eddieantonio
eddieantonio / javascript-null-undefined.md
Created April 24, 2020 15:31
Checking for `null` or `undefined` in JavaScript

Checking for null or undefined in JavaScript

Say I want to check if a value v is either null or undefined in JavaScript. I might use this conditional:

if (!v) { ... } // 🙅‍♀️ wrong!
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
"""
Creates (dumb) rainfall data.
Usage:
python3 create-data.py > rainfall.txt
"""
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@eddieantonio
eddieantonio / dice.py
Created August 12, 2019 19:01
Showcase of dataclasses and module __getattr__().
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
from dataclasses import dataclass
from random import randint
import re
dn = re.compile(r'd([123456789][0123456789]*)')
__all__ = ['Die']
%% Huffman Code for nêhiyawêwin %%
%% Note: Cree strings must be written in "askiy":
%% - short vowels and consonants: written in ASCII
%% - long vowels: ê is written as e; "âîô" written as "AIO" respectively.
%% - it's a very grounded character encoding 😉
%%
%% I haven't done extensive testing, but this usually uses half the bits to
%% represent Cree word forms. Maybe just gzip it instead?
-module(huff).
-export([encode/1, decode/1, tryit/1]).
@eddieantonio
eddieantonio / nrc_cr_cans.keyman-touch-layout
Last active July 9, 2019 19:45
Draft Plains Cree syllabics touch keyboard
{
"phone": {
"font": "Euphemia",
"layer": [
{
"id": "default",
"row": [
{
"id": 1,
"key": [
@eddieantonio
eddieantonio / $cree-grapheme-stats.md
Last active June 25, 2019 18:57
Count unigrams and bigrams in the Wolfart-Ahenakew corpus

Cree Grapheme Stats

Count unigrams and bigrams in the Wolfart-Ahenakew nêhiyawêwin corpus!

Why

When building a keyboard for typing Cree, it is useful to know which graphemes are typed often, and which pairs of graphemes are typed one

@eddieantonio
eddieantonio / nonullfree.c
Last active April 10, 2019 16:14
nonullfree.c -- throw errors when you call free(NULL)
/**
* nonullfree.c -- throw errors when you call free(NULL)
*
* BUILDING:
*
* $ gcc -shared -fPIC nonullfree.c -ldl -o nonullfree.so
*
* USAGE (Linux):
*
* $ LD_PRELOAD=./nonullfree.so ./my-program