• Является ли хорошей практикой использовать связку Nginx+Apache сегодня?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Если точно понимаете, зачем вам Апач - почему бы и нет?

    Но, честно говоря, вариантов тут немного - чаще всего такое взгромождают, когда приложение работает только с неким экзотическим модулем апача, аналога которого для других веб-серверов не существует (см. напр. 1С). Ну или когда несколько поколений веб-программистов в три слоя обмазало сайт htaccess-магией и конвертировать это в nginx-директивы никто не хочет.
    Ответ написан
    2 комментария
  • Как решать подобные задачи?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Во всех таких задачах на запросы почти всегда надо приспособить бинарный поиск.

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

    Вот у вас есть гипотеза m=(l+r)/2 - вы хотите проверить, а как она соотносится с длинной круга. Допустим, вы уже прошли x метров и прошли k полных кругов. Уже только из этой информации можно оценить, какая длина круга может быть. Во-первых, убедитесь, сравните floor(x/m) и k. Если floor(x/m) > k вы уже знаете, что длина круга больше m, ведь для круга длины m и более коротких значений вы бы насчитали floor(x/m) или больше оборотов. Если floor(x/m) < k, то уже очевидно, что длина круга меньше m. Если же floor(x/m) = k, то спросите run m-x%m - сколько осталось пройти до финиша, если бы длина круга была равна m. Если вы получили в ответ 1, то значит круг не длинее m. В протвином случае круг строго длиннее m.
    Ответ написан
    4 комментария
  • Вирус, прикрепленный к айфону по ip-адресу - как найти?

    @Drno
    Такого на айфоне не бывает.

    скорее всего кто то просто залогинился у себя на ПК с ваших мессенджеров - для этого достаточно в них в настройках нажать "завершить все сессии"
    Так же проверить в конфиденциальности раздачу "геолокации". Возможно Вы её кому то разрешили просматривать

    В самом крайне случае - просто сбросить его с удалением всей инфы. и завести новый appleID. Это на 100% решит любую проблему с настройками, но как по мне - оверкилл
    Ответ написан
    2 комментария
  • Можно ли пропустить первый аргумент по умолчанию в Python?

    lxstvayne
    @lxstvayne
    Люблю Python
    Обычно всегда именованные параметры со значением по умолчанию стоят после позиционных. Если спроектировать функцию так, тогда всё работает хорошо:
    def total(*b, a=5):
        print(a, b)

    Конкретно для данного примера, нельзя обойтись без костыля, чтобы достичь вашей цели.
    Ответ написан
    3 комментария
  • Безопасно ли хранить .htaccess в корне сайта?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Это очень смешной вопрос.

    Если читать только заголовок, то вопрос звучит очень смешно. Типа "опасно ли дышать?". файлик .htaccess как раз и предназначен для размещения в папках сайта, корневой или не корневой - без разницы.

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

    Во-первых, формулировка. Если вспомнить, что корнем сайта как раз и является публичная директория, то вопрос получится изначально бессмысленный, "почему файл лежит в публичной директории, а не в публичной директории?"
    То есть надо сначала понять, что речь в замечании на картинке идет про корень приложения, а не сайта. В котором корень сайта - это всего лишь одна из папок. Та самая, "публичная".

    И только после этого можно приступать к ответу на вопрос:
    В корне приложения - то есть папке, которая, по идее, вообще никакого отношения к веб-серверу не имеет, класть htaccess скорее бессмысленно. И в теории может так оказаться, что веб-сервер-апач его вообще не прочтёт. И, как следствие - некие секретные настройки могут не примениться.

    Но тут надо вспомнить, что завязывать какую бы то ни было безопасность на файлик .htaccess - это уже так себе идея. Поскольку доля веб-сервера-апач неуклонно снижается, и весьма велика вероятность того, что на реальном сервере файлик .htaccess будет просто болтаться мертвым грузом, и никто не обратит на него ни малейшего внимания.
    Ответ написан
    3 комментария
  • Изменение значения в html?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Возможно, только Вам нужно изучить JavaScript, освоить технологию AJAX, ну и немгого PHP чтобы написать серверную часть и SQL для сохранения в базу даннах.

    Ну или воспользоваться Google Docs = там всё уже написано :)
    Ответ написан
    1 комментарий
  • Где хранить интерфейсы и абстрактные классы?

    myks92
    @myks92 Куратор тега PHP
    Нашёл решение — пометь вопрос ответом!
    Сложно понять о чём вы пытаетесь спросить, но попробую пояснить.

    Интерфейс должен всегда храниться в слое или модуле, где он используется. Интерфейс так же создаёт абстракцию и создан для уменьшения связанности.

    Например, вам нужно оправлять уведомления из модуля магазина в модуль уведомлений. В магазине вы делаете интерфейс (API) через который магазин будет отправлять уведомления. Саму реализацию можно оставить и в магазине, но лучше вынести в src/Infrastructure. В этой папке можно хранить все инфраструктурные вещи.

    Так же можно использовать пример из DDD где есть деление на слои Application, Domain, UI, Infrastructure. В этом случае в Domain может быть RepositoryInterface, а в Infrastructure реализация DoctrineRepository

    Что касается абстрактных классов, то храните их там, где вы их используете или реализуете. Это может быть где угодно. Абстрактный класс, в первую очередь, класс! Он создан для общей базовой логики в классах, но при этом его нельзя вызвать через new()
    Ответ написан
    Комментировать
  • Хорошо ли использовать выражения if - else в PHP и не только?

    @haveacess
    Скорее тут дело в том, что бы не фигачить if-else на пустом месте, а попробовать для начала понять логику и сделать проще и читабельнее, ведь потом вам с этим кодом работать.

    Пример когда один и тот же код можно написать по разному:
    if-else
    without if-else
    Согласитесь, без if-else смотрится лучше. Иногда нужно просто включить голову
    Ответ написан
    2 комментария
  • Хорошо ли использовать выражения if - else в PHP и не только?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Если речь идет о большой вложенности ветвлений, то да такого лучше избегать.
    Например конструкцию вида:
    <?php
    $a=17;
    
    if ($a < 0 ) {
    	if ($a % 2 === 1) {
    		echo "$a is negative odd";
    	} else {
    		echo "$a is negative even";
    	}	
    } else {
    	if ($a % 2 === 1) {
    		echo "$a is positive odd";
    	} else {
    		echo "$a is positive even";
    	}
    }


    можно упростить используя функции:

    function positive_or_negative($a) {
    	return ($a < 0 ) ? 'negative' : 'positive';
    }
    
    function odd_or_even($a) {
    	return ($a % 2 === 1 ) ? 'odd' : 'even';
    }
    
    echo "$a is " 
    		. positive_or_negative($a)
    		. " "
    		. odd_or_even($a);


    Test PHP code online
    Ответ написан
    Комментировать
  • Допускается ли возможность заражения машины сугубо открытием ссылки на сайт?

    Jump
    @Jump
    Системный администратор со стажем.
    Допускается ли возможность заражения машины сугубо открытием ссылки на сайт?
    Да, такая возможность существует.

    браузерный JavaScript практически изолирован от прямого доступа к внешним приложениям.
    Теоретически это так. На практике могут существовать уязвимости.
    JS это код который выполняется на вашей машине, да его постарались изолировать, но изоляцию можно обойти.
    Это не просто, но возможно.
    Кроме того не стоит забывать что у большинства браузер обвешан плагинами - причем плагин может иметь доступ к системным функциям.
    Ответ написан
    2 комментария