Hacker News new | past | comments | ask | show | jobs | submit | jakebasile's comments login

I would like a potato. Emailed you.


I have received your email and do hereby commit to sending you a potato.


I have the USPS notification service [1] where they send me an email with a scan of all my incoming mail. I look forward to seeing what this one looks like.

[1]: https://www.usps.com/manage/informed-delivery.htm


You wouldn't download a potato!


I use Atuin, but unlike the author actually find it more valuable since I use it across many machines. I have 7 different machines (of various make and OS though all *NIX) in my house right now that I regularly SSH in to or use directly, and Atuin's sync keeps my history on all of them. If I want to narrow down by host I can still do that. I also keep similar directory structures so I can narrow down by directory even if I performed a command on a different machine most of the time.

That said, some form of advanced history search is a game changer, no matter how you get it. It's one of those "can't understand how I lived without it" things once you get it going.


I’ve started using Atuin based on a recommendation from here a few weeks ago. I generally like it, but feel like the fuzzy matching is bad - maybe I either misconfigured something or nobody else cares about it?

If the command I want to match against is within the last few days or so, the fuzzy match performs ok, but anything from months ago which I know for a fact is in the history, it just doesn’t match it and instead shows irrelevant items (which technically I’m sure according to some algorithm are correct). Another one is I often have to put a ^ to ensure the ‘curl’ I’m searching for starts looking for matches at beginning of line.

Often times I still fall back to using fzf on ~/.zsh_history which seems to get what I want. There is this thread which is same issues I’m seeing, and I did try smart_sort=True but it’s still not great.

https://forum.atuin.sh/t/understanding-atuin-history-search/...


Try to add ' in front of words to find exact matches if the fuzzy search isn't providing the results you're looking for.


If using Nix, you can get Atuin working basically for free by just enabling it in the config. I love it. Does everything I'd every hoped for with history search.


I don't really like nix (yeah I tried it for a couple of months), but I'd like to point out that atuin is exceptionally easy to set up even without using nix as well in case someone gets an idea that it is difficult.


I'm also in this boat. I have atuin as part of my zsh config that is distributed to all new machines, whether they run NixOS or some other operating system with Nix on them (e.g. MacOS). After switching to NixOS I found an interest in maintaining a custom setup again, since it wouldn't fall apart every time I moved machine.

  { pkgs, ... }:
  {

    users.defaultUserShell = pkgs.zsh;

    environment.systemPackages = with pkgs; [
      atuin  # ^R
      eza    # ls
      git
      zsh
    ];

    programs.direnv.enable = true;
    programs.nix-direnv.enable = true;

    programs.zsh = {
      enable = true;
      enableCompletion = true;
      enableBashCompletion = true;
      enableGlobalCompInit = true;

      # https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md
      syntaxHighlighting.enable = true;
      syntaxHighlighting.highlighters = [ "main" "brackets" ];

      # See `man zshoptions` for more details.
      setOptions = [
        # Remove duplicates continuously from command history (preserve newest entry).
        "HIST_IGNORE_DUPS"

        # Instantly share command history between all active shells.
        "SHARE_HISTORY" # Alternative to: "APPEND_HISTORY", "INC_APPEND_HISTORY",

        # Disable ^S and ^Z for less accidental freezing.
        "FLOW_CONTROL"

        # Save timestamp and duration of each command in command history.
        "EXTENDED_HISTORY"
      ];

      shellAliases = {
        # Navigation
        rm = "rm -iv";
        ls = "eza -lg";
        tree = "eza -lgT";

        # git aliases
        # ...
      };

      promptInit = ''
        autoload -U promptinit
        promptinit
        prompt off

        # Simple:
        # PS1='[%n@%m:%~] %(!.#.$) '

        # Colorful:
        # PS1='[%F{green}%n@%m%f:%F{blue}%~%f] %(!.#.$) '

        # Colorful with git branch:
        function git_branch_name() {
          branch=$(git symbolic-ref HEAD --short 2>/dev/null)
          if [ ! -z "$branch" ]; then
            echo -n " [%F{red}$branch%f]"
          fi
        }

        # Omit username, print hostname + '$' with red when root, otherwise green:
        prompt='[%(!.%F{red}.%F{green})%m%f:%F{blue}%~%f]$(git_branch_name) %(!.%F{red}#%f.$) '

        # See: https://zsh.sourceforge.io/Doc/Release/Options.html#Prompting
        setopt prompt_cr
        setopt prompt_sp
        setopt prompt_subst

        export PROMPT_EOL_MARK=""
      '';

  interactiveShellInit = ''
        # Prevent user-level "config missing" message.
        touch $HOME/.zshrc

        # MacOS
        bindkey '^[[7~' beginning-of-line
        bindkey '^[[8~' end-of-line

        # Linux
        bindkey '^[[1;3D' beginning-of-line  # alt+left
        bindkey '^[[1;3C' end-of-line        # alt+right
        bindkey '^[[1;5D' backward-word      # ctrl+left
        bindkey '^[[1;5C' forward-word       # ctrl+right

        # Both
        bindkey '^R' history-incremental-search-backward
        bindkey '^U' kill-whole-line
        bindkey '^Y' yank

        # My SSH endpoints don't recognize modern terminals

        export TERM=xterm-256color

        # ^R only
        eval "$(atuin init zsh --disable-up-arrow)"
      '';
    };
  }


