LINUX.ORG.RU
ФорумTalks

Вышел патч для Perl'овского модуля Text-Control 0.3 для однобайтных кодировок

 ,


0

1

Сабж. Модуль помогает форматировать текст так, чтобы контрольные символы заменялись либо точками, либо шестнадцатеричными кодами. Однако, автор писал его для ASCII, и символы с кодами \x7f-\xff из коробки считаются контрольными.

Результатом такого скрипта

use Text::Control;

print Text::Control::to_hex("KOI8-R рулит!") . "\n";
будет
KOI8-R \xd2\xd5\xcc\xc9\xd4!
А после применения патча:
KOI8-R рулит!

Скачать модуль можно здесь: https://cpan.metacpan.org/authors/id/F/FE/FELIPE/Text-Control-0.3.tar.gz
Скачать патч можно при помощи команды

curl gopher://sdf.org/9/users/saahriktu/saahriktu.org/patches/Text-Control-0.3-singlebyte.patch.lzma > Text-Control-0.3-singlebyte.patch.lzma

Enjoy!

★★★★★

Смысл выкладывать такую новость в толксах, всё равно Эдик сидит из под анонимуса и тут не отпишется? А остальные? Да они просто загадят тему фразами - не всем нужно и флудом.

Ramil ★★★★ ()

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

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

На cpan я ничего не выкладывал. Модуль не мой, я просто сделал патч. И выложил его у себя, а не на cpan'е.

saahriktu ★★★★★ ()
Последнее исправление: saahriktu (всего исправлений: 1)

Угадал автора с двух слов.

Deleted ()

Угадал автора по тегу. Потому что больше никому нафиг не нужно :D

Deleted ()

Шома, ну сколько можно! угнетение большинства.

system-root ★★★★ ()
Ответ на: комментарий от system-root

«Выкладывать свои полезные наработки чтобы ими могли пользоваться те, кому они нужны» != «угнетать большинство».

А вот «навязывать юникод» == «угнетать тех, кому юникод ненужен».

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

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

system-root ★★★★ ()
Ответ на: комментарий от system-root

Общество состоит из разных людей, и у разных людей всё по-разному.

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

Ты же какир«программист», запили уже себе и таким же поехавшим изолятор беседку с богопротивными KOI8-R и гофером. Зачем это тащисть сюда - где у всех с головой относительная дружба?

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

Потому, что:

  1. Я читаю и пишу на русском и английском.
  2. В моём шрифте только 256 символов; все остальные символы всё равно отображались бы одинаковыми квадратиками - никакого профита.
  3. У однобайтных кодировок простая красивая архитектура без модификаторов и BOM'ов.

И т.д.

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

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

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

Окей, хорошо, но нахрена ты остальному миру предлагаешь эту дрянь? Нахрена ты даёшь ссылки через какой-то мёртворождённый gopher, когда все используют http(s); Нахрена твой сайт в этой бг-противной KOI8-R, когда весь мир использует UTF-8? Это уже не удобство, это антисоциальность и позёрство.

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

Вероятность того что этот сервер можно и нужно будет перевести на UTF-8 выше вероятности что такой вообще существует.

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

остальному миру предлагаешь

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

мёртворождённый gopher

gopher первое время был вообще безальтернативен, но стал вытесняться http, когда разработчики оригинального gopher-сервера захотели денег. Через некоторое время они выложили исходники этого gopher-сервера, и gopher'ом продолжили пользоваться энтузиасты. gopher-серверов по всему миру ~1,5 сотни, а активных юзеров gopher'а на одном только gopher-хостинге sdf.org - 1210.

весь мир использует UTF-8

Нет, не весь.

Это уже не удобство

Браузеру всё равно в какой кодировке текст открывать. В тегах кодировка прямо указана, и вручную ничего указывать не нужно.

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

Потому, что возможность перебирать текст по отдельным байтам весьма полезна.

saahriktu ★★★★★ ()

Почему бы автору не отправить? Надеюсь, кому-то патч пригодится.

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

Общество состоит из разных людей, и у разных людей всё по-разному.

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

system-root ★★★★ ()
Ответ на: комментарий от saahriktu

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

В маргинальности нет пользы.

gopher первое время был вообще безальтернативен, но стал вытесняться http, когда разработчики оригинального gopher-сервера захотели денег. Через некоторое время они выложили исходники этого gopher-сервера, и gopher'ом продолжили пользоваться энтузиасты. gopher-серверов по всему миру ~1,5 сотни, а активных юзеров gopher'а на одном только gopher-хостинге sdf.org - 1210.

1210 / 7,600,000,000 = 0.00001% от населения земли. Да, оно мертво, просто несколько некрофилов затерялись во времени.

Нет, не весь.

Уговорил, почти весь.

Браузеру всё равно в какой кодировке текст открывать. В тегах кодировка прямо указана, и вручную ничего указывать не нужно.

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

Deleted ()
Ответ на: комментарий от system-root

Я пишу конкретно про линуксы.

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

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

В маргинальности нет пользы

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

оно мертво

Пока есть хоть один юзер - технология жива.

нужно везде таскать легаси

И это прекрасно.

у тебя html не проходит валидацию

Когда-то проходил.

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

ты пишешь конкретно про свой гербалайф, вставляя что-то относящееся к линуксу, прост чтобы сео лучше было.

system-root ★★★★ ()
Ответ на: комментарий от saahriktu

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

Мимо. Линукс является маргинальным только на десктопе. На других устройствах (Сервера, эмбедщина, андройды, etc.) - линукс, так что, несмотря на отсутствие взаимодействия конечного пользователя с внутренностями системы, линукс очень востребованная в обществе технология, чем твои трупцы не являются.

Пока есть хоть один юзер - технология жива.

Тебе важна точность? Хорошо. Гоферу осталось последний гвоздь в гроб дозабить.

И это прекрасно.

Только тебе - хеллоуворлдщику.

Когда-то проходил.

Сказочник. То, что там не проходит валидацию, никогда не было валидным.

Deleted ()
Ответ на: комментарий от system-root

Нет, это всё практически необходимо/полезно при практическом пользовании линуксом. Пусть многое и несовместимо с юникодом. Но, это именно практика пользования линуксом.

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

Линукс является маргинальным только на десктопе

Тем не менее, большинство людей - именно юзеры десктопа.

последний гвоздь в гроб дозабить

Кому-то лишь бы хоронить. Вот завтра допилят UTF-32 до локали, а UTF-8 перестанет быть мейнстримом. Вот кому-то будет работы с кодировку на кодировку прыгать. И зачем, если всё работает?

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

Есть. Но, это как костыли. Пользоваться можно, но без них лучше.

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

Тем не менее, большинство людей - именно юзеры десктопа.

Большинство людей - пользователи смартфонов, планшетов и прочих зондов, а почти в кажом доме есть роутер.

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

А что, в UTF-8 место закончилось? И что, UTF-8 сломало обратную совместимость с ASCII? Нет, не сломало. Выпустят новую - и аккуратно, плавно перейдут.

И зачем, если всё работает?

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

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

Большинство людей - пользователи смартфонов, планшетов и прочих зондов

Но, и компьютеров тоже. И на этих компьютерах у них крутится винда.

плавно перейдут

Как бы не так. Уже перешедшие будут вопить, что UTF-8 уже legacy, и что чем плодить кучу стандартов нужно оставить только один - UTF-32.

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

Всем нужно разное. Да, не всем достаточно однобайтных кодировок. Но, и не всем нужен юникод.

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

Чем? Есть куча библиотек для работы с юникодом.

Юникод удобен для выдачи результата юзеру.

Внутри же программы намного и проще и быстродейственнее делать обработку текста в 1-байтной кодировке. По крайней мере, если текст достаточно однороден, потому что ну попробуй добейся предельного быстродействия для сложных алгоритмов поиска внутри текста. В utf-8 из-за переменной длины символов это просто маразм будет, в крайнем случае тогда уж utf-16 или 32 придется применить, если иначе трудно.

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

Но, и компьютеров тоже. И на этих компьютерах у них крутится винда.

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

Как бы не так. Уже перешедшие будут вопить, что UTF-8 уже legacy, и что чем плодить кучу стандартов нужно оставить только один - UTF-32.

И, в чём проблема то? Если всё что у тебя хранится - UTF-8 и UTF-16384 обратно с ним совместим, то тебе даже перекодировка данных не понадобится. При достаточной прямоте рук возможно и код не прийдётся патчить.

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

Это никак не отменяет того факта что линукс - ни разу не маргинальная ОС (Окей, ядро)

Ядро - это Linux, а ОС - GNU/Linux, да. Разница, да, принципиальна.

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

Нет, кодировки таки разные. Там же не codepoint'ы в десятичном или шестнадцатеричном виде хранятся.

Код для чтения codepoint'ов в UTF-32 гораздо проще. Там надо просто по 4 байта читать и складывать. А чтобы также читать UTF-8 нужна целая библиотека с кучей магии и волшебства.

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

Ядро - это Linux, а ОС - GNU/Linux, да. Разница, да, принципиальна.

И к чему это? Я вот не проверял, но очень сомневаюсь что на большинстве этих железяк Not-GNU/Linux.

Нет, кодировки таки разные. Там же не codepoint'ы в десятичном или шестнадцатеричном виде хранятся.

Код для чтения codepoint'ов в UTF-32 гораздо проще. Там надо просто по 4 байта читать и складывать. А чтобы также читать UTF-8 нужна целая библиотека с кучей магии и волшебства.

Ты не допёр о чём я тебе говорю: если новая кодировка выйдет, то наверняка окажется обратно-совместимой. Если нет - похрен, перекодирую, то же мне трагедия.

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

на большинстве этих железяк

С ними юзер не работает. Юзер работает с десктопом. А если бы и работал, то там свои специфические прошивки.

если новая кодировка выйдет, то наверняка окажется обратно-совместимой

UTF-32 уже существует, и она не является обратно совместимой.

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

С ними юзер не работает. Юзер работает с десктопом. А если бы и работал, то там свои специфические прошивки.

Это ничего не меняет. Эти железки кто-то обслуживает, и этот «кто-то» не Васян, а компании разных масштабов. Твои же гоферы и прочие кои8р нужны паре тысяч маргиналов, а профессионально - так и вообще никому (Ну почти, близко к этому, движется всё в эту сторону, а не в обратную - как в твоём манямирке).

UTF-32 уже существует, и она не является обратно совместимой.

Ты правда НА СТОЛЬКО глупый? Ты не допёр о чём я тебе говорю: если новая кодировка выйдет, то наверняка окажется обратно-совместимой. UTF-32 не обратно-совместима, но кто сказал что на неё кто-то будет переходить?

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

Это ничего не меняет.

Вся эта демагогия, да, ничего не меняет. У разных людей разные задачи и инструменты. А не так, что, якобы, есть какой-то «профессиональный мейнстрим», и больше никому ничего не нужно.

но кто сказал что на неё кто-то будет переходить?

Тип wchar_t в glibc'е как раз заточен на UTF-32. И она архитектурно проще. Единственно, что пока сдерживает от перехода на неё, - совместимость с ASCII (которая есть и в однобайтных кодировках).

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

Вся эта демагогия, да, ничего не меняет. У разных людей разные задачи и инструменты.

Угу, твоя задача - позёрство на ЛОРе и некрофилия, инструменты весьма под неё подходят.

А не так, что, якобы, есть какой-то «профессиональный мейнстрим», и больше никому ничего не нужно.

Он не «якобы», он есть. Но «не для всех он есть», да? Нужно, но не в случае кодировок.

Тип wchar_t в glibc'е как раз заточен на UTF-32. И она архитектурно проще. Единственно, что пока сдерживает от перехода на неё, - совместимость с ASCII (которая есть и в однобайтных кодировках).

То что wchar_t позволяет вместить «символ» UTF-32 не говорит о его «заточенности» под него, RTFM, он такой жирный только для того что бы можно было вместить любой отдельный «символ», любой отдельной локали. Всё что полезного даёт UTF-32 - это доступ к произвольному символу за O(1), который не всем нужен, а если уж очень нужен - есть банальное конвертирование UTF-8 в отдельные «символы».

Да и ну тебя, поехавшего, пойду лучше Arch ставить.

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

Он не <<якобы>>, он есть. Но <<не для всех он есть>>, да?

Суть в том, что есть не только он.

что бы можно было вместить любой отдельный <<символ>>

Точнее, codepoint. В юникоде есть ещё и модификаторы, которые объединяют codepoint'ы в один символ.

saahriktu ★★★★★ ()

Читаю эту бесполезную новость при помощи UTF8. Слава юникоду!

ptarh ★★★★★ ()

Угадал автора по названию

SHODAN ()

Однобайтовые кодировки избыточны, освой уже однобитовые!!!

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