HN user

anpep

264 karma

hn@anpep.co

Posts5
Comments7
View on HN

I'm building a native music player in C++ for playing music I bought. I know there's Doppler for macOS but I want different ways of curating and interacting with my library (annotating tracks, custom tags instead of a simple enum for describing genres, advanced tag editing, bulk and transactional/undoable library operations...)

Also, now that code is cheap(ish), I'm implementing UI with a thin-layer of 2D draw commands that can be easily ported (CoreGraphics, Direct2D, Pango, whatever), which is by large the most painful part of it all.

Focus is reliability, UI responsiveness and resource usage, which is why I ditched electron even though it seems to be the only sensible option today for non-ugly, cross-platform GUI.

I’m self-teaching modern C++ by developing a native music library manager and player for Windows, macOS and other Unix systems. The main focus is on the 100% custom UI (with Direct2D/CoreGraphics/Cairo backends), aiming for responsiveness, power-user friendliness and compactness. The UI thread is absolutely sacred and I’m trying really hard to separate the core logic from the UI, because I hate how laggy and hang-prone all players I’ve tried are. I’m drawing inspiration from pre-2010 skeuomorphic and dense UIs. Key features include fast incremental imports and powerful UI elements with features like multiple column sorting, multiple element selection and keyboard-first navigation. I understand this problem is already solved, but I’m starting to DJ and curate my personal music library again. So far, nothing has been more satisfying than an old unsupported version of iTunes that doesn’t even support FLAC. I’ve tried foobar2000 but it doesn’t meet many of my requirements. Therefore, I’m building this software both because I have a need and because writing it is very fun (and frustrating at times)!

I’ve written a PoC already (mind the crappy and incomplete UI), mostly to test the wild custom UI idea, and it’s working so far! https://i.redd.it/ocx9m5av6d6g1.jpeg

Mystical 1 year ago

Reminds me of japanese anime Dennō Coil, where kids would draw computer programs almost exactly like the author’s on the floor and invoke them as some kind of enchantement. Highly recommend it!

Ever since I discovered OrbStack, my M1 has become the perfect laptop for me. OrbStack has great UX, massive FS performance, Docker & Kubernetes support, and a bunch of really clever people behind it. Everyone doing linux development on a Mac should try it

Should I take this opportunity to switch to Neovim for once? I've attempted using vim/neovim/emacs, etc. many times but it's just so confusing to me.

Why would I go over the trouble of debugging my editor for simple stuff like having LSP completions and semantic highlighting? It's insanely difficult for me to wrap my mind around vim packages, configs, etc., when VSCode/GoLand/et al. do a pretty darn job being decent editors that you don't need to hack on and just work out of the box.

Don't get me wrong, I'm not throwing shade on vim/emacs, I'm just wondering what am I missing since everyone's been super happy and productive with vim for ages, and if I'm approaching these tools the wrong way...

Location: Spain

Remote: Yes

Willing to relocate: Maybe

Technologies:

- Good with: C, Python, Linux

- Learning: Go, C++

- Really want to get into: Rust, kernel development, systems/embedded programming

- Know a whole lot more but I want to develop a career related to the technologies mentioned

Résumé/CV: https://anpep.co/api/resume

Email: See my CV

GitHub: https://github.com/anpep

LinkedIn: https://linkedin.com/in/anpep

Junior Python developer with lots of personal experience and really broad knowledge (coding since 10, graduating in CompSci next month), wanting to develop a career in systems programming and/or embedded systems.

I'm seeking the opportunity to learn this skillset in a real-world environment and grow as an engineer. Internships welcome.