• Как повесить проверку аутентификации для всех страниц сайта?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    если запросы генерируются скриптом и контент получается аяксом - просто добавляете заголовок, и в фетч и в xht для этого есть средства. Если же речь идет о переходе по ссылкам - то никак, этим рулит браузер.
    Ответ написан
    6 комментариев
  • Где на клиенте хранить jwt?

    Ну вообще jwt в принципе лучше вообще для работы с браузером не использовать.
    А так MDN, я так думаю, имел в виду данные приложения и какие-то совсем критичные данные, типа номеров карт и паролей, которые лучше вообще не хранить.
    Например если ты делаешь корзину в интернет-магазине, то раньше вполне логично было бы использовать куки, а сегодня вместо этого лучше взять localstorage.

    + Куки не удобны для back-back взаимодействия

    Так что если хочешь использовать jwt - лучше используй заголовок Authorization
    Ответ написан
    3 комментария
  • Почему люди экономят на блоках питания при сборке?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Пытаются сэкономить, не разбираясь в вопросе, очевидно...
    Ответ написан
    Комментировать
  • Почему люди экономят на блоках питания при сборке?

    @Drno
    Потому что люди тупые...
    И им видимо лень спросить или подумать

    Потому что очевидно, что основное в ПК это БП и материнка
    Остальное - это «навесное»

    Они думают что важен процессор, делая аналогию с двигателем машины, но «двигателем» является БП, а «рамой» материнка

    Моё личное ИМХО)
    Ответ написан
    Комментировать
  • Почему люди экономят на блоках питания при сборке?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    От глупости.

    Это проходит после первой матери, сгоревшей из-за некачественного БП :)
    Ответ написан
    Комментировать
  • Какая разница на практике между clang и gcc?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Однажды я на подобный вопрос уже отвечал, правда там вопрос был о кроссплатформенности, а не о трансляторах.

    Какая разница между clang и GCC.
    Разница большая. GCC обладает обширной поддержкой наследия идиом и конструкций из языка C, которые, вынужденно или по своей воле, поддерживает в современном C++.
    VLA, тип по умолчанию, всевозможные изыски синтаксиса C. Это все GCC не глядя принимает за C++ код и позволяет трансляцию.
    GCC даже сегодня многократно нарушает стандарты C++ просто потому что выбрал стратегию поддержки экзотической функциональности C в коде C++. Так же GCC не хвастается и скоростью поддержки стандартов C++.
    В 2016 году Google полностью отказались от поддержки GCC в Android NDK из-за слишком плохой поддержки стандартов и слишком свободного следования стандартам C++. В этот момент GCC стал неконкурентоспособным относительно оставшихся двух самых широко используемых трансляторов.
    Clang же, наоборот, сегодня считается, буквально, бастионом идеального следования стандартам C++. Clang точно поддерживает стандарты во всех деталях, максимально быстро интегрирует изменения и добавления стандартов, позволяет в самых первых рядах поиграться с функциональностью из драфтов следующего стандарта C++.
    Clang обладает обширной системой статической и динамической проверки кода: богатый статический анализ, возможность подключения санитайзеров, поддержка C++ Core Guidelines, очень качественные отчеты об ошибках трансляции, хорошая скорость трансляции.
    Это все ставит clang в предпочтение перед GCC на третьих для GCC платформах.

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

    Я в своей работе видел многое. Я видел как при смене GCC на clang люди хватались за голову и отказывались от последнего просто потому что он нашел горы нарушений стандарта, которые молча принимал GCC. Я видел как группа из 5 человек 3 месяца рефакторила код при переходе с MSVS2015 на MSVS2017 (т.е. просто при смене версии транслятора) просто потому что разработчики из рук вон плохо знают используемый ими стандарт C++.
    Я видел ошибки в clang, приводящие к неверной генерации кода. Я видел ошибки в GCC, не позволяющие использовать его для кроссплатформенной сборки. Я видел ошибки в MSCL, в результате которых последний явно нарушает стандарт, а команда его разработки отказывается это исправлять потому что "иди нафиг".

    И, тем не менее, конкретно у меня есть возможность писать код ровно один раз и собирать его на 5 совершенно разных целевых платформ совершенно разными трансляторами, на которых этот код работает абсолютно равнозначно. Просто потому что я знаю стандарт и то, как этот стандарт поддерживают выбранные мной трансляторы.
    Ответ написан
    3 комментария
  • Какая разница на практике между clang и gcc?

    @Voland69
    Clang действительно строже, и вероятность не собрать то что успешно работало под gcc действительно есть.
    Грубо говоря то что gcc пропустил в clang станет warning'ом, а то что в gcc было warning'ом в clang стало ошибкой компиляции.
    Поведение можно настроить флагами компиляции.
    Полной совместимости действительно нет, и в контексте плюсов MSVC, GCC, Clang и MinGW это четыре разных компилятора.
    А Вы собственно какую задачу решаете?
    Если вопрос на чем писать и дебажить - на том компиляторе, которым планируете артефакты собирать. Если таковых много, то вариант один - дебажить на самом популярном/строгом и периодически проверять сборку под остальные платформы.
    Ну и по максимуму обмазать тестами - то что код собрался это еще полдела, надо чтобы он еще предсказуемо и правильно работал.
    Ответ написан
    1 комментарий
  • Периодическая подгрузка данных с сервера?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Это один из стандартных вариантов.
    Ещё можно использовать websocket, тогда сервер может сам отправлять изменения на клиент.
    Ответ написан
    Комментировать
  • В каких случаях стоит использовать ORM в go?

    @Vitsliputsli
    В каких случаях стоит использовать ORM в go?

    Как и в любом другом языке, если вам не критична скорость работы с БД и вы понимаете как работает конкретная ORM. Или вам вообще плевать на скорость работы с БД, тогда можно и не понимать ORM.
    Ответ написан
    Комментировать
  • Где взять офлайн установочник для gcc в убунте?

    Можно заранее скачать репозиторий:
    https://help.ubuntu.com/community/AptGet/Offline/R...
    Ответ написан
    Комментировать
  • Где взять офлайн установочник для gcc в убунте?

    Adamos
    @Adamos
    Установщиков под линуксами обычно не бывает, все ставится пакетами из репозитория.
    Но нюанс в том, что один пакет компилятора ни черта не даст, нужно выкачивать к нему все зависимости.
    Это в убунте может сделать, например, apt-rdepends.
    Ответ написан
    Комментировать
  • Как можно измерить производительность http сервера?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Для подобного тестового кода можно использовать ab (Apache HTTP server benchmarking tool)

    Например так
    ab -n 10000 -c 1000 http://localhost:8080/

    Где:
    -n это количество запросов, которое нужно сделать
    -с это количество одновременных запросов

    Запустил у себя на одном из серверов, результат вот такой
    Server Software:
    Server Hostname:        localhost
    Server Port:            8080
    
    Document Path:          /
    Document Length:        5 bytes
    
    Concurrency Level:      1000
    Time taken for tests:   0.509 seconds
    Complete requests:      10000
    Failed requests:        0
    Write errors:           0
    Total transferred:      1210000 bytes
    HTML transferred:       50000 bytes
    Requests per second:    19627.39 [#/sec] (mean)
    Time per request:       50.949 [ms] (mean)
    Time per request:       0.051 [ms] (mean, across all concurrent requests)
    Transfer rate:          2319.25 [Kbytes/sec] received

    Т.е. при 1000 одновременных запросов сервер сможет обрабатывать в среднем 19627 запросов в секунду

    Но важно понимать, что в реальном проекте у вас будет не один endpoint, и что каждый endpoint, в зависимости от того, что он будет делать - будет показывать разный RPS.

    Например если сейчас вы добавите еще один endpoint и будете делать запросы в базу для формирования ответа - RPS будет значительно меньше.
    Ответ написан
  • Почему определение инкапсуляции дают неправильно?

    @Kirill-Gorelov
    С ума с IT
    Хороший вопрос, надо тебя спросить. Почему ты дал его не правильным?)))
    А ну ка отвечай давай ;)
    Ответ написан
    6 комментариев
  • Почему определение инкапсуляции дают неправильно?

    Adamos
    @Adamos
    Для объединения объектов достаточно структуры, даже ООП не требуется.
    In capsula - "в коробочку". Обязательное для нормальной архитектуры отделение внутренних данных от внешних интерфейсов.
    К "сокрытию информации", разумеется, тоже никакого отношения не имеющее.
    Читайте нормальные учебники и не слушайте бред, который бубнят в камеру недоучки.
    Ответ написан
    Комментировать
  • Есть ли в c++ стандартная функция для обхода директорий под винду?

    maaGames
    @maaGames
    Погроммирую программы
    C++ yне имеет никакого отношения к винде, поэтмоу "оно само" ничего этого не умеет. Не умело, до упомянутого С++17, которое самое настоящее родное С++ное. Там есть свои неудобства и, кажется, не полный функционал winapi доступен, но в 99% случаев его достаточно.

    WinAPI это СИщный интерфейс для подключения к библиотекам из любых языков.
    Ответ написан
    Комментировать
  • Есть ли в c++ стандартная функция для обхода директорий под винду?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    filesystem
    Важно!

    в выпуске Visual Studio 2017 заголовок еще не является стандартом C++. C++ в Visual Studio 2017 RTW реализует окончательный черновой стандарт, который находится в стандарте ISO/IEC JTC 1/SC 22/WG 21 N4100.
    Ответ написан
    Комментировать
  • Как отсортировать дробную и целую часть числа в C++?

    @res2001
    Developer, ex-admin
    Целую часть можно получить с помощью floor(v)
    Дробную: (v - floor(v))
    Для сортировки используйте стандартный sort.

    Кстати, отсортировать вы можете массив (он у вас уже есть в памяти), когда говорят про поток, то это нечто потенциально бесконечное, порции данных из потока вы получаете частями и обрабатываете их.
    Соответственно, если у вас действительно поток, то надо строить из его данных дерево. Для этого можно использовать стандартный map. Данные будут укладываться в дерево по мере поступления с одновременной сортировкой. Получить из дерева отсортированный список можно просто обходом дерева с помощью итератора.
    Данные в дереве сортируются по ключу. Для ключа можно использовать примерно такую конструкцию: floor(v) + (1 - (v - floor(v)))
    Ответ написан
    3 комментария
  • Какую ответственность можно понести за парсинг персональных данных?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    На какую судью попадёте - так и выхватите. Какой к херам закон...
    Ответ написан
    Комментировать
  • Какую ответственность можно понести за парсинг персональных данных?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Штраф не за парсинг, а за последующую незаконную обработку ПД.
    Ответ написан
    Комментировать