• Куда загружаются индексы mysql?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    select @@datadir
    Ответ написан
    Комментировать
  • Как расшифровать JWT токен?

    Stalker_RED
    @Stalker_RED
    Токен состоит из трех частей разделенных точкой. Каждая часть кодируется немного модифицированным base64.
    Первые две раскодируются вообще без ключа. В конце подпись, кодированная ключом. В вашем примере это
    your-256-bit-secret (попробуйте там справа, где синенькое напечатать другой ключ и смотрите как меняется токен).

    <?php
    $key = 'your-256-bit-secret'; // ваш ключ
    $jwtToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
    $jwtArr = array_combine(['header', 'payload', 'signature'], explode('.', $jwtToken));
    
    var_export($jwtArr); /* -> разделяем по точкам
    array (
      'header' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',
      'payload' => 'eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ',
      'signature' => 'SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c',
    ) */
    
    echo PHP_EOL . base64_decode($jwtArr['header']) . PHP_EOL; // декодированный заголовок
    // -> {"alg":"HS256","typ":"JWT"}
    echo base64_decode($jwtArr['payload']) . PHP_EOL; // декодированная нагрузка
    // -> {"sub":"1234567890","name":"John Doe","iat":1516239022}
    
    $calculatedHash = hash_hmac( // сами считаем хеш
    	'sha256',
    	$jwtArr['header'] . '.' . $jwtArr['payload'],
    	$key,
    	true);
    
    echo base64_encode($calculatedHash) . PHP_EOL;
    // -> SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV/adQssw5c=
    
    echo $jwtArr['signature'] . PHP_EOL;
    // -> SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
    // Похоже? Там слегка модифицированный base64


    Третья часть - подпись. Если взять первые две части и получить sha265-хеш с использованием вашего ключа, то он должен совпасть с первой частью. Это подтвердит, что первые две части никто не изменял.

    Хоть бы вики почитал, в самом деле :)
    Ответ написан
    6 комментариев
  • Возможно ли создание языка, который бы пришёл на замену С по производительности?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Всем привет!

    Правильно ли я считаю, что С-программы работают быстрее программ на других языках после Ассемблера?

    Нет.
    Большинство компилируемых языков компилируют текст программ непосредственно в машинный код.
    Просто в С, как в одном из низкоуровневых языков, можно больше контролировать поведение компилятора и готовить к нему текст программы. Но программы бывают разные, если брать конкретный алгоритм и сравнивать - думаю сопоставимой скорости можно добиться везде.

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

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

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

    Опять же. "быстрые программы" это что?
    Где-то быстрее Go, где-то С++, где-то чистый асм, где-то даже питон.
    Скорость программ обычно не так критична. А конкретный алгоритм можно вылизать почти на всем.
    Ответ написан
    Комментировать
  • Как организовать и хранить конфиг по каждому пользователю, чтобы что-то делать один или несколько раз?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как грамотно хранить такие данные и остаться масштабируемым?

    поля вида: user_id, par, value

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

    @John_Nash Автор вопроса
    coder
    Вопрос снимается. Была ошибка в ПО. После каждого вызова дергался метод Close()
    Видимо, в этом случае встроенный пул соединений используется только 5 минут
    Ответ написан
    Комментировать
  • После установки ОС ubuntu 20.04 и её последующем запуске появляется ошибка, что можно сделать?

    Adamos
    @Adamos
    Беглое гугление указывает на грабли SecureBoot в BIOS. Нужно либо отключить эту хрень напрочь, либо указать ей, что установленный загрузочный образ - весь из себя секьюрный (trusted for execution). Рекомендую первое.
    Ответ написан
    33 комментария
  • Какой хэш-шифр самый... Сложный?

    paran0id
    @paran0id
    Умный, но ленивый
    Комментировать
  • Какое решение выбрать для сохранения данных?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Я предпочитаю большие объемы данных писать в БД.
    Подключите room, ormlite или любой другой ORM и используйте SQlite.
    Ответ написан
  • Почему heroku не хочет загружать мой проект?

    @fantom_ask Автор вопроса
    Опечатка в слове reqirements.txt а надо было requirements.txt
    Ответ написан
    1 комментарий
  • Какой кешер для php лучше? Как выбрать?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    1. OPCache для кеширования байт-кода PHP. Удивительно если оно не включено.
    Для использования не требуется менять скрипты.

    2. Redis или memcache для кеширования данных, в частности результатов запросов из БД. Естественно разработчики должны написать нужный код чтобы кеширование имело эффект.

    3. Для сайтов под wordpress обязательно подключить и настроить любой популярный кеш-плагин. Например https://ru.wordpress.org/plugins/wp-super-cache/

    4. Почитать что-то для понимания что такое кеширование и как оно может ускорить приложение https://ruhighload.com/search?q=Кэширование

    p.s. никакое кеширование не победит кривизну рук разработчиков которые делают запросы к БД с fullscan без использования индексов.
    Ответ написан
    Комментировать
  • Проблема с установкой curl в Ubuntu 18.10?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Написано же, попробуйте "sudo apt update".
    Или смените зеркала репозиториев.
    Ответ написан
    7 комментариев
  • Можно ли в SQLite добавить сразу список с данными?

    freeExec
    @freeExec
    Участник OpenStreetMap
    VALUES можно перечислять через запятую в одной команде INSERT
    Ответ написан
    Комментировать
  • Защита социальных сетей или как обходить блокировку парсинга?

    kocherman
    @kocherman
    Парсить FB надо на мощных виртуалках, на каждой виртуалке по 5-10 запущенных Chrome, никаких selenium. Переписываешь скрипты на Userscript. Много IP достигается покупкой premium-proxy-list. Однотипный поиск делать бесполезно. Надо смотреть фото, читать комменты, соблюдать рандомные задержки. Изредка ставить лайки. Не забывай эмулировать разные разрешения экрана и разные размеры окон.
    Ответ написан
    8 комментариев
  • Почему может быть куча sleep запросов пока не дам отдохнуть mysql пару минут?

    @vitaly_il1
    DevOps Consulting
    Во-первых, бэкап на продакшен не должен вешать сервер.
    Два варианта - или запускайте его на slave, используйте снепшоты, или хотя бы
    "mysqldump --single-transaction".
    В целом я не вижу проблемы с сервером. Интересно посмотреть "slow queries" graph перед 5:00 и после, без спайка. И вообще проанализировать и начать оптимизировать slow queries.
    Ответ написан
    5 комментариев
  • Как побороть "тяжелый сайт" в chrome?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    При загрузке страниц CPU приходит просто в бешенство.
    - отрубай постепенно JS скрипты и смотри какой именно грузит. Может у тебя там майнер вообще какой то поселился.
    Не нужно подстраиваться под говно код, подстраивай говно код под себя.
    Ответ написан
    4 комментария
  • Как обновить ubuntu до 18?

    @pfg21
    ex-турист
    посоветую редактировать пакеты системы через aptitude -псевдографика и курсорное управление удобнее.
    я обычно правлю конфиги /etc/apt/source.list - ставлю следующее имя.
    после чего обновляю списки пакетов sudo apt update
    потом качаю все пакеты в кеш, сейчас конечно интернет стабильный, но лучше перебздеть чем обосраться. sudo apt-get upgrade --download-only
    Ответ написан
    7 комментариев
  • Апликация .NET Core работающая с сенсорами - правильный метод?

    yarosroman
    @yarosroman
    C# the best
    Аппликация, это когда ножницами из цветной бумаги вырезают и при помощи клея узор собирают.

    Я бы приложение бы разбил на 2 части, сервис который собственно собирает данные, и собственно webapi. Работа с оборудованием неизвестно как по времени пойдет, а у веб запросов есть ограничение по времени, конечно его можно большим сделать, но это не то. А взаимодействие можно так же через сокеты сделать или через dbus.
    Ответ написан
    Комментировать
  • Где лучше хранить файлы?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    при хранении в файловой системе, у вас будет запрос к данным и еще один запрос к файловой системе (в зависимости от характеристик диска, это добавляет к запросу до 8 миллисекунд в случае с жесткими дисками)
    в случае хранения фотографии вместе с запрашиваемыми данными, в самой БД у вас не будет этого лишнего запроса, а данные все равно читаются пакетно большим объемом, так что это только плюс к скорости.
    Ответ написан
    1 комментарий
  • Как поделить базу между микросервисами?

    @SirotaKazansky
    System Analyst
    Не очень понимаю зачем нужно столько сетевых транзакций (записали в одну БД, записали во вторую БД, обменялись данными и записали в свои БД), и зачем слой доступа к данным делать отдельным сервисом, как здесь предлагали - чем это поможет?

    Я думаю стоит руководствоваться бизнесовой логикой при разделении на сервисы. И стоит поразмыслить какую проблему мы устраняем и какую создаём, когда выделяем сервис в отдельный, опять исходя из бизнеса - могут ли эти сервисы жить друг без друга, может у вас одна транзакция проходит через 2 и 3 программы последовательно, и не имеет смысла, если что-то упало - нужно откатывать назад тогда состояния. Подумать что будет если данные между БД рассинхронизируются, важно ли им быть синхронными. Какие объемы данных, какие требования по скорости и т.д. и т.п.

    Считаю что на уровне "есть программы, есть база, они что-то делают" - невозможно определить нужность и правильность разделения.
    Ответ написан
    Комментировать