• Чем опытнее разработчик, тем меньше соблюдается принцип KISS?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Принцип KISS не означает что надо использовать самые примитивные инструменты.
    Он означает, что не надо переусложнять систему без нужды.
    Если так рассуждать, так и высшее образование не нужно: "Дед отличные бани строил, хотя вовсе был неграмотный. Я и без сопромата небоскреб построю!"
    Если вы пока ещё не понимаете назначение всех этих "лееров, провайдеров и репозиториев", это не значит, что они вообще никому не нужны.

    Для того, чтобы упростить управление системой, её надо усложнить.
    Этот принцип относится к любой области человеческой деятельности, от постройки ракет до управления государствами.
    Чем сложнее система, тем больше накладные расходы на ее управление. Хоумпейдж с котиками можно и нужно делать примитивными средствами. В большом проекте надо сразу закладываться на будущую расширяемость. То есть, заранее делить ответственность между "леерами".

    И кстати. Код, в котором "всё друг на друге завязано" - это очень плохой код. Собственно, предназначение всех этих "лееров, провайдеров и репозиториев" как раз в том, чтобы компоненты были как можно более независимы друг от друга.
    Ответ написан
    1 комментарий
  • Что происходит, когда я устанавливаю браузер по умолчанию под Linux?

    @immaculate
    Программист-путешественник
    Многие приложения открывают http ссылки и html файлы при помощи xdg-open. Скорее всего, при установке браузера по умолчанию, именно он начинает использоваться при запуске xdg-open.
    Ответ написан
    Комментировать
  • Много соединений socket. Что лучше использовать asyncio или потоки?

    При использовании одного потока с асинхронной обработкой будет задействовано только одно ядро процессора. При использвании потока на каждый запрос большие дополнительные расходы на создание потоков. Отсюда:
    1. Если каждый запрос требует серьезной обработки и грузит процессор - используйте потоки.
    2. Если запросы частые, но обработки не требует - используйте асинхронность.
    3. Если у вас действительно высокие нагрузки и нужно максимально эффективно использовать ресурсы - используйте приложение с несколькими заранее запущенными потоками (worker'ами) и в каждом из них используйте асинхронность, распределяйте запросы равномерно между воркерами. Количество воркеров должно быть не меньше, чем количество ядер.

    P.S. при исользовании любого подхода кроме один запрос - один поток, асинхронность должна быть не только на сокетах, все операции (например работа с файлами) должна быть асинхронными, чтобы не приводить к блокировке потока.
    Ответ написан
    Комментировать
  • Где практиковаться в низкоуровневом программировании и что изучать?

    У предыдущего оратора гон полный. Но и Вы не очень внятно свои озвучили "хотелки". Си, он и Африке Си. Ассемблер привязан к "железу" намертво. Вы уж определитесь.
    Ответ написан
    2 комментария
  • Как передать нескольких параметров из Си в функцию на ассемблере?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега C
    Седой и строгий
    Для архитектуры AMD64 в Linux применяется System V AMD64 ABI:

    Первые 6 целых числе или указателей передаются в регистрах RDI, RSI, RDX, RCX, R8, R9, а числа с плавающей точкой в регистрах XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6 и XMM7. Если параметров больше, то дополнительные передаются через стек. Целые числа до 64-бит возвращаются в регистре RAX, а большего размера в паре регистров RAX и RDX. Числа с плавающей точкой подобным же образов возвращаются в регистрах XMM0 и XMM1.
    Ответ написан
    Комментировать
  • Каково взаимодействие autosleep и epoll?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    ведь есть autosleep!? Подскажите что это за сущность и почему ее нет в современных дистрибутивах?

    Потому что это андроидная фича. Но если хочется, можно пересобрать десктопное ядро и включить в нём CONFIG_AUTOSLEEP.

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

    Пробуждение машины по событию в периферийном устройстве -- это дело драйвера устройства совместно с самим устройством, к юзерспейсу и epoll_wait отношения не имеющее.
    Ответ написан
    Комментировать
  • Недоверие сертификату let`s encrypt?

    CityCat4
    @CityCat4 Куратор тега Цифровые сертификаты
    Внимание! Изменился адрес почты!
    cert.pem и privkey.pem единственные файлы

    Они не только не единственные, но даже и называться могу совершенно произвольно :) Кроме файлов ключа и сертификата ключа всегда есть файл корневого сертификата издателя, либо цепочка сертификатов издателя, ведущая к его корневому сертификату. Этот корневой сертификат хранится в специальном хранилище, называемом хранилищем доверенных корневых сертификатов. Система автоматически доверяет любому сертификату, если она способна проследить издателя до сертификата, находяещгося в хранилище корневых сертификатов. Вопрос в том, откуда браузер берет информацию о корневых сертификатах :)
    Ишак, Опера, Хром, ЯБ - используют системное хранилище винды
    FF имеет свое хранилище
    Чтобы решить вопрос с доверенностью сертификата от LE (как и любого другого) - нужно знать, откуда он берет данные о корневых сертификатах и, в случае необходимости, добавить их туда
    Ответ написан
    2 комментария
  • Windows 7 – system занимает 80 порт?

    JayDi
    @JayDi
    Отключаем из автозапуска службы:
    — Служба удаленного агента для Microsoft Web Deploy 2.0;
    — Служба агента веб-развертывания.

    Это компоненты IIS-сервера, устанавливаются, например, при использовании продуктов из Microsoft Web Platform.
    Ответ написан
    1 комментарий
  • Недоверие сертификату let`s encrypt?

    @sidni
    Php Developer
    Часто нужно прописать промежуточные сертификаты ЦС, тогда мобильные устройства не будут выкидывать варнинг
    Ответ написан
    Комментировать
  • Недоверие сертификату let`s encrypt?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    Сайт (TLS-сервер в общем случае) должен сам предоставлять полную цепь сертификатов, подтверждающих его собственный, исключая сертификат корневого ЦС, который в нормальном состоянии находится в хранилище доверенных на клиенте. Так что да, нужно отдавать помимо cert.pem ещё и fullchain.pem. Причина в том, что клиент в норме не должен знать обо всей инфраструктуре PKI каждого ЦС, чей корневой сертификат он хранит, так как она в общем случае динамическая, и подчиненные сертификаты все равно перевыпускаются раз в 1-5 лет (LE с его трехмесячными сертификатами может и менять subCA раз в год), поэтому клиенту негде взять всю цепь сертификатов. Поэтому самое логичное решение - хранить её на сервере, так как он тоже должен знать, кто ему серт подписал, и с сервера же раздавать по мере необходимости.
    Ответ написан
    2 комментария
  • Переход сайта на https. dns-хостинг?

    karabanov
    @karabanov
    Системный администратор
    Это делает http сервер по средствам 301 редиректа на https версию сайта.
    Ответ написан
    Комментировать
  • Переход сайта на https. dns-хостинг?

    martin74ua
    @martin74ua
    Linux administrator
    никакая сила.

    на вашем хостинге есть сайт zzz.ru и есть сайт https://zzz.ru
    на сайте zzz.ru сказано - все перенаправлять на https://zzz.ru
    на https://zzz.ru отдается дополнительно заголовок hsts, который заставляет клиентский броузер запомнить, что там https.

    В результате - первый раз клиентский броузер попадает на http версию, оттуда его перенаправляют на https, и его броузер запоминает, что надо сразу ходить на https.

    А задача ДНС - по имени домена отдать ип адрес, куда надо соединяться. Все.
    Ответ написан
    Комментировать
  • Где достать бесплатный tls-сертификат?

    @Wexter
    Ответ написан
    Комментировать
  • Переход сайта на https. dns-хостинг?

    @lehha
    В DNS такое провернуть невозможно.

    Необходимо при открытии https-версии сайта выдать хитрый заголовок:
    Strict-Transport-Security: max-age=31536000; includeSubDomains

    чтобы браузер этого пользователя запомнил, что ходить нужно только по https.

    Так же можете добавить домен в Предопределенный список HSTS сайтов, которые необходимо открывать исключительно по https. Этот список скачивают браузеры и используют его в работе, используйте заголовок:
    Strict-Transport-Security: max-age=31536000; preload

    или вот тут: https://hstspreload.org/

    Работает на движках Chromium, другие браузеры (вроде) не используют его.
    Ответ написан
    4 комментария
  • Структура RGBA матрицы, декодированных чанков PNG-изображения?

    @Mercury13
    Программист на «си с крестами» и не только
    Это так называемый фильтр, для каждой строчки свой. Хорошо описано в англовике.

    В первой строчке фильтр 1 — пиксель слева. Сначала к (0,0,0,0) (все пиксели за пределами картинки имеют цвет (0,0,0,0)) добавляем (0,255,0,255). Для всех остальных пикселей прибавка будет (0,0,0,0).
    Во второй строчке фильтр 2 — пиксель сверху. То есть к пикселю сверху (зелёному) прибавляем (0,0,0,0) — и получаем такой же зелёный пиксель.
    Когда начинается красная полоска, поступаем так же — первая строчка строится по пикселю слева, остальные — по пикселю сверху.
    В оранжевой строчке у нас хитрый фильтр 4 — фильтр Пэта. Для каждого из каналов берём пиксель сверху, слева или сверху-слева — в зависимости от того, что ближе к В + Л − ВЛ. Ну и соответственно прибавляем 0, 100, 0 и 0. Почему система выбрала именно этот фильтр, если фильтр 1 справится не хуже — не знаю.

    Есть пять фильтров.
    0 — как есть.
    1 — прибавить к пикселю левее.
    2 — прибавить к пикселю выше.
    3 — прибавить к их полусумме.
    4 — прибавить к тому пикселю из трёх, что ближе к В + Л − ВЛ. Приоритет на случай «ничьей» — Л > В > ВЛ.

    Всегда работаем с байтами; если глубина <1 байта — значит, один байт захватывает несколько пикселей, а под «пикселем слева» подразумеваем предыдущий байт. Если >1 байта — отступаем на глубину цвета (2, 3 или 4). Полусумма байтов вычисляется в достаточной точности с округлением вниз; «прибавить» — в типе byte (т.е. по модулю 256).

    Главное, что так долго делает программа PNGOUT — это экспериментирует с фильтрами. Подобная оптимизация может серьёзно уменьшить результирующий PNG.
    Ответ написан
    Комментировать