Pull to refresh
20
0
Александр Ф. Михайлов @chelaxe

User

Send message

Гений 21 века. Чем сейчас занимается Фабрис Беллар

Level of difficulty Easy
Reading time 9 min
Views 54K
Некоторые программисты настолько хорошо известны, что не нуждаются в особом представлении. Наверное, Фабрис Беллар — самая яркая звезда современности. Автор мультимедийного комбайна FFmpeg, эмулятора QEMU и десятков других полезных программ — абсолютный гений и пример программиста 100х, который в одиночку принёс больше пользы миру, чем многие корпорации с сотнями разработчиков. В общем, все знают Фабриса — про него ещё была статья на Хабре двенадцать лет назад…

… Но по просьбам молодых читателей мы решили вернуться к этой теме. Оно и к лучшему, ведь Фабрис многое сделал за это десятилетие, особенно в области нейросетей.
Читать дальше →
Total votes 204: ↑201 and ↓3 +198
Comments 49

Ищем значение числа Пи, используя генератор случайных значений

Reading time 2 min
Views 19K

Представьте, что у вас есть функция random(), которая генерируют случайным образом значения в промежутке [0;1]

Вычислите значение числа \pi

Это задачка с реального собеседования, будем разбираться!

Читать далее
Total votes 71: ↑59 and ↓12 +47
Comments 42

Старый DVD-привод превращается… в лазерный микроскоп

Reading time 3 min
Views 59K


В наше время DVD-приводы постепенно выходят из употребления, мало кто уже покупает диски или записывает их сам, а старые диски постепенно деградируют, ведь химическое покрытие на болванках не вечное.

Но для ненужного привода есть полезное применение. Например, из него можно смастерить лазерный микроскоп на Arduino (примечание: по факту требуется две лазерные головки, то есть два ненужных привода).

Это оптический микроскоп, который использует для сканирования образца сфокусированный лазерный луч.
Total votes 133: ↑129 and ↓4 +125
Comments 19

Изучаем ELK. Часть I — Установка Elasticsearch

Reading time 10 min
Views 115K

Эта статья является первой в серии статей по стеку Elasticsearch, Logstash, Kibana (ELK). Цикл статей ориентирован на тех, кто только начинает знакомится со стеком ELK, и содержит минимально необходимый набор знаний, чтобы успешно запустить свой первый кластер ELK.

В этой статье будет рассмотрена процедура установки Elasticsearch и конфигурирование кластера.

Читать далее
Total votes 12: ↑12 and ↓0 +12
Comments 20

Конвертер аудио / видео файлов FFmpeg

Reading time 6 min
Views 20K
1 Введение

Каждый пользователь хотя бы раз использовал компьютер для просмотра фильмов или прослушивания музыки. Большинство из Вас знает о существова­нии различных форматов как аудио-, так и видеоинформации. Каждый формат предназначен для своей цели.
Так MP4 удобен для воспроизведения на мобильных устройствах за счет высокой степени сжатия. Файлы формата MKV имеют огромные размеры, но вместе с тем высококачественное видео и звук. Формат AVI даже не самостоя­тельный формат, а оболочка для упаковки медиаданных других форматов. Строго говоря, MKV — это тоже контейнер, основанный на двоичном аналоге языка XML [1]. Это позволяет расширять формат без утери совместимости со старыми программами.
Список можно продолжать долго. Часто возникает необходимость пере­вести, например, фильм из одного формата в другой. Например это может пона­добится для просмотра видео на мобильном телефоне или DVD-плеере, кото­рые не поддерживают воспроизведение исходного формата.
В этом случае Вам пригодится простой, но вместе с тем необычайно мощный инструмент — конвертер FFmpeg.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 2

Эмуляция троичной системы. Вариант концепции

Reading time 4 min
Views 15K
1. Пролог

Недавно я прочитал замечательную статью [1]. В ней автор рассказывает о том, что не всегда вычислительные машины были двоичными. На заре компьютерной эры существовали машины, которые использовали десятичную и троичную систему счисления.
Десятичная система удобна человеку, но ее достаточно сложно реализовать на существующей элементной базе. Кроме того, десятичная система подвержена ошибкам в результате искажения сигнала при передаче. Троичную систему реализовать не на много сложнее двоичной ([2]), но она способна дать как минимум три преимущества.
Читать дальше →
Total votes 39: ↑20 and ↓19 +1
Comments 24

