I've used 3+ code editors on MacOS and prefer sublime text over VScode, coteditor, xcode.
I've used Chrome, Firefox and Safari all within the past year, and I prefer Chrome and Safari.
I've used 3+ voice transcription apps, the ones I prefer are 'just press record' and Otter.ai, I can't remember the names of the others I used - but I downloaded a bunch of Whisper based ones and non-whisper based ones on the iOS app store.
I've used 3+ messaging apps, I like iMessage and Telegram, I prefer those over Signal and WhatsApp.
I've used 3+ interfaces for GPT, and I prefer the OpenAI playground over ChatGPT, chatbot-ui, typingmind, openplayground, Poe, and a few others I can't remember.
I think it's important to note that for me these are all preferences. I'm not saying one of these tools are objectively better. I am saying that for me they are better, and I prefer them.
What are areas of products, tools, developer tools, APIs, anything, where you've personally used 3+ tools, and what did you prefer, and what did you not prefer, if you can still remember?
OLAP databases/query engines. Redshift, Athena/Presto, Snowflake, BigQuery, ClickHouse. It's complicated, actually. I guess my strong opinion is that Snowflake is massively overrated and it will perform worse and cost you more than you expect.
DAG frameworks. make, Luigi, Drake, Airflow, DBT, Prefect, NextFlow, others I'm forgetting. Airflow is hot garbage. It's frankly an indictment of Data Engineering as a specialty that we've formed a consensus around such a poorly-designed piece of software. In fairness, no one has really gotten this right yet. I like Luigi but it has its own shortcomings and continued development is an open question. Sadface.
Examples (including dead products and random tools you might not always put in the same league):
Desktop Environments:
Aqua over GNOME3, GNOME3 over DWM/Windows, DWM/Windows over KDE, KDE over non-DWM/Windows Terminal Emulators:
Terminal.app over gnome-terminal over iTerm2 over urxvt over xterm over Windows Terminal over CMD.exe Editors:
Sublime Text over Atom over vim over BBEdit over VSCode over nano over Notepad++ IDEs:
IntelliJ over Xcode over NetBeans over KDevelop over Eclipse over Visual Studio Browsers:
Safari over FireFox over Chromium over Chrome over Edge over Edgeium Shells:
bash over zsh over csh over powershell over command.com Databases:
Postgres over FoundationDB over MySQL over MongoDB over SQLite over Neo4J IaC:
Terraform over SaltStack over Ansible over Chef over Puppet over PS DSC Public Clouds:
AWS over GCP over Azure Communication Collaboration:
Slack over IRC over Matrix over Signal over smoke signals over tin cans with a string over not communicating at all over MS Teams Workload Orchestration:
Kubernetes over Nomad over CloudRun over ECS over systemd units over Swarm
Castro’s concept of show → episode → inbox → queue is unbeatable for me because it’s uncomplicated but still powerful. Sideloading is solid. Audio enhancements are high quality.
The definitions, while slightly archaic, are evocative of the etymological valences in ways that other dictionary apps (Merriam-Webster, Oxford Dictionary, Dictionary.com) lack. The WWD also has a pleasingly clean UI, smooth interaction, and no ads.
Special mention of Etymonline's etymology app.
Personally, I'm playing with new browsers and search engines. SigmaOS, Arc, Firefox. Dropped Chrome, gave up on Safari.
Search engines: phind, chatgpt by API, kagi, you, perplexity
Not sure how useful this question is...
Virtual meeting platforms: Webex is by far the worst. Zoom is amazingly clunky given how much money they have to spend on it, but at least it generally works across various desktop & mobile environments. Meet is the most basic, but it "just works", and the features on web & mobile are identical (unlike some of the options). It also seems to have been undergoing the most consistent feature development over the past 18mo. Teams is perfectly fine on desktop if you're already bought into O365, but it's hot garbage from ChromeOS or if you're a guest.
Collaboration/productivity software for enterprise: O365 contains too many products, is too complicated, and afaict, nobody actually knows which is the right tool for the job. If it was just Word/PowerPoint/Excel/Access/Outlook + Teams it would be fine, but add in Sharepoint/Viva/OneNote/OneDrive/Forms/PowerBI/Publisher/Project/Bookings/Planner/Visio and nobody knows which tool is the right one for the job. Google Workspace can't hold a candle to Word/PowerPoint/Excel but arguably is much easier for normal people to grok. Trying to find files at an O365-using company is nearly impossible.
Music & podcasts: Spotify
TODO lists & note-taking: Text files
Quick backend: Firebase
Selenium is a little old and verbose - the biggest issue, imo, is having to handle waiting for elements. Also managing webdrivers suck. Cypress is great for E2E tests but falls apart on edge cases, for example it can't handle multiple domains. Just requiring npm and not needing webdrivers is really nice for CI. Playwright is sort of a combination of both - fixes a lot of issues in Selenium but has the ease of use of Cypress. It is much less documented than Selenium though.
If I was starting a new project I'd use Playwright.
Also listing that you have a strong preference for one over others isn't helpful without reasoning as to why.
Text editors: I've used emacs, pico, nano, jed, vim, AE (UniData), ED (UniVerse), Sublime Text, VSCode, BBEdit, and countless others that I've forgotten. Sublime Text wins for simple edits of single files, vim wins when I'm ssh'd somewhere or at a terminal, and VSCode wins when I'm editing a collection of related files or doing development. ED and AE have a special place in my heart.
Databases: PostgreSQL, MySQL, UniVerse, UniData, OpenQM/ScarletDME, Sqlite, Oracle, MSSQL, Access. For relational databases, PostgreSQL for personal use and Oracle when someone else is paying for it. For MultiValue databases (UniVerse, UniData, OpenQM/ScarletDME) I like them all, but UniVerse was my first one and will always be special.
Browsers: I use Chrome, Edge, Firefox, and Safari roughly interchangably. Each one works better (for me) than the others in different contexts.
Surprisingly, Microsoft translator is the best for real-time translation. It’s still rough, but it’s able to keep up in real-time. Google doesn’t have the transcribe mode for the Korean-English language pair, and neither does Apple or Papago. Really surprised those other services don’t have it
Text editor, desktop: vim, still. I try new ones all the time. Vim is still most efficient at getting my thoughts out, particularly in editing.
Text editor, iPad: IAWriter. Very simple and clean markdown editor. I tried a _ton_ of these things, and I love IAWriter. You point it to a cloud storage folder.
The first is the 'de facto', which are widely adopted for various reasons, mostly marketing, market share, and marketing.
The second is the "alternative" options that serve as alternatives to the previously mentioned choices.
The remaining software falls into the third category, where the focus is on implementing improvements to the other two categories.
BBEdit I still use for multi-file search & replace since I prefer its interface for that. It also has the fastest typing speed.
PyCharm I use exclusively for identifying & removing unused imports in Python.
VS Code I don’t use at all. Relatively slow typing speed. Relatively slow navigation.
Observability platforms - Elastic / DataDog / Splunk / new era platforms
Incident management and alerting - PagerDuty / OpsGenie / FireHydrant
Status Pages - Atlassian / PagerDuty / new era platforms
Would be really keen to read someone's experience on Jira on-prem / Cloud / alternatives considered.
I've used Evernote, OneNote, Apple Notes, and Notion.
I prefer Notion hands down.
I dislike OneNote. Poor syncing. Hard to keep formatting consistent. Can't link to notes easily. Web app is inferior to installed app.
I used to love Evernote, but then it got slow, which led me to eval the others. This ultimately led me to Notion.
Databases:
PostgreSQL, mySQL, MongoDB, DynamoDB, SQL Server, SQLite.
Preference: SQL Server for big stuff, SQLite for small stuff or prototyping.
Editors:
Notepad++ (Linux), TextEdit (macOS), Sublime (macOS, Windows, Linux), Nano, Vi, Vim
Preference: Sublime followed by vi/vim if stuck in a shell.
File Finders:
PathFinder (macOS), Directory Opus, Finder, Windows Explorer (10 & 11), and a few different ones on Linux.
Preference: Directory Opus on Windows, PathFinder on Mac
Desktop Operating Systems:
Windows 10 Pro, Windows 11 Pro, latest macOS, Ubuntu, CentOS, FreeBSD.
Preference: Windows 10 Pro, followed by macOS, and Linux a distant 3rd.
Desktop user interfaces:
Windows 10 Pro, Windows 11 Pro, latest macOS, KDE, GNOME, couple of others in Linux.
Preference: Windows 10 Pro, followed by macOS, and Linux a distant 3rd.
Calculators:
Speedcrunch, OpalCalc, SoulVer, Windows Calculator, bc.
Preference: SoulVer, OpalCalc, Speedcrunch.
Honorable mention: RealCalc on mobile.
One-to-one messaging:
Telegram, WhatsApp, iMessage, SMS, Google Messages
Preferemce: Telegram
Group or work messaging:
Slack, Discord, Teams
Preference: Teams, then Slack.
Version Control:
Mercurial, SVN, CVS, Git, Perforce, AlienBrain (defunct now)
Preference: Perforce followed by AlienBrain followed by Mercucrial
DVCS repo websites:
Gitlab, self-hosted gitlab, Perforce self-hosted, Perforce hosted, github
Preference: Perforce self-hosted, followed by github.
VM hosts:
VMWare Workstation, VMWare Fusion, VirtualBox, ProxMox, VMWare ESXi
Preference: VMWare Workstation followed by ESXi.
Chrome, Firefox, Edge, Safari, Brave.
Preference: Firefox & Firefox mobile, Chrome
Search Engines:
Kagi, Google, DuckDuckGo, Bing, a few others.
Preference: Kagi
PDF Readers:
Chrome, Firefox, Adobe, Foxit, PDF Reader Pro, Edge
Preference: Edge
Languages (only those I've used in the past 2 years):
C, C++, C#, ARM Assembly, Rust, Python, Ruby, Typescript, JavaScript, VisualBASIC.
Preference: Typescript, Ruby, C#, Python (and I never thought I'd ever put a "scripting" language before my beloved C/C++/C# languages)
Coffee:
Starbucks, Trader Joe's, Illy, Groundworks
Preference: Groundworks, with Illy in a pinch.
Shells:
fish, zsh, bash, csh, few others
Preference: Fish and fish in Bash compatibility mode.
Code Editors (just those in the past 2 years):
Jetbrains (pycharm, rubymine, intellij, dataspell, Rider, etc, etc), VSCode (Linux, macOS, Windows), Visual Studio 2017 & 2019 & 2022, XCode
Preference: Visual Studio 2022 with latest intellicode disabled, followed by Jetbrains
Clouds:
AWS, Azure, GCP
Preference: AWS
Now watch all the Linux lovers/Windows haters down vote personal preferences.
It’s a close race between AWS and GCP, but we wanted serverless because we didn’t want the hassle of touching anything kubernetes related. Unfortunately, AWS Lambda had some goofy limitations, like requiring every method to be post and only supporting single routes per container (this was my understanding at the time, it may have changed). On the other hand, GCP Cloud Run is built on top of Knative, which allows you to do serverless services.
Also, fuck Jeff Bezos.
Laptops: I've used Sony, Dell, and IBM-then-Lenovo ThinkPads; ThinkPad every time. Very eager to try Framework the moment it has a touchpad with real physical mouse buttons, though!
Browsers: I've used Firefox, Chromium, and GNOME Web, and it's no contest: Firefox, every time, for both features and needing meaningful competition in browsers/engines. With uBlock Origin, of course.
Ad blockers: I used, sequentially, Adblock, Adblock Plus, and uBlock Origin. Adblock Plus and uBlock Origin are both good, and uBlock Origin seems subjectively faster and doesn't have the "acceptable ads" contradiction-in-terms garbage.
Search engines: I've used Google, DDG, and a dozen others over the years, and stuck with DDG. Very happy with bangs, no ads, and generally the feeling of less invasive results.
Email servers: I've used various ISPs over the years, I've used Gandi, I've run my own, and I now use Fastmail. Highly recommend Fastmail.
Mail clients: I've used Thunderbird, Evolution, mutt, K-9, and a couple of webmail clients, and I prefer the combination of mutt and K-9 to deal with the sheer volume of mail I deal with.
Editors: I used Emacs extensively for years, then switched to Vim, and have also tried various IDEs over the years. Stuck with Vim. My argument: optimizing basic text operations provides a substantial win, everything else (and there's plenty of "everything" to be had) is gravy on top.
Version control systems: I used, in order, CVS, SVN, tla/baz, Mercurial, and git. I found git both more usable and more powerful. The staging area is a great feature, `rebase -i` is a superpower, and having a clear idea of the underlying data model feels much better than having it be opaque.
Build systems: I've used a huge number of these over the years, including Make (and many variations), autotools, non-autotools configure scripts, CMake, Meson, Ninja, Scons, ./build.sh and many variations on bespoke shell scripts or Python scripts, several language-specific package managers including setuptools, pip, cabal, npm, Cargo, Debian packaging infrastructure, and a couple dozen others. My general conclusions are to avoid CMake, to use your language's package manager for building if it's remotely possible to integrate with Linux distro packaging, that opinionated tools are generally nice if you like the opinions and terrible if you don't, and if your language is C or C++, try to use the simplest thing that could possibly work and handle dependencies, including raw Make.
tl;dr prefer Context but wish I could move everything to Mobx.
I trialed a variety of VPN providers for a month rather than read reviews endlessly. I became a fan of Mullvad but I've have to switch recently because of their port forwarding changes.
Rider, Visual Studio, VSCode. Just use Rider.
AWS, GCP, Azure. Never Azure. The rest doesn't matter.
A more obscure ref but Airbyte, Fivetran, Hevo. Totally avoid Airbyte and Hevo. Begrudgingly use Fivetran.
#828282 on #f6f6ef is only a 3.54:1 contrast ratio, well below the WCAG's 4.5:1 minimum for body text. Even on a pure white background it's only 3.84:1.
My conclusion is that there are basically three that I will gravitate to, and to get qualities beyond that I'll turn to fountain, dip pen, or felt markers:
1. Bic Cristal, the world's most popular ballpoint. They've had decades to get the ink feeling just right(and they do tweak it every year) and it produces a nice, gradual dampening on movements without being slippery or scratchy. In the 1.6mm bold colors, you can also feel a distinct difference between each color. Oil paste has nice qualities for texture and value and it doesn't smudge easily - there's always a reason to want it around, even if isn't suitable as an archival art supply. Bic's other ballpoint models are also fine, basically just alternate bodies for the same ink.
2. Uniball 207+ Plus. The "+ plus" model is a new version of Uni's permanent gel ink. It's a terrifyingly consistent gel pen: the line doesn't skip often, it doesn't feel soapy like the original 207, nor is it scratchy like many competitors. It's a "default all-purpose pen" that makes a bold and dark line.
3. Uniball One F. Uni scores another hit here, but in a more niche realm. The Uni One ink is designed to sit at the surface of the paper and not saturate, which makes it extremely dark, comparable to dark india inks. As a general tool it has issues with skipping and is rather demanding of the paper, but it can make some remarkably delicate lines in 0.38mm when working slowly. It also scrapes off easily since it doesn't saturate. The F model has a higher weight at the tip which adds a bit of extra control.
3+ Editors:
Emacs > Vim > Visual studio code
All three are great, emacs wins out on ethics, magit and org. LSP kinda sucked in emacs until the recent version, where it's been working absolutely great.
Team communication:
Zullip > IRC > Slack > Discord
Zullip wins with threaded convos + the ability to have mailing list mode so you can just use mail like god intended.
Desktop environments:
KDE > Gnome > OS X
I used to not enjoy KDE quite so much, but the recent versions have been extremely pleasant and I quite enjoy that everything can be tweaked and their new tiling solution. While I like Gnome's design ideas, I found the huge menus and long animations to actually bother and distract me.
Browsers:
Firefox > Qutebrowser > Chrome > Safari
But honestly their quite the same, ethics wise I like firefox but chromes dev tools are a bit superior.
Qutebrowser gets an honorary mention because it's UX is quite good if you know vim. The vim integration just works better than just using an extension in Firefox.
Wikis/journal/todo/GTD:
Org > Obsidian > Logseq > Keep > Trello
This is a funny one, on it's own Obsidian wins but Logseq has org support which means that I can use Org+emacs on the computer and then add entries to my journal on my phone as well. Works very well and is extremely good. Keep and trello are great for just throwing things like todos and articles into a list but afterward it's hard to do anything with it. There obsidian works as a better tool.
Operating systems: I mostly use Arch Linux personally. For work, though, I think it's hard to beat everyone in the organization being on macOS.
Databases: IMO, never use anything except for Postgres for OLTP needs. Also, you don't need a document store - you need Postgres (JSONB works well if you really need to store unstructured JSON). If you need to search, Elasticsearch/Opensearch just...works well. Never use MongoDB, ever. Even if it was reliable, easy to maintain and reason about, why do you need it? If you need a lightweight local database with OLTP capabilities for managing application state, use sqlite3. K/V store? Redis. Never had a problem using Redis at massive scale, just be smart about what you're putting there. Also works well as a message queue and pub/sub (Postgres actually works well here too). I've used Celery, ZeroMQ, and Kafka - they all work well too, no strong opinions about which one.
ETL/Data Processing/Workflow management: Lots of hate for airflow in this thread. I don't think it's as bad as people are saying it is, but I moved to Dagster and am definitely never going back to Airflow. Dagster takes a few hours to grok, but then it just makes sense, and is a lot easier to reason about. General data processing - a combination of polars, pyarrow, and ray. Store streamable source data in parquet, stream it to arrow while doing initial conversions. Memory map the files, process them in polars - distributed amongst ray workers, ideally abstracted through Dagster. Sometimes you have an existing data pipeline with some steps in spark. That's fine - orchestrate those tasks in dagster!
IDEs: I've tried them all. Nothing beats the JetBrains stack with the IdeaVim plugin - I end up using almost all the tools - PyCharm, IntelliJ, GoLand, CLion, DataGrip, WebStorm, and a few times I've even used PHPStorm and MPS as well. I keep VSCode around for...text editing mostly. Most of my bash scripts and config management is done through vim (vim is also the only good Haskell IDE I've found).
- Github-actions over circleci/travisci/etc, while I miss features from time to time, github-actions adoption allows to easily find most workflows you can need, having it with github itself is also handy.
- Integration tests with a real database mounted by docker, some people complain that this is slow but its worth it given the confidence it provides, in-memory databases or fake databases could be appealing due to the speed but they are annoying to maintain and never behave like production.
- DigitalOcean over AWS/GCP/Azure, for most projects, DO is enough, its simple to use and predictable pricing is something I could never get from other clouds.
Xero is the champion of dark patterns and gaslighting when it comes to billing. The listed price fails to take into account their notice period and they won't let you export your data without resubscribing (with a notice period for the new subscription!).
I tried QuickBooks just briefly and didn't adopt it because I felt like the interface is hiding important details and doing things in the background that I want to be explicit and possibly done differently IIRC it wouldn't let me create an invoice without GBP conversion which isn't required for non-VAT invoices. This led me to creating my own invoice editor that I'm happy with.
FreeAgent has everything I need - bank feeds, streamlines the whole end of year process submitting everything to HMRC. It doesn't implant a vendor lock-in abstraction layer between the user and the accounts. Xero and QuickBooks feel like they are designed to be used exclusively by full-time accountants who specialize in their software package, whereas FreeAgent can be used by a founder educated in accounting who prefers to do the accounting on their own.
We got the crossover when we stated a family, it felt big and safe (compared to what I had before). However, the boot/trunk was too small for a growing family going on trips.
We upgraded to a large SUV, felt great to drive, big a tall. Masses of space to load up, however hard to park in small spaces (this is the UK), and far too expensive to run.
Now on an estate/station waggon, love it, favourite car I have owned. Cheaper to purchase than equivalent size suv as they are less fashionable, plus cheaper to run, cheaper tires for example. Far more fun to drive than both the others (and anything else I've had). Do not miss the height at all.
I use Linux instead of Windows or macOS, because it allows me to tinker and I feel more free. But I do use ChromeOS, because machines are cheap, the experience is good and I get access to Linux thanks to Crostini.
While I use ChromeOS I don't really like Chrome and prefer Firefox. I've used Brave and Edge, but thinking how they are all Chromium with a twist is not that compelling for me. But Firefox has a killer feature for me with Simple Tab Groups, Containers and full uBlock Origin.
With editors I used many, but I'm mostly stuck with vim, because I invested in it in the past and it is almost always there or easily obtainable. Other than it VSCode is good, but I feel dirty using it.
From terminals I've used many, but find rxvt-unicode not getting in my way the most. Though often I just use xfce4-terminal, because it is there.
From Linux DEs I've used most. KDE/Plasma seems always buggy for me. GNOME is too strange. dwm and friends are very nice, but sometimes I don't feel like setting it up on a new machine/vm. Budgie was nice, but was too much tied to Solus at the time. Xfce4 is just there, reliable and pretty enough.
Welders. It's hard to beat the convenience and ease of a MIG machine. This does not apply to flux core wires that don't use shielding gas though. I've never found one as good and easy to use as plain old gas shielding.
DAWs. Reaper is basically the perfect program as far as I'm concerned.
Java web frameworks: spring, spring boot and quarkus. I’d go with quarkus or maybe spring boot.
Java unit test assertions: junit, assertj, Hamcrest. Assertj is much nicer than the rest. Use it with junit5 and jqwik too.
Interactive shell: bash, sh, zsh, fish, powershell. I recommend fish with fzf.
Scripting shell: bash, sh, zsh, fish, powershell. I’d go with powershell or bash.
Text editor: vim, emacs, sublime text, notepad++, gedit, geany, textmate. Sublime text first. (I recommend Sublime Merge as well for git)
Workflow engine: conductor, camunda, temporal. I’d go for conductor if you don’t want to write code, temporal for code and camunda for the ui.
Editors/IDEs. Unsurprisingly, it's VS Code because it's plug and play, easy to set up quickly. I've tried Jupyterlab, Jupyter notebook, Emacs, Neovim, Atom (RIP), and Notepad++.
Browsers. There's Edge (main) and Vivaldi. I've tried Firefox (including some tweaks for hardening it), and other Chromium browsers. Edge being native to Windows manages to eke itself a small advantage by not lagging my laptop so much when I have multiple tabs open plus other programs eating up CPU/RAM like OBS Studio, and background apps. I make do with NextDNS to limit the logs/tracking.
Professionally, I've used git, perforce and PlasticSCM. Personally, I've also used SVN and Mercurial. (I also toyed with pijul's claims of being fast). I think Perforce sucks in many ways, but I think it's objectively a better tool than git. Centralized, immutable history, atomic incrementing change numbers are superior (IMO) to a decentralised, signed, hash based model. I think git's branches are a superpower, and the PR-style workflow in github is objectively superior to whatever trash P4 has put out there.
CI Tools - I've used Jenkins, TeamCity, GH Actions, Buildkite and Electric Commander. I strongly prefer Buildkite over all of the others. It strikes the right balance between Jenkins and GH Actions, mostly by avoiding a bunch of the "legacy" that comes with Jenkins.
"Programming Languages" - This is a spicy one. I flip-flop between C++, Kotlin and Go these days depending on the task. Despite the warts, I really really like go. It's a statically typed language, built in (and opinionated) package manager, wicked fast compile times, an order of magnitude faster runtimes than python, OOTB cross compilation support for full statically linked binaries, (and it has a jetbrains IDE). I wish it had _some_ extra features (sum types, real enums, and a slightly wider range of the basics in the standard library), but overall I'm very happy with it!
> I've used Chrome, Firefox and Safari all within the past year, and I prefer Chrome and Safari. Agreed. Sometimes I need different browsers for whatever reason, and for that you can use different Chrome releases (like Dev channel).
> I've used 3+ interfaces for GPT, and I prefer the OpenAI playground over ChatGPT, chatbot-ui, typingmind, openplayground, Poe, and a few others I can't remember.
ChatKit is really nice UI (if you are open to modding the css yourself, you can get a really slick interface pretty easily). Makes chatting pleasurable.
Typingmind UX is horrendous.
featuresets are different though
> I've used 3+ voice transcription apps I've been experimenting with a pipeline to use Recup and run it though my local Whisper instance so all data is on-premise
> I've used 3+ messaging apps, I like iMessage and Telegram Then you would love Chatkit. Also, telegram has web interface which is really useful (though Whatsapp does as well).
> I think it's important to note that for me these are all preferences. I'm not saying one of these tools are objectively better. I would go as far as to say objectively better based on certain metrics. But I suppose the bias in choosing which metrics makes it a "preference".
> What are areas of products, tools, developer tools, APIs, anything, where you've personally used 3+ tools, and what did you prefer, and what did you not prefer, if you can still remember?
* Alfred over spotlight, Launchy.net, LaunchBar * GPT-4 over all the other AIs including OpenAI's offerings
Does that mean you should ignore them? No. But as I read through the preferences on a lot of options, they are seemingly haphazard takes. For example, I'm seeing people saying facebook messenger is the best text chat client and MS Teams is the best video chat? These are among the worst options out there (even setting aside ethos, they're bug-ridden!).
Just be careful, I think many recommendations in this particular thread are limited in perspective.
edit: i wrote this because hackernews tends to be a "ground truth" for a lot of people when they are trying to form their own opinions on geeky stuff
Architecture: MVVM > MVP, MVC (aka none), MVI >>> "clean architecture"
Strong preference here. You split the app into UI (View), UI logic (ViewModel) and Domain+Data (Model). UI handles how its seen and interacted with. Logic is handled in its own domain but you should pass minimal data to the UI and let it figure that out. Models are probably the most important to decouple, lets you switch from local, cache, or network data sources seamlessly.
Everything else is a mess. MVI is interesting but outdated. MVC is too tightly coupled that you can't do anything, not for tests or whatever. MVP is unnecessarily coupled. "Clean" is far too decoupled that it easily evolves into a monolith when a few hacks come in.
Observables: Flow > LiveData, RxJava, none
Flow is simpler and easier to mass adopt than RxJava. It does the same. It combos very, very, very nicely into Compose, which is where the winning advantage is. The others are not bad, but basically Flow lets you treat encapsulate the logic within the variables themselves, rather than dotting the whole code with if/else statements.
UI: Compose > classic XML >> data binding XML
Data binding absolutely sucks in production. It adds MINUTES to build time. Doubly sucks because with UI you're usually doing things like tweaking text, color, padding, and you want those fast iterations.
Compose's killer feature is getting rid of adapters, which can account for half of the development time in some places. Since everything in modern apps is a list. You no longer have to think about optimizing it, you just tell it to cache if you need it cached, then think about how to display it. And like data binding, you can encapsulate how data is displayed into the UI component itself. So you just pass something like state=ACTIVE to the UI and it decides what it wants to look like without you having to pass things like color.
Back in 2017-2018, I tried about 8–10 Linux email clients, for use on openSUSE.
Thunderbird is by far the best. It’s the most complete, the most flexible, and the most capable, and it integrates well with various email hosting services as well as shared calendars and address book services.
I tried Evolution (it's very tied to GNOME and the GNOME way of doing things; it's noticeably MS Outlook-like, quite complex, and I couldn’t get calendaring and other things working.)
I also tried Balsa, Geary, Nylas/Mailspring, Sylpheed, Claws, GNUstep Mail, KMail, and others.
Sylpheed is nice and simple but misses vital functionality for me.
Claws is a bigger, slower, over-complicated version of Sylpheed, and rather than missing vital stuff, it’s festooned with every little option someone somewhere wanted. And _still_ misses important stuff. I stayed with it for a month or two, but its lack of threading was a nuisance. As soon as it starts to check for mail, you must wait: you can't read, let alone compose or edit or anything else, until it's done.
The others are, to me, basically toys. :-( They may look nice or have some unique UI feature, but in terms of filtering, spam detection and handling, multi-account support (because who has just 1 email address in the 21st century?) or some other significant important feature, they are lacking.
I dislike formatted mail. https://useplaintext.email/ is absolutely right. Read it, and learn something.
I would not hate an email client that enforced incoming mail to plain text, or minimal markup: bold, /italic/, _underline_ [note that HN will screw this up], and nothing else.
But it breaks some emails. That rules out some clients for me.
However, I actively want my client to enforce plain text replies. Always, no exceptions, strip everything else out.
Since that experiment, I have been back on Thunderbird, which after some 20 years, still has not been beaten for me. I have been using it since it was the mail component in Netscape Navigator, before Firefox existed. It’s mature and it works. It’s a bit clunky and a bit big, but it needs to be to do all the stuff it does.
I’ve also tried a number of proprietary clients, from MS Internet Mail and News (later “Outlook Express” but unrelated to Outlook), Outlook itself, Apple Mail and others. MS IM&N was pretty good. Outlook is a horror. Apple Mail is OK but does not work the way I like.
All the others are specific to one OS, usually Windows (e.g. The Bat), or ancient (Pegasus), or unmaintained (Eudora).
Thunderbird remains the best there is.
For everyday writing, I prefer a good fountain pen that takes international standard cartridges. Nothing too lightweight, I need some heft, and generally a fine nib and good ink. I write left-handed, so it needs to absorb and dry quickly enough so that I don't smear.
For marking up things, like taking notes in the margins of a paper or book, I prefer a pencil a bit softer than the standard #2. Right now I have a Uni Mitsubishi Hi-Uni Pencil - 2B, well worth the price. Of course, you can't have a pencil without and eraser and a sharpener. For the eraser a white Pentel Hi-Polymer, and to sharpen, a KUM 2-hole long point AS-2.
I'm partial to Guile and Gambit. Guile because it has comprehensive POSIX support and is an awesome glue language. Gambit because it has a compiler that emits fast code and an easy C FFI.
I prefer Emacs to all other text editors, but I frequently use whatever vi version is hanging around for quick edits and config changes.
VCS, the order goes Darcs, git mercurial, the rest.
Image editors, I dunno. GIMP, Krita, and GrafX2 I use at different times for different things.
8-bit micros: C64, TI-99/4A, VIC-20, everything else.
I've also ridden the Urban Arrow extensively (ie, many week-long rentals). I've also done multple days with the R+M Packster, Douze V2, and a bunch of others. The R+M Load 75 is superior in every way as far as I'm concerned, but the suspension is particularly well-dialed; nothing else is even fit for comparison.
----
Guitar picks: Blue Chip TAD or Hense Happy Turtle (in whatever size you like).
I've used so many others over the years... Dunlop Tortex was my stage pick for years. D'Andrea Pro Plec also. Fender mediums. Literally a dozen others. But for speed and flatpicking finesse on a steel-string acoustic, especially for highly technical styles like bluegrass and trad, I've come to realize that spending $10-$30 on a pick is actually not unreasonable.
----
Guitar strings: d'addario XS.
I've also used - for years each - Elixirs and Martin SPs. The d'addarios just don't break as easily, especially G.
----
Instrument pedalboard switcher: I've settled for the moment on the Line6 Helix.
I've also used the Boss DS-9 and a few others. It's not a very fair comparison, and I use the Helix as an all-in-one solution, not just a switcher. But the thing that decides it for me is documentation. In fact, the Helix has very possibly the best documentation of any piece of technology, hardware or software, I've ever used.
----
Pointing device: Logitech MX Ergo.
Also tried the Logitech M570, and several designer mice over the years. The MX Ergo is heavy-duty, precise, wireless works reliably with either the dongle or via bluetooth, and it's easy to clean.
----
Gamepad: 8bitdo.
I've also used the logitech F310 and F510, several revisions of xbox controller, and a whole bunch of others. The 8bitdo pieces, especially the Pro2, are just way more rugged and precise. And comfy!
1. Obsidian is the best. Simplenote is a close one. Used OneNote over the years. And tried many others for at least some weeks.
2. MS PowerPoint is the best for making slides for talks/classes. Used Keynote and Impress seriously, too.
3. Used Windows, macOS, and Linux for very long times. Altgough Apple hardware in unparalleled, Linux as an OS does it for me. Endlessly tweakable at every level.
4. For learning fundamentally new things, nothing ever beats group study and group discussion. I have, as anyone else, studied alone, and in a class. Don't care about the quality of peers in study groups as long as they are motivated.
Those are all Safari under the hood aren't they?