Pull to refresh
0
0

Инженер

Send message

C++17

Reading time26 min
Views96K

Рисунок 2


Язык C++ постоянно развивается, и нам как разработчикам статического анализатора важно следить за всеми изменениями, чтобы поддерживать все новые возможности языка. В этой обзорной статье я хотел бы поделиться с читателем наиболее интересными нововведениями, появившимися в C++17, а также продемонстрировать их на примерах.
Читать дальше →

Заводим GNU/Linux на ARM-плате с нуля (на примере Kali и iMX.6)

Reading time5 min
Views22K
tl;dr: собираю образ Kali Linux для ARM-компьютера, в программе debootstrap, linux и u-boot.



Если вы покупали какой-нибудь не очень популярный одноплатник, то могли столкнуться с отсутствием для него образа любимого дистрибутива. Приблизительно то же самое случилось с планируемым Flipper One. Kali Linux под IMX6 просто нету (я готовлю), поэтому собирать приходится самостоятельно.
Читать дальше →

Перегон картинок из Pillow в NumPy/OpenCV всего за два копирования памяти

Reading time7 min
Views12K

Стоп, что? В смысле «всего»? Разве преобразование из одного формата в другой нельзя сделать за одно копирование, а лучше вообще без копирования?

Да, это кажется безумием, но более привычные методы преобразования картинок работают в 1,5-2,5 раза медленнее (если нужен не read-only объект). Сегодня я покопаюсь в кишках обеих библиотек, расскажу почему так получилось и кто виноват. А также покажу финальный результат, который работает так же, только быстрее. Никаких репозиториев или пакетов не будет, только рассказ и рабочий код в конце. Но давайте обо всём по порядку.

Читать далее

Как египетский фараон Аменхотеп основал христианство, и почему оно стало идеальным мемом

Reading time14 min
Views59K

Многие считают, что подобным статьям не место на Хабре, потому что Хабр - это технический ресурс, а не Пикабу. Но успех моего недавнего поста про буддизм продемонстрировал, что статьи про историю и философию религий очень хорошо заходят местной аудитории и порождают бурные обсуждения. Так что я решил рискнуть и рассказать еще и про авраамические религии.

Я вырос в абсолютно нерелигиозной семье. Среди моих знакомых и друзей тоже почти не было религиозных людей. Поэтому с самого детства меня мучал один вопрос: почему существуют религии? Заметьте, вопрос состоял не в том, почему люди верят в Бога, хотя это тоже было мне не совсем понятно, а именно почему существуют религии с их нелепыми ритуалами и ограничениями. Раньше я считал их дремучими пережитками прошлых времен, простой картиной мира для глупых людей и удобным способом для властей управлять людьми. Но потом узнавая все больше и больше, я начал сомневаться. Факт, который в дребезги разбивал любые мои аргументы о том, что религия - это плохо: у всех когда-либо существовавших цивилизаций и обществ на нашей планете была своя религия. Это значило, что без религии цивилизация не может существовать. Но я все еще не мог понять почему. И вдруг совсем недавно я нашел простой и логичный ответ на этот вопрос в совершенно неожиданном месте.

Сейчас я расскажу о найденном мною ответе, но для начала давайте немного погрузимся в историю христианства. Сразу предупрежу, что нижеизложенная версия зарождения авраамических религий является очень и очень спорной, даже, можно сказать, маргинальной и вызывает горячие дискуссии среди историков. Но именно эта версия кажется мне самой логичной и внутренне непротиворечивой. Итак, начнем.

Читать далее

Тариф «100к+», или как вельми зело огорчить спамера

Level of difficultyEasy
Reading time12 min
Views67K

Уже не впервые сталкиваюсь, что читатели Хабра не все поголовно умеют правильно бороться со спамом. И я не про SpamAssasin, «Ктозвонил» и прочие приложения для фильтрации информационного мусора, а про несложную, но весьма доставляющую всем сторонам процесса подачу жалобы в ФАС.

После публикации на Хабре появилась статья с более лучшим раскрытием темы.

Давайте расскажу, как буквально за 15 минут не отрываясь от любимого компьютера подключить спамеру задораздирающий тариф линейки «Административный»: «Административный 100к», «Административный 150к» и вплоть до «Административный 500к» – как повезет.
Читать дальше →

Самые страшные яды

Reading time24 min
Views373K


Привет, %username%

Да, я знаю, заголовок избитый и в гугле есть овер 9000 ссылок, в которых описываются страшные яды и рассказываются ужастики.

Но я не хочу перечислять то же самое. Я не хочу меряться дозами LD50 и претендовать на оригинальность.

Я хочу написать про те яды, с которыми ты, %username%, имеешь большой риск столкнуться каждый день. И которые не так просты, как их ближайшие собратья.

Врага надо знать в лицо. И надеюсь — будет интересно. А если окажется интересно — то возможно, что и осилишь вторую часть.

Итак — моя смертельная десятка!
Читать дальше →

От мушкета до автомата — сумасшедшее столетие (ч.1)

Reading time17 min
Views76K
Сегодня мне хочется порассказать байки о том, как буквально за век человечество проделало путь от мушкета к автомату. Вкратце мы пройдемся по техническим задачам которые возникали в оружии и по тому, как они были решены. Тут читатель может потренировать свою конструкторскую мысль. Во второй части будут еще и мифы, мифы и их развеивание по ветру.

Как правильно читать объявления в Си

Reading time7 min
Views47K
Даже совсем зеленые программисты на Си, не испытывают проблем с чтением таких объявлений:
int foo[5]; // foo массив из 5 элементов типа int
char *foo; // foo указатель на char
double foo(); // foo функция возвращающая значение типа double

Но как только объявления становятся немного сложнее, проблематично точно сказать что это. Например:
char *(*(**foo[][8])())[];

Как же научиться их читать?

О нет! Моя Data Science ржавеет

Reading time9 min
Views9.3K
Привет, Хабр!

Предлагаем вашему вниманию перевод интереснейшего исследования от компании Crowdstrike. Материал посвящен использованию языка Rust в области Data Science (применительно к malware analysis) и демонстрирует, в чем Rust на таком поле может посоперничать даже с NumPy и SciPy, не говоря уж о чистом Python.


Приятного чтения!
Читать дальше →

Почему полётов стало больше, а авиапроисшествий — нет

Reading time13 min
Views48K

Крэш-тесты самолёта: затейники из NASA уронили «Боинг 720» на радиоуправлении, заполненный манекенами, чтобы посмотреть, что будет.

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

В 2019 по миру выполнено почти 36 миллионов коммерческих рейсов. Из них 19 миллионов как раз на лайнерах четвёртого поколения, 15 из которых — рейсы Airbus. Так что можно сказать, что европейский авиапроизводитель хорошо разбирается в этом вопросе, любит ковырять статистику и делать прогнозы. Сейчас мы возьмём их большой отчёт «A Statistical Analysis of Commercial Aviation Accidents 1958-2019», добавим «Flight Control Systems: Practical Issues in Design and Implementation» Роджера Пратта и попробуем разобраться, что же поменялось.

Ну и заодно посмотрим, где же можно здорово ошибиться с современными самолётами.
Читать дальше →

Zip-файлы: история, объяснение и реализация

Reading time76 min
Views105K


Мне давно было интересно, как сжимаются данные, в том числе в Zip-файлах. Однажды я решил удовлетворить своё любопытство: узнать, как работает сжатие, и написать собственную Zip-программу. Реализация превратилась в захватывающее упражнение в программировании. Получаешь огромное удовольствие от создания отлаженной машины, которая берёт данные, перекладывает их биты в более эффективное представление, а затем собирает обратно. Надеюсь, вам тоже будет интересно об этом читать.

В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
Читать дальше →

Что делает самолёт с вашей кожей и глазами

Reading time4 min
Views47K


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

Итак, кожа и глаза. Самолёт, химлаборатория или цех производства — это одно и то же. Кондиционированный пересушенный воздух. Если полёт больше 3 часов — глаза начнёт жечь, а на коже могут возникнуть высыпания. Они вам вряд ли нужны, как и красные покраснение глаз, поэтому — готовимся.
Читать дальше →

Ковры и зрение, как умываться, чистить очки и гладить кошку

Reading time5 min
Views53K


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

Например, приходит взрослый уже человек, у которого в анамнезе 7 лет ношения линз, и говорит: «Что-то я видеть стал хуже». А у него там красивый гнойный конъюнктивит. Я прошу его снять линзы, чтобы всё это рассмотреть, так он плюёт на палец и собирается лезть им в глаз. С причинами воспаления сразу всё становится понятно.

Или вот очки. Часто пенсионеры обращаются, мол, видеть стали хуже, наверное, катаракта. Бывает и катаракта, а бывает — надо просто поменять стёкла в очках. Если покрытие дешёвое, то при протирании бумажной салфеткой или тряпкой со стола очки за год где-то «матируются», стирается антибликовое покрытие. Видеть действительно становится хуже.

В общем, дальше — ликбезы.
Читать дальше →

Mod и остаток — не одно и то же

Reading time4 min
Views279K


Приготовьтесь, вас ждёт крайне педантичная статья, которая вполне может спасти вас на собеседовании или сэкономить несколько часов при вылавливании бага в продакшне!

Я сейчас активно работаю над вторым сезоном «Руководства для самозванца» и пишу о шифре RSA для SSH, который, очевидно, является самым загружаемым фрагментом кода в истории IT.

Хочется полностью разобраться в этой истории. Кто придумал этот шифр, как он работает, почему работает и будет ли работать в будущем. Сейчас я раскопал одну чертовски интересную историю. Я не криптоманьяк и вижу, как других буквально засасывает в эту область. Но мне это тоже интересно, потому что повсюду есть маленькие норки, а меня как сороку привлекают блестящие штучки в глубоких норках. Я также очень хорош в метафорах.
Читать дальше →

Функциональное программирование — это не то, что нам рассказывают

Reading time17 min
Views129K

Функциональное программирование — это очень забавная парадигма. С одной стороны, про неё все знают, и все любят пользоваться всякими паттерн матчингами и лямбдами, с другой на чистом ФП языке обычно мало кто пишет. Поэтому понимание о том, что же это такое восходит больше к мифам и городским легендам, которые весьма далеко ушли от истины, а у людей складывается мнение, что "ФП подходит для всяких оторванных от жизни программок расчетов фракталов, а для настоящих задач есть зарекомендовавший себя в бою проверенный временем ООП".



Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:


int Factorial(int n)
{
    Log.Info($"Computing factorial of {n}");
    return Enumerable.Range(1, n).Aggregate((x, y) => x * y);
}

чем ужасные императивные программы вроде


int Factorial(int n)
{
    int result = 1;
    for (int i = 2; i <= n; i++)
    {
        result *= i;
    }
    return result;
}

Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.


Как же так, разве не наоборот? Красивый флюент интерфейс, трансформация данных и лямбды это функционально, а грязные циклы которые мутируют локальные переменные — наследие прошлого? Так вот, оказывается, что нет.

Читать дальше →

Профессиональное выгорание айтишников: 15 ответов психиатра Максима Малявина

Reading time9 min
Views87K

Burn out нечаянно нагрянет, когда его совсем не ждёшь. Когда человек впервые сталкивается с профессиональным выгоранием, у него возникают вопросы:


— Что со мной: осенняя хандра, депрессия или профессиональное выгорание?
— Что с этим делать?
— К кому идти за помощью?


Мы боимся признать, что у нас проблема. Тянем с походом к врачу, откладываем разговор с руководством. Пока синдром не разворачивается в полную силу, и всё летит кувырком — работа, карьера, семья.


Поэтому так важно разобраться в проблеме заранее, понять, что проблема решаема — и решаема разными способами.


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


Я обратился за разъяснениями к психиатру Максиму Малявину. Хобби Максима не раз спасало меня от плохого настроения, а быть может и от начала профессионального выгорания. Его «Психиатрические байки» способны спасти от серости и печали будней не хуже, чем волшебная пилюлька бромдигидрохлорфенилбензодиазепина. А книги Максима «Записки психиатра, или Всем галоперидолу за счёт заведения!» и «Новые записки психиатра, или Барбухайка, на выезд!» давно прописались на моей книжкой полке.



Читать дальше →

Я мотоцикл покупал, чтобы ездить, а не чтобы падать

Reading time8 min
Views168K


Эта статья не совсем в формате Хабра, но, наблюдая какими темпами растет количество двухколесных на улицах столицы, в том числе и среди ИТ-шников, я всё же рискну — может это спасёт несколько жизней, что не так уж и плохо.

Когда лет 10 назад я купил себе первый мотоцикл, любая встреча двухколесных на дороге была целым событием. Последние же несколько лет ситуация изменилась кардинально — пробка из мототехники в междурядье уже каждодневная обыденность. Размышлять на тему, почему это происходит я не буду, а постараюсь просто поделиться опытом «выживания в большом городе» с теми, кто только купил или пока просто задумывается. Вполне возможно, что некоторые вещи будут полезны и любителям электротранспорта.
Читать дальше →

Как создать Python wrapper и не сойти с ума

Reading time5 min
Views13K

Недавно на Хабре прочитал статью про очень полезный инструмент, и так как я уже давно искал какой-то проект, чтобы начать контрибьютить, решил посмотреть, что там есть на гитхабе и чем можно помочь. Одно из issue было на счет создания обертки (дальше буду использовать wrapper) для Cи-шной библиотеки. В тот момент я подумал "О, что-то интересное, уверен, это займет не больше часа". Как же сильно я ошибался.


В этой статье я решил показать не один путь для решения подобной задачи, а несколько разных вариантов. Я покажу варианты создания модулей на Pythonс компиляцией в С, использование маленькой самописной библиотеки С в Python и – последний вариант – использование большой C библиотеки в Python без боли и pxd файлов.

Читать дальше →

Решение задания с pwnable.kr 03 — bof. Переполнение буфера в стеке

Reading time3 min
Views5.8K
image

В данной статье разберем такой тип уязвимости, как переполнение буфера в стеке, и решим 3-е задание с сайта pwnable.kr.

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

  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Читать дальше →

Изучаем календарь

Reading time6 min
Views38K
Эта статья получилась из вопроса, который я сам себе задал вчера.
«Существует ли год, в котором ни один месяц не начинается в понедельник?»
На первый взгляд — да. Год может начинаться с любого дня недели, месяцы тоже каждый раз начинаются в разные дни недели. Вариантов множество, скорее всего, найдётся и не один такой год.

Так я подумал в первую минуту после того, как задался вопросом. Это следовало бы доказать. Перебрать все года, например. Простой и быстрый способ, но не интересный. Доказать математически было намного более заманчивой идеей, но как к этому подступиться я совершенно не понимал. Поэтому просто начал выписывать продолжительность каждого месяца на бумагу.

Тут стоит оговорить, что речь дальше пойдёт про григорианский календарь, по которому мы живём с 1918 года. Однако часть рассуждений будет верна и для юлианского.
Так как же на самом деле?

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity

Specialization

Software Developer