Обновить
512K+

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

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

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

Строим стены в SCAD++ в турбо режиме

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

В этой статье мы немного оживим SCAD++ и немного сэкономим времени на чай :-) Конструктора, проектировщики милости просим.

Читать далее

Новости

Жил‑был «Кенгурёнок»

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

Учебный графический исполнитель (ГРИС) — это компьютерная модель, имитирующая работу чертёжного узла в режимах непосредственного и программного управления. ГРИС используют при изучении основ алгоритмизации для демонстрации принципов структурного программирования. Существует множество различных реализаций ГРИС, которые отличаются целевыми компьютерными платформами, наборами команд и возможностями исполнителей. Ярким и запоминающимся примером может служить среда ГРИС «Кенгурёнок», созданная в начале 1990-х годов авторским коллективом из Свердловска.

Читать далее

Утро без телефона: зачем я поставил рядом с кроватью матричный принтер

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

Я собрал будильник, который каждое утро печатает мне чек. Рядом с кроватью стоит матричный Star SP700, а за ним — старый Mac mini, сервер, несколько небольших сервисов и приложение для установки времени подъёма.

В назначенный момент принтер с характерным треском выдаёт первый чек и заодно будит меня. Немного позже появляется второй — уже с финальными данными о сне и восстановлении с фитнес-браслета.

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

Читать далее

Кулак вместо хоткея: делаю управление macOS жестами и разбираюсь, куда уходит память

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

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

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

Читать далее

Aquilum — быстрый аналог Obsidian на Rust, который потребляет около 27 МБ ОЗУ

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

Aquilum — быстрый local-first заметочник на Rust для Windows с потреблением около 27 МБ ОЗУ и установщиком размером 11 МБ. В нём есть граф знаний, обратные ссылки, live preview Markdown, несколько баз знаний, расширенные таблицы, книги и читалка, Dataview-подобный анализ данных, быстрый поиск, история изменений и интеграция с MCP-агентами. Подробный обзор функций и архитектуры — в статье.

Узнать больше

ERP: купить, выстрадать или навайбкодить?

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

ИИ хорошо справляется с такими задачами как добавить колонку в печатную форму ERP или параметр в отчет. И возникает резонный вопрос «а зачем покупать чужой софт, если я могу навайбкодить свой?». Если и вы уже вкусили сладкий плод вайбкодинга, прочитайте мой разбор этой идеи с некоторыми граблями из 15 лет опыта.

Читать далее

Отключение мозга ничего хорошего не сулит

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

Ещё в начале 2025 года я начал замечать, как люди при использовании ИИ переводят мозг в пассивный режим.1 Они просят ИИ выполнить какую-то задачу (обобщить текст, написать код и т.д.), принимая результат за чистую монету.2 В то время такой подход работал очень плохо, и результаты зачастую оказывались несуразными.

Но искусственный интеллект развивался, и я стал замечать такое поведение всё чаще. Иногда люди просто просят ИИ написать им код, который безоговорочно принимают как рабочий.3 В других случаях в цикле присутствует человек, который контролирует результат и в случае проблем с кодом просит ИИ устранить проблему. Никлас Грюн даже придумал таким людям название — кожаный передатчик (meat proxy).4

Читать далее

Программа поиска по PDF. Разбираем PageIndex, Streamlit и ссылки на страницы

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

«Срок гарантии — 18 месяцев». Красивый ответ. А если в договоре написано 12? Или число 18 стоит в разделе о хранении, а модель просто зацепилась за него?

В чате такие ошибки прячутся за гладкой фразой. Я хотел иной маршрут: задать вопрос к PDF, получить ответ и одним нажатием открыть физическую страницу исходного файла, на которую ссылается модель. Так появился PDF Desk — небольшое приложение на Python, Streamlit, PageIndex и PDFium. Один активный документ. Никакой базы пользователей. Индекс и исходный PDF остаются на компьютере; при использовании внешней модели текст документа всё равно уходит её провайдеру.

Дальше — где проходит граница между SDK и приложением. Почему голый /models не годится для проверки подключения. Из чего собран идентификатор индекса. И почему ссылка на существующую страницу ещё не значит, что ответ доказан. В конце живой прогон DeepSeek, включая браузер, и сценарии, для которых этого прогона мало.

Читать далее

N‑tier, Clean Architecture и Vertical Slice: практическое сравнение для.NET

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

Как каждая из них организует код, где они пересекаются и что учитывать при выборе.

Большинство .NET-разработчиков знакомятся с этими тремя архитектурами в одном и том же порядке: N-tier — в первых проектах, Clean Architecture — когда её приносит команда или шаблон, и Vertical Slice — когда о ней упоминают на код-ревью или в докладе на конференции. Каждую из них подают как улучшение предыдущей. На практике они отвечают на несколько разные вопросы, и правильный выбор зависит скорее от проекта, чем от того, какая из них новее.

Читать далее

Flutter на клиенте, Fletch на сервере: бэкенд на знакомом Dart

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

Вы пишете приложение на Flutter. Модели уже описаны, бизнес-правила продуманы. Осталась небольшая деталь: сервер, который будет принимать запросы и работать с данными.

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

Dart позволяет написать обе стороны приложения. А Fletch предлагает довольно понятный способ сделать серверную: знакомые по Express маршруты, middleware, обработчики запросов и немного инфраструктуры, которую не хочется каждый раз собирать вручную.

Разберёмся, как это выглядит в коде, откуда берётся скорость и какие мелочи стоит заметить до первого деплоя.

Читать далее

Как я создал СуперЗавуч — программу для генерации расписаний занятий

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

Привет, Хабр! Я бы хотел рассказать о том, как я создал программу для составления расписаний для учебных заведений - СуперЗавуч.

СуперЗавуч - современная программа для составления расписаний уроков для школ, лицеев и колледжей. Программа позволяет создать расписание за несколько минут и имеет много параметров для конфигураций.

Читать далее

Typing в Python 3.11–3.14: что изменилось и как это использовать уже сейчас

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

За последнее время я прочитал множество репозиториев, где в Pyhton пользуются типизацией и почти везде синтаксис не новее 3.11: Optional, TypeVar на уровне модуля, Generic[T], кавычки вокруг опережающих ссылок. При этом у Python 3.10 поддержка закончилась, и разработчики языка дали нам новых удобных инструментов и чтобы ими пользоваться не всегда нужно обновляться до последней версии. В этой статье расскажу, какие основные фишки появились за последние несколько лет и как ими пользоваться даже в проектах на старых версиях.

Читать далее

Развитие языков программирования в эру ИИ

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

Создатель языка Elixir Жозе Валим (José Valim) размышляет об изменении языков программирования: изменился разработчик — должны измениться и языки.

Привет, Хабр! На связи Хекслет. Весь материальный мир — от дверных ручек до архитектуры заводов — построен под пропорции и ограничения человека. И гораздо выгоднее делать роботов антропоморфными: пусть у них будут руки, ноги и пальцы — тогда они смогут пользоваться нашей инфраструктурой.

То же и софтом, синтаксисом и IDE: эта инфраструктура оптимизирована под человеческое восприятие. Должны ли мы сохранять эту эргономичность для ИИ-агентов?

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

Читать далее

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

Не каждый AI-вызов должен генерировать текст

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

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

Для этого появился Spring AI TypeSafe. Проект интегрирует Jev API, который отвечает на типизированные вопросы числовыми значениями и не генерирует текст.

Читать далее

Rust 1.99.0: функции с переменным числом аргументов, информация о схеме размещения типа

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

Команда Rust рада сообщить о новой версии языка — 1.99.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.

Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.99.0 вам достаточно выполнить команду:

$ rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску 1.99.0.

Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly). Пожалуйста, сообщайте обо всех встреченных вами ошибках!

Читать далее

Address already in use: как найти, кто занял порт, и почему он не всегда освобождается сразу

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

Представьте: два часа ночи, вы деплоите фикс — а сервис не поднимается: Address already in use. Гуглите, находите PID, делаете kill -9. Помогает. Но утром та же ошибка на том же порту.

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

