От «Hello World» до получения патента и включения программы в реестр российского ПО

В 2017 году я начал изучать Java. И, чтобы как-то визуализировать результат трудов, я решил сделать десктопное приложение.

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

ce255763f5d247db3ba59111644bb6d6.jpg

Функциональность планировалась такая:

  • Поиск всех новостей за период

  • Поиск по ключевым словам

  • Поиск по введённому слову

В актуальной версии приложения добавлен ассистент

На всякий случай напомню, что статья не про дизайн UI

На всякий случай напомню, что статья не про дизайн UI

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

Утром открыли News.exe, нажали одну кнопку, почитали заголовки, посмотрели на Топ-10 слов, проверили, почему слово «подписал» в топе, и стали в курсе основных событий на текущий момент. Или прочитали новость, что продаётся квартира Семёна Слепакова в Москве (потратили 3 секунды своей жизни на прочтение и 3 секунды на мысль «зачем мне эта информация»), добавили правой кнопкой в Excluded «слепаков», и больше новостей с ним вы не получите. Есть риск потерять важную информацию, добавляя слова-исключения, но, думаю, вряд ли Семён изобретёт полезное лекарство или выплатит дивиденды :) Однако, если изобретёт, то в таблице «Топ-10» вы это точно увидите!

Умножьте 6 секунд на 100 или 200 бессмысленных заголовков, которые вы прочитаете за весь день, вот вам и экономия времени… позвоните близким! Вопрос с поиском новостей я решил за вас (а Павел Дуров не решил… читаю в Telegram много лишнего… Павел, добавьте пожалуйста возможность создавать слова-исключения как у меня :)

С актуальными возможностями программы можно ознакомиться на сайте. Там же можно скачать и опробовать демо-версию (windows, linux).

Возможности демо-версии

  • Поиск всех новостей с отсевом, поиск по одному слову и поиск по ключевым словам (3 источника RSS, период, за который ведётся поиск — 24 часа)

  • Добавление слов для отсеивания заголовков при поиске всех новостей (нажать правую кнопку мыши на заголовке и выбрать Excluded)

  • Три ключевых слова для поиска

  • Просмотр всех новостей в архиве по слову (даблклик) в таблице анализа «Топ-10» (за 24 часа). В «Топ-10» применяется метод схожести строк Джаро-Винклера.

  • Удаление/восстановление слов в «Топ-10»

Демонстрация работы приложения

b4087d22886c05f621a0eac1f606d7ae.gif

Эволюция интерфейса

Первый, представленный небольшой публике:

89391d4890fde94bc917c77ae116dde1.png

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

bb060d23717399155144049f633ef50d.png

Приняв критику, я произвёл доработки! Теперь интерфейс выглядит ещё хуже:

Дизайном должны заниматься дизайнеры. Если есть желание в этом помочь — пишите!

Дизайном должны заниматься дизайнеры. Если есть желание в этом помочь — пишите!

❯ Патент

Как много в этом слове… бюрократии, подумаете вы подсознательно, и будете категорически НЕ правы! Завершив разработку программы, ради интереса, я решил оформить на неё патент.

Предупреждение! Мой пост — мой путь! Проверяйте информацию прежде чем принимать решения.

Первый шаг. Оформление электронной подписи.

Подпись я оформлял здесь, выбрав вариант «Для ФЛ — Для личных целей» (подходит для получения патента, включения в реестр российского ПО и т.д.). Заплатил онлайн около 1600 рублей только за саму подпись, т.к. у меня уже был их токен (красная флешка, на которую записывают ключ). Токен стоит тоже около 1600 р., уточняйте.

Скрин с выбором типа электронной подписи

0a51ce16836307221402d1a898241efd.png

Также съездил в удостоверяющий центр, сфотографировался, записал ключ на токен. Всё быстро и понятно.

Второй шаг. Подача заявки на патент.

Варианта подачи заявки два: через Госуслуги и через Федеральный институт промышленной собственности (далее ФИПС). Я решил действовать через ФИПС… не знаю, почему.

Зарегистрировался на сайте ФИПС, подал заявку. Её заполнение интуитивно понятно (о себе, о программе, документы). К заявке приложил:

  • чек об оплате пошлины

    Как физическому лицу мне это стоило 3000 р. Я открывал Сбербанк Онлайн и по инструкции ФИПСа сверял все реквизиты. Сбер многое подсказал, спасибо, но я перепроверил. В наше время верить нельзя никому, порой даже самому себе… мне — можно!

  • реферат (самый важный документ, т.к. то, что вы в нём напишете, будет в окончательном пакете документов, а делается просто в ворде и сохраняется как pdf)

Пример реферата

РЕФЕРАТ

Автор: Фамилия Имя Отчество.
Правообладатель: Фамилия Имя Отчество.

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

Тип ЭВМ: IBM PC-совмест. ПК
Язык: Java
ОС: Windows 10
Объем программы: 85 Мегабайт

  • Согласие на обработку персональных данных

  • Остальные материалы. Я приложил скриншот интерфейса и весь код из Intellij Idea (File — Print. Чтобы уменьшить размер файла, надо убрать галочку «Print as graphics». Далее выбираем имя принтера «Microsoft Print to PDF». Если такого нет — установите)

В завершение подписываем заявку электронной подписью.

Третий шаг. Ждём решения по заявке.

FAIL: через 3 недели пришло письмо с замечанием.

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

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

И предложили вернуть деньги.

Я переписал эту часть реферата на:»Также имеется возможность подключения сторонней базы данных SQLite для оффлайн-работы приложения.» и отправил исправленный реферат, предварительно подписав его электронной подписью.

Через неделю пришло уведомление на электронную почту, что мне выдан патент (в бумажном виде документы пришли заказным письмом через две недели).

Патент

f37ee8b9a1d1324e608102a756557b61.jpg

Итоги.

И где бюрократия? Может, я и не описал некоторые мелочи, но вся информация есть на сайтах, которые я приложил. Берём и делаем, всё. Вот он, успех — в действии. И, скорее всего, программу сочли полезной, т.к. был обязательный пункт, где указываешь, что она делает и в какой области её можно применить. Я также уверен, что такая программа как новостной агрегатор вряд ли бы прошла проверку на уникальность, их пруд пруди, а вот как анализатор новостей — вполне себе!

P.S. Я знаю, что в патенте надо было писать «Аванди Ньюс Анализис», но «ис» я благополучно потерял почему-то.

❯ Реестр программного обеспечения (российского ПО)

Многим знакома ситуация, когда идёшь на экзамен в надежде получить хотя бы 3, получаешь 4 и негодуешь — почему не 5. Вот и я, получив патент, решил продолжить и подал документы на включение программы в реестр российского ПО, т.к. ничего похожего в нём не нашёл!

Официальный сайт реестра. Я зарегистрировался, используя учётную запись Госуслуг. Здесь так же! Без электронной подписи (УКЭП) — никуда. Далее на главной странице выбрал «Подать заявление» — «Заявление о включении сведений». Открылась страница на пункте 1/13 «Основные сведения».

Я подавал заявку 3 раза. Здесь последний вариант заполнения с моими комментариями:

Пример заполнения

Везде указывал название программы в соответствии с патентом.

Везде указывал название программы в соответствии с патентом.

В поле «Основной класс» много вариантов, найдите тот, который подходит программе. В поле с «Кодом» отображаются варианты, исходя из «КлассаРади заполнения этой страницы я создал аккаунт на хостинге sprinthost.ru c тарифом Плюс-1 за 219 рублей в месяц (на год дешевле) и сделал сайт.

В поле «Основной класс» много вариантов, найдите тот, который подходит программе.
В поле с «Кодом» отображаются варианты, исходя из «Класса»

Ради заполнения этой страницы я создал аккаунт на хостинге sprinthost.ru c тарифом Плюс-1 за 219 рублей в месяц (на год дешевле) и сделал сайт. Установщик программы я выложил в облако и на него дал ссылку (также можно выложить на хостинге где расположен сайт).
Ради заполнения этой страницы я создал аккаунт на хостинге sprinthost.ru c тарифом Плюс-1 за 219 рублей в месяц (на год дешевле) и сделал сайт.
Установщик программы я выложил в облако и на него дал ссылку (также можно выложить на хостинге где расположен сайт).
Так как я разрабатывал на Java, то программа работает и в Linux.Полного тестирования не проводил, т.к. не было смысла, поэтому указал только Windows. Сейчас программа прекрасно работает и на Linux.

Так как я разрабатывал на Java, то программа работает и в Linux.
Полного тестирования не проводил, т.к. не было смысла, поэтому указал только Windows. Сейчас программа прекрасно работает и на Linux.

Промежуточная версия программы работала с СУБД Оракл. Я когда-то давно решил переделать на SQLite и не ошибся. С Ораклом в реестр не попасть.

Промежуточная версия программы работала с СУБД Оракл. Я когда-то давно решил переделать на SQLite и не ошибся. С Ораклом в реестр не попасть.

1) Инструкция — описал, как устанавливать программу, скачанную по ссылке;2) Функциональные характеристики — приложил мануал по программе, где показан весь функционал с приложением скриншотов;3) Жизненный цикл — описал, как пользователь может обратиться к разработчику в целях устранения неисправностей, или если он имеет какие-то предложения по улучшению программы. Также указал конкретного ответственного сотрудника, т.е. себя, с контактами.Для подачи обращений пользователем я добавил на сайт чат JivoSite (мой друг его разрабатывает, посоветовал). Очень удобная штука!4) Эксплуатация экземпляра — описал порядок установки, эксплуатации программы и перечислил её основные функциональные возможности.

1) Инструкция — описал, как устанавливать программу, скачанную по ссылке;
2) Функциональные характеристики — приложил мануал по программе, где показан весь функционал с приложением скриншотов;
3) Жизненный цикл — описал, как пользователь может обратиться к разработчику в целях устранения неисправностей, или если он имеет какие-то предложения по улучшению программы. Также указал конкретного ответственного сотрудника, т.е. себя, с контактами.
Для подачи обращений пользователем я добавил на сайт чат JivoSite (мой друг его разрабатывает, посоветовал). Очень удобная штука!
4) Эксплуатация экземпляра — описал порядок установки, эксплуатации программы и перечислил её основные функциональные возможности.

1) Инструкция - описал как устанавливать программу, скачанную по ссылке;2) Функциональные характеристики - приложил мануал по программе, где показан весь функционал с приложением скриншотов;3) Жизненный цикл - описал как пользователь может обратиться к разработчику в целях устранения неисправностей или если он имеет какие-то предложения по улучшению программы. Также указал конкретного ответственного сотрудника, т.е. себя, с контактами.Для подачи обращений пользователем я добавил на сайт чат JivoSite (мой друг его разрабатывает, посоветовал). Очень удобная штука!4) Эксплуатация экземпляра - описал порядок установки, эксплуатации программы и перечислил её основные функциональные возможности.

Тут я просто нажал далее

Мои данные. ФИО и т.д.

Мои данные. ФИО и т.д.

Продублировал снова свои данные

Продублировал снова свои данные

Приложил патент (свидетельство)

Приложил патент (свидетельство)

Здесь по-любому надо выбрать год 2022 и прям руками вбить цифру 0 в двух строках с суммой, т.к. автоподстановка нуля не принимается. Также не получалось без прикреплённого документа завершить подачу заявления, поэтому сделал файл net.pdf, в котором написал, что «оплат не было», и прикрепил его 2 раза. Может, я и ошибаюсь, но прошло... вроде как. Жду замечаний.

Здесь по-любому надо выбрать год 2022 и прям руками вбить цифру 0 в двух строках с суммой, т.к. автоподстановка нуля не принимается. Также не получалось без прикреплённого документа завершить подачу заявления, поэтому сделал файл net.pdf, в котором написал, что «оплат не было», и прикрепил его 2 раза. Может, я и ошибаюсь, но прошло… вроде как. Жду замечаний.

Т.к. разработчик только я, везде указал 1

Т.к. разработчик только я, везде указал 1

Чтобы сотрудники реестра не тратили время, я купил Свидетельство, доказывающее что домен https://avandy-news.ru/ принадлежит мне (это стоило 300 рублей на год).
Чтобы сотрудники реестра не тратили время, я купил Свидетельство, доказывающее что домен https://avandy-news.ru/ принадлежит мне (это стоило 300 рублей на год).
Если все предыдущие шаги были заполнены корректно, то нажимаем

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

FAIL: через неделю пришли замечания:

1) На репозиторий GitHub нельзя ссылаться, а в первом заявлении я сделал именно так. Пока не пришли эти замечания, я делал сайт, т.к. знал, что GitHub точно не пройдёт. Но мне было важно с чего-то начать, чтобы мне показали, где и что дорабатывать. Разведка боем, как говорят.

15cc22af84ec13c42f2f74ec65e742a1.png

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

8448bad62b841cc1df45b7f410e2523e.png

3) Ну здесь я не сразу понял, что автоподставленный сайтом ноль != нолю вбитому руками (а надо руками, оказывается), написал »0,01 копейка» в двух полях, что, само собой, является 100% суммой выплат в пользу иностранных лиц. Просто ошибся я, но иначе заявление было не подписать, была ошибка, что этот раздел заполнен некорректно.

66ce5050137e8d10ae67f649f650dfc6.png

Данные нарушения я исправил, отозвал старое неправильное заявление (автоотмена происходит не сразу, а новое не подашь, пока старое не отзовёшь… кстати, отзыв тоже надо подписывать электронной подписью). Что удивительно — по заявке с замечаниями был статус «Передано на регистрацию». Я написал в поддержку реестра и мне ответили, что я могу вручную отозвать заявление или же дождаться, когда его статус поменяется на «Отказано».

Через 4 дня пришло новое заключение о проверке и, открыв его, я обнаружил во всех полях зелёное «Да». Статус — «Передано на регистрацию».

Прошло 3 дня, и статус поменялся на «Зарегистрировано» и тут же сменился на «Готовится экспертная оценка» (уведомления о смене статуса приходят на электронную почту от Госуслуг).

Ещё через две недели статус сменился на «На доработке заявителем».

FAIL: Первое замечание (написано как комментарий в самой заявке): «Ссылка на экземпляр: Такой страницы нет (404)». Ссылка на файл с дистрибутивом должна быть активна на протяжении всей проверки. Я в процессе синхронизации её запорол.

Второе: «Проверьте корректность указания Правообладателя на экземпляре ПО, в частности: в мета-свойствах файлов дистрибутива; в файлах лицензий (COPYRIGHT, LICENSE, EULA и т.п.); в окне «О программе» и т.п.». Указал свои ФИО как в патенте везде, где мог, в том числе писал и на латинице (с кириллицей кодировка местами шалит).

Третье: «В заявлении указано: Liberica JDK, в составе дистрибутива — Java 8 SE».

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

Замечаний не последовало, и через день статус сменился на «Дана экспертная оценка».

FAIL: через пару дней пришло уведомление от Госуслуг (2 раза), что заявление закрыто. Без объяснения причин! Я разозлился (а некоторые предпочитают поплакать) и уже представлял как пишу гневное письмо в Минцифры. Зашёл купить кофе, матерясь в мыслях, и до меня дошло почему пришло 2 раза. В тот день утром я удалил с сайта Реестра 2 старые заявки, это по ним и пришёл статус. Третья заявка была активна. В общем, не спешите с выводами как я, господа! :)

Прошло 2 недели, статус — «Подготовка голосования».

Ещё 2 недели, статус — «Принятие решения» и через 5 минут «Включено в реестр».

Заявление подано 30.03.2023, закрыто — 17.05.2023. Итого — полтора месяца (не забываем, что было много праздников и выходных).

Ссылка открывается только из РФ: https://reestr.digital.gov.ru/reestr/1483979

Мишн комплитед! Теперь надо как-то это продавать. Или как быть, коллеги?

I need help

1) Если ты хочешь помочь с дизайном и владеешь JavaFX или у тебя есть другие идеи, как сделать интерфейс стильным, модным и молодёжным, то с радостью приму тебя в свою команду! Мне этим заниматься просто нецелесообразно, т.к. я уже несколько лет работаю в Oracle PL/SQL и развиваюсь в его сторону. Джавулька — для души!

Мой дизайнерский «уровень» привёл к такому наброску
750edc100d3f32482351d507af0a7d6f.png

2) Если ты хочешь переписать это на Андроид — милости просим!

3) Веб версию делать не планировал, т.к. много таких агрегаторов, но если ты хочешь, то давай попробуем!

4) Запустите кто-нибудь jar на Mac, если установлена Java. Отпишитесь, будет ли работать :)

P.S. Мой пост считаю мотивационным и хочу, чтобы вы не тратили время на те мелочи, которые описал я. Следующий мотивационный пост будет про то, как я захотел стать диджеем и стал, конечно же, потому что я не только хочу, а ещё и пробую, как вы заметили, да и музыку уже лет двадцать сотворяю на досуге: Avandy Electronics

© Habrahabr.ru