В том и смелость, что пишет своё мнение! Причём тут игнорирование мнения сообщества? Я наоборот радуюсь, когда люди задают вопросы, выдают свои мысли. Если б все боялись критики, то сегодня не было бы половины изобретений наверное. "Что скажут люди?" - вечный вопрос ограниченных людей.. Задавайте вопросы, пробуйте, создавайте.. не получилось - пробуйте снова! Критика тоже важна, но конструктивная.. а не так что: "статья - г*вно, автор - идиот". Автор здесь и получит конструктивную критику, если повезёт!
Да, комменты ожидаемые. Люди не любят смелых мыслей, сразу начинают про дурку писать или другой негатив! Я почти всё прочитал из любопытства и у меня только один вопрос! Кто это всё создал? Законы, мир и т.д. :))
посчитал - 2% :) да и я программист, нормально, относительно, зарабатываю, я вообще не коммерсант.. нет цели заработать своим продуктом.. наверное простоя я идиот :))
Судя по логам вообще не простой, планирую скрыть полный поиск:) Себе его оставлю. Я бота делал для портфолио и для себя, люблю новости почитать, но исключая чушь всякую. Конверсия маленькая, т.к. я не вкладываюсь в рекламу. Процента 4, т.к. многим хватает и 5 ключевых слов. Свыше пяти только платить.
Да, вдохновили меня упростить своего бота. Я его не планировал делать как платный, но люди такое творят, что пришлось бота ограничить. А они теперь покупают его и снова творят дичь :))
Про "сделать под существующий спрос" согласен на 100%
У меня поиск новостей по ключевым словам с рассылкой раз в час. Хочешь добавить больше пяти слов и получать новое каждые две минуты - дай денюжку, оплачу VDS :) для РФ перевод по СБП на ИП моей жены, у которой есть соответствующий ОКВЭД 62.01, т.е. официально все, платим налоги. Для иностранных пользователей сделал перевод на paypal. Трейдеры просят чтобы я сделал каждые 10 секунд рассылку. Буду делать вип в квадрате еще наверное :))
Да, спасибо за такой подробный комментарий, есть над чем подумать и что почитать! А многопоточка ручками сделана, да. Тестировал по разному, вроде корректно работает..
Я сам немного боялся код показывать, т.к. первый раз бота делал :) До статьи достаточно сильно его переработал и наполнил комментариями. Но я бы критику хотел получить, т.к., к примеру, я везде вижу, что люди используют webhook.. в моей архитектуре поможет ли он ускорить взаимодействие пользователя и бота интересно?
Да, я тоже такого не встречал, но здесь хотел именно обзор написать - что да как организовано. А так у меня приложен исходный код и вот класс где показано как я Update обрабатывал.. с комментариями и говорящими названиями статусов и переменных, т.е. любой программист поймёт детали. А для новичков в этом вопросе рекомендую курс, который в статье указал. Там есть подробный разбор входящего сообщения Update.
А у моего бота такая схема: каждые 10 минут java приложение, которое запущено как сервис на моем сервере, сохраняет новости в БД на том же сервере. А пользователи через бота получают эти новости селектами к таблицам БД. В такой схеме есть смысл применять вебхук?
Да, думал об этом, добавлю выбор языка интерфейса первым делом после старта. Я явно пока не делал функционала подсчёта, просто захожу в БД и вижу пользователей, а в лог пишутся команды, которые они выполняли, кстати много поправил исходя из этого. Юзеры творят нереальную, нелогичную дичь. Я больше самоучка в Java, поэтому удивляюсь :)) Планирую снять видео с обзором бота и кодом. Кстати классный у Вас бот, заценил!
Спасибо, интересно было почитать! Я реализовал так: на английском спрашиваю на старте на каком языке человек хочет получать новости (de, es, fr, ru, en), далее либо всё на русском, либо на английском, а источники новостей будут на выбранном языке. Ну и в коде текст тоже как одна переменная, которой присваивается значение исходя из выбранного языка.
Чтобы исключить одинаковые заголовки новостей, я пробегался по одной и той же коллекции два раза через вложенный enhanced for цикл. Т.е. первый заголовок сверяется со всеми остальными заголовками, потом второй сверяется со всеми и так 800 штук, итого 640 000 итераций. Выполнялось за 18 секунд, очень долго. Удалять элемент из коллекции нельзя, т.к. ConcurrentModificationException, через Iterator.hasNext() что-то не заладилось, В итоге сделал так: JaroWinkler jwd = new JaroWinkler();
Стало работать за пол секунды. Причём когда я после второго forEach ставил parallelStream, то творилась какая-то жесть, поэтому второй цикл без parallelStream. Я не знаю, может оптимальнее правда было сделать через Iterator. Что думаете?
Добрый день! Преимущество при гос. закупках. Объясню.. Когда я делал десктопное приложение, я подумал - а кто его купит? Очевидно что обычному пользователю удобнее приложение на телефоне или веб приложение. Кому вообще нужно десктопное приложение!?Вот как раз юр лицам и нужно - некоторым, специфическим. А для физ лиц я сделал платно, т.к. когда тебе дают, к примеру, книгу бесплатно, чаще всего она пылится на полке, а вот если ты купил книгу за две тысячи, то ты её даже читать будешь с некоторым трепетом и дочитаешь :) моя прога реально очень полезная, я сам ей пользуюсь каждый день!
В том и смелость, что пишет своё мнение! Причём тут игнорирование мнения сообщества? Я наоборот радуюсь, когда люди задают вопросы, выдают свои мысли. Если б все боялись критики, то сегодня не было бы половины изобретений наверное. "Что скажут люди?" - вечный вопрос ограниченных людей.. Задавайте вопросы, пробуйте, создавайте.. не получилось - пробуйте снова! Критика тоже важна, но конструктивная.. а не так что: "статья - г*вно, автор - идиот". Автор здесь и получит конструктивную критику, если повезёт!
Нет, ну публикацию я видел кто сделал!! :) уточнил вопрос
Да, комменты ожидаемые. Люди не любят смелых мыслей, сразу начинают про дурку писать или другой негатив! Я почти всё прочитал из любопытства и у меня только один вопрос! Кто это всё создал? Законы, мир и т.д. :))
Да, большая работа! Спасибо!
посчитал - 2% :) да и я программист, нормально, относительно, зарабатываю, я вообще не коммерсант.. нет цели заработать своим продуктом.. наверное простоя я идиот :))
Судя по логам вообще не простой, планирую скрыть полный поиск:) Себе его оставлю. Я бота делал для портфолио и для себя, люблю новости почитать, но исключая чушь всякую. Конверсия маленькая, т.к. я не вкладываюсь в рекламу. Процента 4, т.к. многим хватает и 5 ключевых слов. Свыше пяти только платить.
Да поделюсь, почему нет :) https://t.me/AvandyNewsBot
Да, вдохновили меня упростить своего бота. Я его не планировал делать как платный, но люди такое творят, что пришлось бота ограничить. А они теперь покупают его и снова творят дичь :))
Про "сделать под существующий спрос" согласен на 100%
Спасибо за оценку! Да, там вполне себе есть, что взять.. столько времени его делаю.. код рефакторю. Всё никак вебхук не опробую :)
У меня поиск новостей по ключевым словам с рассылкой раз в час. Хочешь добавить больше пяти слов и получать новое каждые две минуты - дай денюжку, оплачу VDS :) для РФ перевод по СБП на ИП моей жены, у которой есть соответствующий ОКВЭД 62.01, т.е. официально все, платим налоги. Для иностранных пользователей сделал перевод на paypal. Трейдеры просят чтобы я сделал каждые 10 секунд рассылку. Буду делать вип в квадрате еще наверное :))
Встроенными средствами Intellij Idea Ultimate
Да, спасибо за такой подробный комментарий, есть над чем подумать и что почитать! А многопоточка ручками сделана, да. Тестировал по разному, вроде корректно работает..
Я сам немного боялся код показывать, т.к. первый раз бота делал :) До статьи достаточно сильно его переработал и наполнил комментариями. Но я бы критику хотел получить, т.к., к примеру, я везде вижу, что люди используют webhook.. в моей архитектуре поможет ли он ускорить взаимодействие пользователя и бота интересно?
Да, я тоже такого не встречал, но здесь хотел именно обзор написать - что да как организовано. А так у меня приложен исходный код и вот класс где показано как я Update обрабатывал.. с комментариями и говорящими названиями статусов и переменных, т.е. любой программист поймёт детали. А для новичков в этом вопросе рекомендую курс, который в статье указал. Там есть подробный разбор входящего сообщения Update.
А у моего бота такая схема: каждые 10 минут java приложение, которое запущено как сервис на моем сервере, сохраняет новости в БД на том же сервере. А пользователи через бота получают эти новости селектами к таблицам БД. В такой схеме есть смысл применять вебхук?
Кстати да, вот так можно! Прикрутим, спасибо! Главное проверить, что languageCode не пустая.
Да, думал об этом, добавлю выбор языка интерфейса первым делом после старта. Я явно пока не делал функционала подсчёта, просто захожу в БД и вижу пользователей, а в лог пишутся команды, которые они выполняли, кстати много поправил исходя из этого. Юзеры творят нереальную, нелогичную дичь. Я больше самоучка в Java, поэтому удивляюсь :)) Планирую снять видео с обзором бота и кодом. Кстати классный у Вас бот, заценил!
Спасибо, интересно было почитать! Я реализовал так: на английском спрашиваю на старте на каком языке человек хочет получать новости (de, es, fr, ru, en), далее либо всё на русском, либо на английском, а источники новостей будут на выбранном языке. Ну и в коде текст тоже как одна переменная, которой присваивается значение исходя из выбранного языка.![]()
![]()
Вот я решал такую задачу для своего бота:
Чтобы исключить одинаковые заголовки новостей, я пробегался по одной и той же коллекции два раза через вложенный enhanced for цикл. Т.е. первый заголовок сверяется со всеми остальными заголовками, потом второй сверяется со всеми и так 800 штук, итого 640 000 итераций. Выполнялось за 18 секунд, очень долго. Удалять элемент из коллекции нельзя, т.к. ConcurrentModificationException, через Iterator.hasNext() что-то не заладилось, В итоге сделал так:
JaroWinkler jwd = new JaroWinkler();
headlinesToShow.parallelStream()
.forEach(h1 -> headlinesToShow.forEach(h2 -> {
int compare = jwd.compare(h1.getTitle(), h2.getTitle());
if (compare >= 85 && compare != 100) {
headlinesJw.add(headline1); }
}));
Стало работать за пол секунды. Причём когда я после второго forEach ставил parallelStream, то творилась какая-то жесть, поэтому второй цикл без parallelStream.
Я не знаю, может оптимальнее правда было сделать через Iterator. Что думаете?
Добрый день! Преимущество при гос. закупках. Объясню.. Когда я делал десктопное приложение, я подумал - а кто его купит? Очевидно что обычному пользователю удобнее приложение на телефоне или веб приложение. Кому вообще нужно десктопное приложение!?Вот как раз юр лицам и нужно - некоторым, специфическим. А для физ лиц я сделал платно, т.к. когда тебе дают, к примеру, книгу бесплатно, чаще всего она пылится на полке, а вот если ты купил книгу за две тысячи, то ты её даже читать будешь с некоторым трепетом и дочитаешь :) моя прога реально очень полезная, я сам ей пользуюсь каждый день!