Ненависть к Майкрософту - это объективно?

Тема в разделе "WASM.HEAP", создана пользователем ingrem, 18 авг 2005.

Статус темы:
Закрыта.
  1. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    leo

    Надо патч неофициальный написать. Который будет принудительно добавлять в буфер локаль, при копировании в него текста для всех запущенных приложений.
     
  2. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев
    leo

    Любезный, все равно не вижу особой проблемы, тем более такой, чтобы назвать это предметом объективной ненависти... Каждая новая версия содержит в себе ряд изменений в апи, ну и что теперь, при каждом изменении начинать ненавидеть МС? :))



    alpet

    этот патч нафиг никому не нужен, а если кому лень 2 лишних строчки написать, то это его личная половая проблема (ни на кого, кстати, не намекаю даже - думаю, какие строчки добавить и так все знают). Или не может быть ситуации, когда нужно скопировать однобайтный текст не в одной из доступных раскладок, но в одном из поддерживаемых системой языков?
     
  3. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    Asterix

    почистили строго все темы по какую-то дату

    Вопрос: почему поступили именно так? Из-за необходимости _быстро_ уменьшить объем данных? Т.е. не было времени выбирать флейм. Если бы темы, подобные этой, удалялись сразу, то такая ситуация не возникла бы, плюс отношения между участиками форума не накалялись бы.
     
  4. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    А мне вот интересно, чем руководствовалась м$, когда придумывали win1251-кодировку... чем их не устроила наша 866? Она же вроде даже стандартизирована была.
     
  5. SDragon

    SDragon New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2005
    Сообщения:
    133
    Адрес:
    Siberia
    yureckor



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

    Цитата с http://www.microsoft.com/globaldev/getWR/DesignWRProg/OrgProdTeam.mspx :

    For the Windows XP project, the German language edition of the system was shipped the same day as the English edition.



    Вообще, они берут для международного тестирования следующие языки: английский, немецкий, китайский, иврит, тайский (Тайланд). Немецкий нужен, чтобы проверить работу с дополнительными символами (типа "эс-цет") в кодировке Latin-1 (1252). Та же кодировка используется во французской и испанской версии, поэтому достаточно проверить один немецкий язык, чтобы охватить всю Западную Европу.



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



    В упомянутой статье сказано, что французы тоже требуют полного перевода ПО: Software and documentation that is marketed in France must be in French.



    masquer



    Да, это не первая заморочка в Win32 API и, наверное, не последняя. Например, если ты вызовешь FindFirstFile, указав маску "*.htm", то получишь файлы с расширением htm и html! Это сделано для совместимости с программами для Windows 3.x, которые используют короткие имена файлов (подробности см. в блоге Реймонда Чена). Приходится самостоятельно отсеивать файлы с расширением html.



    Но здесь-то все понятно - нужно было сохранить совместимость с Win 3.x, поэтому им пришлось ввести такое нелогичное поведение функции FindFirstFile (кстати, этот случай сильно напоминает PC loser-ing problem в ранней версии Unix,описанную в статье Lisp: Good News, Bad News, How to Win Big).



    Но почему нельзя было по умолчанию выбирать для однобайтового текста системную кодировку (указанную в Панель управления > Язык и региональные стандарты > Дополнительно > Язык программ, не поддерживающих Unicode), а не кодировку, которая зависит от текущей раскладки? Если бы кому-то потребовалось скопировать однобайтный текст в другой кодировке, вот пусть они бы и вызывали SetClipboardData(CF_LOCALE, lang).
     
  6. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    masquer

    Не иначе как под твоим маскарадом скрывается тайный агент микрософта ;)

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



    Вопрос, конечно неоднозначный. В принципе большинству юзверей поддержка языка на уровне системы вообще нафиг не нужна - достаточно переключения раскладки клавиатуры (а уж языки с орфографией и граматикой пусть вякие там ворды поддерживают как могут). Дык и сделай так шоб народ переключал раскладки, а не языки, и чтобы это было удобно. Сколько дурных советов и предупреждений этот MS выдает, скоко красивостей предлагает, а тут - молчок и лысый индикатор клавиатуры. Сделали бы нормальное примечание при установке и удобный индикатор - вопросов бы не было. Это во-первых. А во-вторых, SDragon конечно прав в том, что для однобайтных кодировок дожен применятьсья язык по умолчанию. Но это правило и так действует, когда блокнот, ворд и т.п. открывают текстовые файлы. Так нафига спрашивается в буфер обмена к CF_TEXT подмешивать юникод и OEM - пусть себе и берут простой текст с языком по умолчанию. А пока получается откровенная глупость - крутой ворд, который сам может прекрасно рапознать язык на основе продвинутого анализа по наивности хватает из буфера испорченый юникод, не зная кто его туда запихнул - то ли какая прога со знанием дела, то ли бездумная системная служба. Вывод очевидный - нефиг вообще ничего добавлять или если очень хочется, то элементарный анализ символов добавить.

    Кстати, возможно благодаря проискам микрософта и расплодилось множество альтернативных переключателей раскладок с анализом текста. А мож енто мафия какая - одни специально гадят, другие подтирают и все при деле. masquer, ты случАем не из ентой ОПГ, а то мож какой крутой альтернативный свичер предложишь со скидкой ;)



    PS: А насчет "объективной ненависти" и я, и многие другие уже высказывались не раз. Свойство обывательской психологии: чем ты круче и понтее, тем получишь ты сильнее, даже за незначительные проколы, которые прощаются скромным и ненавязчивым
     
  7. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев
    SDragon



    хм, ну вот у меня 4 раскладки сейчас - Английская (по умолчанию), Русская, Украинская и Китайская (для тестирования), а копирую, я скажем, немецкий текст с умляутами и прочим, или иврит. Как в этом случае делать? :)

    leo



    Нет, хотя если поступят интересные предложения - рассмотрю :)



    Ну мы по определению должны под ее дудку плясать, а как иначе - каждому разработчику свой набор апи? :)





    расскажи, как можно распознать на каком языке будут символы, ну скажем соответствующие русскому "тест"? Ведь это ты видишь, что оно на русском, а не на китайском или фарси :)





    нет, я таким точно не занимаюсь





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

    yureckor New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    494
    Адрес:
    Russia
    чето не пойму о чем речь. У меня английская XP, весь русский текст в юникоде (это я заметил когда мой кейлогер хреновню стал какую-то брать), но с переключением все нормально
     
  9. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    masquer

    Я для себя напишу патч, дабы затыкать эту дыру в других гуевых программах. Все равно планирую сделать замену декстопу (explorer), и стало быть в нем будет и собственный переключатель раскладки и прочие включения.
     
  10. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Вот наглядный пример кракозяблов при копировании текста в XP:



    [​IMG]



    В качестве подопытного кролика, не поддерживающего юникод, берем старый блокнот от Win98SE (чтобы не было вопросов у кого руки кривые ;) Набираем первомайский лозунг, выделяем и копируем в буфер, ес-но забывая вернуть язык с EN на RU, вставляем в блокнот XP SP2 и видим то, что видим >8O



    Пробуем наоборот - уж продвинутый ХР-шный блокнот со своим юникодом должен как то выкрутиться из этой ситуации, часть фразы по русски, часть якобы по аглицки - может догадается все в русскую кодировку конвертнуть. А нифига подобного, оказывается он и юникод не может нормально в CF_TEXT перевести - одни вопросы, ни ответов, ни приветов 8(



    Мдя, ай да Microsoft, ай да.. Вот вам и службы языковой поддержки, позорище да и только..

    Да уж какая тут "ненависть" - жалко их узколобых глобалистов, взялись за непосильную ношу осчастливить весь мир родными письменами, да умишка-то видать не хватило ;)



    [​IMG] 552912982__krakozyb.gif
     
  11. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев
    leo



    датированный 29 апреля 1998 года :)

    Ну не была расчитана Win98SE на работу с юникодом :)

    Картинки, кстати, не видно.
     
  12. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Когда в IE убрать галочку "Всегда отправлять URL-адреса как UTF-8 (требуется перезапуск)" то картинка смотрится :) или менеджером качать
     
  13. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    у меня в IE видно, я правда сначала ее флэшгетом слил :)
     
  14. SDragon

    SDragon New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2005
    Сообщения:
    133
    Адрес:
    Siberia


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



    Например, ТО - один из самых частых биграфов русского языка - встречается в твоем посте в словах:
    Код (Text):
    1. однобайТОвого эТОм микрософТОв круТОй коТОрый продвинуТОго эТО чТО энТОй ТО круТОй ТОчно коТОрые кТО просТО конкуренТОв


    Итого 16 раз. А биграф ФЯ не встречается ни разу. В русском тексте он вообще попадается крайне редко (в словаре я нашел только три слова: тюФЯк, торФЯник и коринФЯнин).



    Буквы ТО в кодировке КОИ-8 имеют те же коды F4 EF, что и ФЯ в Windows 1251 (для простоты не будем учитывать регистр). Если текст закодирован в КОИ-8, в нем часто будут встречаться байты F4 EF. А текст в кодировке 1251 почти не содержит этих байтов. Надеюсь, общая идея теперь понятна.



    Имеем массив a[], в которой записано, сколько раз встречается каждый биграф в "Войне и мире". Алгоритм примерно такой:
    Код (Text):
    1. Подсчитать, сколько раз встречается каждый биграф в данном тексте, занести эти числа в массив b[]
    2. Для каждой кодировки - цикл for(j=0; j < макс-число-кодировок; ++j)
    3.    Подсчитать z[j] - вес каждой кодировки:
    4.    z[j] = 0
    5.    for(i = 0; i < MAX; ++i)
    6.      z[j] += a[i] * b[i];
    7. Выбрать кодировку j с наибольшим весом z[j]
    8.  


    Естественно, это только иллюстрация, алгоритм можно оптимизировать: заменить массив z[j] двумя переменными z, maxz; округлить элементы массива a[] до ближайшей степени двойки и заменить умножение сдвигом etc.



    Слово ТЕСТ (коды F2 E5 F1 F2) в кодировке Latin-1 соответствует буквам òåñò. Насколько я знаю, ни в одном европейском языке биграфы òå, åñ, ñò не встречаются. Частота a["òå"] == a["åñ"] == a["ñò"] == 0, следовательно z[Latin-1] == 0. В то же время ТЕ, ЕС, СТ довольно часто попадаются в русском тексте (особенно СТ), значит, z[Windows1251] > 0. Поэтому этот текст, вероятно, русский.
     
  15. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев


    вот это уже точно через ж. будет :) Усложним задачу и скопируем один символ, как тогда? :)

    С такими рассуждениями можно легко обвинить МС в том, что нету таких нужных и полезных функций как DrawNiceLookingGUIWithOfficeMenusAndToolbars или, например, ExtractTextFromVirtuallyAnyDocumentW и т.д. :)
     
  16. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    картинку поправил - см.выше



    masquer

    > "Ну мы по определению должны под ее дудку плясать, а как иначе"

    При разработке новых программ - конечно да. А вот обеспечивать совместимость с кучей ПО не столь далекого прошлого - дело чести и достоинства MS и она в целом эту совместимость поддерживает. И тем более удивителен такой прокол с юникодом.



    > "просто приходится прощать, так как другого выбора нет"

    Вот и я о том же, что приходится - и продукты в целом неплохие и деваться некуда. Но если бы MS не навязывали свои прибамбасы и прислушивались бы к критике, то могли бы по крайней мере для ОС и офиса предусмотреть несколько вариантов установки. Поскольку кроме школьников и домохозяеек существует масса пользователей, которых многие выкрутасы просто нервируют, а отключать их вручную довольно муторно, особенно в разного рода конторах с десятками компьютеров. Например, я на своем окучиваемом поле практически не встречал конторских юзверей, которые бы не использовали разного рода коммандеры вместо виндового эксплорера - не потому, что коммандеры круче, а просто дефолтные крупные значки и тем более эскизы в эксплорере это ужасно неудобно, да еще "не отображать расширения файлов зарегистрированных типов" - какой умник эту фигню придумал ?! А вот догадаться полазить по настройкам и привести все в божеский вид или некогда или умишка не хватает. Так и живем - MS со своими прибамбасами сам по себе, а народ сам по себе :dntknw:
     
  17. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    masquer

    > "Ну не была расчитана Win98SE на работу с юникодом :) "

    Об этом и речь, а вместе с ней не расчитывали на юникод еще туева хуча нужных программ. Можно те же эксперименты проделать с fasmw, RadASM, Delphi 7 и т.д. и т.п. Можно конкурс устроить - кто найдет прогу, копирующую в буфер текст в юникоде, MS не предлагать ;)



    > "Усложним задачу и скопируем один символ, как тогда? :)"

    Ес-но в общем случае это задача не простая. Но речь-то идет о конкретном частном случае установки двух языков - Английский (США) и "простой" национальный язык, для которого в однобайтной кодировке используются расширенный набор ASCII-символов. Причем при преобразовании в юникод речь идет именно об определении одного из двух установленных языков и выборе соответсвующих им кодовых таблиц. Достаточно посмотреть на приведенную картинку или лучше в таблицы символов из win98, чтобы понять, что любой символ с кодами 192..255 не используется в английском языке и если он встретился, значит это не EN, а нац.язык - проще некуда.



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

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев


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

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    masquer

    Да, но ведь самое плохое, что MS даже опционально не предложила считать весь текст с которым работает пользователь в одной локали (user-default). Это решило бы проблемы 99% пользователей, и избавило бы многих компаний от необходимости постраивать свои продукты под изощреную логику MS.



    P.S. Вторая заповедь программиста:

    Чти операционную систему свою и не хай ее разработчиков, ибо им и без тебя икается. А то и сам таким станешь.
     
  20. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Продвинутые перекодировки и дефолтные языки это лишь варианты решения проблемы, причем не самые простые и однозначные.

    И не решены они до сих пор наверное по простой причине - все это нафиг не нужно, если переключать не языки, а раскладки клавиатуры. По сути оси вообще незачем знать на каком языке я в данный момент пишу - ее задача лишь правильно отображать на экране те символы, которые мне нужны. А языками с их орфографией, грамматикой, стилистикой должны заниматься специальные программы типа мс ворд и иже с ним. Почему во времена господства 9х почти всех все устривало - да потому что переключая язык мы фактически лишь переключали раскладку с RUS на LAT как в старые добрые времена и это удовлетворяло 99% всех потребностей. А для всякой экзотики типа греческого алфавита, мат.символов и дополнительных языков опять же использовались спец.программы типа ворда. Ну дык самое простое это вернуться к этой традиции. Для этого микрософту нужно просто признать наличие проблемы и дать соответсвующие пояснения в справочной системе и во время установки ОС, а также сделать наглядный красочный индикатор раскладки клавиатуры. Хочешь - устанавливай только русский с двумя раскладками и привычным переключением, хочешь - добавь еще пару языков, т.к. языки будут переключаться реже и осознанно, то можно и мышкой пощелкать. Все элементарно, Ватсон, то бишь Гейтс ;)



    PS: masquer, будешь звонить Билли, передавай ему поклон и наилучшие пожелания в его нелегком неутомимом труде на благо человечества ;)))) Россияне, еще теснее сплотим ряды вогруг родной Micrоsoft и лично тов.Б.Г. !!!
     
Статус темы:
Закрыта.