Задать вопрос
  • Как telegra.ph понимает, что я - это я?

    @accountnujen Автор вопроса
    Если обновлять страницу, то дата окончания будет каждый раз меняться на неопределённое число. В начале шло 2023-02-08 -> 2023-02-09 -> 2023-02-10 -> здесь я подумал, что можно уйти в бесконечность, но -> 2023-02-11 -> 2023-02-04 -> 2023-01-31
  • Зачем в сервисах типа github или jsfiddle у записи генерируется не порядковое число, а хеш?

    @accountnujen Автор вопроса
    не подумал, что там не md5. Прошу прощения.

    Подскажите, а данных в случае использования php pdo может быть только такая?
    $pdo->prepare("SELECT data FROM db_main WHERE hash = ?");

    Или можно как-нибудь оптимизировать поиск по хешу?

    Я погуглил quad tree и octree, но там ничего с php pdo не нашлось...
  • Почему пятно света от лазерной указки выглядит зернистым?

    @accountnujen
    Сергей Паньков, позор! это же база!!! В первую очередь про это думать надо!
  • Почему пятно света от лазерной указки выглядит зернистым?

    @accountnujen
    а с другого ракурса взгляда - не зернистая?
  • Зачем в сервисах типа github или jsfiddle у записи генерируется не порядковое число, а хеш?

    @accountnujen Автор вопроса
    забавно, что в случае парсингом jsfiddle - метрики будут иметь бессмысленное значение, а вот в vk.com как раз всё наоборот. Но тщеславие Павла - получить id1 - сильнее, чем неизбежный риск парсинга vk))) Если бы был md5 - хрен бы мы получили эти базы пользователей)))
  • Зачем в сервисах типа github или jsfiddle у записи генерируется не порядковое число, а хеш?

    @accountnujen Автор вопроса
    Поэтому хэш коммита в ссылке - естественное и логичное решение.

    хеш коммита - это риск коллизии. Даже с солью в виде времени.

    Спасибо за ответ
  • Нужно ли как-то обрабатывать код перед записью его в БД через PDO?

    @accountnujen Автор вопроса
    я правильно понимаю, что htmlspecialchars($code, ENT_QUOTES); лечит все болезни? Или нужно что-то ещё?
  • Кому-нибудь удавалось встроить в статью telegra.ph сторонний iframe?

    @accountnujen Автор вопроса
    Александр Карабанов, https://telegra.ph/ - если здесь вставить ссылку youtube,twitter,vimeo - будет iframe. Во всех остальных случаях (в том числе vk) будет просто ссылка
  • Кому-нибудь удавалось встроить в статью telegra.ph сторонний iframe?

    @accountnujen Автор вопроса
    Александр Карабанов, ну vimeo есть как раз в списках поддерживаемых по ссылке. При добавлении поста если просто кинуть ссылку на vimeo, youtube или twitter , то подгрузится iframe
  • Кому-нибудь удавалось встроить в статью telegra.ph сторонний iframe?

    @accountnujen Автор вопроса
    я открыл вашу первую ссылку и обратил внимание, что там сделан скриншот сайта instantview.telegram.org . Перемещаясь по сайту я набрёл вот на такой код:
    spoiler

    # twitter-tweet
    @before(<iframe>, \
      src, ".//a[starts-with(@href, \"https://twitter.com/\")][contains(@href, \"/status/\") or contains(@href, \"/statuses/\")]/@href", \
      class, "twitter-tweet" \
    ): $body//blockquote[has-class("twitter-tweet")]
    @remove
    
    # twitter-video
    @before(<iframe>, \
      src, ".//a[starts-with(@href, \"https://twitter.com/\")][contains(@href, \"/status/\") or contains(@href, \"/statuses/\")]/@href", \
      class, "twitter-video" \
    ): $body//blockquote[has-class("twitter-video")]
    @remove
    
    # facebook post
    $fb_post: $body//div[has-class("fb-post")][@data-href]
    @urlencode: $fb_post/@data-href
    @set_attr(data-src, "https://www.facebook.com/plugins/post.php?href=", @data-href, "&show_text=", @data-show-text, "&width=640"): $fb_post
    @before(<iframe>, src, @data-src, class, "fb-post"): $fb_post
    @remove
    
    # facebook video
    $fb_video: $body//div[has-class("fb-video")][@data-href]
    @urlencode: $fb_video/@data-href
    @set_attr(data-src, "https://www.facebook.com/plugins/video.php?href=", @data-href, "&show_text=", @data-show-text, "&width=640"): $fb_video
    @before(<iframe>, src, @data-src, class, "fb-video"): $fb_video
    @remove
    
    # aparat
    $aparat_video: $body//script[starts-with(@src, "https://www.aparat.com/embed/")]
    @set_attr(data-hash, @src)
    @match("^https://www.aparat.com/embed/([^?]+)", 1): $@
    @set_attr(data-src, "https://www.aparat.com/video/video/embed/videohash/", @data-hash, "\\/vt/frame"): $aparat_video
    @before(<iframe>, src, @data-src, class, "aparat"): $aparat_video
    @remove
    
    # instagram
    @before(<iframe>, \
      src, ".//a[contains(@href, \"instagram.com/p/\")]/@href", \
      class, "instagram" \
    ): $body//blockquote[has-class("instagram-media")]
    @remove
    
    # github
    <iframe>: $body//script[starts-with(@src,"https://gist.github.com/")]
    
    # telegram
    $tg_post: $body//*[self::script or self::blockquote][@data-telegram-post]
    @set_attr(data-src, "https://t.me/", @data-telegram-post, "?embed=1"): $tg_post
    @set_attr(data-src, @data-src, "&userpic=", @data-userpic): $tg_post[@data-userpic]
    @set_attr(data-src, @data-src, "&single=1"): $tg_post[@data-single]
    @before(<iframe>, src, @data-src, class, "telegram-post"): $tg_post
    @remove


    а ещё на вот такие записи: https://instantview.telegram.org/docs#embedded-elements

    То есть, по сути, можно и gist.github, и SoundCloud, и даже vk.com . Только как вот это сделать в telegra.ph...

    Чтобы убедиться в поддерживаемости элемента - нужно открыть его через вот такую ссылку:
    https://telegra.ph/embed/youtube?url=https://www.youtube.com/watch?v=HpXHdegMTtw

    для twitter это будет выглядеть вот так:
    https://telegra.ph/embed/twitter?url=https://twitter.com/norimyxxxo/status/1460182801794404357


    А как должно быть для gist или vk?
  • Почему не получается сравнить отрицание в switch?

    @accountnujen Автор вопроса
    1. «не используйте эту ужасную лестницу. Уже давно существует switch. Тем более он позволяет сравнивать в более удобной форме несколько значений сразу»
    2. https://learn.javascript.ru/switch
    Если break нет, то выполнение пойдёт ниже по следующим case, при этом остальные проверки игнорируются.

    х*ня получается написано? Потому что не "выполнение по следующим case", а б*ять игнорирование всех условий и выполнение всех действий.
    3.
    Конечно, это же куча опытных разработчиков, которые много лет пилят V8, допустили такой "баг".

    Это долбанный баг и мы живём в городе Зеро, где вокруг творится пи*дец и всех всё устраивает. Если "разработчики" javascript (я теперь только в кавычках этих обезьян называть буду разработчиками) решили, что нужно после каждого case писать break, то хочется поинтересоваться, а какого лешего в цикле for оно останавливается по условию второго параметра?
    for (let i = 0; i < 3; i++) { // выведет 0, затем 1, затем 2
      console.log(i);
    }

    по долбанной логике этих индусов должно быть вот так:
    for (let i = 0; i < 3; i++) {
      console.log(i);
      if (i = 3) {
        break;
      }
    }


    Абсолютно та же самая ситуация: я прописываю условие во втором параметре for/в case и в случае, если при достижении не написано break, то функция должна выполняться до второго, мать его, пришествия.
    Почему эти конченные здесь так не сделали? Наверное потому что те, кто писал for и те, кто писал switch - разные люди (вторых на улице нашли). Больше всего меня удивляют компании браузеров, которых после увиденного ничего не смутило и они добавили поддержку switch в свои браузеры. Хотя чему я удивляюсь: там одни индусы работают.
  • Чем плох md5(md5($pass)) для пароля?

    @accountnujen Автор вопроса
    FanatPHP, как правило проёб идёт в том, что люди используют один и тот же пароль на множестве сайтов и узнав пароль от одного - узнают от всего остального. "Жопа" будет подходить только к входу к моему сайту, а настоящий пароль - "Виноград" - никто не узнает, потому что ты ни брутфорсом, ни радужной таблицей, ни перебором по словарю не найдёшь. Про хеш, который вернёт Жопу я имею в виду, что хакер получил этот хеш через sql инъекцию. И я не рассматриваю вариант, где хацкер получил доступ к php файлу и увидел мою соль - это уже какой-то пиздец. Я понимаю о чём вы говорите и здесь цель: замедляя хеширование мы замедляем его подбор. Здесь уже вопрос закрыт. Меня другое беспокоит...

    В двух предложениях можешь объяснить, как работает сравнивание хеша с паролем по ARGON2I? Что за гениальное изобретение? Хеши имеют разный вид, но password_verify возвращает true... Это прям мистика для меня.
  • Чем плох md5(md5($pass)) для пароля?

    @accountnujen Автор вопроса
    Agent Smith, да срать на коллизию. Жопа и Виноград будут возвращать одинаковый хеш, только мне от этого хуже не станет. Я шифрую пароли, чтобы в случае взлома/утечки никто из пользователей не пострадал (иначе, зачем шифровать пароли и хранить в БД только хеши - я не знаю для чего), поэтому в моём понимании md5(md5()) полностью удовлетворяет потребности: даже если в радуге будет коллизионный пароль, то это будет пароль не моего пользователя.
  • Чем плох md5(md5($pass)) для пароля?

    @accountnujen Автор вопроса
    Philipp, а каким образом ещё можно было получить время выполнения bcrypt и argon?
  • Чем плох md5(md5($pass)) для пароля?

    @accountnujen Автор вопроса
    если внимательно посмотреть на мой вопрос, то ваша фраза
    Есть онлайн сервисы по подбору пароля по его хешу.

    теряет смысл. Много у нас радужных таблиц, который md5(md5())? а md5(md5(md5()))?

    ответ galaxy более полный чем ваш, а там символов меньше. задумайтесь. надеюсь не вы выбрали свой ответ ответом...
  • А как теперь копировать код из инструмента разработчика?

    @accountnujen Автор вопроса
    яндекс браузером пользуюсь. вручную обновил - заработало. спасибо
  • Недостатки видеоуроков?

    @accountnujen
    Антон Швец,
    И да, хорошую статью написать гораздо сложнее, чем записать видос. Занимался и тем и тем. Статью ты обдумываешь и редактируешь, а в видосе просто болтаешь.

    поддерживаю. в статье можно что-то пропустить, а видосе это сделать сложнее, потому что если упустишь - не заработает.
  • Недостатки видеоуроков?

    @accountnujen
    shurshur, edward_freedom, Vindicar, AVKor, Андрей Шубин,
    а на какой планете вы живёте, что у вас у всех вдруг стала документация понятной, написана людьми человеческим языком, а не индусами-олигофренами с множеством логических/смысловых ошибок?

    Я тут недавно API какой-то изучал и долго не мог понять, почему у меня ничего не работает, а там оказалось, что в продакшене одна версия, а документация написана под другую версию... Под новую версию разумеется никто документацию не писал с формулировкой: "А зачем?".