Мастерская 2/4
Несколько лет назад я делал систему хранения для инструмента на домашних станках. Параллельно смотрел, что предлагает рынок, и тогда же купил пермский набор ToolBoard. Так он и лежал до лучших времён.
Времена настали, у меня появилась мастерская, и я пустил набор в дело. Надо сказать, система очень хорошо продумана, чувствуются десятки тестов и подборов лучших форм. Конечно же, она во всем, кроме цены, превосходит мою домашнюю поделку. Основания с ячеистой сеткой под восьмигранные крепежи. Самих крепежей несколько видов, да и ставить их можно разными способами. Поэтому получается компактно и ровно вешать абсолютно всё: от тяжёлого перфоратора до тоненьких маленьких сверлышек.
Надо сказать, сообщество 3D-печатников не стояло на месте, и с тех пор появились готовые опенсорсные проекты печатных систем под ту же задачу. Тоже очень впечатляющие. Но до ToolBoard всё ещё далеко. Моё почтение авторам, насколько там всё круто и до мелочей рассчитано. Взять хотя бы тот факт, что при соединении элементов сетки головка самореза аккурат распирает крепёжный зажим так, чтобы зафиксировать его в пазу. А крючки сделаны волнистыми не просто так — между ними можно зажимать небольшие цилиндры, такие, как стержень маленькой отвёртки.
Чтобы разместить это дело, не повредив дизайн помещения, мне пришлось напечатать хитрые крепления для листа крашеной фанеры. Такие, чтобы они упирались в рейки, но прижимались винтами между ними в стену. И выдерживали десятки килограммов веса, конечно. Не могу придумать способ, как эту задачу решать без 3D-принтера. Из дерева вырезать? Комплекс станков для такой работы будет дороже принтера и займет больше места.
На доске минимально типовой инструмент для любого дома + чуть-чуть специфических вещей для электрики. Тут нет многого, но основное вроде всё учёл.
#diy#life#окр
https://docs.python.org/2/library/multiprocessing.html
#multiprocessing is a package that supports spawning processes using an #API similar to the #threading module. The multiprocessing package offers both local and remote #concurrency, effectively side-stepping the Global Interpreter Lock by using subprocesses instead of #threads. Due to this, the multiprocessing module allows the programmer to fully leverage multiple processors on a given machine. It runs on both Unix and Windows.
https://docs.python.org/3/library/multiprocessing.html
multiprocessing is a package that supports spawning processes using an API similar to the threading module. The multiprocessing package offers both local and remote concurrency, effectively side-stepping the Global Interpreter Lock by using subprocesses instead of threads. Due to this, the multiprocessing module allows the programmer to fully leverage multiple processors on a given machine. It runs on both Unix and Windows.
The #multiprocessing module also introduces #APIs which do not have analogs in the #threading#module. A prime example of this is the Pool object which offers a convenient means of parallelizing the execution of a function across multiple input values, distributing the input data across processes (data #parallelism). The following example demonstrates the common practice of defining such functions in a module so that child processes can successfully import that module. This basic example of data parallelism using Pool,
https://github.com/python/asyncio
The #asyncio#module provides infrastructure for writing #single-threaded concurrent code using #coroutines, #multiplexing#I/O access over sockets and other resources, running network clients and servers, and other related primitives. Here is a more detailed list of the package contents:
a pluggable event loop with various system-specific implementations;
transport and protocol abstractions (similar to those in Twisted);
concrete support for TCP, UDP, SSL, subprocess pipes, delayed calls, and others (some may be system-dependent);
a Future class that mimics the one in the concurrent.futures module, but adapted for use with the event loop;
#coroutines and #tasks based on yield from (PEP 380), to help write concurrent code in a sequential fashion;
cancellation support for Futures and coroutines;
synchronization primitives for use between coroutines in a single thread, mimicking those in the #threading module;
an interface for passing work off to a threadpool, for times when you absolutely, positively have to use a library that makes blocking I/O calls.
Note: The implementation of asyncio was previously called "Tulip".