remember
youtube-cue
remember | youtube-cue | |
---|---|---|
6 | 3 | |
107 | 14 | |
- | - | |
8.8 | 6.4 | |
26 days ago | 5 months ago | |
Swift | JavaScript | |
- | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
remember
-
Racket Language
Racket is my favorite language. It's fast, practical, has solid foundations and an extremely nice concurrency story (based on concepts borrowed and extended from Concurrent ML). It has an excellent documentation system, with an integrated package ecosystem, which means that most packages have high quality documentation with cross-references. It has a great backwards-compatibility story -- a lot better than Python's, for example, which I use in my current dayjob. So, my impression of the commenters saying it's too academic or not practical is that they probably never dove deeply enough, or they are students who were only exposed to the teaching languages in the past. It's definitely not perfect: the community is small, the runtime has a high memory baseline, parallelism requires spinning up a Racket VM per system thread, among others, but these are things that will improve over time.
In the past several years, I've:
* built & run an e-commerce site written in Racket[1]
* built a native macOS and iOS reminders app, available on the App Store [2, 3, 4]
* built a cross-platform desktop client for Apache Kafka [5, 6, 7]
* built a `#lang` for Lua [8]
Among[9] other[10] things[11]. I think that's all pretty practical stuff!
[1]: https://defn.io/2019/08/20/racket-ecommerce/
[2]: https://defn.io/2020/01/02/ann-remember/
[3]: https://defn.io/2024/04/09/ann-remember-for-ios/
[4]: https://github.com/bogdanp/remember
[5]: https://defn.io/2022/11/20/ann-franz/
[6]: https://defn.io/2023/10/15/ann-franz-for-windows/
[7]: https://defn.io/2023/08/10/ann-franz-source-available/
[8]: https://defn.io/2022/11/12/ann-racket-lua/
[9]: https://docs.racket-lang.org/http-easy/index.html
[10]: https://docs.racket-lang.org/deta/index.html
[11]: https://docs.racket-lang.org/gui-easy/index.html
- Calling Haskell from Swift
-
Ask HN: What apps have you created for your own use?
A really simple keyboard driven reminder tool for macOS:
https://github.com/Bogdanp/remember
- Racket branch of Chez Scheme merging with mainline Chez Scheme
-
Ask HN: What Are You Working on This Year?
My goal for this year is to continue building (mainly Mac and iOS) apps (like Remember[1] and Franz[2]) using Racket and to help improve the language and ecosystem in any way I can.
[1]: https://remember.defn.io
-
What programming language is good to make GUI's
PS this is a macOS app with the GUI made with swift https://github.com/Bogdanp/remember/tree/master/cocoa/remember/remember but the backend is Racket.
youtube-cue
-
Ask HN: What apps have you created for your own use?
> CLI: I wanted to download songs from youtube, but they were often stitched as complete albums - so I wrote a youtube-cue generator that generates cuesheets that can then be used to split and tag the yt-dlp downloaded audio file. (https://github.com/captn3m0/youtube-cue)
Thanks for this! I need to do some testing, this might automate the last manual step of my own script for converting YT mixes into distinct tracks. The problem I faced is that often the timestamps are not in the description, but instead in a comment, sometimes not even the pinned/top voted comment. That is why I paste it in via stdin for now.
As this fits the thread topic, a short description of this script. I enjoy YT mixes and wanted to listen to them in my car. I can use an USB stick with media files and playlists which are displayed decently by the infotainment system. I wrote a script that takes in a YT URL (or anything supported by yt-dlp), downloads & converts it to mp3, splits the mp3 file based on a list of timestamps, recognizes (tries to anyway) the songs via SongRec [0], tags & names the files correctly and finally generates an M3U playlist in the format recognized by my car. I use song recognition instead of parsing out the names from the timestamped list as the format of Artist - Title is nearly always slightly different. It was easier to use SongRec instead and get everything I need for tagging with >90% hit rate.
The heavy lifting is done by calling out to yt-dlp, ffmpeg and SongRec. I just glued them together with Python. I like your approach of a do one thing well and might add youtube-cue to the toolset.
[0] https://github.com/marin-m/SongRec
-
Beets is the media library management system for obsessive music geeks
Beets is amazing and comes with great defaults. I wrote code recently to generate CUE sheets from YouTube mixes[0] and beet imports it nicely and easily.
[0]: https://github.com/captn3m0/youtube-cue There is a bash snippet in readme to show the Beets integration.
What are some alternatives?
7GUI - the 7 gui project
picard - A cross-platform music tagger powered by the MusicBrainz database. Picard organizes your music collection by updating your tags, renaming your files, and sorting them into a folder structure, exactly the way you want it.
racket - The Racket repository
stag - public domain utf8 curses based audio file tagger
racket-gui-easy - Declarative GUIs in Racket.
full-text-tabs-forever - Full text search all your browsing history
linux-surface - Linux Kernel for Surface Devices
BeetsPluginStructuredCommen
Camlistore - Perkeep (née Camlistore) is your personal storage system for life: a way of storing, syncing, sharing, modelling and backing up content.
stag - STag: A Stable Fiducial Marker System
roqr - QR codes that will rock your world
BeetsPluginStructuredComments