Это перевод When setting expectations, you also have to deny them when necessary. Автор: Реймонд Чен.
Иногда команда Оболочки (Shell) получает запрос от клиента через его посредника. В запросе запрашивается информация о том, как выполнить то или другое. Прежде чем мы отвечаем на такой вопрос, мы хотим знать, как далеко простирается поддержка решения у посредника.
...when altering one's mind becomes as easy as programming a computer, what does it mean to be human?..
среда, 30 июня 2010 г.
вторник, 29 июня 2010 г.
Почему Проводник выдвигает CD-диск после записи?
Это перевод Why does Explorer eject the CD after you finish burning it? Автор: Реймонд Чен.
Частично - для удобства. Но основная причина - бажное железо. Мне пояснил это разработчик, ответственный за запись CD в Windows.
Частично - для удобства. Но основная причина - бажное железо. Мне пояснил это разработчик, ответственный за запись CD в Windows.
понедельник, 28 июня 2010 г.
Почему поведение по-умолчанию для перетаскивания (drag/drop) не может быть изменено?
Это перевод Why can't the default drag/drop behavior be changed? Автор: Реймонд Чен.
Частой реакцией на моё объяснение, должно ли перетаскивание файла приводить к копированию или перемещению, является указание, что в Windows должна быть настройка, которая позволяет вам менять алгоритм, который использует Проводник (Explorer) для решения, нужно ли делать копирование или перемещение.
Есть несколько причин, почему это плохая идея.
Частой реакцией на моё объяснение, должно ли перетаскивание файла приводить к копированию или перемещению, является указание, что в Windows должна быть настройка, которая позволяет вам менять алгоритм, который использует Проводник (Explorer) для решения, нужно ли делать копирование или перемещение.
Есть несколько причин, почему это плохая идея.
воскресенье, 27 июня 2010 г.
Почему апплеты Панели управления и странички свойств объектов не показываются в Панели задач?
Это перевод Why don't control panel programs and property sheets show up in the taskbar? Автор: Реймонд Чен.
Апплеты Панели управления и странички свойств объектов не показываются в Панели задач. Почему нет?
Апплеты Панели управления и странички свойств объектов не показываются в Панели задач. Почему нет?
суббота, 26 июня 2010 г.
Почему иногда Windows XP SP2 забывает мои настройки автозапуска для CD?
Это перевод Why does Windows XP SP2 sometimes forget my CD autoplay settings? Автор: Реймонд Чен.
Она не забывает их; она просто ещё раз проверяет ваш выбор.
Она не забывает их; она просто ещё раз проверяет ваш выбор.
пятница, 25 июня 2010 г.
2/97: Применение принципов функционального программирования
Это перевод Apply Functional Programming Principles. Автор: Edward Garson.
Из "97-ми вещей, которые должен знать каждый программист".
В последнее время со стороны общества разработчиков возрождается интерес к функциональному программированию. Одна из причин - свойства функциональных парадигм могут хорошо решать проблемы, связанные со сдвигом нашей отрасли к многоядерности. Однако хотя это, безусловно, важный аспект применения функционального программирования, это не та причина, почему данная заметка призывает вас к изучению функционального программирования.
Из "97-ми вещей, которые должен знать каждый программист".
В последнее время со стороны общества разработчиков возрождается интерес к функциональному программированию. Одна из причин - свойства функциональных парадигм могут хорошо решать проблемы, связанные со сдвигом нашей отрасли к многоядерности. Однако хотя это, безусловно, важный аспект применения функционального программирования, это не та причина, почему данная заметка призывает вас к изучению функционального программирования.
четверг, 24 июня 2010 г.
Использование модульной арифметики для избежания проблем переполнения интервалов
Это перевод Using modular arithmetic to avoid timing overflow problems. Автор: Реймонд Чен.
Ранее я показал простой способ избежать переполнений в интервалах времени (таймерах), который, кажется, оказался довольно туманным.
Ранее я показал простой способ избежать переполнений в интервалах времени (таймерах), который, кажется, оказался довольно туманным.
среда, 23 июня 2010 г.
Вы не можете эмулировать ввод с клавиатуры с помощью PostMessage
Это перевод You can't simulate keyboard input with PostMessage. Автор: Реймонд Чен.
Некоторые люди предлагают эмулировать ввод с клавиатуры для приложения отправкой ему соответствующих клавиатурных сообщений, но это ненадёжно по многим причинам.
Некоторые люди предлагают эмулировать ввод с клавиатуры для приложения отправкой ему соответствующих клавиатурных сообщений, но это ненадёжно по многим причинам.
вторник, 22 июня 2010 г.
Что там у нас с драйвером Beep в Windows 7?
Это перевод What’s up with the Beep driver in Windows 7? Автор: Ларри Остерман.
Чуть раньше сегодня кое-кто спросил меня, почему 64-х битные версии Windows не поддерживают пикание встроенным системным динамиком. Ответ на этот вопрос довольно сложен и заключается в интересном пересечении нескольких противоречивых тенденций в экосистеме PC.
Чуть раньше сегодня кое-кто спросил меня, почему 64-х битные версии Windows не поддерживают пикание встроенным системным динамиком. Ответ на этот вопрос довольно сложен и заключается в интересном пересечении нескольких противоречивых тенденций в экосистеме PC.
понедельник, 21 июня 2010 г.
Использование флага /LARGEADDRESSAWARE на 64-х битной Windows для 32-х разрядных программ
Это перевод Using /LARGEADDRESSAWARE on 64-bit Windows for 32-bit programs. Автор: Реймонд Чен.
Вероятно наибольшим преимуществом 64-х битной Windows являются не увеличенные регистры, а обширное адресное пространство. Вспомните, что даже с ключом /3GB 32-х битные программы получали только 2 Гб памяти, если только они не указывали свою готовность работать с адресами выше 2 Гб указанием флага /LARGEADDRESSAWARE.
Вероятно наибольшим преимуществом 64-х битной Windows являются не увеличенные регистры, а обширное адресное пространство. Вспомните, что даже с ключом /3GB 32-х битные программы получали только 2 Гб памяти, если только они не указывали свою готовность работать с адресами выше 2 Гб указанием флага /LARGEADDRESSAWARE.
воскресенье, 20 июня 2010 г.
Диалог Небезопасное отключение устройства
Это перевод The unsafe device removal dialog. Автор: Реймонд Чен.
В комментариях кто-то спросил, что случилось с диалогом о небезопасном извлечении устройства в Windows 2000: почему он исчез из Windows XP.
В комментариях кто-то спросил, что случилось с диалогом о небезопасном извлечении устройства в Windows 2000: почему он исчез из Windows XP.
суббота, 19 июня 2010 г.
Как продвинутые пользователи перехитрили сами себя: иконка уведомления извлечения устройства
Это перевод When advanced users outsmart themselves: The device removal notification icon. Автор: Реймонд Чен.
Один клиент отправил команде интерфейса пользователя предложение по иконке извлечения устройств:
Один клиент отправил команде интерфейса пользователя предложение по иконке извлечения устройств:
Иконку уведомления извлечения устройств слишком тяжело использовать. Когда я щёлкаю по ней, я получаю меню с пунктом "Безопасное извлечение устройства", и когда я щёлкаю на него, я получаю диалоговое окно, в котором перечислены все устройства, с расплывчатыми именами вроде "Запоминающее устройство для USB" и абсолютно сумасшедшими деталями, что оно подключено к концентратору USB в PCI слоте 35. Когда я включаю галочку "Отображать компоненты устройства", я получаю дерево устройств, которое понравится только гикам.
Это слишком сложно. Когда я щёлкаю по иконке уведомления для извлечения устройств, я ожидаю получить простое меню со списком устройств, которые можно извлечь - простое меню, с легко идентифицирующимися названиями, типа "USB накопитель - диск E:". Пожалуйста, рассмотрите возможность реализации этого улучшения в следующей версии Windows.
пятница, 18 июня 2010 г.
Эти иконки уведомлений с их щелчками, двойными щелчками, правыми щелчками... что это за мешанина?
Это перевод Those notification icons, with their clicks, double-clicks, right-clicks... what's up with that? Автор: Реймонд Чен.
(Слабая попытка подражать заголовкам постов блога Майкла Каплана, которые обычно более выразительны)
Джонатан Хардвик сделал краткую таблицу несоответствий в том, как различные программы обрабатывают клики на их значках уведомления. Как же надо правильно делать?
(Слабая попытка подражать заголовкам постов блога Майкла Каплана, которые обычно более выразительны)
Джонатан Хардвик сделал краткую таблицу несоответствий в том, как различные программы обрабатывают клики на их значках уведомления. Как же надо правильно делать?
четверг, 17 июня 2010 г.
Почему "Установка и удаление программ" иногда показывают большое пустое место?
Это перевод Why does Add or Remove Programs show a large blank space?. Автор: Реймонд Чен.
Некоторые люди заметили, что некоторые программы приводят к тому, что апплет "Установка и удаление программ" Панели Управления создаёт огромное пустое пространство. Что происходит?
Некоторые люди заметили, что некоторые программы приводят к тому, что апплет "Установка и удаление программ" Панели Управления создаёт огромное пустое пространство. Что происходит?
среда, 16 июня 2010 г.
Когда видимое окно невидимо?
Это перевод When is a window visible yet not visible? Автор: Реймонд Чен.
Сегодня - небольшая головоломка.
Посмотрите на такой код:
Ответ - ниже. Не читайте, если вы хотите попробовать решить загадку самостоятельно.
Сегодня - небольшая головоломка.
Посмотрите на такой код:
ShowWindow(hwnd, SW_SHOWNORMAL); Assert(IsWindowVisible(hwnd));Мы только что показали окно - конечно же оно должно быть видимо, да? Хотя проверка может выбросить исключение (даже в отсутствие многопоточности). Почему?
Ответ - ниже. Не читайте, если вы хотите попробовать решить загадку самостоятельно.
вторник, 15 июня 2010 г.
Корпоративная сеть Microsoft: в 1.7 раз хуже Ада
Это перевод The Microsoft corporate network: 1.7 times worse than hell. Автор: Реймонд Чен.
Сегодня я собираюсь рассказать вам историю из 1996-го. Почему? Потому что я могу.
Сегодня я собираюсь рассказать вам историю из 1996-го. Почему? Потому что я могу.
понедельник, 14 июня 2010 г.
Как запросить свойства панели задач
Это перевод How to query properties of the taskbar. Автор: Реймонд Чен.
Иногда люди спрашивают, как они могут запросить свойства панели задач. Я не понимаю, зачем им это надо; вы должны просто жить своей жизнью и позволить панели задач жить своей. В конце концов, у вас может и не быть панели задач.
Иногда люди спрашивают, как они могут запросить свойства панели задач. Я не понимаю, зачем им это надо; вы должны просто жить своей жизнью и позволить панели задач жить своей. В конце концов, у вас может и не быть панели задач.
воскресенье, 13 июня 2010 г.
Когда люди просят добавить в систему дыры в безопасности: кража паролей
Это перевод When people ask for security holes as features: Stealing passwords. Автор: Реймонд Чен.
Иногда люди просят добавить нас возможности, которые настолько очевидно являются дырами в безопасности, что я даже не знаю, о чём вообще они думают?
Иногда люди просят добавить нас возможности, которые настолько очевидно являются дырами в безопасности, что я даже не знаю, о чём вообще они думают?
суббота, 12 июня 2010 г.
Какие права доступа и привилегии нужны, чтобы изменить владельца объекта?
Это перевод What are the access rights and privileges that control changing ownership of an object? Автор: Реймонд Чен.
Смена владельца объекта (обычно: файла) сама по себе не сложна: вы просто вызываете функцию SetNamedSecurityInfo с новым дескриптором безопасности.
Смена владельца объекта (обычно: файла) сама по себе не сложна: вы просто вызываете функцию SetNamedSecurityInfo с новым дескриптором безопасности.
пятница, 11 июня 2010 г.
Что если две программы сделают это?
Это перевод What if two programs did this? Автор: Реймонд Чен.
Мысленный эксперимент "представьте, если бы это было возможным" является полезным, когда вы думаете, может ли Windows делать то или это (частным случаем этого эксперимента является "Когда люди просят дыры безопасности в качестве новых возможностей ОС"). Если эта возможность приводит к очевидным противоречиям или нарушениям общепринятых правил метафизики, то можете быть уверены, что Windows не поддерживает эту возможность (конечно же, отсутствие противоречий ещё не доказывает, что Windows поддерживает возможность. Но вы можете использовать это правило для отбраковывания очевидных плохих идей).
Мысленный эксперимент "представьте, если бы это было возможным" является полезным, когда вы думаете, может ли Windows делать то или это (частным случаем этого эксперимента является "Когда люди просят дыры безопасности в качестве новых возможностей ОС"). Если эта возможность приводит к очевидным противоречиям или нарушениям общепринятых правил метафизики, то можете быть уверены, что Windows не поддерживает эту возможность (конечно же, отсутствие противоречий ещё не доказывает, что Windows поддерживает возможность. Но вы можете использовать это правило для отбраковывания очевидных плохих идей).
четверг, 10 июня 2010 г.
Почему привязка к процессорам наследуется дочерними процессами?
Это перевод Why is processor affinity inherited by child processes? Автор: Реймонд Чен.
Посмотрите, почему типичная программа (программы-оболочки вроде Проводника не являются типичными программами) может запускать дочерние процессы. Потому что её текущая задача разбивается на подзадачи, некоторые из которых по каким-то причинам помещаются в отдельный (дочерний) процесс. Пример? Ну, скажем, многопроходный компилятор/линкёр, где каждый проход реализуется дочерним процессом.
Посмотрите, почему типичная программа (программы-оболочки вроде Проводника не являются типичными программами) может запускать дочерние процессы. Потому что её текущая задача разбивается на подзадачи, некоторые из которых по каким-то причинам помещаются в отдельный (дочерний) процесс. Пример? Ну, скажем, многопроходный компилятор/линкёр, где каждый проход реализуется дочерним процессом.
среда, 9 июня 2010 г.
Когда люди просят добавить в систему дыры в безопасности: молчаливая установка драйверов без цифровой подписи
Это перевод When people ask for security holes as features: Silent install of uncertified drivers. Автор: Реймонд Чен.
Вероятно единственным и самым большим источником "синих экранов смерти" в Windows XP являются глючные драйвера устройств. Поскольку драйвера работают в режиме ядра, нет никакой "высшей инстанции", которая следит за ними. Если код пользовательского режима впадёт в ярость и начнёт повреждать память - он просто повредит свою собственную память. Процесс рано или поздно вылетит, но система останется работать. С другой стороны, если в ярость впадёт код режима ядра (драйвер устройства), то он повредит память системы, и рано или поздно - она умрёт.
Вероятно единственным и самым большим источником "синих экранов смерти" в Windows XP являются глючные драйвера устройств. Поскольку драйвера работают в режиме ядра, нет никакой "высшей инстанции", которая следит за ними. Если код пользовательского режима впадёт в ярость и начнёт повреждать память - он просто повредит свою собственную память. Процесс рано или поздно вылетит, но система останется работать. С другой стороны, если в ярость впадёт код режима ядра (драйвер устройства), то он повредит память системы, и рано или поздно - она умрёт.
вторник, 8 июня 2010 г.
Почему я не могу убрать надпись "Только для тестовых целей"?
Это перевод Why can't I remove "for test/evaluation purposes only"? Автор: Реймонд Чен.
Почему я не могу убрать надпись "Только для тестовых целей"? Я знаю, что я работаю на бета-версии и не хочу, чтобы мне каждый раз швыряли этот факт в лицо.
понедельник, 7 июня 2010 г.
Поиск утечек памяти для бедных
Это перевод The poor man's way of identifying memory leaks. Автор: Реймонд Чен.
Существует множество различных утилит, способных помочь в поиске утечек ресурсов, но есть один метод, который не требует утилит, специальных настроек компилятора или библиотек поддержки: просто позвольте утечкам расти, пока их источник не станет очевиден.
Существует множество различных утилит, способных помочь в поиске утечек ресурсов, но есть один метод, который не требует утилит, специальных настроек компилятора или библиотек поддержки: просто позвольте утечкам расти, пока их источник не станет очевиден.
Почему Windows Error Reporting называется Доктором Ватсоном?
Это перевод Why is Windows Error Reporting nicknamed "Dr. Watson"? Автор: Реймонд Чен.
"Доктор Ватсон" - это ник для Windows Error Reporting. Откуда взялось это имя?
"Доктор Ватсон" - это ник для Windows Error Reporting. Откуда взялось это имя?
воскресенье, 6 июня 2010 г.
Как компания может получить доступ к данным Windows Error Reporting?
Это перевод How can a company get access to Windows Error Reporting data? Автор: Реймонд Чен.
Что происходит со всеми отчётами о вылетах программ, написанных не Microsoft, отправляемых через Windows Error Reporting (WER)?
Что происходит со всеми отчётами о вылетах программ, написанных не Microsoft, отправляемых через Windows Error Reporting (WER)?
суббота, 5 июня 2010 г.
Опасности игр с активацией окна во время обработки сообщения WM_ACTIVATE
Это перевод The dangers of messing with activation when handling a WM_ACTIVATE message. Автор: Реймонд Чен.
Фактически, это та же самая вещь, что и вчера, но только с активацией окна на месте смены фокуса.
Фактически, это та же самая вещь, что и вчера, но только с активацией окна на месте смены фокуса.
пятница, 4 июня 2010 г.
Опасности игр с фокусом во время обработки сообщения WM_KILLFOCUS
Это перевод The dangers of playing focus games when handling a WM_KILLFOCUS message. Автор: Реймонд Чен.
В прошлом году я указал, что сообщение WM_KILLFOCUS - не подходящее место для проверок корректности ввода. А вот ещё один пример, как игры с фокусом во время обработки WM_KILLFOCUS могут создать хаос.
В прошлом году я указал, что сообщение WM_KILLFOCUS - не подходящее место для проверок корректности ввода. А вот ещё один пример, как игры с фокусом во время обработки WM_KILLFOCUS могут создать хаос.
четверг, 3 июня 2010 г.
Почему анимированный логотип Internet Explorer хранит свои кадры вертикально?
Это перевод Why does the Internet Explorer animated logo arrange its frame vertically? Автор: Реймонд Чен.
Если вы пытались когда-нибудь делать свои логотипы для Internet Explorer, вы, конечно же, заметили, что кадры анимации упорядочиваются вертикально, а не горизонтально. Почему так?
Если вы пытались когда-нибудь делать свои логотипы для Internet Explorer, вы, конечно же, заметили, что кадры анимации упорядочиваются вертикально, а не горизонтально. Почему так?
среда, 2 июня 2010 г.
1/97: Действовать осмотрительно
Это перевод Act with Prudence. Автор: Seb Rose.
Из "97-ми вещей, которые должен знать каждый программист".
Из "97-ми вещей, которые должен знать каждый программист".
"Что бы вы ни предпринимали, надо действовать с осторожностью и рассматривать последствия" Аноним
Подписаться на:
Сообщения (Atom)