![]() A process can be moved between machines seamlessly. The ability to outsource computation and storage seamlessly. Something that is supremely well integrated and allows me to move workloads between client and server seamlessly. And I still love the idea of a web desktop. The £200 Windows 10 laptop wasn't powerful enough, it was too laggy. I once bought a 32 core ThreadRipper and tried to get along with using a cheap £200 Windows 10 laptop to remote into the threadripper while in coffee shops and use the ThreadRipper to do my work. It's a drop-in replacement for JSON and supports type annotations, numeric suffixes, base64 strings, and more! Introducing JXC: An extensible, expressive data language.With a deployment tool to automate builds/pushes, systemd to supervise processes and a big beefy dedicated machine to let you scale up, I wonder how much value the container part is really still providing if you don't need the full functionality of Kubernetes. SystemD knows how to configure resource isolation/cgroups and kernel sandboxing, so if you need those you can just write that into your build config and it's done. If your build tool knows how to download your language runtime and bundle it sans container by just setting up paths correctly, then going without means you can rely on your Linux distribution to keep things up to date with security patches in the background, it means networking works as you'd expect (no accidentally opened firewall ports!) and so on. I haven't tried with containers because many language ecosystems don't seem to really need them for many use cases. I think I'll experiment with socket activation next, and then bundled BorgBackup. It also has features to turn on DynamicUser and other sandboxing features. Postgres, you just add that dependency in your config and it'll be up and running after the push. Oh and it can build debs from any OS, so you can push from macOS and Windows too. Upshot is you can go from a Gradle or Maven build to a running server with a few lines of config. As part of the build process it can download and bundle language runtimes (I use it with a JVM), it scans native binaries to find packages that the app should depend on, and you can define your config including package metadata like dependencies and systemd units using the HOCON language. Then it uploads it to the server via sftp and installs it using apt, so dependencies are resolved. You point it at the output of your build system and a config file, and it produces a deb that contains systemd unit files and which registers/starts the server on install/reboot/upgrade, as a regular debian package would. ![]() Unfortunately his comment has left this blog because of a stupid configuration error (Protip: Know and check your own discus shortnames.).For my own servers I use an internal tool that integrates apps with systemd. Thanks to Theodoros Ploumis for mentioning Teamocil. # no need for rake preview, since I use pow.cx Sure you want your own, or? Open a shell and execute tmux list-windows or call it via the tmux prompt. The interesting part is the layout options, either use the tmux default or use your own. The first indentation create windows, the second sets options and panes. This can be used by derivatives/wrappers like byobu. Useful for setting up interpreter versions. # Runs in each window and pane before window/pane specific commands. Will open your default $Editor with a sample config daily.yml # ~/.tmuxinator/daily.yml ![]() Tmuxinator installation1 $ gem install tmuxinatorĬreate a new layout1 $ tmuxinator new daily The installation is thanks to RubyGems easy as pie Stop growing grey hair over it, Tmuxiantor is here to help you. While using tmux daily makes your life easier and more colorful you have to admit that creating your default working environment sucks.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |