https://karthinks.com/software/avy-can-do-anything/
https://github.com/clemera/objed
https://github.com/jmorag/kakoune.el
https://github.com/meow-edit/meow/
https://github.com/xahlee/xah-fly-keys
https://github.com/Kungsgeten/ryo-modal
https://github.com/emacsorphanage/god-mode
Emacs 29 also now has treesitter and LSP mode integration built-in, a compilation mode, a comint mode for REPLs, excellent file browsing packages (I use dired/dirvish), and a few other killer features.
Now, if what you truly dislike are "quirky editors", prepare yourself for a world of hurt because vanilla Emacs departs quite a bit from "modern" text editors. I struggled with this for a while, but eventually by buying into the paradigm, I now feel that when emacs tries emulating "modern" IDE features like autocompletion, LSP, and DAP UI, I feel like it's a regression, not a progression. The point here is that you might have an "idea" of what good initial UX and lack of quirks would look like, but Emacs might change the way you think.
The rough plan is Bali, Japan, Sri Lanka, Kerala(India).
Do you have any advice or tips?
My biggest question is how do you meet other digital nomad families? I've done a lot of solo travel, and on the way I'd occasionally meet a traveling family, but they were pretty rare.
Kerala sounds interesting, One place we went to recently was Bangalore and once we got used to the traffic, we enjoyed it. I've heard good things about Goa as well from a local tech entrepreneur friend.
I'm curious as to what it's like to fly with a 3-year-old. We've had to keep our flights short, below 4 to 5 hours max, which has been cool because we then had to visit certain places we might have flown over, so we've seen more countries along the way, albeit at a higher cost. I guess in the age of media devices, longer flights shouldn't be that difficult with kids that age?
Now I have all of that.
Decisions are often made for me as I prioritize meeting the demands of higher minimum income and time spent with family and kids.
For better or for worse, growing older and gaining extra responsibilities acts as a forcing function. You need to prioritize more ruthlessly.
Choosing what to spend time is harder! The opportunity cost increases as you have less time available to spend on yourself. Choosing, therefore, becomes a bigger gamble.
If you’re relatively free in time, you should come up with a framework on making decisions on what to work with. It will depend on your goals - making a business, learning an instrument, learning skills to further your career - whatever. Make a goal and act in ways that furthers your goal.
During covid times, I met my wife, we had a son together and now we're a digital nomad family. Having a family removed a whole range of choices that let me narrow into the obvious and not have to stress out about what to focus on. In a way it's been more liberating, to take on these constraints and responsibility. I know it sounds counterintuitive but I think Jocko got it right with "Discipline Equals Freedom".
Since I got serious into computers in 2011, I haven't really had a long layoff, at most a week or two away from my computer. In July I finally got a chance to take an extended break. In August I did a 1 week meditation retreat thinking it would help reset things, and while it did help, I noticed when I got back to programming, my stress and anxiety wasn't completely gone, but it was at least more manageable.
Then in September, I stopped using my computer, and just traveled with my family for 2 months. Went to 4 different countries. Still kind of traveling but I'm now back to programming. Now that I've returned, I am noticing changes in the beliefs, interests, and pursuits I had just 3 months ago. One curious thing that happened was that I was strongly opposed to a certain programming platform, and a few weeks into my return from holiday, I'm enjoying picking it up. I believe this happened because my long continuous streak of programming never gave me a chance to "cleanse" some of the emotional triggers that would influence my decision making. If you don't take a break, the triggers keep reinforcing themselves.
In order to weaken the stress inducing triggers, you have to take a proper break; no more computers. Take a couple of months off, if your finances allow for it. Go have fun, but don't keep engaging with the thing that has caused you some much stress. I strongly believe you will come back to your computer refreshed and you will be able to interact with your machine in a much more neutral way. This in turn will allow you to make better decisions without any baggage influencing them.
Like what this macro does https://github.com/JunSuzukiJapan/macro-lisp
Wait maybe what I want already exists
I have used Jetbrains' IDEs, the CLI with fish+abbreviations+fzf, Git kraken, tig, and SourceTree. I was not an Emacs user and Magit became the gateway drug that led me down that rabbit hole (I now have a 1000+ line literate config). I actually tried to stop using Emacs in order to unify my tooling but I couldn't wean myself off, just makes working with git way too easy for me.
Why is Magit good?
- First, it will appease those who suggest "just do it the CLI way" because Magit's "Transient" interface mostly just maps mnemonic keys to git commands and their respective flags. It does this while providing real-time hints/cheatsheet style documentation so it makes discovering some of git's functionality easier. As an example, if you want to fetch and prune from the command line, you would call `git fetch -p` or `git fetch --prune`. In Magit, just tap `f - p u` and you'll get the same thing. Interactive rebasing is also mostly done the same as doing it the CLI way.
- It has a lot of convenience functions for a lot of the standard git commands. While they might only represent a small percentage of your day-to-day workflow, it's nice when you can use it. For instance, sometimes I do all my "merging back into master" work so I can start a new branch, start working on a new feature, commit, but forgot that I was still on master. Rather than going through the usual hoops of starting a new branch with that commit and resetting master, Magit provides a "spin-off" and with just a few key strokes, your commit is in its own branch and master is back to normal. Commit extend/reword is another example of some of the small niceties that add up.
- It's all text. Some GUIs might have things you want to copy/paste but it's a button or graphical element, making you have to click on something else to make that text interactable. This also makes it pretty fast to work with.
I'm not saying Magit is the best git client, since that will largely depend on what you're looking for in a client, but at least for me it was. Give it a shot, see if you like it.
I'm likely going to replace it with something with better designed thumb clusters when I can (probably a Kyria or maybe a Corne variant).
Given my previous experiences, I am never again running Linux on a laptop that is not meant to be a Linux laptop. I have owned a System76 but now I own a Windows laptop (former died and I had to buy the latter in a pinch). I spend my hard earned money for every component on the computer, so I won't accept that something doesn't work just so I can say Linux is installed. Should I be in the market for a new laptop, I would then consider a System76 or the like. The learning experience of installing Arch was great, but it's just one of those things I'm doing once for educational purposes and never doing again. It's not something I want as a hobby. Next time, as soon as I open my new laptop, I just want to install the software I will be using, not fixing hardware related issues. With my System76, it was the other way around; I installed a windows boot for work and it didn't work as well as the Linux boot. So morally of the story. as obvious as it is to me now, is to run the OS your laptop was supposed to run for the best experience.
2.) I'm jaded from the last time I installed a distro.
I did what all the cool kids were doing, stopped using a mainstream distro, and installed Arch. It's working and it's there. I don't boot it anymore. The amount of work it took to get everything working was non-trivial to say the least. After that certain things broke with updates. Several other things never worked or had its quirks.
2.) The community
After spending so much time installing my last distro, I suddenly realized that the amount of time I was spending on the Linux desktop qualified as it being a hobby. And when I realized that and then took a look at the community, I finally saw it; they're all hobbyist. Linux is their hobby. They like to distro hop and WM hop, rice their configurations, then post on r/Unixporn. So it became clear that it was less about productivity and awesome tooling, which was the original intent, and more about ricing your desktop which obviously Linux is way better at.
4.) I run a different OS now, Emacs
First I tried running Emacs on windows and certain things like Magit were painfully slow. I am now comfortably running Emacs with WSL + X410. Using Emacs as a front end to my OS makes the underlying "backend OS" (I'm making that up now) less important. My reasons for switching to Linux years ago was because I saw this cool thing called i3wm that could let me control my desktop the way I was controlling my vim editor; with my keyboard. However, after my Linux laptop died and I switched to a Windows one in a pinch, I needed to find a replacement to that environment on the Windows side. Naturally started with WSL, then had a fairly productive tmux + fish + vim configuration, and now I'm on Emacs.
Granted, Emacs runs better on my Arch boot compared to WSL + X410. Still, I'm pretty happy with this new setup.
5.) I develop windows software for work
This might be a bit anticlimactic but had I not chosen a job that developers windows software, I'm sure I would probably still be on Linux. Because I need to keep going back to Windows for work, whether a VM or booted, it has forced me to figure out how to get the tooling I loved to use on the Linux side working on the Windows side. This led me to reason 4 and emacs.
I know many of you will suggest to split work and personal, but the circumstances of my work/life make it way more practical to just have everything together, in particular because the usual "work computer" constraints don't apply to me.
-----------------------------
Would I switch back to Linux? To fix the above issues, here's what I would do;
1.) Buy a Linux laptop
System76, Dell Dev edition, Slimbook, Tuxedo, are all good options.
2.) Use a mainstream distro
I just want my OS to work so I can start Emacs
3.) Change jobs (highly unlikely)
4.) Stop listening to the community