Search
Write a publication
Pull to refresh
-2
0
Алексей Дебелов @AlienJust

Разработчик ПО

Send message

Радиация: война с невидимым убийцей или еще немного о радоне

Reading time9 min
Views40K
И снова здравствуйте. В комментариях к предыдущей статье я обещал написать о защите от радона и его ДПР. Что ж, выполняю это обещание.



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

Ломаем простую «крякми» при помощи Ghidra — Часть 1

Reading time9 min
Views105K
О том, что это за зверь такой — Ghidra («Гидра») — и с чем его едят она ест программки, многие уже, наверняка, знают не понаслышке, хотя в открытый доступ сей инструмент попал совсем недавно — в марте этого года. Не буду докучать читателям описанием Гидры, ее функциональности и т.д. Те, кто в теме, уже, уверен, всё это сами изучили, а кто еще не в теме — могут это сделать в любое время, благо на просторах веба сейчас найти подробную информацию не составит труда. Кстати, один из аспектов Гидры (разработку плагинов к ней) уже освещался на Хабре (отличная статья!) Я же дам только основные ссылки:


Итак, Гидра — это бесплатный кроссплатформенный интерактивный дизассемблер и декомпилятор с модульной структурой, с поддержкой почти всех основных архитектур ЦПУ и гибким графическим интерфейсом для работы с дизассемблированным кодом, памятью, восстановленным (декомпилированным) кодом, отладочными символами и многое-многое другое.

Давайте попробуем уже что-нибудь сломать этой Гидрой!
Читать дальше →

Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8

Reading time4 min
Views19K

Состоялся очередной бета-релиз AvaloniaUI.



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

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

А если бы космонавтики не было?

Reading time5 min
Views38K
Год назад на День космонавтики я попытался рассказать о том, чем хороши космос и космонавтика. Но на этот же вопрос можно попробовать ответить, подойдя с противоположной стороны. Как бы мы жили, если бы космонавтики не было?


Фото: Евгений Катышев/Wikimedia Commons
Читать дальше →

TEMPEST и EMSEC: можно ли использовать электромагнитные волны в кибер-атаках?

Reading time5 min
Views7.9K
image

Недавно Венесуэла пережила серию отключений электричества, которые оставили 11 штатов этой страны без электроэнергии. С самого начала данного инцидента правительство Николаса Мадуро утверждало, что это был акт саботажа, который стал возможен благодаря электромагнитным атакам и кибер-атакам на национальную электрическую компанию Corpoelec и ее электростанции. Напротив, самопровозглашенное правительство Хуана Гуайдо просто списало этот инцидент на «неэффективность [и] неспособность режима».

Без беспристрастного и глубокого анализа ситуации очень сложно установить, были ли эти отключения следствием саботажа или все же они были вызваны недостатком технического обслуживания. Тем не менее, утверждения о предполагаемом саботаже порождают ряд интересных вопросов, связанных с информационной безопасностью. Многие системы управления на объектах критической инфраструктуры, таких как электростанции, являются закрытыми, а потому они не имеют внешних подключений к Интернету. Таким образом, возникает вопрос: могли ли кибер-злоумышленники получить доступ к закрытым ИТ-системам без непосредственного подключения к их компьютерам? Ответ — да. В таком случае электромагнитные волны могут быть вектором атаки.
Читать дальше →

Что дизайнеров ждет на DUMP-2019: обзор секции Design

Reading time4 min
Views965
Осталось две недели до самой крупной конференции разработчиков на Урале DUMP, которая пройдет 19 апреля в Екатеринбурге.

Программные директора секции Design Алексей Кулаков (Jetstyle, Ridero) и Андрей Шапиро (Byndysoft) рассказали, что интересного будет в секции, и чему дизайнеры научатся, послушав доклады.



О чем будет секция?


Наша секция не про картинки и «красивенько», а про то, как решать задачи пользователя через интерфейсы. Поэтому мы будем много говорить о пользовательских сценариях и практическом применении разных UX-подходов.

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

Представление произвольных полиномов в виде конечных разностей с произвольным шагом

Reading time3 min
Views5.7K

Введение


В данной статье рассматривается возможность представление произвольного полинома произвольной целой степени n в виде конечных разностей. Подход в данной статье отличается от уже имеющихся тем, что все формулы выводятся для произвольного полинома с произвольными коэффициентами, а также тем, что в качестве интервала между точками используется произвольный, а не единичный интервал. Полученные формулы универсальны, и могут без изменения использоваться как для вычисления «будущих», так и «прошлых» значений полинома. То есть, например, для любой кривой, выраженной квадратичным уравнением с произвольными коэффициентами, можно вычислить все значения имея лишь 3 заранее известных значения y, взятые через произвольный равный интервал φ. Как следствие, вводится утверждение, что через (n+1) равноотстоящих точек может быть проведена одна и только одна кривая, выраженная полиномом степени n.
Читать дальше →

Асинхронность в программировании

Reading time26 min
Views103K

В области разработки высоконагруженных многопоточных или распределенных приложений часто возникают дискуссии об асинхронном программировании. Сегодня мы подробно погрузимся в асинхронность и изучим, что это такое, когда она возникает, как влияет на код и язык программирования, которым мы пользуемся. Разберемся, зачем нужны Futures и Promises и затронем корутины и операционные системы. Это сделает компромиссы, возникающие во время разработки ПО, более явными.


В основе материала — расшифровка доклада Ивана Пузыревского, преподавателя школы анализа данных Яндекса.


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

SignalR в помощь, или как оживить web

Reading time7 min
Views107K

Введение


Во многих web проектах присутствуют элементы, значение которых необходимо часто менять. Это могут быть счётчики, индикаторы, уведомления и подобные элементы. Показывать ли актуальные значения после обновления страницы или же можно реализовать автообновление всех этих данных? Для нас ответ очевиден: если есть возможность динамически менять элементы, то для обновления страниц не остается места.
Читать дальше →

Новое в Git 3: замыкания

Reading time3 min
Views45K

Git — популярная система контроля версий. В ней атомарное изменение одного или нескольких файлов называется коммитом, а несколько последовательно идущих коммитов объединяются в ветку. Ветки используются для того, чтобы реализовывать новые идеи (фичи).



Случается, что идея оказывается тупиковой, разработчик сворачивает не туда, и возникает необходимость отката к изначальной версии, для этого нужно забыть о новой ветви и переключиться на главную dev или master, и затем продолжить работу как ни в чем не бывало. В этом случае "отросток" повиснет навсегда, как и желание его удалить. Но как удалить, если это часть истории? Этот отросток показывает усилия трудяги-программиста, пусть и тщетные. Так легче отчитываться перед начальством, ведь неудачный результат — тоже результат!


Спешу обрадовать: разработчики Git в 3 версии введут новую команду для замыкания таких беспризорных ветвей. Напомню, что текущая актуальная версия — 2.21.0.


Как использовать эту команду, что она дает и что думают IT компании? Статья отвечает на эти и другие вопросы.

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

OS1: примитивное ядро на Rust для x86

Reading time9 min
Views19K

Я решил написать статью, а если получится — то и серию статей, чтобы поделиться своим опытом самостоятельного исследования как устройства Bare Bone x86, так и организации операционных систем. На данный момент мою поделку нельзя назвать даже операционной системой — это небольшое ядро, которое умеет загружаться из Multiboot (GRUB), управлять памятью реальной и виртуальной, а также выполнять несколько бесполезных функций в режиме многозадачности на одном процессоре.


При разработке я не ставил себе целей написать новый Linux (хотя, признаюсь, лет 5 назад мечтал об этом) или впечатлить кого-либо, поэтому особо впечатлительных прошу дальше не смотреть. Что мне на самом деле захотелось сделать — разобраться, как устроена архитектура i386 на самом базовом уровне, и как именно операционные системы делают свою магию, ну и покопать хайповый Rust.


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


Мои цели — структурировать информацию у себя в голове, а так же помочь тем, кто идет похожим путем. Я понимаю, что аналогичные материалы и блоги уже есть в сети, но чтобы прийти к моему текущему положению, мне пришлось долго собирать их воедино. Всеми источниками (во всяком случае, которые вспомню), я поделюсь прямо сейчас.

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

DynamicData: Изменяющиеся коллекции, шаблон проектирования MVVM и реактивные расширения

Reading time10 min
Views21K


В феврале 2019 года состоялся релиз ReactiveUI 9  —  кроссплатформенного фреймворка для построения приложений с GUI на платформе Microsoft .NET. ReactiveUI  — это инструмент для тесной интеграции реактивных расширений с шаблоном проектирования MVVM. Знакомство с фреймворком можно начать с серии статей на Хабре или со вступительной страницы документации. Обновление ReactiveUI 9 включает в себя множество исправлений и улучшений, но, пожалуй, самое интересное и значимое изменение — тесная интеграция с фреймворком DynamicData, позволяющим работать с изменяющимися коллекциями в реактивном стиле. Попробуем разобраться, в каких случаях нам может пригодиться DynamicData и как устроен внутри этот мощный реактивный фреймворк!
Читать дальше →

Как я пишу конспекты по математике на LaTeX в Vim

Reading time9 min
Views132K
Некоторое время назад на Quora я отвечал на вопрос: как успевать записывать за лектором конспект по математике на LaTeX. Там я объяснил свой рабочий процесс по конспектированию в LaTeX с помощью Vim и Inkscape (для рисунков). Но с тех пор многое изменилось, так что я хочу опубликовать несколько постов в блоге с описанием нового процесса. Это первая из статей.

Я начал использовать LaTeX для конспектирования во втором семестре курса математики, и с тех пор написал более 1700 страниц. Вот несколько примеров, как выглядит конспект:


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

Делаем современное веб-приложение с нуля