Mikrotik. IPSEC vpn за NAT как клиент

Reading time 4 min
Views 37K
Доброго всем дня!

Так уж сложилось, что в нашей компании в течении последних двух лет мы потихоньку переходим на микротики. Основные узлы построены на CCR1072, а локальные точки подключения компов на устройствах попроще. Само собой существует и объединение сетей по IPSEC tunnel, в данном случае настройка достаточно проста и не вызывает никаких трудностей, благо есть множество материалов в сети. А вот с мобильным подключением клиентов есть определенные трудности, вики производителя подсказывает, как использовать Shrew soft VPN client (по этой настройке все вроде понятно) и именно этот клиент использует 99% пользователей удаленного доступа, а 1% это я, мне стало просто лень каждый раз вводить логин и пароль в клиент и захотелось ленивого расположения на диване и удобного подключения к рабочим сетям. Инструкций по настройки Микротика для ситуаций, когда он находится даже не за серым адресом, а совсем за черным и может быть даже несколькими NAT в сети я не нашел. Потому пришлось импровизировать, а потому предлагаю посмотреть на результат.

Имеется:

  1. CCR1072 как основное устройство. версия 6.44.1
  2. CAP ac как домашняя точка подключения. версия 6.44.1

Главная особенность настройки в том, что ПК и микротик должны находиться в одной сети с одной адресацией, что и выдается основым 1072.
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 5

Чистая архитектура. Часть I — Введение

Reading time 4 min
Views 30K
Это вольный и очень краткий пересказ новой книги Роберта Мартина (Дяди Боба) «Чистая Архитектура», выпущенной в 2018 году.
Читать дальше →
Total votes 28: ↑24 and ↓4 +20
Comments 30

Начинаем FPGA на Python

Reading time 5 min
Views 35K
Технология FPGA (ПЛИС) в настоящее время обретает большую популярность. Растёт количество сфер применения: помимо обработки цифровых сигналов, FPGA используются для ускорения машинного обучения, в blockchain технологиях, обработке видео и в IoT.

Данная технология имеет один существенный минус: для программирования используются довольно сложные и специфичные языки описания цифровой аппаратуры Verilog и VHDL. Это осложняет вхождение новичка в FPGA и для работодателя найти специалиста с этими специфичными знаниями на рынке труда сложно. С другой стороны популярный высокоуровневый язык программирования Python с фреймворком MyHDL делают программирование FPGA простым и приятным. Тем более людей знающих Python на порядок больше специалистов владеющих Verilog/VHDL. Серией статей я хочу показать как легко и просто войти в область FPGA зная Python и начать делать настоящие сложные FPGA проекты на этом языке. Отмечу, что на ПЛИС python непосредственно не исполняется, а является инструментом для генерации прошивки.
Читать дальше →
Total votes 47: ↑45 and ↓2 +43
Comments 56

Как работает Android, часть 4

Reading time 26 min
Views 89K


Всем привет! Мы нашли время продолжить серию статей про внутреннее устройство Android. В этой статье я расскажу о процессе загрузки Android, о содержимом файловой системы, о том, как хранятся данные пользователя и приложений, о root-доступе, о переносимости сборок Android и о проблеме фрагментации.

Читать дальше →
Total votes 51: ↑51 and ↓0 +51
Comments 25

Нужные HTTP-заголовки

Reading time 5 min
Views 43K
Наши клиенты в Fastly любят манипулировать заголовками HTTP. Подбор правильной комбинации заголовков — одна из лучших вещей, какую вы можете сделать для безопасности своего сайта и значительного вклада в его производительность.

Большинство разработчиков знают о важных и нужных HTTP-заголовках. Самые известные — Content-Type и Content-Length, это почти универсальные хедеры. Но в последнее время для повышения безопасности начали использоваться заголовки вроде Content-Security-Policy и Strict-Transport-Security, а для повышения производительности — Link rel=preload. Несмотря на широкую поддержку в браузерах, лишь немногие их используют.

В предыдущей статье мы рассмотрели ненужные заголовки. Сейчас разберёмся, какие заголовки действительно следует настроить для своего сайта.
Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Comments 5

Небольшая заметка про wildcard сертификаты Let’s Encrypt

