Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Классическая игра в аркадном стиле для любителей ретро-игр. Защитите космический корабль с Печенькой (и не только) на борту, проходя уровни.

Космический арканоид

Арканоид, Аркады, Веселая

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
Вопрос из ленты «Эксперты»
tedzukarin
Лига программистов

Ошибка при получении метаданных из гугл таблицы⁠⁠

37 минут назад

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

У меня есть две функции:

import gspread

import pandas as pd

.

def authorization():

....json_keyfile = "451208-af95638d0bdf.json"

....scope = ['https://spreadsheets.google.com/feeds',

'https://www.googleapis.com/auth/drive']

....credentials = ....ServiceAccountCredentials.from_json_keyfile_name(json_keyfile, scope)

....gc = gspread.authorize(credentials)

....return gc

.

def get_df(gc, table_name, sheet_name, columns_name_index=0):

....spreadsheet = gc.open(table_name)

....worksheet = spreadsheet.worksheet(sheet_name)

....data = worksheet.get_all_values()

....df = pd.DataFrame(data[columns_name_index+1:], ....columns=data[columns_name_index])

....return df, worksheet

Они выполняются таким вызовом:

auth = authorization()

df_change_price, change_renta_sheet = get_df(auth, 'Рентабельность', 'Изменения Ренты', columns_name_index=0)

Собственно в чём проблема. Данный кусок скрипта крутился на сервере с февраля 2025 года. Выполняется пару раз в день. Всё работало исправно. Но неделю назад при чтении метаданных:

spreadsheet = gc.open(table_name)

я стал получать ошибку: 'Connection broken: IncompleteRead(6429 bytes read, 3811 more expected)'. Число байт в ошибке меняется, но примерно остаётся таким же

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

В основном скрипте множество таблиц и все они открываются без ошибок, проблема только с конкретно этой. Так же мы пробовали сделать полную копию таблицы "Рентабельность", и она снова не открылась, сделали промежуточную (надёргали нужные столбцы и проставили зависимости) и она открывается. Даже не представляю что можно сделать.

Показать полностью
[моё] Google Таблицы Программирование Разработка Python Вопрос Спроси Пикабу Текст
2
7
empenoso
empenoso
Лига Инвесторов

Технический анализ — это казино для тех, кто не понимает математику риска⁠⁠

5 часов назад

Мне недавно порекомендовали книгу Гэри Нордена «Технический анализ и активный трейдер» (Gary Norden - Technical Analysis & The Active Trader) которая разносит в пух и прах идею теханализа. На русском эта книга никогда не издавалась, но мне попал в руки автоперевод. Мысли в книге мне показались необычными. В этой заметке хочу рассказать о них.

Технический анализ — это казино для тех, кто не понимает математику риска

Индустрия иллюзий вместо науки

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

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

Психология важнее графиков

Автор опирается на поведенческие финансы и работы Канемана и Талеба. Его тезис прост: технический анализ работает не потому, что он описывает рынок, а потому что он описывает психологию трейдеров.

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

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

Как торгуют «умные деньги»

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

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

Миф о надёжности паттернов

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

График — это лишь тень прошлого. Он не показывает главное: кто покупал и почему. Без этого любая линия — самообман.

Вместо индикаторов — контекст и вероятности

Однако во второй части книги автор Гэри Норден не просто критикует, а даёт альтернативу.

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

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

Межрыночная логика против «туннельного зрения»

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

Книга постоянно возвращает читателя к одной мысли: рынок — это система взаимосвязанных сигналов, а не картинка со свечами.

Риск-менеджмент без самообмана

Норден критикует и стандартные методы постановки стопов «по волатильности» или индикаторам. Прошлое не даёт гарантии будущего.

Он предлагает обратную логику: стоп‑лосс настраивается от цели по прибыли. Если потенциальная прибыль 7%, стоп в 5% — абсурд. Это отрицательная математика. Управление риском — это не защита эго, а защита капитала.

Итог

«Технический анализ и активный трейдер» — это не книга про быстрые деньги. А ещё книга разочарует тех, кто ищет простой рецепт. Но составит задуматься тех, кто устал терять деньги по «проверенным стратегиям» и готов увидеть рынок без розовых очков.

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

Автор: Михаил Шардин
🔗 Моя онлайн‑визитка
📢 Telegram «Умный Дом Инвестора»

9 декабря 2025

Показать полностью
[моё] Финансы Python Длиннопост
1
BorodatWSL
BorodatWSL
Лига программистов

«Это просто калькулятор!»: Как я горел, но всё-таки сделал сайт без знаний кода за выходные⁠⁠

23 часа назад

Всем привет. В последнее время из каждого утюга кричат: «Нейросети заменят всех!», «Учись промпт-инжинирингу или умри!». Я решил не верить хайпу, а проверить на своей шкуре: реально ли создать рабочий IT-продукт, если ты вообще не умеешь писать код?

Дано:

  • Я: 1 шт. (код читать умею по слогам, писать — нет).

  • Задача: Сделать веб-сервис «Трекер привычек» с регистрацией, базой данных, личным кабинетом и админкой.

  • Инструменты: Только нейросети (ChatGPT, Claude) и редактор кода.

  • Срок: 3 вечера.

  • Помощник: Кот (обязателен для код-ревью).

Как это было

Сразу скажу: я не написал ни одной строчки кода руками. Вообще. Моя роль была — «Дирижер». Я говорил, что хочу, а нейросеть (в роли оркестра) пыталась это сыграть. Иногда получалось фальшиво, иногда — гениально.

Этап 1. Архитектура Я просто написал промпт: "Я хочу сделать трекер привычек. Распиши структуру файлов и какие технологии лучше взять для новичка". Она выдала стек: HTML, JS, простая база данных. Окей, погнали.

Этап 2. Кодинг Я скармливал задачи кусками:

  1. "Напиши HTML-страницу с формой входа". — Готово.

  2. "Сделай так, чтобы данные сохранялись". — Готово.

  3. "Добавь календарь, где можно отмечать галочками выполненные привычки".

Тут началось самое интересное. Нейросеть — это не магия. Это, блин, калькулятор. Если ты просишь её «сделать красиво», она сделает ерунду. Нужно говорить четко: "Сделай кнопку зеленой, отступ 20px, а при нажатии отправляй запрос вот сюда".

Этап 3. "Галлюцинации" и боль В какой-то момент код перестал работать. Я скидываю ошибку нейросети, она говорит: "Ой, извини, я забыла закрыть скобку". Исправляет. Снова ошибка. В этот момент ты понимаешь: Нейросеть не заменит человека. Она заменит рутину. Но если ты сам не понимаешь логику (хотя бы на уровне здравого смысла), ты далеко не уедешь. Ты должен проверять за ней, как за стажером.

Результат

Спустя 3 вечера, пару литров кофе и десяток "тыгыдыков" от кота — сайт заработал. Реально рабочий сервис.

  • Регистрация работает.

  • Привычки сохраняются.

  • Статистика считается.

Раньше (году в 2019-м) мне пришлось бы учить Python или JS полгода, чтобы такое собрать. Сейчас — выходные.

Выводы

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

  2. Локальные нейронки — топ. Я попробовал запустить модели локально (Ollama), чтобы данные не улетали «проклятым пендосам». Работает медленнее, зато бесплатно и приватно.

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

Если вам интересно посмотреть на сам код, архитектуру приложения — я собрал всё это в архив. Чтобы не захламлять пост, выложил у себя в ТГ-канале

Интересно мнение реальных программистов, кто уже пробовал кодить с ИИ — как впечатления? Реально помогает или больше времени тратишь на исправление багов?

Показать полностью 3 1
[моё] IT Программирование Нейронные сети Своими руками Длиннопост ChatGPT Python Автоматизация Программа Видео YouTube
10
3
stanlik

Я устал объяснять, почему «Убийца Тиндер» стоит дорого. И заменил себя нейросетью⁠⁠

1 день назад

Привет! Я разработчик. И, наверное, каждый в IT хоть раз слышал от знакомых: «Слушай, есть идея на миллион! Приложение для знакомства хомяков. Там делов на вечер, напишешь по-братски? Прибыль пополам».

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

Я решил делегировать отказ энтузиастам — искусственному интеллекту.

За выходные написал бота Архитектора MVP, скрестив Python  и Gemini 3 Pro.
Суть простая: бот выступает в роли злого (но справедливого) Product Manager’а.

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

  1. Вы пишете идею (любую, хоть «Uber для тракторов»).

  2. Бот проводит короткое интервью: задает 2-3 уточняющих вопроса про аудиторию и бюджет.

  3. Уходит «думать» (под капотом цепочка промптов) и возвращает суровый технический документ.

В документе он расписывает:

  • Архитектуру: Монолит или микросервисы?

  • Стек: Python/Go, какие базы данных, нужны ли очереди.

  • Деньги: На чем вы будете зарабатывать и сколько денег сгорит на старте.

  • Риски: Почему это может не взлететь.

Ну и дальше он длинно и подробно расписывает реализацию, это скучно, не буду всю переписку приводить.

Теперь про «Нюанс» (Честно и открыто)

Бот полностью бесплатный. Я оплачиваю API нейросетей из своего кармана. Но есть одно условие, о котором хочу сказать сразу, чтобы не ловить тапки в комментариях.

Бот попросит подписаться на мой канал.

Зачем? Не ради «циферок». Я запускаю публичный эксперимент:

  1. Вы «мучаете» бота своими идеями.

  2. Предлагаете идеи для реализации в канале.

  3. Голосуем и выбираем одну лучшую.

  4. Я каждый месяц реализую эти проекты в коде и выкладываю исходники в Open Source (бесплатно для всех).

Мне кажется, это честная сделка: я даю инструмент и пишу код для сообщества, вы — участвуете в движухе.

Итоги тестов

Нейронка иногда удивляет. Я записал три идеи от нее на ровном месте, пока дебажил код.

Если хотите проверить свою идею на прочность или просто пофаниться — велком.

Ссылка на бота

(Если бот будет тупить — не серчайте, он генерирует большие тексты, это занимает 30-40 секунд).

Показать полностью 3
[моё] Программист Фриланс Telegram Python Чат-бот IT Программирование Длиннопост
7
5
BraveETim

Tasks bot⁠⁠

2 дня назад

Скачать файл можно по ссылке https://github.com/Impulse-20940/tasks_bot
Далее идет настройка:

Создайте проект
Перейдите в Google Cloud Console
Создайте проект. Введите имя проекта и нажмите «Создать»

В меню слева выберите «API и сервисы»

Найдите «Google Drive API» и нажмите кнопку «Включить»

Повторите тоже самое с «Google Sheets API»

В меню слева выберите «API и сервисы» → «Экран согласия OAuth»

Выберите тип приложения «Внешний» (External) и нажмите «Создать»

Перейдите в раздел «Audience»

И добавьте почту команды в «Test users». Убедитесь что изменения сохранились

Теперь мы получим файл credentials.json


Выберите «Desktop app»

Сохраняем его в папку с ботом, должна появится такая структура

Заходим в settings

BOT_TOKEN делаем в @BotFather

SPEADSHEET_ID берем из гугл таблицы с задачами:

READ_RANGE на данном примере берем как 'Лист1!A2:E10' (A2-пропускаем заголовок)

В нашем примере
ROW_TASKS=0
ROW_DONE_OR_NOT=1
ROW_DATE=2
ROW_RESPONSIBLE=3
ROW_COMMENT=4
Именно такие названия заголовков не обязательны, главное в settings правильно указать индексы

Продолжаем настройку
Сначала идет телеграмм id: 'Имя, как указано в таблице задач'

В итоге мы получили такой файл настроек

Далее нам надо сделать установку:
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
Запускаем чтение таблицы!
python tasks_read.py
Сначала вас перекинет в бразуер, делаете там авторизацию от аккаунта команды
Потом появится такая структура проекта:

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

И запустим бота командой python tasks_bot.py

На этом всё!

Показать полностью 21
Python Программирование Google Длиннопост
5
8
ChtoToTamNik
ChtoToTamNik
Программирование на python

Logistics_Analyzer виджет панель и как она работает⁠⁠

5 дней назад

В прошлом посте я рассказывал, что занимаюсь разработкой программы для логистической инфраструктуры в одиночку. (Ознакомиться тут: Разработка своей программы, суровые реальности и как такое продавать? )

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

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



Рассмотрим следующую ситуацию:

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

P.S. Такие случаи встречаются довольно часто, особенно когда компании чрезмерно увеличивают штат сотрудников.

Как упростить эту модель? Программа не является WebView, она десктопная, не имеет серверов и хранит данные локально. "Решение есть!" — скажу я вам. Виджет панель с сохранением состояний в JSON. Получаем универсальную настройку программа у каждого пользователя, но работающего с одной системой.


Элемент включения правого окна панели управления

Элемент включения правого окна панели управления

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

Панель виджетов.

Панель виджетов.

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

А состояние мы просто сохраним в JSON формате.

Нажатие на "Добавить ссылку на дашборд" запускает процесс получения данных из системы. Получается компонент опрашивает БД через отдельное ядро "Есть ли у нас созданные дашборды? Да? Верни название страницы, я создам список для пользователя"

Окно выбора страницы для создания виджета

Окно выбора страницы для создания виджета

Код ответил "Да, у нас есть страница с названием (Тестовый шаблон)", далее дроп окно нам показывает название и имеет возможность выбора из нескольких вариантов.
Для удобства настройки - предоставлена возможность выбор иконки для виджета и создания названия виджета.

Окно выбора иконки. При наведении на иконку, если она GIF - запускается анимация и происходит выделение цветом.

Окно выбора иконки. При наведении на иконку, если она GIF - запускается анимация и происходит выделение цветом.

Вот мы добавили новый тип виджета "Ссылка на дашборды".

Мы добавили новый виджет

Мы добавили новый виджет

При нажатии на элемент виджета программа перенаправит нас на страницу с настроенными графиками и информацией, которые так же настроил пользователь.

Открытая страница дашборда.

Открытая страница дашборда.

Если сравнить с предыдущим постом, видно, что окно с графиком изменилось. Это правильно, ведь для настройки через аналитический куб доступно меню редактирования. В этом режиме пользователь может добавить страницу, новый график или фильтр. Также можно настроить DAX-поле и провести расчеты по нему.

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

Структура панели.

Структура панели.


Ах, да. Говоря о возможностях правой панели, я потерял нить: "Как же это улучшит работу?".

Программа использует переменную, позволяющую выбрать между локальным хранилищем SQLite3 и сетевым. Это обеспечивает совместную работу всех пользователей с одними данными и возможность добавления новых. Человек ИКС настроил скрипты для получения данных, подходящих под программу. Другие пользователи могут не только просматривать наборы кириллицы и латиницы, но и визуализировать данные на карте с интерактивным просмотром. Они также могут создавать свои собственные графики и дашборды.

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


Чрезмерно благодарен за уделенное время прочтения статьи. Впереди третья часть в следующую среду)

P.S. Местами есть разногласия в теме дизайна, активно перевожу на централизованный QSS стиль темы. Это позволит изменять один файл и менять тему везде. Сейчас частично стили интегрированы в код

Показать полностью 10
Программа Python Логистика Автоматизация Проект Длиннопост
1
0
user9453901

Запилил свой бот Телеграм "Грамотей"⁠⁠

5 дней назад


Всем привет. Как человеку, активно общающемуся в соцсетях и замороченному на грамотности, мне всегда нужно отправлять грамотные сообщения. Проверять их можно и в нейронках, но я решил пойти дальше: сначала сделал рабочий билд приложения на андроид (распространяется среди членов моей семьи))), которому ты диктуешь текст на русском языке, а он возвращает его в приличном виде со всеми знаками препинания. Для iOS пока не могу сделать такое же, ибо нет Макбука, поэтому запустил бот телеграм с такой же логикой и даже бОльшим функционалом. По лимитам: 60 секунд голосовые сообщения и 1000 знаков для текста. Если расходы полетят в космос (распознавание голоса для меня - платная услуга), придется пересмотреть цифры. Используется нейронка Yandex. размещен также на серверах Yandex. Холодный старт занимает пару секунд, а потом все проходит очень быстро. Ссылка будет в комментариях, либо наберите в поиске Телеграм "Грамотей". Бот с красивой иконкой в виде листа бумаги с пером на алом квадрате в оранжевом кружке - мой. Приятного пользования и грамотной речи всем вам!

P.S.: фидбек можете оставлять здесь
P.P.S.: как допилю Android-версию, сообщу в отдельном посте

P.P.P.S.: бот НЕ запрашивает никакие личные данные! БЕСПЛАТНЫЙ (пока)!

[моё] Telegram Бот Грамотность Речь Программист Google Python Приложение на Android iOS Текст
16
12
login43536363
Лига программистов

Мой первый MVP пет-проект⁠⁠

5 дней назад

Привет!
В свободное от работы время занимаюсь саморазвитием через практику. Летом этого года я обнаружил, что не могу найти подходящий инструмент, заглушку, которая бы принимала запросы различного вида API. Так родилась идея написать echoer - простой API-сервис, который принимает REST, SOAP и JSON-RPC HTTP запросы. Отвечает сервис данными, которые он получил, в формате JSON: адрес клиента, данные HTTP-запроса и т.п. В связи с тем, что хотелось сохранить адекватные сроке реализации, я выбрал использовать Flask+uWSGI, но парсинг тела запроса - без использования сторонних библиотек. Разве что валидация JSON для RPC при помощи jsonschema.
Честно признаться ни один мой пет-проект еще не достигал стадии, когда его можно (хоть и с натяжкой) назвать готовым продуктом или даже кому-то показать и при этом было бы не очень стыдно. Это довольно необычное ощущение, вдохновляющее. Однажды я бы хотел добавить поддержку GraphQL, WebSockets, а также транспорты для SOAP: JMS, SMTP и XMPP. Но в ближайшие планы это пока не входит.

Если кому-то захочется ознакомитсья с кодом, поиграться с сервисом, он доступен на GitHub: https://github.com/wfrr/echoer/. Там есть необходимые инструкции по запуску, есть Dockerfile для сборки, также доступен уже собранный образ. Очень приветствуются конструктивная критика, идеи для улучшения получившегося сервиса.

Python API Программирование Текст
28
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии