Readit News logoReadit News
jameschensmith commented on Show HN: FlashSpace – fast, open-source, macOS Spaces replacement   github.com/wojciech-kulik... · Posted by u/wojciech-kulik
wojciech-kulik · 7 months ago
1. No

2. Aerospace has significant performance issues with workspaces. The problem has persisted for over a year, and there are no plans to fix it. That's why I started building FlashSpace - to make it blazingly fast. Which limitation is especially interesting to you? FlashSpace addresses the animation lag, the number of workspaces is unlimited, and you can move apps between workspaces with hot keys.

3. FlashSpace already supports JSON config files which are stored by default in ~/.config/flashspace, so you can easily sync them.

jameschensmith · 7 months ago
Thanks for your response! Regarding question 2, I think my initial understanding of FlashSpace was that it was using the macOS spaces API, which has been known to have its limitations (as documented in the Aerospace docs I shared). Now that I've played around with FlashSpace, I believe it's not using that API. So I think I'm clear on the questions.

I really like how FlashSpace plays well with macOS native tabs. One follow-up question I had is how you manage your windows? FlashSpace not managing windows on one hand is really nice for floating windows (e.g., mpv), but in your examples you have all the windows already set up with some gaps around each. Is all that set-up done by dragging windows around with your mouse? I use an accordion layout heavily, and I don't see how I can make it work with FlashSpace.

jameschensmith commented on Show HN: FlashSpace – fast, open-source, macOS Spaces replacement   github.com/wojciech-kulik... · Posted by u/wojciech-kulik
jameschensmith · 7 months ago
This looks great! I currently use Aerospace, but your usage of macOS spaces has me curious.

1. Does FlashSpace require disabling SIP?

2. Aerospace documents the limitations of macOS spaces [1]. How does FlashSpace deal with these limitations?

3. Do you have any plans to support file-based configuration? I like syncing my dotfiles between multiple computers.

[1]: https://nikitabobko.github.io/AeroSpace/guide#emulation-of-v...

jameschensmith commented on Caddy 2.8   github.com/caddyserver/ca... · Posted by u/ingve
mholt · a year ago
Hey, good question!

Semver is great for libraries. Caddy is a project which has so many dimensions of "surface area" that it's hard to boil down the implications of changes into a single decimal-separated number. Presumably this is why a lot of larger projects use year-month versioning or just bump the major version every release. I'm actually considering doing the latter, except ... Go modules are very opinionated about major version bumps because it was designed with libraries, not commands (main funcs) in mind... and bumping the major version each release would be also be a major inconvenience to dozens of plugin authors.

Caddy has a Go API, a configuration surface (two built-in: JSON and Caddyfile); a config API; HTTP, TLS, TCP, and UDP behavior; a command-line interface; etc... the list goes on and on in ways that can break a deployment. Which of those does the one and only semver version apply to? Go has opinionated tooling around semver for the Go package stuff, so we kind of have to cater to that, but end users don't really care about that. We could split the project into multiple smaller sub-projects, each with their own versions, but then it gets confusing and tedious to build and maintain. It's also inconvenient for people to contribute to that. And we'd have to ship Caddy with several versions, one for each "surface area dimension."

We've settled on mediocrity with our current version scheming which I admit is not my favorite, but I haven't really found anything better yet. Year-month versions are nice except that it implies either a regular release cadence (which we don't have) or that a larger span between two releases is more significant than more frequent releases (maybe true, but maybe not); it doesn't really tell you anything about the build... just approximately when it was made, but not even exactly when it was made (a month is a big window!) - I guess if you do multiple releases per month you just tack another number on the end? Maybe it should just be a timestamp. Or we could invent an N-dimension decimal number or some sort of string that has to be split and parsed...

Anyway. We do try to be gentle with breaking changes. Most of these have been documented as deprecated for years as well as printing warnings in logs. But we try to minimize the number of these, for sure.

jameschensmith · a year ago
Your versioning system honestly doesn't sound that bad. If you took the major version out of the picture, you could consider the minor and patch versions to line up with the major and minor versioning scheme of Compatible Versioning (ComVer) [1]. I think if you were to explain your versioning system around ComVer, including the inconveniences which currently come from major version updates of Go modules, it would be quite clear. If Go were to improve upon the major version inconveniences down the road, you could then migrate your major / minor ComVer versions from the minor / patch SemVer versions to the major / minor SemVer versions. Great work, by the way.

[1]: https://gitlab.com/staltz/comver

jameschensmith commented on Show HN: AboutIdeasNow – search /about, /ideas, /now pages of 7k+ personal sites   aboutideasnow.com/... · Posted by u/louisbarclay
jameschensmith · 2 years ago
Awesome! I recently started an "Awesome Website Paths" [1] repository. I didn't know about /ideas, and I haven't tracked /about yet. I'll add them later tonight and point both to https://aboutideasnow.com for now. In the past I've had each endpoint mention a specific page that's dedicated to the endpoint. I can make an exception until I find one of those dedicated pages, but I'll make sure to still keep a reference to your site when I do make that change. Thanks for sharing!

[1] https://github.com/jameschensmith/awesome-website-paths

Deleted Comment

jameschensmith commented on My productivity app is a never-ending .txt file (2022)   jeffhuang.com/productivit... · Posted by u/yarapavan
jameschensmith · 2 years ago
> So my daily routine looks like

> [...]

> 5. copy the next day's calendar items to the bottom of the text file

Interesting. For a file with 51,690 lines at the time this post was created, I'm curious why the file is not ordered with the most recent day at the top of the file.

jameschensmith commented on Polymode: Multiple Major Modes and How to Use SQL and Python in One Buffer   masteringemacs.org/articl... · Posted by u/perihelions
jameschensmith · 3 years ago
My head is already coming up with use-cases, such as JS template literals (think lit [0] for HTML and CSS templates) or the recently-shared Expr [1]. This is really neat. Thanks for sharing.

[0] https://lit.dev/

[1] https://github.com/antonmedv/expr

jameschensmith commented on No Hello: A New Wave   sbmueller.github.io/nohel... · Posted by u/Exorust
jameschensmith · 3 years ago
I tend to share https://nohello.net/. It may be newer, but it's also open source, is available in multiple languages, emphasizes asynchronous communication [1][2], and uses _The Office_ as its setting which makes sharing it a bit more lighthearted.

[1]: https://en.wikipedia.org/wiki/Asynchronous_communication#Ele...

[2]: https://async.twist.com/asynchronous-communication/

jameschensmith commented on Penpot: Open-source design and prototyping platform   penpot.app/... · Posted by u/wiradikusuma
jameschensmith · 3 years ago
While I find it awesome to see Penpot getting some recognition right now, it is not at the point of being a Figma replacement just yet. But I'm very hopeful that it will eventually be. Once they get a plugin system implemented, I'll be recommending it to all my colleagues.

u/jameschensmith

KarmaCake day23September 15, 2022View Original