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

Герои Войны

Стратегии, Мидкорные, Экшены

Играть

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

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

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

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

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

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

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Python + Компьютерная помощь

С этим тегом используют

Программирование IT Программист Обучение IT юмор Разработка YouTube Компьютер Windows Помощь Сборка компьютера Видеокарта Компьютерное железо Ноутбук Все
31 пост сначала свежее
4
Pavel.DW
Pavel.DW
1 месяц назад

Нужна помощь - сканы PDF⁠⁠

Нужна помощь - сканы PDF Сканирование, Pdf, Png, Макрос, Рассылка, Офисные будни, Офисные работники, Помогите найти, Помощь, Компьютерная помощь, Python, Программа, Нейронные сети, Сканер, Решение проблемы

Товарищи, помогите.

Знает ли кто-нибудь, использует ли кто-нибудь бесплатную простенькую программу по типу WinScan2PDF, с помощью которой можно отсканированные страницы сохранять не в один огромный файл pdf со всеми отсканированными страницами, или каждую отдельную страницу в отдельные файлы pdf/png/jpeg, что собственно WinScan2PDF и умеет делать, а сохранять из общей кучи страницы группами по две страницы в отдельные файлы pdf, по три страницы в отдельные файлы pdf и так далее.

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

На МФУ Kyocera можно конечно сканировать каждое письмо отдельно (сейчас именно так и делаю), но для этого необходимо стоять возле МФУ и тупо механически подкладывать каждое новое письмо и нажимать кнопочки "повтор" и "старт". По времени это занимает примерно один час.
Однако на данном МФУ, с помощью программы WinScan2PDF можно отсканировать всю пачку сразу, получив при этом как вариант 500 файлов png. Для сканирования всей пачки потребуется 20-30 минут времени (потому что в процессе отсутствуют паузы на подкладывание новых писем и нажатие кнопочек), при этом не нужно стоять и тратить время у самого МФУ - можно заняться какой-нибудь параллельной работой, пока МФУ сканирует. Но в таком случае требуется какая-то программа, или макрос в excel (сам писать макросы я пока-что не умею) или какой-то иной метод, с помощью которого можно было бы быстро объединить 500 файлов png группами по два файла по порядку, что бы получились 250 двухстраничных файлов pdf,
Ну или если это 250 писем по 4 страницы, то сохранить из 1000 сканов png 250 файлов pdf по 4 страницы, и тому подобные варианты.

Кто знает готовое решение, подскажите пожалуйста.

Дополнено:
Огромное спасибо @almelion за помощь! Готовое решение находится в комментах по ссылке: #comment_351913358

Показать полностью
[моё] Сканирование Pdf Png Макрос Рассылка Офисные будни Офисные работники Помогите найти Помощь Компьютерная помощь Python Программа Нейронные сети Сканер Решение проблемы
40
3
romansmontage
romansmontage
1 месяц назад
Умный дом

Управляем лампами Xiaomi клавиатурой - почему это мастхев⁠⁠

Недавно настроил себе управление лампочкой Xiaomi с клавиатуры и это действительно оказалось очень удобно.

Поэтому решил рассказать как это сделать без знаний программирования и популяризировать такой подход. Ведь мы экономим деньги и пространство в комнате, не нужно покупать умные колонки или пульты. А на настройку уйдет 10-20 минут.

Управляем лампами Xiaomi клавиатурой - почему это мастхев Умный дом, Xiaomi, Autohotkey, Python, Ahk, Компьютерная помощь, Питон, Горячие клавиши, Продуктивность, Автоматизация, Интернет вещей, Mi home, Лампочка, RGB, Видео, YouTube, Длиннопост

ШАГ 1/4: Устанавливаем программы:

Autohotkey - https://www.autohotkey.com/

Python - https://www.python.org/downloads/

Microsoft C++ Build Tools (поставить галоку только на первом блоке - "Разработка классических приложений на C++" и нажать установить) - https://visualstudio.microsoft.com/visual-cpp-build-tools/

ШАГ 2/4: В мобильном приложении Xiaomi Home создаем аккаунт с паролем (!) и подключаем к нему лампу.

ШАГ 3/4: Открываем командную строку на пк и пишем:

pip install python-miio - устанавливаем питон модуль для управления устройствами на протоколе miiot

miiocli cloud - после ввода этой команды, должно появиться поле username, куда вводим нашу почту от аккаунта Xiaomi Home, а после этого пароль в поле "password"

Если все верно, мы увидим все наши Xiaomi устройства и их токен, модель и ip: эти 3 параметра, это все что нужно, чтобы правлять ими.

ШАГ 4/4:

Скачиваем готовый скрипт с гитхаба: https://github.com/RomanScripts/xiaomiLampAHK

Распаковываем архив и подставляем в файл MainXiaomiLamp.ahk переменные model1, ip1, token1 ваши модель, айпи и токен лампы, которые мы видели в командной строке.

Запускаем этот файл и все!

Горячие клавиши для управления лампой изначально такие:

Управляем лампами Xiaomi клавиатурой - почему это мастхев Умный дом, Xiaomi, Autohotkey, Python, Ahk, Компьютерная помощь, Питон, Горячие клавиши, Продуктивность, Автоматизация, Интернет вещей, Mi home, Лампочка, RGB, Видео, YouTube, Длиннопост

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

Спасибо за внимание!

Показать полностью 1 1
[моё] Умный дом Xiaomi Autohotkey Python Ahk Компьютерная помощь Питон Горячие клавиши Продуктивность Автоматизация Интернет вещей Mi home Лампочка RGB Видео YouTube Длиннопост
5
Avenir.Sirgun
Avenir.Sirgun
2 месяца назад
Серия Linux

Linux и минимальный комфорт⁠⁠

выяснено экспериментально.

Система 64 бит .
минимальный комфорт :
проц 4ядра по 3ггц, озу 2шт по 4гб двухканал.
1 диск под систему, 4 диска -хранилище.
сетевая карта минимум 1шт 100мбит с поддержкой linux.
видюха под текущий linux kernel .
тишина важный фактор: пк должно быть не слышно вообще с расстояния 1 метр при 100%% нагрузке.
мыш клава моник -- лишь бы работали.
флопик 3,5 желательно.
компактный размер.
без иллюминаций.
Для дома, небольшой сети до 4х компов в такой конфигурации: 3д, программирование, музыка, видео(если видяху помощнее поставить вместо офисной), планирование, сервер почты файлов сообщений ....

Linux и минимальный комфорт Linux, Программирование, IT, Компьютерная помощь, Компьютерное железо, Программа, Python, Сборка компьютера, C++, Julia, Maxima, 3D моделирование, Paint, Arduino, Длиннопост

мате

Linux и минимальный комфорт Linux, Программирование, IT, Компьютерная помощь, Компьютерное железо, Программа, Python, Сборка компьютера, C++, Julia, Maxima, 3D моделирование, Paint, Arduino, Длиннопост

иксвсё4

линукс с хфсе, иногда пользую mate и
конфигурация как я уже написал. оно не реактивное, но ничо не виснет, могу 20 вкладок браузера открыть, рендерить 3д. и +2 очееди копирования .

Linux и минимальный комфорт Linux, Программирование, IT, Компьютерная помощь, Компьютерное железо, Программа, Python, Сборка компьютера, C++, Julia, Maxima, 3D моделирование, Paint, Arduino, Длиннопост

консоль без де. менеджер файлов ncdu


частоту меньше и 2 ядра, 4гб пробовал лично
на ноутбуке Ноутбук HP Compaq cq57 -- просмотр онлайн видео 1080р тормозит. обрабатывать небольшие документы, рисунки годится. NAS будет тормозить когда захочешь несколько очередей синхронизации запустить.

если кому-то интересно могут заглянуть в мой профиль, чтобы пообщаться персонально.

Показать полностью 3
Linux Программирование IT Компьютерная помощь Компьютерное железо Программа Python Сборка компьютера C++ Julia Maxima 3D моделирование Paint Arduino Длиннопост
11
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

Точно не скажем, но в нашем проекте с этим можно справиться буквально за минуту одной левой!

Попробовать

Ремонт Теплый пол Текст
demadmitrov
5 месяцев назад

Проблема с передачей текста в Python⁠⁠

def retranslateUi(self, num):
_translate = QtCore.QCoreApplication.translate
self.textBrowser.setHtml(_translate("MainWindow", f"<p align='center'><span style='font-size:12pt;'>{num}</span><br></p>"))

Я работаю с PyQt6 и в функции retranslateUi нужно передать num, которая содержит переносы строк и если ее вывести через принт то получается аккуратная таблица. а когда эта функция передает текст окну , в котором он должен быть, то текст выводится в одну строку.

Хз, может быть кто то знает как исправить, добавить <br> пробовал, ничего не вышло. Помогите плиз а то голова уже не варит

Python Program Develop Компьютерная помощь Баг Текст
3
6
Вопрос из ленты «Эксперты»
Nanocatss
Nanocatss
6 месяцев назад
Лига программистов

Помогите пожалуйста⁠⁠

Помогите пожалуйста Windows, Компьютерная помощь, Python, Программирование, Visual studio Code, Языки программирования, Программист, Помощь, Вопрос, Спроси Пикабу

В последнее время появляется такая ерунда в терминале Visual Studio Code: "Не удалось загрузить модуль PSReadLine. Консоль работает без PSReadLine."

В папке модулей WindowsPowerShell он есть. Командами remove не удаляется.

Была до этого проблема с чтением путей кириллицы в верхнем регистре. Удалил командой remove этот PSReadLine, потом удалил папку с модулем и заново установил через терминал. Потом вот такая ерунда началась (с чтением путей проблем больше нет). Сам я новичок в VSCode, начал учить Python.

Как починить? 😥

UPD:

Помогло следующее:

1. Переименование папки пользователя на латиницу. Гуглим как. С массовой заменой значений в реестре поможет RegWorks.

2. В повершеле написать:

Set-ExecutionPolicy RemoveSigned

И нажимаем Y

Показать полностью
[моё] Windows Компьютерная помощь Python Программирование Visual studio Code Языки программирования Программист Помощь Вопрос Спроси Пикабу
12
demadmitrov
7 месяцев назад

Помогите сделать программу Pyqt6⁠⁠

есть главное окно

import PyQt6
import sys
from PyQt6 import QtCore, QtGui, QtWidgets
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel, QLineEdit, QHBoxLayout


from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
MainWindow.setStyleSheet("selection-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 196, 255), stop:1 rgba(255, 255, 255, 255));")

self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
self.centralwidget.setObjectName("centralwidget")

self.bt_reshat = QtWidgets.QPushButton(parent=self.centralwidget)
self.bt_reshat.setGeometry(QtCore.QRect(220, 180, 150, 100))
self.bt_reshat.setObjectName("bt_reshat")

self.bt_sost = QtWidgets.QPushButton(parent=self.centralwidget)
self.bt_sost.setGeometry(QtCore.QRect(420, 180, 150, 100))
self.bt_sost.setObjectName("bt_sost")
self.bt_sost.clicked.connect(self.solve_clicked)
self.bt_inf = QtWidgets.QPushButton(parent=self.centralwidget)
self.bt_inf.setGeometry(QtCore.QRect(220, 320, 150, 100))
self.bt_inf.setObjectName("bt_inf")

self.bt_istor = QtWidgets.QPushButton(parent=self.centralwidget)
self.bt_istor.setGeometry(QtCore.QRect(420, 320, 150, 100))
self.bt_istor.setObjectName("bt_istor")
self.new_window = None

self.bt_nastroy = QtWidgets.QPushButton(parent=self.centralwidget)
self.bt_nastroy.setGeometry(QtCore.QRect(720, 10, 50, 50))
self.bt_nastroy.setObjectName("bt_nastroy")

self.bt_exit_2 = QtWidgets.QPushButton(parent=self.centralwidget)
self.bt_exit_2.setGeometry(QtCore.QRect(40, 10, 50, 50))
self.bt_exit_2.setObjectName("bt_exit_2")

self.Lzagolov = QtWidgets.QLabel(parent=self.centralwidget)
self.Lzagolov.setGeometry(QtCore.QRect(190, 20, 421, 41))
self.Lzagolov.setStyleSheet("font: 63 14pt \"Yu Gothic UI Semibold\";")
self.Lzagolov.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
self.Lzagolov.setObjectName("Lzagolov")

self.Lmagkv = QtWidgets.QLabel(parent=self.centralwidget)
self.Lmagkv.setGeometry(QtCore.QRect(316, 282, 151, 31))
self.Lmagkv.setStyleSheet("font: 63 10pt \"Yu Gothic UI Semibold\";")
self.Lmagkv.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
self.Lmagkv.setObjectName("Lmagkv")

MainWindow.setCentralWidget(self.centralwidget)

self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName("menubar")

MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.bt_reshat.setText(_translate("MainWindow", "Решать"))
self.bt_sost.setText(_translate("MainWindow", "Составлять "))
self.bt_inf.setText(_translate("MainWindow", "Информация"))
self.bt_istor.setText(_translate("MainWindow", "История"))
self.bt_nastroy.setWhatsThis(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\"https://s.pfst.net/2015.09/8299238634134583cfef1ea9a9d0ca6fc...\" /></p></body></html>"))
self.bt_nastroy.setText(_translate("MainWindow", "PushButton"))
self.bt_exit_2.setText(_translate("MainWindow", "PushButton"))
self.Lzagolov.setText(_translate("MainWindow", "Добро пожаловать в мир магии"))
self.Lmagkv.setText(_translate("MainWindow", "Магические квадраты"))
def solve_clicked(self):
# Создаем новое окно и сохраняем ссылку на него
self.new_window = NewWindow()
self.new_window.show()
class NewWindow(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(150, 150, 200, 150)
self.setWindowTitle("Новое окно")
self.setStyleSheet("background-color: #ff0000;")

if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec())

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

import sys
from PyQt6 import QtCore, QtGui, QtWidgets
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel, QLineEdit, QHBoxLayout

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(parent=self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(510, 150, 75, 41))
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(parent=self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(20, 10, 50, 50))
self.pushButton_2.setObjectName("pushButton_2")
self.label_2 = QtWidgets.QLabel(parent=self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(240, 10, 321, 41))
self.label_2.setStyleSheet("font: 63 11pt \"Yu Gothic UI Semibold\";")
self.label_2.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
self.label_2.setObjectName("label_2")
self.textBrowser = QtWidgets.QTextBrowser(parent=self.centralwidget)
self.textBrowser.setGeometry(QtCore.QRect(200, 150, 231, 41))
self.textBrowser.setObjectName("textBrowser")
self.spinBox = QtWidgets.QSpinBox(parent=self.centralwidget)
self.spinBox.setGeometry(QtCore.QRect(440, 150, 42, 41))
self.spinBox.setObjectName("spinBox")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "Составить"))
self.pushButton_2.setText(_translate("MainWindow", "PushButton"))
self.label_2.setText(_translate("MainWindow", "Составление магических квадратов"))
self.textBrowser.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">Укажите порядок</span></p>\n"
"<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;\"><br /></p></body></html>"))


if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec())

как это сделать, помоги плиз

Показать полностью
Python Баг Компьютерная помощь Текст Длиннопост
10
0
demadmitrov
7 месяцев назад

Проблема с PyQt⁠⁠

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel, QLineEdit, QHBoxLayout

class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 400, 300)
self.setWindowTitle("Программа")
self.setStyleSheet("background-color: #0000ff;")
solve_button = QPushButton("Решать", self)
solve_button.clicked.connect(self.solve_clicked)

def solve_clicked(self):
new_window = NewWindow()
new_window.show()

class NewWindow(QWidget):
def __init__(self):
super().__init__()

app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())

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

Показать полностью
Баг Компьютерная помощь Python Gui Текст
6

Оформить подписку для бизнеса

Перейти
Партнёрский материал Реклама
specials
specials

Ваш бизнес заслуживает большего!⁠⁠

Оформляйте подписку Пикабу+ и получайте максимум возможностей:

Ваш бизнес заслуживает большего! Малый бизнес, Предпринимательство, Бизнес

О ПОДПИСКЕ

Малый бизнес Предпринимательство Бизнес
14
grrru
1 год назад
Программирование на python

Прошу помощи⁠⁠

Прошу помощи Python, Idle, Ошибка, Компьютерная помощь, Программирование

Здравствуйте, сын увлёкся программированием в Python, какое-то время всё было хорошо, но потом начала возникать такая ошибка, сам я в этом не разбираюсь и где искать решение проблемы не знаю, объясните пожалуйста как это можно исправить и почему это возникает, только так, чтобы было понятно 9-ти летнему ребёнку, спасибо
P.S. извините за фото с экрана

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