πΌ Welcome!
My name is Houston Haynes and I’ve been doing “full stack” hardware and software engineering for a while now. I’m also a conservatory trained composer, so the pun “F# Notes” seemed to balance the nerd qualities of those two spheres. π΅ π π If you’re like me and have written code in many languages for many environments, the cognitive burden of that work can seem daunting. With F# I’ve found “a home” that lets me bring a new level of focus and productivity across a variety of targets. This site is the latest phase of work in fitting as much of those domains “into my head” as I can - and, where needed, offload bits of information for reference, review and later retrieval as I “switch gears” into new engineering challenges that F# so aptly addresses.
While this site is based on Hugo and markdown, I’m also using the Obsidian note-taking app and the zettelkasten method to organize my thoughts. For those that already know about note-taking apps as “a second brain” this will come as no surprise. π§
What is The Purpose of this Site? #
This is a clearinghouse for short-form and long-form notes that journal my personal path to deeper understanding of F#. Because of the incredible “reach” of F# - into front end, back end, machine learning and even Internet-of-Things, as well as its expansive capabilities as a meta-language, this site will have an increasing span as time marches on. In the early stages I’ll be focusing on “core” F# idioms. But subjects will eventually ‘fan out’ - starting with digressions to outline C# interop, as many of my current projects cross into that domain.
And similarly, I will eventually delve into the Fable compiler, which adds dimensions to F# outside of and alongside the .NET sphere. The engineering circles which currently leverage the power of Fable understand it’s amazing capabilities. Outside of those working groups, however, it’s still a relative unknown. The fact that F# can compile to several other languages, starting with JavaScript, it flexes a real super-power through its ability to provide type safety, performance, flexibility and reach far beyond the .NET ecosystem.
‘Tis The Gift To Be Simple πΆ #
(π© Hat tip to Aaron Copland) I’m not exactly certain how much of the “raw form” of zettels will actually show up here. I have a backlog of subjects I want to write about, but I’m also continuing practicing and learning new techniques every day. One of the aspects of this process that really rings true for me with the zettelkasten method is the ability to bring ideas together and allow them to coalesce in sometimes surprising ways. It also has some elements of a compositional approach to software engineering, something I’ll be writing about more throughout the site. So while I want to avoid over-planning, my backlog of projects and subjects I want to note for my future self is not trivial. π«° The end goal is to leave room for this site grow and foster an emergence of ideas - which could will likely lead to soliciting feedback from the community and perhaps include direct contributions, if that interest emerges.
A Semblance of Direction #
π Short Form Scatter: zettels (notes) will pop up as I stumble across new ideas while researching specific projects. I’m still working out how those pieces work together, but I’m really glad to have the interactive graph as a resource. I think it will be key to unlocking the power of bringing together (seemingly) “atomic” concepts into fresh ideas. π‘
βοΈ Emergent Structure: As zettels “mature” and gain more salience to on-going study, they’ll eventually merge into longer-form blog entries. This might be a little bit different from more “strict” zettelkasten vaults, where keeping notes small and focused is a more constrained, nearly dogmatic practice. This site will likely show a continuum from those points of information to longer-form think pieces. π§ π€ ποΈ
π Highly referenced: This starts with helping myself keep up with reminders of resources, in many cases to web resources, but also in some cases to hard copy texts I keep on hand. I’ll try to provide links to primary sources where possible. π
βοΈ Working examples: One of the things I envision is a way to directly exercise bits of code in the browser where possible. I’m not precisely sure how to do this now, but it may end up being one of the projects I list on this site. With “Try F#” and Fable’s online REPL both available online, I have to imagine that this should be a viable avenue to explore in phases. π οΈ
πΈοΈ Interactive Graph: Probably the most π eye-catching element of this site is the Interactive Graph available on most pages. This uses frontmatter and other page references to link pages together in a dynamic graph. The Hugo Obsidian project makes this possible, and I’m still getting my head wrapped around how it works. I expect that will start to grow significantly as the zettelkasten and longer-form “perspective” pages start to intersect. I’m really digging this Go-implemented tool, and may end up inspiring me to add another project. ππ
π Projects: Beyond note-taking and the occasional think piece there will also be more structured project-specific folders and pages where I’ll keep track of progress and document various sidebars and digressions. I’m hoping to bring in Obsidian calendars and other plugins, but that will largely depend on whether those community plugins render their output to markdown. π
A Paved Path π£οΈ #
While this is about my own second brain hopefully this will also serve to help others in finding their own way to the variety of resources available in this incredible ecosystem. For those that have recently discovered the treasure trove of open-source resources available to them in the F# world πΊοΈ it can seem a bit daunting. So aside from code samples and chatter of that sort I’ll park references and “pointers” to other locations around the web, which is part of the super-power of “second brain” applications like these. I’m looking forward to making use of these tools, and sharing my journey along they way! π΅