Мастерская 1/4
Наконец доделали ремонт на втором балконе. Это был не самый простой процесс, на который я убил свой майский отпуск, несмотря на то, что работы выполняла фирма. А для установки декоративной рейки пришлось смоделировать и напечатать для рабочих на 3D-принтере специальные шаблоны по разметке и позиционированию.
Дизайн придумали вместе с Юлей. Сейчас начал создавать в этом помещении свою мастерскую: хранение инструмента, деталей, место для пайки и других работ, зоны под 3D-принтеры и может другие небольшие станки.
Да, знаю, что вы подумали — такое красивое помещение и под мастерскую. И я даже согласен с этим. Но мастерская нужна, других мест под неё нет (если не считать абсурдные варианты типа "идти зимой в гараж каждый раз, когда нужно что-то припаять). Поэтому всё буду делать так, чтобы максимально не повредить оформление: всё будет навесное и демонтируемое.
Буду показывать, что получается, stay tuned.
#diy#life
https://wiki.python.org/moin/GlobalInterpreterLock
In #CPython, the #global#interpreter lock, or #GIL, is a mutex that prevents multiple native #threads from executing Python bytecodes at once. This lock is necessary mainly because CPython's memory management is not thread-safe. (However, since the GIL exists, other features have grown to depend on the guarantees that it enforces.)
https://docs.python.org/3/library/atexit.html
The #atexit module defines #functions to #register and #unregister cleanup functions. Functions thus registered are automatically executed upon normal interpreter termination. atexit runs these functions in the reverse order in which they were registered; if you register A, B, and C, at #interpreter#termination time they will be run in the order C, B, A.