LINUX.ORG.RU

LOR takeout

 , ,


0

1

Реквестирую отложенную генерацию архива сообщений пользователя (желательно в т. ч. удалённых) по запросу и его отправку на электронную почту.

Ответ на: комментарий от MiniRoboDancer

60k запросов к глагне — вот и гигабайт наскрёбся. И это только к глагне.

jquery.min.js и TUX.svg каждый по отдельности дадут больше, даже несмотря на то что очень хорошо кешируются, а если ещё и аватарки включены - твоя оптимизация даже не спичкой окажется, а головкой от спички.

maloi ★★★★★
()
Ответ на: комментарий от MiniRoboDancer

Ты немного неправильно преобразовал в кои7. Смотри:

echo "Можно, но говно-86 не умеет эффективно работать с невыровненными по восьми битам данными, так что профит при хранении нивелируется потерей производительности при выдаче. И не обязательно ANSII: в 7 бит и КОИ-7 влезает." | iconv -t KOI-7
mOVNO, NO GOWNO-86 NE UMEET \FFEKTIWNO RABOTATX S NEWYROWNENNYMI PO WOSXMI BITAM DANNYMI, TAK ^TO PROFIT PRI HRANENII NIWELIRUETSQ POTEREJ PROIZWODITELXNOSTI PRI WYDA^E. i NE OBQZATELXNO : W 7 BIT I koi-7 WLEZAET.
Eddy_Em ☆☆☆☆☆
()
18 августа 2015 г.
Ответ на: комментарий от h578b1bde

к каким-то кривым костылям

Кривые костыли — это переменнодлинные кодировки. С однобайтовыми работать намного проще.

Таки кто тебе мешает держать диски с лайвами?

Сейчас ничто. А вот приобрету ультрабук без сидюка и внешнего под руками не окажется — куда я этот лайв засуну? Против загрузки с флешек тоже репрессии начинаются, да проблемы даже после взлёта USB-C будут, когда для флешек переходник нужен будет даже на десктопах.

Я имел в виду фашистов, которые „два алфавита и полтора спецсимвола хватит всем”

А я тут при чём? Я предлагаю пихать восьмибайтовые кодировки в ниши, для которых они непригодны (например, мультиписьменностный текст, иероглифическая письменность с примесями латиницы, любая среда без встроенного Unicode-экранирования)?

( bodqhrohro aka MiniRoboDancer)

contra_sperm_spero
()
Ответ на: комментарий от h578b1bde

А юникод тут причём?

При том, что это одна из совокупных причин САСАЙТ. Потому что его пихают везде подряд, даже когда он не нужен. Равно как и JS-библиотеки, из которых всё неиспользуемое не выковыряно. (Если уж не выковыривать — то хотя бы подключать их с публичных CDN, чтобы вероятность закэшированности повысить, но многие даже этого не делают.)

Подними локальный FTP/SFTP/SCP с авторизацией и заливай что хочешь

Локалхост, торчащий в сеть — не сеть?

А виной всему этому конечно же хрюникод

Виной нежелание думать о последствиях.

Верно, и ниша КОИ8-Р сейчас находится в музее где-то рядом с палкой-копалкой

Палка-копалка — это ASCII-несовместимые кодировки. Но даже у них микрониши есть, когда строку можно паковать побитово или эмулируется невосьмибитная архитектура.

И вместо забивания гвоздей молотком ты предлагаешь делать это камнями

Не камнями, а маленьким молоточком-гвоздодёром. Ибо обычным молотком можно бить и куда большие вещи, а только для гвоздей его держать... Если даже что-то понадобится большое поколотить, то здоровый молоток можно одолжить у соседа.

В отсутствии ущербных ограничений из прошлого века

Где эти ограничения? Дали HTML-сущности — пользуйтесь; не, не хочу, хочу обмазываться UTF-8. Никто ж не заставляет, например, совмещать Y с У и заниматься прочими извращениями, которые были у первобытных кодировок.

Не вижу реальной проблемы

Проблема есть — перегруз ЛОРа. Из-за которого Макском не хочет показ тредов целиком впиливать, да ещё и старое отпиливает типа показа прямой выборкой комментариев пользователя и инфы в профиле. Такими темпами он тут скоро аякс отпилит, суточные ограничения на постинг введёт, галерею выпилит и вообще.

например cp1251

Как вариант, но по идеологическим причинам могут не принять. Хотя вроде, когда ЛОР был мультикодировочным, она была; надо проверить.

contra_sperm_spero
()
Ответ на: комментарий от h578b1bde

man accept-charset. Браузеры сами энкодируют неподдерживаемые кодировкой символы при отправке постом, можете проверить даже.

contra_sperm_spero
()
Ответ на: комментарий от contra_sperm_spero

Кривые костыли — это переменнодлинные кодировки. С однобайтовыми работать намного проще.

Проще ≠ правильно. Кому-то на костылях ходить проще, но это же не значит что так должны делать все.

Сейчас ничто. А вот приобрету ультрабук без сидюка и внешнего под руками не окажется — куда я этот лайв засуну? Против загрузки с флешек тоже репрессии начинаются, да проблемы даже после взлёта USB-C будут, когда для флешек переходник нужен будет даже на десктопах.

А вот, а если, окажется, будут. Я могу в таком же стиле аргументировать: зачем нужны все эти лайвы, сидюки, компьютеры, ультрабуки если завтра метеорит вдруг может упасть?

Я предлагаю пихать восьмибайтовые кодировки в ниши, для которых они непригодны

Да, и пару месяцев назад в этом же треде я уже объяснял почему восьмибайтовые кодировки непригодны вообще и для ЛОРа в частности.

h578b1bde ★☆
()
Ответ на: комментарий от contra_sperm_spero

При том, что это одна из совокупных причин САСАЙТ. Потому что его пихают везде подряд, даже когда он не нужен.

Когда UTF-8 не нужен он, внезапно, автоматически превращается в ASCII.

Локалхост, торчащий в сеть — не сеть?

man контекст.

Виной нежелание думать о последствиях.

Ок. А сабж тут причём?

Палка-копалка — это ASCII-несовместимые кодировки

Поэтому UTF-8 во все поля.

Где эти ограничения? Дали HTML-сущности — пользуйтесь; не, не хочу, хочу обмазываться UTF-8.

Дали костыли — пользуйтесь; не, не хочу, хочу нормально ходить на ногах.

Никто ж не заставляет, например, совмещать Y с У и заниматься прочими извращениями, которые были у первобытных кодировок.

Всё правильно, с появлением UTF-8 все эти первобытные извращения уже не нужны.

Проблема есть — перегруз ЛОРа. Из-за которого Макском не хочет показ тредов целиком впиливать, да ещё и старое отпиливает типа показа прямой выборкой комментариев пользователя и инфы в профиле. Такими темпами он тут скоро аякс отпилит, суточные ограничения на постинг введёт, галерею выпилит и вообще.

И ты конечно же уверен что проблема именно в юникоде а не в кривости движка или ущербности вычислительных ресурсов? Если Макском до сих пор не выпилил юникод — значит либо проблема не в нём либо она не настолько существенна.

h578b1bde ★☆
()
Ответ на: комментарий от h578b1bde

Кому-то на костылях ходить проще, но это же не значит что так должны делать все

То есть надо запретить костыли?

А вот, а если, окажется, будут

Оно могло бы быть уже, если бы я не озаботился этим вопросом в 2013. А для многих оно уже наступило, и обратной дороги практически нет — классические ноутбуки сейчас не менее вымирающий вид, чем фичерфоны, а биос так и вовсе закопали все кому не лень (хоть эмуляция есть, чтоб не трахаться с уефипроблемами, плюс хромбуки с православным корбутом — и то спасибо).

я уже объяснял почему восьмибайтовые кодировки непригодны вообще и для ЛОРа в частности

А я не увидел ни одного вменяемого аргумента. Экономия есть? Есть. Проблем с поддержкой нет? Нет. Так в чём проблема?

( bodqhrohro aka MiniRoboDancer)

contra_sperm_spero
()
Ответ на: комментарий от h578b1bde

Когда UTF-8 не нужен он, внезапно, автоматически превращается в ASCII

Грубейшее 4.2.

man контекст

Что контекст-то? Какая разница, гонять ли через интернеты на чужой сервак или на свой, если оно один хрен гоняется через интернеты и может быть посниффано и расшифровано?

А сабж тут причём?

А сабж тут ровно ни при чём, он уже бесполезен потому, что теперь-то мне дамп точно никто не даст.

Поэтому UTF-8 во все поля

UTF-8 — единственная ASCII-совместимая кодировка?

Дали костыли — пользуйтесь

Это не костыли, это одна из основных фич HTML.

Всё правильно, с появлением UTF-8 все эти первобытные извращения уже не нужны

В хрюникоде уже появились отдельные наборы символов для каждого национального алфавита, и нет проблем технически отличить, например, русский Ъ от болгарского Ъ? Рассказывайте мне тут сказки.

а не в кривости движка

Кривость движка — вещь совокупная. Тут есть хоть один здоровый ботлнек, из-за которого ЛОР еле дышит?

ущербности вычислительных ресурсов

Это данность. Люди, знаете ли, тоже не выбирают, на какой планете родиться. Да, теоретически можно куда-то свалить, но теоретически.

либо проблема не в нём либо она не настолько существенна

Либо он просто такой же UTF-8-фанатик.

contra_sperm_spero
()
Ответ на: комментарий от contra_sperm_spero

Грубейшее 4.2.

Обоснуй.

Что контекст-то? Какая разница, гонять ли через интернеты на чужой сервак или на свой, если оно один хрен гоняется через интернеты и может быть посниффано и расшифровано?

А через диалап не может?

UTF-8 — единственная ASCII-совместимая кодировка?

Единственная нормальная ASCII-совместимая кодировка, да.

В хрюникоде уже появились отдельные наборы символов для каждого национального алфавита

В других кодировках уже появились?

и нет проблем технически отличить, например, русский Ъ от болгарского Ъ?

Зачем это нужно?

Кривость движка — вещь совокупная.

Ты же сам проводил опыты по экономии спичек. Возможно стоит сосредоточиться на чём-то более существенном.

Тут есть хоть один здоровый ботлнек, из-за которого ЛОР еле дышит?

Я не разработчик лоровского движка, откуда мне знать. Полагаю что Макскому виднее.

Это данность. Люди, знаете ли, тоже не выбирают, на какой планете родиться. Да, теоретически можно куда-то свалить, но теоретически.

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

h578b1bde ★☆
()
Ответ на: комментарий от contra_sperm_spero

То есть надо запретить костыли?

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

Оно могло бы быть уже, если бы я не озаботился этим вопросом в 2013. А для многих оно уже наступило, и обратной дороги практически нет — классические ноутбуки сейчас не менее вымирающий вид, чем фичерфоны, а биос так и вовсе закопали все кому не лень (хоть эмуляция есть, чтоб не трахаться с уефипроблемами, плюс хромбуки с православным корбутом — и то спасибо).

Это всё проблемы юникода?

А я не увидел ни одного вменяемого аргумента

Аналогично.

Экономия есть? Есть

Экономия чего, нескольких байтов в тексте? Вкупе с гораздо более сложной реализацией, дополнительными заголовками, HTML-сущностями и прочими костылями она никому не нужна.

Проблем с поддержкой нет? Нет

define поддержка.

h578b1bde ★☆
()
Ответ на: комментарий от h578b1bde

каждого

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

Это всё проблемы юникода?

Это проблемы выбора между удобством и фашизмом.

гораздо более сложной реализацией, дополнительными заголовками, HTML-сущностями и прочими костылями она никому не нужна

Ничего подобного. Работа с выровненными строками технически куда проще и быстрее, чем с переменнодлинными, и места в базе они занимают почти вдвое меньше, потому что база, в отличие от трафика, несжатая. Заголовка дополнительного не нужно, кодировка указывается в Content-Type. С HTML-сущностями прозрачно работает браузер, нагрузку они создадут лишь единожды — при переконвертации всего того добра, что уже накопилось в базе.

define поддержка

Поддержка в браузерах.

contra_sperm_spero
()
Ответ на: комментарий от h578b1bde

Обоснуй

Что тут обосновывать? Что для ASCII нужно 7 бит, а в байте 8, что дополнительный бит можно также использовать под не входящие в ASCII символы и для многих юзкейсов этого будет вполне достаточно? На контрольные суммы восьмой бит тратить не обязательно, особенно когда проверка целостности реализована независимо.

А через диалап не может?

А что, телефонная сеть — не сеть?

Единственная нормальная ASCII-совместимая кодировка, да

И кто тут обоснуй?

В других кодировках уже появились?

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

Зачем это нужно?

Например, затем, чтобы отличать тексты на разных языках, или чтобы задавать для них разные начертания в шрифте. Например, у тех же болгар свои особенности в типографике (для примера можно глянуть букву «в» в шрифте Terminus).

Возможно стоит сосредоточиться на чём-то более существенном

Ну дак вон Макском сосредоточился на профайлинге и выпиливает/ограничивает функциональность в узких местах. Вместо того, чтобы эту функциональность улегковесить.

Сделать апгрейд всё же реальнее

Если ресурс коммерческий. Иначе это серьёзная проблема. Мало того, что ЛОР невыездной (т. е. будет и дальше прогибаться под крепчающий маразм рашкинского законодательства), так ещё и коммерческим должен стать? Уже предвкушаю проплаченные новости, как на швабрапомойке, и премиум-аккаунты для нацпола, редактирования сообщений и игнора.

contra_sperm_spero
()
Ответ на: комментарий от contra_sperm_spero

премиум-аккаунты для нацпола

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

vurdalak ★★★★★
()
Ответ на: комментарий от contra_sperm_spero

Так я каждого и не заставляю.

К чему тогда стенания по поводу нежелания Макскома выпиливать уже работающий юникод?

Это проблемы выбора между удобством и фашизмом.

Фашизм сам по себе не предполагает какого-либо выбора. Никто тебе не запрещает выпиливать у себя юникод, поднять какой-либо свой ресурс без юникода и страдать красноглазить. Остальным это просто ненужно.

Работа с выровненными строками технически куда проще и быстрее, чем с переменнодлинными, и места в базе они занимают почти вдвое меньше, потому что база, в отличие от трафика, несжатая

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

Поддержка в браузерах.

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

h578b1bde ★☆
()
Ответ на: комментарий от contra_sperm_spero

Что тут обосновывать? Что для ASCII нужно 7 бит, а в байте 8

ASCII, внезапно, понятие растяжимое. Бывает первоначальная ужатая ASCII, бывает и расширенная.

для многих юзкейсов этого будет вполне достаточно?

Нет, не для многих.

А что, телефонная сеть — не сеть?

Сеть, конечно, только непонятно зачем ты в ней занимаешься эксгибиционизмом и используешь другие дурные практики? Ходи с флешкой, думай ногами головой, будь Ъ.

И кто тут обоснуй?

https://ru.wikipedia.org/wiki/UTF-8

Одним из преимуществ является совместимость с ASCII

Что не так?

Но в них хотя бы можно отличить от всего латиницу

А отличить тире от дефиса или хотя бы ударение в нужном месте поставить там можно?

Например, затем, чтобы отличать тексты на разных языках

Для этого используются другие технологии.

или чтобы задавать для них разные начертания в шрифте

В этом случае достаточно определить тип письменности (например, латиница или кириллица), языковое разделение здесь избыточно.

для примера можно глянуть букву «в» в шрифте Terminus

Там используется какая-то другая буква „в”, отличная от остальной кириллицы?

так ещё и коммерческим должен стать?

Он и так коммерческий, как минимум в виде наличия рекламы.

h578b1bde ★☆
()
Ответ на: комментарий от h578b1bde

уже работающий

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

выпиливать

Это и есть выбор.

универсальность и простота поддержки со стороны человеков

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

увеличение сложности поддержки движка

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

contra_sperm_spero
()
Ответ на: комментарий от MiniRoboDancer

чем выделить int под счётчик от 0 до 10, дабы не охать потом от пожирания гигабайтов памяти своим говнокодом.

На сим моменте позволю себе уточнение: данный счётчик должен быть инстанциирован мульёны раз, ибо банальный for (int i ...) на этих наших x86 (а как результат и на остальных, «подтягивающихся» платформах) будет работать быстрее, нежели for (char i ...). Да и скорее всего компилятор это заоптимизирует до int.

P.S. А ещё мой зад резко воспламеняет использование типа char для булевого аргумента в функциях.

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от h578b1bde

бывает и расширенная

Ну так ASCII с расширенными наборами — это и есть восьмибитные кодировки. Юникод расширенным набором не является, он просто обратно совместим с ASCII в некотором роде.

не для многих

Мало одноязычных решений, что ли?

зачем ты в ней занимаешься

Я уже давно ничем в ней не занимаюсь, стационарный телефон отрезали год назад за неуплату. Да и ни диалап-, ни DSL-модема никогда не было.

https://ru.wikipedia.org/wiki/UTF-8

одна из общепринятых и стандартизированных кодировок текста

Вы свой фашизм Википедии-то не приписывайте.

отличить тире от дефиса или хотя бы ударение в нужном месте поставить

Если там есть тире и ударение, в противном случае можно использовать Unicode-экранирование.

языковое разделение здесь избыточно

Алфавиты разных языков, основанные на одном базовом алфавите, могут различаться в начертаниях гомологичных символов и письменных традициях. Казусы бывают разные. Например, в большинстве алфавитов на основе латиницы заглавную I принято писать без точки, а строчную i — с точкой. А у турков Iı и İi — разные буквы. Берём теперь, казалось бы, такую простую операцию, КАК АВТОИЗМЕНЕНИЕ РЕГИСТРА. Применяем общепринятые правила — оппача... Ладно, городим костыли, определяющие язык по окрестным символам. И тут внезапно в турецком тексте встречается английское слово (например, Microsoft Windows превратится в MİCROSOFT WİNDOWS). Снова фейл. И хрюникод тут никак не поможет.

Для этого используются другие технологии

То есть как HTML-сущности — так костыли, а как надо определить алфавит — так можно использовать другие технологии?

Там используется какая-то другая буква „в”, отличная от остальной кириллицы?

Она демонстрирует болгарскую типографику. И теперь пытаемся сделать шрифт, который русский текст показывает в традициях русской типографики, а болгарский — болгарской...

как минимум в виде наличия рекламы

Доход и окупаемость — это разные вещи. Второе весьма с натяжкой можно назвать коммерцией.

contra_sperm_spero
()
Ответ на: комментарий от KennyMinigun

использование типа char для булевого аргумента в функциях

То есть надо использовать int для буля? О_О Этот мир точно рехнулся. Почему вообще сразу не сделали операцию выставления флага по заданному биту регистра? это куда проще всяких сдвигов. В x86, кстати, что-то такое вроде есть, подробностей не помню, ибо находил один раз и мельком; вопрос в том ещё, как оно используется...

contra_sperm_spero
()
Ответ на: комментарий от KennyMinigun

За то, что лесбиянка и растлевает духовные скрепы, очевидно же!

//Кстати, спасибо, что напомнили, я же хотел ожерелье из скрепок сделать.

contra_sperm_spero
()
Ответ на: комментарий от contra_sperm_spero

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

Да, но обычно переписывают чтобы в процессе избавиться от старых костылей, а не добавить новых.

Это и есть выбор.

Да, это есть выбор Макскома.

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

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

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

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

только работа с ними будет быстрее

Насколько быстрее?

h578b1bde ★☆
()
Ответ на: комментарий от contra_sperm_spero

То есть надо использовать int для буля? О_О

ЕМНИП, в x86 нет стековых операций (т.е. pop) для байта. По этому (казалось бы) байтовый аргумент на стеке апгрейдится аж до целого слова (int для x86). Хотя, стоит проверить, а под рукой компилятора нет.

Посмотри у себя выхлоп от gcc -O0 -S от такого кода:

void func(char flag) {
    char inner = flag; // чтоб посмотреть откуда возьмется значение
}

void main() { func(1); }

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от contra_sperm_spero

выставления флага по заданному биту регистра?
В x86, кстати, что-то такое вроде есть,

Ну, например test может выставить SF, ZF (как раз для булевых значений) и PF. Но это костыль, ящитаю. Юзабельно только если уж очень чешется поэкономить на спичках.

Можно ещё ввести свой calling convention и выставлять «булевые» биты в каком-либо регистре. Но тогда извне на твой код вряд ли кто сможет позвонить.

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от contra_sperm_spero

Единственная нормальная ASCII-совместимая кодировка, да.

Юникод расширенным набором не является, он просто обратно совместим с ASCII

Не вижу противоречий.

Мало одноязычных решений, что ли?

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

Вы свой фашизм Википедии-то не приписывайте.

Во-первых, фашистами являются фанатики кодировок, которые представляют символы лишь одного-двух языков, к тому же неполноценно. Во вторых, для поиска по тексту на странице в большинстве браузеров существует комбинация Ctrl+F, можешь проверить.

А у турков Iı и İi — разные буквы

Как Іі и Її в украинском? Здесь всё просто: разные символы соответствуют разным кодам в таблице символов, а как у турков эта проблема решается?

То есть как HTML-сущности — так костыли, а как надо определить алфавит — так можно использовать другие технологии?

Да, ибо определение начертания шрифта и определение алфавита разные задачи, соответственно для них имеются разные решения.

Она демонстрирует болгарскую типографику. И теперь пытаемся сделать шрифт, который русский текст показывает в традициях русской типографики, а болгарский — болгарской...

Чем именно традиции болгарской типографики отличаются от традиций русской?

h578b1bde ★☆
()
Ответ на: комментарий от contra_sperm_spero

За то, что лесбиянка и растлевает духовные скрепы, очевидно же!

Но ведь в духовно-скрепной это же нормально.

h578b1bde ★☆
()
Ответ на: комментарий от h578b1bde

чтобы в процессе избавиться от старых костылей, а не добавить новых

А откуда новые костыли?

Да, это есть выбор Макскома

Если он вообще выбирал.

переполнением буфера

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

На примере лорквотесов

Полистал немного, никаких кодировкопроблем не увидел, ссылки в студию.

Насколько быстрее?

Ну вот берём банальный подсчёт длины строки. С восьмибитными кодировками берём в лоб длину в байтах и не заморачиваемся (с паскаль-лайк строками она вообще ложится рядом другими строковыми операциями; с сишными придётся пробежаться до нулевого символа, взять его адрес и отнять от первого байта). С UCS почти то же, только надо ещё поделить на 2 или 4. С UTF-8 надо завести ещё счётчик, проверять каждый байт и инкрементить длину только если он меньше 128. То есть оверхед как минимум на инкрементировании счётчика. И это ещё цветочки. Чтобы работать с переменнодлинными строками, надо их или распаковать в памяти в UCS-2/4, либо парсить на ходу. Не будем заморачиваться даже всякими поисками и сравнениями, берём банальное отображение (взять код и далее найти в хэшмапе шрифта). С восьмибитными берём байт и, если он больше 127, берём из таблицы сопоставления кодировки номер символа в юникоде и ищем его в шрифте. Распаковка UTF-8 — целая песня. Проверять последовательно старшие биты, шифтить, вычленять и накладывать масками, и такое на любой не-ASCII-символ. А если избыточное кодирование используется, то и того хуже, но это редкость.

contra_sperm_spero
()
Ответ на: комментарий от KennyMinigun
func:
.LFB0:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, %eax
	movb	%al, -20(%rbp)
	movzbl	-20(%rbp), %eax
	movb	%al, -1(%rbp)
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	func, .-func
	.globl	main
	.type	main, @function
main:
.LFB1:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	$1, %edi
	call	func
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	main, .-main
	.ident	"GCC: (Debian 4.9.3-3) 4.9.3"
	.section	.note.GNU-stack,"",@progbits

Таки q, да. Что и неудивительно, ибо меньше ширины шины с памятью работать нельзя.

contra_sperm_spero
()
Ответ на: комментарий от h578b1bde

Не вижу противоречий

Противоречие внутри первого утверждения.

В современном мире мало

Да ну? Скорее наоборот, всё катится в инглиш.

не могут охватить потребности носителей даже одного конкретного языка

Почему?

фашистами являются фанатики кодировок, которые представляют символы лишь одного-двух языков, к тому же неполноценно

То есть подбор подходящей для задачи технологии — фашизм и надо редактировать конфиги в Visual Studio?

существует комбинация Ctrl+F

Ctrl+F — это управляющий символ 6, то бишь PgDn, а проблему смешивания Cmd и Ctrl на некоторых рукожопых системах стоит рассмотреть отдельно.

Как Іі и Її в украинском?

Ясно, мусьё даже читать не умеет.

разные задачи, соответственно для них имеются разные решения

Вот только в шрифты эти задачи не входят. Нужна поддержка определения языка для текста, а её на уровне кодов глифов нет. И даже если ввести — надо городить ещё одну здоровенную таблицу символов, в которую перегонять уже из юникода. Нафиг это надо? Если эта таблица ещё будет рассматриваться как замена юникоду, то допустим.

Чем именно традиции болгарской типографики отличаются от традиций русской?

https://upload.wikimedia.org/wikipedia/commons/a/a6/Bolgaritsa.svg

contra_sperm_spero
()
Ответ на: комментарий от h578b1bde

А что, остальные юникодные кодировки обратно не совместимы? Через символ тоже можно читать, откройте произвольный бинарник для шин32 в ASCII-представлении и убедитесь.

contra_sperm_spero
()
Ответ на: комментарий от contra_sperm_spero

А откуда новые костыли?

От необходимости поддержки остальной части юникода.

Если он вообще выбирал.

Ну раз ты говоришь что он против значит выбирал.

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

Opera Mini что ли?

Полистал немного, никаких кодировкопроблем не увидел, ссылки в студию.

Запости любую цитату с тире или в гостевуху сообщение добавь.

Ну вот берём банальный подсчёт длины строки.

Ок. Сколько это в среднем в секундах для одного набора из M строк по N байт?

h578b1bde ★☆
()
Ответ на: комментарий от contra_sperm_spero

Противоречие внутри первого утверждения.

По-прежнему не вижу.

Почему?

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

То есть подбор подходящей для задачи технологии — фашизм

Технология UTF-8 отлично подходит для этой задачи, можешь записывать меня в ряды своих воображаемых „фашистов”.

Ctrl+F — это управляющий символ 6, то бишь PgDn

В моей реальности Ctrl+F вызывает поиск в браузере, как там в параллельной мне не слишком интересно.

Ясно, мусьё даже читать не умеет.

В используемой тобой кодировке отсутствует знак вопроса?

И даже если ввести — надо городить ещё одну здоровенную таблицу символов, в которую перегонять уже из юникода. Нафиг это надо? Если эта таблица ещё будет рассматриваться как замена юникоду, то допустим.

Я тоже не понял нафиг это надо, учитывая что юникод ещё не закончился.

https://upload.wikimedia.org/wikipedia/commons/a/a6/Bolgaritsa.svg

«Болгарская кириллица» («болгарица», прямой курсив) — придание символам кириллических шрифтов и надписей черт, свойственных латинскому алфавиту. Может использоваться намеренно в качестве эксперимента с формой символов. Характерно для болгарской школы шрифтового дизайна (отсюда само выражение), а также непрофессионально выполненных кириллических шрифтов.

Ок, только непонятно зачем ради экспериментальных шрифтов от школьников городить определение языка.

h578b1bde ★☆
()
Ответ на: комментарий от contra_sperm_spero

А что, остальные юникодные кодировки обратно не совместимы?

Представь себе.

Через символ тоже можно читать, откройте произвольный бинарник для шин32 в ASCII-представлении и убедитесь.

И с чего ты решил что там обязательно будет UTF-16BE?

h578b1bde ★☆
()
Ответ на: комментарий от contra_sperm_spero

А у турков Iı и İi — разные буквы

Ты про это? Да, возможно это фейл создателей юникода, решить это можно вынеся пары Iı и İi в виде отдельных символов для последующего их использования в турецком. Но неясно как этот факт должен оправдывать использование однобайтовых кодировок, в которых проблем ещё больше.

h578b1bde ★☆
()
Ответ на: комментарий от contra_sperm_spero

Таки q, да.

На самом деле l:

movl	$1, %edi ; передаем через 32-битный edi
; стек не используется
movl	%edi, %eax
movb	%al, -20(%rbp) ; присваивание inner = flag

KennyMinigun ★★★★★
()
14 ноября 2015 г.
Ответ на: комментарий от h578b1bde

От необходимости поддержки остальной части юникода

Она никуда не девается, меняется лишь формат хранения данных.

Ну раз ты говоришь что он против

Где я такое говорил?

Opera Mini что ли?

Это не браузер. Точнее, не веб-браузер.

или в гостевуху сообщение добавь

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

Сколько это в среднем в секундах для одного набора из M строк по N байт?

Недостаточно данных, требуется количество операций в секунду на конкретной кофеварке. Альзо, тут ещё среднестатистическое содержимое строк значительно влияет, plain ASCII будет обрабатываться быстрее, например.

contra_sperm_spero
()
Ответ на: комментарий от h578b1bde

По-прежнему не вижу

Положение «Единственная нормальная ASCII-совместимая кодировка» так же легко применяется к любой другой ASCII-совместимой кодировке. Соответственно, для опровержения своего мирдверьмячества Вам требуется доказать ненормальность каждой или доказать, что нормальной по всем показателям может быть только UTF-8.


частоиспользуемых

Теллмимоар.

для Украины

Только при чём тут сайт, на котором не разрешён украинский язык?

Технология UTF-8 отлично подходит для этой задачи

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

В моей реальности Ctrl+F вызывает поиск в браузере

Это не реальность, это куашматрица.

В используемой тобой кодировке отсутствует знак вопроса?

Я разработал в детстве пятибитную кодировку, в которой была только 31 буква кириллицы и пробел. Но не пользуюсь ею, так что нет.

Я тоже не понял нафиг это надо, учитывая что юникод ещё не закончился

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

экспериментальных шрифтов от школьников

Nu-nu, čto ž wy togda alfawitom ot etih že škol'nikow pol'zujeŧes'?

contra_sperm_spero
()
Ответ на: комментарий от h578b1bde

И с чего ты решил что там обязательно будет UTF-16BE?

С того, что в нём заголовки пакуются.

contra_sperm_spero
()
Ответ на: комментарий от h578b1bde

возможно это фейл создателей юникода

Это просто результат их подхода к наполнению таблицы.

как этот факт должен оправдывать использование однобайтовых кодировок

Ну та же КОИ8 эту проблему решает (вариаций наклепали под кучу кириллических письменностей).

contra_sperm_spero
()
Ответ на: комментарий от contra_sperm_spero

Ну та же КОИ8 эту проблему решает

И где там турецкие Iı и İi?

вариаций наклепали под кучу кириллических письменностей

В итоге когда тебе присылают документ на кириллице — нужно поиграть в угадайку и попрыгать с бубном?

h578b1bde ★☆
()
Ответ на: комментарий от contra_sperm_spero

Положение «Единственная нормальная ASCII-совместимая кодировка» так же легко применяется к любой другой ASCII-совместимой кодировке. Соответственно, для опровержения своего мирдверьмячества Вам требуется доказать ненормальность каждой или доказать, что нормальной по всем показателям может быть только UTF-8.

Неа, раз ты так ратуешь за однобайтные кодировки — для начала ты должен доказать преимущества любой другой ASCII-совместимой кодировки над UTF-8, из-за которых я должен всё бросить и срочно начать везде выпиливать её у себя.

Теллмимоар.

На каждой второй интернет-барахолке встречается.

Только при чём тут сайт, на котором не разрешён украинский язык?

А при чём тут турецкие буквы? BTW, замени ₴ на символ рубля если тебе так нужна привязка именно к этому сайту.

Я уже упоминал, что она хуже аналогов подходит по объёму трафика и занимаемого базой данных дискового пространства.

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

только 31 буква кириллицы

Фашист!

Nu-nu, čto ž wy togda alfawitom ot etih že škol'nikow pol'zujeŧes'?

Не, алфавит от других людей.

h578b1bde ★☆
()
Ответ на: комментарий от contra_sperm_spero

Она никуда не девается, меняется лишь формат хранения данных.

А накладные расходы на это твоё „никуда не девается” брать из сэкономленных на спичках ресурсов?

Это не браузер. Точнее, не веб-браузер.

А что же это тогда, плеер?

А отображение — не проблема кодировки
Ну удачи восстанавливать систему с отвалившимися иксами и без лайвов.

Ты таки определись. Если отображение не проблема кодировки — тогда, очевидно, нужно искать нормальные решения для восстановления системы с отвалившимися иксами без лайвов вместо борьбы с кодировкой. Хотя ещё лучше вообще не использовать системы где иксы отваливаются.

h578b1bde ★☆
()
Последнее исправление: h578b1bde (всего исправлений: 1)
17 января 2016 г.
Ответ на: комментарий от h578b1bde

И где там турецкие Iı и İi?

К тому, что турецкий текст ею записать нельзя (разве что транслитизациями). Соответственно, выбранная/определённая кодировка однозначно задаёт особенности алфавита. Да, автоопределение можно применить и к юникодному тексту, но там теоретически может быть несколько языков вперемешку, а нужно такое на практике не всегда. Проблема настолько сурова, что во многих языках разметки (например, OpenDocument) блоки текста заворачиваются в контейнеры с пометкой языка. Никогда не боролись с байдой в статусбаре M$Word, показывающей, какого хрена вполне грамотный текст целиком подчёркнут красным?

нужно поиграть в угадайку

Нормальный софт уже лет 10-15 не имеет проблем с определением кодировок. Разные классы легко различаются по частоте использования старших тетрад, также просто отличается латиница с диакритикой от нелатиницы, среди класса уже — по словарю или характерным лексемам.

contra_sperm_spero
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.