Обновить
1272.64

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

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

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

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

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

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

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

Читать далее

Новости

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Поехали! 🚀

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

Hibernate Validator 9.1: самый мощный апгрейд за последние годы

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

Что, если ваш валидатор стал бы в 3 раза быстрее и потреблял бы вдвое меньше памяти — без единой правки бизнес-логики? Именно это случилось с Hibernate Validator 9.1: ушли тяжёлые коллекции, пришёл умный стек. Каскадная валидация теперь летает, даже при циклах в графе объектов.

Плюс бонус: меньше мусора в памяти, меньше аллокаций, быстрее интерполяция сообщений. В бенчмарках — просто космос. Все это – в новом переводе от команды Spring АйО.

Комментарий Поливаха Михаила: Несмотря на то, что с валидацией мы напрямую работаем не часто, имейте в виду, что Spring Boot и ваши @RestController-ы под капотом всё равно используют hibernate-validator. Поэтому почитайте, не поленитесь.

Читать далее

ECS with Sectors (ECSS) — структура памяти в моей ECS

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

Всем привет! Это продолжение статьи про мою ECS в моём движке Stellar Forge, и сегодня я хочу поднять тему архитектуры и немного более подробно раскрыть data oriented design в контексте ECS.
Первую часть можно найти здесь - https://habr.com/ru/articles/972708/ .

Итак, ECSS - Entity Component System with Sectors. В прошлой статье я описал что такое ECS и как его можно приготовить, а сегодня я расскажу вам в чем особенность моей ECS, что такое Sector, как эти секторы хранятся в памяти и что делает мою ECS такой быстрой.

Ранее я показывал эволюционное появление ECS, сейчас не буду отказывать себе в удовольствии продолжить в том же духе. Надеюсь, это поможет читателю пройти весь путь вместе со мной.

Читать далее

ГенИИальный помощник ИТ-аналитика: как ИИ влияет на профессию и что с этим делать

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

Профессия ИТ-аналитика в последние годы быстро трансформируется под влиянием бурного развития генеративного ИИ. Эксперт Axenix Игорь Кайбанов рассказывает, какие задачи теперь должен уметь решать специалист по данным, на какие ключевые тренды в развитии моделей ему важно обратить внимание и какие возможности ГенИИ стоит применять в своей работе.

Эволюция профессии

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

CEO Shopify Тоби Лютке недавно предложил термин context engineer на замену понятия prompt engineer — и это оправдано. От постановки задачи и способов ее исполнения мы перешли к необходимости ограничивать и задавать контекст решения. В этом помогают как экспертные промты и ИИ-агенты, так подключение к системе специализированного массива данных.

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

Ключевой задачей аналитика становится гибридная экспертиза, то есть синтез ИТ-знаний плюс понимание возможностей/рисков ИИ (особенно в security-sensitive отраслях). На этом уровне аналитик становится «проводником» между данными и стратегией, где ГенИИ — не замена, а мультипликатор эффективности.

Читать далее

Vulristics: как я создал инструмент анализа уязвимостей и теперь использую его практически ежедневно

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

Хабр, привет! Меня зовут Александр Леонов. Я ведущий эксперт PT Expert Security Center и среди прочего отвечаю в компании за ежемесячные подборки наиболее критичных (трендовых) уязвимостей, обзоры которых мы каждый месяц публикуем на Хабре.

С 2020 года я развиваю проект Vulristics. Изначально это был мой личный инструмент для анализа уязвимостей из ежемесячных обновлений Microsoft Patch Tuesday. Но постепенно я расширял его функциональность. Теперь утилите можно подавать на вход любой набор идентификаторов CVE и БДУ.

Главная задача Vulristics — оценивать и приоритизировать уязвимости. Для этого утилита анализирует несколько ключевых факторов: наличие признаков публичной эксплуатации, наличие публичного эксплойта, тип уязвимости, популярность ПО, а также оценки CVSS (Common Vulnerability Scoring System) и EPSS (Exploit Prediction Scoring System).

Под катом — история создания Vulristics и рассказ о том, как этот инструмент экономит часы ручной работы, помогая аналитику не утонуть в потоке уязвимостей.

Читать далее

Методы массивов. Часть 1

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

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

Привет, Хабр! Меня зовут Александр Дудукало, я автор базового курса по JavaScript. Сегодня мы поговорим о методах массивов. Если коротко, вы узнаете, как легко и элегантно работать со списками данных, не используя громоздкие циклы. Детали внутри.

Читать далее

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