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?
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
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:
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.
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
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")
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.