This is terrific. More folks would be more excited if they realized how much less hassle Podman is than Docker.
This is terrific. More folks would be more excited if they realized how much less hassle Podman is than Docker.
That makes sense. Did you also set the path to Nvim in settings.json? I had to do so to clear at least one error.
I also sometimes get that “disconnected” error too, but the have it work fine. I think there’s a race condition and it raises the error right after it starts, but then connects anyway, once everything else is set.
Why would Microsoft fire an employee for holding a vigil, it’s not like they …
…called “No Azure for Apartheid”
Oh. Thanks for drawing attention to this, Microsoft! I appreciate that they’re so willing to invoke the Streisand Effect.
I hope those employees land somewhere where they build something that costs Microsoft a lot of profit.
I saw an error like that, too. (Also with the flatpak.)
I want to say I had an error in my init.vim
that was the underlying cause, and the error message cleared up once I had that fixed. I also had to make sure both executables were on my path, and I had to correct where the NeoVim plugin was looking for Nvim, as well, in settings.json.
Makes sense. I suspect it may still not work due to Proton likely being compiled for Intel, rather than ARM chips.
If you run into that, you may be able to work around it by logging into the Raspberry Pi, cloning the source code and installing: (if you’re able to get that to work, it’ll likely work equally well on Ubuntu or Raspbian). But it’s not for the faint of heart, they (Proton) don’t include many details, so it looks like there will be a lot of learning about their tool chain. https://github.com/ProtonVPN/proton-vpn-gtk-app#installation
(Edit: Since ProtonVPN is Python based, it may be fine, as long as there’s not too much C in the project. If it works immediately, my gut feeling is it will also work fine on Raspbian, if you need to switch for any other reasons.)
I set that up, once. It went poorly for me. Git behaves much better, for me, when used thoughtfully and manually.
What I now do instead, is work on certain projects on an SSH accessible host. This gives the same benefits of having my last state easily accesses, without causing noise in my development tools such as git.
I adore Visual Studio for how it set the gold standard for code editing. VsCode is growing rapidly, but Visual Studio set an incredibly high bar.
For anyone reading along, Visual Studio Community Edition was free and fantastic last time I tried it, and it does 99% of anything any individual developer cares about.
The paid professional license shines for big messy enterprise stuff, but most people looking for an editor don’t need to worry about that.
All that said, disclaimer for full honesty: my tool of choice is NeoVim - often with a splash of VSCodium.
If you’re feeling bold, check out the NeoVim VSCode plugin. It’s delightful.
It’s essentially the VSCode remote plugin, but connecting to the NeoVim back-end.
It gives all the functionality of NeoVim along with all the functionality of VSCode.
Also, annecdotaly, it’s substantially faster than the VSVim plugin.
I know a lot of people have Pis set up like this and surely they can’t be administering the whole thing through CLI, right?
We are, indeed. I use a combination of SSH (for quick stuff), and Ansible for stuff I need to do repeatedly.
How do I get a similar setup to my Synology such that I can just get a desktop interface in a browser?
The tool you’re looking for is a ’VNC’ solution. There’s lots of them, and the best ones are free.
You can enable VNC on your Raspberry Pi through Raspi-Config. You’ll also need a VNC client on each device you want to connect from. Fin linked one above, I think.
And now some un- requested advice from me:
You mention running Ubuntu on the Raspberry Pi.
If you choose Ubuntu, I believe you will encounter many recipes online that will not work, because Ubuntu does not come with various Raspberry Pi specific tools pre-installed, such as raspi-config
.
Raspbian and Ubuntu are extremely similar (this is intentional).
But I have found:
I think the Raspbian software can be added on top of Ubuntu, but I’ve never cared enough about the minor differences to even try.
The Ubuntu recipes I have found that don’t work on Raspbian also don’t work on Pi hardware at all, until I compile additional tools from source code. (A Raspberry Pi uses an ARM chip, which is cool, but makes it harder install some software that doesn’t support it.)
Clever, since checking Steam reviews for SteamDeck compatibility has definitely slowed down my impulse game purchases.
I have seen decades of would-be “C++ killers” come and go. I think that in the end, it is C++ that kills C++.
I think you’re right.
I am, admittedly, a card carrying member of the C++ curmudgeon club. But I would gladly gravitate to a sexy new C++ subset for my projects, if one gains some momentum.
I do a lot with goLang, right now, instead.
But I would adore joining with a community effort to choose reasonable safe default C++ libraries for a bunch of use cases, if one gained the traction to cover my own use cases.
I don’t think it’s super useful for production (I prefer chef/vagrant)
Yeah!
Docker and OCI get abused a lot to thoughtlessly ship a copy of the developer’s laptop into production.
Life is so much simpler after taking the time to build thoughtful correct recipes in an orchestration tool.
Anything that makes it less painful for a dev to destroy and rebuild an environment that’s corrupt or even just a bit spooky pays for itself almost immediately.
Exactly. The learning curve is mean, but it’s worth it quickly as soon as the first mystery bug dies in a rebuild fire.
This is great stuff.
My comment from the peanut gallery today is just that there’s no law that CI/CD can’t be kept under control and run in ten seconds.
Given the choice between a slow out of control CI/CD mess, or a shell script, I too will take the shell script every time.
But I am living my best life today, and have a simple shell script in my CI/CD pipeline.
The approach I’m advocating for is simply running a binary on a server with rsync to deploy, and architecting your product around that limitation.
Intriguing!
I’m looking forward to your blog series on this.
You make some great points, but I’m concerned that your preferred solutions may ignore the needs of working with peers. When I’ve worked with similar solutions before, we had a lot of on call, and it all went to the same person, regardless of who actually answered the phone.
There’s nuance to be had in the middle ground:
Anyway, interesting read. Thank you. The only way the current awful state of hosting is going to improve is by having this conversation.
I keep hearing “most people aren’t ready for K8S”. But there’s no such thing. There’s just whether K8S (or whatever replaces it) is ready for most people’s use cases.
Yeah. I could figure out how to make a PC do all that, but I would rather pay for a Steam console that does all of that for me out of the box.
Ooh. Nice.
I feel that after my kid was born, I lost the possibility of having a good night of sleep.
That resonates with me.
Hang in there. The sleep and free time stuff does get better.
I’ve been leading a fully remote team for most of the last decade, and I lately think a lot about modeling behaviors for my team, such as stepping away for 20 minutes to take a walk, or run some dishes or laundry.
What kind of government job specifically?
Most of them. Certainly the ones that have unionized. If you know someone in the inside, they probably know if there’s a union.
You’ll see more unions in government work because while private organizations breaking up unions is ethically questionable; governments breaking up unions is just openly totalitarian.
If I can’t negotiate with a private employer, I might be a wage slave, but I can ask the government for help.
If I can’t negotiate with my government job, it’s not actually a job, I’m just a slave.
I have both the official dock and some random USB C multi-connector. The random one is far more reliable, in my experience.