• Шаблон прототип или конструктор копирования?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Паттерн (Design pattern/Шаблон проектирования) - как следует из названия, это подход к проектированию классов/архитектуры и т.п. и в разных языках может реализовываться с использованием разных инструментов языка.

    Например, шаблон "Прототип", может быть реализован в С++ с использованием конструктора копирования.

    Шаблоны позволяют эффективно решать типовые проблемы возникающие при продумывании архитектуры кода, до момента непосредственного написания кода, при этом ставится задача не "вписать" задачу в шаблоны, а упростить решение задачи используя шаблоны.

    Таким образом выбор между шаблон или конструктор, по большей части не корректен.
    Ответ написан
    Комментировать
  • Зависимости Python?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Совместимость версий, если разработчики придерживались правил, можно почитать тут: https://www.python.org/dev/peps/pep-0440/#compatib...

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

    Устанавливать PyCharm не нужно, достаточно установить Python нужной версии и использовать виртуальное окружение (https://docs.python.org/3/tutorial/venv.html для Python3). Внутри которого установить необходимые версии зависимостей.
    Ответ написан
    Комментировать
  • Java проблемы с сортировкой(групировкой)?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Проблема в этом куске:
    while(iterator.hasNext()){
                 User item = (User) iterator.next();
    
         //корзина для пользователей с одинаковым кол-вом очков
                 HashSet<User> bucket = new HashSet<>();
                  for(int i=0;i<list.size();i++){
                      User subItem = list.get(i);
                      if(item.getLeadQualificated() == subItem.getLeadQualificated()){
                          if(bucket.add(item)){
                             System.out.println("Добавил в корзину : "+item.getLeadQualificated()+"-> "+item.getManager());
                         }
    
                      }
                 }
               
                resultMap.put(item.getLeadQualificated(),bucket);//(key-очки, value - список пользователей с таким кол-вом очков)
             }

    Так как ты проходишь по все коллекции и каждый раз создаешь новый сет, и в него добавляешь только один элемент (возможно, опечатка item -> subItem?).
    В любом случае алгоритм лучше преосмыслить и сделать оптимальней.
    Ответ написан
    Комментировать
  • Почему не отрабатывает удаление файлов через скрипт?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Использовать "|" в subprocess можно только в случае, если параметр shell=True, но это не безопасно, и может приводить к разным неочевидным проблемам.

    Если нужно поведение как в системе, то можно воспользоваться os.system(cmd).

    Наиболее правильным решением будет сделать аналогичное поведение, но на основе Python.
    Если поведение find не хочется воспроизводить, но можно find запустить в subprocess, получить его вывод (список файлов), которые потом в цикле из Python и удалять.
    Ответ написан
    1 комментарий
  • Как работает __init__.py?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Кроме того, что он позволяет питону интерпретировать директория как пакет, в __init__.py может быть включен различный код инициализации, например:
    • переменная __all__
    • проверка ограничений при использовании пакета
    • сообщение о deprecated
    Ответ написан
    Комментировать
  • Почему программа завершается на Process finished with exit code 0?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Выглядит так, будто запускает неправильный файл (не main.py), нужно проверить что в PyCharm стоит запуск правильного файла в конфигурации.
    Run -> Edit Configuration... -> Script Path
    Ответ написан
    Комментировать
  • Как добавить python 3 в PyCharm?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    1) Похоже в системе не установлен Python3 -> sudo apt-get install python3
    2) Для использования Python лучше всего создавать виртуальные окружения, подробнее можно почитать: https://docs.python.org/3/library/venv.html , после установки python3 при добавлении интерпретатора в PyCharm должна быть настройка, про создание виртуального окружения для проекта.
    Ответ написан
  • Как посмотреть какой docker контейнер грузит систему?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Если мы говорим о Docker на Linux, то все процессы контейнеров будут отображаться в ps auxf в виде обычных процессов, из этого списка можно найти тот процесс который грузит систему, после чего по иерархии можно найти идентификатор контейнера, по нему конкретный контейнер.
    Ответ написан
    Комментировать
  • Изменить поле таблицы, если произошла выборка строки mysql?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Простым способом подобное сделать нельзя.

    Один из вариантов:
    1) Выбираем строки во временную таблицу
    2) Обновляем дату у тех строк, которые есть в основной и временной таблице
    3) Возвращаем результат из временной таблицы
    Ответ написан
    Комментировать
  • Как переименовать папку в Launchpad в OS X yosemite?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Открой папку, и дважды щелкни по ее имени. Оно должно выделится и тогда его можно менять.
    Ответ написан
  • Windows phone emulator - не устанавливается,в чем проблема?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Может быть поможет:
    social.technet.microsoft.com/Forums/windows/en-US/...
    Ответ написан
    Комментировать
  • Как отправлять почту на несколько ящиков сразу?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    При втором варианте, все получатели увидят кому было адресовано письмо, что, чаще всего, плохой подход.
    При первом варианте письмо будет являться "индивидуальным", соответственно как-либо узнать кому еще оно было отправлено не будет возможно.

    В случае если получатели не должны знать о других получателях лучше первый вариант, иначе второй, так как меньше ресурсов потребуется.
    Ответ написан
    Комментировать
  • Почему в функциях JS пишут букву "e" хотя такой переменной нигде не определенно?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    В первом случае - e - аргумент функции, который передается при ее вызове.
    Во втором - e - переменная типа Exception значение которой определится автоматически, если в try блоке возникнет ошибка.
    Ответ написан
    5 комментариев
  • Как исправить ошибки компилятора С++ ?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Функция log не принимает целочисленный аргумент, нужно явно преобразовать к одному из следующих: long double, double, float.
    Ответ написан
    1 комментарий
  • Как sublimerepl установит на горячую клавишу?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Такое можно сделать следующим образом:
    включаем логирование команд в Sublime:sublime.log_commands(True)
    Выполняем необходимую команду, получаем команду, в данном случае:
    repl_open {"cmd": ["python", "-u", "$file_basename"], "cwd": "$file_path", "encoding": "utf8", "extend_env": {"PYTHONIOENCODING": "utf-8"}, "external_id": "python", "syntax": "Packages/Python/Python.tmLanguage", "type": "subprocess"}

    Заходим в Preferences -> Key Bindings - User
    Вставляем строку:
    [{ "keys": ["ctrl+f11"], "command": "repl_open", "args": {"cmd": ["python", "-u", "$file_basename"], "cwd": "$file_path", "encoding": "utf8", "extend_env": {"PYTHONIOENCODING": "utf-8"}, "external_id": "python", "syntax": "Packages/Python/Python.tmLanguage", "type": "subprocess"} }]

    В результате получаем привязку на CTRL+F11.
    Ответ написан
    1 комментарий
  • Почему C++ программа может работать с некорректно выделенной памятью?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Такое вполне возможно:
    Компилятор создал объект A а в B* b записал "мусор".
    "Думая" что по адресу *b находится объект класса B он читает и записывает логическое значение куда-то в памяти (так как простые методы getFlag и setFlag скорее всего оптимизируются на простое обращение к атрибуту flag и это объясняет падение при отладке). При вызове сложной функции, собственно, и возникает SegFault.
    Ответ написан
    2 комментария
  • Python: как читать непрерывный вывод?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Можно как-то так:
    Windows:
    pipe.py:
    import sys
    while True:
    	line = sys.stdin.readline()
    	print(len(line))

    вызов:
    ping 8.8.8.8 -t | pipe.py
    Для Linux аналогично.
    Ответ написан
    Комментировать
  • Как исправить ошибку при создание простого SOAP Web сервиса на Spring?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Такое ощущение что вместо testNewService должно быть helloService.
    Так как эти два метода реализованы у этого класса.

    К сожалению проверить нет возможности.
    Ответ написан
    1 комментарий
  • Почему появился скролл?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    У блока
    <div class="row relative">
    </div>
    из-за форматирования
    margin-left: -15px;
    margin-right: -15px;

    Убери margin у этого блока, а у вложенного
    <div class="col-lg-12">...</div> отключи
    padding-left: 15px;
    padding-right: 15px;
    и тогда горизонтальная прокрутка исчезнет.
    Ответ написан
    Комментировать
  • Вероятность после серии исходов — какая формула?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    В указанных примерах, вероятности изменятся из-за изменившихся условий, а не в следствии того какой исход был ранее.

    Простой пример с неизменными условиями:
    Мы подбрасываем монету и пытаемся угадать орел или решка.
    Сколько бы мы раз не подбрасывали (1 или 1000) вероятность орла или решки в следующий раз такая же как и в первый.

    Пример с изменяющимися условиями:
    В коробке лежат 100 монет (по 50 штук 1-копеечных и 2 копеечных)
    Мы вытаскиваем 1 монету, после чего добавляем в коробку на ее место новую, но 3-копеечную.
    Так вот вероятность что мы в 1 раз вытащим 1-копеечную будет 0.5, но чем чаще мы достаем такие монеты тем меньше будет эта вероятность.
    Ответ написан
    Комментировать