#Anklang

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-08-21

#DevLog: #Anklang TypeScript & Sndfile Updates

🌐 #Jsonipc #TypeScript migration complete, including codegen!

πŸ“š Updated development docs accordingly

πŸ› οΈ Manually wrote #libsndfile config.h

⚑ Major #Sndfile build speedup without #cmake

#BuildInPublic #100DaysOfCode

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-08-18

#DevLog: jj-fzf & #Anklang type safety πŸ’‘

πŸ“¦ Migrated all #Jsonipc glue code to #TypeScript
🧹 Finally removed legacy #castxml + #Python based code generator
🧩 Next up: porting generated bindings to TypeScript, aiming for fully type-safe #IPC!

🌐 Fixed jj-fzf to preserve ::@ history when deleting #git tags

#100DaysOfCode #BuildInPublic #Jujutsu #VCS

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-08-13

#DevLog: #Anklang #IPC Bindings πŸ”„

🧹 Cleaned up #API for IPC and simplified it

πŸ› οΈ Rewrote C++ <-> #JavaScript binding generator in #TypeScript

✨ Improved code generation for handling of accessors

πŸ“¦ Tested updated #NPM dependencies

#BuildInPublic #Cpp #100DaysOfCode

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-08-12

#DevLog: #Anklang Build & Codegen πŸ› οΈ

πŸ“¦ Fixed #AppImage builds failing due to missing linuxdeploy and appimage-runtime-zstd

πŸ”„ Explored tracking generated sources in #Git + codegen rules for auto-updating them

πŸ” Still working on robust detection for when triggering rebuilds is needed

#Cpp #BuildInPublic #100DaysOfCode

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-08-07

#DevLog: #Anklang #RPC Evolution πŸ”„

🧱 More JSON marshalling work for method calls
πŸ› οΈ Changed Json libraries and conversion logic
πŸ”— Moved to managed pointers for all API obejcts
🧠 Discovered LLMs don't fully understand cross-language RPC nuances… πŸ˜•

βœ… Solved the C++ template specialization issues

#Cpp #TypeScript #100DaysOfCode #BuildInPublic

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-08-06

#DevLog: #Anklang Binding Migration πŸ§ͺ

πŸ› οΈ Trying to base the C++ <-> JSON bindings on `#clang -extract-api` instead of castxml

πŸͺ› Have prototype code for #JSON call dispatching

🧩 Atm fighting #CPlusPlus template specializations for member func with and w/o const

✨ The ultimate goal is to make the bindings type safe with #Typescript wrappers

#100DaysOfCode #BuildInPublic

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-29

#DevLog: #Anklang Build Overhaul πŸ› οΈ

πŸ”§ Reworked build rules to make #Git optional (mostly used to find linting targets)

πŸͺ› Fixed DEB and #AppImage builds

πŸ“¦ Added #RPM packages (via Alien)

πŸ€– Automated dist & install verification

πŸ‹ Rewrote the Docker CI container

πŸ›‘οΈ Isolated binary builds out-of-tree

πŸš€ Tagged a nightly release:

github.com/tim-janik/anklang/r

#100DaysOfCode #CI_CD #BuildSystems

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-28

#DevLog: #Anklang #Submodule Purge

🚧 #Github release tar/zip archives cannot include submodule sources
πŸ“₯ So, we now fetch all external sources as tarballs (faster anyway)
🧹 Deleted .gitmodules and all submodule build rules

#100DaysOfCode #Packaging #Git

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-28

#DevLog: #Anklang Dependencies πŸ’»

🧨 #GitHub's tarball/zip generation via #Git archive excludes submodules
βœ… So… moving to fetch C++ deps via #curl now
πŸ”„ Finished shell.js to shell.jsx (#SolidJS) migration

#100DaysOfCode #Packaging #LitToSolid

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-27

#DevLog: #Anklang #Packaging 🐧

πŸ“¦ Tried converting DEB pkgs to RPMs via alien & fakeroot
❄️ Alien wraps postinstall scripts in uuencoded strings, decodes with #Perl
πŸ’₯ #Fedora 42 dropped Perl support!

❓ Seeking solutions to align Alien v8.95.6 with F42, any ideas? πŸ€”

#100DaysOfCode

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-26

#DevLog: Revised Deb #Packaging in #Anklang

πŸ“¦ Upgraded #Debian dependencies to 24.04
πŸ”§ Fixed installation symlinks and prefix
πŸ’‘ Adjusted paths to /opt/<vendor>/ convention

#100DaysOfCode #FHS

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-23

#DevLog: #Anklang #CI Actions Deep Dive

πŸ“š Read up on collecting artifacts from multi-workflow jobs
πŸ§ͺ Tested many {up|down}load-artifact variants in dedicated test repo
🧟 Studied gh CLI code to automate #GitHub releases
🐞 Still debugging…

#100DaysOfCode #GitHubActions

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-22

#DevLog: #Anklang #CI Grind

🐳 Built #Dockerfile twice:

🚫 First attempt on Debian Bookworm failed due to libstdc++-12 being too old

βœ… Switched to #ubuntu:22.04 for newer deps

πŸ› οΈ Updated Makefiles to remove Git dependency from tarball builds (unfinished)

#100DaysOfCode

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-21

#DevLog: #Anklang #SolidJS Influx

🧬 Fixed some of my #LitElement bugs by migrating to solid
🧩 Refactored & simplified modal dialog creation

🎯 Goal: Robust UI with modern reactivity patterns!

#WebDev #100DaysOfCode

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-20

#DevLog: #Anklang: Testing #SolidJS

πŸš€ Migrated our main UI shell from #Lit to Solid
⚑ Using Signals definitely made dealing with reactivity easier
🧩 This is still a test migration to get a basic feel, but it looks like a significant improvement overall

#100DaysOfCode #WebDev

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-20

@bendelarre @hmiron

In #Anklang, we have been running into warnings from #Lit like:

> Element scheduled an update (generally because a property was set) after an update completed, causing a new update to be scheduled.

You should be good unless you see a warning directing you here:
lit.dev/docs/components/proper

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-19

@hmiron

For #Anklang we expect to have lots of small updates at the GUI, but the number of components (Tracks, Clips) remains mostly stable throughput the runtime. We do however have some heavy canvas uses (PianoRoll, Spectrogram).

It wasn't too easy to map these requirements onto Vue2/Vue3, which is why we moved to Lit. However for Lit we also have to bundle a Signals library to implement all needed updates and still see missing updates / complains about too many rerenders at the UI.

Since we need Signals anyway, it makes sense to look into SolidJS as a UI solution as well.

So here is a Wiki page with the result of LLMs comparing the two under our requirements:

github.com/tim-janik/anklang/w

#100DaysOfCode #WebDev #SolidJS

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-19

DevLog: #Anklang Tech Stack Juggling

πŸ“š Deep dive into SolidJS vs. Lit Components trade-offs πŸ†š
🐳 Resolved Dockerfile builds missing pandoc
πŸ§ͺ Looked into combining SolidJS lifecycle with custom class logic

#100DaysOfCode #WebDev #SolidJS

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-17

DevLog: #Anklang Tech Stack Modernization

πŸš€ Migrated to #TailwindCSS-4 + #Vite (#HMR rocks)

🐞 Replaced Vue with SolidJS signals + #LitElement

πŸ’‘ Fixed sidebar overlaps, double-click bugs

🚧 Quirk debugging still ongoing, but progress is solid!

#100DaysOfCode #WebDev

🎹 Tim Janik βœ…timj@social.tchncs.de
2025-07-17

I'm publicly committing to the 100DaysOfCode Challenge, aiming to work on #Anklang and tweet about it daily.

I expect it to be far easier to spend an hour coding every day than to craft an intelligent microblog message about it...

Join me and learn about it here: 100DaysOfCode.com

#100DaysOfCode

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst