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

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

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

Default Programs Editor

Как известно, начиная с Windows Vista пропали старые окна настройки действий для типов файлов, а вместо этого появился упрощённый настройщик, позволяющий выбрать только главное приложение, открывающее файл – так называемую “Программу по умолчанию”.

Между тем, дополнительные действия (Edit, Print, Set as desktop background) никуда не делись, и их тоже часто хочется перенастроить. Для этой цели рекомендую утилиту, которой сам только что воспользовался и впечатления остались приятные:

Default Programs Editor.

Она умеет всё и больше, что умел старый интерфейс Проводника, и при этом бесплатна. Жалко только, что не open source – значит, рано или поздно станет платной. Ну что поделать.

AniDB tool

Обновил AniDB tool, консольную утилиту для хеширования и добавления аниме на anidb.

Из интересного в обновлении добавилось распараллеливание работы. Медленных точек в программе три: таймауты AniDB (команды не чаще, чем раз в 2 секунды), чтение диска и вычисление хеша. Последнее – нагрузка на процессор.

С таймаутами AniDB сделать ничего не получится. Чтение диска тоже, в общем, не ускоришь, единственное, что можно сделать – это устранить любые промедления. Как только один кусок считывается, сейчас же надо начинать читать другой.

Для этого хеширование, обычно отнимающее примерно 30% времени, было вынесено из главного потока. Сам по себе MD5 вычисляется строго последовательно и параллелится очень плохо, однако хеш ED2k, который использует анидб, хоть и основан на MD5, но файл в нём разбивается на кусочки, каждый из которых хешируется, а потом от всех хешей берётся хеш. Поэтому хеширующих потоков можно сделать несколько.

К сожалению, так можно максимум устранить те самые 30%, поскольку чтение с диска всё равно никуда не денется.

Если здесь есть программисты, интересно, есть ли у кого-нибудь ещё какие-нибудь идеи, как процесс можно ускорить?

Всё должно быть файлами

Первое правило хранения пользовательских данных: всё должно быть файлами.

Букмарки, заметки, пароли, контакты, сохранённые игры, адреса серверов – каждый пункт списка должен лежать отдельным файлом, и если хранилище поддерживает группировку, то группы должны сохраняться как папки.

И наоборот, примеры того, как делать ни в коем случае нельзя:
– Нельзя хранить весь пользователський профиль в одном файле, как это делает Миранда.
– Нельзя хранить весь контакт-лист в одном файле, как это делает Remote Admin
– Нельзя хранить все заметки, контакты и букмарки в трёх файлах, как это делает Опера.

Почему нельзя?

Потому, что для файлов уже сделана куча полезных вещей, которые работают вне зависимости от содержимого. Например, вы можете вручную удалять и перемещать файлы. Объединять содержимое папок и синхронизировать их с помощью программ вроде Dropbox. Отправлять отдельные файлы по почте.

Всё это вы получите в подарок, просто если сохраните документы как файлы. Можно взглянуть иначе: все эти стандартные радости вы не отберёте у пользователя,если не решите хранить коллекцию документов в собственном приватном формате-архиве.

Дополнение.
Разумеется, лучше всего хранить данные не просто в файлах, а в текстовых файлах. В них легче находить изменения и другим будет проще работать с вашим форматом. Сейчас моден XML, но я бы не стал использовать его без прямой необходимости: достаточно текста, любого текста.

Ещё одно правило: все пользовательские данные должны храниться в %USERPROFILE%\AppData\YourAppName. Тогда они не только будут переноситься с компьютера на компьютер при включенных Roaming Profiles, их ещё и будут автоматически бэкапить вместе со всем профилем пользователя.

Играйте по правилам, и совершенно бесплатно получите огромное количество бонусов.

LastPass FAIL

На примере LastPass только что можно было убедиться, что дуракам не надо грабель, они на пустом месте лоб расшибут.

Что случилось:
Кто-то из LastPass заметил в логах подозрительные обращения к серверам. Не взлом, хочу заметить. Просто повышенную активность, которой они не нашли объяснения. В результате этой активности могла быть скачана пара сотен аккаунтов из миллиона.

На всякий случай цифрами: 100 из 1 000 000.

Эти скачанные аккаунты были зашифрованы, так что даже если они попали бы к злоумышленнику, никто не смог бы их прочесть! Тем более, что и злоумышленника, скорее всего, не было. В общем, как в игре Pandemic 2, на Аляске кто-то чихнул – SHUT. DOWN. EVERYTHING.

LastPass решили выпендриться и показать, как серьёзно относятся к безопасности.

Они заставили весь миллион пользователей сменить пароли.

Остановимся на минуту и сделаем то, чего не сделали в LastPass: задумаемся над последствиями. Чем чревата одновременная смена паролей всеми пользователями сервиса?

Ну во-первых, перегрузкой серверов. Что и произошло. Сервера LastPass весело легли и последние два дня почти не шевелятся. Из-за этого пароли сменить невозможно, а поскольку это требуется для продолжения работы, никто не может работать! А так как в LastPass хранятся все пароли, то десятки тысяч человек упорно долбят клавиши F5, всё повышая нагрузку на сервер.

Во-вторых, тестировать систему было некогда, и в результате у половины смена пароля не работает, а у другой половины работает, но данные перешифровываются с ошибкой. Таким образом, счастливчики, прорвавшиеся на взмыленные сервера, своими руками уничтожают всё своё хранилище паролей. И всё равно не могут продолжать работать.

И наконец, если загадочный хакер действительно взломал сервера LastPass, получил к ним доступ, и не знает теперь, что делать с зашифрованными данными, а тут все пользователи подключаются и шлют ему сначала свои старые, а затем новые пароли, как вы думаете, что он скажет?
Он скажет “Спасибо”.

Да и каким образом вообще могла смена пароля защитить от подбора старого, слабого пароля к уже скачанным данным? Украденное злоумышленником не перешифруется магическим образом новым, сильным паролем.

Из-за весьма ветренного подозрения на то, что 100 из 1 000 000 аккаунтов могли быть скачаны (при этом оставаясь зашифрованными и бесполезными), LastPass обрушил на несколько дней весь свой сервис, лишил десятки тысяч доступа к своим паролям и украл у них огромное количество времени.

Выпендрились, что я могу сказать.

Portal 2

Первый Portal в момент выхода был никому не известен – так, бонус на диске с Half-Life 2: Episode 1. Второй Portal ждали и насочиняли такого, что игре не под силу было все надежды оправдать. Тем не менее, она это как-то сделала.

Portal 2 очень длинный. До сражения с GlaDOS проходит примерно столько же, сколько в первом портале, но здесь это – треть игры. И каждая следующая часть не похожа на прошлую. Нигде не придётся “просто решать всё то же, что раньше”, постоянно – новые дизайны, подробности сюжета, игровые блоки.

(спойлеры)

Да, Portal – сказка. Алиса, падающая с GlaDOS в картофелине в кроличью нору. Или Дороти, падающая на повозке в подземные миры. Мы открыли эту книгу ради GlaDOS, но сказки так не работают, и перевернув последнюю страницу, мы помним не только циничный искуственный интеллект, а всех их – упрямого Кейва Джонсона, молчаливую Каролин, пустоголового Витли, безбашенные турели-брак и даже рабочих, готовых отдать свою жизнь за 60 баксов. (И ради науки, конечно).

Все они теперь часть сказки, все они в ней навсегда, как поющие деревья в облаках и злые глаза в пещерах Кирандии.

Едва ли Portal 2 мог бы быть лучше.

WordPress

Поставил себе WordPress на blog.boku.ru и настроил пока копирование туда постов. До чего же вордпресс удобен! Тут тебе и кеширование, и импорт рсс, и экспорт в любом формате, и свои темы, и нормальный CSS, и разметка постов какая в голову взбредёт.

Впрочем, съезжать с дайри я пока не собираюсь.

GTA4

Чего я не понимаю в ГТА4, так это почему, хотя все в игре гангстеры, я должен с ними ходить по каким-то развлекательным заведениям. Звонит герою двоюродный брат:
– Привет, Нико, поехали в паб.

Чё блин? В какой нафиг паб? Мы же бандиты. Поехали, аэропорт вместе захватим, я к нему давно присматриваюсь. Или поезд метро угоним… Аллё, Роман? Аллё? Почему минус один к дружбе с Романом?!

Стерео-видео

С помощью стереопроигрывателей можно запускать две копии фильма на одном экране. Все знают, как такое смотреть – сводите глаза к носу, пока не увидите чёткое “объединённое” изображение.

Но в чём смысл? Обе копии одинаковые, так что трёхмерности не получится, почему же “сведённая” картинка кажется живее, свежее исходной?

Я думаю, причина – в разрешающей способности глаза. Как и монитор, глаз тоже состоит из пикселей. Наш мозг “замазывает” расстояние между ними, так что мир вокруг никогда не пикселизуется, просто выглядит расплывчато. Но когда мы смотрим на две картинки, скося глаза, мозг “сжимает” их на виртуальном полотне, и плотность деталей увеличивается.

Поэтому даже старые 640×480 видео кажутся почти HD, когда смотришь их стереоскопически.

Раз так, почему просто не сжать окно с видео? Потому, что получится не то же самое. Во-первых, компьютер масштабирует видео цифровым образом, а это хуже получающегося в глазу физического масштабирования. Во-вторых, основная проблема – в детализации на глазе, а не в видеофайле.

Хотя мы этого и не замечаем, наш глаз принимает весьма ограниченное количество информации на квадратный миллиметр. Если мы сожмём видео, глаз не станет видеть его подробней. А вот растянув видео и скосив глаза, мы заставляем мозг собирать информацию по всей площади глаз, а потом сжимать её на маленький виртуальный квадрат, получая большую детализацию.

Добравшись до этого места, естественно задать вопрос: а есть ли разрешение у этого виртуального полотна?
Разумеется, есть. Оно создаётся нейронами, а нейроны раздельны. Но разрешение это больше разрешения глаза, чему свидетельство – трюки вроде проделанного.

Что-то я такое себе купил

i7 870 (4 ядра + HT, 2.9Ghz)
8Gb памяти (Kingston)
Gainward GTX560Ti
SATA RAID 0: 1Tb+1Tb

А также легальную Windows 7 Home Premium.

Сейчас буду проходить все игры, которые выходили за последние 4 года :)

П1ст 1 к2ави5е Fn

На к2авиатурах н1утбук1в ест0 такая к2ави5а – Fn… Ин143а 1на *а2ипает!

Задание на дом: придумайте запрос в гугл, чтобы узнать, как этот режим выключить. Разрешается использовать только клавиши левой половины клавиатуры.