Сообщество - Программирование на python

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

969 постов 11 950 подписчиков

Популярные теги в сообществе:

6

Архитектура вместо синтаксиса: CodeSpeak — язык программирования следующего поколения, использующий силу LLM спецификаций

Серия ИИ, ИТ и ПО

Команда разработчиков под руководством Андрея Бреслава, российского разработчика и автора языка программирования Kotlin, представила публичную альфа-версию нового инструмента для разработчиков — CodeSpeak. Платформа позиционируется как язык программирования нового поколения, в котором инженеры пишут спецификации на английском языке, а нейросети берут на себя генерацию, тестирование и рефакторинг исполняемого кода. Полноценное внедрение инструмента позволяет сократить объем кодовой базы в проектах в пять-десять раз. Технология поддерживает интеграцию в существующие сложные проекты на Python.

ИИ-язык, созданный для людей

CodeSpeak — язык программирования нового поколения на базе LLM

CodeSpeak — язык программирования нового поколения на базе LLM

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

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

Основной метрикой эффективности CodeSpeak разработчики называют кратное уменьшение объема проекта, с которым напрямую взаимодействует человек. На примере перевода существующих open-source библиотек под управление платформы, объем исходных файлов сокращается в среднем от шести до десяти раз. Человеку остается поддерживать только короткий текстовый документ, описывающий суть алгоритма, в то время как техническая реализация скрыта под капотом системы тестирования и сборки.

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

Эволюция абстракций: от Kotlin к спецификациям

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

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

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

Архитектура файлов и автоматическое тестирование

Процесс разработки в CodeSpeak кардинально отличается от классического цикла. Точкой входа служит файл с расширением .cs.md, содержащий спецификацию конкретного модуля. Инженер описывает в нем структуру данных, логику обработки и форматы вывода. После запуска команды сборки система анализирует этот файл, собирает контекст проекта и передает план действий языковой модели.

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

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

Анатомия спецификации: как ИИ понимает задачу

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

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

# EmlConverter

Converts RFC 5322 email files (.eml) to Markdown using Python's built-in `email` module.

## Accepts

`.eml` extension or `message/rfc822` MIME type.

## Output Structure

1. **Headers section**: From, To, Cc, Subject, Date as `**Key:** value` pairs

2. **Body**: plain text preferred; if only HTML, convert to markdown

3. **Attachments section** (if any): list with filename, MIME type, human-readable size

## Parsing Requirements

- Decode RFC 2047 encoded headers (e.g., `=?UTF-8?B?...?=`)

- Decode body content (base64, quoted-printable)

Из этой спецификации система автоматически генерирует два артефакта: непосредственно исполняемый Python-компонент (например, eml_converter.py) и набор юнит-тестов (test_eml_converter.py). Система самостоятельно прогоняет тесты и убеждается, что функция корректно обрабатывает структуру файлов, извлекает нужные заголовки и не падает при отсутствии вложений.

Главная ценность такого подхода заключается в жесткой изоляции. Так как спецификация предельно четкая и имеет строгие контракты ввода-вывода, ИИ-агенту не нужно выдумывать, что именно реализовать, или галлюцинировать дополнительный функционал. Нейросеть ограничена рамками Markdown-файла. Если спустя время разработчику понадобится добавить извлечение даты получения письма, он просто допишет одну строку в раздел «Output Structure» в .cs.md файле. После команды сборки CodeSpeak обновит исключительно eml_converter.py и его тесты, совершенно не затрагивая остальную кодовую базу проекта.

Режим частичной интеграции и перевод легаси-кода под управление спецификациями

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

Для работы с уже написанным кодом реализован механизм автоматического реверс-инжиниринга и передачи управления (команда takeover). Инженеру достаточно указать утилите конкретный исходный файл: система проанализирует алгоритмы и извлечет их бизнес-логику, сгенерировав для нее новый текстовый Markdown-файл со спецификацией. В официальном блоге проекта приводится показательный пример с конвертером форматов из библиотеки Microsoft MarkItDown, где CodeSpeak успешно превратил сотни строк Python-кода в лаконичное текстовое описание правил парсинга.

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

Проблема потерянного контекста в ИИ-кодинге

