У меня днём тот же глюк был, ГТ часто отваливался с ошибкой 400, через TOR/VPN нормально (Хабр, висящий на том же IP, нормально во всех открывался), через пару часов проблема пропала. И пару раз ошибка 502 (Gateway Timeout) была, потому грешу, что проблема на стороне ГТ оказалась. Подозреваю, что шардинг по IP и наши адреса попали на нерабочий узел, а под TOR/VPN — на рабочий.
А не проще ли сразу электричество в стране запретить? Пусть пашут люди на полях, пока солнце не село, как в старые добрые времена, да и заодно можно неплохо навариться на продаже керосина для керосиновых ламп. Всё равно высокие технологии стране не нужны, от них только бунты и протесты сплошные.
Java 9 сломана. Да и сам сталкивался с ситуацией, когда проекты, которые нормально компилировались в предыдущих версиях JDK, переставали собираться в 9-й из-за подобных багов.
Вы вручную разбираете PNG-картинку, или используете для этих целей какую-нибудь библиотеку? Если вручную, то должны были как минимум ознакомиться со спецификацией PNG, а там аж целых 5 возможных вариантов каналов есть (это не считая того, что бит на канал может быть не обязательно 8).
Если используете чужую библиотеку, которая этих нюансов не учитывает, то поздравляем, библиотеку писал рукожоп и проблем там может быть куда больше.
В любом случае, если вы «подтягиваете из интернета» — то должны относиться к этим данным с повышенной осторожностью.
Если бы эти вредоносные видео встраивались в интерфейс соцсети, как это сделано в том же вконтакте, когда делишься ссылкой на видео с ютуба или coub (возможно, с чего-то ещё, не пользуюсь остальными) — тогда ещё понимаю. А с переходом на внешний сайт — соцсеть же предупредит о возможной опасности.
Одно из возможных решений, это использовать OAuth 2.0, но не у всех пользователей может быть аккаунт в социальной сети и желание его использовать на вашем ресурсе.
А что мешает использовать несколько способов аутентификации? Кто хочет, тыкает «войти через facebook» и логинится через него, кто хочет — регистрируется через логин-пароль и использует их для входа на сайт? Как вариант, можно даже руководствоваться таким принципом: если соцсеть отдаёт е-мейл, привязанный к учётной записи, то считать, что соцсеть уже подтвердила принадлежность этого адреса владельцу (но предварительно проверить используемые соцсети, что они действительно проверяют при привязке почту, а не разрешают забить туда любой адрес безо всякой проверки)
Я первоначально думал также, но когда файл js начал занимать много экранов, то потихонечку задумался о том, что было бы неплохо разбить его на модули, а модули раскидать по файлам. Так и открыл для себя browserify, а потом и grunt, когда надоело руками каждый раз пересобирать файлы после каждого изменения. Ну а потом шли годы и появилось гораздо больше более удобных инструментов для сборки. Это не потому что так модно, просто реально намного удобнее, хоть и сходу трудно разобраться, что куда и как.
> Тогда стратегия: если простак — всегда обманывай, если свой — всегда кооперируйся.
Примерно такая стратегия уже есть, у «детектива». Использует небольшой паттерн, чтобы проверить тактику своего соперника, если тот простак — переключается на вечный обман, в противном случае — копирует предыдущие ходы соперника (кооперируется с «добрыми» кроме простака, но всегда обманывает обманщика).
У себя в проекте использую одновременно оба справочника — ipgeobase и maxmind. Для тех адресов, что есть в первом — резольвится город из первого справочника, если не отрезольвился — то из второго. Неудобство только в том, что в ipgeobase файл текстовый, но это проблему решил конвертацией файла при обновлении базы в B-дерево.
Автор же написал, что функция возвращает от 0 до N*S, а не от N до N*S (как в реальных дайсах, нумерованных с единицы). Это для того, чтобы нагляднее продемонстрировать матожидание и дисперсию, в случае с реальными дайсами матожидание сдвигается с каждым добавленным дайсом.
И теперь Роскомнадзор просто обязан заблокировать Bitcoin в России. Яснопонятно.
Если используете чужую библиотеку, которая этих нюансов не учитывает, то поздравляем, библиотеку писал рукожоп и проблем там может быть куда больше.
В любом случае, если вы «подтягиваете из интернета» — то должны относиться к этим данным с повышенной осторожностью.
А что мешает использовать несколько способов аутентификации? Кто хочет, тыкает «войти через facebook» и логинится через него, кто хочет — регистрируется через логин-пароль и использует их для входа на сайт? Как вариант, можно даже руководствоваться таким принципом: если соцсеть отдаёт е-мейл, привязанный к учётной записи, то считать, что соцсеть уже подтвердила принадлежность этого адреса владельцу (но предварительно проверить используемые соцсети, что они действительно проверяют при привязке почту, а не разрешают забить туда любой адрес безо всякой проверки)
Примерно такая стратегия уже есть, у «детектива». Использует небольшой паттерн, чтобы проверить тактику своего соперника, если тот простак — переключается на вечный обман, в противном случае — копирует предыдущие ходы соперника (кооперируется с «добрыми» кроме простака, но всегда обманывает обманщика).