Or if using home manager:

        programs.atuin = {
          enable = true;
          enableZshIntegration = true;
        };


Did you really need to share 108 lines of code, inline, rather than a link to gist/similar?

The chances of people reading this discussion running NixOS are small, and of those I'm sure the ones who were interested could search the internet for examples.


NixOS and Kagi user here. Hacker News often is the most reliable search result there is. Gists aren’t (they become easily deleted, unlike HN comments).


Sure, and I accept that happily enough for "small" snippets. But I had to page down multiple times and it really felt like too much content.


I could have cut down the sample a lot, I apologize.


Curious on this: "Atuin's sync keeps my history on all of them"

I just checked on their GitHub and it says "Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server."

So you trust all of your shell commands to be stored on a server that you don't control?

Maybe I'm missing something here.


Sync is optional*, end to end encrypted, and you can self host the server so you don't really need to trust anything if you don't want to

*: nothing syncs if you don't register, and you can even compile a version with the sync code flagged out if you REALLY don't want to trust anything


Got it, thx!


I appreciate that the journey might be the destination here, but you really don't need to do this anymore if the goal is to play games on Linux. Valve et al. have done so much Proton work that nearly every game I try just works.

Aside from the experience, this could be useful if you want to play games that have kernel level rootkits.


QubesOS is very much not "Linux on the hardware." It is silos of isolation, interacting freely at the window level.

I wrote on it some while back: https://www.sevarg.net/2023/07/29/qubes-os-silos-of-isolatio...

The concept is that you have a lot of isolated "AppVMs" running applications, in silos that cannot talk to each other. So, right now, I'm logged into HN with my "random-web" VM - that has nothing of interest in it beyond some PDFs I've downloaded. This, for instance, has zero access (except by exploiting and passing through Xen) my "sysadmin" VM, which contains my SSH keys for various things, and which I use for sysadmin type tasks. I've got other silos as well. All the windows from all these VMs interact like normal on my desktop - I'm not dealing with "Okay, this VM is for this, that VM is for that." Things just work smoothly and as expected.

A side effect of this, though, is that the AppVMs have no hardware acceleration of anything graphical. It's all software rendering in them. So gaming is normally right out - except, this talks about how to pass another GPU through to do this sort of thing, if you want.


> Things just work smoothly and as expected.

Do you have the ability to pass files between or drag and drop files between isolated levels? Can I mount a shared folder into multiple isolated apps so they all have access? I like QubeOS in theory but I’m hesitant to try it due to (perhaps misplaced) UX concerns.


You have the ability to push files from one AppVM to another - they appear in ~/QubesIncoming/[source-vm-name]/ and you can do what you want with them from there. I do this regularly and it works perfectly fine. It's not drag-and-drop, there be demons. It's either a command line utility or a context menu in the file explorer.

There's no concept of a local shared folder you can mount in multiple AppVMs, though as networking exists, you could easily do so, if you wanted - share a folder in StorageVM and mount it in others. Though doing so would defeat a lot of the point of isolation, if VM1 can corrupt a file that will then attack VM2 when read. You'd want to really think hard about your threat models and what you would and wouldn't want, with such a setup.

My advice? Dual boot. Yes, at some level, dual booting raises the risk of QubesOS compromise from the other booted OS, because it could pop /boot, and such. But in practical terms, you're no worse off doing that, than you are with another OS running full time - and as a lot of the threats are things like "ad-delivered malware" or "random PDF to your inbox being malicious," you gain quite a bit even if you still dual boot into something else on occasion. My daily driver X250 has a straight Ubuntu install on a separate SSD that I use on occasion, in theory. Mostly, it exists to run a VM to talk to a car, except I've not had to do that in a long while. Oh, and movie playback on long flights. Power efficiency for video playback on Qubes is "not good." Except I don't do those anymore either. So, every few months, I boot into the Ubuntu install and update it.

Caution: QubesOS, to the right sort of person, may as well be a virus. It took less than a year to go from "Play OS on a random laptop I was in the process of selling" to "Primary daily driver OS on several machines." And then I realized I didn't actually use the desktops anymore.


If you _really_ want to break isolation between untrusted VMs, they should be stateless so that malware cannot persist after VM reboot.

"Converting untrusted PDFs into trusted ones: The Qubes Way (2013)", https://news.ycombinator.com/item?id=42401904.



These rootkits hate VMs, and will almost always refuse to run inside one. In some cases, attempting this might get you banned.



You still need GPU passthrough if you want to use ant actual GPU instead of llvmpipe or whatever else renderer. Mind you, QubeOS is virtualization OS, Linux on QubesOS does not have access to GPU by default


This is exactly the architecture of Xbox. Every game is a VM


> In the past year, we’ve also observed significant advances in terms of approaches to application development, an area that we at JetBrains are also heavily investing in. Just recently, we announced a new coding agent named Junie.

That agent must not be very helpful if it causes even the company creating it to be able to support less products.


Google Fiber was announced for Austin in 2013, and 12 years later it's still not available at my Austin address. I have used AT&T Fiber for as many years and it works great (currently at 2G symmetrical for $105/m).


Same. My neighbors have it and apparently I am never getting it.


The article is claiming that clocks that only show time truncated to a minute are off by an average of 30 seconds, which just isn't true in practice. When I say or hear 11:30, I assume it can be within 11:30:00 and 11:30:59. Humans rarely need accuracy to the second beyond this, so clocks intended to be used by humans truncate to the minute without causing problems. To say they are "late" is a real leap.

I mean, you can reduce this to absurdity too. A clock truncating to seconds is off by an average of 500 milliseconds! The problem is no one cares in day to day usage which is what human readable clocks are made for.


> When I say or hear 11:30, I assume it can be within 11:30:00 and 11:30:59.

And if you cared about seconds-precision, you would assume 11:30:30, and thus your error would average the same 15s.

The difference is that when you observe a minute change, you know that's exactly at zero seconds (instead of 30 — or 31 if you apply the same rounding rule to seconds).

It is fair to ask a question if rounding would be more useful (nope), but the entire article is incoherent and speaks mostly of the author's confusion.


I've only accidentally (via a GeForce Now trial before I gave Steam Remote Play another try) played a video game on a Windows computer in the past two years.

The only games that routinely cause problems are those with ridiculous kernel-level anticheat, and I am not interested in those games.


What did you name the dog? This never happened to me, but if it did I couldn't resist giving it a Christmas themed name.


Polar Bear! He was a Bichon Poodle mix and his tail hadn’t grown in yet so he looked exactly like one of the little polar bears from the Coca Cola commercials


Merry Christmas!

I had rented Final Fantasy 7 from Blockbuster so many times that my brother decided to get it for me for Christmas. Even though I never really snooped for presents he decided to mess with my head and wrapped it in two large bath towels and put it in an even larger box. This giant package below the tree for me, and it sounded like cloth - I figured it must've been a jacket or something until I opened it.

Another time I was looking for something (not presents) in my parent's room, and happened to find a very poorly hidden Playstation 2 from my father. The waiting until Christmas part was fitting punishment for accidental snooping.

Some of the finest memories are just a jumble of similar situations though. Christmas Eve was the night my entire local family would gather at my maternal grandmother's house, and we'd all have a big meal and sit around chatting afterwards.

Then there's that one Christmas Eve when I asked my now-wife to marry me. I knew she'd say yes but there's always that little bit of fear about it. I wanted to ask when everyone I loved would be around.

Time sure flies. Both my father and my maternal grandmother have passed since the last time we all celebrated Christmas together.


The accidental gift finding is so funny. My dad got me a bike for Christmas one year. Of course it's really hard to hide a bicycle, and he put it alongside the side of our house in a part of the yard nobody ever went in. For whatever reason, I happened to be playing in that part of the yard and found it. I asked him why there was a bike stored out in our yard because I was not a very clever kid. In hindsight it's very funny to imagine his perspective on it.


I ended up telling him later in life and he just started laughing. He had no idea I'd found it!


Spending Christmas Eve with family is the best. Really cherish those moments. The pace of everyday life is so fast, it's easy to forget what's really important.

Merry Christmas.


Truer words were never spoken!

I see my family too rarely because of the everyday hustle. I love the holidays for the slow pace, the long lunches and dinners. Talking about nothing and everything.


Yes, they're the feeling of Christmas I remember most fondly.


2001 was definitely the FF7 year. Played all 3 discs during the winter break.


> Some of the finest memories are just a jumble of similar situations though.

This is how I feel about Xmas, thanks for putting it in words.


Surely the elites that control this fancy new technology will share the benefits with all of us _this_ time!


No it'll be like when tech took over 97% of agricultural work with 97% of us starving while all the money went to the farm elites.


How did that go for the farm workers?


I guess they did other stuff instead.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: