GNOME 3 lost its appeal as a lightweight desktop long ago. But what’s its purpose now? Where does it actually excel?
Less familiar workflow, weaker default apps, questionable design choices (desktop icons, menus, etc.), and very limited out of the box customization. Who is it actually for?
Posts by undefined
All in all, not only is it fast, but it also simplifies my development workflow by reducing moving parts. That, in my opinion is the main advantage of using Bun.
When making packages, I use Bun for development and publish a Node-compatible package for consumers. In other words, I use Bun as the package manager, test runner, and bundler for producing esm and cjs files targeting Node. I still have to use tsc for generating type definitions but that's okay 5/n
For some of my projects, I have replaced Vite with Bun. Bun has a dev server and a built-in CSS bunder. That reduces my devDependencies to only a few. Typescript, Biome (for linting and formatting), and a DOM testing library! 4/n
I use Bun to publish dual modules easily. Previously I used tsup to do that but now I use Bun to bundle the project into a single cjs or mjs file. This makes distribution of the packages easier too! 3/n
Bun shell replaces bash especially when I need to support Windows as a development environment. In polyglot repos, I often use Bun shell with just (just.systems/man/en/). It's also possible to inline Bun shell scripts in just recipes 2/n
I'm starting to like Bun a lot lately. It solves the problem of scattered tooling for Typescript/Javascript eco-system and cross-platform scripting. Here are some of the noteworthy things Bun replaces for me 1/n
Therefore, I prefer deterministic code/tools for verification over markdown instructions that are non-deterministic, hard(er) to maintain, can be ignored by the agent, and eventually pollute the context
Coding AI agents can tirelessly try a bunch of things until they achieve the desired outcome. That is very powerful but they can only do a good job if you define a robust and deterministic way of verifying it. 1/n
A package installer script should always give the option to not update shell configs to the user, preferably via an environment variable!
I manage my own dotfiles and I don't want random things to be added to my .zshrc
The worst part is that we get a ton of value out of switching to devcontainers but there are people who are not willing to try Rider.
Development Containers have come a long way. I made an image at work with all the dependencies to do frontend and backend development. VS Code has the best support, the support in IntelliJ products is decent, but Visual Studio does not support them at all 🤦♂️
Upgraded my OS to Tahoe. Apple is doing what Microsoft did to Windows one release at at time. Work is not okay with Linux because they can't install the crappy endpoint security software on Linux machines 😭
Just getting started with incremental generators in C#. My first impression is that they are very powerful and surprisingly easy to implement. C# partial classes open up a lot of extension possibilities too. I like it better than Kotlin’s KSP
So what's a "monad" in programming terms?
A monad wraps data, adds context & allows for chaining through immutable operations.
JS: Promise wraps data & adds "time" as context
Rust: Option wraps data & adds "existence" context
Monads have three laws: Associative, left identity, and right identity
Apple's new Liquid Glass design language gives me a lot of Windows Vista vibes
Yes, issues like that will eventually be addressed, but the real problem is how some people sell these tools and how those who are blown away by their presentations end up with unrealistic expectations.
2/2
X: I did something with "AI" in 5 minutes. I'm now confident it will change how we build and design software in the future.
"AI" at some point in the future: [generates 6000 lines of code for every prompt and fails to follow instructions]
1/2
Leadership without authority or assuming a role without a title is only possible in relatively safe environments.
Doing so at the wrong time and place can get you in trouble.
IMO, forced adoption is the most dangerous characteristic of an internal platform.
Not only does it increase friction within the organization, but it also kills the motivation to improve the platform (build something everybody wants to use vs. force everybody to use what you build)
I tried forward engineering with Hibernate and SQLite and realized it's probably not a good idea.
add/drop foreign key syntax is not supported by SQLite and for some reason, the Hibernate auto schema generator cannot generate the syntax (create/alter table) that is supported by SQLite.
Hello, world!