Reading time31 min
Views162K
Итак, вы решили сделать новый проект. И проект этот — веб-приложение. Сколько времени уйдёт на создание базового прототипа? Насколько это сложно? Что должен уже со старта уметь современный веб-сайт?

В этой статье мы попробуем набросать boilerplate простейшего веб-приложения со следующей архитектурой:


Что мы покроем:

  • настройка dev-окружения в docker-compose.
  • создание бэкенда на Flask.
  • создание фронтенда на Express.
  • сборка JS с помощью Webpack.
  • React, Redux и server side rendering.
  • очереди задач с RQ.
Читать дальше →

Как мы сделали PHP 7 в два раза быстрее PHP 5. Часть 1: оптимизация структур данных

Reading time18 min
Views37K
В декабре 2015 вышел PHP 7.0. Компании, которые перешли на «семерку» отметили, что увеличилась производительность, а нагрузка на сервера — уменьшилась. Первыми перешли на семерку Vebia и Etsy, а у нас Badoo, Авито и OLX. Для Badoo переход на семёрку обошелся в 1 млн. долларов экономии на серверах. Благодаря PHP 7 в OLX средняя нагрузка на сервер снизилась в 3 раза, повысилась эффективность и экономия ресурсов.

Дмитрий Стогов из Zend Technologies на HighLoad++ рассказал, благодаря чему повысилась производительность. В расшифровке: о внутреннем устройстве PHP, об идеях в основе версии 7.0, об изменениях в базовых структурах данных и алгоритмах, которые и определили успех.

Disclaimer: На март 2019 года 80% сайтов работают на PHP, и 70% из них — на PHP 5, хотя с 1 января 2019 эта версия не поддерживается. Доклад Дмитрия от 2016 года про принципы, благодаря которым произошел двукратный скачок производительности между PHP 5 и 7, — актуален и в марте 2019. Для половины сайтов — точно.

Исчерпывающий список различий между VB.NET и C#. Часть 1

Reading time32 min
Views23K
image

Согласно рейтингу TIOBE в 2018 году VB.NET обогнал по популярности C#. Совпадение или нет, но в феврале Эрик Липперт, один из создателей C#, призвал читателей обратить внимание на блог его друга, бывшего коллеги по команде компилятора Roslyn и, по совместительству, ярого фаната VB.NET, Энтони Грина. «Подобные ресурсы — это глубинные детали от экспертов, которые не так легко найти, читая документацию», пишет Эрик. Представляем вашему вниманию первую часть перевода статьи Энтони Грина «Исчерпывающий список различий между VB.NET и C#». Возможно, именно в этих различиях кроется секрет динамики рейтинга этих языков.
Читать дальше →

Как браузер помогает товарищу майору

Reading time6 min
Views147K
Знаете, когда я почти нечаянно обнаружил, читая прекрасную книгу Дмитрия Кетова «Внутреннее устройство Linux» (и это не реклама), что каждый скачанный нами файл из Интернета с легкой руки браузера оставляет в расширенных атрибутах файла (в inode файла, не в самом файле) как минимум полную ссылку на то откуда он был скачан, я пришел в легкое возбуждение и хотел тут же броситься спасать мир. Позже, немного изучив этот вопрос, почитав «коммиты» и «комменты», говорившие, что этой возможности, встроенной в ядро GNU/Linux, как минимум уже около 10 лет, что ею пользуется не только браузеры, но и, к примеру, популярная утилита wget (curl нет), и что эта вещь считается чуть ли не нормой в Linux (и, как выяснилось позже, в MacOS), то я немного подуспокоился. Одно не давало мне покоя: поиск ключевого слова getfattr в google по сайту «Хабра»: site:https://habr.com getfattr, равно как и по ЛОРУ: site:https://linux.org.ru getfattr ничего толком не дал. «Значит» — подумал я — «эта тема еще особенно не обсуждалась». — Что же, тогда пришло время ее обсудить, но для начала пришлось немного по-исследовать. И вот что я обнаружил:

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

Используем старые HDD с бэдами

Reading time2 min
Views87K
Ещё со студенческих времен у меня стояла куча жестких дисков. Время от времени я их апгрейдил — старые продавал, а вместо них ставил более емкие. Тогда спрос на объем был довольно большой, все приходилось хранить у себя на винтах. Но пришло время интернета, и локалки отпали сами собой. Какое-то время диски использовались как файлопомойка для торрентов. Но надобность в апгрейде из-за нехватки объема постепенно отпала. В итоге я оказался с кучей довольно старых винчестеров, которые начали постепенно умирать. Они еще не трупы, но уже накрылись бэд блоками и поползли в сторону могилы. Естественно, при первых признаках бэдов всё более-менее ценное переносилось на новый винт, а старый…
Читать дальше →

Король разработки

Reading time15 min
Views212K


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

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

Недавно у него дела пошли в гору, и там где нормальные люди радуются и расцветают, этот парень, кажется, совсем съехал с катушек. Мы с ним как следует выпили, и он рассказал мне много искреннего дерьма, которое, честно, я бы хотел расслышать обратно.
Читать дальше →

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity