Причуды MS

Персональный блог одноименного форумчанина. Человека и парохода, не побоюсь этого сравнения :)

Модератор: tyomitch

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Причуды MS

Сообщение tyomitch » 17.05.2006 (Ср) 21:12

Очередная заметочка, проапгрейженная до полноценного поста :-)


* не все знают, что браузеры, начиная с IE4 и (по-видимому) Mozilla 0.9.2.1, поддерживают в числе "специальных" протоколов, таких как about: и res:, протокол view-source:. Ссылка, использующая этот протокол, открывается не в браузере, а в блокнотике (для IE) или в отдельном "просмотрщике HTML" (для Mozilla). Самый прикол в том, что Mozilla (проверено в Firefox 1.5) позволяет просмотреть исходный текст этого исходного текста -- т.е. всё то же самое, только без синтаксической подсветки. Интересно, это баг или фича?

Можете сами попробовать: view-source:http://www.google.com/ (phpBB не позволяет запихнуть такую ссылку в тег [url], т.ч. вставляйте её в адресную строку сами.)

Применения у этого протокола могут быть самые разнообразные: от ссылок на исходники примеров в веб-туториалах до неотключаемых всплывающих окон (в т.ч. при просмотре почты).

Обидно, что в IE6 SV1 (т.е. в WinXP SP2 и Win2003 SP1) этот протокол отключили, сочтя дырой в безопасности. (Юзеру можно показать в блокнотике любой из его локальных файлов -- какой страх! какой ужас!) В браузерах, производных от Mozilla, этот протокол, по-видимому, всё ещё работает. (Если у кого стоит Netscape или ещё чего похожее -- проверьте плз.)



* Благодаря ссылке alibek-а, стал перечитывать архив на http://dibr.nnov.ru/ -- попадаются удивительно любопытные вещи. Всё оттуда сюда перепощивать я, конечно, не стану :-) Но вот это воззвание уж очень заходелось перевести и запостить именно здесь.

