Pull to refresh
57
0

Пользователь

Send message

История ретранслируемого интернет-чата (IRC)

Reading time7 min
Views12K


Рассказ о зарождении и становлении одного из популярнейших сегментов интернета — сетевых чатов. Предлагаем кому-то вспомнить, а кому-то узнать о том, что двигало прогрессом на этом пути, какие у разработчиков возникали разногласия, и как на почве всего этого проихсодило развитие различных сетей.
Читать дальше →
Total votes 59: ↑59 and ↓0+59
Comments19

ZeroTier, WireGuard и «LAN» от RuVDS. Сравнение возможностей и области применения

Reading time12 min
Views16K


В предыдущих статьях, от RSagittarius, посвящённых ZeroTier было подробно рассмотрено практическое применение данного инструмента и его настройка. Настало время сравнить его с таким, набирающим популярность, решением как WireGuard, что бы понять — в каких случаях лучше выбрать ZeroTier, а в каких WireGuard. Так же, «на закуску», рассмотрим такую штуку как локалка RuVDS.
Поехали!
Total votes 18: ↑15 and ↓3+21
Comments11

Результат интеграции Pine A64 и TRS-80 Model 100

Reading time2 min
Views4.1K


В этой статье подводятся итоги установки компонентов одноплатного компьютера Pine A64 LTS SBC в корпус старинного компьютера TRS-80 Model 100. При этом подключается дополнительный дисплей, задействуется аппаратная клавиатура, и в целом в старое устройство вдохнули новую жизнь. Этому проекту было посвящено несколько статей, так что в случае интереса к материалу вашему вниманию будет предоставлен и их перевод. (прим.)
Читать дальше →
Total votes 20: ↑17 and ↓3+25
Comments12

Снятие проклятия с фьюзов ATtiny85

Reading time8 min
Views16K
Однажды я испортил чип ATtiny85, да так «удачно», что даже высоковольтный последовательный программатор мне не помог. Пожалуй, с любым может случиться нечто подобное. Человек ушёл с головой в работу над каким-нибудь интересным проектом на ATtiny85. Внезапно микросхема перестаёт работать и её уже нельзя запрограммировать или записать на неё новый код.

Со мной это случилось во время возни с проектом The Skull (Череп). Это — новая аппаратная головоломка в стиле CTF (Capture The Flag) с леденящим душу сюжетом. Если честно, то в том, что случилось, была, отчасти, и моя вина. Я оставил некоторые пины подключёнными к плате Uno и пытался перепрошить чип. Вероятно, что-то вмешалось в этот процесс и чип «умер».



В общем — моя глупость стала причиной проблемы, а в моих руках оказался сломанный череп. Замечательно, что и говорить.

Расскажу о том, как мне удалось восстановить работоспособность ATtiny85. Кто знает — может и вы когда-нибудь «окирпичите» такой чип, а мой рассказ поможет вам этот чип спасти.
Читать дальше →
Total votes 46: ↑43 and ↓3+56
Comments15

Делаем часы из электронной книжки PRS-505

Reading time6 min
Views10K


Удивительно, но старинная электронная книга Sony prs-505 является очень классным конструктором всевозможных самоделок. В очередной раз взял эту книжку, чтобы сделать себе “бумажные” часы. Мне нравится это решение тем, что цифры получаются большие и яркие, при этом они не светятся в темноте и не мешают спать. Идея часов на электронной бумаге совершенно не новая, но мне просто захотелось снова поиграться с этой классной электронной книгой. В результате получился этакий проект выходного дня, потому что могу. Как обычно, собрал все возможные грабли и ошибки. Свой тернистый путь описал в этой статье.
Читать дальше →
Total votes 32: ↑31 and ↓1+45
Comments17

Путь от вычислительной машины к машине координационной

Reading time7 min
Views2.9K
В наши дни существует огромное количество технологий, ориентированных на различные аспекты облачных вычислений. В частности, речь идёт о контейнеризации и микросервисах. Они — причина того, что мы стали воспринимать приложения в виде распределённых систем, компоненты которых можно легко разворачивать и перемещать в облаке. Я полагаю, что то, с чем мы столкнулись сегодня — это революция. Но дело тут не только в технологиях. Сейчас мы стоим на пороге чего-то настолько огромного, что это может изменить то, как мы воспринимаем и понимаем программы и программные инфраструктуры.



Моя идея заключается в том, что нам, для жизни в новых условиях, нужны новые абстракции и концепции. В науке всегда ищут модель, наилучшим образом отражающую суть реальности. Делается это так из-за того, что на базе подобных моделей можно создавать технологии, удовлетворяющие нуждам человечества. То же происходит и в информатике, с её первых дней, когда исследователи начали автоматизировать вычисления — то, на что раньше был способен только человеческий разум. С этого момента понятие «вычислительная машина» всегда использовалось как база для всего того, что связано с автоматизированными вычислениями. На основе этой модели были созданы самые разные технологии.

Здесь я хочу поразмышлять о новой базовой идее, направленной на работу с вычислительными ресурсами, которая лучше согласуется с реальностью облачных вычислений, чем традиционная модель вычислительной машины. То, о чём я хочу поговорить, я называю «коммуникационной машиной» (communication machine).
Читать дальше →
Total votes 20: ↑18 and ↓2+28
Comments2

О сложностях мониторинга работающих процессов в Linux

Reading time9 min
Views11K
Все знают о том, как наблюдать за работающими процессами в Linux-системе. Но почти никто не добивается в подобных наблюдениях высокой точности. На самом деле, всем методам мониторинга процессов, о которых пойдёт речь в этом материале, чего-то не хватает.



Давайте, прежде чем приступить к экспериментам, определим требования к системе наблюдения за процессами:

  1. Логироваться должны сведения обо всех процессах, даже о короткоживущих.
  2. У нас должны быть сведения о полном пути к исполняемому файлу для всех запущенных процессов.
  3. У нас, в пределах разумного, не должно возникать необходимости в модификации или перекомпиляции нашего кода для разных версий ядра.
  4. Дополнительное требование: если хост-система является узлом Kubernetes или использует Docker, то у нас должна быть возможность определить то, к какому именно поду/контейнеру принадлежит процесс. Для этого обычно достаточно знать cgroup ID процесса. Дело в том, что с точки зрения ядра нет такого понятия, как «контейнер» или «идентификатор контейнера». Ядро оперирует лишь такими понятиями, как «контрольные группы», «сетевые пространства имён», «пространства имён процессов», оно работает с различными независимыми API, с помощью которых средства контейнеризации вроде Docker реализуют механизмы контейнеризации. Если попытаться идентифицировать контейнеры посредством ID уровня ядра, нужен уникальный идентификатор контейнера. В случае с Docker данному требованию удовлетворяют идентификаторы контрольных групп.

Поговорим об обычных API Linux, которые могут помочь в решении этой задачи. Мы, чтобы не усложнять повествование, уделим особое внимание процессам, создаваемым с помощью системных вызовов execve. Если же говорить о более полном решении задачи, то при его реализации нужно, кроме того, мониторить процессы, созданные с помощью системных вызовов fork/clone и их вариантов, а так же — результаты работы вызовов execveat.
Читать дальше →
Total votes 24: ↑22 and ↓2+33
Comments0

Создание камеры-ловушки с использованием Raspberry Pi, Python, OpenCV и TensorFlow

Reading time6 min
Views15K


Я сильно верю в обучение через практику, через создание чего-то нового. А для того чтобы что-то создавать, нужно чтобы работа приносила бы удовольствие.

Я начну рассказ о моём новом проекте с того, что раскрою причины, по которым решил попытаться создать камеру-ловушку на основе Raspberry Pi.

Я живу в Лондоне, мой сад часто посещают местные представители дикой природы. Случается это так часто, что я, заядлый садовник, мало-помалу начал расстраиваться. Разбитые горшки, выкопанные из земли растения, съеденные фрукты и овощи…

Я видел в своём саду маленьких лис (они — просто прелесть), больших лис, кошек (не моих), птиц. А однажды меня даже посетил ястреб-перепелятник.
Читать дальше →
Total votes 32: ↑24 and ↓8+26
Comments12

Вскрытие трафика в публичных сетях

Reading time9 min
Views68K


Эта статья о том, как стать кулхацкером (или по-английски Script Kiddie) — условным злоумышленником, который испытывает недостаток знаний в области программирования и использует существующее программное обеспечение, чтобы провести атаку на смартфоны и планшеты своих одноклассников.

Шучу. На самом деле передо мной стояла задача понять две вещи:

  1. Насколько опасно пользоваться публичным WiFi в 2020 году, в мире где господствуют браузеры и сайты с повсеместно победившими технологиями HTTPS (на основе TLS 1.1+) и HSTS
  2. Сможет ли человек моего уровня знаний (не самого высокого) “залезть” в чужой браузер и стащить ценные данные.

Спойлер
А в спойлере спойлер:
  1. Да, Опасно!
  2. Вполне сможет
Total votes 46: ↑44 and ↓2+62
Comments23

Создание шаблона VPS с Drupal 9 на Centos 8

Reading time7 min
Views3.5K
Мы продолжаем расширять наш маркетплейс. Недавно мы рассказывали, как сделали образ Gitlab, а на этой неделе в нашем маркетплейсе появился Drupal.

Рассказываем, почему выбрали именно его и как создавался образ.



Drupal — удобная и мощная платформа для создания любых типов сайтов: от микросайтов и блогов до крупных социальных проектов, используемая также как основа для веб-приложений, написанная на языке PHP и использующая в качестве хранилища данных реляционные базы данных.

Drupal 9 включает в себя все особенности реализованные в версии 8.9. Ключевое отличие версии 9 от версии 8 состоит в том, что для платформы будут выпускаться обновления и исправления безопасности и после ноября 2021 года. Также в версии 9 упростили процесс обновления, делая процесс обновления с версии 8 еще проще.
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments5

Программисту: 9 фильмов, которые обязательно надо посмотреть в 2020 году

Reading time3 min
Views102K
Фильмы вдохновляют нас, помогают стать умнее и вырасти над собой. Некоторые из них могут внести отличный вклад в развитие программиста. Фильмы — это прекрасный инструмент, помогающий понять современный мир. Мир, в котором всё взаимосвязано.



В материале, перевод которого мы сегодня публикуем, речь пойдёт о нескольких фильмах, которые стоит посмотреть программисту.
Читать дальше →
Total votes 78: ↑34 and ↓44+6
Comments76

Шнурок на шею для Raspberry Pi, по которому подаётся питание

Reading time3 min
Views11K
Есть одна проблема, которую я пытаюсь решить уже несколько лет. Как быть, если хочется носить Raspberry Pi на шее, на шнурке, но при этом не хотелось бы, тоже на шее, носить громоздкий аккумулятор? Сначала я подумал, что можно прикрепить USB-кабель питания к шнурку, но чтобы это сделать, потребовалось бы слишком много возни. Тогда у меня появилась идея: «А что если USB-кабель сам будет шнурком?». Сегодня я расскажу о том, что получилось из этой идеи.


USB-кабель в роли шнурка
Total votes 21: ↑18 and ↓3+22
Comments16

Готовим DRP — не забудьте учесть метеорит

Reading time6 min
Views27K

Даже во время катастрофы всегда есть время на чашку чая

DRP (disaster recovery plan) — это штука, которая в идеале никогда не понадобится. Но если вдруг мигрирующие в брачный период бобры перегрызут магистральное оптоволокно или джуниор-админ дропнет продуктивную базу, вы точно хотите быть уверены, что у вас будет заранее составленный план, что с этим всем безобразием делать.

Пока клиенты в панике начинают обрывать телефоны техподдержки, джуниор ищет цианиды, вы с мудрым видом вскрываете красный конверт и начинаете приводить все в порядок.

В этом посте я хочу поделиться рекомендациями, как надо писать DRP и что он должен содержать. А еще мы рассмотрим следующие штуки:

  1. Научимся думать как злодей.
  2. Разберем пользу чашки чая во время апокалипсиса.
  3. Продумаем удобную структуру DRP
  4. Посмотрим, как нужно его тестировать
Читать дальше →
Total votes 23: ↑22 and ↓1+33
Comments16

CSS-переменные

Reading time16 min
Views97K
CSS-переменные (их ещё называют «пользовательскими свойствами») поддерживаются веб-браузерами уже почти четыре года. Я пользуюсь ими там, где они могут пригодиться. Это зависит от проекта, над которым я работаю, и от конкретных задач, которые мне приходится решать. Работать с CSS-переменными просто, они способны принести разработчику немалую пользу. Правда, часто фронтенд-программисты применяют CSS-переменные неправильно или не понимают особенностей работы с ними.



Я написал эту статью для того чтобы собрать в ней всё, что я знаю о CSS-переменных. В ходе работы над ней я надеялся узнать о них что-то новое и упорядочить то, что мне уже известно. Вы найдёте в этом материале всё, что нужно знать о CSS-переменных. Здесь имеется множество практических примеров и описаний сценариев использования CSS-переменных.

Готовы? Если так — приступим.
Читать дальше →
Total votes 32: ↑28 and ↓4+35
Comments20
12 ...
37

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity