I don’t like to post reviews. But this app is amazing! I use it more than 3 years and just want to share with you a list of my favorite features:

 

  • Split Panes - I started use iTerm2 because of it. Just press Cmd+d to split current panel. Cmd+Alt+Arrow to move between the panels
  • Search - Cmd+f to search throm commands and their output it work for the all session history
  • Inline images - seriously,  you can view images in your terminal. You need just to download ‘imgcat’ script and enjoy it
  • Download file from remote host - no need to use scp more, just ‘it2dl filename’ and it will download a file to ~/Downloads directory
  • Open list of most popular directories - Cmd+Alt+/ and select what you need. It’s real fast and useful
  • Restore the last session - no comments are needed here

P.S. Don’t forget to enable ‘Show Tip of the Day’ feature to enjoy more.

Useful links:

 

 

  • https://iterm2.com/documentation-utilities.html
  • https://www.iterm2.com/features.html


  • MacOS Case-Sensitive FIle System

    Published 1/13/2013 by e0ne
    Tags:

    Какое-то время назад, для меня было удивительно, что в Mac OS X, в отличии от Linux, стоит Case-Insensitive файловая система. Т.е. файловая система не чувствительная к регистру файлов и директорий. В большинстве случаев, это не причиняет вреда, но иногда приносит достаточно досадные проблемы. Что бы избавиться от этого можно либо создать раздел с Case-Sensitive файловой системой, либо создать временный (или не очень) виртуальный диск. Плюс второго способа в том, что этот диск будет храниться одним файлом и, при необходимости, если легко будет удалить.

    В Mac OS это делается с помощью встроенной программы Disk Utility:

     

    Такой небольшой диск прост в создании и использовании и дает возможность проверить работу приложения в более приблеженном к linux окружении (имеется в виду ошибки в путях к файлах и реозиториям).


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

    Собственно, проблема выглядит так:

    File "/home/e0ne/src/project/.venv/app/lib/python2.7/locale.py", line 496, in getdefaultlocale
    return _parse_localename(localename)
    File "/home/e0ne/src/project/.venv/app/lib/python2.7/locale.py", line 428, in _parse_localename
    raise ValueError, 'unknown locale: %s' % localename
    ValueError: unknown locale: UTF-8

    Проблема заключается в том, что для текущего сеанса шелла(bash, etc) не настроена системная локаль. Ошибка позникала как под Linux(Ubuntu, RHEL-based), так под Mac OS. Фиксится просто:

    Добавляем в ~/.bashrc следующие строки:

    export LANG="en_US.UTF-8"
    export LC_COLLATE="en_US.UTF-8"
    export LC_CTYPE="en_US.UTF-8"
    export LC_MESSAGES="en_US.UTF-8"
    export LC_MONETARY="en_US.UTF-8"
    export LC_NUMERIC="en_US.UTF-8"
    export LC_TIME="en_US.UTF-8"
    export LC_ALL=

    Вместо "en_US" нужно(можно) подставить нужное значение. Таже, можно выполнить эти строки в шелле и это будет работать до конца сеанса.


    После перехода на Mac OS X Lion многие приложения, которые нужно устанавливать с исходноков перестали компилироваться с примерно такой ошибкой:

     

    error trying to exec 'cc1plus': execvp: No such file or directory

    В список таких приложений попали macports, MacVim, питоновские библиотеки, которые имели расширения на C и т.д. Суть проблемы заключается в том, что Xcode 4.3 или предыдущая версия (Xcode'ом не польщуюсь, поэтому особо не слежу за апдейтами) начал ставиться со всеми зависимостями и тулами в другую папку, а именно в /Applications/Xcode.app/Contents/Developer/ вместо /Developer/. А так, как у меня стояла предыдущая версия, то новая, по каким-то причинам оставило старую как дефолтную. 

    Исправить это просто, достаточно выполнить одну команду:

    $ sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer

     


    Уже не помню когда у меня перестал ратотать клиент к mercurial (hg) - после перехода на Python 2.7 или апгрейда дла Lion. Но так, как я им не пользовался, то решил не тратить время на восстановлние работоспособности. Но тут на проекте решили использовать Mercurial в качестве source control. Соответственно пришлось разбираться с hg. Сразу скажу что установка последней версии проблему не решила.

    Шаг 1. Выполняем команду hg и получаем ошибку:

     

    $ hg
    abort: couldn't find mercurial libraries in [/usr/platlib/Library/Python/2.7/site-packages /usr/local/bin ...

    Тут понятно что клиент написан на Python и при запуске не может импортировать нужные модули.

     

    Шаг 2. Смотрим исходники:

    Выполняем команду

    $ sudo vim `which hg`

    и практически в самом начале файла (не считая комменатиев - 3-я строка) видем такую строчку:

    libdir = '../../platlib/Library/Python/2.7/site-packages/'

    Для тех кто знаком с расположением биболиотек, в частности Python'а, в MacOS сразу поймет что путь к Python указан неправильно, соответственно меняем его на:

    libdir = '/Library/Python/2.7/site-packages/'

    Шаг 3. Пользуемся mercurial:

     

    $ hg
    Mercurial Distributed SCM
    ...

     


    При установке пакетов psycopg2 и lxml easy_install радостно падал с криками:

     

    unable to execute gcc-4.2: No such file or directory
    error: command 'gcc-4.2' failed with exit status 1

     

    Вполне логично, т.к. gcc у меня не стоял :(. Странно только что в Snow Leopard все работало. Немного полазив по инету нашел, что gcc ставится вместе с XCode, который ставится бесплатно из Mac App Store. Но и это не сразу помогло. Ниже привожу список шагов, которые понадобились для установки gcc и psycopg2 после этого.

     

    1. Из Mac App Store устанавливаем XCode.
    2. Добавляем в переменную PATH путь к gcc: export PATH=$PATH:/Developer/usr/bin
    3. Чтобы работало после перезагрузки и для всех пользователей прописываем этот путь и в /etc/paths

     


    Первая попытка установить PostgreSQL на MacOS X потерпела крах. Пошел читать readme:

     

    Вспомнились танцы с бубном в MS Dos, чтоб тот увидел больше 640К оперативной памяти, работа с extension memory (привет Паскалю). А чего стоит знаменитая фраза одного известного всем человека, о том, что нам таки хватит 640К ОЗУ. А ностальгия скорее не о ДОСе, а о том, как раньше писал код (некоторые и сейчас так пишут): оптимизировали память так, чтоб лишнего байта не занимало. А как доставалось тогда Windows'у? Лишние лишние файлы, процессы, записи в реестре дезжалостно удалялись для прибавления 1-2 мегабайт свободной оперативной памяти и нескольких десятков мег на винте. А сейчас словил OutOfMemoryException, когда процесс IIS'а в виртуалке начал есть более одного гига... Завтра буду искать memory leaks...

     

    P.S. Интересный пост в тему DOS & .NET http://www.codeproject.com/KB/cs/ExpressionCompiler86.aspx