• Почему base64 увеличивает длину строки?

    SagePtr
    @SagePtr
    Еда - это святое
    Потому что вы закодировали текстовое представление этой последовательности, которое занимает в 2 раза больше байт, чем сама исходная последовательность.
    Если закодировать саму 12-байтную последовательность в base64, получится YoVpJUGj0kcVXHXf (16 символов).
    Ответ написан
    Комментировать
  • Гипотеза Била - можете объяснить, почему парень не прав?

    vabka
    @vabka
    Токсичный шарпист
    Ну в общем то тут надо сначала понять, что за Гипотеза Била.

    Гипотеза Била — гипотеза в теории чисел, обобщение великой теоремы Ферма: если A^x+B^y=C^z где A,B,C,x,y,z принадлежат множеству натуральных чисел и x,y,z>2 то A,B,C имеют общий простой делитель.


    В данном случае выражение
    128^5+32^7=8^12
    данную гипотезу не нарушает - все эти числа имеют общий простой делитель "2"
    Ответ написан
  • Возможно ли игнорировать файл/папку через .gitignore, которые уже есть в репозитории?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Нет, если файл уже попал в репозиторий, то он будет отслеживаться до тех пор, пока ты его оттуда не удалишь.

    Игнор действует только на те файлы, которые ещё не отслеживаются. Помогает СЛУЧАЙНО не добавить файл. Но лаже игнор не запрещает принудительно загнать файл в репозиторий.

    Если нужно игнорировать файлы конфигурации или секреты, то обычно делают для них шаблон и к имени файла добавляют расширение .sample например. А при реальном развёртывании на основе шаблона создают уже нормальный файл с реальными данными.

    Ещё есть трюк с временным игнорированием изменений в файле, ранее уже добавленном. Но он будет работать только в локальной копии репозитория и только после ввода команды
    git update-index --assume-unchanged файл
    Ответ написан
    Комментировать
  • Почему console.log("Текст") выдает undefined?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Метод log объекта console ничего не возвращает по результату своего выполнения, именно это вы и видите. Стрелка, смотрящая вправо, указывает на введённый вами код, смотрящая влево - на возвращённое введённым кодом значение.
    Ваш вопрос должен звучать как "почему я не вижу сообщение, выведенное через console.log" и ответ на него кроется, наверняка, в фильтрах этой панели:
    626e401fcb01c646486631.png

    626e4054058b0160804390.png
    Ответ написан
    4 комментария
  • В чём ошибка в задаче?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Без ошибок тут только заголовок функции.
    Причём, ошибки как семантические - неверные формулировки условий, так и логические - условия неверны в принципе.
    Ответ написан
    Комментировать
  • Распределение нагрузки канала с помощью NGIX на двух ВПС?

    fzfx
    @fzfx
    18,5 дм
    вы не привели ни схемы сети, ни конфигурацию обоих серверов nginx, а посему отвечу в меру понимания того, что вы всё-таки сообщили.
    proxy_pass отвечает за проксирование запросов на другой сокет (т. е. на другой сервер/IP/порт/тип сокета). а проксирование означает, что сервером nginx будет установлено соединение с сокетом, указанным в proxy_pass, и входящие запросы на сервер nginx будут этим сервером направляться по этому новому установленному соединению, а ответы на запросы, пришедшие обратно, будут направляться клиенту.
    таким образом, если клиенты раньше обращались на единственный сервер, устанавливая соединение и отправляя запросы, и получали по этому соединению от сервера ответы, то теперь клиенты, обращаясь на единственные сервер, устанавливая соединения, отправляя по нему запросы и получая ответы, инициируют ещё и установление соединения со вторым сервером, который получает запросы от первого сервера и отсылает ему ответы. т. е. нагрузка на канал возросла.
    Ответ написан
    Комментировать
  • Можно ли внедрить исполняемый скрипт в qr code?

    vabka
    @vabka
    Токсичный шарпист
    Как бы да, но как бы нет.
    Ограничения:
    1. Qr-код вмещает в себя очень немного данных даже в теории. На практике - при очень большом объёме данных, пользователь даже просканить не сможет его.
    2. QR-код сканируется приложением. Приложение должно знать, что делать с твоим кодом - иначе код будет воспринят как сырые данные или сырой текст.
    3. Objective-c компилируется в машинный код, что делает его зависимым от ОС и архитектуры процессора. Емнип, на Андроиде его использовать в принципе не получится, а на Айфоне запустить сторонний код принципиально нельзя.

    В теории, ты можешь любой код скомпилировать в webassembly (а в случае js даже это не надо) и закодировать как data URL, что позволит открыть и запустить его в браузере.
    Но я не знаю, можно ли objective-c скомпилировать в wasm.

    Всякие варианты с RCE и подобными уязвимостями в приложении-сканере не рассматриваю.

    PS: мне кажется, у тебя проблема X-Y
    Ответ написан
    Комментировать
  • Кто должен адаптировать сайт под разные разрешения мониторов?

    @Akela_wolf
    Extreme Programmer
    Странный дизайн и странный верстальщик. У того же Bootstrap максимальная ширина контейнера для XXL размера - 1320 пикселей. То есть на типичном сегодня FullHD (1920х1080) он занимает центральную часть экрана, оставляя поля слева-справа. Аналогично здесь, на тостере - содержимое ограничено шириной 1440 пикселей.

    Тут в общем-то главный вопрос: а как договаривались с верстальщиком? Была ли в требованиях к нему адаптивная верстка? Обсуждался ли этот вопрос вообще? Потому что если ему дали макет и сказали: "вот, делай как на макете" - верстальщик и сделал исходя из того что заказчик знает чего хочет.

    Теперь о том кто должен адаптировать макет к меньшему разрешению. Зависит от того что именно должно меняться. Если там просто уменьшение ширины колонок - это одно, это может сделать и верстальщик, если вы ему четко поставите задачу что и как должно измениться. Если же там начинаются более сложные вещи, например, "вот этот блок на небольших экранах показываем не здесь, а здесь", "вот эти блоки должны быть не рядом, а друг под другом", "этот блок вообще скрываем, отображаем если пользователь нажмет на кнопку" - то это, конечно, требует полноценного макета и разрабатывать его должен дизайнер.
    Ответ написан
    3 комментария
  • Удалить из массива объект добавленный с помощью this?

    twobomb
    @twobomb
    close() {
            // удалить объект из массива используя this или ещё другим способом без перебора уникальных идентификаторов
       let inx =    window.popUpers.indexOf(this)
    if (inx > -1) 
    window.popUpers.splice(inx , 1)
       }
    Ответ написан
    1 комментарий
  • А на старых картах есть дисплей порт?

    xez
    @xez
    TL Junior Roo
    Если у вас есть эта видеокарта, что может быть проще, чем заглянуть и посмотреть есть там display port или нет?
    Ответ написан
    4 комментария
  • Чему будет равна сложность этого алгоритма?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Зависит от размеров item. Если они там каждый O(N) размера, то ваша догадка правильная: O(n^2 log n).

    Если же все item суммарно не превосходят N, то ответ O(N log N). Потому что если их размеры a_i, то у вас сумма ai log ai. log(ai) можно сверху ограничить log(N) и вынести за скобки и потом заменить сумму в скобках на N.
    Ответ написан
    1 комментарий
  • Как сделать так чтобы в 00:00 происходило действие?

    @Drno
    засунуть нужный скрипт в crontab
    Ответ написан
    Комментировать
  • Есть ли такой браузер, который позволит смотреть код в iframe?

    DevMan
    @DevMan
    эмм.... код в айфреймах спокойно показывается в девтулзах.
    Ответ написан
    4 комментария
  • В чем сложность поддержки проектов на Go?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Более четырёх лет пишу на Go, лично для меня поддерживать проекты на других языках сложнее ))
    До Go много лет писал на Perl/PHP/Python/Java/C/Ruby on rails/JavaScript и "крутил" еще не мало чего.
    Сейчас пишу только на Go и Python.

    Основная сложность в Go - это то, что если вы начинаете писать "криво" - то писать так очень трудно :))
    Подход к реализации в Go достаточно непривычный для тех, кто приходит из скриптовых языков.
    Например запрет циклических импортов - это самое первое, что "взрывает" мозг :)
    Нужно время чтобы адаптироваться после скриптовых языков.

    Про обработку ошибок - это да, это, пожалуй, единственное что мне не нравится в Go.
    Для себя я решил эту проблему за 1-2 часа :) и больше меня это не беспокоит.

    По ООП - в Go оно есть, лично мне оно нравится намного больше, чем ООП в других языках ))
    Всё, что реально нужно - всё есть, но при этом ничего лишнего нет.
    Интерфейсы - просто прекрасны :)) Каналы, горутины - это просто "счастье" :))

    А если объективно - то я бы не стал говорить о сложности поддержки проекта применимо к какому то конкретному языку.

    Как правило сложность поддержки возникает там, где нормальная архитектура не заложена в проект.
    Т.е. проект как могла так и писала куча людей плюс, как обычно, сделать нужно было побыстрее )), от этого никто вообще не думал об архитектуре и получилось то, что получилось :))
    Про покрытие тестами и документацию мы вообще не говорим )))

    А когда в таком проекте нужно что-то доработать или исправить ошибку, то почти всегда очень не просто найти то место, где нужно править, и после правок в одном месте, как правило, что-то ломается в другом :)

    Как минимум, нужно соблюдать принципы SOLID, иначе код получается, мягко говоря, не поддерживаемым.
    Но понимание этих принципов так же приходит с опытом, их нельзя научиться соблюдать просто прочитавши книгу или статью. Нужно сделать несколько проектов используя эти принципы, написать криво, понять как было бы правильно, всё переделать и так несколько раз.
    Тогда, со временем, начнёт получаться понятный и легко поддерживаемый код.

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

    Хочется добавить, что как бы не писали про Go, что он простой и т.д. - он явно сложнее Python/PHP и т.д.
    Это еще один повод сказать, что поддерживать код на Go сложно ))

    Также стоит учитывать, что проекты которые пишут на Go зачастую сложнее, чем проекты для которых выберут скриптовый язык. Go выбирают когда планируются большие нагрузки, параллельная обработка чего-либо и т.д., а это, в свою очередь, дополнительно усложняет проект.
    Ответ написан
    7 комментариев
  • Почему некорректно считается req_limit?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Давайте разберём самое начало процесса, когда запускается ab и в нгинкс примерно одновременно начинают лететь 80 запросов. Счётчики в этот момент по нулям, но выставлен лимит в 1000 rps, то есть запросы могут обрабатываться не чаще, чем раз в 1 мсек.

    По факту, внутрь провалятся ровно 1+10=11 запросов, а остальные 80-11=69 отобьются с 503 кодом - это даже больше 62%.

    В дальнейшем, поскольку запросы постепенно размажутся во времени, перестав приходить синхронно, процент отлупов снизится, но отнюдь не до ожидаемых вами (1026-1000)/1000*100%, потому что время от времени (и скорее часто, чем редко) запросы всё-таки будут приходить чаще, чем раз в 1 мсек (бурст в 10 rps можно не учитывать, он по сравнению с лимитом микроскопический) - на это намекает среднее время исполнения 0.974 мсек, делёное на 80 потоков.

    Попробуйте увеличить бурст, скажем, до 500-1000 и посмотреть, как это отразится на результатах.
    Ответ написан
    9 комментариев
  • Что хранит в себе данная функция?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Комментировать
  • Nginx + php-fpm: где накапливается очередь для процессов и можно ли мониторить эту очередь?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    С остальными 900 запросами, скорее всего, произойдёт 504. Для размазывания нагрузки можно поиспользовать модуль нгинкса limit_req.
    Ответ написан
    4 комментария
  • Поясните пожалуйста bash скрипт?

    @RayHex
    1. https://tldp.org/LDP/abs/html/process-sub.html
    2. bash это интерпритатор, вы всегда можете вставить куски выражения, и посмотреть что они выдают, например:
    echo <(ls -1 .)
    /dev/fd/63

    3. Ваш код мягко говоря дурно пахнет, а по сути он вообще кривой и будет сбоить на файлах со спецсимволами или даже пробелами. Можно сделать проще и правильнее:
    shopt -s nullglob
    for f in my_temp_dir/*; do
        echo "$f"
    done

    nullglob нужен для случаев когда файлов совсем не будет, без него подставится строка со *, и это может вызвать ошибку в вашем коде.
    Ответ написан
    Комментировать
  • Как узнать, существует ли email?

    vabka
    @vabka Куратор тега Веб-разработка
    Токсичный шарпист
    Отправить на эту почту письмо с ссылкой для продолжения регистрации.

    Больше никак
    Ответ написан
    Комментировать