Logostroiman.com

Open-source projecter.

Softwareudvikling har forandret sig markant over de sidste 15 år. Selv store softwareudviklingshuse distribuerer dele af deres kode som open-source komponent. Dele, der ikke relaterer til deres kerneforretnint; komponenter, der løses mere generelle problemer

Jeg er meget passionerer omkring hele open-source miljøet, og alt hvad jeg selv skriver, der ikke relaterer til en specifik application er noget jeg vil dele med andre.

Når det kommer til stykket er hele min værktøjskasset sat sammen af gratis open-source værktøjer.

Obsidian Plugins

Obsidian is er et værktøj med mange muligheder. Du kan tager noter, holde dagbog, mødereferater, eller det kan fungerer som din personlige wiki. Og herinde kan nye ideer opstå, når man identificerer relationer mellem ellers helt urelaterede ideer.

En stor del af værktøjets kraft kommer gennem de udvidelsesmuligheder der er via 'plug-ins'.

Jeg har været Obsidian-bruger i 8-10 måneder, og med mellemrum opdager jeg at der manglede lige noget specifik functionalitet. Så derfor har jeg lavet mine egne plugins.

  • TitleSync

    Holder titlen i noter synkroniseret med filnavnet.

    Dette plugin var mest til at håndterer et problem, når jeg oprettede nye filer, og brugte en automatisk 'template' til at udfylde indholet, inklusiv en title. Titlen var som regel 'Untitled', og når jeg rettede filnavnet, stod der stadig 'untitled' i filens indhold. Dette var mit første plugin, of sørger for at løse dette lettere bagatel-agtige problem

  • Publish to DEV

    Jeg skriver artikler om softwareudvikling, der bliver publiceret til DEV. Selve skriveprocessen foregår i Obsidian. Dette plugin integrerer med DEVs API, så jeg kan publicerer nyt artikler, og rettelser til gamle, direkte fra Obsidian

    Med undtalese af lidt UI kode, er al kode i dette plugin udvilket med TDD. Det resulterede i en meget effektiv process, hvor koden virkede første gang jeg testede det i et produktionsmiljø. At skrive Obsidian-plugins, der er kan testes er ikke nemt, da man er afhængig af closed-source kode. I denne artikkel har jeg beskrevet hvordan jeg har anvedt dyb kendskab til JavaScript og TypeScript til at kunne strukturerer koden in testbar form.

  • Frontmatter Smith

    Nogle af de stærke features i Obsidian er muligheden for at analyserer noter baseret på metadata i 'frontmetter'. Jeg skrev dette plugin for at lette indtastning af trivial information på daglig basis

  • Plugin template with tests

    Dette er ikke et plugin i sig selv, men en skabelon for at skive plugins. Det er baseret på den officielle Obsidian plugin skabelon, men hvor jeg har tilføjet testværktøjer til at drive en TDD process

Speed

Speed er et test-framework for OCaml. Det blev skaby ud fra ønsket om at skrive OCaml TDD kode. Men ingen af de eksisterende værktøjer tilfredsstillede mine behov. De var i høj grad tæt koblet til filosofien om unit-tests. Men det er en ofte forekommende misforståelse at TDD går ud på at skrive unit tests.

Jeg skrev en artikkel (på engelse) om, hvorfor TDD en effektiv udviklingsprocess. Du kan læse den her: Stop writing unit tests

Speed udnytter avancerede funktioner i OCaml's type-system, fx. Generalized algebraic datatypes, Extensible Variants, og meta-programmering gennem PPX generators- og rewriters.

Dette website

Som open-source entusiast har jeg også gjort al source kode for dette website tilgængelig. Der er jo ikke noget information i kode, der ikke er tænkt at blive offentliggjort alligevel.