четверг, 19 ноября 2009 г.

Mistique. Chapter 1: Foetus



Mistique. Chapter 1: Foetus - это атмосферный квест-ужастик в трёх измерениях.
Очухиваемся в ванной комнате. В уши льётся гнетущий эмбиент.


Из освещения только искрящая электропроводка.
Ванна полна чьей-то крови и кругом кровавые отпечатки рук.
А на полу пентаграмма, начерченная опять же сами-знаете-чем.
Периодически являются видения каких-то призраков.
То девочка, похоже, сбежавшая, из фильма "Звонок", то какой-то жмурик из разбитого зеркала (а может это мы сами?).


Надо срочно выбираться из этого помещения. Дверь заперта, а ключа нет ни в карманах, ни в комнате.


Но, примерно за 20-30 минут, решив нехитрые загадки, дверь удаётся вскрыть.
На чём первая глава и оканчивается. А я с нетерпением жду продолжение.

P.S. Самому скрины делать пока нет возможности, поэтому погуглив взял первые попавшиеся.

среда, 18 ноября 2009 г.

BeamReader

BeamReader - это изумительная вещица.
Из всех испробованных мной PDF-читалок в маркете, а также втроенного в Hero, BeamReader пока обладает непревзойдённой скоростью рендеринга страниц, масштабирования и скроллинга.
Из отмеченных недочётов только невозможность масштабирования известным двухпальцевым жестом, но это претензия к гуглу и HTC.

пятница, 13 ноября 2009 г.

Интерактивное перебазирование в Git.

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

TortoiseGit - замечательный клиент Git для Windows, пожалуй даже лучший.
Одна из удобнейших фишек объединение нескольких локальных коммитов в один.
Корпоративная политика в настоящее время запрещает ставить Git и TortoiseGit на основную машину разработчика.
А, в отсутствие админских прав, на работе, я не могу установить TortoiseGit самостоятельно.
Клиент имеется в виртуальной машине. Но только для того, чтобы поправить пару коммитов, стартовать виртуалку как-то лениво и непрактично.
На прочих осях, с которыми я работаю, TortoiseGit отсутствует, а местные клиенты такой фишки не имеют.

Я давно знаю про команду rebase и ключик "-i".
Но у меня всё как-то никак не получалось увидеть список этих "pick", "squash", "edit".

Первый мой просчёт в том, что для удобства работы, в качестве редактора я использовал Notepad++.
По, надеюсь, покамест неведомой мне причине, сотрудничество Git и Notepad++ при перебазировании хромает и редактор открывается просто пустым.
Поэтому откатываемся к vim.

Второй недосмотр, что я периодически забираю изменения из SVN: git checkout master && git svn rebase.
Затем синхронизирую хакаемый бранч по: git rebase master.
Таким образом в интерактивном режиме у меня список операций всегда был пуст.
Но гит показывал, что всё равно исправно перебазирует все коммиты, которые я просил.

Оказывается достаточно сделать хотя бы один коммит после перебазирования и тогда уже можно делать
git rebase -i HEAD~хотьсто.
Небольшо хинт для тех кто с vim на "Вы". Чтобы автоматом заменить все pick на squash, переходим в командную строку, нажав ":" (возможно понадобится выйти в режим просмотра сначала).
Пишем там:
%s/pick/squash/
Теперь остаётся только заменить первый squash на pick.
Можно использовать сокращения: "s" и "p", соответственно.

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

Как говорится, учите матчасть ;)

среда, 11 ноября 2009 г.

Git для Cygwin и русские или другие национальные буквы в именах файлов

Сделал приятное открытие для себя.
Например,  представим такой сценарий:
Имеем репозиторий git, который только что создан с помощью git init.
Теперь мы хотим создать и добавить в репозиторий файлик "прочти меня.txt". И видим такую картинку:
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add ..." to include in what will be committed)
#
#       "\320\277\321\200\320\276\321\207\321\202\320\270 \320\274\320\265\320\275\321\217.txt"
nothing added to commit but untracked files present (use "git add" to track)

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

Если в .git/config в раздел [core] прописать:
quotepath = false
То происходит небольшое и ожидаемое, но всё-таки волшебство ;)
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add ..." to include in what will be committed)
#
#       прочти меня.txt
nothing added to commit but untracked files present (use "git add" to track)

 Приятной разработки и вам!