Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Misha Verbitsky ([info]tiphareth)
@ 2023-08-16 16:23:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Настроение: sick
Музыка:Johann Jakob Walther (1650-1717) - Hortulus Chelicus Mainz, 1688 (David Plantier)
Entry tags:linux

mega-permissions --files 644
Я уже давно перешел с дропбокса на http://mega.nz
у которого примерно та же функциональность (и тоже на Линуксе),
он бесплатный и гораздо больше по доступному объему хранилища.
Мегасинк при закачке и создании нового файла всегда делает его
с permission 600, что страшно неудобно, потому что приходится
каждый раз править (я их потом на сервак скидываю). Несколько
раз я из-за этого пролетал из-за потери доступа к файлу
на веб-сервере.

Запишу для памяти
как с этим бороться: надо написать в коммандлайне
mega-permissions --files 644
mega-permissions --folders -s 755
и вуаля.

https://github.com/meganz/MEGAcmd/issues/305

Привет



(Читать комментарии) - (Добавить комментарий)


(Анонимно)
2023-08-16 21:44 (ссылка)
А как вообще на Линуксе создают файлы, если там имя файла это не строка, а "последовательность байтов", и канонического отображения между ними ОС не знает (Торбьёрнс запретил)?

(Ответить) (Ветвь дискуссии)


[info]tiphareth
2023-08-16 21:45 (ссылка)
touch filename

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-16 22:04 (ссылка)
и шо это "файлнейм"? это byte sequence in base64? could it be eg. a Farsi string with ligatures? or is it ascii only?

я не то чтоб совсем не задрачиваю, но несколько лет назад я наткнулся на эту проблему с юникодными именами файлов на Маке, и узнал, что концепция "имя файла" в Линуксе не существует, и попытки ее внедрить пресекаются во имя соц. справедливости.
такие дела

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]tiphareth
2023-08-17 00:45 (ссылка)
не знаю, у меня в системе весь уникод нахуй выпилен
не люблю его

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-17 11:45 (ссылка)
лХЬЮ ОПЕДОНВХРЮЕР ЕАЮРЭЯ Я НДМНАЮИРМШЛХ ЙНДХПНБЙЮЛХ.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-17 12:38 (ссылка)
аПЛАДВДДА ЛАЛАЛАЛ ЛСЛВШЫДМД СЛВЛВДАЛЛА МЛАЛАЛЛВ ПИДЛР ТЫ АЛАЛ ЕБАНЫЙ ЛАГСДВЩ. ЛАБЛЯДЯ БЛЯДЬ МЛАЛАЛАЛ ЛАЛАЛКЛ ЫДЙДЦЩ

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-17 20:53 (ссылка)
ьФП ЛБЛ РЕТЧБС МАВПЧШ

(Ответить) (Уровень выше)


(Анонимно)
2023-08-18 11:32 (ссылка)
Ляблядя блядь

(Ответить) (Уровень выше)


(Анонимно)
2023-08-17 17:50 (ссылка)
>ПЕДОН В ХРЮЕР

Хрюернул.

(Ответить) (Уровень выше)


(Анонимно)
2023-08-18 04:33 (ссылка)
Думал ты прикололся с педоном в хрюер, а это реальное слово "предпочитает".

(Ответить) (Уровень выше)


(Анонимно)
2023-08-17 12:44 (ссылка)
�� ����, UTF-8 ������ ������ ��������

(Ответить) (Уровень выше)


[info]grusha
2023-08-17 01:25 (ссылка)
Это просто byte sequence, т.е. что угодно. Пользователь волен сам выбирать, какую кодировку использовать. Большинство выбирает то что по умолчанию, т.е. ascii/utf8.

>узнал, что концепция "имя файла" в Линуксе не существует

А это что такое?

int open(const char *filename, int flags, mode_t mode);

И вот это:

struct filename {
const char *name; /* pointer to actual string */
const __user char *uptr; /* original userland pointer */
int refcnt;
struct audit_names *aname;
const char iname[];
};

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-17 07:22 (ссылка)
Имя файла должно быть строкой, эквивалентность строк в современном мире специфицирует, увы, ёбаный юникод. Буква ё, представленная одним байтом, и буква ё, представленная двумя байтами - это имя того же файла.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kaledin
2023-08-17 13:34 (ссылка)
>Буква ё, представленная одним байтом, и буква ё, представленная двумя байтами - это имя того же файла

НАХУЙ!!!

Блядь, как заебали уроды. Вот только этой хуйни еще не хватало, всобачивать сраный юникод в системные функции. Охуели совсем.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-17 13:43 (ссылка)
Nichego krome bazovoj larinicy ne nuzhno, vse drugije bukvi nekulturny

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 02:02 (ссылка)
Ničego, krome rasširennoj latinicy, ne nužno

(Ответить) (Уровень выше)


[info]tiphareth
2023-08-17 20:47 (ссылка)
я в локали отключаю юникод
иногда его приходится силком включать, потому что есть куски софта
(в основном игры), которые без юникода в локали не работают
но вообще идея использовать в системе что-то кроме английского и ASCII
полностью мудацкая и надо за подобное бить по зубам без разговоров
one byte encoding, one language, one blood,
one race, two genders, three tattvas, four varnas

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-17 22:29 (ссылка)
> идея использовать в системе что-то кроме английского и ASCII полностью мудацкая и надо за подобное бить по зубам без разговоров

Почему?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]grusha
2023-08-17 23:42 (ссылка)
Имена файлов выполняют примерно ту же функцию, что имена переменных в языках программирования. Т.е. лаконичные и удобные в использовании идентификаторы объектов, а не какие-то их пространные описания.

Мне, допустим, нелатинские буквы в именах файлов в принципе не мешают (но я, в отличие от Миши, ничего кроме utf-8 не юзаю), а вот пробелы и прочие спецсимволы еще как мешают, так как их приходится экранировать там и сям. Т.е. создание проблем на пустом месте. Потому что какой-то мудак насрал первым попавшимся именем, не задумываясь, что людям потом с ним работать.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 00:04 (ссылка)
но это же просто субъективное мнение

у других людей другие предпочтения или юзкейсы

тут вроде глобальный тезис был у Миши

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]grusha
2023-08-18 01:08 (ссылка)
Если эти другие люди свои файлы создают исключительно для личных нужд и никому их не показывают, тогда пожалуйста, это их личное дело.
В противном случае (например если это "программисты", и эти файлы создает их "код", например авторы упомянутых ниже в треде "версерверов" - наверно имелось ввиду "версервисы"), тогда им следует научиться правилам совместного общежития, чтоб стать сколь-нибудь приемлемыми членами социального общества.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 01:49 (ссылка)
А почему "правила общежития" должны быть основаны именно на американском телеграфном стандарте середины 20 века? Что в нем такого богом данного?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kaledin
2023-08-18 04:19 (ссылка)
Потому, что операционные системы пишут там же, где разработали телеграфный стандарт. И нехуй выебываться.

(Ответить) (Уровень выше) (Ветвь дискуссии)

(без темы) - (Анонимно), 2023-08-23 09:21:56
(без темы) - (Анонимно), 2023-08-18 04:38:12

(Анонимно)
2023-08-18 12:43 (ссылка)
Хуекивное.

Я например как embedded/system погромист хотел бы сношать этот юникод и в рот и в жопу. Никому кроме долбоебов нахуй всралось держать в ППЗУ/ядре/дровах ебаную прорву библиотечного кода для этого сраного юникода который нужен исключительно для того, что бы правильно прочитать/сравнить/отобразить имя файла на каком-нибудь, сука китайском или арабском, который пидорас-пользователь вставил на флешке или загрузил в систему.

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 14:06 (ссылка)
... о том как именно выводить и обрабатывать информацию на наречии понятном для конкретной макаки -- голова должна болеть только у тех, кто делает UI для клиентских устройств и всякую скриптодрисню на реакте/электроне, а не у тех кто дизайнит сами системы. Если бы не всякая адско-каловая хуйня типа case insensitive файловых систем которые иногда нужно поддерживать-имплементировать -- то ровных посонов бы весь этот конченный юникод вообще не ебал бы например.

(Ответить) (Уровень выше)


(Анонимно)
2023-08-18 02:16 (ссылка)
> Имена файлов выполняют примерно ту же функцию, что имена переменных в языках программирования.

Да, именно это одно из разногласий. Очень многие люди считают, что нет, это ни в коем случае не так, и имя файла это строка человеческого языка.

Кстати, вот все чего-то тут заладили utf-8 utf-16 ну речь изначально вообще идет не про энкодинги, а про каноникализацию строк, но похоже в этом чате про такое никто не слышал.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]grusha
2023-08-18 10:43 (ссылка)
>Очень многие люди считают, что нет, это ни в коем случае не так, и имя файла это строка человеческого языка.

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

(Ответить) (Уровень выше)


[info]grusha
2023-08-18 11:15 (ссылка)
>Кстати, вот все чего-то тут заладили utf-8 utf-16 ну речь изначально вообще идет не про энкодинги, а про каноникализацию строк

Эти строки в каком-то виде хранить надо, не?

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

Более того, конечный пользователь тоже нахуй ничего не знает и не обязан знать ни про какую нормализацию строк, а вот что такое байт, он вполне представляет. Потому что например дилемма "размер файла 10GB, а объем флэшки 8GB" ему вполне понятна.

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

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-20 02:32 (ссылка)
Сука, мир есть текст. Обновите ваши стандарты.

(Ответить) (Уровень выше) (Ветвь дискуссии)

(без темы) - (Анонимно), 2023-09-01 00:47:42

(Анонимно)
2023-08-18 01:53 (ссылка)
> кроме английского и ASCII

Почему не EBCDIC кстати? Ещё более труЪ, и ещё на порядок больше страданий и бессмысленных жертв.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 06:21 (ссылка)
ебздик наше все

(Ответить) (Уровень выше)


[info]spqr
2023-08-28 12:00 (ссылка)
Потому что мы не про MVS речь ведём. Есть ОС со сложившимися простыми абстракциями (и не надо тащить туда сервисы и прочую ересь) и договорённостями (типа тех же точек для обозначения каталогов, или там слешей, а не баксов). Менять это сугубо потому, что кому-то захотелось вставлять визуально неразличимые символы в названия или ещё чего-то странного --- пусть свою ОС делают, по типу https://ru.wikipedia.org/wiki/TempleOS

(Ответить) (Уровень выше)


[info]apol
2023-08-20 12:53 (ссылка)
локаль влияет только на внешнее представление - как операционка показыает инфу человеку. на ядро это не влияет. В ядре имя файла - это просто NULL-terminated string. Единственный спецсимвол - "/", которым разделяются компоненты path. UTF8 спроектирован так, что легаси-код, работающий с null-terminated ascii будет и с UTF8 работать корректно.

(Ответить) (Уровень выше)


(Анонимно)
2023-08-17 18:37 (ссылка)
вонюша туповат и ограничен. не понимает, что, скажем, на деванагари пишет больше людей чем 5 сраных ебаных рашек

вот гугла даже шрифты годные нарисовала для этих людей

вонь, вас, говна, с вашим однобайнтым koi8 меньше 1% в мире

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 02:08 (ссылка)
Недавно сталкивался с деванагари и сильно был удивлен, что правильное отображение всех букв зависит от шрифта. Базовые буквы поддерживаются всеми шрифтами, без балды, но у них есть лигатуры, этих лигатур сильно больше десятка (https://en.wikipedia.org/wiki/Devanagari_conjuncts) и их отображение зависит от шрифта. Поэтому у хиндуязычных к документам лежали шрифты чтобы их скачивать и читать правильное отображение. MS Nirmala UI нормально отображает, а всякие другие могут разорвать буквы. В хинди до сих пор праиндоевропейские спиранты остались и смыслоразличительны, просто заменить гха на га, ддхра на ддра не выйдет.

(Ответить) (Уровень выше)


[info]grusha
2023-08-17 22:06 (ссылка)
>Буква ё, представленная одним байтом, и буква ё, представленная двумя байтами - это имя того же файла.

Это имя разных файлов. Проверяется экспериментально.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-17 22:27 (ссылка)
О том и речь. Вопрос, в чем преимущество такого решения. Зачем тебе два различных файла, ё.txt и ё.txt?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]grusha
2023-08-17 23:09 (ссылка)
Вот у меня есть два файла, foo и bar. И тут оказывается, что есть кодировка, в которой ё.txt кодируется как foo, и еще одна кодировка, в которой ё.txt кодируется как bar. Ну ок, а мне что до этого?

>в чем преимущество такого решения.

https://lj.rossia.org/users/tiphareth/2544376.html?thread=188716792#t188716792

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 00:07 (ссылка)
> И тут оказывается, что есть кодировка

"uni" в "unicode" означает "один". Один райх, один фюрер, одна кодировка

так что откуда оно вдруг окажется?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]grusha
2023-08-18 00:54 (ссылка)
От верблюда.
https://en.wikipedia.org/wiki/Comparison_of_Unicode_encodings

(Ответить) (Уровень выше)


(Анонимно)
2023-08-18 04:40 (ссылка)
Так-то ты прав по задумке, однако UTF-7, UTF-8, UTF-16 это разные uni-коды.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 06:37 (ссылка)
опять заладили ЮтиЭф
разночтения есть еще на этапе до энкодинга
изображение буквы ё представляется кодом "кириллическая йе с диакритом две точки"
либо ДВУМЯ кодами "кириллическая йе" и "комбинирующий справа диакрит две точки"
либо ДВУМЯ кодами "комбинирующий слева диакрит две точки" и "кириллическая йе"

Энкодинг же кодирует коды в байты

Я наверно утрирую, я про юникод вообще очень мало понимаю, но не настолько чтоб думать, что юникод это такая аски таблица на 2^2^k символов

(Ответить) (Уровень выше)


[info]apol
2023-08-20 12:47 (ссылка)
Букву ё нельзя изобразить одним байтом в юникоде. Это либо кирилическая буква ё, 2 bytes in UTF8, либо отдельно е и диакритика. Тогда будет ещё больше байт.
И что такого необычного в том, что разные строки (в машинном представлении) на экране выглядят неотличимо? В какой-нибудь Win1251 английская е и русская е выглядят одинаково, но байты ( и имена файлов) будут разные.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]grusha
2023-08-20 13:24 (ссылка)
У юникода аж несколько кодировок, несовместимых друг с другом (то есть никакого "стандарта" по факту нет). Ничто не мешает определить еще одну, в которой ё будет кодироваться как угодно, хоть одним битом.

(Ответить) (Уровень выше)


[info]dece
2023-08-17 14:33 (ссылка)
ггг
Эт, помню, был, да и есть, наверно, в ЖЖ такой юзер, пидессер (тудесер), б. фидораст и сотонизд.
Захотел я его как-то подъебнуть, с учетом того, шо на UUE, base64 и MIME я нескольких собак съел, и заслал ему непонятку на кусок ююки, кажется, мол, че за кодировка ваще, "штирлиц" ничитаить. Как-то так, не понмю уже.
Блядь!
Далбаеб, наверно, до сих пор бегаить и визжить, шо Добрай Дідусь Багайоп ламиръ.
А разгадка одна: you should never underestimate the predictability of stupidity.
Хочешь пошутить с дебилом — учитывай, что можешь оказаться в роли дебила сам бгг

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-17 15:39 (ссылка)
кантовский конъюктив

(Ответить) (Уровень выше)


(Анонимно)
2023-08-17 16:53 (ссылка)
Хочешь пошутить, учитывай, что щас придет Каледин и все немедленно окажутся в роли дебилов ггг

(Ответить) (Уровень выше)


(Анонимно)
2023-08-18 02:29 (ссылка)
сисадмин затроллил вассермана

(Ответить) (Уровень выше)


[info]sometimes
2023-08-17 20:22 (ссылка)
filename - это последовательность символов из множества a-zA-Z0-9_-.

длиной не менее 1 символа
не совпадающая с '.' и '..'

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kaledin
2023-08-17 20:25 (ссылка)
>a-zA-Z0-9_-

Вот именно! -- а за остальное я бы руки отрывал вообще.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 00:07 (ссылка)
pisat' russkoj' bukvoj' pridumali trampoidy-kovidobesy

(Ответить) (Уровень выше)


(Анонимно)
2023-08-18 02:31 (ссылка)
а вот за кейс сенситивные имена у меня во дворе убивали нахуй

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 04:42 (ссылка)
Линуксы же case-sensitive семейства. В маках это опциональная настройка.

(Ответить) (Уровень выше)


(Анонимно)
2023-08-18 08:20 (ссылка)
Максимальной длины восемь. Ну или тринадцать. Если длиннее сразу бы руки отрывал

(Ответить) (Уровень выше)


[info]grusha
2023-08-17 00:17 (ссылка)
А в чем проблема? Не любая последовательность байтов это строка, но любая строка это последовательность байтов.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-17 07:13 (ссылка)
Разным байт сиквенсам может соответствовать одна строка https://unicode.org/reports/tr15/#Canon_Compat_Equivalence

Когда стандарт не говорит, какой канон самый каноничный, разные юзер-программы будут вести себя по разному. Особенно всякие вебсерверы один из которых создает файл, а другой читает. Один кодирует в NFC, другой в NFD и говорит файл нот фаунд. А МакОС еще своих заморочек добавляет

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-17 12:49 (ссылка)
кстати, не только юникод, в старых шифт кодировках можно было бесконечно добивать байтовую строку последовательностями типа shift in, shift out, shift in, shift out... что даёт неограниченное количество байтовых представлений одной и той же строки

(Ответить) (Уровень выше)


[info]grusha
2023-08-17 22:05 (ссылка)
Если строка это по определению последовательность байт, то разным последовательностям всегда соответствуют разные строки.

Линукс, помимо всего прочего, много заботится о том чтобы поиск файла по имени работал как можно быстрее. Потому что разные программы очень часто обращаются к разным файлам по имени. Особенно на серверах, кстати. Вот, можешь почитать: https://www.kernel.org/doc/html/latest/filesystems/path-lookup.html

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

Задача ОС - обеспечивать пользователям и программам доступ к ресурсам компьютера, а не принимать за них решения, как именно эти ресурсы просирать.

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 02:30 (ссылка)
> Если строка это по определению последовательность байт, то разным последовательностям всегда соответствуют разные строки.

нет, конечно. и utf8/16/64 тут ни при чем. я ж дал ссылку на стнадарт, прочти про каноническое равенство строк. Одна строка по-разному представляется последовательностями юникод пойнтов, а последовательности пойнтов потом кодируется в последовательность байтов - это уже utf.

> если ты хочешь думать не о байтах, а об абстрактных символах, - юзай более высокоуровневые абстрации, более высокоуровневые API, только и всего

я только за. и в каком API мне найти функцию OpenFileUnicode ?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]tiphareth
2023-08-18 03:48 (ссылка)
>и в каком API мне найти функцию OpenFileUnicode ?

если бы она была нужна, ее бы написали
не надо нахуй никакого юникода в названиях файлов

Родина им дала ascii — носи! Носи ascii, блядь! Не хочу, хочу жрать говно!
Что такое? Это линукс?! Это линукс?! Суки… Мудачьё — программисты. Погоны нацепили, говно жрут — пидоры, блядь, ёбаные…

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 06:47 (ссылка)
все так. программисты линуксу нахуй не нужны.
линукс же блять не пастух, чтоб программистов пасти
и не свиноматка, чтоб программистам сисю давать
и не ломбард сука нахуй блять
а базис для надстройки - гегеля читал!?
тебе нужно - ты пиши. ты ж программист или пидораст!
но не надо нахуй никакого юникода в названиях файлов! если ты его напишешь - все будут знать что ты пидораст!!

(Ответить) (Уровень выше)


[info]grusha
2023-08-18 11:35 (ссылка)
Какое именно слово в словосочетании "Если строка это по определению последовательность байт" тебе непонятно? Для ОС строка это последовательность байт и только. Для многих приложений тоже.

>я только за. и в каком API мне найти функцию OpenFileUnicode ?

Откуда я знаю. Если нет, напиши. API для создания файлов есть, API для нормализации строк наверно тоже есть (было бы очень смешно если нет: "стандарт" 30 лет как есть, а имплементации нет), комбинировать одно с другим - дело тривиальное, не?

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 14:17 (ссылка)
Лол. Опять ты программист тебе надо ты пиши.
Расскажи это Эпплу. У них имя файла это декомпонованный юникод например, когда все остальные везде используют компонованный.

> (было бы очень смешно если нет: "стандарт" 30 лет как есть, а имплементации нет)

ну вот я и смеюсь. Стандарт не может стать стандартом, если каждый будет "ты программист тебе надо ты пиши".
Вон баш ваш спокойно матчит на уайлдкард символы юникода, а не байты, и не выебывается. И апач всякий отдает файлы по именам без проблем.
Но "в каком это АПИ" никто не знает.

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

Во первых, сраные программеры хотят директории тоже на своих фарси называть.
Во-вторых, сраный Апач не хочет читать каждый файл, чтоб ответить на ГЕТ ё.тхт. Ты ж сам говоришь, что надо быстро, особенно бля на сервере.
Сервер же бля на запросы отвечает.
А запросы это строки. Юникод. И если он будет в кернеле, сервера будут работать и быстро и стандартизовано.
Но этого не будет, потому что Каледин сказал нахуй юникод.
Не, я понимаю, никто не мешает программерам писать свои сервера со своими датабейсами имен и слоями кэшей. Вон апач же на линуксе быстро работает. Быстрее же, чем сраный виндоуз. Быстрее же, да? Ну только если без сраного юникода?


(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]grusha
2023-08-19 00:40 (ссылка)
>Лол. Опять ты программист тебе надо ты пиши.

Речь шла о написании кода вычисляющего 2 + 2 * 2, с использованием готовых операций + и *.

>Расскажи это Эпплу. У них имя файла это декомпонованный юникод например, когда все остальные везде используют компонованный.

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

>Стандарт не может стать стандартом, если каждый будет "ты программист тебе надо ты пиши".

Если стандарт не торопятся имплементировать (или даже так: имплементация есть, но юзать ее не торопятся), значит недорогого этот стандарт стоит.

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

Anyway, в стандарте юникода что-то говорится об именах файлов?

>Вон баш ваш спокойно матчит на уайлдкард символы юникода, а не байты

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

>Но "в каком это АПИ" никто не знает.

Что мешает узнать? Код открыт.

>Во-вторых, сраный Апач не хочет читать каждый файл, чтоб ответить на ГЕТ ё.тхт. Ты ж сам говоришь, что надо быстро, особенно бля на сервере.
>Сервер же бля на запросы отвечает.

А, то есть проблема не в том что имена файлов могут быть неканоничные (или где энфорсить их каноничность - в юзерспейсе или в кернеле), а в том что строки в GET запросах могут быть неканоничные? И поэтому приходится каноникализировать при каждом запросе, а не только при создании файлов? Ну ок, я сочувствую этой проблеме, а ядро и его файловые интерфейсы каким боком к http запросам?

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

(Ответить) (Уровень выше)


(Анонимно)
2023-08-18 06:58 (ссылка)
> Ты при этом предлагаешь, чтобы он вместо простого strcmp проверял юникодные строки на эквивалентность. Ну ты понел, да?

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]grusha
2023-08-18 11:41 (ссылка)
Ты таки не понел. Сложно сделать чтоб оно работало быстро, но таки можно, и это таки сделано.

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

Бремя доказательства на тебе. Например, юникодные таблицы занимают много места в памяти, так что мне неочевидно, что каноникализацию или сравнение юникодных строк в принципе можно реализовать cache-efficiently. Тебе очевидно? Код в студию.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 14:39 (ссылка)
Я таки понел. Ты абсолютно прав, но насчет бремя доказательства ты охуел.
Ты сказал, что юникод сделает с трудом оптимизированную фс медленной.
Я сказал, это неочевидно. Ты говоришь, нет, неочевидно, что можно быстро, где доказательства. Охеул?

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

Этому срачу, естественно, много лет, и этот диалог уже давно написан

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]grusha
2023-08-19 00:14 (ссылка)
Ты предлагаешь такое-то изменение в API ядра (несовместимое, кстати, ни с существующей posix-семантикой сисколов, ни с семантикой существующих физических файловых систем, т.е. несовместимое вообще почти ни с чем; ну да ладно, мы сейчас говорим о производительности). Соответственно, на тебе бремя доказательства того, что это хорошая идея.

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

>Да, средняя взвешенная производительность по всем юзкейсам

Взвешенная средняя по больнице производительность интереса не представляет. Речь про максимальную производительность.

>Особенно учитывая, что вебсервера давно используют кернел кешинг

Не знаю, о чем это. Часть сервера реализована как модуль ядра? В таком случае что мешает в этом модуле и реализовать все чего ему не хватает?

(Ответить) (Уровень выше)


[info]kaledin
2023-08-17 13:34 (ссылка)
Потому что это дегенераты верят в юникод и перекодировки на лету. Пиздец уроды.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-17 16:49 (ссылка)
Бля, ну ты ж не знаешь, что такое юникод, зачем пиздишь. Это не такая простая хуйня, неспециалист вообще про неё заикаться не должен. И тем более не должен думать, оно в системных функциях или нет.
Ебет тебя это что ли короче

(Ответить) (Уровень выше)


(Анонимно)
2023-08-17 17:26 (ссылка)
А ведь такие мракобесы с криками Нахуй Юникот сейчас сжигают кораны и насилуют турецких детей

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]spqr
2023-08-28 12:10 (ссылка)
Или наоборот.

(Ответить) (Уровень выше)


(Анонимно)
2023-08-17 17:36 (ссылка)
Некоторые ещё верят в глобальное потепление пиздец уроды

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-18 06:32 (ссылка)
а с вакцинами как?

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2023-08-19 08:41 (ссылка)
этикетка на бутылочке, не более

(Ответить) (Уровень выше)


(Читать комментарии) -