Logostroiman.com

Open Source Projects

The world of software development has changed profoundly during the last 15 years. Large software development companies make parts of their software available as open-source; the components that are not part of their core business, but of a general nature.

I share that philolosphy 100%, and when I write code, everything I write that is not related to a specific application or problem, I want to share that with others

After all, my entire software development tool chain is based on free and open-source software; it would only be fair that I contribute back to the communities.

Obsidian Plugins

Obsidian is an amazing note taking tool that can serve multiple purposes. It can be your daily journal. It can be your personal wiki. It can be the place where new ideas arise by identifying patterns in existing notes.

A great part of the power and flexibility of Obsidian comes through it's extensibility through community plugins

I've been using Obsidian for about 8-10 months now; and from time to time, there was functionality I desired, so I wrote my own plugin for that

  • TitleSync

    Keeps the title in the node synchronised with the filename when you rename a file

    The primary use case was when I created a new note using a template to fill out the title in the note body. A blank note would have the title "Untitled" selected, but after writing a proper name; the contents had already been created and would keep the name "Untitled". This very small plugin updates the content.

  • Publish to DEV

    When I write articles on DEV, I author the content in Obsidian. To simplify the publishing process, I wrote this plugin.

    Apart from some minor UI code, this plugin was written test-first; which drove a very efficient development process. The initial prototype was developed in a single session and it worked the first time. Writing testable Obsidian plugins is not easy as you have dependencies to closed-source code. This article describes how I applied intimate knowledge of JavaScript and TypeScript to structure the structure the code to be testable.

  • Frontmatter Smith

    Some of the powerful features of Obsidian comes from analysing notes based on metadata in the 'frontmatter'. This plugin was written to simplify entry of trivial information you want to add on a daily basis.

  • Plugin template with tests

    This is not a plugin in itself, but a starting point for writing plugins. It is based on the official Obsidian plugin template but adds the scaffolding for automated testing

Speed

Speed is a test framework for OCaml. It was born out of a desire to write OCaml code driven by tests; but none of the existing libraries satisfied my needs. The existing libraries seemed to be very tightly coupled to the philosophy of writing unit tests; but a very misunderstood part of TDD is that it is not about writing unit tests at all.

I wrote an article about why TDD is such an efficient process, you can read it here, Stop writing unit tests

Speed utilises advanced features of the OCaml type system, such as Generalized algebraic datatypes, Extensible Variants, and meta-programming through PPX generators and rewriters

This web site

Being passionate about open-source, I have also made the source code for this web site available. After all, I don't add information I don't intent to publish anyway.