151 karma · joined April 13, 2012
This of course leads to other issues to solve, now that your development environment doesn't actually mirror production.
0 0 * * * /path/to/bash/script/to/init/pyenv && /my/path/to/poetry run /my/path/to/python.py -arg1
Having to ship a compiler to a host|container to build python with pyenv, needing all kinds of development headers like libffi for poetry. The hoopla around poetry init (or pipenv's equivalent) to get a deterministic result of the environment and all packages. Or you use requirements files, and don't get deterministic results.
Or you use effectively an entire operating system on top of your OS to use a conda derivative.
And we still haven't executed a lick of python.
Then there's the rigmarole around getting one of these environments to play nice with cron, having to manipulate your PATH so you can manipulate your PATH further to make the call.
It's really gotten me started questioning assumptions on what language "quick wins" should be written in.
RabbitMQ is a messaging system. ZeroMQ is sockets on steroids.
Because apple pay with the touch bar is more important revenue stream than the vocal minority of users (who I'm a member of) who hate the touchbar.
We're not consuming/using the built in network stacks anyway, we're using the OS as a content delivery system. Get us something we can get to the cores on, we're going to pin our applications directly to those cores keeping the kernel relegated to scheduling tasks on whichever NUMA core is further away from the PCIe bus running into the CPU. We'll have the CPU's we're using pegged in a constant spinlock anyway which would make the scheduler think really, really hard about running tasks there. We don't use realtime kernels as it's better for us to pay the price on the occasional spike outlier than to raise the baseline latency up.
Due to my own unfamiliarity, I don't know what BSD's equivalent to isolcpus is. I don't know how to taskset on a BSD. I don't know if the infinibad/ethernet controller's firmware/bypass software works. I don't know how BSD's scheduler works (not that we usually care, but there are times when one can't avoid work needing to be scheduled, things like rpc calls to shut down an app, ssh if you can spare the clock cycles for key verification, etc).
Would dtrace come in handy? Most definitely. Is that enough for us to abandon what we know works? Not yet.
Sometimes low tech works.