Читать дальше →
Пользователь
ZeroTier, WireGuard и «LAN» от RuVDS. Сравнение возможностей и области применения
12 min
16KВ предыдущих статьях, от RSagittarius, посвящённых ZeroTier было подробно рассмотрено практическое применение данного инструмента и его настройка. Настало время сравнить его с таким, набирающим популярность, решением как WireGuard, что бы понять — в каких случаях лучше выбрать ZeroTier, а в каких WireGuard. Так же, «на закуску», рассмотрим такую штуку как локалка RuVDS.
+21
Результат интеграции Pine A64 и TRS-80 Model 100
2 min
4.1KTranslation
В этой статье подводятся итоги установки компонентов одноплатного компьютера Pine A64 LTS SBC в корпус старинного компьютера TRS-80 Model 100. При этом подключается дополнительный дисплей, задействуется аппаратная клавиатура, и в целом в старое устройство вдохнули новую жизнь. Этому проекту было посвящено несколько статей, так что в случае интереса к материалу вашему вниманию будет предоставлен и их перевод. (прим.)
+25
Снятие проклятия с фьюзов ATtiny85
8 min
16KTranslation
Однажды я испортил чип ATtiny85, да так «удачно», что даже высоковольтный последовательный программатор мне не помог. Пожалуй, с любым может случиться нечто подобное. Человек ушёл с головой в работу над каким-нибудь интересным проектом на ATtiny85. Внезапно микросхема перестаёт работать и её уже нельзя запрограммировать или записать на неё новый код.
Со мной это случилось во время возни с проектом The Skull (Череп). Это — новая аппаратная головоломка в стиле CTF (Capture The Flag) с леденящим душу сюжетом. Если честно, то в том, что случилось, была, отчасти, и моя вина. Я оставил некоторые пины подключёнными к плате Uno и пытался перепрошить чип. Вероятно, что-то вмешалось в этот процесс и чип «умер».
В общем — моя глупость стала причиной проблемы, а в моих руках оказался сломанный череп. Замечательно, что и говорить.
Расскажу о том, как мне удалось восстановить работоспособность ATtiny85. Кто знает — может и вы когда-нибудь «окирпичите» такой чип, а мой рассказ поможет вам этот чип спасти.
Со мной это случилось во время возни с проектом The Skull (Череп). Это — новая аппаратная головоломка в стиле CTF (Capture The Flag) с леденящим душу сюжетом. Если честно, то в том, что случилось, была, отчасти, и моя вина. Я оставил некоторые пины подключёнными к плате Uno и пытался перепрошить чип. Вероятно, что-то вмешалось в этот процесс и чип «умер».
В общем — моя глупость стала причиной проблемы, а в моих руках оказался сломанный череп. Замечательно, что и говорить.
Расскажу о том, как мне удалось восстановить работоспособность ATtiny85. Кто знает — может и вы когда-нибудь «окирпичите» такой чип, а мой рассказ поможет вам этот чип спасти.
+56
Делаем часы из электронной книжки PRS-505
6 min
10KTutorial
Удивительно, но старинная электронная книга Sony prs-505 является очень классным конструктором всевозможных самоделок. В очередной раз взял эту книжку, чтобы сделать себе “бумажные” часы. Мне нравится это решение тем, что цифры получаются большие и яркие, при этом они не светятся в темноте и не мешают спать. Идея часов на электронной бумаге совершенно не новая, но мне просто захотелось снова поиграться с этой классной электронной книгой. В результате получился этакий проект выходного дня, потому что могу. Как обычно, собрал все возможные грабли и ошибки. Свой тернистый путь описал в этой статье.
+45
Путь от вычислительной машины к машине координационной
7 min
2.9KTranslation
В наши дни существует огромное количество технологий, ориентированных на различные аспекты облачных вычислений. В частности, речь идёт о контейнеризации и микросервисах. Они — причина того, что мы стали воспринимать приложения в виде распределённых систем, компоненты которых можно легко разворачивать и перемещать в облаке. Я полагаю, что то, с чем мы столкнулись сегодня — это революция. Но дело тут не только в технологиях. Сейчас мы стоим на пороге чего-то настолько огромного, что это может изменить то, как мы воспринимаем и понимаем программы и программные инфраструктуры.
Моя идея заключается в том, что нам, для жизни в новых условиях, нужны новые абстракции и концепции. В науке всегда ищут модель, наилучшим образом отражающую суть реальности. Делается это так из-за того, что на базе подобных моделей можно создавать технологии, удовлетворяющие нуждам человечества. То же происходит и в информатике, с её первых дней, когда исследователи начали автоматизировать вычисления — то, на что раньше был способен только человеческий разум. С этого момента понятие «вычислительная машина» всегда использовалось как база для всего того, что связано с автоматизированными вычислениями. На основе этой модели были созданы самые разные технологии.
Здесь я хочу поразмышлять о новой базовой идее, направленной на работу с вычислительными ресурсами, которая лучше согласуется с реальностью облачных вычислений, чем традиционная модель вычислительной машины. То, о чём я хочу поговорить, я называю «коммуникационной машиной» (communication machine).
Моя идея заключается в том, что нам, для жизни в новых условиях, нужны новые абстракции и концепции. В науке всегда ищут модель, наилучшим образом отражающую суть реальности. Делается это так из-за того, что на базе подобных моделей можно создавать технологии, удовлетворяющие нуждам человечества. То же происходит и в информатике, с её первых дней, когда исследователи начали автоматизировать вычисления — то, на что раньше был способен только человеческий разум. С этого момента понятие «вычислительная машина» всегда использовалось как база для всего того, что связано с автоматизированными вычислениями. На основе этой модели были созданы самые разные технологии.
Здесь я хочу поразмышлять о новой базовой идее, направленной на работу с вычислительными ресурсами, которая лучше согласуется с реальностью облачных вычислений, чем традиционная модель вычислительной машины. То, о чём я хочу поговорить, я называю «коммуникационной машиной» (communication machine).
+28
О сложностях мониторинга работающих процессов в Linux
9 min
11KTranslation
Все знают о том, как наблюдать за работающими процессами в Linux-системе. Но почти никто не добивается в подобных наблюдениях высокой точности. На самом деле, всем методам мониторинга процессов, о которых пойдёт речь в этом материале, чего-то не хватает.
Давайте, прежде чем приступить к экспериментам, определим требования к системе наблюдения за процессами:
Поговорим об обычных API Linux, которые могут помочь в решении этой задачи. Мы, чтобы не усложнять повествование, уделим особое внимание процессам, создаваемым с помощью системных вызовов
Давайте, прежде чем приступить к экспериментам, определим требования к системе наблюдения за процессами:
- Логироваться должны сведения обо всех процессах, даже о короткоживущих.
- У нас должны быть сведения о полном пути к исполняемому файлу для всех запущенных процессов.
- У нас, в пределах разумного, не должно возникать необходимости в модификации или перекомпиляции нашего кода для разных версий ядра.
- Дополнительное требование: если хост-система является узлом Kubernetes или использует Docker, то у нас должна быть возможность определить то, к какому именно поду/контейнеру принадлежит процесс. Для этого обычно достаточно знать
cgroup ID
процесса. Дело в том, что с точки зрения ядра нет такого понятия, как «контейнер» или «идентификатор контейнера». Ядро оперирует лишь такими понятиями, как «контрольные группы», «сетевые пространства имён», «пространства имён процессов», оно работает с различными независимыми API, с помощью которых средства контейнеризации вроде Docker реализуют механизмы контейнеризации. Если попытаться идентифицировать контейнеры посредством ID уровня ядра, нужен уникальный идентификатор контейнера. В случае с Docker данному требованию удовлетворяют идентификаторы контрольных групп.
Поговорим об обычных API Linux, которые могут помочь в решении этой задачи. Мы, чтобы не усложнять повествование, уделим особое внимание процессам, создаваемым с помощью системных вызовов
execve
. Если же говорить о более полном решении задачи, то при его реализации нужно, кроме того, мониторить процессы, созданные с помощью системных вызовов fork/clone
и их вариантов, а так же — результаты работы вызовов execveat
.+33
Создание камеры-ловушки с использованием Raspberry Pi, Python, OpenCV и TensorFlow
6 min
15KTutorial
Translation
Я сильно верю в обучение через практику, через создание чего-то нового. А для того чтобы что-то создавать, нужно чтобы работа приносила бы удовольствие.
Я начну рассказ о моём новом проекте с того, что раскрою причины, по которым решил попытаться создать камеру-ловушку на основе Raspberry Pi.
Я живу в Лондоне, мой сад часто посещают местные представители дикой природы. Случается это так часто, что я, заядлый садовник, мало-помалу начал расстраиваться. Разбитые горшки, выкопанные из земли растения, съеденные фрукты и овощи…
Я видел в своём саду маленьких лис (они — просто прелесть), больших лис, кошек (не моих), птиц. А однажды меня даже посетил ястреб-перепелятник.
+26
Вскрытие трафика в публичных сетях
9 min
68KЭта статья о том, как стать кулхацкером (или по-английски Script Kiddie) — условным злоумышленником, который испытывает недостаток знаний в области программирования и использует существующее программное обеспечение, чтобы провести атаку на смартфоны и планшеты своих одноклассников.
Шучу. На самом деле передо мной стояла задача понять две вещи:
- Насколько опасно пользоваться публичным WiFi в 2020 году, в мире где господствуют браузеры и сайты с повсеместно победившими технологиями HTTPS (на основе TLS 1.1+) и HSTS
- Сможет ли человек моего уровня знаний (не самого высокого) “залезть” в чужой браузер и стащить ценные данные.
Спойлер
А в спойлере спойлер:
- Да, Опасно!
- Вполне сможет
+62
Создание шаблона VPS с Drupal 9 на Centos 8
7 min
3.5KTutorial
Мы продолжаем расширять наш маркетплейс. Недавно мы рассказывали, как сделали образ Gitlab, а на этой неделе в нашем маркетплейсе появился Drupal.
Рассказываем, почему выбрали именно его и как создавался образ.
Drupal — удобная и мощная платформа для создания любых типов сайтов: от микросайтов и блогов до крупных социальных проектов, используемая также как основа для веб-приложений, написанная на языке PHP и использующая в качестве хранилища данных реляционные базы данных.
Drupal 9 включает в себя все особенности реализованные в версии 8.9. Ключевое отличие версии 9 от версии 8 состоит в том, что для платформы будут выпускаться обновления и исправления безопасности и после ноября 2021 года. Также в версии 9 упростили процесс обновления, делая процесс обновления с версии 8 еще проще.
Рассказываем, почему выбрали именно его и как создавался образ.
Drupal — удобная и мощная платформа для создания любых типов сайтов: от микросайтов и блогов до крупных социальных проектов, используемая также как основа для веб-приложений, написанная на языке PHP и использующая в качестве хранилища данных реляционные базы данных.
Drupal 9 включает в себя все особенности реализованные в версии 8.9. Ключевое отличие версии 9 от версии 8 состоит в том, что для платформы будут выпускаться обновления и исправления безопасности и после ноября 2021 года. Также в версии 9 упростили процесс обновления, делая процесс обновления с версии 8 еще проще.
+34
Программисту: 9 фильмов, которые обязательно надо посмотреть в 2020 году
3 min
102KTranslation
Фильмы вдохновляют нас, помогают стать умнее и вырасти над собой. Некоторые из них могут внести отличный вклад в развитие программиста. Фильмы — это прекрасный инструмент, помогающий понять современный мир. Мир, в котором всё взаимосвязано.
В материале, перевод которого мы сегодня публикуем, речь пойдёт о нескольких фильмах, которые стоит посмотреть программисту.
В материале, перевод которого мы сегодня публикуем, речь пойдёт о нескольких фильмах, которые стоит посмотреть программисту.
+6
Шнурок на шею для Raspberry Pi, по которому подаётся питание
3 min
11KTranslation
Есть одна проблема, которую я пытаюсь решить уже несколько лет. Как быть, если хочется носить Raspberry Pi на шее, на шнурке, но при этом не хотелось бы, тоже на шее, носить громоздкий аккумулятор? Сначала я подумал, что можно прикрепить USB-кабель питания к шнурку, но чтобы это сделать, потребовалось бы слишком много возни. Тогда у меня появилась идея: «А что если USB-кабель сам будет шнурком?». Сегодня я расскажу о том, что получилось из этой идеи.
USB-кабель в роли шнурка
USB-кабель в роли шнурка
+22
Готовим DRP — не забудьте учесть метеорит
6 min
27KДаже во время катастрофы всегда есть время на чашку чая
DRP (disaster recovery plan) — это штука, которая в идеале никогда не понадобится. Но если вдруг мигрирующие в брачный период бобры перегрызут магистральное оптоволокно или джуниор-админ дропнет продуктивную базу, вы точно хотите быть уверены, что у вас будет заранее составленный план, что с этим всем безобразием делать.
Пока клиенты в панике начинают обрывать телефоны техподдержки, джуниор ищет цианиды, вы с мудрым видом вскрываете красный конверт и начинаете приводить все в порядок.
В этом посте я хочу поделиться рекомендациями, как надо писать DRP и что он должен содержать. А еще мы рассмотрим следующие штуки:
- Научимся думать как злодей.
- Разберем пользу чашки чая во время апокалипсиса.
- Продумаем удобную структуру DRP
- Посмотрим, как нужно его тестировать
+33
CSS-переменные
16 min
97KTutorial
Translation
CSS-переменные (их ещё называют «пользовательскими свойствами») поддерживаются веб-браузерами уже почти четыре года. Я пользуюсь ими там, где они могут пригодиться. Это зависит от проекта, над которым я работаю, и от конкретных задач, которые мне приходится решать. Работать с CSS-переменными просто, они способны принести разработчику немалую пользу. Правда, часто фронтенд-программисты применяют CSS-переменные неправильно или не понимают особенностей работы с ними.
Я написал эту статью для того чтобы собрать в ней всё, что я знаю о CSS-переменных. В ходе работы над ней я надеялся узнать о них что-то новое и упорядочить то, что мне уже известно. Вы найдёте в этом материале всё, что нужно знать о CSS-переменных. Здесь имеется множество практических примеров и описаний сценариев использования CSS-переменных.
Готовы? Если так — приступим.
Я написал эту статью для того чтобы собрать в ней всё, что я знаю о CSS-переменных. В ходе работы над ней я надеялся узнать о них что-то новое и упорядочить то, что мне уже известно. Вы найдёте в этом материале всё, что нужно знать о CSS-переменных. Здесь имеется множество практических примеров и описаний сценариев использования CSS-переменных.
Готовы? Если так — приступим.
+35