41554 blogs · [ { "id": "01a0b68b-4cda-7307-ac1e-bfe76efbd083", "title": "James Fenn", "url": "https://jfenn.me", "published_at": "2026-09-07T05:20:44+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15fafb921dfe", "title": "Entity Component System: The Perfect Solution to Reusable Code?", "url": "https://jfenn.me/blog/2024-09-01-entity-component-system", "published_at": "2024-09-01T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15fafadf474f", "title": "Self-Hosting Music Distribution", "url": "https://jfenn.me/blog/2024-02-10-self-hosting-music-distribution", "published_at": "2024-02-10T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15faf97d84d4", "title": "What have I been up to?", "url": "https://jfenn.me/blog/2023-10-23-whibut", "published_at": "2023-10-23T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15faf8a5b9c1", "title": "Minecraft Data Pack Programming: Scoreboard Usage", "url": "https://jfenn.me/blog/2022-08-20-minecraft-data-packs", "published_at": "2022-08-20T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15faf6b63dc1", "title": "Minecraft Data Pack Programming: Command Syntax", "url": "https://jfenn.me/blog/2022-06-15-minecraft-data-packs", "published_at": "2022-06-15T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15faf5ee8081", "title": "Minecraft Data Pack Programming: Introduction", "url": "https://jfenn.me/blog/2022-06-14-minecraft-data-packs", "published_at": "2022-06-14T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15fafa16bc0b", "title": "Dynamic Backgrounds in Unicorn Utterances' Preview Images", "url": "https://jfenn.me/blog/2022-05-31-unicorn-utterances-preview-images", "published_at": "2022-05-31T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15fafc4b4cb4", "title": "Declarativ: an experimental React-like HTML framework", "url": "https://jfenn.me/blog/2021-08-17-declarativ-templating", "published_at": "2021-08-17T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15faf84c2c47", "title": "Audio Automation: using Java's MIDI APIs with Kotlin Flow", "url": "https://jfenn.me/blog/2021-01-31-audio-automation", "published_at": "2021-01-31T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15faf9ac4cfe", "title": "Animating SVG Icons on the Web", "url": "https://jfenn.me/blog/2020-05-09-animating-svg-icons", "published_at": "2020-05-09T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15faf8073a33", "title": "JavaScript: Productivity over Proof", "url": "https://jfenn.me/blog/2019-08-02-javascript-proofs", "published_at": "2019-08-02T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15faf52dfef1", "title": "Introduction to Android: Contexts, Intents, and the Activity lifecycle", "url": "https://jfenn.me/blog/2019-03-18-introduction-to-android", "published_at": "2019-03-18T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15faf43cc461", "title": "Continuous Integration with Travis CI for Android", "url": "https://jfenn.me/blog/2018-11-14-continuous-integration", "published_at": "2018-11-14T00:00:00+00:00" }, { "id": "01a0878d-aa08-7278-a4c9-15faf71a1ece", "title": "Exceptional Traveler", "url": "https://jfenn.me/blog/2018-09-25-exceptional-traveler", "published_at": "2018-09-25T00:00:00+00:00" } ] posts Claim your blog
Back to James Fenn
Blog · corpus.blog/blogs/jfenn.me/posts

James Fenn

jfenn.me

2026

2024

2023

2022

2021

2020

2019

2018