Ebook to Morse code (CW)

As I get back into ham radio and attempt to learn CW again (after I upgrade to General, one thing at a time), I want to put this here so I remember it: https://fkurz.net/ham/ebook2cw.html.

Sounds like a great way to re-read some of my favorite books and practice Morse receiving at the same time.

Also of note, this method seems to really work: http://www.learnmorsecode.com.

Some translation help for the Brazil 1:1,000,000 geology map from CPRM

This is not complete, but hopefully helps out other English-but-not-Portuguese speakers like myself.

Here are translations (as best as I can figure them out) of the headers in the attribute table for the Brazil 1:1,000,000 geology map.
SIGLA_UNID = unit code
COD_UNI_ES = ?
SIGLAS_ANT = acronym something
NOME_UNIDA = unit name
HIERARQUIA = unit type (formation, lithofacies, unit, etc.)
IDADE_MAX = maximum age (years)
ERRO_MAX = assuming the plus/minus on IDADE_MAX
EON_IDADE_M = eon (Proterozoic, Phanerozoic, etc.)
ERA_MAXIMA = maximum possible era
PERIODO_MA = maximum possible period
EPOCA_MAX = maximum possible epoch
SISTEMA_GE = maybe what defines the type of unit it is? things like paleontology, structure, isotope, etc.
METODO_GEO = ?
QLDE_INFER = something about direct versus inferred measurements
IDADE_MIN = minimum age (years)
ERRO_MIN = assuming the plus/minus on IDADE_MAX (years)
EON_IDADE_1 = eon (not sure how this differs from EON_IDADE_M)
ERA_MINIMA = minimum possible era
PERIODO_MI = minimum possible period
EPOCA_MIN = minimum possible epoch
SISTEMA_1 = see SISTEMA_GE
METODO_G_1 = see METODO_GEO
QLDE_INF_1 = see QLDE_INFER
AMBSEDIMEN = first-order environment, so “continental,” “marine,” “transitional,” etc. values (“ambiente” is environment)
SISTSEDIME = second-order environment, so “deep,” “siliciclastic platform,” “fluvial,” etc. values
TIPO_DEPOS = third-order environment, so “pelagic,” “delta plain,” etc. values
ASSOC_MAGM = maybe magma source type?
NIVEL_CRUS = crustal level?
TEXTURA_IG = igneous texture
FONTE_MAGM = magma source
MORFOLOGIA = igneous morphology (like “batholith”)
AMBIENTE_T = tectonic environment
METAMORFIS = metamorphic type
METODO_G_2 = see METODO_G
TEMP_PICO = peak temperature
ERRO_TEMP_ = plus/minus on TEMP_PICO
PRESSAO_PL = pressure something
ERROR_PRESS = plus/minus on PRESSAO_PL
TIPO_BARIC = how something was determined
TRAJETORIA = how something was determined
AMBIENTE_1 = ?
LITOTIPO1 = lithotype
LITOTIPO2 = secondary lithotype
CLASSE_ROC = igneous, sedimentary, or metamorphic
CLASSE_R_1 = see CLASSE_ROC, with less values filled in
BB_SUBCLAS = subclass of CLASSE_ROC
BB_SUBCL_1 = subclass of CLASSE_R_1, I think
OBJECTID = the object ID
IDADE_MA_1 = see IDADE_MAX (all NULL)
ERRO_MAX_1 = see ERRO_MAX (all NULL)
EON_ID_MAX = maximum possible eon (EON_IDADE_M?)
PERIOD_MAX = see PERIODO_MA?
MET_ID_MAX = looks like method of determining maximum age
MET_DAT_MA = looks like the details of MET_ID_MAX, like what type of dating was used
QLD_ID_MAX = (quality?) whether the maximum age was determined with direct or indirect methods
IDADE_MI_1 = see IDADE_MIN
ERRO_MIN_1 = see ERRO_MIN
EON_ID_MIN = maximum possible eon (EON_IDADE_M?)
MET_ID_MIN = looks like method of determining minimum age
MET_DAT_MI = looks like details of MET_ID_MIN, like what type of dating was used
QLD_ID_MIN = (quality?) whether the minimum age was determined with direct or indirect methods
AMBSED = see AMBSEDIMEN
SISTSED = see SISTSEDIME
TIPO_DEP = see TIPO_DEPOS
TEXT_IGNEA = see TEXTURA_IG
AMB_TECTO = see AMBIENTE_T
METAMORF = see METAMORFIS
TRAJET_PT = see TRAJETORIA
CLASSE_RX1 = see CLASSE_ROC
CLASSE_RX2 = see CLASSE_RX1
SUBCLA_RX1 = see BB_SUBCLAS (of CLASSE_RX1)
SUBCLA_RX2 = see BB_SUBCL_1 (of CLASSE_RX2)
Shape_Leng = length of polygon (circumference?)
Shape_Area = area of polygon