Обновить
1293.79

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

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

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

I'm on the stairs to hell

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

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

Читать далее

Новости

Правда ли, что ICPC работает как социальный лифт в IT-карьере

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

Привет, Хабр! Я давно отучился в школе и институте, но хорошо помню, как мне говорили: «Учи! Тебе это пригодится! Без этого никуда! Это очень важно…» и почти никогда не объясняли, зачем учить, когда это пригодится и для чего.

Поэтому, когда мне поставили задачу написать про полуфинал Международной студенческой олимпиады по программированию (ICPC) для региона «Северная Евразия», я решил не пересказывать данные из Википедии. Вы и сами можете их прочитать, а кто-то даже рассказать о собственном опыте участия. Я спросил коллег внутри X5 Tech, как навыки, полученные на соревнованиях по программированию помогли им в реальной жизни: на собеседованиях, в продакшене, в решении сложных системных задач или даже в бытовых ситуациях. Про то, что спортивное программирование развивает алгоритмическое мышление, стрессоустойчивость и умение работать в команде в ограниченное время, пишут много, но теория не всегда переносится на практику.

Так как же обстоят дела на самом деле? Какие алгоритмические привычки пятичасовых контестов переходят в инженерную практику? И помогают ли навыки с олимпиад, когда сталкиваешься с реальным сервисом, данными и нагрузками, а не с абстрактными задачами?

Читать далее

Дети, запомните: если дядя из туториала предлагает вам начать проект на Express.js… Рейтинг opensource для фронтенда

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

Всем привет! Меня зовут Алексей Золотых, я тимлид команды веб-редакторов в МойОфис. Недавно мы запустили новое шоу АйТир Лист. В каждом выпуске мы берём одну тему из мира разработки и раскладываем всё по тир-листу: от FAIL до GOD.

В пилотном выпуске мы с коллегой — Александром Коротаевым, фронтенд-гуру и энтузиастом креативного кодинга, прошлись по популярным опенсорс-инструментам для фронтенда: от тех, которые пора отпускать, до тех, что стали эталоном. Эта статья — расширенная версия выпуска. Под катом рассказываем, что у нас попало в FAIL, кто выжил на уровне MVP, кого мы поставили в SENIOR и кто, по нашему мнению, заслужил звание GOD.

Дисклеймер: мы с большим уважением относимся ко всем упомянутым проектам. Многие из них помогли индустрии вырасти. Но сегодня мы смотрим на них через призму вопроса: что бы мы посоветовали новичку или команде в 2025 году.

Читать далее

Логирование с Serilog: как повысить отказоустойчивость и скорость

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

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

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

Читать далее

Storybook: как ускорить и упростить работу фронтенд-разработчика

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

Привет! Меня зовут Даниил Пацкин. Уже около семи лет я занимаюсь фронтенд-разработкой, из которых два года — в QIC digital hub, руковожу командой, отвечающей за фронтенд продуктовой части и дизайн-системы.

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

Читать далее

Программу для просмотра любого файла из букв

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

Добро пожаловать в SplView - программу для просмотра любого файла так, как если бы он состоял из букв (хотя на самом деле любой файл состоит только из чисел).
SplView каждое число в файле понимает как порядковый номер буквы в алфавите и изображает на экране вместо числа - букву, стоящую в алфавите под этим номером.
Получившийся из букв текст можно пролистывать колесиком мыши, стрелочными клавишами, клавишами Page Up, Page Down, Home и End.
Выйти из программы можно правой кнопкой мыши или клавишей Esc.
Выбрать файл для просмотра можно левой кнопкой мыши или клавишей F3.
Примечание 1: алфавит используется вот этот, в нём ровно 256 букв.
Примечание 2: этот алфавит можно сменить на другой (а потом обратно) с помощью клавиши F8.

Вот такой файл. Я сделал еще ДО инсульта!
Конечно это asm! "Программы для Windows я пишу на языке Flat Assembler. Выбор именно этой среды разработки совсем необычен, но так уж сложилось."
Наиболее интересное вот это:

Читать далее

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

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

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

Мне изначально хотелось написать о том, насколько это идеальный пример использования рекурсии, по сравнению с примером вычисления факториала, который фактически, с любой точки зрения, является вырожденным случаем. Но меня снова затянуло в дебри решения задачи. У меня вроде даже получилось запутать ИИ, а потом позволить ему реабилитироваться, а потом еще и заставить ИИ программу проверочную написать которая правильно работает. Мы разберем некоторые вопросы оптимизации программы перебора вариантов. Мы сможем сравнить "человеческий" вариант программы со сгенирированным ИИ вариантом хоть и для более простого случая.

Еще хочу рассказать что получилось выяснить все с той же тривиальной перестановкой строк. Начать хочу с того что посмотреть на табличку 256×256 все таки можно.

Читать далее

Как прикрутить AI к табуретке

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

Последние несколько месяцев я занимаюсь продуктом, который работает почти полностью за счет ИИ — около 90% функционала. Еще пару лет назад для создания похожего по возможностям продукта понадобилась бы целая команда бэкенд-разработчиков. Сейчас же мой бэкенд — это просто набор промптов к LLM.

Не спешите закидывать помидорами. Это новый тип AI-based продуктов, которых будет становиться все больше. И для некоторых задач такой подход действительно отлично подходит.

В этой статье попробуем разобрать архитектуру такого продукта на минималках и посмотреть, как прикрутить AI к существующему приложению.

Читать далее

JSDA — это очень просто

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

Идея вот в чем: берем стандартные JavaScript модули (ESM) и делаем их прямыми эндпоинтами для генерации любых текстовых веб-ассетов, таких как HTML-файлы, CSS, SVG или даже JSON или Markdown, используя простое соглашение о именовании исходных файлов и дефолтный экспорт результата в виде строки (JavaScript Template Literal). Проще некуда и чем-то похоже на PHP, верно? Но, что это нам дает?

Давайте разберемся, почему JSDA (JavaScript Distributed Assets) - это то, что может сделать веб-разработку "грейт эгейн", после тысячи поворотов "не туда".

Читать далее

ИИ агент на n8n: создаём Telegram бота с доступом к своим данным без иностранной карты за 30 минут

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

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

Как итог - разработка прототипа затягивались. Идеи опережали возможности, а мысль о том, что надо снова пилить фичу, тестировать ее, и паралельно еще править кучу багов (при этом без какой-либо гарантии, что продукт когда-либо принесет деньги), отбивало желание возвращаться к нему вовсе.

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

Поехали! 🚀

Vanilla CSS — единственное, что вам нужно

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

Команда JavaScript for Devs подготовила перевод статьи о том, как 37signals создают современные веб-приложения без Tailwind, Sass и сборщиков. Опираясь только на возможности нативного CSS, они строят масштабируемую архитектуру, используют :has(), color-mix(), CSS Layers, container queries и другие возможности, которые многие разработчики ещё даже не пробовали.

Читать далее

Анализ утечек ресурсов в Go: реальные кейсы и их решение

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

Команда Go for Devs подготовила перевод статьи о том, как GoLand помогает разработчикам вовремя находить и устранять утечки ресурсов. Файлы, соединения, HTTP-ответы, SQL-строки — всё это может незаметно накапливаться и ломать сервис под нагрузкой. В статье на реальных примерах показано, как одна пропущенная Close() приводит к сбоям, и почему встроенный анализ утечек становится незаменимым инструментом для стабильного продакшена.

Читать далее

Django 6.0: эволюция фреймворка в деталях

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

Команда Python for Devs подготовила перевод обзора обновлений Django 6.0. В свежем релизе фреймворк усиливает совместимость между СУБД, упрощает работу с email, улучшает ORM, добавляет удобства в шаблонах и снижает риск «выгорания» первичных ключей.

Читать далее

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

