Поставил семёрку. Любопытно. Местами побыстрее, чем Виста, хотя грузится почти столько же. Новая панель задач удобна, уже успел оценить. Во всяком случае, система заслуживает внимания. Поработаю пока в ней, посмотрю ещё.
Категория: Компьютеры
Вот предложение по усовершенствованию таскбара. Очень удобное, между прочим. Должно быть два таскбара: один сверху, устроенный как Opera Tabs (т.е. все кнопки видны, нажатие разворачивает приложение на весь экран), и один снизу – обычный таскбар (куча кнопок, группируются, нажатие перекидывает кнопку в табы).
Таким образом, активные приложения всегда наверху, и между ними легко переключаться. Каждое открывается, как таб, на весь экран. Если же его свернуть, оно попадает в неактивный список внизу экрана: лишние приложения не будут загромождать место на “активном” таскбаре, но будут всегда доступны при необходимости.
Об анинсталлерах
Одно из самых жутких, заброшенных и тоскливых мест Windows – это управление приложениями. Целиком мне сейчас о нём говорить не хочется, скажу только об одном аспекте: об анинсталле. Как он устроен – это дичайший бред. Попробуйте удалить несколько случайных продуктов на системе, которая проработала пару лет!
Не найден msi-файл установки, удаление невозможно.
Пропал компонент приложения, удаление невозможно.
Кто-то перезаписал мою регистрацию, удаление невозможно.
Кто-то вручную удалил с диска файлы, удаление невозможно.
Да нет конечно же! Это лентяи-программисты заставляют пользователей плясать под свою дудку. Вместо того, чтобы подумать головой и написать нормальный деинсталлятор, они предпочитают переваливать все проблемы на плечи пользователя. Нет уверенности, что мы удалим всё? Ну так не будем удалять ничего! Пусть пользователь сам разбирается.
Удаление, уничтожение, очистка – это операции, которые должны выполняться “наилучшим возможным образом”. Т.е. в каждой ситуации должен удаляться абсолютный максимум того, что можно удалить. Если каких-то файлов уже нет – удаляем те, что остались. Если установочного пакета нет – ладно, удаляем хотя бы то, о чём сохранились записи. Не сохранилось записей – удаляем хотя бы то, о чём можно догадаться без них.
Ошибок в этих операциях не должно существовать в принципе. Они должны выполняться всегда.
В качестве бонуса: этот же принцип относится и к деструкторам объектов в программировании. Деструктор должен работать всегда. В каком бы состоянии не находился объект, деструкция, деинициализация, и вообще всё, что угодно, с приставкой “де-“, должно игнорировать ошибки и удалять всё возможное.
Это не значит, что надо ловить в деструкторе все ошибки и затыкать им рты. Если ошибка уже случилась, её, как обычно, нужно вывести пользователю. Просто деструктор должен быть написан так, чтобы выполнять максимум без ошибок даже в неизвестных обстоятельствах. Например, даже если деструктор у вас вызывается единожды, и lpMyObject всегда существует, нужно писать:
if (lpMyObject != NULL) {
FreeMyObject(lpMyObject);
lpMyObject = NULL;
}
Хорошая практика – это чтобы ваш деструктор можно было вызвать на любом этапе жизни объекта, и он успешно выполнился бы. Даже в середине конструктора. Даже в процессе выполнения какой-то критической функции. Потому, что деструктор не может позволить себе вызывать исключения: его самого, вероятно, вам придётся вызывать, если вы надеетесь программно обработать какие-то исключения. Следовательно, деструктор уже должен быть готов обрабатывать исключительные ситуации.
Хостинг
Опытным путём установлено, что хостинг бывает двух видов:
1. Именитые надёжные хостеры, которые брать меньше 100 рублей в месяц считают ниже своего достоинства. Даже за ерунду. Даже за “просто пальчиком потрогать”. Деньги! На бочку! Неважно, что бесплатные неограниченные почтовые ящики можно заказать у гугла. У нас они стоят денег! Много денег! Ведь гугл не хостит сайты, а мы хостим. Монополия… Ах, как приятно звучит это слово… Ах, как… Простите, о чём это мы. В кассу, пожалуйста.
2. “Начальство сказало предоставлять хостинг, значит, предоставим хостинг. Все покупайте наш Хостинг! Наш Хостинг самый Лучший Хостинг! Клипарт с улыбчивым дядей не даст соврать. Наш сервер стоит у нас в серверной и круглосуточно поддерживается! На нём установлен LINUX SERVER. Регистрация under construction, но вы пишите на klienty@ultra-line-resheniya.ru, мы договоримся.”
Об альтернативных способах ввода
Билл Гейтс любит гадать на кофейной гуще, предсказывая будущее. В последний раз он, кажется, заявил, что будущее за тачскринами. А вот как на самом деле:
Тачскрин – никогда и нигде не будет популярным средством ввода. Наши руки привыкли работать с объёмными предметами, которые можно ощупать, дёрнуть, нажать. Вазюкать ими по холодному стеклу – просто предел мечтаний футуриста-идиота.
Голос – тоже не будет. Печатать быстрее, чем диктовать. В общественном месте, да и дома, разговаривать неудобно. И вообще, клавишами управлять быстрее. Голос, однако, незаменим в играх – об этом я раньше писал, но пост искать лень.
Рукописный ввод – только для математических формул и нот.
Попытки перенести в компьютер “привычные” средства ввода (голос и рукопись) сродни попыткам выдалбливать на бумаге наскальную живопись.
Связи
Удобство использования библиотеки зависит от связей. Мы это видели дважды: один раз сам интернет оказался удобен из-за гиперссылок, другой – Википедия покорила всех именно способностью привязывать к каждой вещи всё-всё-всё, что хоть как-то с ней связано.
В MSDN сейчас больше всего нехватает связей. “Эта статья на других языках, для других версий Windows, в других выпусках Visual Studio”. По двадцать похожих статей – и никаких связей.
О USB 3.0
Скорость USB 3.0 – в десять раз выше старой. Но максимальная длина кабеля – три метра, и он толстый. Кроме того, коннекторы из простых “воткнул – работает” превратились в сложные конструкции с несколькими слоями контактов.
Сдаётся мне, интерфейс USB повернул куда-то не туда. Лучшим в нём всегда была простота.
Вот кто, интересно, выдумал класть программы в “Program Files\Company Name\Application Name“? Хотел бы я посмотреть на этого идиота.
Мало того, что для нахождения программы нужно вспоминать ещё и имя её разработчика (а кто его помнит?). Мало того, что компании меняются, а программы остаются (флеш, например, был вначале Macromedia, потом Adobe; Delphi – вначале Borland, потом Inprise, опять Borland, CodeGear и Embarcadero; почти любая крупная игровая серия сменила пару разработчиков).
Самое главное, что в такой группировке нет никакого смысла. Это пример ложной общности. Программы роднит вовсе не принадлежность к одному издателю, а схожесть функций. Если у меня есть пять игр Myst, я хочу их видеть в папке “Games\Myst” или “Games\Quest\Myst”, а не “Cyan”, “Presto”, “Ubisoft” или “Broderbund”. Особой весёлостью отличается пятый Myst, который кладёт себя в папку “Ubisoft\Cyan\Myst V”. Спасибо, очень приятно чувствовать себя декодирующей машиной.
Кто-то может сказать, что в папку “Program Files” обычному юзеру лазать не полагается. Охотно верю. Откройте “Пуск”! Откройте, откройте. Там та же самая фигня. “Пуск -> Программы -> Имя паблишера -> Имя разработчика -> Название игры”. И это при том, что от одного разработчика редко найдётся хотя бы тройка игр! Чего уж говорить о паре “разработчик – паблишер”.
Психбольница во всём цвету.
Как дополнительный бонус: группировка по компаниям не избавила нас даже от длинных названий программ.
“Microsoft Office -> Office Applications -> Microsoft Word”.
“Microsoft Visual Studio 2005 -> Visual Studio Tools -> Visual Studio 2005 Remote Debugger”
В переводе с менеджерского на русский это значит:
“Microsoft Office -> Word” и
“Microsoft Visual Studio 2005 -> Tools -> Remote Debugger”
Да, кстати
Меня раздражает любовь виндов класть папки от апдейтов прямо в \WINDOWS. Так здорово наблюдать в ней двадцать штук папок вида $NtUninstallKB123456$!
Ну неужели нельзя было завести для этого отдельную папку?
Ещё о том, что требует срочного исправления:
1. Должна быть общая, стандартная, единственная система установки приложений. В ней всё должно быть предельно точно описано: в каком ключе реестра хранятся какие сведения об установке, в каких папках – какие временные файлы.
Все старые инсталляторы должны работать исключительно через слой совместимости, который подбирал бы раскиданное ими по различным папкам барахло и складывал его в папочку “Installed Applications\AppName\Compability”. Задолбало смотреть, как пятьдесят различных инсталляторов складируют барахло в пятидесяти различных местах.
2. Кто-то должен разобрать все подпапки винды, и выкинуть половину. Потому, что обычная практика заводить по папке на каждое приложение. Или даже по нескольким.
Чего нехватает инсталляторам
…так это странички со вступлением.
“Вы устанавливаете Stochastic Lab Archim, программу для построения двух- и трёхмерных графиков математических функций”.
А то комедия сплошная, лицензионное соглашение всегда покажут, а что устанавливается – одному чёрту известно. Считается, видимо, что файл установки используется лишь однажды, сразу же после скачки, когда пользователь ещё помнит, что он такое скачивал.