Архитектура CodeSpeak решает одну из главных проблем современных ИИ-помощников вроде Cursor или GitHub Copilot. При использовании агентов инженер формулирует свои намерения в интерфейсе чата. Агент выдает готовый код, который затем отправляется в репозиторий проекта. При этом сам диалог, содержащий истинный смысл и бизнес-логику решения, теряется навсегда.

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

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

Следующий уровень абстракции: ИИ-агенты как авторы спецификаций

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

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

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

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

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

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

Главная проблема бездумного делегирования заключается в потере контроля. Бреслав подчеркивает, что если всю архитектурную работу начнут выполнять исключительно модели, а люди перестанут понимать, как именно работает код, это приведет к потере субъектности инженера. Задача человека — управлять так называемой «сущностной сложностью» (essential complexity), точно формулировать намерения и принимать технические решения. Машина выступает лишь исполнителем, и для корректной постановки задач ей по-прежнему требуется полноценный инженерный склад ума.

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

Ближайшие перспективы проекта

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

Источники

  • CodeSpeak: Software Engineering with AI — CodeSpeak

  • Андрей Бреслав — российский программист, один из создателей языка программирования Kotlin (руководитель группы разработчиков в компании JetBrains), сооснователь сервиса подбора психологов Alter.ru, основатель CodeSpeak.

Показать полностью 1 2
3

Конвертация Excel в TXT на Python (Разделители, Кодировка и Пакетная Обработка)

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

Если вы строите автоматизированные рабочие процессы, программный экспорт Excel в TXT становится необходимым.

В этом уроке вы узнаете:

  • Как конвертировать Excel в TXT на Python

  • Как управлять разделителями (пробел, запятая, табуляция, вертикальная черта, точка с запятой)

  • Как правильно обрабатывать кодировку (избежать искаженного текста)

  • Как пакетно конвертировать несколько файлов Excel

  • Общие подводные камни и соображения по производительности

Мы будем использовать Free Spire.XLS для Python, который предоставляет чистый и надежный API для обработки Excel.

Зачем конвертировать Excel в TXT?

Конвертация Excel в TXT обычно необходима для:

  • Импорта данных в MySQL / Oracle / SQL Server

  • Передачи структурированных данных в унаследованные системы

  • ERP или банковских систем, требующих фиксированных текстовых форматов

  • Пакетной обработки данных

  • Межплатформенного обмена данными

В отличие от Excel (.xlsx), TXT файлы:

  • Легкие

  • Дружественные к системе

  • Имеют настраиваемые разделители

  • Позволяют гибкую кодировку

Тем не менее успешная конвертация зависит от двух критически важных факторов:

  1. Настройка разделителя

  2. Выбор кодировки

Давайте разберем их.

Установите Free Spire.XLS для Python

Мы будем использовать Free Spire.XLS для Python, который предоставляет чистый и надежный API для обработки Excel.

Вы можете установить его с помощью pip:

pip install spire-xls-free

Основная конвертация Excel в TXT на Python

Вот упрощенный основной код:

import os

from spire.xls import *

from spire.xls.common import *

input_folder = r"C:\input_folder"

output_folder = r"C:\output_folder"

for file in os.listdir(input_folder):

if file.endswith(".xlsx"):

workbook = Workbook()

workbook.LoadFromFile(os.path.join(input_folder, file))

sheet = workbook.Worksheets[0]

output_path = os.path.join(

output_folder,

os.path.splitext(file)[0] + ".txt"

)

sheet.SaveToFile(output_path, ";", Encoding.get_UTF8())

workbook.Dispose()

print("Пакетная конвертация завершена.")

Вот и все.

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

Управление разделителем (Критично для совместимости с системами)

TXT файлы полагаются на разделители для разделения столбцов.

Spire.XLS позволяет вам указывать любую строку разделителя:

sheet.SaveToFile("output.txt", ";", Encoding.get_UTF8())

Вот обычно поддерживаемые разделители:

Пример: Экспорт в виде табулированного TXT

sheet.SaveToFile("output.txt", "\t", Encoding.get_UTF8())

Пример: Экспорт в виде разделенного вертикальной чертой TXT

sheet.SaveToFile("output.txt", "|", Encoding.get_UTF8())

Правильный выбор разделителя обеспечивает:

  • Совместимость с инструментами импорта

  • Отсутствие несоответствий данных

  • Правильное распознавание столбцов

Правильная обработка кодировки (Избегайте искаженных символов)

Кодировка — один из самых упускаемых аспектов экспорта TXT.

