24 мая 2013 г.

Git + кириллические имена файлов на OS X

Не ожидал, что в мире современного ПО могут быть проблемы с Unicode. Мне казалось, что все неприятности с кодировками закончились с приходом Unicode'а. Давно по крайней мере с ними не встречался. Но, как оказалось, git несколько некорректно работает с русскими именами файлов на Mac'е.

Есть у меня репозиторий, в котором я храню все свои заметки. Половина из них была написана в muse-mode, остальное в Markdown. Соответственно имена файлов с текстом содержат заголовки, содержащие кириллицу. Мне так удобнее. Ранее с таким подходом ни разу проблем не встречал.

И вот проблема на Mac'е. Все русские буквы в выводе git status отображаются в восьмеричном виде. И более того все файлы содержащие в именах кириллицу помечаются как untracked. Пример:

$ izonov:text izonov$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   "linux/2013-05-24 - Git + \320\272\320\270\321\200\320\270\320\273\320\273\320\270\321\207\320\265\321\201\320\272\320\270\320\265 \320\270\320\274\320\265\320\275\320\260 \321\204\320\260\320\271\320\273\320\276\320\262 \320\275\320\260 OS X.md"
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   "linux/2013-05-24 - Git + \320\272\320\270\321\200\320\270\320\273\320\273\320\270\321\207\320\265\321\201\320\272\320\270\320\265 \320\270\320\274\320\265\320\275\320\260 \321\204\320\260\320\270\314\206\320\273\320\276\320\262 \320\275\320\260 OS X.md"
#   .....

Вторая проблема (untracked файлы) решается достаточно легко. Подсмотрено в вопросе на Stackoverflow:

git config --global core.precomposeunicode true

После этого видим следующее:

$ izonov:text izonov$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   "linux/2013-05-24 - Git + \320\272\320\270\321\200\320\270\320\273\320\273\320\270\321\207\320\265\321\201\320\272\320\270\320\265 \320\270\320\274\320\265\320\275\320\260 \321\204\320\260\320\271\320\273\320\276\320\262 \320\275\320\260 OS X.md"

Решения отображения русских букв в git status я не нашел. Кириллические символы в именах новых и измененных файлов все равно отображаются в восьмеричном виде. Как вариант можно использовать git add -i. Там все символы отображаются в привычном виде.

P.S. [2013-05-28]: Вчера Konstantin Khomoutov подсказал, как решить проблему отображения русских букв в git:

git config --global core.quotepath false

23 мая 2013 г.

Evernote Web Clipper. Опять забыл пароль?

Довольно часто пользуюсь Evernote. Это действительно удобный инструмент для ведения заметок. Пользуюсь им с iPhone и через веб интерфейс с остальных систем (дом - Linux, работа - Windows). А теперь еще и оригинальным приложением для Mac'а пользоваться начал.

Все это к чему? Есть у этого замечательного сервиса казалось бы отличное дополнение для Firefox: Evernote Web Clipper. Но! После одного из последних обновлений он напрочь отказывается запоминать пароль и с жуткой периодичностью просит авторизоваться.

В Firefox на Mac'е подобные проблемы не наблюдаются. Логиниться часто не просит. Думаю это связано с тем что последнее обновление клиппера было установлено на чистый профиль.

Буду завтра на работе (до домашнего компа пока добраться не могу) пробовать установить Evernote Web clipper поверх нового профиля Firefox'а.

P.S. [2013-05-24] На работе поставил поверх чистого профиля клиппер. Он пароль вроде как перестал агрессивно спрашивать. Когда до стационарного компьютера доберусь, попробую найти файлы, которые надо почистить, чтобы профиль не менять.

22 мая 2013 г.

Xbox One. Впечатления

Во время написания вчерашнего поста одним глазом смотрел презентацию Xbox One. Похоже уже давним являюсь поклонником Xbox'а. Давным давно купил Xbox 360 пополам с сестрой. Веселая была история! Чтобы уговорить сестру на подобную сделку, был куплен специальный розовый джойстик. До этого я долго не играл на PC, так как снес Windows и погрузился в мир Linux. Было в общем не до компьютерных развлечений. После приобретения приставки я вернулся в новый для меня мир игр. Сейчас же играю в основном в хоккейчик, но и то редко.

Вернемся к Xbox One. Девайс однозначно крутой. Начинка его будет покруче всех моих девайсов вместе взятых. И видимо надо будет брать, если будет желание порвать всех в новом хоккейчике. А он то однозначно будет.

Не понравились некоторые маркетинговые и дизайнерские фишки. Например само имя "Xbox Единственный" (не знаю как лучше перевести. "Xbox Один"?). У меня по крайней мере сразу складывается впечатление, что вот он венец игровых технологий и лучше точно не будет. Привередливый я. Напомнило iPad New и следующий за ним iPad 4. Напридумывают всяких хитрых имен для устройств, а потом мучаются. Кстати почему Xbox 360 я тоже не знаю. Не интересовался.

Сам вид нового устройства с первого раза больше напомнил страшно сказать Play Station. Черный, квадратно-прямоугольный. Где элегантность предыдущих Xbox'ов? Также ожидал, что все поместят в одну небольшую коробочку, а в итоге их две. Сенсор Kinect снова в отдельной коробке. В принципе понимаю почему так сделали (удобнее и легче Kinect устанавливать отдельно над или под телевизором). Но было бы думаю круто иметь одну компактную коробку вместо нескольких. Надеюсь они общаются без проводов. Пропустил этот момент.

В джойстике порадовало, что кнопку Xbox передвинули подальше вперед. На старых (ох, они уже старые) контроллерах периодически случайно эта кнопка нажимается. И это уж очень мешает игре.

Можно заметить, что мои претензии достаточно мизерны. Это все последствия моего дурного вкуса. Но мой совет всем: надо брать. Чего только стоит устроить танцевальную вечеринку (Dance Central). Сколько с друзьями не собирались все в полном восторге. Xbox однозначно лучший продукт Microsoft (как бы я недолюбливал эту компанию). Если игры и компьютерные развлечения, то только Xbox.

21 мая 2013 г.

Macbook Air, блог и bash crash

Со вчерашнего дня решил писать по записи в день в данный блог, но умудрился уже проштрафиться. Просто напросто не успел. Этот план направлен на структуризацию своих мыслей. Хочу лучше понимать куда стремиться и чем лучше интересоваться, заниматься. Кроме того довольно часто начал сталкиваться с различными вопросами, решения которых не получается с первого раза найти в google (искать наверное разучился). Буду выносить все это дело в виде постов сюда. Постараюсь чтобы сюда попадали исключительно околотехнические темы. Остальное в Google+ или Twitter.

Итак начну с того, что любимая девушка подарила мне на день рождение MacBook Air. Поэтому с этого момента на данном блоге будут появляться посты посвященные и данному замечательному устройству, а также OS X (название блога видимо надо немного поменять). Все они будут помечены с помощью тега mac.

На Mac'е как раз и столкнулся с одной неприятной мелкой проблемой, которая несколько меня раздражает, но на данный момент я не знаю, как ее решить. Сразу же при получении этого девайся я начал устанавливать привычное мне консольное окружение. Для этого я использовал macports.

Настроил git completion и prompt, используя скрипты из git-core порта. Были установлены следующие версии портов:

  • bash 4.2.42_0
  • bash-completion 2.0_1
  • git-core 1.8.2.3_0

И теперь, время от времени после выхода из свящего режима, bash падает вот с такой ошибкой:

-bash(23573,0x7fff75972180) malloc: *** error for object 0x7fb1cb40c530: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug

При этом я не совсем уверен, что эта ошибка связана с bash-completion или git. Буду искать решение, но отказываться от completion и prompt совсем не хочется. Думаю попробовать bash из homebrew, ну или ручками собрать. Какие еще варианты? Куда копать на mac'е?

PS. Вот и ушло у меня пару часов на написание казалось бы небольшого текста.

P.S. [2013-05-25] bash все равно продолжает падать даже с выключенными completions и git-prompt. Происходит это стабильно раз в день.