Pull to refresh
-23
0.1
Максим Сидоров @sidorovmax

User

Send message

Создание своего UEFI приложения

Level of difficultyMedium
Reading time5 min
Views39K

Привет, Хабр! Мне 16 лет, я студент, учусь на первом курсе колледжа на программиста. Начал увлекаться низкоуровневым программированием на Ассемблере и C/C++

Я заметил что на Хабре есть множество статей о написании своих простых "загрузчиков" для BIOS-MBR, которые выводят на экран "Hello World!". И при этом практически нет ни одной статьи о создании того же самого, но только для UEFI, хотя будущее именно за ним, ведь BIOS уже давно устарел! Это я и хочу исправить в этой статье.

Читать далее
Total votes 86: ↑85 and ↓1+84
Comments80

БЕСПЛАТНЫЙ РАБОЧИЙ ВПН 2023 + САМЫЙ ЛУЧШИЙ. BLACKTEMPLE SPACE

Reading time2 min
Views6.9K


Содержание

1) Кто мы и наша новая проблема.

2) Собираем нового телеграм бота для выдачи ключей.

3) Наслаждаемся бесплатным ВПН.

Blacktemple - мы абсолютно бесплатный VPN сервис который работает уже 2ой год.

За этот период мы:

Читать далее
Total votes 7: ↑2 and ↓5-3
Comments7

Быстрый двоичный поиск без ветвления

Level of difficultyMedium
Reading time15 min
Views13K

Мои читатели — занятые люди, поэтому сразу перейду к делу. Вот она, самая быстрая обобщённая (и простая) реализация двоичного поиска на C++:

template <class ForwardIt, class T, class Compare>
constexpr ForwardIt sb_lower_bound(
      ForwardIt first, ForwardIt last, const T& value, Compare comp) {
   auto length = last - first;
   while (length > 0) {
      auto rem = length % 2;
      length /= 2;
      if (comp(first[length], value)) {
         first += length + rem;
      }
   }
   return first;
}

Тот же интерфейс функции, что и у std::lower_bound, но вдвое быстрее и короче. «Без ветвления», потому что if компилируется в команду условной передачи, а не в ветвление/условный переход. Ближе к концу статьи мы изучим опции компилятора и даже более быстрые версии полностью без ветвления. Для понимания этой статьи не нужны особые знания в C++. Достаточно понимать, что итераторы (first и last) по сути являются указателями на элементы массива, хотя могут указывать на один элемент дальше, чем последний элемент массива. Можете не обращать внимания на template, class, constexpr и &. Вот если бы существовал быстрый и чистый язык, работающий на уровне железа...1 2
Читать дальше →
Total votes 78: ↑78 and ↓0+78
Comments6

Как поиск жилья заставил менеджера вспомнить программирование и уйти из Яндекса

Level of difficultyEasy
Reading time6 min
Views29K

Привет, Хабр! Я разработал помощника по поиску жилья HomeBro, который помог десяткам тысяч людей найти новый дом. Расскажу, с чем я облажался, а с чем – нет.

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

Читать далее
Total votes 69: ↑66 and ↓3+63
Comments61

.NET 7 против российской криптографии

Level of difficultyMedium
Reading time9 min
Views25K

Разрабатывая один проект на свежем .NET 7 столкнулся с необходимостью подписывать данные с использованием отечественных криптоалгоритмов. Ранее, в .NET Framework хорошая поддержка работы с со сторонними криптопровайдерами, реализующими семейство алгоритмов ГОСТ (CryptoPro CSP, ViPNet CSP и пр.), шла "из коробки". К сожалению, в новые версии фреймворка часть ранее работающего функционала по работе с CMS-сообщениями не попала, и пришлось восполнять пробел надёжными дедовскими методами, т. е. с помощью старого доброго WinAPI.

Читать далее
Total votes 74: ↑74 and ↓0+74
Comments14

Руководство по возможностям языка Java версий 8-19

Level of difficultyEasy
Reading time18 min
Views32K

Вы можете использовать это руководство для получения практической информации о том, как найти и установить последнюю версию Java, понять различия между дистрибутивами Java (Adoptium, AdoptOpenJdk, OpenJDK, OracleJDK и т. д.), а также получить обзор функций языка Java, включая версии 8–19.

Читать далее
Total votes 39: ↑37 and ↓2+35
Comments10

Git for Windows: работа с параметром core.autocrlf

Reading time9 min
Views18K

Одна из настроек программы (системы управления версиями) «Git» называется «core.autocrlf». В этой статье я на практическом примере описываю, что происходит при каждом из трех возможных значений этой настройки. После этого я делаю выводы о том, для чего эта настройка нужна и в каких ситуациях какие ее значения можно использовать.

Всё описанное происходит в операционной системе «Windows 10». Работу с «Git» я показываю на примере работы из командной строки в программе «PowerShell» версии 7. Используемый дистрибутив «Git» называется «Git for Windows».

Читать далее
Total votes 14: ↑12 and ↓2+10
Comments10

Call Stack Logger — инструментирование функций как способ отслеживания потока выполнения программы

Reading time14 min
Views3.7K

Доводилось ли вам когда-нибудь работать над C++ проектом с такой огромной кодовой базой, что понимание того, что на самом деле происходит во время выполнения программы, требует кучи времени и сил? Откуда и какие функции вызываются? Вам когда-нибудь поручали исправить баг в таком проекте, прилагая лишь логи, которые приближают вас к нахождению первопричины проблемы так же, как Моисей к земле обетованной? А попытки воспроизведения бага не дают вам никакой полезной информации? Если ваш ответ да – пожалуйста, присаживайтесь поудобнее.

Читать далее
Total votes 13: ↑11 and ↓2+9
Comments3

Пишем бота-кликера на Kotlin для Lineage 2

Reading time8 min
Views16K

Еще не все новогодние салаты были съедены, “Ирония судьбы” уже просмотрена, а до начала рабочей недели еще целая вечность и нужно было придумать себе развлечение на оставшиеся праздники. Предвкушая ностальгию я открыл Lineage 2, одну из самых популярных MMORPG “нулевых” на СНГ пространстве. Однако, самому играть уже не хотелось и пришла идея автоматизировать это дело. За подробностями под кат!

Читать далее
Total votes 40: ↑38 and ↓2+36
Comments24

Размышление об Active Object в контексте Qt6. Часть 2

Reading time4 min
Views2.2K

Пришло время написать вторую часть статьи. На этот раз мы рассмотрим нечто, к чему вы скорее всего придёте, работая над многопоточным кодом с использованием Qt.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments2

С 31-го февраля в России полностью запретят VPN

Reading time11 min
Views145K

Как вам заголовок, а? Как вам такой подарочек на Рождество? 

Нет, это неправда, это шутка такая.

Не с 7-го января запретят. С другого числа запретят.

Добро пожаловать под кат, будем вместе учиться обходить блокировки VPN у наших коллег из дружественных стран - Китая, Ирана, Туркменистана и конечно же Северной Кореи.

AmneziaVPN снова на связи!

Читать далее
Total votes 492: ↑149 and ↓343-194
Comments198

Настраиваем окружение Qt6+QtC без VPN

Reading time3 min
Views38K

Как известно, с недавних пор сервера qt.io запрещают загрузку любых архивов с российских IP. Если первое время проверка шла только на получение метаинформации, теперь любая загрузка файла обрывается сервером.

Обычные советы, как это обойти, включают:

Используй платный безлимитный VPN;
Используй дистрибутив Linux и его бинарные сборки;
Собирай сам из исходинков.

Все это рабочие советы, но не очень дружелюбны к начинающим разработчикам, которые только hello world начинают собирать. Я расскажу, как можно быстро настроить окружение используя зеркала Yandex и github.

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

Раскрываем секреты загрузочных ISO-образов

Reading time20 min
Views82K


