Обновить
1266.4

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Создание легкого shell на си

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.9K

Многие начинающие разработчики которые начинаю писать на языке C сталкиваются с проблемой : Какой 1 пет-проект написать на C ? И вопрос то логичный ведь проекты на C никогда не славились легкостью по сравнению с проектами на python или JavaScript . И как по мне отличная идей написать shell ведь там не надо знать ассемблер или иметь глубокие знание в работе OC , и он относительно легок в понимании .

В этой статье мы с вами подробно разберем написание shell на языке C , как он устроен ,в чем отличия bash shell и cmd. И напишем свой shell на 450 строк кода

Начнем пожалуй с самыx базовых вопросах .

Читать далее

[Обзор книги] System Design. Подготовка к сложному интервью [Часть 1 & Часть 2]

Время на прочтение4 мин
Охват и читатели10K

Всем привет, этот пост посвящен двум популярным книгам по подготовке к собеседованию по системному проектированию. Я купил и прочитал обе, поэтому могу дать обзор и подготовить резюме для тех, кто заинтересован. Хотя я рекомендую прочитать обе книги. (Запомнить все из них — задача сверхчеловеческая, но достаточно будет, если вы уловите такие концепции, как «Приблизительные оценки» или «Конкурентность»).

Читать далее

Фантастические трюки на языке C

Время на прочтение10 мин
Охват и читатели14K

Доброго времени суток, господа и дамы! Иногда у некоторых людей возникает желание заняться откровенным непотребством в программировании — то, что не несет практической пользы напрямую, но помогает развлечься. И я — не исключение. В этой статье я хочу рассказать вам о лайфхаках, трюках (магических и не очень), алгоритмах на языке C!

Идея написать эту статью зародилась из моего поста, после него я начал серию статей, которая раскрывала много интересных моментов — от математических алгоритмов и оптимизации до ГПСЧ.

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

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

Всех, кто заинтересовался — прошу под кат.

Читать далее

Формат данных на C++, который не боится рефакторинга

Время на прочтение8 мин
Охват и читатели9.3K

Не про редактор и не про алгоритмы. Про то, как формат сохранения переживает переписывание логики, рост требований и годы разработки.

Есть миф, что рефакторинг ломает обратную совместимость. Я 5 раз переписывал редактор графов и не сломал ни одного файла. Рассказываю, как это возможно.

Почему данные переживают иерархии кода

Путевые заметки о знакомстве со Spring Data R2DBC

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5.5K

Привет, Хабр! Меня зовут Каненков Александр, я backend-разработчик в Домклик. Не так давно я резко и с головой погрузился в мир реактивного программирования и очень заинтересовался этой темой. Хочу поделиться кратким введением в Spring Data R2DBC, зачем это нужно, как начать использовать и какие преимущества даёт. Мы разработаем небольшое приложение, добавим flyway и напишем пару тестов.

Читать далее

Пожалуйста, реализуйте этот простой SLO

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.8K

Приветствую, Новенький! Рад, что вы завершили онбординг в нашей корпорации ACME. У меня для вас есть первый тикет. Это простая задача, всего два сторипоинта, но она позволит вам немного научиться тому, как взаимодействуют наши сервисы. Просто реализуйте SLO доступности нашего сервиса Foo. Вы ведь знаете, как реализуются SLO?

Думаю, нам стоит стремиться к четырём девяткам. Я уверен, что вы в курсе всех best practices нашей отрасли, поэтому не буду надоедать вам советами. Если нужно, внизу есть бумажная Google SRE Book. Мне кажется, это быстрая задача; сможете представить свой SLO к пятничному демо?

Читать далее

Вы больше не новичок в Git. Повышаем квалификацию с помощью 7 команд

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели23K

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

Читать далее

Поддержка LSP в Claude Code: возможности, настройка и текущие проблемы

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.3K

Команда AI for Devs подготовила перевод статьи о поддержке LSP в Claude Code. Начиная с версии 2.0.74 агент получил доступ к семантике кода: переходы к определениям, поиск ссылок и иерархия вызовов. Это заметно ускоряет работу с большими кодовыми базами, но на практике функциональность пока сыровата и требует обходных решений. Разбираемся, как включить LSP, какие языки поддерживаются и с какими ограничениями придётся столкнуться.

Читать далее

Reinforcement Learning: Policy gradient methods

Время на прочтение9 мин
Охват и читатели7.9K

В предыдущих статьях Intro Reinforcement Learning и Reinforcement Learning: Model-free & Deep RL были рассмотрены подходы, в которых оптимальные действия находились косвенно через оценку полезности состояний или пар «состояние–действие». Такие методы принято называть value-based. Однако возникает вопрос: зачем строить сложные цепочки через value-функции, если можно напрямую обучать агента выбирать правильные действия? Такой policy-based подход интуитивно кажется проще и естественнее.

Здесь о том, как это делается (ノ◕ヮ◕)ノ

Читать далее

Матрицы и векторы: решение систем линейных алгебраических уравнений

Время на прочтение9 мин
Охват и читатели9.9K

В статье представлена реализация методов решения системы линейных алгебраических уравнений (СЛАУ) четырьмя методами: методом Гаусса, LU декомпозиции, компактной схемой исключения, QR декомпозиции. Для реализации был использован шаблон классов матрицы и вектора. Приводятся результаты решения СЛАУ, погрешность решения и время решения СЛАУ. Для сравнения результаты представлены в таблице.

Читать далее

Хуки свойств в PHP: геттеры и сеттеры не нужны

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели10K

В версии 8.4 наконец‑то появилась одна из тех фич, о которых давно мечтали многие, — хуки свойств. Что это такое? По сути, это встроенные механизмы get/set для свойств объектов, которые позволяют добавить свою логику при чтении или записи значения прямо внутри определения свойства. Никаких больше громоздких геттеров и сеттеров, никаких загадочных get и set, теперь всё можно сделать красиво и понятно на уровне самих свойств.

Читать далее

Как ускорить MongoDB в Java: profiling, explain(), индексация и антипаттерны

Уровень сложностиПростой
Время на прочтение32 мин
Охват и читатели7.4K

Команда Spring АйО подготовила материал о том, почему «быстрый запрос в MongoDB» — это не магия, а дисциплина: индексы, форма запроса, проекции, explain(), профайлер и наблюдаемость в Java/Spring Boot. Разбираем, как отличать IXSCAN от COLLSCAN, где чаще всего прячутся антипаттерны (skip-пагинация, тяжёлые $regex/$nin, findAll), и как выстроить измеримый цикл оптимизаций от Atlas/Compass до Micrometer.

Читать далее

Как писать нативные игры с OpenGL ES для игровой ретро-консоли Anbernic на C#

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели10K

В этой статье я расскажу, как писать игры для консоли Anbernic средствами OpenGL ES на C# .NET8. Для примера напишу примитивный клон Майнкрафта.

Рендерить

Ближайшие события

Больше 1 млн запросов в секунду на Go: уроки продакшена

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели14K

Команда Go for Devs подготовила перевод статьи о том, как построить Heavy-Read API на Go, способный обрабатывать более 1 млн запросов в секунду. Автор делится продакшен-архитектурой распределённого In-Memory Cache, показывает, как убрать БД и Redis из критического пути чтения, и объясняет, за счёт каких оптимизаций удаётся добиться субмиллисекундных задержек. Практика, цифры и реальные уроки из продакшена.

Читать далее

Хроники тестирования Data Quality

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели7.9K

В современных data-процессах ключевую роль играет обеспечение качества данных. Рассмотрим четыре популярных подхода: DBT, SQL, Python (Pandas/SQLAlchemy) и Great Expectations, оценив их эффективность для различных сценариев проверки данных. 

Эта статья будет интересна и полезна Data-инженерам, аналитикам данных и специалистам Data Quality для выбора оптимального метода валидации данных в зависимости от стека технологий и сложности бизнес-логики. Материал ориентирован на начинающий уровень подготовки: тем, кто еще не сталкивался системно с инструментами управления качеством данных.

Привет, Хабр! Меня зовут Мария, я Data-инженер в SimbirSoft, и предлагаю для начала немного познакомиться с каждым из вышеперечисленных инструментов.

Читать далее ⚡

Spring Boot — жажда скорости. CDS и разгон на старте

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели8.2K

Данная статья посвящена практическому изучению механизмов Class Data Sharing и AppCDS. В ней рассматривается, какие именно компоненты ускоряются CDS в HotSpot JVM, почему для Spring‑приложений зачастую оказывается недостаточно использования «CDS по умолчанию», а также каким образом можно собрать .jsa‑архив для приложения — как в локальной среде, так и при работе с Docker.

Отдельное внимание уделено теоретическим аспектам JIT‑компиляции и tiered compilation, а также практической части с измерениями времени запуска. В качестве дополнения рассматривается влияние использования Spring AOT, а также переход на Java 25 и применение Spring AOT Cache.

Читать далее

CSS Grid Lanes: будущее masonry-раскладок в вебе

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели8.1K

Команда JavaScript for Devs подготовила перевод статьи о CSS Grid Lanes — новом подходе к masonry-раскладкам, который наконец-то становится нативной частью CSS. Grid Lanes используют всю мощь CSS Grid, работают без JavaScript, учитывают доступность и дают дизайнерам и разработчикам гибкость, о которой раньше можно было только мечтать. Разбираемся, как это работает и почему это важный шаг вперёд для веба.

Читать далее

Охота за недостающим типом данных: история о графах

Время на прочтение12 мин
Охват и читатели9.5K

(Ориентированный) граф — это набор узлов, соединённых стрелками (рёбрами). В узлах и рёбрах могут содержаться данные. Вот примеры графов:

Читать далее

Manim: как создавать математические анимации в стиле 3Blue1Brown с помощью Python

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели13K

Команда Python for Devs подготовила перевод статьи о Manim — Python-инструменте для создания наглядных математических анимаций в стиле 3Blue1Brown. Разбираемся, как с помощью кода визуализировать уравнения, графики и абстрактные идеи так, чтобы они были понятны коллегам, менеджерам и студентам.

Читать далее

Всё, что нужно знать про аллокаторы в Rust (и как написать свой)

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели10K

Мне в Rust всегда заходила одна штука. Он довольно быстро приучает не держать в голове мусор из серии «а я точно это освободил??». Большая часть рутины с памятью уезжает в автоматизм языка, и ты можно прям выдохнуть и думать про данные и инварианты, а не про то, где у тебя очередной free потерялся.

Но. Как только начинаешь копать чуть глубже, выясняется, что у Rust есть вполне конкретная рука, которая раздаёт память под все эти Box::new(42), Vec::push и растущие String. Имя этой руке простое: аллокатор. Он отвечает за то, что происходит в куче, и именно через него проходят почти все интересные истории про производительность и поведение памяти.

Читать далее

Вклад авторов