© Ron Burk, December 2000. Перевод и разбивка на абзацы -- мои.

    Сначала было Windows API, и был DLL Hell. Первой революцией стала DDE [1] -- помните, как горячие ссылки позволяли нам печатать в строке статуса [2] текущий курс акций Microsoft? Примерно в это же время появились ресурсы типа VERSIONINFO, которые должны были искоренить DLL Hell.

    Но другая группа разработчиков в составе Microsoft обнаружила у DDE существенный недостаток -- её написали не они! Чтобы исправить ситуацию, они создали OLE (которая была такая же, как DDE, только другая), и я с нежностью вспоминаю конференцию, на которой докладчик от Microsoft провозглашал, что Windows API скоро будет заменено на OLE API, [3] и все элементы управления в Windows станут OCX-элементами. Чтобы искоренить DLL Hell, в OLE была предусмотрена система интерфейсов. Помните, как всех охватила эпидемия "внедрённых объектов", и как мы мечтали, что однажды все наши приложения можно будет внедрить в один (видимо, очень большой) документ Word?

    Примерно тогда же Microsoft перешла на C++; [4] появился MFC, и все наши проблемы вновь были решены, теперь уже -- с помощью наследования. Наивно было бы предположить, что OLE смирится с потерей внимания к себе, -- и она возникла вновь, теперь уже под названием COM. Тогда мы вдруг осознали, что OLE (или даже DDE?) вернулась к нам навсегда, только теперь для искоренения DLL Hell предлагалась изощрённая система контроля версий компонентов.

    Одновременно с этим группа отступников в составе Microsoft обнаружила у MFC существенный недостаток -- его написали не они! Они немедленно исправили ситуацию путём создания ATL (которая была такая же, как MFC, только другая), и постарались скрыть от взора все те захватывающие детали, о которых нам так настойчиво рассказывали проповедники COM. Тогда разработчики COM (или даже OLE?) были вынуждены переименовать себя в ActiveX, и они выпустили ещё сто фунтов новых интерфейсов -- включая новые интерфейсы контроля версий, призванные искоренить DLL Hell. Ещё разработчики ActiveX дали нам возможность выполнять любой код в веб-браузерах пользователей, даже позволяя им выбирать, какой вирус при этом будет загружен (ха -- а вам так слабо, ATL-щики?)

    Потом другая всеми забытая группа в составе Microsoft начала голосить, как брошенный ребёнок, пытающийся привлечь внимание: "готовьтесь к Cairo!" Они так и не смогли толком объяснить, что же такое эта Cairo, -- не то чтобы выпустить её в продажу. Но зато они добавили в Windows механизм "защиты системных файлов", который должен был искоренить DLL Hell.

    Теперь ещё одна группа в составе Microsoft обнаружила у Java существенный недостаток -- её написали не они! Чтобы исправить ситуацию, они создали J, или Jole, или ActiveJ (честно говоря, я и не помню, как это называлось [5]) -- который был такой же, как Java, только другой. Это было замечательно, но Sun сумела засудить Microsoft по какому-то древнему закону, который ограничивает, сколько дряни может выпустить одна компания в течение года. Это было явной попыткой ограничить свободу Microsoft в отношении создания своих продуктов -- таких же, как у остальных, только других; и в результате была образована Сеть Сторонников Свободы Microsoft в Отношении Набивания Деньгами Карманов Конгрессменам (выпускающая свой журнал и футболки по $14.75).

    Помните, как глава команды разработчиков J/Jole/ActiveJ стучал туфлей по столу, уверяя нас в том, что Microsoft никогда не прекратит поддержку его проекта? Вот болван! Ведь сразу было понятно, что разработчики ActiveX (или даже COM?) не стерпят забвения. Эта неунывающая толпа программистов, непрестанно рождавшая всё новые и новые API, ответила на вызов появлением COM+ (наверное, его надо было назвать ActiveX+?) и MTS. (Я был тогда потрясён -- и я до сих пор не могу понять, почему в названии MTS не было ни "COM", ни "Active", ни "X", ни "+".) Ещё они угрожали в самом скорейшем времени добавить по плюсу к каждому из остальных своих акронимов. Потом кто-то другой вопил про "Windows DNA" и "Windows Washboard", но они заглохли раньше, чем я успел понять, что же это было такое.

    Всё это время Microsoft наблюдала за Интернетом со всё нарастающим беспокойством. Недавно они наконец-таки обнаружили у Интернета существенный недостаток -- вы, наверное, уже догадались, какой. Вот наше повествование и дошло до .NET (произносится так же, как "doughnut", только по-другому) -- такого же, как Интернет, только с куда большим количеством пресс-релизов. Одну вещь про .NET можно сказать с абсолютной достоверностью: .NET позволит искоренить DLL Hell. В .NET включён новый язык программирования, названный C# -- всё равно, как оказалось, у Active++Jspresso был существенный недостаток, так что его не жалко. Все программы, написанные на .NET, вне зависимости от языка, будут выполняться под управлением виртуальной машины -- оказалось, что у программирования для процессоров от Intel был существенный недостаток. Наконец, .NET включает единую систему авторизации [6] -- оказалось, что в хранении всех ваших паролей не на серверах Microsoft был существенный недостаток. Думаю, легче было бы перечислить то, что .NET не включает в себя.

    Безо всякого сомнения, .NET произведёт революцию в программировании для Windows… где-нибудь на год.
