Hacker Newsnew | past | comments | ask | show | jobs | submit | more tipsytoad's commentslogin

Switched to Firefox a month or two ago, mostly for ublock origin on android, and unlimited history (seriously, why is this not the standard?)

I've tried to like it but honestly it's been painful. MacOS Sonoma seems to have a hover bug, which has been unresolved through the last 3 bug fix updates. Performance is "fine" but seems to lag with many tabs open which was never an issue in chrome (this is on an M2 pro!) PDF reader also seems significantly slower as well. At this point I'm considering going back to chrome.


Unlimited history is nice but I hate how history works out of the box. I might be doing something wrong but ctrl+h pops up a sidebar which shows every single website visited today in no discernible order. I've learned about ctrl+shift+h which is better but even there, the UI is a bit lacking compared to what Chrome has out of the box. Is there anything I can do to improve this?


There's a filter at the top right if I remember right, change it to Last visited


Have you tried Brave?


Moved to vscode with the neovim extension (vim mode was slow for me over large files). vsc is super customisable, and you can remove all the tab bars, side panels and anything else you don't use fairly easily. It's also far more stable than the neovim ecosystem, i don't have time to mess with neovim plugins breaking bi-weekly anymore


Using fzf through bash history and using # comments as tags on common commands seems to work just as well for me. Not sure what else this adds


I created it for convenience. Can edit, delete, backup easier. I'm not sure that #comment can do that or not


Eh, you can probably get very similar to fish with zsh + loads of plugins, but fish has lots of niceties out of the box (syntax highlighting, autosuggestion based on your directory). I've been using fish + starship with just a fzf plugin and it's got everything I need.

Check it out, it's effective with very little config


Speaking of starship, today I realized that I don't really need any of its features, I just like the way it looks. So I replicated it with pure fish by creating a simple function:

  function fish_prompt
      # Fedora Silverblue workaround
      set -l pwd (string replace /var/home /home $PWD)
  
      echo
      echo -s (set_color -o cyan)(prompt_pwd -D 3 $pwd) (set_color magenta)(fish_vcs_prompt)
      echo -ns (set_color green) "" (set_color normal) " "
  end


Priding ;)


So like an autoencoder for text?


Roughly. It's about learning a decoder for a blackbox decoder. It's much harder in an environment that is not end-to-end trainable.


I emphasize with the student here, but passing it through an ai detector yourself before submitting and keeping a version history seems like an easy way to combat any false claims.


I disagree that it is reasonable to expect students to follow your suggested process. The instructor is being ridiculous here.

For one thing, one AI “detector” will not necessarily return the same result as another.


It's a repository viewer last time I checked, it doesn't have as many features as lazygit (rebase, merge conflict). I prefer lazygit personally


Tangentially related, but if you don't have access to c++23 or you don't like monadic properties, passing by reference and returning bool success can emulate or_else, transform, and_then with || &&

  bool fetchFromCache(int userId, UserProfile& profile);
  bool fetchFromServer(int userId, UserProfile& profile);

  UserProfile profile;
  if (!fetchFromCache(userId, profile) && !fetchFromServer(userId, profile)) {
    std::cout << "Failed to fetch user profile.\n";
    return;
  }
or just to prove a point, although even more unreadable than the monads:

  bool extractAge(const UserProfile& profile, int& age);

  UserProfile profile;
  int age;
  if (
    (!fetchFromCache(userId, profile) && !fetchFromServer(userId, profile))
    || !extractAge(profile, age)
  ) {
    std::cout << "Failed to determine user's age.\n";
    return;
  }
  
  int ageNext = age + 1;
This probably isn't a great example usecase for this, but its helpful when creating composable transform pipelines


In Python, it would be:

    user_id = 12345
    user = fetch_from_cache(user_id) or fetch_from_server(user_id)
    age_next = user and (user.age + 1)
    if age_next:
        print(f"Next year, {age_next} years old")
    else
        exit("Failed to determine next age")


Karabiner and applescripts can get you pretty far


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

Search: