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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

❯  Государственная регистрация программы для ЭВМ

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

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

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

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

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

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

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

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

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

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

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

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

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

РЕФЕРАТ

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

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

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

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

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

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

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

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

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

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

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

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

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

Свидетельство

Итоги

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

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 точно не пройдёт. Но мне было важно с чего-то начать, чтобы мне показали, где и что дорабатывать. Разведка боем, как говорят.

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

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

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

Через 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 и развиваюсь в его сторону. Джавулька — для души!

Мой дизайнерский "уровень" привёл к такому наброску

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

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

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

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

Комментарии (23)


  1. ELENA_CHE
    25.05.2023 11:15
    +1

    "о, сохраню себе в закладки"


    1. mrprogre Автор
      25.05.2023 11:15
      +2

      Спасибо, жена :)


  1. anonymousmaharaj
    25.05.2023 11:15
    +2

    Крутой гайд. Хорошая работа (помимо UI, как говорится).


    1. mrprogre Автор
      25.05.2023 11:15
      +1

      Пользуйтесь! Если кому-то нервы сбережёт - уже не зря писал его.


      1. anonymousmaharaj
        25.05.2023 11:15
        +2

        Я макосом пользуюсь. Если будет порт, поставлю.


  1. rsashka
    25.05.2023 11:15
    +2

    Вы случаем не перепутали термины "патент" и "регистрация"?
    У вас это даже на скане написано.


    1. mrprogre Автор
      25.05.2023 11:15

      Может и перепутал, тут нужна помощь юристов! Товарищи юристы, что скажете?


    1. mrprogre Автор
      25.05.2023 11:15
      +2

      да, вот шикарная статья, это не патент, надо будет подкорректировать статью!


  1. dinusya
    25.05.2023 11:15
    +2

    Exclude - то что надо ????????


    1. mrprogre Автор
      25.05.2023 11:15
      +1

      Спасибо! У меня сейчас почти 2 тысячи слов-исключений, а отсев составляет 80%.. вот сейчас из 504 новостей я вижу 99 :)


  1. vdo2000
    25.05.2023 11:15
    +1

    А что дает всё это? Какой с этого профит вы хотите получить в дальнейшем?

    В статье так и не увидел задачи, для чего вообще вам понадобился патент


    1. mrprogre Автор
      25.05.2023 11:15
      +2

      Хороший вопрос! Патент для того, чтобы попасть в Реестр российского ПО.. а в реестр для того, чтобы продавать ПО юр.лицам без НДС в 20%. Я считаю, что любая работа должна оплачиваться! А для ИТ-сообщества я не обфусцировал свой код с алгоритмами.. любой джавист легко добавит мой джарник себе как библиотеку и позаимствует что нужно :)


  1. R2SAAF
    25.05.2023 11:15
    +2

    Спасибо за доступность.

    Наше предприятие на днях тоже попало в перечень. Пока только один проект, но их много. Тоже была "разведка боем".


    1. mrprogre Автор
      25.05.2023 11:15
      +1

      Поздравляю Вас!! А какие были сложности, если были?


  1. Wrench_IT
    25.05.2023 11:15

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

    А не подскажите, где можно посмотреть полные требования? Нагуглил некую методичку-рекомендации, но она двухгодичной, минимум, давности, и сам сайт на Тильде убрали, только в кэше Гугла и остался. Или там любое ПО с открытым кодом подойдет? Dotnet актуальный, например, допустим?


    1. mrprogre Автор
      25.05.2023 11:15
      +1

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


  1. mrprogre Автор
    25.05.2023 11:15

    delete


  1. Drobotun
    25.05.2023 11:15
    +4

    Это не патент. Это свидетельство о государственной регистрации программы для ЭВМ. Программы для ЭВМ являются объектами авторского, а не патентного права. Патент можно получить либо на изобретение (это способ или устройство) либо на полезную модель (это устройство). Более подробно это описано в четвертой части ГК РФ.


    1. mrprogre Автор
      25.05.2023 11:15
      +2

      Да, спасибо! Подкорректирую статью!


  1. schulzr
    25.05.2023 11:15

    Добрый день! Спасибо. А есть очевидная польза от таких бумаг физическому лицу? Мне вот не приходит на ум пока что :)


    1. mrprogre Автор
      25.05.2023 11:15
      +2

      Добрый день! Преимущество при гос. закупках. Объясню.. Когда я делал десктопное приложение, я подумал - а кто его купит? Очевидно что обычному пользователю удобнее приложение на телефоне или веб приложение. Кому вообще нужно десктопное приложение!?Вот как раз юр лицам и нужно - некоторым, специфическим. А для физ лиц я сделал платно, т.к. когда тебе дают, к примеру, книгу бесплатно, чаще всего она пылится на полке, а вот если ты купил книгу за две тысячи, то ты её даже читать будешь с некоторым трепетом и дочитаешь :) моя прога реально очень полезная, я сам ей пользуюсь каждый день!


      1. schulzr
        25.05.2023 11:15
        +1

        Стало яснее! спасибо


    1. Drobotun
      25.05.2023 11:15
      +3

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