Как стать автором
Поиск
Написать публикацию
Обновить
1083.61

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

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

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

Представлен открытый проект ccprompts – это коллекция из 70 команд Claude Code для рабочих процессов разработки программного обеспечения. Команды включают проверку безопасности и могут использоваться непосредственно с Claude Code или адаптироваться для конкретных задач.

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

Теги:
-1
Комментарии0

OpenAI выпустила GPT-5. Разница между GPT-4 и GPT-5 примерно как между студентом и доктором наук, заявлил Сэм Альтман.

GPT-5 является самой мощной существующей моделью для кодинга. Она может выстраивать более сложные цепочки действий и писать более сложный код в одном стиле. Простым промптом можно создать функционирующее веб-приложение — на презентации сгенерировали Duolingo платформу для изучения французского языка с полноценными дизайном, анимациями, озвучками и игрой. Новая модель значительно меньше склонна к галлюцинациям — она будет меньше врать и притворяться. Также она стала гораздо менее «подхалимской». Тексты, генерируемые GPT-5, стали более естественными и человечными. Вместе с этим модель лучше понимает и исправляет свои ошибки. ChatGPT интегрируют в Gmail и Google Календарь на следующей неделе. Можно будет управлять как электронной почтой, так и своим расписанием прямо в чате. GPT-5 сама определяет, как лучше ответить — быстро или «подумав».

GPT-5 умеет не только вести разговор, но и выполнять реальные задачи: создавать приложения, планировать календарь, проводить исследования. Она сама определяет, как лучше ответить — быстро или «подумав». Модель справляется с генерацией кода, выдаёт меньше галлюцинаций, и даже даёт более точные ответы на медицинские вопросы.

По тестам GPT-5:

  • Обходит Claude Opus 4.1 и Gemini 2.5 Pro в программировании

  • Слегка уступает Grok 4 Heavy в тесте «Humanity’s Last Exam»

  • Отвечает на медицинские вопросы с ошибками всего в 1.6% случаев (у GPT-4o — 12.9%)

  • Ведёт себя безопаснее: меньше обманывает, точнее различает вредные и безопасные запросы.

Платные подписчики Plus и Pro получили доступ к более мощной версии GPT-5 Pro. В API теперь доступны три размера: gpt-5, mini и nano.

GPT-5 можно попробовать в Cursor — тут, и в Copilot — тут.

Теги:
+5
Комментарии1

Если нужна бесплатная альтернатива Cursor AI и Copilot в VS Code, вот самое быстрое и оптимальное решение, как мне кажется:

  1. Качаешь VS Code

  2. Устанавливаешь расширение Continue - open-source AI code assistant

  3. Получаешь бесплатный API key от думающей модельки Deepseek: https://openrouter.ai/deepseek/deepseek-r1-0528:free/api

  4. Устанавливаешь соответствующие настройки провайдера и модельки в Continue. Можно это сделать в yml файле, выглядеть он будет так:

name: Local Assistant
version: 1.0.0
schema: v1
models:
  - name: deepseek-r1
    provider: openrouter
    model: deepseek/deepseek-r1-0528:free
    apiBase: https://openrouter.ai/api/v1
    apiKey: 
    

5. Пользуешься чатиком или агентом со всей дури.

Можно поиграться с настройками, провайдерами и модельками, но это уже сами.

Теги:
+6
Комментарии13

Интеграция PVS-Studio с Hexway

Компания PVS-Studio и платформа Hexway заключили технологическое партнёрство для обеспечения интеграции статического анализатора кода PVS-Studio в экосистему DevSecOps.

Hexway VamPy — это решение, агрегирующее данные о безопасности из разных источников для работы с уязвимостями.

В Hexway стало возможным загрузить результаты анализа PVS-Studio в виде отчёта и работать с конкретными ошибками так же, как это позволяют другие инструменты. Загрузка возможна двумя способами: через пользовательский интерфейс или командную строку с использованием CLI-инструментов.

Подробнее о том, как загрузить результаты анализа PVS-Studio в Hexway VamPy можно прочитать в соответствующем разделе нашей документации.

Теги:
0
Комментарии0

Вам не нужен Activity Bar в vscode!

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

Раз. Убираем Activity Bar. В нем есть три типа иконок: нужные нам часто, нужные иногда, совсем ненужные. Логика такая: для нужных мы создаем горячие клавиши (или пользуемся существующими). Для средне-нужных используем cmd+p и выбор команды. Ненужными – не пользуемся :)

Кастомные настройки для горячих клавиш для управления разными View (плюс к стандратным):

[
    {
        "key": "shift+cmd+g",
        "command": "workbench.view.scm",
        "when": "workbench.scm.active"
    },
    {
        "key": "ctrl+shift+g",
        "command": "-workbench.view.scm",
        "when": "workbench.scm.active"
    },
    {
        "key": "shift+cmd+o",
        "command": "outline.focus"
    }
]

Два. Убираем Side Bar. Большую часть времени он не нужен. В основном нам просто нужно читать и реже писать код. Зачем нам Side Bar? Убирается основной по cmd+b, а второй по cmd+alt+b.

Но если оставить Side Bar справа, то его появление / скрытие будет двигать код. Что будет мешать. Потому – убираем его вправо.

Настройки:

{
    "workbench.activityBar.location": "hidden",
    "workbench.sideBar.location": "right"
}

Три. И не забудьте поместить Command Palette в центр рабочей области. Так будет удобнее: появяться она будет сразу перед глазами. Просто перетаскиваем мышкой.

Ссылка со всеми материалами: https://github.com/sobolevn/the-best-python-course/blob/main/minimal_vscode Там будет много полезного.

Теги:
+5
Комментарии2

OpenAI выпустили в Open Source две бесплатные модели gpt-oss, которые почти не уступают o3 и o4-mini.

Это самые умные модели, которые вы можете запустить у себя дома — маленькая gpt-oss-20b летает на домашнем ПК. А ещё это первый релиз в опенсорс от OpenAI за 6 лет — последний раз они так выпускали GPT-2.

gpt-oss доступна в двух версиях: с 20 млрд и 120 млрд параметров. Для первой для работы требуется минимум 16 ГБ видеопамяти, а для второй — 80 ГБ.

Теги:
+5
Комментарии1

TypeScript и C++ в одном бинаре. Первый open source-проект от МойОфис

Команда МойОфис выложила в open source собственную разработку — компилятор tsnative. Это кроссплатформенный инструмент, который объединяет удобство TypeScript с производительностью C++ в одном приложении. Исходники — на GitHub под лицензией Apache 2.0.

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

AntiQ разделен на два самостоятельных компонента. Сейчас в open source опубликован только tsnative — главный модуль, в котором сосредоточена основная логика и заложены архитектурные принципы всей платформы.

Зачем это нужно?

tsnative — это кроссплатформенный компилятор, преобразующий TypeScript в нативный машинный код. Он обеспечивает бесшовную интеграцию с C++ без glue-кода или JavaScript-движков, объединяя удобство высокоуровневой разработки с производительностью системного кода. В результате вы получаете один бинарник, собранный из двух языков.

Как это работает:

  • C++-функции помечаются TS_EXPORT;

  • генерируются .d.ts-декларации для TS;

  • TypeScript- и C++-код собираются через LLVM;

  • на выходе — один исполняемый файл, без обёрток.

// math.cpp
#include "TS.h"
TS_EXPORT int add(int a, int b) {
return a + b;
}
// index.ts
console.log(add(2, 3)); // -> 5
// index.ts
console.log(add(2, 3)); // -> 5

Проект может быть интересен тем, кто:

  • делает нативные приложения, но хочет писать часть логики на TS;

  • ищет замену закрытым коммерческим компиляторам;

  • любит ковыряться в сборке, кросс-компиляции и низкоуровневом коде.

Открытый код — не просто «выложили и забыли». Мы хотим, чтобы проектом пользовались, коммитили, обсуждали. Поэтому будем рады pull request’ам, issue и звёздочкам. Всё как обычно :)

Исходники на GitHub

Если у вас есть вопросы или комментарии, вы можете задать их в чате проекта: https://t.me/antiqmyoffice

Теги:
+34
Комментарии12

Мой код, мой кофе, мой хаос

Для ЛЛ: перечислены способы мотивации сотрудников, которые вам могут показаться банальными

Недавно на работе разгорелся жаркий спор. Двое наших разработчиков сцепились из-за выбора библиотеки для работы с датами в монорепе на js. Один был фанатом Luxon, утверждая, что она идеально подходит для сложных задач с датами и временем. Второй клялся, что Date-fns – в это лучший выбор, потому что она лёгкая, быстрая и позволяет использовать только нужные функции, не раздувая проект.

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

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

Разрешение конфликта

Чтобы выйти из тупика, я предложил компромисс: «Ребята, давайте так. Каждый из вас реализует свою часть проекта с использованием своей библиотеки. На проверку идей у вас 2 дня, потом сравним, что получилось». Они согласились, и весь накал спора тут же утих – оба погрузились в работу, стремясь доказать, что их выбор лучший.

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

В таких случаях я обычно:

  • Развожу спорщиков по разным проектам

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

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

Мотивация-шмотивация

Несмотря на подзаголовок, я приведу реально применённые способы поднятия мотивации разработчиков:

  1. Деньги-деньги, решают многое. Сюда же незапланированные премии.

  2. Повышение должности сотрудника (иногда даже без повышения зарплаты, не везде корректно настроены грейды). Был «разработчик», стал «Ведущий разработчик», потом «Старший разработчик» и т.д.

  3. Обновляешь ноутбук работнику. Иногда для сотрудника это долгожданное обновление, и это очень повышает его мотивацию и лояльность к компании (ну или к тому, кто её выбил).

  4. Про лишние дни отдыха тоже понятно.

  5. Оплата билетов на конференции по IT-тематике (а они не всем по карману сейчас), покупка лицензий на удобный софт.

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

Этих пунктов может быть ещё очень много, везде индивидуально.

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

Если есть чем поделиться, как вас мотивировали - прошу в комментарии.

Теги:
-1
Комментарии0

Gemini 2.5 Deep Think получила первую официальную золотую медаль IMO среди AI-систем

20 июля 2025 года Google DeepMind совершила прорыв: их модель Gemini 2.5 в режиме Deep Think стала первой AI-системой, официально получившей золотую медаль на Международной математической олимпиаде (IMO). Разбираемся, что это значит для развития искусственного интеллекта и когда технология станет доступна разработчикам.

Что произошло на IMO 2025?

Gemini 2.5 Deep Think набрала 35 из 42 возможных баллов, решив 5 из 6 олимпиадных задач за отведённые 4,5 часа. Главная особенность — все решения проходили на естественном языке без формальных переводов в системы вроде Lean или Coq.

Это кардинально отличается от предыдущих попыток. Например, AlphaGeometry от Google в 2024 году достигла только серебряного уровня в геометрических задачах, при этом тратила дни на решение одной задачи и требовала мощных вычислительных кластеров.

Важно: OpenAI заявляла о золотом уровне для своих моделей o1/o3, но официального признания от комитета IMO они не получали.

Архитектура Deep Think: мульти-агентное мышление

Технологический прорыв Deep Think заключается в нескольких ключевых инновациях:

1. Множественные потоки рассуждений

Модель запускает несколько параллельных "агентов", каждый из которых исследует свой путь решения. Затем результаты объединяются для финального анализа — подход, схожий с Grok 4 Heavy от xAI.

2. Увеличенное время на размышления

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

3. Специализированное обучение с подкреплением

Применяются алгоритмы RL, которые поощряют не только правильность решений, но и чёткость доказательств и качество формулировок.

Доступность и ценообразование

Здесь начинаются проблемы. Google выпустила две версии Deep Think:

  1. IMO Gold версия — доступна только избранным математикам и исследователям

  2. Bronze версия — публично доступна через подписку Google AI Ultra

Стоимость Bronze версии:

  • $124.99/мес первые 3 месяца

  • $249.99/мес в дальнейшем

  • Включает: Deep Think, Veo 3 (генерация видео), 30 ТБ хранилища

Ограничения Bronze версии:

  • Время ответа: 30-60 секунд на сложные запросы

  • Ограниченное количество запросов в день

  • Упрощённые возможности по сравнению с IMO-версией

Критический взгляд: стоит ли овчинка выделки?

