#окр@clockstackwheels
Это проект потребовал несколько месяцев проб и ошибок, но я очень доволен тем, как вышло.
Сначала для организации ящиков хотел взять популярную систему Gridfinity. Это набор спецификаций и генераторов моделей для 3D-печати, предлагающий укладывать на любую плоскость сетку с ячейками 42мм и ставить в неё коробочки, кратные по размерам шагу сетки. Система продумана очень хорошо, потому что коробочки лёгкие, прочные, укладываются в любых комбинациях и штабелируются. А ещё она опенсорсная, и комьюнити круто её развило. Меня смущал только один момент: ряд предметов не требуют вытаскиваемую коробочку. Да, охапку шурупов удобно сложить в такую и доставать целиком. Но, скажем, если у вас в ящике лежит тюбик клея, зачем вам вытаскивать всю конструкцию, в которой он размещается? Вы просто берёте тюбик. Я подумал, что, возможно, смогу придумать систему, в которой коробочки держатся друг за друга, и только иногда их можно сделать вытаскиваемыми, когда такое требуется.
Дальше были десятки дней экспериментов и прототипов. Коробочки с крючками, с защёлками, волнистыми стенками, защёлки на дне, защёлки на боку... Всё это оказывалось хуже, чем Gridfinity: тратило больше пластика и времени печати, а основную цель во многих ситуациях не закрывало.
Тогда я понял, что подходил к задаче вообще не с того угла. Не нужно стараться заменить Gridfinity, она слишком хороша, слишком здорово продумана. Нужно дополнить её, сделать для неё расширение, которое будет добавлять фиксированные секции. И тогда я заменил дно-сетку на платформу с пазами типа «ласточкин хвост». Она спроектирована с той же ячейкой 42мм, можно составить плоскость любого размера, печатая из частей, а в пазы вставляются либо стенки-перегородки, либо посадочные упоры для Gridfinity-коробочек.
В дополнение быстро пришёл к решению, что у стенок можно минимизировать расход пластика, не потеряв прочность, если применить гексагональную сетку. Не просто так пчёлы делают свои соты такой формы.
Как и любая верная инженерная идея, эта сразу оказалась гармоничной и автоматически решила ряд других проблем:
1. Расход пластика там, где не нужно вытаскивать секции, в разы меньше, чем если делать секции коробочками. А создавать сетчатые стенки можно быстро и беспроблемно, потому что печатаются они плашмя, в отличие от стенок стандартных коробочек, которые неизбежно печатаются вертикально.
2. Можно делать секции не прямоугольной формы. И секции такого размера, который превышает область печати принтера.
3. Печатаются одинаковые стенки-перегородки, и из них собирается нужная схема уже под каждый конкретный ящик. Не нужно сначала прикидывать размеры требуемых коробочек.
4. Но в любую секцию ставится стандартная Gridfinity-коробочка заменой целых стенок на половинные и установкой упоров.
5. Стенки или упоры под коробочки автоматически являются и способом соединения участков дна между собой.
Сделал так уже два ящика, и пока во всех вариантах получается удобно. Подшлифую, оформлю и выложу все файлы в опенсорс (главным образом это генератор в формате OpenSCAD).
#diy@clockstackwheels
• На хабре есть очень хороший лонгрид по Docker, в котором описаны механизмы контейнеризации + примеры, эксперименты и реализация. Подойдет новичкам, кто хотел погрузиться в данную тему.
• Краткое содержание:
➡Chroot как первый популярный механизм, с помощью которого можно изолировать процесс в контексте файловой системы;
➡Namespaces как механизм, представляющий собой прослойку между желанием процесса получить ресурс и самим ресурсом;
➡Cgroups как ещё один механизм изоляции процессов, но только уже в контексте физических ресурсов системы;
➡OverlayFS как способ экономить место за счёт хитрой работы с файловыми системами контейнеров. Самое главное, поняли почему Docker слоёный пирог :);
➡Стандарт OCI как вещь, на которой держится вся современная контейнерная инфраструктура и утилиту runC, являющуюся эталонной реализацией OCI.
➡Читать статью [33 min].
#Docker
#docker
🐳
Docker & Kubernetes: The Practical Guide
Learn Docker, Docker Compose, Multi-Container Projects, Deployment and all about Kubernetes from the ground up!
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----
👣 Docker Escape.
• Очень крутой и содержательный урок (вебинар) про различные методы, которые злоумышленник может использовать для побега из контейнера Docker, а ещё мы разберем необходимые шаги для успешного побега на понятных примерах. Также обсудим причины возникновения таких уязвимостей и разберём, какие меры можно принять, чтобы предотвратить побег из контейнеров по следующим сценариям:
➡SYS_ADMIN;
➡SYS_PTRACE;
➡SYS_MODULE;
➡DAC_READ_SEARCH;
➡DAC_OVERRIDE;
➡docker soсket.
➡️https://youtu.be/biC3TO7OELY
➡️https://github.com/aleksey0xffd/docker-escape
#Docker
👩💻 Play with Docker — онлайн-сервис для практического знакомства с Docker.
• Интересный и уникальный ресурс для изучения Docker, который был создан еще в далеком 2017 году. Идея заключается в том, что после авторизации нас пересылает на один из облачных хостов, где стартует 4-часовая сессия «игровой площадки». В ней вы можете создавать новые сущности (instances), т.е. узлы тестового Docker-кластера. Каждый из них — это инсталляция легковесного дистрибутива Alpine Linux с редактируемым локальным IP-адресом. В них установлен Docker актуальной версии:
https://labs.play-with-docker.com
• А чтобы начинающим пользователям Docker было проще и лучше понять, чем же вообще можно (и полезно) заниматься в игровой площадке Docker, авторы Play with Docker дополнили свой сервис удобным ресурсом по обучению:
➡️https://training.play-with-docker.com
• Дополнительная информация есть на GitHub: https://github.com/play-with-docker/play-with-docker
#Docker
👩💻 Play with Docker — онлайн-сервис для практического знакомства с Docker.
• Интересный и уникальный ресурс для изучения Docker, который был создан еще в далеком 2017 году. Идея заключается в том, что после авторизации нас пересылает на один из облачных хостов, где стартует 4-часовая сессия «игровой площадки». В ней вы можете создавать новые сущности (instances), т.е. узлы тестового Docker-кластера. Каждый из них — это инсталляция легковесного дистрибутива Alpine Linux с редактируемым локальным IP-адресом. В них установлен Docker актуальной версии:
https://labs.play-with-docker.com
• А чтобы начинающим пользователям Docker было проще и лучше понять, чем же вообще можно (и полезно) заниматься в игровой площадке Docker, авторы Play with Docker дополнили свой сервис удобным ресурсом по обучению:
➡️https://training.play-with-docker.com
• Дополнительная информация есть на GitHub: https://github.com/play-with-docker/play-with-docker
#Docker
👩💻Attacking Docker.
• Статья включает в себя описание актуальных методов атак на Docker, описание различных уязвимостей и неправильных конфигураций, слабых мест в различных компонентах и другую полезную информацию:
- Privileged Container;
- Exposed Container APIs;
- Container Escape;
- Container Image Tampering;
- Insecure Container Configuration;
- Denial-of-Service (DoS);
- Kernel Vulnerabilities;
- Shared Kernel Exploitation;
- Insecure Container Orchestration;
- Insecure Container Images;
- References.
#Docker
👩💻 Docker guide.
• Ловите полезную и объемную (50 страниц) шпаргалку по Docker, которая содержит примеры различных команд и их пояснение.
• К слову, у авторов этого материала есть еще множество различных шпаргалок, в основном для разработчиков, но может быть кто-нибудь из Вас найдет для себя полезный материал: https://www.jsmastery.pro/resources?category=all
#Docker