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

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

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

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

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

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

И наоборот, примеры того, как делать ни в коем случае нельзя:
– Нельзя хранить весь пользователський профиль в одном файле, как это делает Миранда.
– Нельзя хранить весь контакт-лист в одном файле, как это делает 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ипает!

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

Phoenix Wright: Justice for All

Феникс Райт получил в своё распоряжение Mystic Eyes of Lie Perception. (Кстати, в имоте действительно упоминались эти глаза из Цукихиме; когда одна девчонка заявила, что распознаёт слабые места программы с первого взгляда, Куронеко издевательски присвоила ей звание Mystic Eyes of Bug Perception. Reference-heavy stuff, right there)

Phoenix Wright

Легендарная игра, породившая мем “Обжекшн!” и всякие смешные вещи, оказалась… квестом.

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

Когда соберёшь достаточно улик, начинается суд…(далее)

. Обвинитель вызывает свидетелей, те дают показания, и Феникс может делать обжекшн на любую фразу уликами. (Когда эльфы в лесу, то набигает обвинитель… можно защищать корованы)

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

Многие улики можно рассмотреть подробней, а поскольку пятая арка только для DS, то там ещё и покрутить в 3D. Чтобы снимать отпечатки пальцев, нужно насыпать порошку и подуть в микрофон, а специальным спреем обнаруживаются следы крови.

Но самое приятное – это милая графика и общая ламповость игры:

Кстати, в японском Феникс Райт носил имя Наруходо Рюичи. Но перевод сделали такой удачный, что европейские имена героев запомнились и кажутся идеально подходящими.

Скачать образ картриджа можно из торрентов (разумеется, купив легальную версию…), а эмулятором рекомендую пользоваться no$gba.

По эмулятору: внимание. Запустив эмулятор, непременно установите в настройках:
Options> Emulation setup> NDS Cartridge Backup Media: FLASH 256KBytes и ничто иное.
Затем нажмите Options> Save Options и перезагрузите эмулятор.

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

Ещё раз внимание. В эмуляторе no$gba функции Load Snapshot/Write Snapshot не работают, сохраняться можно только встроенными средствами игры, как описано выше.