Реакция комьюнити неоднозначная. Основные претензии:

  1. Неоправданно высокая цена: многие пользователи отмечают, что подписка Ultra даёт те же квоты API, что и бесплатный аккаунт

  2. Медленная работа: 30-60 секунд ожидания не подходят для продуктивной работы

  3. Неясные перспективы: Google не сообщает, когда IMO-версия станет доступна публично

Значение для индустрии

Успех Deep Think на IMO знаменует переход от "умных автодополнений" к системам, способным к настоящему рассуждению. Это открывает новые возможности:

  • Научные исследования: помощь в доказательстве теорем и решении сложных задач

  • Инженерия: анализ комплексных технических проблем

  • Образование: персонализированное обучение математике и логике

Что дальше?

Google обещает API-доступ к Deep Think "в ближайшие недели", но пока только для "доверенных партнёров". Полноценная IMO-версия может остаться исследовательским инструментом надолго.

Для разработчиков это означает ожидание: пока что Deep Think — это скорее демонстрация возможностей, чем готовый продукт для интеграции.

Выводы

Gemini 2.5 Deep Think действительно совершила исторический прорыв, став первой AI-системой с официальной золотой медалью IMO. Однако коммерческая реализация пока разочаровывает: высокие цены, ограниченный функционал и неясные перспективы развития.

Если вам нужна скорость и код — оставайтесь с GPT-4, Claude или o1. Если же готовы платить за глубокие рассуждения и не спешите — Deep Think может стать интересным инструментом.

Теги:
0
Комментарии1

Где учиться фронтенду

Привет! Мы на Хабр Карьере собираем сотни онлайн-курсов в IT или digital на маркетплейсе курсов и каждую неделю делаем подборки обучений для тех, кто хочет учиться какой-то специализации с нуля или для тех, кто уже в профессии, но чувствует, что хочет прокачать навыки.

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

HTML/CSS

Разметка и стилизация веб-страниц. HTML задаёт структуру, CSS отвечает за внешний вид, адаптивность и анимации.

JavaScript

Язык для добавления интерактивности на веб-страницах. Используется в браузере и на сервере (через Node.js), лежит в основе большинства фронтенд-фреймворков.

Git

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

React

JavaScript-библиотека для создания UI. Использует компонентный подход и виртуальный DOM. Разрабатывается Facebook.

Angular

Фреймворк от Google для построения SPA. Включает собственную архитектуру, TypeScript, DI, роутинг и инструменты для тестирования.

Vue.js

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

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

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

→ Смотреть курсы по всем специализациям

Теги:
0
Комментарии1

minimal vscode: открываем окна

Нет, не от духоты, ее в видео как раз не будет 🌚️️️️
Видео короткое, динамичное, практичное.

Перед тем как учиться пользоваться vscode, необходимо:

  1. Её поставить

  2. Научиться её открывать

  3. Располагать её на рабочем пространстве

Мой конфиг: https://github.com/sobolevn/dotfiles

В видео поговорили про: hotkey managers, тайлы, всякие красивости для macos.

Менеджеры горячих клавиш:

Тайловые менеджеры:

Полезности:

Теги:
+11
Комментарии3

BPN vs MVM

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

В одном файле эта задача реализована в архитектуре BPN (Business Process Notation), о которой рассказывал раньше здесь. А во втором файле тот же код организован по архитектуре MVVM.

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

Что можно сказать в итоге, сравнивая архитектуру в том, и другом случае. 

Объём кода

В BPN варианте 270 строки кода с комментариями, в MVVM - 524.

Т.е., в MVVM случае кода практически в 2 раза больше.

Количество сущностей, объектов.

BPN - один класс и 3 раширения к нему.

MVM - 6 классов, 1 структура, 3 протокола, каллбэки, фабрика, расширение.

Архитектура

BPN - монолит.

MVVM - вью и модель, анимация и аудио как сервисы, роутер, отдельная структура для хранения значений свойств и т.д.

Что лучше

Как всегда, каждый из подходов имеет свои плюсы и минусы.

В BPN нравится, что можно видеть модель процесса, в данном случае модель одной из задач приложения.

Что такое “Модель”

Наиболее традиционны 2 понимания термина “модель”.

В одном случае, это структура данных, модель объекта.

Например:

struct Person {

let firstName: String

let lastName: String

var age: Int

}

В другом случае, под моделью понимается всё, что не относится к интерфейсу.

Но есть и третье понимание модели - это модель приложения, или модель отдельных процессов внутри приложения. Т.е., составные части приложения (процесса) и их последовательность.

В BPN файле такая модель проступает наглядно:

Модель процесса "Обратный отсчет"
Модель процесса "Обратный отсчет"

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

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

Conclusion

На относительно небольших проектах архитектура MVVM может быть избыточна. Здесь могут использоваться более простые варианты.

BPN позволяет видеть целостную модель задачи (процесса, приложения).

Теги:
0
Комментарии7

Интеграция PVS-Studio c AppSecHub

Компания PVS-Studio и платформа AppSec.Hub заключили технологическое партнёрство для обеспечения интеграции статического анализатора кода PVS-Studio в экосистему DevSecOps.

AppSec.Hub — это платформа для автоматизации процессов Application Security, которая позволяет объединять различные инструменты анализа, тестирования и мониторинга безопасности приложений.

Отчёт анализатора PVS-Studio теперь можно загрузить для просмотра в платформу AppSecHub вручную с помощью пользовательского интерфейса инструмента либо с помощью специальной утилиты командной строки.

Подробнее о работе PVS-Studio в AppSec.Hub можно прочитать в посвящённом этому разделе документации.

Также мы провели вебинар с коллегами из AppSec Solutions, чтобы на практике показать, как инструменты работают вместе, а также поделиться полезным опытом в интеграции статического анализа в DevSecOps.

Теги:
+2
Комментарии0

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

Хотите подтянуть свои знания Go?

Тогда новый бесплатный курс для вас!

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

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

Несколько материалов для старта.

Открыть курс →

Теги:
+9
Комментарии1

Обновлена информационная база JBook по изучению Java полностью на русском языке. Проект помогает выучить язык с полного нуля и до уровня поиска работы, включая концепции, приёмы, актуальные фреймворки, ООП, основные алгоритмы, паттерны решения задач и видеоразборы. Есть множество упражнений разного уровня сложности к каждой лекции. Проект развивается с 2018 года и постоянно обновляется вместе с версиями Java, документацией и новыми подходами к разработке.

Теги:
+3
Комментарии0

Быстрые сборки с функцией Rollback в Amvera Cloud

Ранее в Amvera Cloud, были возможны откаты только путём новой сборки из нужного коммита в Git-репозитории. Помимо этого, использовалась медленная технология сборки.

Мы ускорили сборки до 10 раз и сделали возможность быстрого отката к предыдущим версиям!

Стало легче откатывать приложение, в случае ошибок.

Подключить быстрые сборки можно в разделе проекта «Контроль версий».

Интерфейс управления версиями сборок
Интерфейс управления версиями сборок

Новые сборки

  1. Быстрее старых до 10 раз.

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

Amvera Cloud – облако для простого запуска проектов со встроенным CI/CD (деплой идёт через Git или загрузку файлов в интерфейсе), бесплатными https-доменами, мониторингом работы приложений, встроенным проксированием до ведущих LLM и собственным инференсом LLaMA.

Вам не нужно думать о настройке инфраструктуры. Git push amvera master и ваш проект запущен. Зарегистрируйтесь и получите 111 рублей на тест. 

Теги:
0
Комментарии0

LeetCode ponts кому-нибудь помогли?

Мне на LeetCode постоянно LeetCode point-ы добавляют. У кого-нибудь есть реальный пример полезного применения этих points? У меня их 26 штук уже. Делать пока с ними ничего невозможно. А что реально полезного от них можно получить? Можно ли RMT-ить их? У кого получалось

Теги:
0
Комментарии2

Выводим Соера на чистую воду разбирая дискуссию с ним про принципы SOLID

Топ перлов

  • Если ты манки-патчишь объекты, то ты функциональщик.

  • Ты должен сначала залезть на гору, а потом уже решить надо было тебе сюда или нет.

  • Если люди по разному воспринимают принцип - это здорово, ведь он подталкивает людей к размышлению.

  • SOLID позволяет легче (т.е. не задумываясь) принимать не идеальные (т.е. сомнительные) решения.

Упомянутые материалы

Копилка благодарностей

Теги:
-3
Комментарии0

Использование случайностей в функциональном тестировании


Для кого эта статья?

  • Инженеры по автоматизации и разработчики тестов — вам точно будет интересно.

  • Обычные разработчики, если вы заинтересованы в качестве продукта, а не считаете тесты "расплатой за грехи" или "прихотью менеджмента" — тоже.

А кого, возможно, не заинтересует

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

Откуда вообще эта идея?

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

На первый взгляд — всё логично. Но на практике:

  • увеличивается время прогона (особенно для UI-тестов);

  • растёт вероятность нестабильности (flaky-тесты);

  • тесты зачастую дублируют поведение друг друга.

Наглядный пример

Допустим, у нас есть UI-тест, проверяющий переходы по меню на сайте. Стартовая страница содержит меню для перехода на страницы A, B, C, D.

Сценарий теста:

  1. Открываем стартовую страницу.

  2. Выбираем пункт в меню.

  3. Проверяем, что оказались на нужной странице.

Что делает большинство:

  • Пишут четыре теста: переход на A, на B, на C и на D.

  • Или параметризуют тест: гоняют один и тот же сценарий с разными входными.

Но по сути, мы проверяем одну и ту же функциональность перехода по меню. Зачем гонять одни и те же шаги с разными данными?

Проблема

Если тест проверяет функциональность, то логично оставить один вариант— переход на страницу A. Экономите ресурсы, всё стабильно и функциональность проверяется. Но однажды приходит тимлид с вопросом:

Почему тесты не поймали баг с переходом на страницу D?

В этом случае экономия не оправдалась

Что делать?

Тест — это тоже код. Он может быть не стабильным. И чем чаще он запускается, тем быстрее мы понимаем, стабилен он или нет.

А теперь возвращаемся к примеру с меню:

Что, если каждый раз случайным образом выбирать один из пунктов (A, B, C, D)?

  • Экономим ресурсы: запускается один тест вместо четырёх.

  • С течением времени мы случайным образом "покроем" все пункты.

  • Чем чаще прогоняются тесты, тем быстрее мы обнаружим баг (например, если страница C не открывается).

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

Это не ноу-хау

Такой подход давно известен — он называется property-based testing.

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

Что важно помнить

  • Использование случайности не должно усложнять тест. Логика должна быть понятна и читаема.

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

  • Рандомизация — всего лишь один из способов сделать тесты более эффективными, но это не универсальное решение

  • Иногда стоит логировать/фиксировать сгенерированные данные, особенно при падении теста — чтобы потом воспроизвести баг

Итог

Рандомизация в тестировании — мощный инструмент:

  • помогает экономить ресурсы;

  • расширяет покрытие;

  • стимулирует стабильность и надёжность тестов.

Но применять её стоит с умом: понимать, зачем, где, и в каком объёме.

А как у вас это устроено? Используете ли вы property-based подход в тестах? Или всё ещё параметризуете всё подряд? Буду рад услышать ваши мнения, кейсы и даже критику.

Теги:
+1
Комментарии2

Есть для альтернатива Delphi в 2025 году для простых кроссплатформенных приложений?

Навеяно обсуждением статьи про Дельфи в 2025.

Q1: Если сейчас есть задача по-быстрому сбацать что то с формами под винду - какая есть альтернатива дельфи?

Q2: А если так же быстро накидать, только кроссплатформенное приложение и без зависимостей?

И мой ответ

A: Не находишь, что 3000$ за кроссплатформенный дизайнер форм слишком дорого? Даже за хороший.

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

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

С чем то я работал, с чем то нет, актуальные версии вживую не проверял.

  1. GNOME Builder (ex.Anjuta). GTK multilang IDE

  2. Cambalache (ex.Glade) - GTK form builder

  3. Qt Creator

  4. FLUID for FLTK

  5. wxFormBuilder for wxWidgets 

  6. Projucer for JUCE

  7. Ultimate++ 

  8. NetBeans GUI design tool for Java Swing 

  9. TKproE (TCL/TK Programming Environment)

  10. Lazarus

  11. MSEide+MSEgui Pascal

  12. GTK# Visual Designer MonoDevelop (retired)

  13. Xamarin.Forms GTK Backend (discontinued for NET MAUI)

  14. JavaFX Scene Builder

  15. Pygubu Tkinter a GUI for Python

    Может еще что и забыл, либо не попалось на глаза.

Теги:
+1
Комментарии15

За более чем 30 лет работы в IT я зарабатывал на жизнь программированием на языках Assembler, Basic, C, C++, Fortran, Lisp, Pascal, PL/I, Python, REXX, Scheme (в алфавитном порядке), а также руководством подобными процессами. Занимался я преимущественно системным программированием, то есть, так сказать, производством средств производства; но не только.

Вот какой получился рейтинг языков программирования в моей жизни:

– больше всего строк кода я написал на ассемблере, причём в основном бесплатно, в процессе обучения;
– больше всего по продолжительности я программировал на Паскале (не то чтобы это было свойство самого Паскаля, а просто время такое было);
– больше всего удовольствия я получал от использования PL/I;
– самой дорогой в перерасчёте на строчку кода была моя программа на REXX (так сказать, антипод ассемблера в моей карьере);
– самый сложный код я писал на Scheme.

Выводов делать не буду.

Теги:
+9
Комментарии4

Последовательность Фибоначчи может конвертировать мили в километры с небольшой погрешностью

5 миль ≈ 8 км (5 и 8 - числа Фибоначчи). Реальность: 5 миль = 8.04672 км.

Почему?
1 миля = 1.609344 километра (точное значение).
Золотое сечение (φ) ≈ 1.618034

Погрешность возникает потому что отношение Fₙ₊₁ / Fₙ стремится к φ ≈ 1.618034, а точное соотношение миля/км = 1.609344.

Относительная погрешность: (1.618034 - 1.609344) / 1.609344 * 100% ≈ 0.54%.

Решил по фану реализовать конвертор милей в километры на C. Ссылка тут.

Advanced distance converter: miles to kilometers
Usage: ./bin/fib_miles2km [OPTIONS] [distance]

Options:
  -h, --help                     Show help information
  -f, --fib=ARG                  Convert miles to km using basic Fibonacci
  -b, --basic=ARG                Convert miles to km using standard formula
  -i, --fib-interp=ARG           Convert using Fibonacci interpolation
  -c, --fib-cache=ARG            Convert using cached Fibonacci
  -g, --fib-golden=ARG           Convert using golden ratio

Не знаю зачем, но прикольно :)

Теги:
+18
Комментарии1

Представлен открытый репозиторий с коллекцией гайдов по почти всем стекам технологий — от операционных систем и языков программирования до паттернов проектирования и принципов дизайна. Все гайды сжаты и структурированы, включая популярные языки программирования — Python, Java, Go, JS, Rust, всё об инструментах, редакторах кода и IDE, а также шпаргалки по горячим клавишам, библиотеки и фреймворки для работы.

Теги:
0
Комментарии1

АГЕНТЫ И АГЕНТНАЯ ЭКОНОМИКА. 17.07.25.

Микро-дайджест недели.

=> Если мы будем следить за ходом их мысли (рассуждениями ИИ-агентов), то мы сможем лучше их понимать и управлять ими. Этот манифест за безопасность Chain of Thought Monitorability подписали вчера ведущие исследователи индустрии.

Но по факту весь ризонинг, демонстрируемый пользователю, может оказаться внешней декорацией, а решение LLM может принимать исходя из совершенно другой логики и других связей, то есть не тех, которые они демонстрируют в цепочках рассуждений. Другое дело с мультиагентными системами, там есть возможность сохранить прозрачность, даже в случае деградации "честного" Chain-of-Thought у отдельных моделей.

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

=> Не любите вайб дебаггинг также как и я? На подходе инженер Azimov, и его ключевое отличие от текущих код-генераторов в том, что он не только генерит код, по словам разработчика он его будет "понимать".

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

=> Деньги любят тишину. Я попробовал угадать, что за продукт выкатит бывшая CTO Open AI Мира Мурати, которая недавно подняла еще 2 млрд $ на seed-раунде при оценке 12 млрд $, при этом никто не знает, а чем собственно занимается ее стартап Thinking Machines Lab AI. Читайте в новой статье

=> Open Deep Research это агент для глубоких исследований с открытым исходным кодом, созданный на основе LangGraph и совместимый с вашими источниками данных, LLM и MCP-серверами. Подробно в блоге

И краткий обзор на YT демонстрирующий архитектуру такого агента и принципы разработки, как запустить агента локально с помощью LangGraph Studio и как быстро протестировать его с помощью Open Agent Platform.

=> AWS стремится стать универсальным центром для ИИ-агентов от Anthropic, IBM, Perplexity и других. Amazon Bedrock AgentCore - ожидаемый релиз комплексного подхода AWS для создания и развертывания различных ИИ-агентов. Одно место, любые агенты, все под рукой. Иначе бизнес начинает сходить с ума от разнообразия выбора, в котором он в общей массе не очень то пока разбирается.

AWS представил комплексный набор сервисов корпоративного уровня, которые помогают разработчикам быстро и безопасно развертывать и эксплуатировать ИИ-агенты в любом масштабе, используя любую платформу и модель, размещенную на Amazon Bedrock или в другом месте. Здесь все подробности. А здесь коротко в видео на YT.

=> Хотите собирать низко висящие фрукты лиды? Есть такое решение Orange Slice. Они собирают разные рыночные сигналы по вашим ICP и определяют тех, кто заинтересуется вашим продуктом, а затем преподносят вам их словно "на блюдечке", с различными нюансами и деталями, так что остается только продать 😉

=> Посмотрите на Runway Act-Two - я впечатлен, модель захвата движения нового поколения с существенным улучшением качества и поддержкой отслеживания головы, лица, тела и рук. Для Act-Two требуется только видеозапись движения и референсный персонаж.

Lionsgate и AMC Networks уже участвуют в проекте, изучая модель будущих производственных процессов для Голливуда.

=> И напоследок, вот такой фреймворк, эмулирующий функциональность Grok Heavy с помощью мультиагентной оркестровки. И никаких $300

***

Предыдущие материалы и выпуски дайджеста, там до сих пор много интересных инсайтов. Более 50% из них имеют длинный горизонт актуальности. О новых бизнес-моделях и ИИ-стартапах: Айвентор и Фред

