commit dc3eab173c833b43dc68633abb2faeab0b10cef2 Author: heyarne Date: Fri Jun 17 00:38:18 2022 +0200 Initial commit diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..b8c98a7 --- /dev/null +++ b/flake.lock @@ -0,0 +1,42 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1654931879, + "narHash": "sha256-OyKm0DPMaHdRcZ8c+jaXmecEeSe3Fd1K+yirg7zDsys=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c0d782e7b7b81174e056f7dbc991e82314488239", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs", + "utils": "utils" + } + }, + "utils": { + "locked": { + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..4f8f0cf --- /dev/null +++ b/flake.nix @@ -0,0 +1,30 @@ +{ + description = "A very basic flake"; + + inputs = { + nixpkgs.url = github:NixOS/nixpkgs; + utils.url = github:numtide/flake-utils; + }; + + outputs = { self, nixpkgs, utils }: utils.lib.eachDefaultSystem(system: + let + pkgs = nixpkgs.legacyPackages.${system}; + lib = pkgs.lib; + # FIXME: Lua is borked at the moment :( + # lua = pkgs.lua5_3.withPackages(ps: with ps; [ + # readline + # # cjson + # # http + # luarocks + # ]); + # fennel = pkgs.fennel.override { lua = lua; }; + in { + devShells.default = pkgs.mkShell rec { + buildInputs = [ + pkgs.chicken + # pkgs.guile_3_0 + ]; + # LD_LIBRARY_PATH = "${lib.makeLibraryPath buildInputs}"; + }; + }); +} diff --git a/main.scm b/main.scm new file mode 100644 index 0000000..d3d6bd8 --- /dev/null +++ b/main.scm @@ -0,0 +1,31 @@ +(import (chicken io) + (chicken process-context) + (chicken random)) + +(define *api-url* (get-environment-variable "MASTODON_API_URL")) +(define *access-tolen* (get-environment-variable "MASTODON_ACCESS_TOKEN")) + +(define (file-lines file-path) + (let ((file (open-input-file file-path))) + (let loop ((lines '()) + (cur (read-line file))) + (if (eof-object? cur) + (begin (close-input-port file) + (reverse lines)) + (loop (cons cur lines) + (read-line file)))))) + +(define lines (file-lines "./words.txt")) + +(define (list-nth ls n) + (if (zero? n) + (car ls) + (list-nth (cdr ls) (- n 1)))) + +(define (list-remove-nth ls n) + (if (zero? n) + (cdr ls) + (cons (car ls) (list-remove-nth (cdr ls) (- n 1))))) + +(let ((nth (pseudo-random-integer (length lines)))) + (display (list-nth lines nth))) diff --git a/words.txt b/words.txt new file mode 100644 index 0000000..990c978 --- /dev/null +++ b/words.txt @@ -0,0 +1,1455 @@ +Americanization +Annunciation +Carnation +Clarence +Creation +Florence +Hellenization +Independence +Inquisition +Laurence +Lawrence +Nation +PlayStation +Provence +Providence +Prudence +Reconstruction +Reformation +Restoration +Revelation +Spence +Terence +Terrence +abbreviation +abdication +abduction +aberration +abhorrence +abjection +abjuration +ablation +ablution +abnegation +abolition +abomination +abortion +abrogation +absence +absolution +absorption +abstention +abstinence +abstraction +acceleration +accentuation +acceptation +acclamation +acclimation +acclimatization +accommodation +accreditation +accretion +acculturation +accumulation +accusation +acquiescence +acquisition +action +activation +actualization +actuation +adaptation +addiction +addition +adherence +adjudication +adjuration +administration +admiration +admonition +adolescence +adoption +adoration +adsorption +adulation +adulteration +adumbration +aeration +affectation +affection +affiliation +affirmation +affliction +affluence +afforestation +agglomeration +agglutination +aggravation +aggregation +agitation +alienation +allegation +alleviation +alliteration +allocation +alphabetization +alteration +altercation +alternation +amalgamation +ambition +ambivalence +ambulation +amelioration +ammunition +amortization +amplification +amputation +anesthetization +animation +annexation +annihilation +annotation +annunciation +antecedence +anticipation +apparition +appellation +application +apposition +appreciation +approbation +appropriation +approximation +arbitration +argumentation +arrogation +articulation +ascription +asphyxiation +aspiration +assassination +assertion +asseveration +assignation +assimilation +association +assumption +attention +attenuation +attestation +attraction +attribution +attrition +auction +audience +audition +augmentation +auscultation +authentication +authorization +automation +aviation +avocation +bastardization +bastion +beatification +beautification +belligerence +benediction +benefaction +beneficence +benevolence +bifurcation +bisection +bowdlerization +brutalization +bureaucratization +cadence +calcification +calculation +calibration +calumniation +canalization +cancellation +cannibalization +canonization +capitalization +capitation +capitulation +caption +captivation +carbonation +carnation +castigation +castration +categorization +cation +causation +cauterization +caution +celebration +centralization +cerebration +certification +cessation +channelization +characterization +chlorination +circulation +circumference +circumlocution +circumnavigation +circumscription +circumspection +circumvention +citation +civilization +clarification +classification +coagulation +coalescence +coalition +codification +coeducation +coexistence +cogitation +cognition +cohabitation +coherence +coincidence +collaboration +collation +collection +collectivization +collocation +colonization +coloration +colorization +combination +combustion +commemoration +commendation +commercialization +commiseration +commotion +communication +commutation +compartmentalization +compensation +competence +competition +compilation +complacence +completion +complication +composition +compunction +computation +computerization +concatenation +concentration +conception +conceptualization +conciliation +concoction +concretion +concupiscence +concurrence +condemnation +condensation +condolence +conduction +confabulation +confection +conference +confidence +confirmation +confiscation +conflagration +conflation +confluence +confrontation +confutation +congestion +conglomeration +congratulation +congregation +congruence +conjugation +conjuration +connection +conniption +conscription +consecration +consequence +conservation +consideration +consistence +consolation +consolidation +constellation +consternation +constipation +constitution +constriction +construction +consultation +consumption +containerization +contamination +contemplation +contention +continence +continuation +contortion +contraception +contradiction +contradistinction +contraindication +contraption +contravention +contribution +contrition +conurbation +convalescence +convection +convenience +convention +convergence +conversation +conviction +convolution +cooperation +coordination +copulation +coronation +corporation +corpulence +correction +correlation +correspondence +corroboration +corrugation +corruption +coruscation +counteraction +counterintelligence +counterrevolution +creation +credence +cremation +crenelation +crystallization +culmination +cultivation +customization +damnation +debarkation +debilitation +decadence +deceleration +deception +decimation +declamation +declaration +declination +decoration +decriminalization +dedication +deduction +defalcation +defamation +defecation +defection +deference +definition +deflation +deflection +defoliation +deification +dejection +delectation +deletion +delineation +demarcation +democratization +demolition +demonetization +demonstration +denigration +dentition +denudation +denunciation +deodorization +departmentalization +dependence +depiction +depletion +deportation +deprecation +depreciation +depredation +deputation +dereliction +derivation +derogation +desalination +desalinization +description +desecration +desertion +desiccation +designation +desolation +desperation +despondence +destination +destitution +destruction +detection +detention +deterioration +deterrence +detestation +detonation +detoxification +devastation +deviation +devolution +devotion +dictation +diction +difference +differentiation +diffidence +diffraction +digestion +dilapidation +dilatation +dilation +diligence +dilution +diminution +direction +discombobulation +discretion +discrimination +disinfection +disorganization +dispensation +disposition +disputation +disquisition +disruption +dissemination +dissertation +dissidence +dissipation +dissociation +distention +distillation +distinction +distortion +distribution +divergence +diversification +divination +documentation +domestication +domination +donation +dramatization +duplication +duration +dysfunction +ebullience +ebullition +echolocation +edification +edition +education +effervescence +efflorescence +effluence +effulgence +ejaculation +ejection +elaboration +elation +election +electrification +electrocution +elevation +elicitation +elimination +elocution +elongation +eloquence +elucidation +emaciation +emanation +emancipation +emasculation +embarkation +embrocation +emendation +emergence +emigration +eminence +emotion +emulation +emulsification +encapsulation +encrustation +enervation +enumeration +enunciation +equalization +equation +equitation +equivalence +equivocation +eradication +erection +eructation +erudition +eruption +escalation +essence +estimation +evacuation +evaluation +evanescence +evaporation +eviction +evidence +evisceration +evocation +evolution +exacerbation +exaction +exaggeration +exaltation +examination +exasperation +excavation +excellence +exception +excitation +exclamation +excommunication +excoriation +excrescence +excretion +exculpation +execration +execution +exemplification +exemption +exertion +exhalation +exhaustion +exhibition +exhilaration +exhortation +exhumation +exigence +existence +exoneration +expatiation +expatriation +expectation +expectoration +expedience +expedition +experience +experimentation +expiation +expiration +explanation +explication +exploitation +exploration +exportation +exposition +expostulation +expropriation +expurgation +extemporization +extenuation +extermination +externalization +extinction +extirpation +extortion +extraction +extradition +extrapolation +extrication +exudation +exultation +fabrication +facilitation +faction +faience +falsification +familiarization +fascination +fecundation +federalization +federation +felicitation +fence +fenestration +fermentation +fertilization +fibrillation +fiction +fictionalization +figuration +filtration +finalization +fixation +flagellation +flatulence +flirtation +florescence +flotation +fluctuation +fluorescence +fluoridation +fomentation +forestation +formalization +formation +formulation +fornication +fortification +fossilization +foundation +fraction +fragmentation +fraternization +fraudulence +friction +fruition +frustration +fulmination +fumigation +function +galvanization +generalization +generation +gentrification +genuflection +germination +gestation +gesticulation +glaciation +glamorization +globalization +glorification +gradation +graduation +grandiloquence +granulation +gratification +gravitation +gumption +gyration +habitation +habituation +hallucination +harmonization +herniation +hesitation +hibernation +homogenization +hospitalization +humanization +humidification +humiliation +hybridization +hydration +hydrogenation +hyperventilation +hyphenation +idealization +identification +idolization +ignition +illumination +illustration +imagination +imbrication +imitation +immanence +immigration +imminence +immobilization +immolation +immunization +impatience +impenitence +imperfection +impermanence +impersonation +impertinence +implantation +implementation +implication +importation +imposition +impotence +imprecation +impregnation +improvidence +improvisation +imprudence +impudence +imputation +inaction +inadvertence +inauguration +incandescence +incantation +incarceration +incarnation +inception +incidence +incineration +incipience +inclination +incorporation +incrimination +incrustation +incubation +inculcation +indemnification +indentation +indention +indexation +indication +indigence +indignation +individualization +individuation +indoctrination +indolence +induction +indulgence +industrialization +inebriation +infarction +infatuation +infection +inference +infestation +inflammation +inflation +inflection +infliction +influence +information +infrequence +ingestion +ingratiation +inhalation +inhibition +initiation +injection +innervation +innocence +innovation +inoculation +inquisition +inscription +insemination +insertion +insinuation +insistence +insolence +inspection +inspiration +installation +instigation +instillation +institution +institutionalization +instruction +instrumentation +insulation +insurgence +insurrection +integration +intelligence +intensification +intention +interaction +interception +intercommunication +interconnection +interdependence +interdiction +interference +interjection +internalization +interpolation +interposition +interpretation +interrelation +interrogation +interruption +intersection +intervention +intimation +intimidation +intonation +intoxication +intransigence +introduction +introspection +inundation +invention +investigation +invigoration +invitation +involution +ionization +iridescence +irradiation +irresolution +irreverence +irrigation +irritation +irruption +isolation +italicization +itemization +iteration +jollification +jubilation +junction +jurisdiction +jurisprudence +justification +juxtaposition +laceration +lactation +lamentation +lamination +legalization +legislation +legitimization +lenience +levitation +libation +liberalization +liberation +ligation +limitation +lionization +liposuction +liquefaction +liquidation +litigation +localization +location +locomotion +locution +lotion +lubrication +lucubration +luminescence +luxuriation +maceration +machination +magnetization +magnification +magnificence +magniloquence +malediction +malefaction +maleficence +malevolence +malformation +malfunction +malnutrition +manifestation +manipulation +marginalization +marination +mastication +masturbation +materialization +matriculation +maturation +maximization +mechanization +mediation +medication +meditation +melioration +memorization +menstruation +mensuration +mention +metrication +midsection +migration +militarization +miniaturization +minimization +ministration +misapplication +misappropriation +miscalculation +miscegenation +misconception +misconstruction +misdirection +misinformation +misinterpretation +mispronunciation +misquotation +misrepresentation +mitigation +mobilization +moderation +modernization +modification +modulation +molestation +mollification +monition +monopolization +moralization +mortification +motion +motivation +motorization +multiplication +mummification +munificence +munition +mutation +mutilation +mystification +narcotization +narration +nasalization +nascence +nation +nationalization +naturalization +navigation +negation +negligence +negotiation +neutralization +nitration +nitrification +nomination +noncooperation +nondiscrimination +nonexistence +nonfiction +noninterference +nonintervention +nonproliferation +nonrecognition +nonviolence +normalization +notarization +notation +notification +notion +novelization +nucleation +nullification +numeration +nutrition +obedience +obfuscation +objection +objurgation +oblation +obligation +obliteration +observation +obsolescence +obstruction +obviation +occupation +occurrence +omnipotence +omnipresence +omniscience +opalescence +operation +opposition +optimization +option +opulence +oration +orchestration +ordination +organization +orientation +origination +ornamentation +oscillation +osculation +ossification +ostentation +outstation +ovation +overcompensation +overconfidence +overestimation +overexertion +overindulgence +overpopulation +overproduction +overreaction +oversimplification +overspecialization +ovulation +oxidation +oxidization +oxygenation +pacification +pagination +palatalization +palliation +palpation +palpitation +participation +particularization +partition +parturition +pasteurization +patience +peculation +pejoration +penalization +penetration +penitence +perambulation +perception +percipience +percolation +perdition +peregrination +perfection +perforation +permanence +permeation +permutation +peroration +perpetration +perpetuation +persecution +persistence +personification +perspiration +pertinence +perturbation +pestilence +petition +petrifaction +phosphorescence +pigmentation +placation +plantation +pluralization +polarization +politicization +pollination +pollution +polymerization +popularization +population +portion +position +postulation +potion +preadolescence +precaution +precedence +precipitation +precognition +preconception +precondition +predestination +predetermination +predication +prediction +predilection +predisposition +preeminence +preemption +preexistence +prefabrication +preference +premeditation +premonition +preoccupation +preparation +preposition +prepubescence +preregistration +prescience +prescription +presence +presentation +preservation +pressurization +prestidigitation +presumption +presupposition +prevalence +prevarication +prevention +privation +privatization +probation +proclamation +procrastination +production +profanation +prognostication +prohibition +projection +proliferation +prolongation +prominence +promulgation +pronunciation +propagation +propitiation +proportion +prorogation +proscription +prosecution +prostitution +prostration +protection +protestation +provenience +providence +prudence +prurience +pseudoscience +pubescence +publication +pulsation +pulverization +punctuation +purification +purulence +putrefaction +putrescence +quadruplication +qualification +quantification +question +quiescence +quintessence +quotation +radiation +radicalization +ramification +randomization +rarefaction +ratification +ratiocination +ration +rationalization +realization +recantation +reception +reciprocation +reclamation +recrimination +recrudescence +rectification +recuperation +recurrence +redaction +redemption +redolence +reduction +refection +reference +reflection +refraction +refrigeration +refulgence +refutation +regimentation +registration +regularization +regulation +regurgitation +rehabilitation +rejection +rejuvenation +relation +relaxation +reminiscence +remuneration +rendition +renovation +renunciation +reparation +repatriation +repetition +repletion +replication +repudiation +reputation +requisition +reservation +residence +resignation +resilience +resorption +respiration +resplendence +restitution +restoration +restriction +resumption +resurgence +resurrection +resuscitation +retaliation +retardation +retention +reticence +reticulation +retribution +retrospection +revelation +reverberation +reverence +revivification +revolution +rotation +ruination +rumination +rustication +salience +salivation +salutation +salvation +sanctification +sanction +sanitation +sapience +satiation +satisfaction +saturation +scarification +science +scintillation +secretion +section +secularization +sedation +sedimentation +sedition +seduction +segmentation +segregation +selection +senescence +sensation +sensitization +sentence +sentience +sentimentalization +separation +sequence +sequestration +serialization +serration +signalization +signification +silence +simplification +simulation +situation +sixpence +socialization +solemnization +solicitation +solidification +somnolence +sophistication +specialization +specification +speculation +spoliation +stabilization +stagflation +stagnation +standardization +starvation +station +sterilization +stigmatization +stimulation +stipulation +strangulation +stratification +striation +stultification +stupefaction +subjection +subjugation +sublimation +submergence +subordination +subornation +subscription +subsection +subservience +subsidence +subsidization +subsistence +substantiation +substation +substitution +subtraction +subvention +succulence +suction +suffixation +suffocation +suggestion +summation +superannuation +supererogation +superimposition +superintendence +superposition +supersaturation +superscription +superstition +supervention +supplementation +supplication +supposition +suppuration +syllabication +syllabification +symbolization +synchronization +syncopation +syndication +systematization +tabulation +tantalization +taxation +telecommunication +teleconference +temptation +termination +tessellation +threepence +tintinnabulation +titillation +titivation +toleration +traction +tradition +transaction +transcendence +transcription +transference +transfiguration +transformation +transience +transition +translation +transliteration +translucence +transmigration +transmogrification +transmutation +transpiration +transplantation +transportation +transposition +transubstantiation +trepidation +triangulation +tribulation +trisection +trivialization +truculence +truncation +tuition +tumescence +turbulence +twopence +typification +ulceration +ululation +unction +underestimation +underproduction +undervaluation +undulation +unification +urbanization +urination +usurpation +utilization +vacation +vaccination +vacillation +valediction +valence +validation +valuation +vaporization +variation +variegation +vegetation +vehemence +venation +veneration +ventilation +verbalization +verification +versification +vexation +vibration +victimization +vilification +vindication +violation +violence +virulence +visitation +visualization +vitalization +vitiation +vitrifaction +vitrification +vituperation +vivisection +vocalization +vocation +vociferation +volition +vulcanization +vulgarization +weatherization +westernization +workstation