Примечания:
  1. У меня есть спасённая от мусорного ящика книжка "Программирование под Windows 2.x/3.0", и там очень много и подробно рассказывается о мощи и гибкости DDE. Чего-то в более новых книжках обзора возможностей DDE мне не попадалось -- хотя все они до сих пор поддерживаются, в т.ч. родными средствами VB. Вроде бы, иконки в меню "Пуск" инсталляторами до сих пор создаются с помощью DDE-конверсации с "Диспетчером Программ" -- что, по идее, делает эти инсталляторы совместимыми с WinNT 3.x, в которых нет меню "Пуск", а есть файлы *.grp
  2. Видимо, имеется в виду Excel.
  3. Примерно в то же время Microsoft увлекалась платформой Macintosh, и, вроде бы, OLE задумывалась кроссплатформенной; программы, написанные с её использованием, могли быть скомпилированы под Macintosh без исправления исходников.
  4. С Си. Хотя рассказывают, что отдельные участки WinNT 3.1 уже писались на C++ (а потом, в WinNT 3.5, всё равно переписывались на Си, потому что производительность кода на C++ заметно хромала).
  5. Не J++ ли?
  6. .NET Passport; впрочем, её тоже уже перекрестили в Windows Live ID, в рамках очередного бума под названием "Windows Live".


* В самом конце, как обычно -- изначальная заметка о забавном баге, обнаруженном в своё время в Win2000 SP1. Как бы вы себя повели, если бы при попытке смены пароля Винда вас поприветствовала таким сообщением?

Your password must be at least 18770 characters and cannot repeat any of your previous 30689 passwords. Please type a different password. Type a password that meets these requirements in both text boxes.

Note that the number of required characters changes from 17,145 to 18,770 with the installation of SP1.

(ссылка взята с http://dibr.nnov.ru/issue181101.html)
Последний раз редактировалось tyomitch 22.05.2006 (Пн) 1:33, всего редактировалось 2 раз(а).
Изображение

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 17.05.2006 (Ср) 21:15

И что смешного? Просто баг.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 18.05.2006 (Чт) 10:55

BV

баг, то он баг, но ты попробуй тако пароль запомнить :wink:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 22.05.2006 (Пн) 1:10

ап!грейд


Бонус-ссылка, отчасти в тему: http://groups.google.com/group/fido7.ru ... e5d2833689
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Причуды MS

Сообщение tyomitch » 22.07.2006 (Сб) 16:03

tyomitch писал(а):* не все знают, что браузеры, начиная с IE4 и (по-видимому) Mozilla 0.9.2.1, поддерживают в числе "специальных" протоколов, таких как about: и res:, протокол view-source:. Ссылка, использующая этот протокол, открывается не в браузере, а в блокнотике (для IE) или в отдельном "просмотрщике HTML" (для Mozilla). Самый прикол в том, что Mozilla (проверено в Firefox 1.5) позволяет просмотреть исходный текст этого исходного текста -- т.е. всё то же самое, только без синтаксической подсветки. Интересно, это баг или фича?

Можете сами попробовать: view-source:http://www.google.com/ (phpBB не позволяет запихнуть такую ссылку в тег [url], т.ч. вставляйте её в адресную строку сами.)

Применения у этого протокола могут быть самые разнообразные: от ссылок на исходники примеров в веб-туториалах до неотключаемых всплывающих окон (в т.ч. при просмотре почты).

Обидно, что в IE6 SV1 (т.е. в WinXP SP2 и Win2003 SP1) этот протокол отключили, сочтя дырой в безопасности. (Юзеру можно показать в блокнотике любой из его локальных файлов -- какой страх! какой ужас!) В браузерах, производных от Mozilla, этот протокол, по-видимому, всё ещё работает. (Если у кого стоит Netscape или ещё чего похожее -- проверьте плз.)

Ещё один такой малоизвестный спецпротокол -- sysimage:, позволявший вставлять на HTML-страницы в качестве рисунков иконки из локальных файлов. Его тоже объявили дырой в IE6, и зарезали в SV1. Обидно: IE из "ОС внутри ОС" постепенно превращается в обычный веб-браузер :cry:
Изображение

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 24.07.2006 (Пн) 9:23

Опера писал(а):Тип адреса неизвестен или не поддерживается

view-source:http://www.google.com/
[Место cдаётся]


Вернуться в Tyomitch

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList