Pull to refresh
3
0.5
Send message

Выявление ошибок в работе с памятью в C и C++: Сравниваем Sanitizers и Valgrind

Reading time24 min
Views4.9K

В этой статье вашему вниманию представлено сравнение двух инструментов для поиска ошибок в работе с памятью в программах, написанных на memory-unsafe (небезопасных при работе с памятью) языках — Sanitizers и Valgrind. Эти два инструмента работают совершенно по-разному. Поэтому, хоть Sanitizers (разработанный инженерами Google) имеет ряд преимуществ перед Valgrind, у каждого из них есть свои сильные и слабые стороны. Следует сразу отметить, что проект Sanitizers имеет название во множественном числе, потому что он состоит из нескольких инструментов, которые мы рассмотрим в этой статье в совокупности.

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

Proxmox 8. Настраиваем проброс видеокарты (GPU Passthrough). Выбор материнской платы на AM5 сокете

Level of difficultyEasy
Reading time23 min
Views9.3K


Уже прошел год как вышел Debian 12 Bookworm и, основанный на нем, Proxmox 8. Несмотря на тот факт, что мои предыдущие статьи по пробросу дискретной Видеокарты в виртуальную машину, в кол-ве 4-х на Хабре, частично все еще актуальны для последней версии Proxmox, в тематических чатах регулярно поступали обращения обновить статью, а так же выяснилось что, у тех кто пользуется такими инструкциями, есть определенное непонимание в нюансах, из-за чего приходится проходить вместе с ними всю цепочку действий заново.
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments15

Метод конечных элементов своими руками

Level of difficultyMedium
Reading time9 min
Views16K

Метод конечных элементов (МКЭ) применяют в задачах упругости, теплопередачи, гидродинамики — всюду, где нужно как-то дискретизировать и решить уравнения сплошной среды или поля. На Хабре было множество статей с красивыми картинками о том, в каких отраслях и с помощью каких программ этот метод приносит пользу. Однако мало кто пытался объяснить МКЭ от самых основ, с простенькой учебной реализацией, желательно без упоминания частных производных через каждое слово.

Мы напишем МКЭ для расчёта упругой двумерной пластины на прочность и жёсткость. Код займёт 1200 строк. Туда войдёт всё: интерактивный редактор, разбиение модели на треугольные элементы, вычисление напряжений и деформаций, визуализация результата. Ни одна часть алгоритма не спрячется от нас в недрах MATLAB или NumPy. Код будет ужасно неоптимальным, но максимально ясным.

Размышление над задачей и написание кода заняли у меня неделю. Будь у меня перед глазами такая статья, как эта, — справился бы быстрее. У меня её не было. Зато теперь она есть у вас.

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

Как рисовать мозаики типа «эйнштейн»

Level of difficultyMedium
Reading time39 min
Views2.4K

На немецком «эйнштейн» звучит как «один камень». Один - «ein», камень - «Stain». Всем известно, что под этой фамилией жил один замечательный человек, и звали его ... Но в статье речь не о нём. Речь о математической задаче по поиску одной плитки, такой чтобы составленная из неё мозаика была непериодической. «Один камень» - это про плитку. В мозаике Пенроуза таких плиток две, а хотелось бы возможности использовать только одну. Не вдаваясь в детали можно сказать, что задача одной плитки в этом году (2023) решена. Получены интересные красивые мозаики.

Сначала была найдена «шляпа эйнштейна» - плитка, похожая на шляпу. Или, по моему скромному мнению, на рубашку. Из неё можно сделать отличную непериодическую мозаику. Только, для построения используются как сами шляпы, так и их зеркальные отражения. Считать ли это одной плиткой? Можно и не считать.

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

Оказалось, такая мозаика, в которой есть одновременно и шляпы и черепахи, при обмене формой в момент, в котором длина граней становится одинаковой, составлена из плиток полностью одинаковой формы. То есть, существует ещё одна непериодическая мозаика, в которой плитка используется уже без своего зеркального отражения. Плитка, у которой грани модифицированы так, что она позволяет только непереодическое сложение названа «Spectre» (призрак). Задача решена, теперь уже точно.

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

Костыли для ddrescue. Что делать если SSD перестает отдавать данные

Level of difficultyEasy
Reading time11 min
Views11K

Первая версия GNU ddrescue была выпущена 12 августа 2004г 19 лет назад. Но не спешите проматывать статью. Это не очередной пересказ мануала или описание алгоритма работы, коих полно в сети. Сегодня я расскажу о ней кое что новенькое.

Если заинтриговал, то обо всем по порядку.
Total votes 22: ↑22 and ↓0+22
Comments37

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

Level of difficultyEasy
Reading time4 min
Views9.9K

Я сам родился и вырос в Казахстане, высшее получал уже в Томске, поэтому в Казахстане у меня друзья детства, да и сестра до сих пор живет в Караганде. Хотел купить машину, но в Томске не нашел, поэтому попросил друга детства поискать вариант в Казахстане. На днях он позвонил: немецкое авто за очень интересные деньги. Продавал его знакомый, машину мой друг знал с момента приобретения её в салоне. Вердикт - Надо брать!

Деньги человеку нужны были срочно, хотя бы 400 тысяч до вечера. Договорились по телефону: 400 тысяч аванс, а потом уже не торопясь приеду отдам остальную сумму, оформимся. Друг мой выступил гарантом.

Сумма не такая уж большая, первое что пришло в голову, это перевести со своей Сберовской карты на карту продавца в Казахстан. Не успел я ввести все цифры его карты от Каспи банка в «Переводах в другую страну», приложение Сбербанка ответило: «Переводы в страну Казахстан скоро будут доступны». Облом!

Читать далее
Total votes 29: ↑18 and ↓11+7
Comments18

«Синдром отката» против «Министерства будущего»: сравнение двух свежих технотриллеров от знаменитых фантастов

Reading time4 min
Views9K

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

Читать далее
Total votes 11: ↑10 and ↓1+9
Comments0

Неочевидные возможности короля картографического ПО на гаджетах

Reading time10 min
Views37K

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

🔥 Примечание — эта статья автора расположилась на первом месте по рейтингу/просмотрам в хабе OSM за последний 23г..

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

Shadowsocks-туннелирование корпоративного VPN

Level of difficultyEasy
Reading time8 min
Views40K

Если у вашей компании имеются серверы, работающие за границей, и доступ для внутренних пользователей вы предоставляете посредством VPN-протоколов (достаточно типовая схема, особенно после Covid — 2019, когда удалённая работа стала особенно популярной), то настало время действовать на опережение. Конечно, применение административного ресурса, возможно, защитит ваши интересы от тотальных проблем в будущем, но лучше подстраховаться, чем в один прекрасный день получить 100500 сообщений от систем мониторинга о недоступности опекаемых клиентов. Статья демонстрирует, как скрыть от противодействия со стороны систем глубокого анализа трафика сервисы компании, доступ к бизнес-процессам которых обеспечивается посредством VPN, используя для этого туннели shadowsocks.
Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments54

Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто

Level of difficultyEasy
Reading time11 min
Views333K

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

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

Кроме того, что этот протокол еще более устойчив к выявлению, приятным фактом будет и то, что настройка сервера XTLS-Reality гораздо проще, чем описанные ранее варианты - после предыдущих статей я получил довольно много комментариев типа "А что так сложно, нужен домен, нужны сертификаты, и куча всего" - теперь все будет гораздо проще.

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

Про Vim " Горячие клавиши

Reading time8 min
Views7.3K

Тема очень обширная, не сказать бесконечная, но я постараюсь затронуть только очень важные вещи, о которых говорится не так много в бесчисленных джентльменских минимумах по Vim. Хотя, конечно, придется время от времени возвращаться к теме дабы дать уточняющие указания или рекомендации. Да и не упомню я всего сразу. Память вообще штука интересная. Помнит ли человек как надо ходить? Раз кто-то забывает, то видимо помнит осознанно и не так уж что бы очень хорошо. Вроде как, через примерно пол года в постели или в космосе учиться ходить нужно заново.

В частности, видимо, с этим связано то, что во многих обучающих материалах так много говорится о повторяющихся вещах типа того как удобно использовать числовой префикс перед движением или командой, или о том как работают сокращения переходов по словам (w и b), по предложениям (( и )), по параграфам ({ и }), или о том как передвигаться по всему тексту при помощи <C-u> и <C-d> или <C-f> и <C-b>. И в то же время совсем мало говорится, например, почему-то о том как передвигаться в режиме вставки. Или, например, я совсем недавно открыл для себя замечательные f и F. Я смею предположить, что большинство тех, кто занимается составлением таких мануалов попросту перестают замечать какие-то движения, которые они сами используют уже на уровне рефлексов, а поэтому и не могут вспомнить когда составляют какие-то планы и даже когда непосредственно набирают текст.

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

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

Неочевидные способы оценки городов для переезда номада, часть вторая

Reading time3 min
Views13K

На правах переезжальщика с 10+ летним стажем, спешу продолжить делиться некоторыми наблюдениями!

Предыдущая часть понравилась хабровчанам.

Читать далее
Total votes 43: ↑36 and ↓7+29
Comments8

Пособие по программированию модулей ядра Linux. Ч.1

Reading time19 min
Views36K

Перед вами последняя версия пособия по программированию модулей ядра Linux, вышедшего 2 июля 2022 года. Пособие большое, поэтому материал будет разбит на серию статей. В первой части мы разберём, что такое модули ядра, рассмотрим необходимые подготовительные этапы для их создания и в завершении по традиции напишем первый простейший модуль «Hello world», попутно разобрав вопросы лицензирования, передачу аргументов командной строки и прочие нюансы. Это пособие вы можете смело воспроизводить и изменять в соответствии с условиями Open Software License v 3.0.
Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments4

Пишем наш первый модуль для ядра Linux

Reading time14 min
Views18K
image

Пожалуй, ядро Linux сегодня – это самый вездесущий (и по-прежнему недооцененный) программный код. На нем основаны все дистрибутивы Linux (что очевидно), но это далеко не все. Кроме того, на ядре Linux работает огромная масса встроенного ПО практически везде. У вас есть микроволновка? Вероятно, она работает на ядре Linux. Посудомоечная машина? Тоже. Вы состоятельный человек и приобрели автомобиль Tesla? Может быть, вы найдете в ней какие-то баги и исправите их, в таком случае, можете отправить патч им на Github, где лежит код для модели S и модели X. Электронная начинка МКС, благодаря которой станция не падает на Землю смертельно опасным и разрушительным огненным болидом — конечно же, тоже работает под Linux. Ядро легковесно. Наверное, именно поэтому оно так хорошо работает в условиях низкой гравитации.
Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments23

Как я оплачивал в интернете криптовалютой

Reading time7 min
Views66K

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

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

Читать далее
Total votes 204: ↑189 and ↓15+174
Comments121

Временная релокация в Турцию для российского айтишника — основные вопросы, подводные камни, лайфхаки (обновляемая)

Reading time35 min
Views24K

Сколько же статей на эту тему написано и вот опять!

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

Читать далее
Total votes 30: ↑22 and ↓8+14
Comments21

Коллоквиум по программированию микроконтроллеров

Level of difficultyHard
Reading time13 min
Views15K

Это список вопросов на которые должен уметь ответить тот кто хочет программировать микроконтроллеры и заниматься разработкой электроники. Вопросы в частности взяты из технических собеседований при устройстве на работу в разные компании. Постарался отобрать только самые приближенные к практике вопросы, которые можно выделить после 11 лет insider(ского) опыта.

Если вы знаете адекватные, сложные и интересные вопросы по теме разработки на MCU, то пишите их в комментариях.

Читать далее
Total votes 40: ↑18 and ↓22-4
Comments126

Мои вопросы работодателю, когда подаюсь на разработчика

Reading time9 min
Views86K

За последние 10 лет я поменял 3 работы, прособеседовался с 10+ компаний на позицию разработчика (software engineer) и вел переписку с HR/рекрутерами из нескольких десятков фирм. По ходу дела заметил, что вопросы, которые я задаю на собеседовании с менеджером/командой или с HR, повторяются, и решил их структурировать. Некоторые из них являются общими, и их может задать кандидат на почти любую вакансию; другие касаются только вакансий для программистов. В этой статье поделюсь с вами наиболее типичными и важными вопросами, которые, на мой взгляд, может задать соискатель потенциальному работодателю.

Читать далее
Total votes 90: ↑84 and ↓6+78
Comments70

STM32 Modular USB Composite device

Reading time27 min
Views13K

Проект является логическим продолжением другого проекта на Хабре - CDC+MSC USB Composite Device на STM32 HAL и рассказыват о том, как на STM32 создать проект с несколькими USB устройствами, с читаемой структурой и используя типовые модули. Конкретно в этом проекте рассмотрен пример комбинации HID + CDC UART + CDC, а также рассказано как этот проект возможно расширить другими интерфейсами.

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

Information

Rating
1,608-th
Registered
Activity