• Почему вставка данных без подтверждения изменяет БД?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Насколько я понимаю - connection.commit() завершает транзакцию, но если вы сделали инсерт, а затем не сделали комит, то транзакция автоматически откатится, однако так как инсерт "уже был", внутренний курсор автоинкремента сместится на количество (не)добавленных строк.

    Почему так происходит и как этого можно избежать?

    - Доктор, я когда вот здесь нажимаю - больно!
    - Не нажимайте здесь.
    Ответ написан
    Комментировать
  • Почему вставка данных без подтверждения изменяет БД?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Представьте: последний id был 100, вы начали транзакцию и добавили строку в таблицу. Должен MySQL зарезервировать ID для этой строки? Очевидно, да. Какой? Видимо, 101.
    В этот момент проходит ещё одна команда на вставку строки, в другом потоке. Она тоже хочет получить следующий id. Какой ей выдать? Видимо, 102. Строка записана.
    Теперь вы отменяете (или не подтверждаете) первую транзакцию. Куда деть значение 101? Да просто выбросить.
    AUTO_INCREMENT гарантирует уникальность и монотонное возрастание, но не непрерывность значений, так что пропуск значений (лакуны) вполне допустимы.
    Ответ написан
    3 комментария
  • Как часто используется инструкция nonlocal?

    sim3x
    @sim3x
    Потому что мало кто любит стрелять себе в ногу

    Зачем ввели?
    -Кто-то написал код, кто-то обосновал его включение в ядро, кто-то одобрил
    У всех были свои мотивы
    spoiler
    Подозреваю, что большая часть мотивов была в виде: а шоб було
    Ответ написан
    Комментировать
  • Почему функция и переменная не могут одинаково называться?

    ri_gilfanov
    @ri_gilfanov
    Web- and desktop-developer
    Более-менее корректный ответ мог бы выглядеть так.

    Большинство "слов" в коде на Python -- это имена-ссылки на объекты Python.

    И функции, и "переменные" -- это объекты Python.

    В любом пространстве имён могут хранится имена-ссылки как на функции, так и на "переменные".

    Имена в каждом пространстве имён уникальны, поэтому нельзя одинаково назвать и функцию, и переменную. При попытке так сделать, что-то новое займёт имя-ссылку чего-то старого.

    То же самое относится к классам, к объектам классов, к полям и методам классов и пр. Все объекты Python либо занимают уникальные имена в неком пространстве имён, либо не занимают вовсе (например, числа в списке доступны не по имени, а по индексу).

    P.S. Спасибо, вопрос поднял настроение.
    Ответ написан
    Комментировать
  • Что такое item?

    Adamos
    @Adamos
    Семантически вернее всего, наверное, будет "штука".
    Это одна штука неважно чего из множества таких же штук.

    А вот если эта штука действительно стала самостоятельной боевой единицей - тогда она уже не item, а unit :)
    Ответ написан
    Комментировать
  • Почему не удается отредактировать изображение?

    AngReload
    @AngReload
    Кратко о себе
    https://st.motortrend.com/uploads/sites/10/2017/11/2018-infiniti-q60-luxe-coupe-angular-front.png

    Несмотря на то что url заканчивается на png сервер если захочет, то может отдать хоть gif, хоть jpeg. Или вообще веб-страничку покажет. Окончание .png нужно только для удобства пользователей.

    Так для Хрома и других браузеров на его основе сервер отдаёт не png, а webp. WebP - это более новый формат картинок, который лучше сжимается. Но его поддерживают даже не все браузеры, а графические редакторы тем более.

    В данном случае сервер определяет по наличию в запросе от браузера Accept: image/webp поддерживается ли webp и выдаёт его, если да, и jpg если нет.

    Проще способ, использовать на страничке тег picture:

    <picture>
      <source srcset="img/awesomeWebPImage.webp" type="image/webp">
      <source srcset="img/creakyOldJPEG.jpg" type="image/jpeg"> 
      <img src="img/creakyOldJPEG.jpg" alt="Alt Text!">
    </picture>
    Ответ написан
    Комментировать
  • Как сменить ">>>" на "In[x] Out[x]"?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Запусти ipython
    Python 2.7.12 (default, Dec 19 2016, 15:11:02) [MSC v.1500 32 bit (Intel)]
    Type "copyright", "credits" or "license" for more information.
    
    IPython 5.7.0 -- An enhanced Interactive Python.
    ?         -> Introduction and overview of IPython's features.
    %quickref -> Quick reference.
    help      -> Python's own help system.
    object?   -> Details about 'object', use 'object??' for extra details.
    
    In [1]: 1+1
    Out[1]: 2
    
    In [2]:
    Ответ написан
    1 комментарий
  • Как вызвать ТВ-поле в чанке?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    {if $_pls['tv.myTv'] == '12345'}
        делаем дело
    {/if}

    Документация.
    Ответ написан
    Комментировать
  • Как реализовано чтение аудио на сайте vc.ru?

    Stalker_RED
    @Stalker_RED
    Выбираете TTS движок с поддержкой нужного языка. Выбираете голос. Скармливаете движку текст, и он возвращает вам аудио.

    Делаете кнопку на сайте, которая запукает плеер с этим аудио.
    Ответ написан
    Комментировать
  • Какой скрипт для красивого вывода кода на сайте посоветуете?

    kores
    @kores
    Помог ответ? Отметь решением!


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

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответ написан
    Комментировать
  • Есть ли эмуляторы BIOS?

    Radjah
    @Radjah
    Чисто теоретически можно выдрать из образа оболочку и запустить её как efi-приложение.
    Я пробовал ковырять образы с помощью UEFITool. Там внутри вообще всё сложно. Если правильно понял, то там чуть ли не для каждого пункта меню свой отдельный модуль. Плюс куча драйверов для оборудования на самой плате и немного сверху.
    Как мне кажется, для полноценного запуска образа нужно будет эмулировать практически всю материнскую плату.

    Ссылка на утилиту, которой ковырялся в образах https://github.com/LongSoft/UEFITool
    Ответ написан
    1 комментарий
  • Возможна ли одновременная запись данных в один файл?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Два пользователя одновременно, с точностью до миллисекунд, сделали одно и то же действие — нажали кнопку отправки данных. Что произойдет — запишутся данные в файл или нет и почему?

    Зависит от того, как организована запись в файл, от ОС и от файловой системы. Например, на уровне стандарта POSIX гарантируется, что в случае, когда запись выполняется единственным системным вызовом write, а файл был открыт в режиме "для добавления", то запись должна выглядеть атомарно. Т.е. данные, записанные успешно завершившимся системным вызовом будут записаны в файл непрерывным участком. Однако, write в праве записать меньше данных, чем было запрошено (о чём он сообщит кодом возврата). Точно так же, для записи несколькими потоками или процессами в один расшаренный файл гарантируется атомарность записи и сдвига текущей позиции файла. Для других случаев (не-POSIX, не одним системным вызовом, не-O_APPEND не через расшаренный файловый дескриптор) таких гарантий нет.
    Для винды -- хз, есть ли там гарантии и какие, лень искать.
    Ответ написан
    Комментировать
  • Как создать пользователя в mysql 5.7?

    maximkv25
    @maximkv25 Автор вопроса
    web-developer
    В последних версиях требования безопасности увеличились.
    mysql> SHOW VARIABLES LIKE 'validate_password%';
    +--------------------------------------+--------+
    | Variable_name                        | Value  |
    +--------------------------------------+--------+
    | validate_password_check_user_name    | OFF    |
    | validate_password_dictionary_file    |        |
    | validate_password_length             | 8      |
    | validate_password_mixed_case_count   | 1      |
    | validate_password_number_count       | 1      |
    | validate_password_policy             | MEDIUM |
    | validate_password_special_char_count | 1      |
    +--------------------------------------+--------+
    7 rows in set (0,23 sec)

    mysql> SET GLOBAL validate_password_length = 0;
    Query OK, 0 rows affected (0,00 sec)
    
    mysql> SET GLOBAL validate_password_mixed_case_count = 0;
    Query OK, 0 rows affected (0,00 sec)
    
    mysql> SET GLOBAL validate_password_number_count = 0;
    Query OK, 0 rows affected (0,00 sec)
    
    mysql> SET GLOBAL validate_password_special_char_count = 0;
    Query OK, 0 rows affected (0,00 sec)
    
    mysql> SHOW VARIABLES LIKE 'validate_password%';
    +--------------------------------------+-------+
    | Variable_name                        | Value |
    +--------------------------------------+-------+
    | validate_password_check_user_name    | OFF   |
    | validate_password_dictionary_file    |       |
    | validate_password_length             | 4     |
    | validate_password_mixed_case_count   | 0     |
    | validate_password_number_count       | 0     |
    | validate_password_policy             | LOW   |
    | validate_password_special_char_count | 0     |
    +--------------------------------------+-------+
    7 rows in set (0,01 sec)
    Ответ написан
    Комментировать
  • Как отслеживать новые темы/страницы на сайтах?

    OrlovEvgenii
    @OrlovEvgenii
    golang developer / DevOps
    Ищи у таких сайтов фиды, и rss ленты.
    Например rss хабра https://habr.com/rss/hubs/all/ или Medium https://medium.com/feed/@Medium как правило это обычный xml

    Дальше просто парсишь его по нужным тебе ключам - "/вязать/" "/шапочки/".

    Доступного универсального софта для такого нет.
    Ответ написан
    1 комментарий
  • Пока форма не заполнена отправка не возможна?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    нативный required нынче не модно?
    Ответ написан
    3 комментария
  • Как сказывается на позиции в ПС доработка страницы?

    RotgarSett
    @RotgarSett
    SEO Эксперт
    Яндекс:
    После введения этого алгоритма https://webmaster.yandex.ru/blog/20999 при обоих вариантах страница будет оценена и ей выдана соответствующая позиция. Т.е. если по первому варианту: страница соберет стату, ей присвоится позиция. После добавления инфы она соберет новую стату и если показатели станут лучше, значит позиции увеличатся, иначе - ухудшатся. По второму сценарию: страница будет подмешиваться в выдачу до тех пор, пока не будет найден конкурент, который лучше по ряду показателей и займет соответствующую позицию.
    Отсюда вывод: для Яндекса первый вариант хуже, поскольку внесённые изменения не всегда могут улушить позиции, а иногда наоборот их ухудшить, если страница уже имеет высокие позиции. Как пример: была страница, на которой нужная пользователям инфа была на первом экране, во втором предложении текста, но не было картинок, голый текст. Страница имела высокие позиции. Мы решаем, по нашему мнению, улучшить страницу, добавив в начало изображение, оглавление (якорные ссылки). В результате нужная информация уходит на 2-3 экран прокрутки. Люди перестают всегда находить нужную инфу, из-за чего чаще возвращаются к поиску. Поведенческие факторы ухудшаются, страница теряет позиции.
    Гугл:
    Собственно картина та же самая, что с Яндексом, за исключением важности ПФ как фактора ранжирования. Т.е. изменения могут повлиять на позицию, но не сильно (+- 3-5 пунктов).

    Общий вывод: нельзя использовать лишь один вариант размещения, следует пользоваться обоими. В случае неудовлетворения позициями страницы, стоит что-то изменять/дополнять и смотреть на результаты. Если позиции удовлетворяют, значит не нужно ничего менять
    Ответ написан
    Комментировать
  • Какая разница между этими двумя записями в .htaccess?

    kimono
    @kimono
    Web developer
    В первом случае правило должно сработать, когда нет ни юзерагента, ни реферера.
    Во втором случае, когда нет либо ни того, либо ни другого.
    Ответ написан
    Комментировать