Задать вопрос
  • Как не пускать на сайт при включенном adblock/ublock и прочее?

    @d-stream
    Готовые решения - не подаю, но...
    Большая часть пользователей адблокеров просто тут же покидает сайты-попрошайки, если их попрошайничество хоть как-то мешает. Бывают конечно редкие сайты-исключения, на которых блокировщики отключают.
    Но чтобы этого добиться - надо быть ресурсом типа хабра или Майкрософта.
    Ответ написан
    14 комментариев
  • Как в консоли браузера сделали анимированный текст, короче фото?

    Stalker_RED
    @Stalker_RED
    console.log('%c       ', 'font-size: 200px; background: url(https://vignette.wikia.nocookie.net/nyancat/images/f/ff/Mexinyan.gif/revision/latest?cb=20150409011153) no-repeat;');

    https://developers.google.com/web/tools/chrome-dev...
    Ответ написан
    Комментировать
  • Можно ли хранить mysql-базу на двух разных дисках?

    kotomyava
    @kotomyava
    Системный администратор
    Можно почитать вот это: https://dev.mysql.com/doc/refman/5.7/en/general-ta... создать tablespace на разных дисках и сгрупировать по ним таблицы так, чтобы равномерно использовать место и производительность дисков.
    Ответ написан
  • Как тестировать laravel phpunit с помощью sqlite (ругается на синтаксические ошибки)?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Очевидно, что никаким образом не используют для тестирования sqlite, если в реальности используется другой движок БД. Создавайте тестовую БД и тестируйте в ней.

    Либо меняйте для тестового окружения драйвер и используйте исключительно механизмы миграций и ОРМ без сырых запросов (или проверяйте, что их синтаксис нормально понимает sqlite). Но это, не менее очевидно, связывание себя по рукам и ногам.
    Ответ написан
    Комментировать
  • Какое минимально возможное время отклика на ssl+nginx+php?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Важно понимать - зачем выжимать. 30, 50 и даже 200 мсек для загрузки страницы в браузере малоразличимы (а точнее - разброс от потери пакетов и RTT интернета клиента вносит значительно больший вклад).

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

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Выполняем программу:

    1. Видим echo, значит нужно распечатать её аргумент(-ы в нашем случае, т.к. их два, указаны через запятую. echo - это и функция и языковая коснтрукция, можно вызвать со скобками, можно без, через запятую просто передаём аргументы, сколько хотим)
    2. Начинаем смотреть, какие аргументы надо распечатать: 1 . print(2) и 3
    3. Первый аргумент составной, требует доп. вычислений. Начинаем его вычислять:
    4. Сначала конкатенируем строку "1" с РЕЗУЛЬТАТОМ ВЫПОЛНЕНИЯ ФУНКЦИИ print(2).
    5. Чтобы получить результат функции, её надо выоплнить. Выполняем print(2) -> печатается двойка. Вот откуда у нас первый символ "2".
    6. Результат выполнения функции print() всегда 1.
    Returns 1, always.

    7. Значит результатом конкатенации у нас будет "1" . "1" -> значит первый аргумент для печати = "11" Печатаем его, на экране у нас теперь 211.
    8. Печатаем второй аргумент "3". Получилось 2113.
    Ответ написан
    1 комментарий
  • Какой процент людей со скринридерами в интернете?

    sim3x
    @sim3x
    tl;dr
    4.4 million users using screen readers in the USA.
    1.38% of internet users are using screen readers in the USA


    https://ux.stackexchange.com/a/119596
    https://bthechange.com/how-many-people-with-disabi...
    www.interactiveaccessibility.com/accessibility-sta...
    Ответ написан
    Комментировать
  • Есть ли такой планировщик задач?

    GavriKos
    @GavriKos
    Да полно таких. Начните с Jira и Redmine
    Ответ написан
    Комментировать
  • LINQ или foreach?

    @EvgeniiR
    https://github.com/EvgeniiR
    1. Такая ситуация складывается от того что бизнесу обычно нужно чтобы было готово ещё вчера, и плевать ему какие костыли при этом будут в коде, в худшем случае он не подумает даже о сложности поддержки всего этого.

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

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

    https://habr.com/company/badoo/blog/430722/ - хорошая статья от badoo, с выводами на счёт целесообразности оптимизировать код / добавлять сервера
    Ответ написан
    Комментировать
  • Почему программа не найдена?

    @Fixid Куратор тега Linux
    ./balong_flash
    ./ показывает что надо запустить с текущей директории.
    Если не запустит, тоchmod +x balong_flash
    Ответ написан
    1 комментарий
  • В чем недостатки такого решения?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    В чем недостатки такого решения?

    Помимо отсутствия транзакционности в коде (о чём уже упоминали выше):

    1) Нет ключа на thread_id (желательно foreign)
    2) Типы в INT, вместо UNSIGNED INT
    Т.к. это MySQL, судя по вопросу, то:
    3) Нет указания на collation таблицы (желательно utf8mb4)
    4) Нет указания на движок таблицы (транзакции есть только в InnoDB и их нет в ISAM, MyISAM, Archive, Memory, etc.)
    5) Нет уникальности голосов (т.е. votes), как следствие - таблица денормализованная и подсчитывать так голоса - крайне глупо. В нормальном мире это делается отдельной таблицей с привязкой по comment_id и уникальным ключом на comment_id + user_id.
    6) Так как это комментарии, то использование varchar(255) для поля text - глупо. Нужен TEXT или LONGTEXT.
    7) Отсутствуют поля даты создания и редактирования, что в будущем не позволит строить статистические данные или расширять функционал (разрешать менять текст комментария только в течении 5ти минут, например). На это надо закладываться заранее.

    Это что касается структуры таблицы. Теперь по коду:
    8) Сервис-локация (класс App), вместо нормального DI - это жесть. Скрытые зависимости говорят о невозможности тестирования такого кода.
    9) "Магическая" константа 'comment' говорит о том, что потом такой код нормально не отрефакторить. Т.е. переименовываешь внутри что-то, а потом получаешь кучу ошибок и придётся лазать по коду и везде выгребать этот "get('comment')". И не дай бог где-то они получаются как-то иначе. Работы ещё на пол дня.
    10) Метод getById говорит о том, что сущность должна возвращаться всегда. Однако, может так случиться, что её по указанному id просто не найдётся. Как следствие - нет нормальной обработки ошибок.
    11) Мутабельное поле votes у comment (т.е. имеется прямой доступ к нему). Это говорит о том, что сущность очень сильно связана с БД, а значит любой рефакторинг таблицы ведёт к полному перелопачиванию всего кода.
    12) Нет обработки ошибок во время сохранения сущности.
    13) Метод vote - не лучшее название. Оно переводится и как глагол "голосовать" и как существительное "голос", что может запутать. Я бы переименовал в addVote. Хотя и так тоже норм.

    Это всё, что касается вопроса "в чём недостатки такого решения". Ответ - почти на каждой строчке косяк.

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

    @immaculate
    Программист-путешественник
    Выполнить команду crontab -e и поставить в начале строки знак комментария #.
    Ответ написан
    1 комментарий
  • Как заменить все слова "Привет", "Ок" на "Hello", "Ok"?

    megafax
    @megafax
    web-программист
    preg_replace_callback("~\b(Привет|Ок)\b~ius", function($match) {
        return mb_strtolower($match[1]) == 'привет' ? 'Hello': 'Ok';
    }, $str);
    Ответ написан
    Комментировать
  • DigitalOcean ввел 20% налог для граждан РФ, что делать?

    @stratosmi
    Это не для РФ.
    Для Европы, к которой относится РФ, это рядовая ситуация. До сих пор мы могли получать услуги дешевле европейцев.
    Европейцы платят этот же налог - в зависимости от страны до 25%.
    Да и не только они.
    https://en.wikipedia.org/wiki/Value-added_tax#Arou...
    В прошлые годы РФ не требовала такого вообще. В этом году покупатель услуги должен был сам его платить (вы этого не делали, конечно же, потому вам и обходилось на 20% дешевле). Ну а с 2019 года обязанность платить налог вменили поставщикам.
    По идее, любой интернет-сервис должен отныне выставлять нам дороже на эти 20%. Делать по факту будут только крупнейшие.
    Ответ написан
    3 комментария
  • DigitalOcean ввел 20% налог для граждан РФ, что делать?

    kotomyava
    @kotomyava
    Системный администратор
    Налог ввёл отнюдь не DO, а наши законодатели.
    И все более, или менее крупные организации оказывющие услуги россиянам, будут этот закон соблюдать, почему бы им, собственно это не делать? Придумывать особо ничего не придётся - в Европе давно по такой схеме взымается такой же налог, так что биллинг уже умеет это. Так что думаю, что миграция не поможет, или поможет не на долго.
    Ответ написан
    Комментировать
  • Откуда идет питание на USB порты вкюченного в сеть ноутбука Xiaomi?

    gbg
    @gbg
    Любые ответы на любые вопросы
    За распределение энергии отвечает контроллер питания на материнской плате, как он решит, так и будет. Для современных ноутбуков нет никакой необходимости в экзотических мерах по сохранению батареи.
    Ответ написан
    Комментировать
  • Как получить восьмеричную/символьную форму прав доступа?

    vman
    @vman
    Тут все просто, нужно разбить строку из 9 символов на 3 октета

    1 = rwx
    2 = r-x
    3 = r--

    Дальше заменить и просуммировать в каждом октете символы

    r = 4
    w = 2
    x = 1
    - = 0


    на выходе будет 754
    Ответ написан
    2 комментария
  • Dependency Injection на пальцах?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Архитектурные вопросы сложны по определению. Чтобы их понимать, нужно иметь достаточную базу знаний и опыта программирования. В идеале, чтобы понять паттерн, нужно столкнутся с проблемой, для решения которой он был придуман. Если база знаний и опыта уже есть, а понимания всё ещё нет, то прочитайте учебник, вроде "Чистой архитектуры" Мартина.

    А "на пальцах" вам сейчас дадут множество объяснений, большинство которых будут неправильными и запутают ещё больше.
    Ответ написан
    Комментировать