Обновить

Makefile для воробушков

Уровень сложностиПростой

Makefile — файл с инструкции для утилиты make.

Утилита make — инструмент автоматизации сборки, читает Makefile и выполняет команды для компиляции и линковки программ (расскажу дальше), а также для многих других задач автоматизации.

Читать далее

Автозаполнение форм в один клик: как я сделал AutoFill Helper и какие подводные камни встретил

Уровень сложностиПростой

AutoFill Helper: краткий разбор решения автозаполнения

Нужен был быстрый способ заполнять формы тестовыми данными по хоткею, без тяжёлого UI. Стандартное автозаполнение Google Chrome не работает по хоткею и не всегда определяется с кастомными id элементов форм. Итог — расширение, которое по правилам (привязка к домену/пути) подставляет значения в поля и корректно эмулирует ввод.

Читать далее

Устали от бесконечных тасков? Попробуйте решить самую сложную задачу — научить

Уровень сложностиПростой

Почему человеку из IT или Data Science стоит подумать о карьере учителя математики (хотя бы на полставки).

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

А теперь представьте, что вы можете передать это чувство. Не компьютеру, а живому человеку. Десятикласснику, который считает, что математика — это скучно и бесполезно. И увидеть в его глазах не просто понимание, а настоящую искру — «О, так вот как оно работает!».

Мы — обычная школа. И у нас не обычная проблема. Нам не хватает учителей математики. Классические объявления на HH.ru не работают. Педагогических вузов не хватает. Поэтому мы ищем умных людей с аналитическим складом ума, которые, возможно, никогда не думали о школе, но которые любят свою науку по-настоящему.

Мы не ищем готового педагога. Мы ищем вас — того, кто понимает суть.

Что мы предлагаем (без слащавых обещаний):

· Реальную задачу. Сложнее любого техзадания. Объяснить, увлечь, вдохновить. Это самый сложный и самый интересный проект в вашей жизни.

Читать далее

Как я устал от длинных PDF и сделал ассистента для документов

Уровень сложностиПростой

Привет! 👋

Я студент МГУ, и почти каждый день мне приходится работать с PDF-документами: учебники, научные статьи, отчёты.

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

В какой-то момент я понял, что это не мелкая неудобность, а настоящая проблема. Тогда я задал себе вопрос: а что если можно было бы просто спросить у PDF-документа, как у человека?

Читать далее

Импорт устройств в Netbox с помощью CSV, JSON, YAML

Уровень сложностиПростой

Работа с большим количеством серверов, сетевых и других устройств требует не только внимательности, но и эффективных инструментов для управления инфраструктурой. Одним из таких инструментов является NetBox, который упрощает инвентаризацию и автоматизацию задач. Однако ручной ввод информации может быть трудоёмким и подверженным ошибкам. В этой статье мы рассмотрим пошаговый процесс импорта устройств в NetBox с помощью файлов форматов CSV, JSON и YAML, что позволит ускорить работу и избежать типичных проблем при заполнении данных.

Читать далее

Пишу свой язык программирования в 13 лет. Показываю код и жду вашей критики

Уровень сложностиСредний

Привет, Хабр!

Меня зовут Grepleon, мне 13 лет, и я последние полтора года активно погружаюсь в программирование. Мне всегда было интересно, как работают языки программирования «под капотом», и я решил сделать свой — не просто калькулятор, а нечто с условиями, циклами, функциями и даже списками.

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

Читать далее

Патина кода: восстановление и документация ПО с магнитных лент и перфолент

Уровень сложностиСложный

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

Читать далее

SPIRE: Создание антивируса на Rust. Часть 1

Уровень сложностиСредний

Блог разработки моего проекта под названием SPIRE
Я разрабатываю Spire как надёжное решение для защиты от вредоносного ПО для операционных систем Linux и Windows предназначенное для защиты пользователей от известных угроз и вредоносных программ.

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

Проект SPIRE размещён в моём репозитории на GitHub.

Читать далее

Разбираю архив палеографа, вглубь культурного кода XVII века. Последнее дело отца. Церковнославянские технологии

Уровень сложностиПростой

Эта история о неочевидном, а местами, запутанном, последнем исследовании моего отца. Арсений Самохвалов был палеографом и жизнь посвятил изучению древних рукописей. Для меня его архив, с детства, был просто частью жизни и взросления. Коробки с бумагами, микрофильмы, неразборчивые черновики и рукописи в папках. Когда я наконец начал их разбирать перед моим выездом из России, то постепенно я убеждался, что между листов и бумажек уже идёт чуть ли не детективное расследование.

Отец ушел из жизни в 2003 году в потопе, и так его главная работа осталась незавершенной. Она касалась достаточно известной в определённый период времени поэмы «Лѣствица», которую приписывали Симеону Полоцкому как значительной фигуре XVII века. Полоцкий был настоящим инноватором вместо теоретической банальности и графомании. И богослов, и педагог царских детей, человеком, принесшим в Москву западную культуру барокко и способность вести полемику не мечом, но словом. Поэтому, осмыслить и найти оригинал его текста, что сейчас знают мало — было огромной удачей и профессиональным успехом А. Самохвалова.

Читать далее

Oxide Lab: приватный локальный AI-чат на вашем ПК без интернета и подписок

Уровень сложностиПростой

Привет, Хабр! В эпоху, когда AI вроде ChatGPT и Claude стали неотъемлемой частью жизни, многие из нас задумываются о приватности. А что, если ваш личный AI-ассистент работает полностью оффлайн, без отправки данных на чужие серверы? Сегодня я расскажу о своем пет-проекте — Oxide Lab. Это десктопное приложение для общения с AI-моделями локально, с акцентом на простоту, безопасность и контроль. Проект open-source под MIT. Давайте разберем, что это такое и почему стоит попробовать.

Читать далее

Чиним голосовую связь в Revolt (аналог Discord только у себя)

Уровень сложностиСредний

Мне предстоит выполнить сложную задачу — запустить собственный сервер Revolt с голосовой связью.

Автор Revolt создал self-hosted решение, но в нём отсутствует голосовой сервер. Из-за этого при обычном разворачивании Revolt голосовой чат не функционирует.

Мне пришлось разобраться как поднять и настроить голосовой сервер.

Починить голосовую связь...

Удаление конфиденциальных данных из истории Git: от теории к практике

Уровень сложностиПростой

Удаление конфиденциальных данных из истории Git

Привет, Хабр!

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

Читать далее

Job to be Done… and Done Again

Уровень сложностиСложный

По определению Job Story, совершенное человеком действие определено контекстом (созданным), мотивом (вызванным) и целью (достигнутой), представим это как цикл, когда контекст уже создан

Читать далее

Создание Selena.AI: модель, которая понимает код

Уровень сложностиПростой

Меня всегда манило неизведанное: каково это, вдохнуть жизнь в собственную модель искусственного интеллекта, способную понимать язык кода? И вот, этот момент настал. Я принял решение создать Selena.AI — персональную языковую модель, призванную стать надежным помощником в разработке игр, оперативно отвечая на вопросы по программированию и предоставляя экспертные рекомендации в области игрового кода.

Читать далее

Будет ли важна чистота кода в ближайшем будущем

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

Мне приходит на ум то, что в принципе мы подобный слом уже видели лет 15–20 назад. Для программиста старой школы сутью программирования, собственно, было постановка задачи, её реализация с помощью алгоритма и оптимизация этого алгоритма по скорости. Сам инструмент — язык, а уж тем более чистота кода — считалась вторичной. Задачей программиста было написание в принципе работающей программы.

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

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

Читать далее

Бойся своих желаний: почему крупная компания — не синоним надёжности

Уровень сложностиПростой

«У нас не очень приятные новости» — именно так начался разговор с рекрутером СБера за день до моего выхода на работу в компанию, которая годами была моей мечтой. Вот как крупнейший банк страны обходится с кандидатами и какие уроки я извлекла.

 Немного предистория

Всё началось с мечты. В начале карьерного пути я заглядывалась на огромные красивые офисы IT-гигантов, особенно СБера, и представляла, как буду там работать. Теперь я вспоминаю фразу: «Бойся своих желаний»...

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

И этот момент настал.

Ирония судьбы: приглашение на работу, которой нет

В связи с сокращениями (или «оптимизацией», как любят говорить компании), — но история не об этом, — мне пришлось выйти на рынок труда. Я искала работу 4 месяца отправила около 127 откликов. Вакансии иногда всплывали, но на удалёнку я не рассчитывала (учитывая около 500 откликов), поэтому искала гибрид, так как живу в городе-миллионнике, и шанс был.

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

Читать далее