LINUX.ORG.RU

ncurses и KOI8-R

 


0

2

Как выясняется, современные ncurses по дефолту не умеют дружить с KOI8-R, но это лечится выставлением локали внутри программы (через setlocale()), после чего начинает нормально работать addstr(). А вот addch() для символов помимо ASCII - нет, не работает. В целом-то всё работает, да, но как-то это не совсем правильно хранить символы в строках. Может быть я что-то ещё упустил из виду?

★★★★★

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

А ничего, что gettext автоматом конвертирует локали?

А хер его знает. Может починили, но раньше была проблема. Особенно доставляло, когда дистры стали переползать с koi8-r на utf-8 и не во всех программах оперативно обновляли локаль.

no-such-file ★★★★★
()
Ответ на: комментарий от devl547

koi-8 новье? Так-то это ГОСТ 74 года, когда 866 ещё в проекте не было.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Оно изначально так было. Главное в начале сделать

setlocale(LC_ALL, "");
setlocale(LC_NUMERIC, "C");

но некоторые про это забывают. Вон, у того же (не помню, как зовут) создателя Deadbeef эта проблема была, пока я ему не тыкнул носом.

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

выбора именно KOI8 в 2016 году

Он просто толстый тролль, у него сайт на utf-8 крутится. Недопустимая ошибка для однобайтовых адептов :).

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

незаменим для написания игр в псевдографике

Nope, я вот нагородил свой костыль на termios. Ящитаю ncurses больше создаёт проблем чем решает. А решает он крайне мало, это не либа для построения GUI, это либа примитивных функций отрисовки.

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

Написания программ на ncurses которые не сегфолтятся это отдельное исскуство :)

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

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

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

Ты не думал, что если все модераторы неадекватные, то на самом деле это ты неадекватный, а модераторы обычные?

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

У однобайтовых кодировок, безусловно, много плюсов. Однако, все они работают только если программа не покидает твоей машины. В противном случае, проблемы совместимости нивелируют все преимущества.

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

Зачем тебе в линуксе KOI8-R?

Выше уже написал зачем.

проблемы совместимости

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

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

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

Это экономия процессорного времени.

шёл 2016й год

на новые 4-х байтные кодировки,

мусьё не в курсе, как устроен utf8?

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

Да и в памяти вместо «Юникод must дай!» будет «п╝п╫п╦п╨п╬п╢ must п╢п╟п╧!»

или «чМХЙНД must ДЮИ», или «·╜╗╙╝╓ must ╓═╘»

В первом случае достаточно просто скормить strptr + 8 (n - 1)

Т.е. нужно писать отдельную логику,

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

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

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

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

lazyklimm ★★★★★
()
Последнее исправление: lazyklimm (всего исправлений: 2)
Ответ на: комментарий от Aswed

Не все, дебилушка! Где ты увидел «все»? Я говорил о новых: leave, потом еще один дебил...

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

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

Зато пихаем кошерным способом, а не затрачивая 100500 процессорных инструкций для обработки одного-единственного символа!

Вот оно — поколение БЫДЛО. Глюки, тормоза и протечку софта они списывают не на быдлокодеров, этот софт написавших, а на «отсталость» своего компьютера! Хотя если взять самый топовый компьютер, он еще лет 20 обязан верой и правдой трудиться и не вызывать никаких желаний сменить железо!

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

Вот оно — поколение БЫДЛО.

Вот оно - поколение ТОЛСТО.

Глюки, тормоза и протечку софта они списывают не на быдлокодеров, этот софт написавших, а на «отсталость» своего компьютера!

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

Хотя если взять самый топовый компьютер, он еще лет 20 обязан верой и правдой трудиться и не вызывать никаких желаний сменить железо!

Ты эта, смотри, из Debian-а собираются поддержку твоего Pentium Pro выкинуть.

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

Зато пихаем кошерным способом

кошерным способом ты пихаешь байтики, а для операциями со строками этот способ некошерен

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

UTF32 наше всё. все остальное — полумеры. память стоит копейки, скорость работы с 4 байтами будет такая же как и с 1. нах ваще сейчас какие-то utf8, koi...непонимат

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

память стоит копейки

это устаревшая и неактуальная докризисная информация

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

память стоит копейки

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

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

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

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

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

память стоит копейки

Да что ты говоришь! Даже если бы она копейки стоила, куда я ее пихать буду?

А вообще, DDR2 — очень дорогая нонче. Ну и, как уже говорил, у меня все слоты заняты. Четыре планки по 512МБ.

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

Если профит от этих полутора(на самом деле нет) юзеров больше, чем от остальных нищебродов, то почему бы и нет? И, как уже выше было сказано, даже самое дешевое, но современное десктопное железо стоимостью в пару-тройку сотен баксов способно неплохо переваривать приложения, написанные на нормальных ЯП.

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

Это ты не нужен, тупой анонизмус. А компьютер дома нужен.

Апгрейд ради апгрейда — удел идиотов. Пока работает — пусть работает. Как сдохнет, потихоньку новый куплю.

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

А я не меряю профит экономикой. И я за то направление развития ИТ, которое может принести радость миллионам аборигенов с одноплатниками, даже если обратно в экономику ничего не вернётся. И даже если они не знают английского, то транслитерацию никто не отменял. В том же японском языке есть такое явление как ромадзи. Когда-то и я только мечтал о машине, и очень радовался бы даже в том случае, если бы там была только ASCII. А уж KOI8-R - это вообще праздник.

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

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

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

И я за то направление развития ИТ, которое может принести радость миллионам аборигенов с одноплатниками, даже если обратно в экономику ничего не вернётся.

Лол, если уж на старых raspberry pi основной SDK был на python, что говорить про современное железо?

И даже если они не знают английского, то транслитерацию никто не отменял.

а если они не знают латиницы?

Когда-то и я только мечтал о машине, и очень радовался бы даже в том случае, если бы там была только ASCII.

И я мечтал, но даже у меня, выросшего в далеко не самой богатой семье(мягко говоря), компьютер появился 15 лет назад. Купил без привлечения родительских средств, кстати.

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

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

эта, дядя, ты застрял в 90х, заканчивай с этим

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

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

если уж на старых raspberry pi основной SDK был на python

Говнокод на этом самом языке, который нормально пережёвывает i7-2600K, там тормозит очень знатно. А вот если этот код по-человечески переписать на C, то он там будет работать нормально.

а если они не знают латиницы?

Узнать её никогда не поздно.

компьютер появился 15 лет назад

Они к тому времени знатно подешевели. И у меня в те годы появился. А вот до этого было гораздо хуже.

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

Они к тому времени знатно подешевели. И у меня в те годы появился. А вот до этого было гораздо хуже.

так ведь с тех пор 15 лет прошло, блин! 2016й год на дворе.

Узнать её никогда не поздно.

а зачем? чтобы сэкономить 10-20-40 долларов на железе? Есть мнение, что те, у кого нет лишних денег в таких количествах (я, кстати, когда-то свой уже древний к тому моменту первый комп купил за 70, и ещё столько же за такой же древний монитор), в компах не заинтересованы вообще, потому что им бы пожрать. Пирамида потребностей, туды её.

Говнокод на этом самом языке, который нормально пережёвывает i7-2600K, там тормозит очень знатно.

Лол, ты собрался научные расчёты делать на RPi? Или HD-видео монтировать? А для запуска простенького гуя, обучения азам программирования и даже для простеньких игрушек его мощностей более чем хватает.

Кстати да, у меня дома сейчас самый мощный проц - Pentium о двух хасвелловских ядрах, куплен тоже за дикие копейки. Вообще не смотрю, на каком языке написан софт, всё отлично работает.

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

Перепиши мне tuxguitar на C, дядя, как думаешь, сколько человекочасов это займёт.

Короче, синдром утёнка прозреваю я, а не заботу о бедных несчастных аборигенах.

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

Перепиши мне tuxguitar на C

Да фиг с ним, пусть остается на говноплюсах. Главное — интерфейс с этого ублюдства паскуднического переделать на приличный. Ужас же!

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

Да фиг с ним, пусть остается на говноплюсах

там Java

Главное — интерфейс с этого ублюдства паскуднического переделать на приличный. Ужас же!

хз, работает, есть не просит, то что нужно делает, по jack transport синкается (в отличие от того же GTP, который даже Rewire не умеет).

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

так ведь с тех пор 15 лет прошло, блин! 2016й год на дворе.

Так мы, ведь, про глобализацию и универсальность. Бедные жители Кореи, Конго и Мадагаскара с трудом могут позволить себе даже одноплатник. Тем более, что в последние годы пришёл мировой кризис. А вы тут про какой-то юникод. Кому он нужен, если компами будут пользоваться полтора человека?! Тогда можно и несколько локальных кодировок юзать.

а зачем? чтобы сэкономить 10-20-40 долларов на железе?

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

Лол, ты собрался научные расчёты делать на RPi? Или HD-видео монтировать? А для запуска простенького гуя, обучения азам программирования и даже для простеньких игрушек его мощностей более чем хватает.

Не надо мне рассказывать на что его хватает. Именно на GUI его и не хватает, особенно на Python'е. Я привёл пример простейшей логической игры, но у которой в GUI варианте перегружен интерфейс. Иначе просто сложно реализовать. А вот в случае C/ncurses интерфейс сразу разгружается, и всё летает. Raspberry Pi сильно тормозит даже на открытии PDF/DJVU документов. Так что, я весьма скептически отношусь ко всяким графическим средам на нём. Это же как нужно себя ненавидеть. А вот нативная фреймбуферовская консоль там летает. А потому я знаю Raspberry Pi именно таким - Релиз Pisaahriktux 1.0 (Desolate Universe) , Вышел Pisaahriktux 2.0 (Hara holkutuk) , https://goo.gl/photos/WmVgh72YZsww6F3N9 .

Перепиши мне tuxguitar на C, дядя, как думаешь, сколько человекочасов это займёт.

Далеко не всем это нужно. Тем более когда есть midicomp, abcmidi и другие реализации, позволяющие создавать MIDI файлы прямо в текстовом редакторе в текстовой консоли.

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

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

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

Ну конечно. Зачем самому писать софт, который работает везде. Путь лучше юзеры постоянно меняют кодировки. Они все они виноваты.

Aswed ★★★★★
()

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

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

Далеко не всем это нужно.

да никому это уже не нужно, он и на джаве нормально работает

Тем более когда есть midicomp, abcmidi и другие реализации, позволяющие создавать MIDI файлы прямо в текстовом редакторе в текстовой консоли.

Зачем нужен скальпель, когда есть топор, да.

Я привёл пример простейшей логической игры, но у которой в GUI варианте перегружен интерфейс. А вот в случае C/ncurses интерфейс сразу разгружается, и всё летает.

стоп, так виноват гуй (gtk, кстати, на С написан, как и иксы) или python? А то у людей seafile(на python написан) на RPi вполне себе работает, не жалуются.

https://goo.gl/photos/WmVgh72YZsww6F3N9 .

c00l hax0r!

А если человек зарабатывает 600$ в год, и ему нужно что-то кушать?

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

Бедные жители Кореи, Конго и Мадагаскара с трудом могут позволить себе даже одноплатник.

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

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

все все все

почему все, только Эдян и Саарикту

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

обработка логов сквида - это разовая операция. У тебя времени уйдет на вычитывание его из файла несоразмерно больше, чем ты выиграешь от koi vs utf8.

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

У тебя с какой попытки нормально собрать все получилось?

С первой. Я же на десктопе натренировался всё собирать.

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

стоп, так виноват гуй (gtk, кстати, на С написан, как и иксы) или python?

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

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

Ну, вот, получилось у человека накопить на одноплатник, и теперь его мечта об ЭВМ может стать реальностью. Уже может. Но, тут не до «можно потратиться». И почему бы, собственно, и нет?!

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

Тормоза добавляет и то и другое

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

lazyklimm ★★★★★
()

Предлагаю отправить весь жир из этого треда голодным жителям Конго и Мадагаскара.

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

Допустим, мне нужно вывести строку с 9-го символа.

А что такое «символ»?

Возьмём строчку из «Бхагавад-гиты как она есть»: «др̣шт̣вемам̇ сва-джанам̇ кр̣шн̣а йуйутсум̇ самупастхитам сӣданти мама га̄тра̄н̣и». Сколько тут символов и какой из них девятый?

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

UTF-8 и UTF-16 могут достигать 32 бит на codepoint. UTF-32 всегда использует 32 бита на codepoint.

proud_anon ★★★★★
()
Последнее исправление: proud_anon (всего исправлений: 4)
Ответ на: комментарий от anonymous

Логи должны быть в *ml/бд, «обрабатывают» их только днища.

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