Tailscale ssh is very useful when away from your home network. Setup was pretty easy and the only 'gotcha' that I found was you cannot assign ssh to a mac machine if you are using the gui app. No worries though as it was easy to get tailscaled running with nix-darwin.
I am often away from my home network and my main gaming machine is asleep. I worked around this by installing tailscale + tailscale ssh on my router (yes you can to this!) and using it to send a wake-on-lan packet to my gaming machine.
Some useful fzf code for anyone that wants to get a listing of tailssh machines.
I've used everything. Windows for gaming/work, linux for prod/home and now Mac for work/play. I use docker every day and it's performance on Intel Mac used to be pretty terrible.
Until the M1 came out. It hands down beats every machine I have ever owned. I have an M1 Air, no fan, 10hr battery life, tiny package. It is amazing hardware. Docker is fast on it. Not linux fast but fast enough to always be running a dozen containers.
I find the recommendations saying that 'the software on mac is terrible' to not be the case for me. Sure, I am not running a fancy Wayland/sway tiled setup but the MacOS desktop is not THAT bad; at least it is not Windows.
I mostly use open source software every day. Alacritty (terminal), neovim (IDE), zsh (shell), firefox (browser), obsidian (docs). Spotify, slack and zoom are pretty much the only applications that are not open source.
I use dotfiles and use brew/brewfile to install packages. Brew has problems but apt/yum/etc have problems too. If you really want to keep things clean then you can use Nix on Mac if you wish.
And the Apple ecosystem? It just works and that is all I really care about. I put in my airpods and they can connect to all my devices. If I need to share files I can just air drop them to whatever device I want or just let them sync with iCloud.
I don't have time to fight with technology as I want to spend that time building things or hanging out with the family.
I think Asahi linux on M1/M2 laptops will be pretty amazing in the next year and you can have the best of both worlds.
Just for the record: obsidian is not open source in the same way as Firefox or linux is. The source be viewed, but is subject to restrictive licenses. I use it, really like it, but it isn’t free and open.
I've re-built my neovim config like 3 times this year as I have played with several 'distributions' and styles. SpaceVim, LunarVim, AstroVim, and NVChad to name a few.
This last weekend I gave LazyVim a try and it is by far the most sane config setup I have used and I will now be sticking with it.
There is a starter repo where you clone it, delete the .git directory and start customizing.
Could you elaborate, why is LazyVim more sane? It too seems to require understanding a lot about their organization of configuration. (It doesn't help that I'm still not migrated from Vim to Neovim and lua, because I just didn't find a neovim configuration that was better than what I have.)
- Most distros seem to like wrapping functionality and having you use their own convenience functions to get things done. For example, for AstroVim, astrovim.<function> is all over their config files. This is fine if you were a distro developer and you were trying to make things easy for yourself but I do not find it easier for the user when neovim already has simple lua based functions. It is another barrier to entry as you have to learn how the distro authors put things together.
- The config for LazyVim is will thought out. For example, it has 2 directories: /config & /plugins. That makes it simple to figure out where things should go. keymaps go in keymaps.lua, options go in options.lua... it kind of makes sense.
- The plugin config for disabling a builtin plugin is the same as where you would configure your own plugins. It is literally:
return {
{ "github/myplugin.nvim", {config here if you want}},
}
- There are no weird plugin loaders and most examples you see from plugin authors are copy/paste into that bracket section.
- The LazyVim website is decent. Not perfect though. https://www.lazyvim.org/
- The starter is a great place to start your setup. https://github.com/LazyVim/starter
- The plugin manager, lazy.nvim, seems to be a lot simpler and well thought out compared to others plugin managers (like packer). It has autoloading, caching, a UI, etc.
- Folke, the distro creator, has written many popular plugins and knows quite a bit when it comes to configuring plugins. That seems to be paying off in the design.
To be fair, there are some design decisions that I don't agree with when it comes to the LazyVim layout itself. Putting everything in editor.lua or ui.lua instead of per-plugin config is not how I would have done it. It was pretty easy to figure out where the plugin settings were though because they match the categories on the website.
Note: I mainly switched to Neovim as I am find that there just seems to be much more development in the ecosystem and the number of amazing plugins coming out is staggering.
Thanks a lot. Maybe I'm starting to see what you are talking about. I have setup a working (?) lazyvim. Let's see where it goes. Some frustrations had to be overcome, most of them turning off unwanted functionality like autopairing parantheses, for example.. The custom notifications/popups also had to be disabled for now since they have some problems (cursor vanishes in light terminal? Important command outputs are only visible for a few seconds?).
Helix doesn't have tabs or folding, I find it really hard to use an editor without those features. The preconfigured LSP stuff is nice, but after you set it up in vim you usually don't have to mess with it unless you want too.
As with most engineering tools, I think using the word "better" is not necessarily correct. It's a matter of tradeoffs.
For me, I was fed up maintaining code to run my neovim setup the way I want, so I was looking for a configuration distribution or... something else.
Helix was the dead simplicity I was looking for. It has its own warts and drawbacks, but the tradeoffs are well worth it in my experience. I absolutely love Helix!
But if you want your editor to work exactly the way you want and having maximum flexibility is more important, you will not like Helix, which is extremely opinionated and has 95% of what you want in a modern text editor. The other 5% may be a deal breaker for you.
Not that I want to muck around with plugins all day, but having the ability to add a few helper plugins to ease certain tasks is a godsend in terminal editors.
Especially if you really dislike certain defaults packaged with the editor.
I've only had successful paired programming in one situation and it was amazing. I believe it worked because we were friends and at the same knowledge level. In three days, we ripped through a project that should have taken a month. Our 'C' code was perfect because there was always someone looking at it in real time and catching the errors on the spot.
I do not think that I will ever encounter this level of productivity ever again.
I've done a lot of pair programming with mentees and it's very rewarding. They usually learn a lot and it helps building a relationship with them. Bonus points if they see you struggling with a problem/bug.
The same goes for huge open source projects like Kubernetes. The amount of money to run the infrastructure for CI/CD and CDN is in the millions per year. Someone has to pay for that and the big companies are the ones that fit the bill. Google mostly pays for it but others have started contributing also. For example, Amazon recently announced that they are funding part of the infrastructure also.
Yes. _Fit_ is right, specifically in this context. Re-read the comment you're talking about. In fact, either work fine. I'm taking issue with the pedantry we're engaging in here (while admittedly adding to it).
I recently noticed a decline in battery on my M1. It is ridiculous to complain about 10h battery life but the decline was noticeable. I fixed it by:
1) Turn off siri suggestions & privacy and all the app watching it does. System Settings -> Siri & Spotlight -> Siri Suggestions & Privacy. It turned it off for every app.
2) Turn off siri all together. System Settings -> Siri & Spotlight -> Ask Siri Toggle
3) Turn off Spotlight for everything you do not need. System Settings -> Siri & Spotlight -> Search Results check boxes
4) Turn off login items. System Settings -> Login items. Remove what you do not need from the list.
5) Turn off run in background items. System Settings -> Login items -> Allow in background
6) Remove items from ~/Library/LaunchAgents/ that you do not need. I had an old docker vnet item that wasn't needed.
Other than #6, you can do the first 5 things on all of your Apple devices and it makes a big difference in battery life. I just did the same steps with my phone and ipad.
Thank you! I have turned off a lot of background helpers from apps I don't use anymore and removed some search result types. Docker was in the background helpers multiple times. Let's see how much this helps.
In activity monitor, I also saw that Steam and iStat Menus both hand an "impact" of 50 which made them the top 2, the next had an "impact" of 5.
This might be an old issue, but try turning of the hard drive space indicator in iStats Menu. It was a major drain for me a couple years ago. After a restart, energy use went way down.
Folks tend to get so upset about the title of "DevOps". I am unsure if it is because of:
- just dealing with bad Ops engineers at work that "don't do much"
- employees taking advantage of the DevOps movement to make more money
- System Administrators complaining that 'this is what we have always done'
System Administrators, though skilled, had a much different mindset in the 90s when I worked closely with them. They were more focused on keeping Sun hardware running and keeping the SAN from filling up. That server room was their 'production'. They were still on call for when a server went down and it took days for a new server to be rebuilt. The best of them wrote scripts to make their lives easier but that wasn't often the focus. They were too busy keeping the systems running to automate much of it.
I find that DevOps is a different level of abstraction compared to Sys Admins. In general, they do not need to know how to build a server and fight with the OS as they can use tooling to spin up 100s of machines in the cloud. The amount of knowledge they need is much broader and less specialized than a System Administrator. Where the Sys Admin would need to know the ins and outs of Cisco Routers, the DevOps engineer only needs to know how to use a Load Balancer. If lucky, there is a tool that makes it easy to create them.
I find the list in the guide to be quite accurate but you do not need to be a master of everything in the list.
I am often away from my home network and my main gaming machine is asleep. I worked around this by installing tailscale + tailscale ssh on my router (yes you can to this!) and using it to send a wake-on-lan packet to my gaming machine.
Some useful fzf code for anyone that wants to get a listing of tailssh machines.