Thanks for sharing! I will have to try this out on a project. Matches many of my own workflow habits, and more importantly, how I train devs on my team. Commit often, don't care if its broken, the pipeline will fix the history. They can truly stump me with how they get into the train wrecks they find themselves in. Committing conflicts sounds like a super power to help them out.
- Posts
- 0
- Comments
- 412
- Joined
- 3 yr. ago
- Posts
- 0
- Comments
- 412
- Joined
- 3 yr. ago
@RareBird15 @programming @linux @selfhosted
Ones I haven't seen mentioned (unless it came in while I was typing this).
https://github.com/kainctl/isd - Interactive systemd.
https://github.com/zellij-org/zellij - tmux alternative. Built in which-key functionality. I initially switched to it because I like large scrollback buffers and tmux was super slow at resizing window panes. Can open buffers in nvim for better search. Nicer TUI if you don't mind a little bloat / bling.
https://github.com/arxanas/git-branchless - Work on stacked commits. Instead of opening PRs linerally you work on several commits at once with the expectation each commit will be a PR. Promotes smaller PRs that are easier to review to complete a feature. Often when doing that linerally you may discover a bad choice made earlier and have to reverse course and refactor. With a branchless workflow you go back and forth on commits so the final stack of PRs doesn't include those reverse course refactors.
git slhas some nice TUI graphs of your stack.https://github.com/mystor/git-revise - Split, rearrange commits. Works nicely with git-branchless.
https://github.com/tummychow/git-absorb - Reflect changes from a commit backwards. Also works well with a branchless workflow.
If I'm honest I just develop linerally and use an AI agent/skill to restack using the 3 programs above to erase pivot / refactor points and to group logical blocks into an easy to review PR.
https://github.com/ymtdzzz/otel-tui - Open Telemetry viewer.
https://github.com/brocode/fblog - JSON Lines viewer.
https://github.com/aristocratos/btop - Better top.
https://github.com/jandedobbeleer/oh-my-posh - Terminal prompt. My daily driver.
https://starship.rs/ - Another terminal prompt. Played with a little but never got around to giving it my full attention to match my oh-my-posh setup.
https://rclone.org/ - Remote backups using my own encryption key. Supports many cloud providers.
https://github.com/Mic92/nix-fast-build - Not sure its really faster but has a nicer TUI.
https://dircolors.com/ - Directory listing colors in terminal output to better distinguish file types. At a glance I can distinguish read-only, executables, symlinks, directories, etc.
https://github.com/jesseduffield/lazygit - Git TUI. I only use in neovim though, don't think I've ever run it directly.
https://github.com/sindrets/diffview.nvim - Better merge conflict handling in neovim.
https://www.lazyvim.org/ - Base neovim config with lots of TUI sugar.
https://github.com/stevearc/oil.nvim - File tree explorer in neovim with editing capabilities. Hands down the most efficient way I've found to normallize torrent file names. Fixing 5+ seasons of a show takes a few minutes if you know the right vim keybinds.
https://github.com/getsops/sops / https://github.com/mic92/sops-nix - Encrypt secrets in git repos.
https://github.com/zdharma-continuum/fast-syntax-highlighting - Syntax highlighting as you type shell commands.
https://github.com/luccahuguet/yazelix - Opinionated Yazi, Helix, Zellij setup with custom patches to integrate. Looks interesting but could never get to work with nix as it keeps trying to write to store paths. They even have a flake.nix in the repo...
less - Less shitty more (terminal pager) with the options below.
export LESS="-aRix2 --use-color --mouse --wheel-lines=3" export SYSTEMD_LESS="$LESS" # a = search from current position # i = case insensitive # x2 = tabstop # R = color control chars show colorhttps://pnpm.io/ - Better monorepo support than npm. Faster too. Easy to patch dependencies.
https://bun.sh/ / https://deno.com/ - Alternate node runtimes. Only have used bun, but its a faster cold start and uses less memory.
https://oxc.rs/docs/guide/usage/linter.html - eslint clone in rust. Seconds versus minutes. Uses the golang TypeScript 7 preview version of typescript-eslint for type checking.
https://rolldown.rs/ - Rust clone of the rollup JS/TS bundler.
https://ast-grep.github.io/ - Grep AST patterns. Written in rust.
https://dprint.dev/ - Formatter that unifies other formatters. Lots of fast rust plugins.
https://biomejs.dev/ - Rust based node formatter. dprint support.
https://github.com/astral-sh/ruff - Rust based python linter and formatter. dprint support.
https://github.com/numtide/treefmt - Like dprint, forwards to other formatters, but intended for nix declarative setups (for use with devshell or devenv).
https://direnv.net/ / https://github.com/nix-community/nix-direnv - Activate a virtual environment when you enter a directory. Common with nix devshell/devenv but can run any command. Auto reload based on certain files via watch patterns.
https://github.com/mikesart/inotify-info - Debug why you've maxed out file watchers.
https://github.com/lyonel/lshw / https://github.com/pciutils/pciutils - Detailed hardware info.
https://github.com/wagoodman/dive - TUI to explore docker layers.
https://github.com/containers/skopeo - Bunch of utilities for working with docker images and registries.
cash cant be traced
I think this is a feature, not a bug. You assume the risk in exchange for some privacy assuming you don't deanonymize yourself on the return address.
You could print a random letter or graphic(s), preferably on heavier paper
I was expecting this at the first half of the sentence: https://27bslash6.com/overdue.html
Not that I love supporting Amazon, but onlymakerheels go up to size 15 in women's (13.5ish men's) in most styles. Their off shoot brand Vecipatcare seem to be in men's sizes going up to size 15 also.
Sexytag goes up to 15, but haven't been super impressed with their designs.
Wetkiss heeled combat boots go up to 13 in women's (size 11.5ish in men's).
The Hive LG🐝TQ edition.
I've been using etesync for contacts to fill the void when I first discovered it wasn't supported. I don't really use any of the other features outside of a e2ee cloud sync of contacts.
Don't know if they can. If I'm recalling correctly he holds enough Class B shares to retain supermajority voting power.
[I]f you throw a frog in a pot of boiling water, he'll jump right out. But if you stick that same frog in the water when it's at room temperature, he'll just sit there. He won't move because everything's fine. Then he put the pot on the heat. The temperature goes up, and still the frog doesn't jump because it's only a degree hotter than before. Eventually, the frog dies, boiled alive. When the frog was thrown in the boiling water, he immediately knew he was in danger. But because of the incrementalism of the heat from room temperature, he didn't realize he was in danger until it was too late.
...
If it used to be okay, but it's not okay anymore, then maybe you should do something about it. Don't compare your circumstances with how they were yesterday. Look at how they were years ago. We're supposed to be making the world... The universe... A better place for our children. If it's not better, if you're dealing with cruelty, with neglect, then you should do something about it. So, yeah. Fuck 'em. Fuck [dictator's name] and his asshole children. If you're unhappy with your government, then kick them out and set up your own, one that represents the people's best interests. You shouldn't have to put up with some loser who's going to take the people's money and waste it on games, especially when those games entail killing people weaker than him with little or no real danger to himself. What a pussy. That's my opinion.
- Dungeon Crawler Carl
Anyone else using the same concept would have to write an increasingly convoluted while loop with extra steps.
Sounds like an origin story for recursion.
- JumpDeleted
Permanently Deleted
NixOS. Started with Yellow Dog Linux in 1998.
I don't do everything through nix's derivation system.
Many of my configs are just an outOfStoreSymlink to my configs in the same dotfiles repos. I don't need every change wrapped in a derivation. Neovim is probably the largest. A few node projects for automations I'm fine using pnpm to manage. Nix still places everything but I can tweek those configs and commit in the same repo without a full blown activation.
Items are in a hash table using color/material type/shape as the hashing method optimized for human pattern recognition providing O(1) access. The table is smaller than the number of items causing some collisions. Those items are in a randomly sorted vector. Average case is still around O(1) with an O(n) worst case.
Olauncher (free version) and Pro Launcher (paid version).
Used the free version for years and decided to shell out for the paid version about a year ago.
Primary access to apps is via the search outside of the limited slots for shortcuts (text). Paid version adds some additional slots (icons). Simple and reminds me of a terminal.
Something like https://graphite.com/ to create stacked PRs that are reviewable probably would have helped. Can be replicated with local LLMs or remote AI providers with locally configured agentic workflows. Never used graphite personally, but I've seen some open source maintainers use it to split up large PRs.
With these sorts of tasks models really seem to suffer from not knowing what packages or conventions have been deprecated. This is really obvious with an immature ecosystem like nix.
This is where custom setups will start to shine.
https://github.com/upstash/context7 - Pull version specific package documentation.
https://github.com/utensils/mcp-nixos - Similar to above but for nix (including version specific queries) with more sources.
https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking - Break down problems into multiple steps instead of trying to solve it all at once. Helps isolate important information per step so "the bigger picture" of the entire prompt doesn't pollute the results. Sort of simulates reasoning. Instead of finding the best match for all keywords, it breaks the queries down to find the best matches per step and then assembles the final response.
https://github.com/CaviraOSS/OpenMemory - Long conversations tend to suffer as the working memory (context) fills up so it compresses and details are lost. With this (and many other similar tools) you can have it remember and recall things with or without a human in the loop to validate what's stored. Great for complex planning or recalling of details. I essentially have a loop setup with global instructions to periodically emit reinforced codified instructions to a file (e.g., AGENTS.md) with human review. Combined with sequential thinking it will identify contradictions and prompt me to resolve any ambiguity.
The quality of the output is like going from 80% to damn near 100% as your knowledge base grows from external memory and codified instructions in files. I'm still lazy sometimes and will use something like Kagi assistant for a quick question or web search, but they have a pretty good baseline setup with sequential thinking in their online tooling.
Like, from Yellow Dog Linux? Was my first Linux distro as a kid (grew up with an Apple computer). Red Hat based so checks out. TIL.
It's really not that different from a traditional web search under the hood. It's basically a giant index and my input navigates the results based on probability of relevance. It's not "thinking" about me or deciding what I should see. When I say a good assistant setup, I mean I don't use Gemini or ChatGPT or any of the prepackaged stuff that tries to build a profile on you. I run my own setup, pick my own models, and control what context they get. If you check my post history I'm heavily privacy conscious, I'm not handing that over to Google or OpenAI.
The summary helps me evaluate if my input was good and the results are actually relevant to what I'm after without wading through 20 minutes of SEO garbage to get there. For me it's like getting the quality results you used to get before search got enshitified. It actually surfaces stuff that doesn't even show up on the front page of a traditional search anymore.
I'm in software development and land on both sides of this argument.
Having to review or maintain AI slop is infuriating.
That said, it has replaced traditional web searching for me. A good assistant setup can run multiple web searches for me, distill the useful info cutting through the blog spam and ads, run follow up searches for additional info if needed, and summarize the results in seconds with references if I want to validate its output.
There was a post a couple days ago about it solving a hard math problem with guidance from a mathematician. Sparked a discussion about AI being a powerful tool in the right hands.
neovim user (inside zellij) and same. More of a full blown IDE than an editor.
Also for the keybind memory impaired like myself:
https://pip.pypa.io/en/latest/reference/requirements-file-format/
Looking at the format it supports bare, pinned, or version ranges.
I imagine ranges are preferred for libraries as you'd hit version conflicts if the same dependency showed up twice with different pinned versions in the dependency tree.
https://pip.pypa.io/en/stable/topics/dependency-resolution/#backtracking
The post suggests that during backtracking the maximum version considered for any dependency must be a certain age to reduce the attack surface of malicious releases assuming the vulnerability will be caught within the desired window.