Разбираем оба случая: быстрый фикс под Linux, macOS, Windows и Docker — и что на самом деле происходит с портом, когда процесса уже нет.

Понять, при чём тут TIME_WAIT →

Часы Unix тикали от розетки: откуда взялся 1970 год и что сломается в 2038-м

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

Первое издание Unix Programmer's Manual датировано 3 ноября 1971 года, и на странице про системный вызов time в нем написано, что система хранит время в шестидесятых долях секунды, прошедших с полуночи 1 января 1971 года. Я наткнулась на эту строчку, когда пыталась ответить себе на вопрос, который, по-моему, хоть раз возникал у каждого, кто видел в логах загадочное 1 января 1970 года: почему именно этот день. Выяснилось, что поначалу Unix собирался считать время с другого года и в других единицах, а тикали его часы от электрической розетки.

Вторая половина истории про будущее. Во вторник, 19 января 2038 года, в 06:14:07 по Москве закончится 32-битный счетчик секунд, и программы, которые на него полагаются, проснутся в пятнице, 13 декабря 1901 года. Я проверила это на C, на JavaScript и на ext4, где файл, датированный 2040 годом, у меня уехал в 1903-й, а заодно выяснила, что кое-где 2038 год наступил уже двадцать лет назад.

Читать далее

Найм уровня undefined

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

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

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

Расскажу, как я получил свою первую работу программиста 25 лет назад. Потому что мне кажется, именно в этой истории ответ на вопрос, почему сейчас такой трэш на рынке труда в IT. Компания “HBM”, известная тогда игровая контора набирала людей для нового проекта под “Буку”, в качестве тестового задания надо было за месяц сделать простую РТС на чем угодно, но с работой по сети. Я тогда студент второго курса, без портфолио, без опыта, без вот этого всего. Взял задание и вечерами на кафедре, потому что своего компа еще не было, а папин был за 200 км и особо не наездишься, наклепал стратежку с видом сверху про пакманов и призраков, которые собирают точки и стреляют друг в друга. Я не знаю как она работала, потому что там было столько косяков, что работать он в принципе не могла, а если слишком быстро перемещать курсор, то крашилась, и поэтому некоторые пакманы начинали стрелять в курсор и стопать его, если скорость была выше положеной.

Читать далее

«Протестировать ML? Чё-то слишком широко берём»: как я собрала QA framework для готовых моделей

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

Если вы меня читаете, то знаете, что где-то полгода назад я проектировала, обучала и, в общем, создавала своего агента для проверки ТЗ. А сейчас у меня появилась новая идея по захвату мира: протестировать ML. И да, я не Data Scientist, но когда это меня останавливало?

В итоге вместо пары экспериментов получился отдельный QA framework, который берёт готовую ML-модель, собирает её контракт и сам решает, какие проверки можно запустить и почему результат должен считаться PASS, FAIL, WARN или SKIP.

Читать далее

Прорыв GPT-6 Astra, Claude взрослеет до версии 5.5, скандал вокруг задачи Навье-Стокса: главные события в ИИ за сентябрь

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

Как и ожидалось, после августовского затишья ИИ-лаборатории устроили нам целый хит-парад релизов. Глаза разбегаются от обилия версий, цифр и апдейтов, которыми компании пытаются перебить инфоповоды друг друга. От OpenAI мы получили разрывающую бенчмарки GPT-6 Astra, Sol аж в двух версиях и целую пачку обновлений с прошедшего DevDay. Anthropic выставили в ответ тяжелую артиллерию в лице Claude Fable 5.1 и семейства Claude 5.5 в неполном составе. Google же продолжают штамповать Flash-версии Gemini и, видимо, копят ульту под какой-то мощный будущий релиз.

За пределами релизов развернулись сюжеты не менее интересные. OpenAI торжественно объявили о решении задачи Навье-Стокса силами своих агентов, но вместо оваций получили обвинения в краже данных и гнев научного сообщества. Лидер Anthropic тоже получил свою долю хейта, только уже от политиков, за призывы замедлить ИИ-гонку. Дженсен Хуанг тем временем продолжает укреплять свою монополию, на этот раз через покупку Hugging Face.

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

Читать далее