Spire.XLS предоставляет несколько опций кодировки в классе Encoding.

Вот самые ценные из них:

Почему рекомендуется UTF-8

Encoding.get_UTF8()

Преимущества:

  • Поддерживает многоязычные символы (китайские, японские, арабские и др.)

  • Межплатформенная совместимость

  • Предотвращает порчу символов

  • Идеально для импорта в базы данных

Если ваш TXT файл содержит международные символы, UTF-8 — самый безопасный вариант.

Пакетная конвертация нескольких файлов Excel в TXT

Автоматизация в реальном мире часто требует конвертации нескольких файлов.

Вот как вы можете пакетно обрабатывать всю папку:

import os

from spire.xls import *

from spire.xls.common import *

input_folder = r"C:\input_folder"

output_folder = r"C:\output_folder"

for file in os.listdir(input_folder):

if file.endswith(".xlsx"):

workbook = Workbook()

workbook.LoadFromFile(os.path.join(input_folder, file))

sheet = workbook.Worksheets[0]

output_path = os.path.join(

output_folder,

os.path.splitext(file)[0] + ".txt"

)

sheet.SaveToFile(output_path, ";", Encoding.get_UTF8())

workbook.Dispose()

print("Пакетная конвертация завершена.")

Производительность и рассмотрение больших файлов

При обработке больших файлов Excel:

  • Всегда вызывайте workbook.Dispose(), чтобы освободить память

  • Избегайте одновременного открытия нескольких книг

  • Рассмотрите возможность обработки лист за листом, если размер файла большой

  • Используйте UTF-8 для снижения накладных расходов на кодирование

Для серверной среды:

  • Оберните логику конвертации в функции

  • Реализуйте обработку ошибок (try/except)

  • Записывайте неудачные конвертации

Общие проблемы и решения

1. Китайские символы отображаются искаженно

Причина: Неправильная кодировка

Решение:

Encoding.get_UTF8()

2. Столбцы не разделяются правильно

Причина: Неправильный разделитель

Решение: Подберите разделитель, требуемый целевой системой

3. Числа теряют форматирование

TXT файлы хранят только необработанный текст.

Если требуется форматирование (валюта, даты):

  • Предварительно отформатируйте данные в Excel перед экспортом

  • Или вручную обработайте форматирование перед сохранением

Заключительные мысли

Экспорт Excel в TXT на Python прост, но правильные детали имеют решающее значение. Выбор правильного разделителя и кодировки гарантирует, что ваши данные будут правильно работать с любой следующей системой. Как только основные моменты будут учтены, процесс конвертации становится надежным, масштабируемым и легким в автоматизации.

Показать полностью 3
0

Я сделал Git прямо в Telegram. Подписчики проголосовали за этот эксперимент — вот что получилось в первой версии

Серия GitGram

В канале @system_develope фишка такая: народ голосует, что я буду пилить дальше. На этот раз выиграл «Git в Telegram». Я такой: ладно, хуй с ним, делаю.

Идея тупо простая: кидаешь файл или ZIP боту → он коммитит → версии хранятся → diff, ветки, история — всё в твоём личном треде в канале. Без GitHub, без терминала, без аккаунтов.

Что уже работает (v0.1, бета):

  • /init <имя> — проект + тред

  • кидаешь файл/ZIP → добавляет, распаковывает, .gitignore работает

  • /commit <сообщение> → коммит + пост в тред

  • /ls — файлы в проекте

  • /status — изменения

  • /diff <файл> — цветной unified diff

  • /branch <имя>, /checkout <имя> — ветки

  • /branches — список с текущей

Права: чужой проект не увидишь и не тронешь (owner_id в базе всё держит).

Фейлы по пути:

  • закинул bot.py в самого себя → Telegram заморозил аккаунт (скрин: привидение «Аккаунт заморожен»)

  • MarkdownV2 ломал всё: «can't parse entities» на каждом символе

  • забыл /start после удаления БД → юзер не существует → пиздец

  • файл без проекта → новый проект с именем файла

Сейчас это уже стабильно для одного + тестеров. БЕТА-ТЕСТ ОТКРЫТ!

Кидайте файлы, ломайте, пишите баги в личку или в @sandbox_hardcore.

Канал: @system_develope

Кто юзал бы такое? Или реально никому нахуй не нужно? Пишите в комментах.

Показать полностью 2
4

Права доступа в GitGram. Не баг а фича

Серия GitGram

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

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

Открываю код, начинаю пилить проверки в /commit, /rm, /branch, /checkout...

И тут меня осеняет:

ДА ОНИ ЖЕ УЖЕ РАБОТАЮТ, СУКА!

С самого начала. Без единой лишней строчки.

Почему так вышло:

Всё просто — проекты привязаны к owner_id в базе. Я это сделал просто потому что "логично", чтоб не было бардака. А оказалось — это и есть та самая защита.

Все запросы сами фильтруются по owner_id: /list — только мои проекты /use чужой — "Проект не найден" /commit, /rm, /branch — даже не доходят до выполнения, потому что проект чужой не выбрать

Протестил с другого акка:

  • /list — вижу только свои проекты

  • /use мой_проект — ❌ "Проект не найден"

  • /commit — бот даже не пытается, потому что проекта нет

Итог: хотел безопасность — а она уже была вшита в архитектуру с первого дня.

Такая вот "не баг, а фича" вышла. Иногда самый простой дизайн — самый крепкий.
Скоро релиз Гитграмма, следите на канале

Вся кухня в sandbox — заходи смотреть в реалтайме: @sandbox_hardcore

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

Показать полностью
2

Как за один запрос собрать ИИ-сервис "Нумеролог" на коленке

Как за один запрос собрать ИИ-сервис &quot;Нумеролог&quot; на коленке

Привет, Пикабу! Недавно я наткнулся на пост блогера на VC про создание ИИ-оракула через бесплатные нейронки. Идея крутая, но я решил пойти дальше и автоматизировать процесс до предела. Я разработал систему, которая по одному текстовому запросу превращает любую идею в рабочее локальное приложение. Сегодня я покажу, как запустить свой проект нумеролог, используя всего один «магический» промпт и бесплатные AI инструменты.

Секрет в том, что я не прошу нейросеть «просто написать код». Я использую роль «MVP Fast-Track», которая заставляет ИИ работать как слаженный стартап из трех специалистов. Внутри чата одновременно трудятся Проджект-менеджер, разработчик и дизайнер.

Отправляем промпт в Deepseek

Отправляем промпт в Deepseek

Почему это не обычный чат-бот

Если вы пробовали просить нейронку написать сложный скрипт, то знаете, что на выходе часто получается бесполезная каша. Мой метод это исключает: ПМ сначала анализирует логику, а разработчик пишет код уже под конкретный интерфейс. С помощью этой связки даже сложный нумеролог 2026 (с прогнозами на будущее) собирается за пару минут.

Чтобы приложение ожило, нам нужны «мозги». Я использую OpenRouter, о котором написано в блоге вышеуказанного блогера. Вы просто берёте API-ключ в настройках. Это единый код доступа для вашего аккаунта, а моделей на платформе море, от бесплатных до тяжеловесов вроде Perplexity с поиском в реальном времени. В нашем случае мы выбрали нейросеть stepfun/step-3.5-flash:free. Она бесплатная, шустрая и отлично понимает логику нумерологических расчётов.

Заходим на сайт <!--noindex--><a href="https://pikabu.ru/story/kak_za_odin_zapros_sobrat_iiservis_numerolog_na_kolenke_13745830?u=https%3A%2F%2Fopenrouter.ai&t=https%3A%2F%2Fopenrouter.ai&h=4f5bfcc505f56333b44633954cea4bf355900e84" title="https://openrouter.ai" target="_blank" rel="nofollow noopener">https://openrouter.ai</a><!--/noindex-->, авторизуемся под своей почтой Гугл, нажимаем в правый верхний угол - настройки, с левой стороны выбираем вкладку API Keys - придумываем название ключу, как на скриншоте выше.

Заходим на сайт https://openrouter.ai, авторизуемся под своей почтой Гугл, нажимаем в правый верхний угол - настройки, с левой стороны выбираем вкладку API Keys - придумываем название ключу, как на скриншоте выше.

Получаем готовый API ключ и сохраняем его куда - нибудь. (Позже он нам пригодится)

Получаем готовый API ключ и сохраняем его куда - нибудь. (Позже он нам пригодится)

Шаг 1: Получаем код через Deepseek

