Привет, дорогие читатели! Хочу поделиться с вами историей, которая началась с обычного вечернего раздражения. Садишься вечером на диван, хочешь просто включить канал. Берёшь пульт. Тыкаешь в кнопку. Промахиваешься. Тыкаешь ещё раз. Фокус уехал куда-то вправо. Ты уже не понимаешь, где находишься. Канал тормозит, а ты не знаешь почему — то ли провайдер жадничает, то ли Wi-Fi помирает, то ли приставка не тянет. А чтобы скинуть плейлист с компьютера — надо бегать с флешкой, как в 2008-м. Знакомо? Вот и мне надоело...
Кодовые решения
Десять утилит терминала, которые экономят часы — htop, ripgrep, fzf и другие
«Я трачу кучу времени на рутину» — признайся, что ты это говорил хотя бы раз. А дело в том, что ты не знаешь пары утилит, которые сэкономят тебе кучу времени. Вот моё топ-10. ```bash htop ``` Вместо `top` — красивый интерфейс, который понимает твои глаза. Показывает процессы, нагрузку, память. И не нужно помнить кучу команд. ```bash rg 'function_name' src/ ``` Вместо `grep` — быстрее, умнее, игнорирует `.gitignore` по умолчанию. Ищет по содержанию файлов, а не по именам. ```bash fzf ``` Просто набираешь название файла — и он появляется...
Что происходит, когда жмёшь кнопку Скомпилировать: препроцессор, компилятор, линкер по шагам
«Жму Compile — и что происходит?» — вопрос, который я задавал себе каждый раз, пока не понял, что за этим стоит целая цепочка инструментов. Давай пройдёмся по шагам. Первый этап — препроцессор. Он делает вот что: ```bash g++ -E main.cpp > main.i ``` Он раскрывает макросы, подключает заголовки, убирает комментарии: ```cpp // Исходник #include <iostream> #define PRINT(x) std::cout << x // После препроцессора std::cout << ...; std::cout << ...; ``` Компилятор берет препроцессированный файл и делает из него ассемблерный код: ```bash g++ -S main...
Указатели в C++: почему программа падает с segfault и как это чинить — разыменование, нулевой указатель, типовые ошибки
Бывает такое: запустил программу — а она упала с segfault. И стоит себе молчит, будто ничего и не случилось. А ты сидишь, думаешь, что же там такого накодил. Расскажу на пальцах, как не допустить этого и что делать, если всё-таки допустил. Всё дело в указателях — самой мощной и самой опасной штуке в C++. Если ты работаешь с памятью вручную, ты рано или поздно придёшь к тому самому segfault. Давай разберёмся по полочкам. Segfault — это signal segmentation fault, сигнал от операционной системы. Проще говоря, твоя программа попыталась обратиться к памяти, которой ей не положено...
🦞 Мой личный «китайский лобстер»: честный обзор AutoClaw, который работает за меня 24/7
Привет, друзья! 👋 Давно я не писал в блог — всё руки не доходили, да и, честно говоря, не было повода залипать в мониторе с горящими глазами. Но на прошлой неделе случилось нечто, что заставило меня отложить все дела, забыть про сон и уйти с головой в изучение новой игрушки для мозга. Я, конечно, про AutoClaw (или как его ласково называют в народе — «китайский лобстер» 🦞, потому что разработала его компания из Поднебесной). Не поверите, но за последние полгода это первый ИИ-сервис, который реально, по-настоящему меня впечатлил...

