Comments 89
Я подспудно всегда чувствовал, что если вопросами искусственного интеллекта займется Microsoft, восстания машин нам не избежать. Не по злому умыслу, а…
И оно провалится при команде: «1. Убить все[ вы; ивши[» :)
Когда винда накенец-то увидит и распознает мой сетевой принто-сканер, тогда я начну за это опасаться.
Я буду держать всех в курсе и скажу если «началось».
Я буду держать всех в курсе и скажу если «началось».
Да ладно… Если у них получится искуственный интеллект, то он пройдёт первую же проверку — не будет работать.
Что он, дурной?
Что он, дурной?
MSO то ладно, а вот представьте сколько таких багов во подсистемах безопасности и шифрования.
Интересно зачем некорректный символ проверяется 3 раза? И ну и по сканкоду, это сильно конечно.
Интересно зачем некорректный символ проверяется 3 раза? И ну и по сканкоду, это сильно конечно.
Интересно зачем некорректный символ проверяется 3 раза?
Разные индусы эти куски кода писали, у каждого было тз такие символы не пропсукать, а вмержились они все одновременно, как вариант,
MSO то ладно, а вот представьте сколько таких багов во подсистемах безопасности и шифрования.
Это же совсем разные команды. Прикладники — сами по себе, «ядерщики» — сами и т.д.
let char = 'Ж'
// если не присвоилось, то
if !char {
}
// если не присвоилось, то
if !char {
}
И эти люди запрещают мне ковыряться в носу учать меня как нужно писать программы :)
Когда смотришь вопросы на собеседовании — не иначе гениев набирают.
Когда смотришь на код — и куда они всех этих гениев дели…
Когда смотришь на код — и куда они всех этих гениев дели…
Ну как куда? В отборщиков гениев — в менеджеры.
У меня есть небезосновательная гипотеза, что лид продукта в то время, когда писался этот код, спустя некоторое время основал FogCreek и StackOverflow. И вообще, кажется, мужик довольно неглупый.
а как связана разработка VBA с разработкой всего экселя? Или VBA — отдельный продукт, а эксель — отдельный?
А как связан ваш вопрос с моим комментарием?
наверное, тем, что Джоел Спольски отвечал всё-таки за VBA?
Да вроде нет.
> I left the company in 1994, assuming Bill had completely forgotten me, until I noticed a short interview with Bill Gates in the Wall Street Journal, in which he mentioned, almost in passing, something along the lines of how hard it was to recruit, say, ★a good program manager for Excel★. They don't just grow on trees, or something.
— www.joelonsoftware.com/items/2006/06/16.html
> I left the company in 1994, assuming Bill had completely forgotten me, until I noticed a short interview with Bill Gates in the Wall Street Journal, in which he mentioned, almost in passing, something along the lines of how hard it was to recruit, say, ★a good program manager for Excel★. They don't just grow on trees, or something.
— www.joelonsoftware.com/items/2006/06/16.html
1. как соотносится «лид продукта» и program manager? Сколько менеджеров работают над одним продуктом и как из них называется ответственный за продукт в целом? Который «лид продукта»?
2. в этой же статье отчётливо написано, что будучи «program manager» он разрабатывал подсистему VBA для экселя. VBA < Excel < Microsoft Office < Microsoft, при этом код, отвечающий за букву Ж во страницах экселя никоим образом с Джоэлом не связан.
2. в этой же статье отчётливо написано, что будучи «program manager» он разрабатывал подсистему VBA для экселя. VBA < Excel < Microsoft Office < Microsoft, при этом код, отвечающий за букву Ж во страницах экселя никоим образом с Джоэлом не связан.
Одни примеры с MSDN чего стоят. Ни RAII, ни exception-safety нет, а сколько коду с этих примеров скопировано в продакшн…
Читая статьи о реверс-инжиниринге Майкрософтских программ иногда кажется, что не видя исходный код такое раскопать невозможно...(а это говорит о мастерстве автора :) ).
Или может намного проще понять в чем проблема НЕ имея исходный код, чем бегать по сотням классов/функций в IDE и читать код?
Или может намного проще понять в чем проблема НЕ имея исходный код, чем бегать по сотням классов/функций в IDE и читать код?
В 2016-м превью вроде бы проблемы нет. Вводиться в любой раскладке. Есть подозрения что могли пофиксить с переходом xslx.
Ха, а в постановке с форума действительно не работает:
Эта старинная хохма достигается следующим макаром:
— в ENG-раскладке попытаться ввести двоеточие (:)
— сказать «ой» (ибо не получится)
— переключиться в RUS-раскладку
— попытаться ввести «Ж»
— опять — «ой»
Эта старинная хохма достигается следующим макаром:
— в ENG-раскладке попытаться ввести двоеточие (:)
— сказать «ой» (ибо не получится)
— переключиться в RUS-раскладку
— попытаться ввести «Ж»
— опять — «ой»
Читайте внимательно статью. Всё дело в том, какая раскладка у вас будет выбрана в момент первого нажатия на клавишу.
После таких статей начинаешь понимать, почему Микрософт не любит open source. Иной исходник может неслабо так подмочить репутацию.
Я просто оставлю это здесь
github.com/dotnet
github.com/aspnet
github.com/Microsoft
Первое, что по памяти нашел.
github.com/dotnet
github.com/aspnet
github.com/Microsoft
Первое, что по памяти нашел.
Каждый опенсорсник считает нужным пнуть мс за легаси код, этого не исправить
1) Исправить
2) Не пускать в продакшен такой код. Не пофиксить баг и просто забить, я ума не приложу, как такое можно сделать. Хотя справидливости ради хочеться отметить, что не плохо бы знать частоту появления этого бага. В этой статье эти данный представлены расплывчато.
2) Не пускать в продакшен такой код. Не пофиксить баг и просто забить, я ума не приложу, как такое можно сделать. Хотя справидливости ради хочеться отметить, что не плохо бы знать частоту появления этого бага. В этой статье эти данный представлены расплывчато.
1) Исправить-то можно, а нужно ли? Когда софт работает идеально — нет повода «пинать».
2) Ошибка не критическая, скорее просто неприятная. К тому же на продажи исправление такого бага не влияет совершенно никак — а соответственно нет повода вкладывать в это дело ни цента. Microsoft может себе позволить не исправлять ошибку, встречающуюся «раз на миллион».
2) Ошибка не критическая, скорее просто неприятная. К тому же на продажи исправление такого бага не влияет совершенно никак — а соответственно нет повода вкладывать в это дело ни цента. Microsoft может себе позволить не исправлять ошибку, встречающуюся «раз на миллион».
Вы когда пишете код/делаете концепт предусматриваете rtl-языки?
По опыту работы американцы где-то также относятся к другим локалям, европейцы -к другим таймзонам: вроде понятно, что оно существует и даже будет где-то использоваться, но внимания к этому по остаточному принципу.
Вспомните баг в Netscape Navigator — стоило в javascript использовать букву «я», как браузер сходил с ума. Ну а что? Удобно же 255-й код использовать для своих нужд, он всё равно «где-то в неиспользуемой части» ascii-таблицы.
По опыту работы американцы где-то также относятся к другим локалям, европейцы -к другим таймзонам: вроде понятно, что оно существует и даже будет где-то использоваться, но внимания к этому по остаточному принципу.
Вспомните баг в Netscape Navigator — стоило в javascript использовать букву «я», как браузер сходил с ума. Ну а что? Удобно же 255-й код использовать для своих нужд, он всё равно «где-то в неиспользуемой части» ascii-таблицы.
Среднему американскому программисту вообще не приходит в голову, что у клавиатуры может переключаться раскладка. Как раз этим, например, можно объяснить решение Эпла включить всем по умолчанию отдельную раскладку для смайликов. Для американца этот интерфейс прост и понятен: нажали кнопку, включился режим смайликов, нажали ещё раз, он выключился. А про народы, вынужденные писать в двух раскладках, никто и не подумал.
По опыту работы американцы где-то также относятся к другим локалям
Где-то видел, на одном англоязычном форуме, перевод в UTF-8 путем приписывания 0x00 спереди, мол и так работает же.
Вы когда пишете код/делаете концепт предусматриваете rtl-языки?
Вы даже не представляете, на какую больную мозоль наступили…
А у майкрософта есть какой-нибудь багтрекер или нечто подобное?
Автору спасибо, люблю такие детективы. Главное доступно и интересно написано.
Автору спасибо, люблю такие детективы. Главное доступно и интересно написано.
Есть suggestion box, excel.uservoice.com
Багтрекер, о котором почему-то никто не знает, хотя он вполне публичный, много лет был на MS connect, но его сейчас постепенно прикрывают.
Багтрекер, о котором почему-то никто не знает, хотя он вполне публичный, много лет был на MS connect, но его сейчас постепенно прикрывают.
А знаете почему?
Почему?
Вероятно потому, что ваше мнение и ваши усилия в направлении улучшения продукта больше не нужны.
Это неверно.
Запросы на форумах TechNet от специалистов, а не конечных пользователей (у меня тут зависло, почините) обрабатываются пасущимися там MSFT.
У меня смешанный опыт: иногда получалось достучаться, иногда нет.
Запросы на форумах TechNet от специалистов, а не конечных пользователей (у меня тут зависло, почините) обрабатываются пасущимися там MSFT.
У меня смешанный опыт: иногда получалось достучаться, иногда нет.
Есть ли у вас примеры, что в форуме получен ответ или решение, недоступное простому обывателю, внимательно читающему библиотеку Technet?
Да. Я дважды получал помощь: один раз оказалось, что в SDK не включены кое-какие .h файлы, я указал на это, они извинились за ошибку и включили их в следующий выпуск.
В другой раз мне нужно было решить одну хитрую задачу с WinJobs, мне подсказали нестандартный трюк. Насколько я помню, это были как раз MSFT участники.
А вот ответа по поводу OLE интерфейсов в RichEdit компоненте ответа получить не смог нигде. Ни через багтрекер, ни через форумы технет, ни через твиттер их техподдержки.
В другой раз мне нужно было решить одну хитрую задачу с WinJobs, мне подсказали нестандартный трюк. Насколько я помню, это были как раз MSFT участники.
А вот ответа по поводу OLE интерфейсов в RichEdit компоненте ответа получить не смог нигде. Ни через багтрекер, ни через форумы технет, ни через твиттер их техподдержки.
Тем не менее, исправить эту ошибку можно, и даже проще, чем ожидалось.
Кстати, позавчера LibreOffice 5 вышел… На всякий случай, вдруг кому :)
Это похоже на ошибку Автокада версии до 2009 вроде. Там нельзя было использовать в названии слоя букву Б. К сожалению, не помню, можно ли было сделать копировать-вставить. Причем у них в багах это висело лет 7-8, пока исправили (это важно, так как каждые 3 года они меняют формат файла и в целом вносят много изменений в код, а тут 3 поколения не исправляли).
MS видимо не понимают, что название состоит из символов, а не нажатых клавиш. Надо проверять само название на валидность, а оно может быть сформировано как с клавиатуры, как еще кучей разных способов, включая ситуацию, когда кто-то залезет в исходник документа и там поменяет символ в обход excel.
Представляете сколько избыточного и тупого кода в других частях системы? Например, проверка клавиш при сохранении файла. И эта проверка может быть своя в каждом продукте. Понятно куда деваются гигабайты на системе виндовс
Представляете сколько избыточного и тупого кода в других частях системы? Например, проверка клавиш при сохранении файла. И эта проверка может быть своя в каждом продукте. Понятно куда деваются гигабайты на системе виндовс
Надо проверять само название на валидность
Тоже спорный вопрос. Зачем ставить ограничение на название? Ладно в ФС, и то там минимум ограничений, слеш и какое-нибудь двоеточие, остальное от лукавого, но внутри документа???
Вы когда-нибудь работали с Excel или вообще никогда? Название листа там вполне может фигурировать как часть формулы! Если всякие двоеточия будут допустимы в имени — как это всё будет работать, по вашему?
Вы когда-нибудь работали с Excel или вообще никогда?
По минимуму.
Название листа там вполне может фигурировать как часть формулы!
Почему бы в синтаксисе не предусмотреть квотирование? Пример из коммента ниже "[Файл]Лист!$A$8" может выглядеть вполне как "[Файл]'Лист: *красненький*, \для Мариванны\'$A$8"
Эти проблемы давно решены.
Потому что потом вам надо будет делать ссылку на ячейку вида "[Файл]Лист!$A$8". Если у вас будут левые символы, то ссылка не распарсится и что-то обязательно упадет в другом месте или посчитает неверный результат.
Собственно та же самая проблема, что и с названиями файлов — если они сами по себе, то без разницы, а если нужно использовать их где-то, то уже важно название.
Собственно та же самая проблема, что и с названиями файлов — если они сами по себе, то без разницы, а если нужно использовать их где-то, то уже важно название.
MS всё прекрасно понимает. Если бы вы дочитали статью до конца, то увидели бы, что символы они тоже проверяют — чуть позже. А тут они хотели сделать «как лучше». Проблема в том, что две раскладки бывают только в ограниченном числе стран: там Греция, Россия, Израиль… если людей из этих стран в команде нет, то может не найтись никого, кто бы осознавал не только то, что в природе бывают раскладки, но и то, что в природе бывают люди, которые их во время работы регулярно меняют — и их довольно много…
P.S. Причём тут именно важно иметь людей именно из этих стран. Эмигранты часто смиряются с тем, что раскладка на клавиатуре не написана и пользуются всякими translit.ru, если им нужно вводить русский текст.
P.S. Причём тут именно важно иметь людей именно из этих стран. Эмигранты часто смиряются с тем, что раскладка на клавиатуре не написана и пользуются всякими translit.ru, если им нужно вводить русский текст.
Я б сказал что двух раскладок НЕ бывает в ограниченном числе стран, а остальные минимум с двумя и живут. Вот только MS из США, а там как раз она одна.
Опять этот великорусский шовинизм, LOL. «Остальные» — это хто? США и Европа (включая Турцию), Латинская Америка и Китай, Япония и Австралия — все они живут с одной раскладкой. Да-да, даже страны, где пишут иероглифами. Там ввод текста осуществляется совсем особым образом — но именно поэтому проверка скан-кодов никому не мешает. Так что, увы и ах, но это именно страны с двумя кодировками — исключение. Потому с ними и возникают проблемы то в Linux, то в Windows. А вовсе не потому, что софт только в Штатах разрабатывают.
А это что?
en.wikipedia.org/wiki/German_keyboard_layout
en.wikipedia.org/wiki/German_keyboard_layout
The German keyboard layout is a QWERTZ keyboard layout commonly used in Germany and Austria
Ммм. Не понял вопроса. Это клавиатура, которой пользуются в германии, QWERTZ, да. QWERTY ни при этом, разумеется, не пользуют, раскладки не переключают, Office и другие подобные «сумасшедшие» программы их не напрягают. В чём проблема?
В немецкой раскладке прекрасно можно писать на английском, я гарантирую это.
Там если начать ввод на обычной раскладке, а потом переключиться на эту дополнительную то тот знак что находится где «:» тоже нельзя будет ввести. Вряд ли только он вводится так же часто как Ж.
Как-то слишком самоуверено.
ромадзи навязали IME очень наворочен и позволяет задать клавишу на переключение внутренней раскладки с кана на ромазди и обратно. У нас к слову тоже есть умельцы которые впихнули в одну раскладку и латиницу и кириллицу и сделали переключение по caps lock (при этом не сломав верхний регистр по Shift, но сломав типичную проверку орфографии). В общем японцам тут чуть больше повезло. А так объективно их нельзя выписывать из списка двух-раскладочных. Сюда ещё можно добавить Корею. Как у китайцев я не знаю.
На память приходит что ещё свои раскладки есть у:
Одна раскладка только у стран где принята в основе латиница (доп знаки они набирают через AltGr) и то как видно в случае Германией есть исключение.
ЯпонияКак вы быстро лишили японцев хираганы и катаканы. У них есть ввод каной. Поэтому в принципе ромадзи там могло и не быть. Просто
На память приходит что ещё свои раскладки есть у:
- Армении
- Грузии
- Тайланда
Одна раскладка только у стран где принята в основе латиница (доп знаки они набирают через AltGr) и то как видно в случае Германией есть исключение.
Поэтому в принципе ромадзи там могло и не быть.Не могло. Компьютеры японцы получили с Запада и хотя изначально они тоже были двураскладочниками, но латинница там была изначально. Каны не было — это да.
Как вы быстро лишили японцев хираганы и катаканы.Вот именно они и вводились на второй раскладке на какой-нибудь MSX. Но в современных системах (хоть Windows, хоть ChromeOS) японцы — однораскладочники.
А так объективно их нельзя выписывать из списка двух-раскладочных. Сюда ещё можно добавить Корею. Как у китайцев я не знаю.У всех трёх есть переключение режимов внутри одной раскладки. Собственно IME есть пошла из Китая — причём она в ранние времена была программно-аппаратным комплексом, на продаже которого поднялась одна небезизвестная компания. Microsoft свою версию разработал вроде бы независимо, но «по образу и подобию». И, опять-таки: поскольку всё это надстраивалось над QWERTY, то латинница там была в основе изначально.
У меня просто есть знакомый, занимавшийся разработкой ChromeOS. Так вот: первой страной, которая потребовала заморачиваться с двумя раскладками была Россия. Греки и евреи были уже позже. А до этого они «окучили» большую часть мира, включая Японию, часть Латинскую Америки и Африки.
Возможно в какой-то другой, альтернативной, вселенной развитие компьютерной техники могло пойти иначе и там бы Япония и Китай попали бы в список «многораскладочников». Но, увы, на нашей планете этого не случилось и мы с вам попадаем в жалкое меньшинство о котором редко кто задумывается.
Я не говорю, что это хорошо — это просто неизбежно.
Странам, набирающим символы через AltGr тоже можно свинью подложить, использовав в программе шорткаты Ctrl + Alt + something.
Мало кто из русских программистов знает, что таким образом можно заблокировать ввод некоторых символов туркам, полякам и т.д. 8)
Мало кто из русских программистов знает, что таким образом можно заблокировать ввод некоторых символов туркам, полякам и т.д. 8)
Какое-то нелепое оправдание. Если продукт идёт на рынок других стран, он должен разрабатываться с учётом их особенностей и тестироваться в том числе в их условиях.
Microsoft не раскрывает подробную статистику по продажам в разных странах, но есть основания считать, что вряд ли он получает в двураскладочных странах более нескольких процентов продаж.
Если продукт идёт на рынок стран, которые приносят вам 1% дохода, то вы выделите на адаптацию ресурсов ровно столько, сколько он заслуживает. Никто не будет разрабатывать продукт специально для такого рынка. Его доработают — как смогут.
Более того, если вам придётся жизнь людей с этого однопроцентного рынка сильно ухудшить из-за того, что какая-то фишка облегчит при этом жизнь 99% ваших потребителей — это нужно делать особо не задумываясь, так как улучшение продаж на, скажем, 10% на двадцатипроцентном рынке скомпенсирует вам возможные потери с лихвой. Простая математика.
Очевидно тестировщики этот баг не воспроизвели, а если и воспроизвели — то не обратили внимание.
Если продукт идёт на рынок стран, которые приносят вам 1% дохода, то вы выделите на адаптацию ресурсов ровно столько, сколько он заслуживает. Никто не будет разрабатывать продукт специально для такого рынка. Его доработают — как смогут.
Более того, если вам придётся жизнь людей с этого однопроцентного рынка сильно ухудшить из-за того, что какая-то фишка облегчит при этом жизнь 99% ваших потребителей — это нужно делать особо не задумываясь, так как улучшение продаж на, скажем, 10% на двадцатипроцентном рынке скомпенсирует вам возможные потери с лихвой. Простая математика.
Очевидно тестировщики этот баг не воспроизвели, а если и воспроизвели — то не обратили внимание.
Microsoft не раскрывает подробную статистику по продажам в разных странах
есть основания считать что вряд ли он получает в двураскладочных странах более нескольких процентов продажВзаимоисключающие параграфы.
Ваши домыслы ничем не подкреплены.
Если вы считаете, что единственные данные, на основании которых можно что-то оценивать — это бумажки, издаваемые Microsoft'ом, то мне вас жаль. Это для компании «рога и копыта», продающей два с половиной компьютера в день невозможно точно узнать сколько точно и кому она продала, но тут мы всё-таки про лидера рынка говорим! Есть данные об объемах рынка, есть данные о распространённости пиратской продукции, есть данные о ценах в разных странах, наконец! Это вполне достаточно для того, чтобы примерно оценить объёмы и перспективность рынков.
Израиль…
Кто ещё шовинист…
Допустим, что нас тут в Израиле мало и поэтому с локализацией заморачиваются по минимуму — и не только в программном обеспечении. Но есть ещё двоюродные братья (арабы) коих куда больше. А для них актуально всё то же, что и для нас: своя раскладка клавиатуры, RTL. И даже больше: у них количество символов поболее, ибо есть всякие лигатуры и обязательные огласовки (в иврите огласовки опциональны, а реально ли вводить теамим — я даже не знаю).
Кроме того, у арабов даже цифры свои
В одной из древних, ещё до поглощения Adobe-ом, версий среды разработки Macromedia Flash было невозможно использовать букву «я» ни в коде скрипта, ни даже в комментариях.
Приходилось в таких случаях обходить баг при помощи escape-последовательность \377.
Приходилось в таких случаях обходить баг при помощи escape-последовательность \377.
интересно, минусует один и тот же пользователь?
Еще один workAround — фиксится CapsLock+ж+CapsLock
Ещё заметил, что блочится "?". Так вот, берём Английский язык и пытаемся поставить знак вопроса (Shift+/). Вопросительный знак не ставится. Переключаемся на Русскую клавиатуру и пытаемся поставить запятую той-же комбинацией. Поздравляю! Вы получили ещё одну нерабочую кнопку :D
Sign up to leave a comment.
О сколько нам открытий чудных готовит Office Microsoft