В этой статье я хочу поговорить об ISO-файлах, на которых, как известно, распространяются дистрибутивы операционных систем. Начиная писать статью, я немного сомневался в её актуальности, так как я ассоциировал ISO-образы с оптическими дисками, которые, ввиду ряда причин, уходят в прошлое. У меня было стойкое понимание, что ISO-файлы в основном нужны только для хранения образов оптических дисков, которые содержат установщик операционной системы. Но, как оказалось, всё гораздо сложнее и интереснее, особенно применительно к современному железу.
Читать дальше →
Total votes 193: ↑193 and ↓0+193
Comments73

Локализация Qt-приложений

Reading time9 min
Views7K

Привет, земляне, в этой статье я хочу затронуть вопрос интернационализации Qt-приложений, поделиться своим опытом, показать легкость работы с предоставленными инструментами и некоторые неочевидные моменты, которые могут возникнуть...

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments10

Как я сделал полноценный проект из ничего от одной Bitcoin платёжки на Python

Reading time7 min
Views9.5K

В этой статье хочу рассказать, как можно из обычных вещей сделать нечто большее и новое используя python, qt и bitcoin библиотеки.

Читать далее
Total votes 15: ↑11 and ↓4+7
Comments7

Гипотеза Эскобара

Reading time28 min
Views14K
Эскобар — великий математик, живший на Земле на прошлом витке общемирового времени.
На прошлом витке чего-о?


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

Комплексные числа были открыты без участия Эскобара, но это не значит, что мы должны отказываться от его наследия. Все знают, что 2+2=4, 2×2=4, 2^2=4. Только, при возведении в степень существует разница в порядке аргументов. Что если применить гипотезу Эскобара на нашем убеждении, что у порядка при возведении в степень может быть только два варианта? Ну а вдруг — больше?
Пишет тексты нам никто
Total votes 27: ↑21 and ↓6+15
Comments19

Эффективная защита RDP «на минималках» ч.2

Reading time3 min
Views31K

В поисках самого простого и бесплатного (или максимально дешевого) способа защиты RDP предлагаю добавить известный многим IPBAN от Jeff Johnson: https://github.com/jjxtra. Единственный замеченный минус - у меня, почему-то, не зависимо от того указываю я 3 попытки для блокировки или 5 - всё равно начинает блокировать где-то с пятой попытки (а может это проблема используемой мной версии - 1.8.0), хотя потом я решил, может это и к лучшему - если предположить что у нас до блокировки учетной записи даётся 3 попытки, то оставшиеся две вполне сгодятся для звонка системному администратору с просьбой сбросить пароль. В общем, для начала нужно скачать саму программу в соответствии с используемой у вас ОС:

https://github.com/DigitalRuby/IPBan/releases

Пока скачивается архив надо настроить локальную политику безопасности: щелкаем на значок поиска в панели задач так и вводим "локаль..." или "secpol.msc" (если нет значка поиска жмем WIN+R,вводим secpol.msc и жмем Enter), затем переходим во вкладку Локальная политика и Политика аудита. В локальных политиках включаем аудит входа в систему и аудит СОБЫТИЙ входа в систему, ставим галки как на скрине - Успех и Отказ для обеих политик и нажимаем ОК:

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments22

Топ полезных SQL-запросов для PostgreSQL

Reading time7 min
Views81K

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

Читать далее
Total votes 83: ↑81 and ↓2+79
Comments15

Генератор формы-подтверждения на освобождение от мобилизации

Reading time2 min
Views6.1K

Привет!

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

Читать далее
Total votes 27: ↑22 and ↓5+17
Comments21

Регистрация авто через госуслуги. Личный опыт

Reading time6 min
Views14K

Недавно приобрел авто, которому будет 4 года с момента покупки первым хозяином (я второй владелец). С первого раза оформить ТС не получилось из-за отсутствия полного комплекта документов.

В статье приведу полный список документов для оформления авто, а также алгоритм действий нового владельца в МРЭО ГИБДД. Надеюсь эта небольшая статья поможет заранее избежать трудностей, побережет нервы и время многих добрых людей.

Читать далее
Total votes 36: ↑7 and ↓29-22
Comments19
1
23 ...

Information

Rating
2,719-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity