Как стать автором
Обновить

Комментарии 35

Для пакмена с одной жизнью неплохо подошло бы
Кто сразу же попробовал? :)
Vivaldi хорошо падает. Эту вкладку только переоткрывать, иначе ничего в ней не работает.
В хроме аналогично. Можно обновлять на F5 и играть дальше.
Даже на гитхабе первой игры показан пример с отвалом только вкладки.
Ах, вот почему везде вставляют эту ссылку. Думал, это против IE, обращение к дисководу A:

atomlib: картинки под спойлером загружаются, даже если невидимы.
Спасибо, сделал ту джифку на 2,26 мебибайта ссылкой.
клиенты мессенджера Slack

Попробовал в Slack просто сообщением — не получается…
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Сложно как-то. Можно просто курсор вывести за окно браузера.
Счёт не идёт без движения хищника.
Так и при открытом контекстном меню счёт не идёт, даже если двигать мышку.
Можно подвинуть мышку и нажать в новом месте: хищник полетит за вами в новое место, но вы защищены контекстным меню. Но рано или поздно всё равно хищник будет летать быстрее, чем открывается контекстное меню.
Не знаю, как в виндах, но в линуксе повторный щелчок правой кнопкой мыши не открывает новое меню, а закрывает старое. Т.е. нужно сделать даблклик для открытия нового, что намного медленее.
На винде открывает новое одним кликом, да.
НЛО прилетело и опубликовало эту надпись здесь
Опера mini под андроидом не падает.
В инструменте разработчика хрома, если навести на атрибут href элемента, то валится сам инструмент.
Недавно на моём хроме, версии dew-2.0,
< head >
< meta http-equiv=refresh content=100 >
< /head >
вызывала непрерывное и постоянное обновление страницы.
Странно, что разыменование urlencode происходит два раза.
Было бы логично, если бы %00 далее оставался последовательностью трех символов
Вот да. И странно что никто не нашёл способа как это можно использовать в качестве уязвимости.
В канарейке баг уже пофиксили.
В стабильной версии тоже.
Google Chrome 45.0.2454.93 (64-bit)
Gentoo
Падает если вставить в адресную строку весь.
Если навести на ссылку падает только вкладка.
Давайте похлопаем тому человеку, что десятки лет назад придумал null terminated string и всем тем миллионам разработчиков, что до сих пор не выпилили эту гадость из своих проектов.
а как Вы предлагаете хранить длину строки? или сделать все строки фиксированного размера? Или вообще все символы связным списком?
Если хранить длину — то в скольких битах? Тут или перерасход или недостаток рано или поздно случится. Если сделать переменное число бит на хранение длины строки — то оверхед будет при считывании этой длины.
Интересует именно универсальный и кросс платформенный подход.
И оценочное сравнение по потреблению лишней памяти для мелких и больших строк. А также сравнение производительности в типичных операциях со строками.
Похоже, что null-terminated-строки — действительно худший способ хранения строк из всех известных человечеству. Во-первых, он крайне не производителен. Ведь большинство операций со строками требует предварительного определения их длины, а для этого вам придётся пробежать всю строку в поисках нуля. Например, если вы копируете строку — вы должны сначала подсчитать её длину, а потом пробежать по ней повторно, уже для собственно копирования. Разве не оверхед?
Во-вторых, на строки сразу же накладывается ограничение — они не смогут содержать символ null. И тут начинаются проблемы: всякое там экранирование, преобразование и прочие хитрые схемы.
Наконец, длина любой строки всё равно обязана где-то храниться. Ведь мы же выделяем под неё память? И эту память сборщик мусора потом будет должен как-то освободить. Естественно, он должен знать размер освобождаемого блока. А значит, размер блока памяти со строкой всё одно где-то лежит. Просто в неявном виде. Ну и что это за гениальный приём — хранить длину строки, но не использовать, вместо этого занимаясь постоянными поисками нуля?
Null-terminated строки живут только в мире без GC, в случае наличия GC их используют только для ffi в C.
Если в языке нет объектов, передавать везде два параметра видимо очень не хотелось. Похоже такой способ хранения обусловлен системой типов языка C.
А в остальном мире — есть native строки в соответствующих языках, ими и следует пользоваться…
Не обязательно передавать два параметра. BSTR, например, передаётся как обычный указатель на null-terminated строку и отлично совместим с С, но хранит длину строки по отрицательному смещению.
Так же как и любые другие массивы — длина массива (4-8 байт), после которой идут элементы. Символы обычно хранятся в UCS-2 кодировке (2 байта на символ), реже в UCS-4 (4 байта на символ), так что на этом фоне затраты на хранение длины строки — незначительны.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории