Задать вопрос
  • Почему мониторы 38'' стоят дороже более крупных 43'' с большим разрешением?

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

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    42
    Ответ написан
    Комментировать
  • Что лучше - сессии или кэш?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    а как я знаю, сессию можно своровать

    беда, расходимся (
    Ответ написан
    8 комментариев
  • В чем разница тестов?

    @Yan-s
    Юнит тесты - для тестирования коротких изолированных фрагментов кода, отдельных методов. Проверяем, что элементарный метод работает корректно сам по себе.

    Функциональное тестирование - тестирование функционала системы. Тут проверятся что определенный запрос дает определенный ответ, приводит к определенным результам. Например, что переход пользователя по определенному адресу должен выдать HTML страницу с некими данными. Проверка работоспособности системы с точки зрения пользователя.

    https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D...

    https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D...
    Ответ написан
    Комментировать
  • Password_widget в Symfony ложит всю систему?

    BoShurik
    @BoShurik Куратор тега Symfony
    Symfony developer
    Поздравляю, теперь вы знаете что такое рекурсия :)
    {% block password_widget %}
        <div class="form-control">
            {{ block('password_widget') }}
        </div>
    {% endblock %}


    Уберите код
    {% form_theme form _self %}
    {% block password_widget %}
        <div class="form-control">
            {{ block('password_widget') }}
        </div>
    {% endblock %}


    и все должно заработать

    Если очень хочется кастомизировать, то
    {% block password_widget %}
        <div class="form-control">
            {%- set type = type|default('password') -%}
            {{ block('form_widget_simple') }}
        </div>
    {% endblock %}

    либо, как вы написали, через password_row, либо как сказано в очень хорошей документации

    Базовые реализации лежат в form_div_layout.html.twig, в FrameworkBundle/Resources/views/Form лежат шаблоны для php-форм
    Ответ написан
    1 комментарий
  • Насколько в России актуален Node.js?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вы сами дали себе ответ

    смотрю вакансии на разных сайтах, и почти везде требуется php
    Ответ написан
    Комментировать
  • В чем преимущества компиляции в 4 этапа, нежели в 1?

    15432
    @15432
    Системный программист ^_^
    gcc это набор инструментов, каждый из которых своим делом занимается. В первом случае все автоматически перенаправляется следующему в цепочке, во втором пошагово. Возможность полностью контролировать процесс компиляции полезна - может я хочу посмотреть на ассемблерный листинг, или посмотреть на результат оптимизатора и понять почему код в этих параметрах сборки вдруг перестал работать, поискать баги компилятора.. ну или банально пробовать разные параметры линковщика, не затрагивая остальные этапы компиляции.
    Ответ написан
    Комментировать
  • Как защититься от парсельщиков?

    @deliro
    Нет
    Ответ написан
    Комментировать
  • Как защититься от парсельщиков?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Существует несколько способов борьбы.

    Вектор усложнения доступа к информации

    Информация отдается с сервера с постоянной меняющейся структурой. Например блоки меняются местами и CSS генерируется налету, причем классы собираются рандомной цепочкой и имеют абсолютно рандомные названия. Это может повлиять на SEO.
    Если этого мало, то контент рендерится с помощью JS аналогичными алгоритмами. Сам JS тоже генерируется и обфусцируется. Доставка контента происходит через сложные технологии, например через WebRTC DataChannel или WebSockets. Про SEO не может быть и речи, плохо работает через мобильник.
    С подобным подходом прийдется писать парсер под ваш сайт. Скорее всего он будет делать скриншот и скармливать его распознавалке.

    Вектор контроля доступа к информации

    Доступ к информации предоставляется определенному кругу лиц. Например клиентам. Объемы доступа регламентированы и превышение карается расторжением договора или штрафом.

    Вектор ограничения доступа к информации с помощью каптчи

    Для идентификации клиентов используются evercookie+fingerprinting. Используется рейтинг адресов и подсетей.
    Для недоверенных подсетей (ip принадлежат в основном разного рода хостинг-провайдерам) captcha отображается сразу. Аналогично при появлении трафика из необычного места, например внезапный трафик из Индии или Китая.

    Вектор "медленный сервер"

    Анализируются поведенческие характеристики с помощью машинного обучения. Строится эталонная модель.
    Все, кто не попадает под модель, упираются в медленный сервер. Сайт начинает отдавать контент сразу, но очень медленно, например страница может открываться секунд 30. Причем попытка параллельного запроса приводит к ошибке. Если сайт велик, то подобные штуки останавливают парсильщиков на ура. Вдобавок дополнительно контролируются определенные вещи, вроде "пользователь загрузил js и css", провел мышкой там и там.

    Вектор для реального отваживания воришек

    Кроме выше перечисленных способов, есть очень простые, но действенные способы. При обнаружении парсинга, парсильщику отдается неверная/искаженная определенным образом информация. Например, если есть подозрение на конкурента ворующего цены, можно отдать цены чуть выше настоящих и немного подменить название товара, например заменить определенным образом букву "а" на "a". Затем такая штука ищется поисковиком и находится сайт конкурента.
    Далее вопрос решается так, как это удобно бизнесу. Обычно жалуются на нарушение копирайта. Ну или у конкурента внезапно сгорает склад. Тут уж кто на что горазд.

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

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

    Если у вас воруют статьи, просто требуйте обратную ссылку.
    Если воруют описание товаров, предложите продать его, а на вырученные деньги улучшите свое или увеличите оборот или потратьте их на рекламу.
    Еще одна рекомендация - сделайте все, чтобы поисковики узнавали о вашем контенте раньше, чем у воришек.
    Ответ написан
    6 комментариев
  • Сколько берет google и apple с разработчиков приложений интернет магазинов?

    GavriKos
    @GavriKos
    1) Эппл и гугл берут комиссию при покупке через свои механизмы. Т.е. это либо покупка самого приложения, либо покупка чего то внутри приложения через платежную систему гугла/эппла
    2) И эппл, и гугл разрешают продавать реальные товары и услуги в обход своих платежных систем - да, через ту же робокассу и аналоги. Но продавать виртуальные товары, которые нельзя вывести из приложения (игровая валюта и предметы, например) по правилам можно только через платежные системы платформы.
    Ответ написан
    2 комментария
  • Как гарантировать списание денег с баланса?

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    1. CRON

    а что если сервер упадет

    Другие решения при упавшем сервере по Вашему будут отлично работать?

    а что если крон выполнится несколько раз

    с какого перепугу? Тогда предлагаю еще предусмотреть более вероятный вариант, что если нападут инопланетяне? Или деньги завтра отменят - тоже ведь может быть.

    что можно мутить с историей списание (она полюбому нужна), и при списании сверяться, но это не дает гарантии от параллельного списания

    Почему это не дает гарантии? Если есть запись о списании в этом месяце - не списываем. Как это может не работать? Вижу только вариант с коллапсом вселенной или временной отменой "1+1=2".

    интересует сама логика и инструменты

    Инструменты: cron + php
    Логика: запустились, выбрали из базы кого списывать, списали, записали в БД что списали и сменили статус на оплачено. Опционально, ведем отдельный лог в txt файле, что когда и как.
    Ответ написан
    Комментировать
  • В какой последовательсти изучать материал?

    @sqrdeer
    Full-Stack JavaScript Developer
    Паттерны проектирования и язык в котором ты собираешся их применять обычно не принято разделять.
    Врятли до миддла за год возможно это все подтянуть, особенно если ты будешь учить питон с нуля и не имеешь нормального представления о алгоритмах и структурах данных. Опять же смотря, что ты подразумеваешь под миддлом. У всех представление о знаниях миддлов, джунов и сеньерах разнятся. Вести такую статистику обучения довольно удобно в trello. И миддла от джуна в первую очередь отличает большая практика в тех направлениях, которыми он занимается.
    Ответ написан
    Комментировать
  • Как подключиться к удаленной mysql в MAMP?

    php10
    @php10
    Разработчик на PHP
    А зачем вам в MAMP настраивать MySQL? Ведь сам MAMP содержит внутри себя PHP, NGINX, MySQL (насколько я помню).
    Подключайтесь из PHP напрямую на удаленный сервер под теми же данными, которые вы используете в SequelPRO.

    MySQL из MAMP тут лишнее звено
    Ответ написан
    Комментировать
  • Где можно скачать последнюю версию Safari для Windows?

    KickeRocK
    @KickeRocK
    FrontFinish
    Wikipedia

    Последней доступной версией Safari для Windows была версия 5.1.7, выпущенная 9 мая 2012 года. Последующие версии несовместимы с Windows.

    Следует отметить, что Safari для Windows является единственной версией Safari, выпущенной для какой-либо ОС, отличной от OS X и iOS. Версий Safari для Linux и Android (равно как и для других мобильных платформ, помимо iOS) никогда не существовало.

    М?
    Ответ написан
    2 комментария
  • Одно из свойств хэш-функции - необратимость. Но как такое возможно? Неужели нельзя как в математике - произвести все действия, только наоборот?

    Moskus
    @Moskus
    Не любые математические действия обратимы.
    Вот вам самый примитивный случай: сложение всех цифр числа, потом - сложение всех цифр результата этого сложения, и так далее, пока не получится число из одной цифры.
    1234567 превращается в 28, 28 превращается в 10, 10 превращается в 1. Теперь, попробуйте восстановить исходное "1234567", имея только "1". Хэш-алгоритмы, естественно, действуют сложнее, но их принцип - тот же: собственно хэш не может быть использован для восстановления исходной информации.
    Ответ написан
    Комментировать
  • Вуз или самообучение - что выбрать?

    sim3x
    @sim3x
    Если расположение не имеет значения, то езжайте в Финляндию, Германию, США
    Ответ написан
    2 комментария
  • Запись в файл данных.?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    А что
    file_put_contents($log_file, $string, FILE_APPEND);

    уже не модно?
    Ответ написан
    2 комментария
  • В MySQL столько похожих типов данных. Как понять, когда какой именно использовать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Не так уж и много, учитывая, что в основном каждый тип просто имеет несколько вариантов размера. Например, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT - это всё один и тот же целочисленный тип, просто разного размера, от 1 до 8 байт.
    Есть, конечно, специфические типы, те же DECIMAL и BIT, но тут надо просто понять их предназначение.
    Начните с документации, там все типы неплохо описаны.
    Ответ написан
    Комментировать