Теги:
+2
Комментарии0

За создание аниме-аватаров для чат-бота Grok в xAI платят до $440 тыс. в год. Разработчику нужно создавать реалистичных ИИ-аватаров, вовсю тестировать геймплей во всех ситуациях и работать с голосовыми командами. Требования — Python, Rust, WebSocket, WebRTC и опыт работы iOS.

Теги:
+1
Комментарии0

Откровения евангелистов БЯМ (LLM) для целей софтостроения генерируются публикуются с высокой скоростью. Не только на хабре, LinkedIn заполнен ими "под завязку". Прочитывать всё невозможно, да и не нужно, но некоторый тренд в изложении присутствует.

К сожалению, авторы много пишут о процессе, забывая собственно цели. Упоминание о функциональной сложности программы, как правило, отсутствует. Длина описаний процесса может создать ложное впечатление о развесистой функциональности, хотя большинство примеров находятся на уровне "записная книжка". В этом нет ничего плохого, просто не забываем, что 30 лет назад RAD типа Delphi умели создавать такие же "книжки" без написания кода вообще: достаточно было "накидать" компонентов на форму, настроить, связать их, и нажать "Run".

Накидали, и что дальше?

За словами "писать на близком к естественному языку", скрывается постепенное создание быстро растущего "промпта" - детальной спецификации, местами - псевдокода. Как следствие, необходимо иметь версии таких "исходников", как и раньше для кода (об этом практически не пишут). Для сторонних пакетов, API служб и прочих зависимостей не забываем указывать версии. По сравнению с таким "псевдокодом" техзадание может показаться увлекательной беллетристикой. Речь идет по сути о конечных спецификациях, ведь программирование - не столько кодирование (от силы 20% времени), сколько детальное проектирование и стабилизация.

Размер спецификаций псевдокода вкупе с описаниями контекста среды могут превзойти собственно размеры генерируемого кода, написанного программистом на формальном ЯВУ. Спецификации придется так же хранить в Git, и нервно просматривать, что же изменилось в сценариях, почему, ***, вместо слова "опять" кто-то написал "снова".

Для детерминированности процесса желательно, чтобы моделька была в том же состоянии, что и на предыдущем этапе генерации, но для внешних БЯМ-сервисов это недостижимо. Напомню, что компиляторы и классические генераторы кода (CASE, MDD) - детерминированные.

На первый план выходят тесты, их нужно писать "больше и лучше", потому что под капотом теперь только "черный ящик", "белого" больше нет. Тесты нужно постоянно обновлять в зависимости от объема изменений. Если ваши новые спецификации меняют 20% существующей кодовой базы, то тестов придется менять вдвое больше, принимая 2:1 за стандартное соотношение тестов к коду. Для языков без статической типизации тестирование еще более усложняется.

В реальных проектах написание сотен строк в день - это режим стартапа, причем на "нулевом цикле". Достаточно быстро программист приходит к естественной норме десятков строк в день, остальное время занимает понимание текущего потока проблем, поиск ошибок, интеграция и стабилизация. Хороший программист минимизирует объем порождаемого кода. Нужно ли включать БЯМ для написания 50 строк в день - вопрос.

В процессе не предусмотрена роль юниоров. Перспектива - "уйти со сцены", не воспитав смены, достаточно сомнительная для бизнеса и весьма печальная в личном плане.

Напоследок накину немного философского. Евангелисты любят упоминать, что человеческий мозг и БЯМы работают на одних и тех же принципах. Часто выясняется, что курса "Аналоговые ЭВМ" на их потоке уже не было, что несколько удручает. Еще более простой вопрос на примере несуществующей (пока?) телепортации: "Человек на входе телепортера и на выходе - это одна и та же личность?"

Теги:
+2
Комментарии6

По мнению специалиста по этике моделей в OpenAI Шона Гроува, в будущем наиболее ценными программистами станут те, кто умеет чётко формулировать мысли, а не просто писать код.

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

Гроув называет код лишь «потерянной проекцией» (lossy projection) изначального замысла и ценностей. С развитием ИИ систем, по его мнению, главное умение программиста смещается от написания кода к созданию точных спецификаций и промптов, способных передать намерение максимально полно.

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

Теги:
+3
Комментарии1

Чек-лист: твой проект скоро развалится, если…

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

  • Весь проект держится на одном человеке
    И он — не документация. Ушёл в отпуск — проект замер.

  • Задачи ставятся в личке, на встрече или в голове
    "Я же в телеге писал задачу". Без трекинга всё разваливается.

  • Никто не может объяснить, что по приоритету
    Всё срочно, всё горит, всё одновременно. Ну вы поняли.

  • Прод выкатывается вручную, или в пятницу вечером
    Даже не баг, а фича. Проблемы по подписке.

  • Тестов нет, баги ловим по фидбеку
    Багрепорт от клиента — это не QA.

  • Архитектура — это слово из чужого лексикона
    Потому что “нам и так норм”. До первой перегрузки.

  • Вопросы “а как это работает?” решаются методом тыка
    Потому что комментировать код — западло.

  • Бэкапы где-то есть… но никто не проверял
    Олег говорил, что сохранял себе дамп локально

  • Ушёл один человек — и половина знаний ушла с ним
    Значит, их не было в проекте — только в его голове.

Если вы загнули 3–4 пальца — значит пора встать и осмотреться.
Пока “всё работает” — это ещё не стабильность, это просто везение.

Некоторые проблемы уже рассмотрел подробнее в своих статьях

Теги:
0
Комментарии3

Хорошо ли вы разбираетесь в Python?

В Академии Selectel есть небольшой тест на владение синтаксисом Python. Он позволит оценить свои знания и отыскать пробелы. Вопросы подобраны для тех, кто уже не пугается None, но продолжает разбираться, что происходит «под капотом». Бонусом — подборка полезных материалов для изучения Python!

Пройти тест →

Теги:
Всего голосов 8: ↑5 и ↓3+2
Комментарии0

Парадигмы программирования заложенные в протоколы с обязательным исполнением.

Как в нашей народной, старой и доброй — эталонной сетевой модели OSI.

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

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

