Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Чё меня бесит

Автор Алексей Гринь, марта 27, 2010, 21:09

0 Пользователи и 2 гостей просматривают эту тему.

Bhudh

Есть такое штуко — мазохизьм называеццо...
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Лукас

Цитата: Bhudh от февраля 18, 2011, 23:03
Есть такое штуко — мазохизьм называеццо...
Тогда уж штучко.
«Победоносил, победоносю и победоносить буду». Георгий Победоносец
«Я мстю, и мстя моя будет ужасной» - объявил бобёр лесу.
«Бог чува Србе», али је рок трајања истиче!

Чайник777

Цитата: myst от февраля 18, 2011, 22:57
Цитата: piton от февраля 18, 2011, 19:25
Одна из немногих услад глазу на ЛФ.
Нет, я, конечно, слышал о многообразии услад у человеков, но чтоб сучком по глазу наслаждались...
Меня совсем не бесит такой стиль письма. Наверно пишущие делают ошибки в старой орфографии, что должно раздражать её знатоков, но я к ним не отношусь.
DAZU brauchte Hitler 12 Jahre Zeit.

Алексей Гринь

Не помню, возможно я уже жаловался насчёт этого.

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

WinAPI:
MultiByteToWideChar не работает так, как заявлено в MSDN. Напр., он игнорирует MB_ERR_INVALID_CHARS (правда, починили в Win7).

UNIX:
libiconv не позволяет нормально сконвертировать строку. libiconv не умеет возвращать размер буфера, требуемого для того, чтобы вместить туда окончательную строку. Вообще никак. Алгоритм нам предлагают (вот он — типичный пример unix-way) просто чудесный:

1) функции скармливается предвыделенный буфер наобумной длины
2) если -- УПС! -- результат работы в него не вместился, то не беда:
3) просто удалите предыдущий буфер и создайте новый (опять наобумной длины, но уже побольше).
4) И так делайте в цикле бесконечно (переходить к пункту н. 2), пока выходная строка не созволит вместиться в буфер. А каждый такой проход функция каждый раз заново будет перекодировать строки. Т.е. оверхед изумительный: а) realloc в цикле б) перекодировка строки заново и заново в каждом цикле.
Не, конечно можно иметь огромный статический буфер. Но тут проблема возникнет, например, в многопоточности. А mingw не умеет __thread. Есть ещё много проблем (в смысле ненужного совершенно оверхеда) с этим, но я не буду уже распинаться.

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

Просто вынуждают использовать велосипеды.
肏! Τίς πέπορδε;

rudaru

бесит или раздражает?
"Истина где-то всегда рядом!"
Единственный смысл в науке - УСТАНОВИТЬ ИСТИНУ.

myst

Цитата: Алексей Гринь от февраля 19, 2011, 00:29
libiconv не позволяет нормально сконвертировать строку. libiconv не умеет возвращать размер буфера, требуемого для того, чтобы вместить туда окончательную строку. Вообще никак.
Я как раз недавно срал кирпичами по этому поводу. Удавил бы гадов! >(
Пришлось память выделять со стопудовым запасом.

O

gdy padła granica, pękły więzień bramy,
w ten dzień wyzwolenia: siedemnasty września

myst

Цитата: Алексей Гринь от февраля 19, 2011, 00:29
Не, конечно можно иметь огромный статический буфер.
4 байта на символ достаточно, если в UTF-8/16/32 преобразовывать.

myst

Цитата: O от февраля 19, 2011, 09:40
Цитата: myst от февраля 19, 2011, 09:38
Я как раз недавно срал кирпичами

;)
Здесь суровые технари, а там были дамы, да.

O

Цитата: myst от февраля 19, 2011, 09:42
Здесь суровые технари, а там были дамы, да.

Все разделы форума одинаково открыты для чтения. Мужчины и женщины равны в общественном (небиологическом) отношении.
gdy padła granica, pękły więzień bramy,
w ten dzień wyzwolenia: siedemnasty września

Чайник777

Цитата: myst от февраля 19, 2011, 09:42
Здесь суровые технари, а там были дамы, да.
Ничего не понял. На ЛФ суровые технари?  :o
DAZU brauchte Hitler 12 Jahre Zeit.

O

Цитата: Чайник777 от февраля 19, 2011, 10:10
Ничего не понял. На ЛФ суровые технари?  :o

Суровые механики морфологических шестерён и синтаксических агрегатов, да. Это же не какой-то там Литературный форум а-ля «дамские романы с цветочками и средневековыми рыцарями (профессиональными киллерами, кстати)».
gdy padła granica, pękły więzień bramy,
w ten dzień wyzwolenia: siedemnasty września

Асадъ

Искандеръ и Нгати - суровые механики. Этъ точно-съ...  8-)
БАШКИРАМЪ НЕ НУЖНЫ НИКАКІЯ АКАДЕМІИ. КАЖДЫЙ БАШКИРЪ СЪ ДѢТСТВА — АКАДЕМИКЪ.
,,...Асадъ это такой тонкій лингвотролль. И намѣренное изпользованіе орѳографіи тутъ очень подозрительно."
Я счастливъ, что головы Дангыра и Дюшеса остались цѣлыми!...

myst

Цитата: O от февраля 19, 2011, 09:48
Цитата: myst от февраля 19, 2011, 09:42
Здесь суровые технари, а там были дамы, да.

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

Алексей Гринь

Цитата: myst от февраля 19, 2011, 09:42
ЦитироватьНе, конечно можно иметь огромный статический буфер.
4 байта на символ достаточно, если в UTF-8/16/32 преобразовывать.
Ну тоже нехорошо — каждая отдельная строка будет иметь в конце себя лишнюю память. Если взять перекодировку UTF8->UTF16, то strlen умеет только байтовую длину, а не в символах. Мы хз сколько реально грёбаных символов, поэтому нужно исходить из strlen(x) * 4 (случай для однобайтных символов). Таким образом в худшем случае, если каждый символ в исходной строке кодируется в UTF8 четырьмя байтами (допустим, 10 символов общей суммой 40 байт), то UTF16-буфер будет в 4 раза больше, чем надо (160 байт вместо 40).

А если строк много?.. А если встроенная система с малым запасом памяти (а ведь libiconv типа кроссплатформ, ага)?

К тому ж это работает только для UTF-8/16/32. Если у нас конвертация из произвольной кодировки в произвольную кодировку, то надо как дебилу велосипедить спецтаблицу длино-преобразований.

К тому же, напр., если делать кроссплатформ, то будет разное поведение: под Виндой — строка весит 40 байт, а под Линуксем — 160. Это ли хорошо? Это хренов бардак.

Короче, в любом случае приходится каким-то образом велосипедить и делать лишние телодвижения (т.е. бороться с собственным инструментом) по причине того, что технари суть мѫдьни.
肏! Τίς πέπορδε;

myst

Цитата: Алексей Гринь от февраля 19, 2011, 14:46
Ну тоже нехорошо — каждая отдельная строка будет иметь в конце себя лишнюю память.
Что поделать, iconv делали идиоты. Интересно они сами пользуются своим поделием?
У меня одна строка о нескольких сотнях символов преобразуется в UTF-8 для отправки в базу данных, и буфер после этого освобождается, не страшно. Но в общем случае это капец полный.

Алексей Гринь

Цитата: myst от февраля 19, 2011, 15:08
У меня одна строка о нескольких сотнях символов преобразуется в UTF-8 для отправки в базу данных, и буфер после этого освобождается, не страшно.
НУ это-то да. Но если пишется библиотека, которой будут пользоваться другие, то это недопустимо. Хрен знает, как будет распоряжаться памятью программа и с какой частотой будет заниматься перекодировкой.
肏! Τίς πέπορδε;

Bhudh

Цитата: Алексей ГриньМы хз сколько реально грёбаных символов
Καί τύ, Βρούτε Γρήνι
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Xico

Offtop
Цитата: Bhudh от февраля 19, 2011, 17:06
Καί τύ, Βρούτε Γρήνι⁈
Это по-каковски?
Veni, legi, exii.

Лукас

Цитата: Xico от февраля 19, 2011, 17:17
Offtop
Цитата: Bhudh от февраля 19, 2011, 17:06
Καί τύ, Βρούτε Γρήνι⁈
Это по-каковски?
Бхудхский язык.
«Победоносил, победоносю и победоносить буду». Георгий Победоносец
«Я мстю, и мстя моя будет ужасной» - объявил бобёр лесу.
«Бог чува Србе», али је рок трајања истиче!

Bhudh

Offtop
Цитата: XicoЭто по-каковски?
Еʌʌēнского не узнаёте?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Алексей Гринь

肏! Τίς πέπορδε;

Асадъ

А самъ Цезарь это тоже сказалъ по Гречески? Кажется, это было не задолго до его смерти...
БАШКИРАМЪ НЕ НУЖНЫ НИКАКІЯ АКАДЕМІИ. КАЖДЫЙ БАШКИРЪ СЪ ДѢТСТВА — АКАДЕМИКЪ.
,,...Асадъ это такой тонкій лингвотролль. И намѣренное изпользованіе орѳографіи тутъ очень подозрительно."
Я счастливъ, что головы Дангыра и Дюшеса остались цѣлыми!...

Bhudh

Цитата: АсадъА самъ Цезарь это тоже сказалъ по Гречески?
Да есть такая гипотезка...

Цитата: АсадъКажется, это было не задолго до его смерти...
Секунд за 5‒10...
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

arseniiv

Цитата: Alone Coder от февраля 15, 2011, 21:43
Цитата: ПушкинМы не говорим: карета скачущая по мосту, слуга метущий комнату; мы говорим: которая скачет, который метет и пр.

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