Reading time 2 min
Views 23K
Все уже, наверное, в курсе про такую организацию как Let’s Encrypt. С некоторых пор там можно получить и wildcard сертификат. В этой короткой заметке я опишу пару не очень очевидных моментов, с которыми столкнулся.
Читать дальше →
Total votes 22: ↑18 and ↓4 +14
Comments 17

RIPE распределил последний блок /22 из последнего блока /8. Что дальше?

Reading time 6 min
Views 27K

Распределение IP-адресов в 185/8, последнем свободном блоке RIPE, в 2012 году (слева) и 2018 году (справа), источник

17 апреля 2018 года Сетевой координационный центр RIPE — одна из пяти Региональных регистратур — распределил последние 1024 адресов IPv4 из последнего блока /8, полученного от IANA в 2011 году. Хотя последний блок 185/8 полностью распределён между европейскими компаниями, но в пуле RIPE NCC осталось 9 млн «восстановленных» адресов (то есть адресов, изъятых у бывших владельцев). По расчётам Координационного центра, этого хватит ещё примерно на два года, если выдавать по заявкам локальных регистраторов по /22 каждому.

На данный момент каждый адрес IPv4 — исключительно дефицитный товар, а последние выделенные IP-адреса используются очень интенсивно. Поэтому особенно неприятны ситуации вроде нынешней массовой блокировки IP-адресов в России. На пике блокировки 18 млн заблокированных Роскомнадзором IP-адресов соответствовали 5,5 млн заблокированных доменов — это около 2,45% из 223 млн известных доменов в интернете.
Читать дальше →
Total votes 35: ↑35 and ↓0 +35
Comments 86

Используем GPG для шифрования сообщений и файлов

Reading time 9 min
Views 161K

Кратко о том, как создавать ключи, шифровать и подписывать файлы и отправлять ключи на сервер ключей.



GPG (также известный как GnuPG) создавался как свободная альтернатива несвободному PGP. GPG используется для шифрования информации и предоставляет различные алгоритмы (RSA, DSA, AES и др.) для решения этой задачи.

Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Comments 13

Arduino для начинающих. Часть 1

Reading time 3 min
Views 124K

Предисловие


Доброго времени суток, Хабр. Запускаю цикл статей, которые помогут Вам в знакомстве с Arduino. Но это не значит, что, если Вы не новичок в этом деле – Вы не найдёте ничего для себя интересного.


Введение


Было бы не плохо начать со знакомства с Arduino. Arduino – аппаратно-программные средства для построения систем автоматики и робототехники. Главным достоинством есть то, что платформа ориентирована на непрофессиональных пользователей. То есть любой может создать своего робота вне зависимости от знаний программирования и собственных навыков.


Начало


Создание проекта на Arduino состоит из 3 главных этапов: написание кода, прототипирование (макетирование) и прошивка. Для того, чтоб написать код а потом прошить плату нам необходима среда разработки. На самом деле их есть немало, но мы будем программировать в оригинальной среде – Arduino IDE. Сам код будем писать на С++, адаптированным под Arduino. Скачать можно на официальном сайте. Скетч (набросок) – программа, написанная на Arduino. Давайте посмотрим на структуру кода:

Читать дальше →
Total votes 29: ↑15 and ↓14 +1
Comments 18

Arduino для начинающих. Часть 2

Reading time 3 min
Views 20K

Предисловие автора


Доброго времени суток, Хабр. Как и планировала, продолжаю цикл статей, которые помогут Вам в знакомстве с Arduino. Также, в каждой последующей статье (включая эту) вы сможете найти ответы на самые важные вопросы, которые появляются в комментариях. Для тех кто не читал первую часть, сюда.


Как определить полярность светодиода


На данный момент большинство светодиодов делают так, чтоб упростить процесс определения полярности. У светодиода есть две ножки, одна из которых будет длиннее другой. Длинная ножка – это плюс (анод). Короткая ножка — это минус (катод). Но что же делать если выводы светодиода одинакового размера? Иногда вывод катода отмечают точкой или небольшим срезом на корпусе. Также узнать полярность можно путём внимательного рассмотрения кристалла. Плюс имеет гораздо меньший размер внутри линзы по сравнению с минусом. Контакт минуса, в свою очередь, напоминает флажок, на котором размещается кристалл. Также можно определить полярность источником питания. Для этого необходимо источник тока (с напряжением от 3 до 6 вольт), резистор (с сопротивлением 220 – 470 Ом) и сам светодиод. Сначала соедините одну ножку светодиода с резистором. Затем коснитесь светодиодом контактов источника питания. Дотрагиваясь анодом к плюсу, а катодом к минусу, светодиод будет светиться (если он исправен).

Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 12

Сборка rpm пакетов и настройка своего репозитория

Reading time 22 min
Views 43K

В данной статье будет подробно описан процесс создание rpm пакетов и организация репозитория. Прошу всех, кому интересна данная тема, пройти под кат.

Читать дальше →
Total votes 20: ↑18 and ↓2 +16
Comments 23

«Прозрачный» HTTPS прокси для обхода блокировок Роскомнадзора

Reading time 9 min
Views 86K
Привет, хабровчане! Я думаю, многие в последнее время столкнулись с проблемами доступа к нужным ресурсам из-за попыток Роскомпозоранадзора заблокировать Телеграм. И я думаю, комментарии тут излишни. Факт — эти ресурсы ни в чем не виноваты, но они заблокированы. Проблемы возникли с Viber, ReCaptcha, GoogleFonts, Youtube и др. (кроме самого телеграма). Это случилось и в моей организации, причем некоторые невинные сервисы нужны нам как воздух. В какое-то время решалось все использованием прокси серверов, но они были нестабильны или вовсе отключались (их также блокировал наш великий и могучий РКН).

После прочтения кучи статей, пришла идея научить Squid пускать отдельные URL через Tor. Использовать ли такой метод, решать вам. Но скажу, что после реализации пропали все проблемы, которые были до этого. Кому интересно, идем под кат.
Читать дальше →
Total votes 56: ↑49 and ↓7 +42
Comments 144

MikroTik & OpenWRT & DNSCrypt

Reading time 4 min
Views 41K
Решение данного квеста навеяно этой статьей.

Данная статья рассчитана на пользователя, имеющего домашний роутер производства MikroTik, поэтому моменты, связанные непосредственно с компиляцией и сборкой, опущены, а примеры по MikroTik'у в картинках.

Итак, вкратце, постановка задачи следующая: поднять в качестве виртуальной машины (гостя) на MetaROUTER урезанную версию OpenWRT и уже на нем поднять связку DNS + DNSCrypt, которую использовать для шифрованного обмена данными с внешними DNS серверами.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 33

TON: Telegram Open Network. Часть 1: Вступление, сетевой уровень, ADNL, DHT, оверлейные сети

Reading time 9 min
Views 104K

TON: Telegram Open Network


Уже две недели Рунет шумит про Telegram и ситуацию с его бессмысленной и беспощадной блокировкой Роскомнадзором. Рикошетом задело многих, но всё это — темы для постов на Geektimes. Меня же удивило другое — я до сих пор не видел на Хабре ни одного разбора запланированной к выходу на базе Telegram сети TON — Telegram Open Network. Мне захотелось восполнить этот недостаток, ибо поизучать там есть что — даже несмотря на отсутствие официальных заявлений о нём.


Напомню — ходят слухи о том, что Telegram запустил очень масштабное закрытое ICO, уже собрав в нём невероятные суммы. Предполагается, что уже в этом году будет запущена собственная криптовалюта Gram — и у каждого пользователя Телеграма автоматически появится кошелёк, что само по себе создает немалое преимущество перед остальными криптовалютами.


К сожалению, так как официальных заявлений нет, дальше я могу отталкиваться только от документа неизвестного происхождения, о чём я сразу вас предупреждаю. Конечно, он может оказаться очень искусной подделкой, но не исключено и то, что это — реальный whitepaper будущей системы, написанный Николаем Дуровым (и слитый, вероятно, кем-то из инвесторов). Но даже если это фейк, никто нам не запретит его поизучать и обсудить, верно?


Что же говорится в этом документе? Я попробую пересказать его своими словами, близко к тексту, но по-русски и чуть более человечно (да простит меня Николай со своей склонностью уходить в формальную математику). Имейте в виду, что даже в случае его подлинности, это черновое описание системы и оно, весьма вероятно, изменится к моменту публичного запуска.

Итак, приступим
Total votes 84: ↑83 and ↓1 +82
Comments 129

Information

Rating
Does not participate
Location
Снежинск (Челябинская обл.), Челябинская обл., Россия
Date of birth
Registered
Activity