Мал по малу стандарт получает настоящий знак качества, и через десять лет, — те кто не пишут код в рамках модели, не получают «значок», и в итоге не попадают в магазин андройд или яблока. Точка. Ваше ПО мертво само сабой. И рынок цел и хомяки довольны.

Пример: Возвращаясь к модели OSI, где чисто гипотетически — создаем надстройку для производителей ПО, Операционных Систем и Железа.

Чисто иллюзорно представим:

на восьмой уровень прописываем достаточные и необходимые правила(Парадигмы) и способы взаимодействия конечного кода — для слоя ОС;

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

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

Теги:
Всего голосов 4: ↑2 и ↓2+2
Комментарии2

Фича ради фичи

Как легко потерять смысл разработки, добавляя “полезности”

  • Сделаем ещё кнопку, она “точно нужна”

  • Добавим фильтр, и сортировку, и модалку, ну мало ли

  • Вот бы выгрузку в Excel, и график, и пуши!

…Проект набирает скорость. Только куда?

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

Парадокс: чем больше фич, тем хуже продукт

Потому что он уже не про ценность, а про “галочки” и “давайте сделаем ещё”.

У фичи должен быть KPI, надо ставить вопрос «а что изменится от нее?». Также их надо подчищать, если старые не используются: «больше ≠ лучше»

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

Один парень заметил это, и сделал элементарный плагин для интеграции Notion с Google Sheets, на чем начал зарабатывать хорошие деньги.
Людям не нужно «все и сразу», им нужна качественная точечная фича

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

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии0

Evolution free tier — ежемесячный объем облачных ресурсов, за которые не нужно платить 🙌 

❓ Что за инструмент? Evolution free tier позволяет бесплатно использовать ресурсы платформы Cloud.ru Evolution. С free tier доступны виртуальные машины, объектное хранилище S3 и ресурсы для запуска контейнеров.

🖥 Особенности и преимущества. Во free tier вам доступны три сервиса:

  1. Evolution Compute — виртуальная машина в следующей конфигурации: 2 vCPU (Intel Gold 6248R, 3 ГГц), 4 ГБ RAM (DDR4), 30 ГБ дискового пространства (SSD NVMe) и безлимитный исходящий трафик.

  2. Evolution Object Storage — объектное хранилище S3 с ежемесячным объемом бесплатных ресурсов: 15 ГБ хранилища, 100 000 операций PUT, POST, LIST, миллион операций GET, HEAD и 10 ТБ исходящего трафика.

  3. Evolution Container Apps — сервис для разработки и запуска контейнеров. В месяц доступны: 120 vCPU × час и 480 ГБ RAM × час.

Чтобы начать работу, достаточно выбрать готовый образ и приобрести публичный IP.

✍️ Где, как и для чего использовать. Evolution free tier подойдет для тестирования облачных сервисов и разработки небольших проектов: менеджера паролей, telegram-бота, сайта для личного блога или портфолио. Еще можно развернуть облачное хранилище для фото, видео и документов. Или развернуть собственный игровой сервер в Minecraft ⛏️

А чтобы быстрее запустить проект, используйте нашего нового AI-помощника Клаудию. Он подберет конфигурацию виртуальной машины, развернет ее, создаст SSH и виджеты мониторинга, настроит алертинг за вас.

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

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии4

Человек-комбайн

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

Это «человек-комбайн». Его любят, на него надеются, он незаменим. До тех пор, пока всё не рухнет.

Первый этап

Команда обращается за всем именно к нему: помощь, проверка, советы. Он — живая документация и мозг проекта.

Для бизнеса всё выглядит отлично: «три в одном, да ещё и без лишних затрат».

Второй этап

Постепенно «комбайн» устаёт: таски неинтересные, общения слишком много, помощи просят постоянно.

Он начинает раздражаться, отказывать, “зависимые” замыкаются. Процессы начинают проседать — но пока это незаметно сверху.

Третий этап

Бизнес не замечает проблему, а специалист уже морально ушёл. Проходит немного времени, и вот он увольняется. И…

Судный день

Без него — никто не знает, как деплоить, где что лежит, как починить баг.

Документации нет, у разработчиков паника.

Прод падает. Клиенты жалуются. Команда — в ступоре.

Восстановление занимает недели. А иногда — проект просто не поднимается.

Как не угодить в ловушку?

Раздавайте ответственность. Не сливайте всё на одного “самого умного”. Растите дублирующих специалистов. Пишите документацию. Один супермен — это риск, а не преимущество.

Коромысло с одним ведром — всегда перевесит в одну сторону.

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

Теги:
Всего голосов 6: ↑4 и ↓2+3
Комментарии3

Repeater - планировщик для анализа данных, упрощенный Apache Airflow.

Repeater запускает задачи по расписанию. Задачи - последовательности консольных программ - описываются в toml-файлах. Запуски отображаются в веб-интерфейсе.

Пример задачи - запуск скриптов wiki_stats.py и wiki_pageviews.py импорта верхнеуровневой статистики Википедии в локальную базу.

title = "wiki"
cron = "0 55 * * * *"

[[tasks]]
name = "wiki_stats"
cmd = "python3 ./examples/wiki_stats.py"   

[[tasks]]
name = "wiki_pageviews"
cmd = "python3 ./examples/wiki_pageviews.py --end_date={{.scheduled_dt}}"

Бэкэнд написан на Go. Команды ниже запустят Докер-контейнер с сервисом и окружение для примеров:
- Repeater http://localhost:8080 - планировщик
- ClickHouse http://localhost:8123 и http://localhost:9000 - база данных
- ch-ui http://localhost:8001 - веб-интерфейс к базе данных
- Streamlit http://localhost:8002 - дашборды

git clone https://github.com/andrewbrdk/Repeater
cd Repeater
docker compose up --build

В примерах импорт количества просмотров страниц Википедии, курса биткоина, статистики репозитория Линукса на Гитхабе. Графики в Streamlit http://localhost:8002 .

Интересны применения проекта. Попробуйте! Впечатления пишите в комментариях. Спасибо!

Репозиторий: https://github.com/andrewbrdk/Repeater

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Привет, Хабр. Подготовили подборку бесплатных открытых уроков от Otus, которые пройдут на этой неделе по вечерам. Опытные практики проводят вебинары в живом формате, что позволит не только освоить новые знания, но и задать вопросы экспертам. Регистрируйтесь и присоединяйтесь!

7 июля, понедельник:

8 июля, вторник:

9 июля, среда:

10 июля, четверг:

14 июля, понедельник:

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

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

О систематизации регламента в прикладном программировании.

Всем привет! Хабр, — ты лучший.

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

Пусть на основе IETF, будь-то на основе ISO, не важно. И вот спустя некоторое время, я читаю о очередной заголовок последней конференции C++, которая оказывается проходит под флагом того самого уважаемого института (организации) ISO. Казалось бы, чего еще тебе надо Сергей, и чем ты так не доволен?…

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

Здесь все строго формализировано. Да вы можете играться как хотите в своей песочнице, но за рамки определенных и прописанных в ПРОТОКОЛАХ правил вы выйте не сможете. Таким образом организуется БАЗОВЫЙ ПОРЯДОК.

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

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

PS: да я понимаю, что кое-кому или даже кое-каким организациям это выгодно — держать все в таком виде в каком оно есть. Ведь всегда можно использовать дыру заложенную в железке или в святом С (на котором написаны ОС), а те чудики что там парятся над всей этой протухшей надстройкой (конечные программисты ООП и ФП) — пусть они заботятся об уязвимостях нулевого дня, о побеге памяти и прочей лабуде. А хомяки что? Хомяки сожрут, подавятся и отрыгнут, им не привыкать (еще и заплатят за ПО, за ОС, и саму железку). Да для бизнеса все стараются, а то что я обычный пользователь все это терплю, теряю бабки, нервы и прочеее — по пофигу (плебс).

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

PPS: И да ребята, я могу в чем-то заблуждаться, поэтому вы все вольные меня поправить, открыть глаза мне…

Ура, и доброго дня всем!

Теги:
Всего голосов 10: ↑2 и ↓8-4
Комментарии2

Запускайте контейнерные приложения в облаке с Evolution Container Apps 💭

❓ Что за сервис? Evolution Container Apps позволяет запускать контейнерные приложения в облаке, причем для этого не нужно разбираться в Kubernetes или развертывать виртуальные машины. Запуск проиcходит на базе Docker-образов.

🖥 Особенности и преимущества. Возможности сервиса применимы для любого стека — контейнеры могут использовать любую среду выполнения и любой язык программирования. В зависимости от нагрузки экземпляры контейнеров создаются или удаляются автоматически. Не нужно настраивать кластеры Kubernetes: достаточно загрузить Docker-образы в реестр и создать контейнеры в личном кабинете. А еще у Evolution Container Apps есть free tier: ежемесячный объем бесплатных ресурсов — 480 ГБ RAM и 120 vCPU, запускать небольшие приложения можно без оплаты.

👨‍💻 Кому будет полезно. Всем, кто использует Docker и хочет облегчить развертывание и масштабирование:

  • Разработчикам и DevOps-инженерам, чтобы быстро тестировать и запускать приложения.

  • Небольшим компаниям и стартапам, которые хотят сэкономить на инфраструктуре и попробовать бесплатные возможности Evolution Container Apps.

  • Большим проектам с микросервисной архитектурой, чтобы облегчить оркестрацию, развертывание сложных приложений за счет контейнеров sidecar и init.

Хотите узнать больше о сервисе? Смотрите запись доклада с GoCloud 2025, где мы рассказали, как сохранить данные в S3 при работе с Evolution Container Apps. А еще сохраняйте пошаговый туториал, как запустить облачное приложение с Evolution Container Apps, без Kubernetes и развертывания ВМ.

Теги:
Рейтинг0
Комментарии0

Хотите стать мастером регулярных выражений?

Тогда новый бесплатный курс — для вас!

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

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

После изучения материалов вы сможете:

  • моментально извлекать данные из гигабайтов текста;

  • валидировать формы любой сложности;

  • правильно обрабатывать тексты на русском (никаких сломанных \b);

  • решать сложные задачи с помощью lookarounds и именованных групп;

  • повысить свой уровень в работе со скриптами и редакторами.

Все материалы бесплатные. Не требуется даже регистрация.

Начать обучение в Академии Selectel →

Теги:
Всего голосов 7: ↑6 и ↓1+7
Комментарии0

Совершенный assert() для всех языков программирования

...как ни смешно, но пострадали стоматологи: стало меньше зубовного скрежета!

Когда C/C++ разработчики переключаются на другие языки, им очень не хватает привычного механизма assert()/NDEBUG. Он, в некотором смысле, позволяет получить "идеальный" метод управления Debug/Release конфигурациями:

Как вы правильно поняли, в Release конфигурации строки кода между #ifndef NDEBUG и #endif полностью исчезают, и мы получаем идеальный билд. Но идентичного результата можно добиться и с помощью комментариев... (здесь должна была быть картинка, но вставить не получается)

Гмм.. Значит будет лишь краткий конспект статьи.

ОК, как ни странно, но это правда: я создал утилиту DebRel, полезную ВСЕМ языкам программирования! Комментарии специального вида (D0 - D9 и R0 - R9) позволяют минимальными усилиями добиться "идеального" управления Debug/Release конфигурациями:

  • Debug конфигурация дает нам всю необходимую диагностику! С различной глубиной.

  • В Release конфигурации нет никаких следов Debug-а! Ни байта.

А именно:

  • Конфигурация RN отменяет все остальные. Релиз -- эгоист!

  • Конфигурация DN оставляет лишь строки от D0 до DN. Вы задаете глубину отладки.

В общем, сразу читайте https://ders.by/arch/debrel/debrel.html Там есть подробности, исходники и сам debrel.exe.

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии1

Доступен репозиторий Project Ideas and Resources с десятками пет-проектов для реализации, где разработчики собрали огромное пошаговое руководство к наработке железных навыков программирования. Ресурс предоставляет бесплатный доступ к проектам разного уровня сложности: от простого шахматного приложения до полноценного клона Airbnb. Есть пошаговое руководство для реализации каждого проекта на самых популярных языках программирования: Java, Python, JS, C#, а также ссылки на теоретические выкладки, книги и видео по различным темам программирования.

Теги:
Всего голосов 1: ↑1 и ↓0+2
Комментарии0
1
23 ...

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