Для генерации самого приложения я использую бесплатную нейросеть Deepseek. Она отлично справляется с кодингом и не просит денег за базовые задачи. После того, как мы скормливаем ей промпт, она выдаёт полотно кода. Система сразу закладывает качественные прогнозы нумеролога, основываясь на чистой математике и данных LLM.

Получаем готовый код

Получаем готовый код

Теперь самое важное: как это запустить. Вам не нужно быть программистом. Просто копируете весь полученный код, открываете обычный Блокнот и вставляете текст туда. Затем сохраняете файл, называете его, например, «Нумеролог», и самое главное, нужно поменять расширение с .txt на .html. Т.е это будет выглядеть так: "Нумеролог.html"

Как за один запрос собрать ИИ-сервис &quot;Нумеролог&quot; на коленке

Шаг 2: В чем профит для вас?

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

Как за один запрос собрать ИИ-сервис &quot;Нумеролог&quot; на коленке

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

Подведем итог

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

Сам промпт «команды спецов» и ссылку на гугл-диск с готовым приложением я выложил у себя в тг канале NeuroPlex Networks. Заходите, забирайте из закрепа и создавайте свои микро-сервисы.

А какое приложение вы бы собрали себе за один запрос, если бы могли? Пишите в комментариях, обсудим!

Показать полностью 6

Old File Delete

Серия Мои приложения

Данный пост рассказывает о моём первом опыте вайб-кодинга.

Old File Delete (OFD) — это легкая и эффективная утилита, разработанная для тех, кто ценит минимализм и порядок. Приложение помогает мгновенно очистить выбранные папки от накопившегося цифрового мусора.

Написано на Python, библиотека Tkinter.

Само приложение состоит из 1 экрана:

Old File Delete

Написано с помощью GPT-5-mini. Использовались всего 5 запросов, моих правок абсолютно нет:

Сделай приложение Old File Delete. Используй следующее описание:

Приложение сканирует папку и удаляет файлы, которые не изменялись более $N$ дней.

• os: Основная библиотека для работы с операционной системой. Используется для листинга файлов в директории (os.listdir) и их удаления (os.remove).

• pathlib: Современный интерфейс для работы с путями. Позволяет легко получить время последнего изменения файла (path.stat().st_mtime) и удобно манипулировать путями независимо от формата Windows.

• tkinter.filedialog: Часть стандартной библиотеки GUI. Нужна для вызова стандартного окна Windows, чтобы пользователь мог выбрать папку для очистки, а не вводить путь вручную.

Работаешь на питоне. Библиотека ткинтер. Вверху главного окна название, справа от него кнопка настроек.

Далее кнопка выбора папки, которую надо проверить. Далее текстовое поле для ввода времени в днях. Далее кнопка очистить. После очистки создаётся маленькое окошко, в котором написано, что все ок. В настройках возможность настройти язык. В самом начале работы читается файд "language.txt". В нём только 1 число. Если 1 то язык английский, если 2 то русский.

Убери из этого приложения настройки. Переделай все в бело-серые тона. Фон белый-очень светлый серый. Текст на фоне средне серый. Кнопка средне серый. Текст на кнопке очень светлый серый. фон окошка для числа дней также как и фон, только чуть светлее. Текст такой же. Название по центру. Снизу убери лишнее пространство

Язык только английский

Сделай текст больше до 24. Ужми побокам

Ширина 350

Можете скачать и протестировать его. Буду благодарен за конструктивную критику и идеи.

Сайт приложения:
http://temnik-projecs.tilda.ws/old-file-delete-ru

Скачать:
https://sourceforge.net/projects/old-file-delete/

Больше приложений:
http://temnik-projecs.tilda.ws/apps-ru

Показать полностью 1
2

Напилил ветки в своём Gitgram

Серия GitGram

Всем привет, народ!

Продолжаю пилить Gitgram — это мой безумный эксперимент: полноценный git-подобный репозиторий прямо внутри Telegram-бота. Без GitHub, без браузера, всё через команды в чате.

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

Что напилил:

  • Добавил поле current_branch в таблицу projects

  • Создал новую таблицу branches:

Напилил ветки в своём Gitgram
  • Написал функцию get_current_branch(project_id) — возвращает текущую ветку, по умолчанию main

  • Команда /branches — показывает все ветки проекта + отмечает текущую. Если веток нет — автоматом создаёт main

  • Команда /branch <name> — создаёт новую ветку (с проверкой, что такой уже нет)

  • Команда /checkout <name> — переключается на ветку (обновляет current_branch в базе)

Был баг: sqlite3.OperationalError: no such column: current_branch Решил классикой: удалил старую базу, перезапустил бота — колонка добавилась автоматически. Иногда проще всё снести, чем фиксить миграции 😅

Тесты: Создал ветку test → переключился → /branches показал всё как надо. Работает заебись!

Скриншоты тестов и логов — в моём чате-дневнике, или на канале если интересно.

Теперь Gitgram умеет ветки — следующий шаг будет diffs (сравнение файлов между коммитами/ветками), но это уже завтра.

Что думаете?

  • Нормально ли выглядит идея git в Telegram?

  • Стоит ли дальше пилить PR/merge/issues?

  • Или это уже перебор и пора на этом остановиться? 😄

Пишите в комментах, что дальше пилить — могу сделать голосование в следующем посте.

Показать полностью 1
3

Как создать PDF-портфолио (несколько файлов в одном PDF) с помощью Python

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

Здесь на помощь приходит PDF-портфолио.

В этой статье вы узнаете, что такое PDF-портфолио, чем оно отличается от PDF с вложениями и как создать PDF-портфолио с несколькими файлами с помощью Python.


Что такое PDF-портфолио?

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

PDF-портфолио может содержать:

  • PDF-документы

  • Файлы Word и Excel

  • Изображения

  • Любые другие типы файлов

Каждый файл остаётся независимым и может быть открыт или извлечён отдельно.

Типичные сценарии использования:

  • Юридические или комплаенс-пакеты документов

  • Проектные отчёты с файлами разных форматов

  • Финансовые или аудиторские пакеты

  • Архивирование связанных документов в один файл

⚠️ Важно: PDF-портфолио лучше всего открывать в Adobe Acrobat. Большинство веб-просмотровщиков PDF не поддерживают полностью интерфейс портфолио.

PDF-портфолио vs PDF с вложениями

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

Итог:

  • Используйте PDF-вложения, когда есть один основной документ и дополнительные файлы.

  • Используйте PDF-портфолио, когда все файлы одинаково важны и требуется чёткая организация.

Установка необходимой библиотеки Python

Для создания PDF-портфолио в Python можно использовать Free Spire.PDF для Python, который имеет встроенную поддержку коллекций (портфолио).

Установите библиотеку через pip:

pip install spire-pdf-free

Пример на Python: создание PDF-портфолио

В этом примере мы создадим PDF-портфолио, которое:

  • Добавляет все файлы из одной папки напрямую в портфолио

  • Добавляет файлы из другой папки в отдельные подпапки

Сценарий

  • Folder1/ → файлы добавляются напрямую в портфолио

  • Folder2/ → каждый файл помещается в отдельную подпапку

  • Выходной файл → CreatePDFPortfolio.pdf

Код на Python

from spire.pdf import PdfDocument

import glob

# Папки с файлами

folder_main = "Folder1/*"

folder_sub = "Folder2/*"

# Выходной PDF-портфолио

output_file = "CreatePDFPortfolio.pdf"

# Создаем PDF-документ (контейнер портфолио)

document = PdfDocument()

# Добавляем файлы из первой папки напрямую в портфолио

for file_path in glob.glob(folder_main):

document.Collection.AddFile(file_path)

# Добавляем файлы из второй папки в отдельные подпапки

for index, file_path in enumerate(glob.glob(folder_sub), start=1):

subfolder = document.Collection.Folders.CreateSubfolder(f"SubFolder{index}")

subfolder.AddFile(file_path)

# Сохраняем PDF-портфолио

document.SaveToFile(output_file)

document.Close()

Пояснение к коду

  • PdfDocument() инициализирует новый PDF-портфолио-контейнер.

  • document.Collection.AddFile() добавляет файлы напрямую в портфолио.

  • CreateSubfolder() создаёт логические подпапки внутри портфолио.

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

  • В результате получается один PDF-портфолио, содержащий несколько файлов и подпапок.

Заключение

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

Главные выводы:

  • PDF-портфолио рассматривает файлы как основные объекты, а не дополнения.

  • Идеально подходит для структурированных пакетов документов.

  • Совместимость с просмотрщиками следует учитывать (рекомендуется Adobe Acrobat).

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

Показать полностью 2
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества