James FennWriter of bad puns and slightly better software. This website contains information about my adventures in programming, current projects, and me.2024-02-10T00:00:00Zhttps://jfenn.me/James Fennme@jfenn.meSelf-Hosting Music DistributionConsidering alternatives to modern music distribution with small platforms and self-hosted sites!2024-02-10T00:00:00Z2024-02-10T00:00:00Zhttps://jfenn.me/blog/2024-02-10-Self-Hosting-Music-Distribution/https://jfenn.me/blog/2024-02-10-Self-Hosting-Music-Distribution/What have I been up to?A summary of some of the various projects I've been working on this year.2023-10-23T00:00:00Z2023-10-23T00:00:00Zhttps://jfenn.me/blog/2023-10-23-WHIBUT/https://jfenn.me/blog/2023-10-23-WHIBUT/Minecraft Data Pack Programming: Scoreboard UsageA beginner-friendly series for teaching programming concepts with Minecraft data packs.2022-08-20T00:00:00Z2022-08-20T00:00:00Zhttps://jfenn.me/blog/2022-08-20-Minecraft-Data-Packs/https://jfenn.me/blog/2022-08-20-Minecraft-Data-Packs/Minecraft Data Pack Programming: Command SyntaxA beginner-friendly series for teaching programming concepts with Minecraft data packs.2022-06-15T00:00:00Z2022-06-15T00:00:00Zhttps://jfenn.me/blog/2022-06-15-Minecraft-Data-Packs/https://jfenn.me/blog/2022-06-15-Minecraft-Data-Packs/Minecraft Data Pack Programming: IntroductionA beginner-friendly series for teaching programming concepts with Minecraft data packs.2022-06-14T00:00:00Z2022-06-14T00:00:00Zhttps://jfenn.me/blog/2022-06-14-Minecraft-Data-Packs/https://jfenn.me/blog/2022-06-14-Minecraft-Data-Packs/Dynamic Backgrounds in Unicorn Utterances' Preview ImagesAn explanation of some CSS tricks and techniques I used to make a neat contribution to the Unicorn Utterances blog site.2022-05-31T00:00:00Z2022-05-31T00:00:00Zhttps://jfenn.me/blog/2022-05-31-Unicorn-Utterances-Preview-Images/https://jfenn.me/blog/2022-05-31-Unicorn-Utterances-Preview-Images/Declarativ: an experimental React-like HTML frameworkA breakdown of the concepts used in Declarativ, a lightweight JavaScript HTML templating library.2021-08-17T00:00:00Z2021-08-17T00:00:00Zhttps://jfenn.me/blog/2021-08-17-Declarativ-Templating/https://jfenn.me/blog/2021-08-17-Declarativ-Templating/Audio Automation: using Java's MIDI APIs with Kotlin FlowAn explanation of the development process behind a MIDI library using the Kotlin Flow API.2021-01-31T00:00:00Z2021-01-31T00:00:00Zhttps://jfenn.me/blog/2021-01-31-Audio-Automation/https://jfenn.me/blog/2021-01-31-Audio-Automation/Animating SVG Icons on the WebA small breakdown of the process I used to create a couple interactive icons for a web project.2020-05-09T00:00:00Z2020-05-09T00:00:00Zhttps://jfenn.me/blog/2020-05-09-Animating-SVG-Icons/https://jfenn.me/blog/2020-05-09-Animating-SVG-Icons/Ethics of Artificial IntelligenceAn overview of the discourse surrounding "ethical AI" and its use in the Big Tech industry.2020-01-24T00:00:00Z2020-01-24T00:00:00Zhttps://jfenn.me/blog/2020-01-24-Ethics-of-AI/https://jfenn.me/blog/2020-01-24-Ethics-of-AI/Federated Social NetworksExplaining what the fediverse is, how to join it, and why.2019-12-15T00:00:00Z2019-12-15T00:00:00Zhttps://jfenn.me/blog/2019-12-15-Federated-Social-Networks/https://jfenn.me/blog/2019-12-15-Federated-Social-Networks/Ethical Source and SubjectivityA mini-summary / explanation of some criticisms of the Ethical Source Movement.2019-10-30T00:00:00Z2019-10-30T00:00:00Zhttps://jfenn.me/blog/2019-10-30-Ethical-Source/https://jfenn.me/blog/2019-10-30-Ethical-Source/Free Software and RMSA summary of my thoughts on the relationship between Richard Stallman and the Free Software Movement.2019-10-28T00:00:00Z2019-10-28T00:00:00Zhttps://jfenn.me/blog/2019-10-28-Free-Software-RMS/https://jfenn.me/blog/2019-10-28-Free-Software-RMS/Open Source in EducationA discussion of the open source model as a solution to many issues in higher education.2019-10-15T00:00:00Z2019-10-15T00:00:00Zhttps://jfenn.me/blog/2019-10-15-Open-Source-in-Education/https://jfenn.me/blog/2019-10-15-Open-Source-in-Education/JavaScript: Productivity over ProofIn the vast majority everyday software, nobody writes a mathematical proof of every piece of functionality. Dynamically typed languages exist for a reason, and this is not it.2019-08-02T00:00:00Z2019-08-02T00:00:00Zhttps://jfenn.me/blog/2019-08-02-JavaScript-Proofs/https://jfenn.me/blog/2019-08-02-JavaScript-Proofs/Introduction to Android: Contexts, Intents, and the Activity lifecycleA basic overview of the main components of an Android app and how they interact with each other and the Android system.2019-03-18T00:00:00Z2019-03-18T00:00:00Zhttps://jfenn.me/blog/2019-03-18-Introduction-to-Android/https://jfenn.me/blog/2019-03-18-Introduction-to-Android/Continuous Integration with Travis CI for AndroidAn in-depth tutorial explaining how to set up Travis CI to deploy signed builds to Google Play. Among other things.2018-11-14T00:00:00Z2018-11-14T00:00:00Zhttps://jfenn.me/blog/2018-11-14-Continuous-Integration/https://jfenn.me/blog/2018-11-14-Continuous-Integration/CSS SubmodulesHow I organize my site's CSS and why.2018-10-26T00:00:00Z2018-10-26T00:00:00Zhttps://jfenn.me/blog/2018-10-26-CSS-Submodules/https://jfenn.me/blog/2018-10-26-CSS-Submodules/Exceptional TravelerI explain how and why (sort of) I wrote an implementation of the Traveling Salesperson Problem using Exceptional Programming standards.2018-09-25T00:00:00Z2018-09-25T00:00:00Zhttps://jfenn.me/blog/2018-09-25-Exceptional-Traveler/https://jfenn.me/blog/2018-09-25-Exceptional-Traveler/AAAAAAAAAAAAAAAAAAAAAAAHHHA small command-line utility I wrote with Go that I had a lot of fun with.2018-09-01T00:00:00Z2018-09-01T00:00:00Zhttps://jfenn.me/blog/2018-09-01-AAAAAAAAAH/https://jfenn.me/blog/2018-09-01-AAAAAAAAAH/Client-Side JavaScriptWhy I rewrote my site with Jekyll, rather than running a ton of client-side JavaScript that doesn't really work all of the time.2018-08-19T00:00:00Z2018-08-19T00:00:00Zhttps://jfenn.me/blog/2018-08-19-Client-Side-JavaScript/https://jfenn.me/blog/2018-08-19-Client-Side-JavaScript/AttribouterA short breakdown of a really really big library I wrote to credit contributors and libraries used in my Android projects.2018-08-17T00:00:00Z2018-08-17T00:00:00Zhttps://jfenn.me/blog/2018-08-17-Attribouter/https://jfenn.me/blog/2018-08-17-Attribouter/Hello WorldI made a blog.2018-07-28T00:00:00Z2018-07-28T00:00:00Zhttps://jfenn.me/blog/2018-07-28-Hello-World/https://jfenn.me/blog/2018-07-28-Hello-World/