Задать вопрос
  • Как правильно настроить сервер по требованиям из ТЗ?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Хм. Вообще не вижу проблемы хотя бы я заменил виртуализацию на Hyper-V.

    Ubunty ставите ltsc и забываете на 2-4 года.
    Дальше ставите MySQL + Nginx + Node + PHP + Python.
    Создаете скрипт который делает следующее:
    * вносит изменение в DNS что то типа vasya.labs.loc
    * добавляет пользователя vasya и устанавливает пароль
    * добавляете папку /home/vasya/public_html
    * добавляете конфиг /etc/nginx/sites-enabled/vasya.conf
    * добавляете базу для васи и пишете пароли в файл в его домашней директории
    * перезапускаете nginx

    Итого установка и обновление убунты и обновлений происходит 1 раз и штатно без шаманства
    Пользователь получает адрес типа vasya.labs.loc
    При желании можно парсить пользователей из csv файла

    Node + PHP + Python конкретной версии сам пользователь и назначает используя virtualenv, nvm, phpenv

    Если что упустил уточняйте
    Ответ написан
    8 комментариев
  • Как сделать, чтобы сайт во время парсинга не думал, что я бот?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Поскольку алгоритм Озона не документирован - то мы можем только гадать.

    Сделай дамп сетевого трафика для случая с браузером и с ботом.
    Потом открывай в режиме split screen и сличай глазами. Где-то будет ключевая разница.
    Ответ написан
    Комментировать
  • Как сделать чат-бот на основе ИИ, обученный на собственной базе знаний?

    Maksim_64
    @Maksim_64
    Data Analyst
    Есть ощущение, что вы ожидаете очень сложного ответа, а ответ очень прост. Нет никакой математики в этой задаче, так же нету в этой задаче и архитектуры нейронных сетей. Есть лишь только работа с API, что оно предоставляет, таковы и возможности. Если бы мне нужно было решать такую задачу, я бы открывал статьи на medium (открывается с vpn) и естественно смотрел бы в стороны платных статей и от них бы отталкивался, потому что там множество пошаговых гайдов высокого качества для создания чат-ботов на базе GPT ( предполагаю вы свободно владеете английским).
    Ответ написан
    2 комментария
  • Разве у админов тостера есть право решать, какой вопрос ведет к спору, а какой нет?

    Sterhel
    @Sterhel
    Давайте я вам попробую объяснить.

    Вкратце ответ на вопрос - да, есть. К счастью для ресурса.

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

    Кроме этого модераторы просматривают сам сайт в реальном времени по мере появления новых вопросов и по собственной оценке удаляют то, что явно выбивается из темы. Это и вечные "Кто хочет ко мне в стартап, правда, я не знаю, чего мы будем делать?", и "За сколько денег можно сделать аналог Яндекса?", и "PHP - это круто или фигня?", и "Что такое margin?".

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

    Хочу выразить благодарность всем тем пользователям, которые не жалеют времени и дают нам знать о нарушениях, а также активно пользуются функцией редактирования тегов и правки вопросов. Ребята, вы правда помогаете ресурсу. На мой взгляд, он еще далек от того, что именно мы задумывали, но мы постепенно идем к цели. В том числе - с вашей помощью.
    Ответ написан
    Комментировать
  • По какой причине __init__.py часто оставляют пустым?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Изучаю различные репозитории
    - а надо изучать азы Python, а потом уже "различные" репозитории.
    По какой причине __init__.py часто оставляют пустым?64c948f950df5147587603.png

    Файл пакета __init__.py
    Ответ написан
    Комментировать
  • Как тестировать горизонтальное масштабирование?

    @rPman
    Одна физическая машина может сымитировать нагрузку миллиона пользователей (на самом деле даже больше но там вопрос на сколько сложная логика у тестов, в общем случае в нагрузочных тестах объем и порядок запросов фиксирован и не включает полный анализ ответов, т.е. это просто список url которые нужно загрузить в сессии) поэтому затраты на это последнее, о чем нужно беспокоиться, они минимальны.

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

    Если говорить про конкретику - kubernetes можно развернуть буквально на одном физическом сервере (на виртуальных машинах) и полноценно изучать все его фишки, кстати будет отлично видны накладные расходы на те 'удобства', которые оно предоставляет, но помним что когда кластер разрастется до нескольких физических машин, это станет уже незаметно.

    p.s. возможность автоматического добавления мощностей, это когда идеология такой возможности заранее закладывается при разработки приложений (это не только само приложение но и организация сервисов, их настройка и порядок и правила управление всем этим), а затем, когда управляющим центром, в автоматическом режиме на основе мониторинга нагрузки, автоматически поднимаются новые машины (сам факт этого тесно переплетается с источником этих машины - физически люди у тебя бегают и железные ящики к проводам подключают или скрипты поднимают новые машины в облачном датацентре) и на них запускаются дополнительные экземпляры сервисов.

    И да, все это можно вообще реализовать без существующих инструментов, написать десяток другой небольших скриптов, собственно так они (большие продукты типа kubernetes) и появились, кому то надоел зоопарк скриптов и разношерстных приложений для этого
    Ответ написан
    Комментировать
  • Как сделать оформление словаря в txt файле и вычитывание значений из этого файла?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Надо вам бы книжечку почитать по питону. Быстрее и полезнее было бы для вас в плане освоения.
    Вот, например устаревшая конструкция:
    #-*- coding:cp1251 -*-
    Сейчас принято весь код держать в utf-8 и испоьзовать свежий питон третьей версии.

    Прочитайте про PEP8.
    Считается плохим стилем использовать CamelCase для чего-то кроме классов.
    Для переменных и имен функций нужно использовать snake_case.
    selected_genre = str()
    selected_game = str()

    Ни к чему объявлять такие переменные присвоением пустой строки, причем с вызовом явного конструктора. В Питоне строки - неизменяемый тип, а переменные. это не ячейки, зарезервированные в памяти, а, как бы, "бирки" с именем, которые вешаются на объекты. ВОт строки - это объекты, которые нельзя менять. Как создаются, так и остаются.

    genre_file = open('genres.txt')
    Не хорошо так открывать файл. Для такого мелкого скрипта это не так важно, но хорошую привычку у себя формировать надо всегда и всегда надо работать с файлами правильно. Через контекстный менеджер with и используя pathlib.

    GenreList.append(line.strip())
    Обратите внимание на разницу между append и extend, именно в этом одна из причин проблемы, с которой вы тут боретесь.

    value = item.split(" ")[1:]
    Сплит можно делать по знаку равно, а не только по пробелу. Такое ощущение, что вы не особо задумываетесь, что пишете в коде.

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

    Во-первых, используйте стандартные форматы для сериализации структур данных, например json, а тут лучше yaml. Он лучше подходит для редактирования человеком и не надо его парсить вручную совершая кучу ошибок в никому не нужном коде. Ваша задача вся решается в несколько понятных простых строчек, а вы тут навертели.

    Во-вторых, почему вы так странно храните и выбираете игры? Храните их одним перечнем словарей. Каждый словарь в перечне будет соответствовать одной игре. В этом словаре будут все её параметры: название, жанр, рейтинг, если надо, который будет влиять на вероятность выбора...

    Разбивайте всегда задачу на ОЧЕНЬ МАЛЕНЬКИЕ подзадачи и решайте их отдельно. Проверяйте решение подзадачек тоже по отдельности, убеждайтесь, что этим мелкие кирпичики работают.

    Повторюсь, изучайте питон, чтобы программировать на нем как на питоне, а не вот так вот. Успехов.
    Ответ написан
    4 комментария
  • Каков универсальный стек технологий для приложений со сложным GUI?

    Я бы посмотрел на Flutter, тк он ближе всего к тому чтобы удовлетворить все требования:
    1. Кроссплатформенный
    2. В собранном виде заметно меньше, чем Electron
    3. Умеет собираться под веб и даже под мобилки
    4. Адаптивность - это уже скорее к прослойке между клавиатурой и монитором.
    На счёт многооконности сложно, но вроде что-то есть. (и вообще многооконность и веб слабо сочетаются)
    5. (мне кажется это важным) Сам язык сильно проще чем какой-нибудь C++ / Rust / C# / Delphi / Swift, которые хорошо (или не очень) подходят под отдельные пункты, но при этом гораздо сложнее в изучении.
    Ответ написан
    2 комментария
  • Как в javascript расшифровать зашифрованный (aes-128-ecb) текст в php?

    @StiflerProger
    function decrypt(encryptedText, key) {
      var decryptedBytes = CryptoJS.AES.decrypt(
        {
          ciphertext: CryptoJS.enc.Base64.parse(encryptedText)
        },
        CryptoJS.enc.Utf8.parse(key),
        { mode: CryptoJS.mode.ECB }
      );
      
      var plaintext = decryptedBytes.toString(CryptoJS.enc.Utf8);
      return plaintext;
    }
    
    var encryptedText = "P6WsUEHMRTa620LtYJ3Nqu9yKhGev0ZL4Ps+z61kWN4="; // Замените на свой зашифрованный текст
    var key = "mysecretpassword"; // Замените на свой ключ
    
    var decryptedText = decrypt(encryptedText, key);
    console.log("Decrypted Text:", decryptedText);
    Ответ написан
    Комментировать
  • Что за разряды в информационной безопасности?

    @kalapanga
    Это просто наименование должности в их внутренней сетке должностей, оставшееся издавна.
    В государственных или просто старых компаниях это нормальная практика. Можно встретить например вариант: разработчик - старший разработчик - ведущий разработчик.
    Ну а новые компании, особенно те, которые имеют зарубежные связи, стараются обзывать должности на западный манер - джуниоры, миддлы, сеньоры, тим лиды.
    Но и там и там это - просто название должности.
    Ответ написан
    3 комментария
  • Что лучше юзать для подключения 4090?

    Лучше, разумеется, стандартный кабель без переходника.
    Ответ написан
    5 комментариев
  • Какие существуют варианты блокировки BIOS?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Пароль BIOS легко сбрасывается. Так что не только обходить все компьютеры, но и вешать замочки на системный блок.
    Ответ написан
    Комментировать
  • Какие существуют варианты блокировки BIOS?

    Только ручками заблокировать биос паролем.
    Ответ написан
    Комментировать
  • Как настроить SSL сертификат на нескольких серверах, имея лишь одно доменное имя?

    @dronmaxman
    VoIP Administrator
    Для WEB сервисов можно использовать Lets'Encrypt и субдомены. Для подключения ДБ, лучше использовать самоподписанный с длинным сроком годности (2 года и более) либо можно использовать VPN.
    Ответ написан
    Комментировать
  • Что нужно знать, чтобы сделать простой сайт - доску с объявлениями?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    • Принципы работы сети.
    • Принципы работы с базами данных (как проектировать, как писать запросы, как защищать, в т.ч. на уровне кода)
    • Практически любой современный ЯП.
    • Опционально - любой веб-фреймворк для ЯП.

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

    Рвение понятное, но учитывайте, что написать нормальный сайт (а это как минимум отсутствие критических дыр в безопасности, оптимизация, хорошая документация и читаемость кода), который можно спокойно вводить в эксплуатацию, пройдет немало времени.
    Ответ написан
    Комментировать
  • Что выбрать: Syncthing vs nextCloud vs Seafile vs OwnCloud vs Другой сервис?

    fdroid
    @fdroid
    press any key
    mike153: пробовал все варианты. Nextcloud - это форк Owncloud. По сути, одно и то же, хоть и NC считается более продвинутым и вообще вся опенсорсная тусовка туда ушла. Поэтому пишу о нём. Всё исключительно на правах IMHO. Плюсы:
    - Самый главный - это работа с файлами именно в файловом варианте. То есть, если предположить, что "всё упало", вы можете подключить диск с рухнувшего сервера к любому линуксу и вытащить инфу из /var/www или где она там у вас храниться будет. Также можно подключать внешние хранилища, то есть, предположим, есть у вас на сервере папка с фильмами и музыкой - их можно просто подключить в NC.
    - CardDAV, CalDAV из коробки.
    Минусы:
    - Тормозит всегда, рандомно, в любой момент времени. Независимо от того Apache или Nginx, MySQL или MariaDB, тормозит на любом софте.
    - Интерфейс - УГ, ШГ

    Теперь о Seafile. Плюсы:
    - Турбореактивный просто. Работает очень быстро.
    - Интерфейс очень приятный.
    - Продвинутое версионирование.
    - Умеет открывать docx, odt, xlsx и т.д. без дополнительного софта. Но без редактирования. Если нужно редактирование - нужен отдельный Document Server от Collabora или Onlyoffice.
    - PRO-версия бесплатна для 3-х пользователей, но смысла особого нет, т.к. enterprise-фишки заключаются в 1. полнотекстовому поиску по документам с помощью elasticsearch, у которого просто чудовищное потребление ресурсов 2. двух-факторной авторизации 3. и что-то там ещё, не особо нужное дома
    - Есть клиенты для всех основных платформ
    - Устанавливать можно как вручную по мануалу на сайте, так и воспользовавшись установочным скриптом, который сам всё сделает.
    Минусы:
    - Файлы хранятся в собственном формате, как это правильно называется? - на уровне блоков, что ли. Доступ к инфе только через веб-интерфейс, WebDAV, ну и приложения для синхронизации. То есть, вся информация в Seafile на диске представляет просто кучу мала из папок и файлов, которые нельзя так просто взять и использовать - нужен ещё дамп базы данных. То есть, в случае проблем с системой, достать информацию будет затруднительно. Но выход есть - seaf-cli - это безгуёвый клиент для синхронизации. Смысл в том, что на сервере, на котором крутится Seafile, дополнительно можно установить seaf-cli, натравить его на директорию, и он в эту самую директорию будет складывать синхронизированную копию инфы основной базы Seafile, причём в виде нормальных файлов, которые можно расшаривать как угодно, бэкапить и т.д. Минус решения с seaf-cli в том, что нужно вдвое больше дискового пространства для хранения инфы.
    - Ну и как следствие такой организации файлов - невозможность подключить внешние хранилища, в отличие от тёплого лампового Nextcloud.

    В общем, лично я остановился на Seafile.
    Ответ написан
    Комментировать
  • Возможно ли обучить ИИ определять данные анализов по фото?

    Тут больше задача на OCR и машинное зрение похожа.
    Нужно определить границы таблицы и распознать текст в ячейках.
    Можно попробовать Opencv + tesseract.

    Но скажу, что это сложнее, чем может показаться на первый взгляд (когда-то пробовали такой подход и часто либо границы криво распознавались, либо текст. Причём пробовали сканы, а не фотографии)
    Ответ написан
    1 комментарий
  • Зачем многие интернет магазины не предоставляют api?

    Real_Fermer
    @Real_Fermer
    Программист PHP
    Потому что владельцы магазинов хотят что бы покупали в их магазинах, а не в сторонних приложениях
    Ответ написан
    2 комментария
  • Как сделать телефонию в офисе, чтобы сотрудники не видели номеров клиентов?

    Что-то готовое не рассматривали?
    Ну к примеру,
    https://vc.ru/s/1197024-bitriks24/425623-skrytie-n...

    Если велосипедить, то потребуется Asterisk/FreePBX в качестве АТС. Записи разговоров умеет из коробки. Хотя вроде Битрикс24 и сам умеет писать разговоры, но в т.ч. сможет подтягивать записи сделанные в Астерикс.
    Простейшим вариантом будет разработка сервиса который будет при сохранении карточки Лида в тот же момент заменять оригинальный номер на подменный, сохраняя подменный в собственной БД.
    Исходящие вызовы инициировать как обычно, подключив Битрикс24 к своей АТС, но поиск реального номера выполнять в самом Asterisk по базе сервиса подменных номеров.
    Входящие - заменить оригинальный caller id на подменный из базы.
    Есть вариации описанного решения из-за довольно высокой гибкости интеграцией в Asterisk, зависит от того как уже решит реализовывать разработчик.
    Ответ написан
    2 комментария
  • Как разогнать процессор AMD?

    @rPman
    Современные (последние лет 10) процессоры уже разогнаны по максимуму, какие либо действия (разгон в биос) позволят даже на синтетических тестах увидеть изменения в считанные проценты, а уж на практике и подавно ничего не будет заметно. Зато увеличить вероятность сбоя при работе в режиме разгона можно значительно, и такие поломки не гарантийный случай.

    Настоятельно не рекомендую заниматься разгоном.

    Что по проблемам с проигрыванием youtube, у меня машина 2014-года (10w процессор intel celeron J серии) со своей чахлой интегрированной графикой тянет FullHD@60fps, и эта машина явно слабее твоего конфига на порядок! Это значит у тебя явно проблема с настройкой операционной системы, например не установлены драйвера.

    Настоятельно рекомендую один из следующих браузеров - Firefox, Chromium или любой основанный на нем (Google chrome, Opera, Yandex browser,... чем менее популярный браузер тем выше вероятность проблем на необычных сборках)
    Ответ написан
    4 комментария