Категория: Компьютеры

Заметки о программировании и на околокомпьютерные темы

Вложенные категории: Delphi, Игры

Техблоги

Удивительно, почему The Old New Thing Реймонда Чена при всей его дотошности читается так легко и приятно, а Sorting It All Out Микаэля Каплана при кажущейся простоте – напрягает?

Кстати, Чен вообще рассказывает очень интересные вещи. Знаете, например, откуда у панели иконок рядом с часами название System Tray?
А вот откуда

А вот откуда.

Давным-давно, когда ёлки ещё были зелёными, а на компьютерах ещё стояли Windows 3.11 for Workgroups, Майкрософт делала Windows 95. “Проводник” – её оболочка, которую мы и по сей день лицезреем в Windows, – был наследником “Program Manager”-а из Windows 3.11. Program Manager был одной из двух оболочек Windows 3.11 (наряду с Explorer-подобным File Manager). Чтобы посмотреть на это чудо, нажмите “Пуск > Выполнить”, и наберите “progman”. Старикан дожил до наших дней – и был убит, но не до конца, только во втором сервис-паке к XP. Если у вас уже XP SP2, придётся обойтись картинкой.

Так вот, когда команда оболчки Windows 95 разрабатывала “Проводник”, они решили соединить в нём Program Manager (иконки програм) с File Manager (проводник по диску). Поскольку Program Manager висел в отдельном окне, чтобы переключиться на него, надо было раздвигать все открытые приложения. Команда оболочки решила это исправить. Они “прислонили” Program Manager к нижнему краю экрана так, чтобы новые приложения не закрывали его. В результате он всегда оставался на виду.

Ну а поскольку экран назывался “рабочим столом” (desktop), чья-то светлая голова решила называть эту штуковину снизу “поддоном” (tray, трей). Вроде как там, в поддоне, лежат ваши документы, а сверху, на поверхности стола, вы с ними работаете.

Однако время шло, и одни идеи сменялись другими. “Группы” и программы в них перекочевали из “поддона” во всплывающее меню “Пуск”, где они сейчас и находятся. Освободившееся место решили занять списком открытых окон, чтобы пользователь мог быстро между ними переключаться. В таком виде полоска снизу уже мало напоминала “поддон”, и её назвали “панель задач” (taskbar). Название “трей” благополучно забылось. Но!

Не до конца. Осталась утилита, системная утилита, которая запускалась и показывала рядом с часами иконки выбранного языка (RU/EN) и заряда батарей. Эта утилита была написана ещё тогда, когда панель задач называлась “треем”, и носила имя systray.exe (потому, что рисовала иконки для этого самомого системного трея).

Наконец, Windows 95 вышла. Панель задач в ней назвали панелью задач, а “место рядом с часами, где иконки” – “областью уведомлений” (notification area). Но программисты и админы, похоже, мало читали инструкции, а полагались на свою интуицию. Ежу понятно, – рассуждали они,  – что раз программа systray.exe рисует иконки рядом с часами, значит эта область около часиков и называется System Tray.
Так и повелось. Теперь, сколько Майкрософт не борется, трей называют именно треем (хотя изначально “треем” было совсем даже не это, а панель задач)

.

Ещё я читаю Джоэля Сполски, только редко.
А какие технические блоги читаете вы? Можно не только компьютерные, скорее – по своей профессии b-)

.NET CF

Не знаю уж, о какой совместимости платформ мечтали в Майкрософт, создавая .NET Compact Framework, но совместимость у них получилась единственная: никакая.

То есть да, конечно, теоретически .NETCF-код, написанный для КПК, прекрасно запускается и на обычном компьютере. Теоретически.

На практике как только речь заходит о чём-то большем, нежели “навесить на форму кнопку и радоваться”, совместимость летит к таким чертям, что просто страшно становится.

Ну например.Ну например.

В обычном .NET Framework клавиши PageUp – PageDown считаются “особыми”, управляющими клавишами, и сообщения об их нажатии приходят отдельно от общего потока, в особый обработчик. Впрочем, такое поведение можно отключить, для чего у Control есть специальный флаг.

Поскольку .NET CF это, как бы, урезанный Framework, в нём такой особой обработки нет. Все клавиши всегда приходят в основной обработчик. Здорово, великолепно, я готов это пережить, и писать код с этим учётом, чтобы он работал на обеих платформах. Но он не будет. Потому, что реализация Compact Framework на персоналке, разумеется, базируется на обычном Framework. Разумеется, она тупо обрезает все “лишние” свойства. Разумеется, она не устанавливает флаг “обрабатывать нажатия системных клавиш на общих основаниях”. Поэтому сообщения о нажатии системных клавиш на PC просто никуда не приходят. Они должны были бы приходить в особый обработчик, но в CF нет этого особого обработчика. Тогда их можно было бы перенаправить в общий обработчик (и на PocketPC они туда и идут), но на обычном компьютере этого никто не сделал.

Браво.

ICFP

Благородные дамы и господа,
20-23 июля 2007 года будет проходить десятый международный конкурс по функциональному программированию ICFP. Это невероятно увлекательное, интересное и умное мероприятие. (Подробнее)Например, в прошлом году задание было следующим:
1. Скачать 12-мегабайтный файл.
2. Написать интерпретатор виртуального ассемблера по заданным спецификациям.
3. Запустить на нём файл. Выясняется, что это сборка линукс-подобной системы.
4. Обнаружить в системе шесть аккаунтов пользователей.
5. Различными методами взломать все шесть.
В каждом случае внутри аккаунта находятся некие остроумные задания. Например: билд текстовой квест-игры, которую необходимо пройти. Для этого надо быть либо гением от квестов, либо написать программу автоматического прохождения.
Под другим аккаунтом валялся прототип графического языка программирования, код в котором задаётся рисунками блок-схем в ASCII-графике. Необходимо было решить несколько задач на этом языке.
На языке программирования в ASCII-графике под собственноручно написанной виртуальной машиной.
Поверьте мне, это сплошное удовольствие.

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

Язык программирования – любой. Можно несколько.
Буде здесь таковые найдутся – приветствую.

Исскуство программирования

Книги по программированию принято называть как-нибудь так:

Искусство программирования на C++

Искусство написания программ для DirectX

или даже

Искусство работы на компьютере


Притом обычно книги, в которых речь идёт действительно об исскустве, называются совсем не так, а как-нибудь совсем по-другому. Например:

The Old New Thing.


Исскуством” же “чего-нибудь” обычно называют книги, которые следовало бы назвать “C++ для чайников”, “DirectX для чайников” и “Компьютер для законченных идиотов”. Под “исскуством” в них подразумевается понимание того, в какой руке держать кисточку, и как совершать ей махательные движения, чтобы наносить краску на холст.

О написании “Моны Лизы” там речи не идёт.

Наблюдение недели

Хвалебные отзывы в адрес STALKER: Shadow of Chernobyl, оказывается, не дань уважения семи годами его разработки. Игра в самом деле очень увлекательна.

И кто-то ещё говорит что-то о дырах в XP

Ради обеспечения безопасности данных каждому из работников выдаются доменные логин и пароль.
Среди негласных обязанностей работника – предоставлять эти логин и пароль любому желающему по первому требованию, чтобы ускорить производственный процесс.
В случае отсутствия работника на рабочем месте предоставить его логин и пароль может системный администратор. Для этого у него существует бумажка, на которой записаны логины и пароли пользователей. Бумажка выдаётся всем желающим.
На этой же бумажке указаны все рутовые пароли и пароли администраторов домена.

Браво, Microsoft

В Windows Vista добавлена такая вещь, как “рейтинг компьютера”. Система прогоняет несколько нехитрых тестов на скорость работы процессора, памяти, видеокарты и жёсткого диска, после чего выбирает худший результат, и объявляет его “уровнем вашего компьютера”.

Я было, грешным делом, подумал, что этот дурацкий механизм предназначен для производителей игр, чтобы те могли вместо системных требований писать “требуемый уровень компьютера – 4”. Ошибочка. Похоже, замах был шире. Теперь фирмы, продающие компьютеры “в сборке”, уже не смогут набивать внутрь самое дешёвое барахло, как это принято. Даже тупой из тупых придёт домой, запустит систему, и обнаружит, что “циферка-то маленькая”, хотя названия у комплектующих и громкие.

Очень хороший ход. Вместо того, чтобы пытаться научить дураков думать головой, покупая компьютер, Майкрософт обернёт их глупость против поставщиков. Поди объясни клиенту, что “видеокарта крутая”, когда “система ставит ей двойку”. Упрётся рогом, и ни в какую – “система так пишет”! Наживаться на ничего не понимающих в компьютерах покупателях у поставщиков больше не получится.

Opera 8

На такой торжественной ноте взял и поставил себе Opera 8
Да, правильно. “Еще больше, еще лучше, еще быстрее”.

Импорт всего из Opera 7:
Bookmarks: Opera7> Export Bookmarks; Opera8> Import Bookmarks
Contacts, Mail, Notes: Ctrl-C; Ctrl-V; на папках/файлах \mail; \profiles\notes.adr
Подробнее

Opera versus Firefox

Ничего не понимаю.
В очередной раз натыкаюсь на блог человека, прославляющего Firefox.
При этом проводятся всяческие гордые сравнения с IE, и наглядно демонстрируется, что Firefox “не в меру лучше”.
О том, что на свете существует Opera – обычно умалчивается.

Если честно, несмотря на широкую рекламную кампанию, и повсеместные крики о том, что пришел Firefox, и всех зарулил, после беглого ознакомления с Firefox у меня возник только один, единственный вопрос:
А зачем это нужно, если есть Opera?
Зачем нужен Firefox, если все, до последней составляющей, в Опере сделанно на порядки лучше и приятней?
Ну хорошо, расширения – это круто. Еще что?

Та же фигня с Gmail. Сам являясь обладателем ящика на gmail, до сих пор не могу понять, зачем он нужен. И чем он лучше, например, mail.ru?
И чего в нем такого “революционного”? Ящик как ящик, с очень плохим, к слову, доступом по POP3.

POST, NTLDR, далее везде

Флеш-ролик, 4Mb, подробно рассказывающий о процессе загрузки компьютера и NT-системы.