Как мы научились строить деревья блокировок PostgreSQL в фоне и без влияния на производительность

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

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

Чтобы понять цепочку блокировок, обычно строят их дерево рекурсивными запросами. Но частое выполнение таких запросов может существенно замедлить работу СУБД. В худшем случае можно усугубить проблему, которую мы пытаемся диагностировать.

Меня зовут Александра Кузнецова, я бэкенд-разработчик в СберТехе, в команде Platform V Kintsugi — это графический инструмент для сопровождения, разработки и диагностики СУБД на основе PostgreSQL. Расскажу о том, как мы с коллегами интегрировали сбор данных о блокировках в наш мониторинг сессий. Решение работает в фоне и не нагружает БД. И дерево блокировок можно построить для любого момента в прошлом, даже через несколько дней после инцидента. Начнём.

Читать далее

Моя любимая маленькая хеш-таблица

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

Я из тех, кто всерьёз задумывается о проектировании и реализации хеш-таблиц. Недавно обнаружился донельзя милый вариант, который заслуживает широкой огласки. Это робин-гудовская открытая адресация с применением линейного зондирования, где размер самой таблицы увеличивается как степень двойки. Если вы не знакомы с терминологией хеш-таблиц, то все эти слова могут показаться вам каким-то невразумительным салатиком, но, когда мы разберём этот пример с привлечением кода — всё должно стать понятнее.   

Чтобы не пришлось усложнять код, начнём со следующих допущений:

Читать далее

OpenIDE Pro: ответ на запросы бизнеса и разработчиков одновременно

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

Привет! Я Фёдор, CEO OpenIDE. За год с момента анонса OpenIDE выросла в стабильную, привычную и активно используемую IDE, которую всё чаще выбирают разработчики и компании. Мы создали её быстрой, предсказуемой и полностью доступной — и теперь готовы к следующему шагу.

В этой статье — что мы сделали, зачем мы это делаем и куда дальше движется OpenIDE.

Читать далее

Feature Flags на фронтенде: как управлять фичами без боли и рисков

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

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

Привет, Хабр! Меня зовут Михаил Олейник, я разработчик IBS. В этой статье — практический разбор, как устроены фича-флаги, где их хранить, как получать их состояние на фронтенде и что учитывать в реальных проектах. Если вы искали краткий и понятный гайд по теме, это он.

Читать далее

Формат файлов, который не удаётся взломать уже 20 лет

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

Splinter Cell (2002) была одной из первых игр, купленных мной для Xbox, и она по-прежнему остаётся одной из самых любимых моих игр. Эта игра была разработана Ubisoft на движке Unreal Engine 2, лицензированном у небольшой инди-студии Epic Games, которая и сегодня продолжает использовать и лицензировать этот движок в современных малобюджетных инди-играх наподобие Fortnite и Halo: Campaign Evolved.

Я начал заниматься программированием/хакингом благодаря видеоиграм, и до сих пор получаю удовольствие от дата-майнинга/исследования контента, вырезанного из тех немногих игр, в которые играю сегодня. Недавно я решил поискать онлайн вырезанный контент Splinter Cell, и был удивлён отсутствием раскопанной информации. За исключением прототипа игры для Xbox, в котором содержались два уровня, вырезанные из розничной версии для Xbox и некоторые другие мелкие отличия, информации об игре практически нет.

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

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

Читать далее

Больше никаких велосипедов: готовый Spring Boot Starter для Telegram-ботов

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

После создания примерно десятка Telegram-ботов я понял, что архитектура, конфигурации и маршрутизация повторяются из проекта в проект. Готовых актуальных решений для Spring Boot я не нашёл. Поэтому разработал собственный Telegram Bot Spring Boot Starter: с прозрачным пайплайном, набором готовых компонентов и возможностью гибкой кастомизации.

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

Читать далее

Главная проблема использования ИИ (Иллюзии Интеллекта) при разработке ПО

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

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

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

Читать далее

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