josephferano
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.
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?
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.
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.
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
I will grant the possibility that I have bad habits when it comes to work and I get easily distracted when I'm programming by myself. Having someone there effectively mitigates this and the lifestyle choices that negatively impact my ability to focus for long periods of times. So perhaps there's an untapped flow state that is even better than pair programming.
While I figure this out for myself, I still can't deny the fact that the last few times I've truly been in the zone have been with someone looking at/hearing me code.
Fixed.
We should not be raising the federal MW and should instead prefer more localized measures, such as States, counties, cities, or individual industries developing their own policies.
As others have pointed out, why can't the States handle it? I feel like Americans are too quick to forget that the United States of America are a federation of States and too often conceptually envisions the country as a single political unit. Comparisons to Europe are frequently drawn even though the scales are different and even then, many European countries have more decentralized minimum wage laws, such as collective bargaining agreements within specific industries, rather than nationally mandated ones.
There are mobile publishers that will gladly work with you even with just a few months to a year of experience, provided you can deliver a product. However, the terms will usually be way more favorable for the publisher. What you get though is valuable experience.
"Aside from ads" - be careful not to downplay ad revenue. Many studios live on it. Of course it might be difficult to get enough players without spending a lot of money on User Acquisition, but you just gotta pump more games out.
The reason I mentioned that a game designer is not a "main role" is because they are a luxury that only the more established studios can afford. The kind of design you should be doing is the monetization kind; design your game to generate revenue. This may sound obvious but it's quite involved. There are books on Amazon about the Freemium model that you can read up on.
If you pick the business side, please be aware that you're only as valuable as the money you can raise. Of course there are other important skills, but just having good ideas isn't enough, you need to have the funds to sustain a team for the long haul.
Be prepared to survive for a few years. Game dev is an art form and like any craft, it takes years to get it right. However, one of the biggest mistakes you can make is picking one large project for the course of this time. What mobile offers is at least the ability to publish small games you can complete in just a few months. This will ultimately be way more valuable to you and your team as each successive project allows you to build upon the mistakes of the previous. If you're stuck with a large sucky project (it will be cause it's your first), you won't get the chance to do it better before it's too late.
There's so much more stuff... It would help if you were certain about the role you wish to pursue