среда, августа 19, 2009

The Thin Ice (Тонкий Лёд)

Мама любит чадо,
И папа любит его.
И море тебе не бывает прохладным,
И небо светит синевой.
Ноооооо малыш,
Бееедный малыш

Поедешь если кататься
По жизни тонкому льду,
Под взгляд укоризный таскаться
У миллиона глаз на виду.

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

Не очень мне нравится пока что...слово "лёд" слишком часто повторяется, а последняя строчка выбита..Хотя,быть может,это просто перекочевало из оригинала.
Труднее всего пока мне даётся держаться с оригиналом рядом. У меня какой-то безумный талант коверкать смысл слов: третья строчка второй строфы была как "С укором тихим таскаться", что диаметрально противоположно нужному.Но я стараюсь.

вторник, августа 18, 2009

Firefox Minimalistic

Долгое время собирался сделать это как видео, но - лень.
Итак,

Как минимизировать интерфейс Mozilla Firefox

Firefox - очень хороший браузер, но очень перегруженный в интерфейсе. По сравнению с Google Chrome и Opera он вообще занимает своими панелями чрезмерно много места; на нетбуках это особенно заметно. Как же увеличить площадь рабочей области?
По счастью, Firefox - настраиваемый браузер (если бы не это, он бы был идиотской ненужной гадостью...Mozilla мало что делает для его функционала).Наведите курсор на панель инструментов, нажмите правую кнопку мыши и отключите всё, кроме строки меню и стандартной панели инструментов. После этого выберите пункт меню "Настроить..."
Теперь вы можете настроить интерфейс панелей. Для начала: всё, кроме стандартной панели мы уже отключили. Можете включить обратно, если оно действительно вам надо; лучше, если вы перетащите самое нужное на открытые панели. А ещё лучше - отказаться вообще.
Перетащите на панель меню: кнопки назад\вперёд, обновить, остановить, кнопку домашней страницы (если вы ей пользуетесь), кнопку новой вкладки и адресную строку (но не строку поиска).
Что мы получили? Получили упрощённый интерфейс. Адресная строка Firefox также служит поиском в Google (Yandex для версии 3.5+), когда не может распознать введённое вами как интернет-адрес.От других поисковых систем, к сожалению, придётся отказаться.На мой взгляд, потеря невелика.
Теперь можно отключить всё, кроме строки меню. Уже намного лучше, правда? Но адресная строка слишком мала, особенно на небольших мониторах. Есть способ исправить и это.
Скачайте дополнение Personal Menus. Оно мало, около 12 Кб. После перезагрузки браузера опять откройте окно настройки панелей инструментов и создайте новую панель; перенесите на неё всё, кроме панели меню.Теперь добавьте справа три новых кнопки: журнал, закладки и меню. Диалог настройки можно закрыть.
Отключите строку меню, оставив только новую панель.Откройте новую кнопку "Меню" и отредактируйте её. Добавьте туда всё меню программы, которые вы скрыли.
Что получилось в итоге? На одной строке уместился почти весь стандартный функционал Firefox (исключая поиск не в Google).Если у вас большой монитор, можете добавить туда ещё строку поиска и дополнительные команды с других панелей инструментов.
Думаю,вам понравится новый интерфейс. Во всяком случае, он намного удобнее для глаза и оставляет большую часть экрана страницам, а не браузеру.
Спасибо за внимание.

понедельник, августа 17, 2009

Действие или объект?

Продолжаю работу над новым квестом...тут я опять возвращаюсь к прошлой проблеме.
Со времён Z-машины существует простой алгоритм парсинга строки. Она делится на 3 части: действие, объект и уточнение. К примеру: "отрубить голову напильником".
Сразу же возникает первая сложность: русский язык формализован меньше английского. Наши люди могут это же сказать как "голову отрубить напильником", и "напильником отрубить голову", и "голову напильником отрубить", как и "отрубить напильником голову".Эти варианты каждый в своей мере приемлимы и - что самое важное - все грамотны.Таким образом, в парсинге строки порядок слов не важен.
Возникает интересная ситуация. С чего начинать? Искать ли первое слово строки по дереву объектов, чтобы выцарапать нужный и производить все действия уже над ним, либо делать классический разбор действия, затем уточнять объект и анализировать остаток строки?
Оба варианта имеют право на жизнь. Если мы идём со стороны объектов, то логично сделать систему объектов - наследуемую систему объектов. Так, мы находим объект "красный шкаф" - и мы знаем, что это уже как минимум, шкаф. Значит, ему присущи все свойства шкафа. Это тем более удобно, что объектно-ориентированное программирование вошло в нашу жизнь довольно давно и прочно.
Если же мы выбираем путь действия? Мы определяем в точности, что собственно от нас хотят - и дальше уточняем, к чему и как это применять. Этот подход классически императивен и использовался во многих известных квестах - но не стоит забывать, что многие известные текстовые квесты были сделаны годах эдак в 80-х.Проверка временем не всегда говорит в пользу выбора, скорее наоборот - современные подходы часто оказываются лучше.
И тут у меня лично встаёт ещё один выбор. Выбор языка. В настоящий момент я веду разработку на C++, так как на нём очень продуман механизм ООП. Но также у меня есть выбор Perl, и чем я ближе приближаюсь к парсеру, я сильнее склоняюсь в его сторону. Там очень просто получить строку, преобразовать из Unicode, разбить по словам, обработать. Можно вспомнить,что существует такая вещь, как mod_perl и мне не обязательно выполнять программу в виде CGI, а можно предоставить её для Apache...Идеально? Почти. В Perl нет никакого механизма ООП - одни "заглушки".
Ну, вот он и выбор: к чему писать костыли. Либо я собственноручно пишу (подключаю из недр Интернета) модули AVL-дерева, работы с Unicode, работы со строками, либо я пишу (на этот раз действительно пишу) кучу-кучу классов с интересным интерфейсом, ещё более интересным наследованием и совсем уже интересным механизмом инкапсуляции.
До сего момента я писал на двух языках, практически. Обкатывал алгоритм на Perl и доводил до ума на C++, спускаясь на более низкий уровень. Это позволяло решать проблемы проектирования чуть-чуть раньше, чем они действительно и неисправимо появятся, и немного отвлекаться от реализации очевидно-неважных структур (в первую очередь это AVL-дерево).
Кстати: если кто-нибудь знает, где достать исходники РУССКИХ квестовых движков, я буду очень признателен.Переводы с английского меня никоим образом не интересуют.Спасибо.

Постоянные читатели

Архив