Archive for Март 2010

Автодополнение ssh хостов

Март 31, 2010

Автодополнение хостов ssh — это благо, особенно, когда их набивается достаточно много. Одной из хороших подсказок является создание файла ~/.ssh/config с примерно таким содержанием:


Host        myhost      # Имя хоста
HostName    server.com  # Это удаленнй хост
User        username    # Пользователь на удаленном хосте
Port        22222       # Номер порта

Этот файл является очень хорошим подспорьем, особенно если вы устроили коннект по ключу. Тогда запоминать надо только пароль от ключа и имя хоста из нашего конфига. Но иногда и этого бывает не достаточно. Точнее уже бывает лень набирать даже ssh myhost и хочется автодополнения. На этот случай можно поискать в интернетах скрипты bash ssh autocompletion, но они все опираются на файлик known_hosts, а мне хотелось бы чтобы автодополнение шло по именам из конфига. Нет ничего проще. Стоит добавить пару строк к себе в ~/.bashrc или ~/.profile:


# SSH Auto Completion of Remote Hosts
complete -W "$(echo `cat ~/.ssh/config | grep '^Host ' | colrm 1 5`)" ssh

Реклама

Vim на Mac Os X 10.6

Март 18, 2010

Если не сильно заморачиваться, то в поставке Os X уже есть вим. Но он там сильно урезанный и работать в нем подолгу просто не реально. Хотя бы потому, что он собран без поддержки GUI, а значит никакие красивые темки (с помощью CSApprox) вам установить не удастся. Ну а без темок жизнь не жизнь и работа не работа.

Добрые люди собирают приложение под нехитрым названием MacVim, которое представляет собой обычное GUI-Vim типа GVim. Но, к сожалению, вы не можете использовать его в коммандной строке (можете, конечно, но об этом позже), но самое главное, что вам не дают свободы при конфигурировании, например включить интерпретаторы питона и руби. Поэтому все приходится делать самому, благо на сайте приведена подробная инструкция по сборке, так что ошибиться особо не получится. Для ленивых вот ее краткое содержание


1. git clone git://repo.or.cz/MacVim.git vim7
2. cd vim7/src
3. ./configure \
--with-macarchs=i386 \
--with-features=huge \
--enable-pythoninterp \
--enable-rubyinterp \
--enable-cscope \
--enable-multibyte \
--enable-gui \
--with-macsdk=10.6
4. make
5. open MacVim/build/Release/MacVim.app

Таким образом, мы получаем наш любимый Vim таким, каким мы хотим его видеть. В данном случае, это 32-битный билд, с питоном, руби, cscope и GUI. Что ж еще для счастья надо! А надо, чтобы можно было стартовать его из коммандной строки, причем иметь порядочный терминальный вим, а не окошечный =) Нет ничего проще. Для начала стоит скопировать MacVim.app в папку /Applications и в файл ~/.profile стоит добавить одну строчку:

alias vim=/Applications/MacVim.app/Contents/MacOS/Vim

Все, теперь ничто не помешает поставить все любимые плагины и темку RailsCast =)

Стоит добавить, что для корректной работы Vim его необходимо запускать не в стандартном Terminal, а в iTerm

TextMate. Дополнительные бандлы

Март 17, 2010

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

Project+

Начать хочется с ProjectPlus, который является надстройкой для более удобной работы сайдБара. Он заменяет текстмэйтовский drawlwer на привычный и логичный sidebar. Возможно, это шаг в сторону от изначальной задумки, но мне так удобнее. Помимо этого, он привносит несколько дополнительных опций в контекстное меню сайдбара, позволяет следить за файлами под SCM (Git, SVN, Mercurial, Bazaar) и сохраняет состояние дерева проекта при выходе. В общем вещь полезная для организации жизни.

GetBundles

Второй незаменимый плагин — это getBundles, который позволяет наиболее комфортным образом инсталлировать дополнительный бандлы прямо из репозиториев разработчиков. При этом можно добавлять эти репозитории и он забирает из них то, чего нет в основном. Эдакая система менеджмена пакетов для текстового редактора =). Без него придется постоянно клонировать репозитории руками для установки дополнений. Полезен и прост в использовании. Главное – не перепутайте его со старым и забытым getBundle, а то будете удивляться зачем вам это посоветовали, ведь оно как-то не работает =)

Ack in project

Ack — это магия Perl. Штука, которая быстрее grep и предназначена для поиска по исходным кодам (это с их сайта, может по протым текстам им религия не позволяет искать, я не знаю =). Для начала стоит установить сам бинарник куда-нибудь, например в /usr/local/bin (не забыть выставить права на исполнение, ну и переименовать его в ack). Можно так же установить его из CPAN или MacPorts. Далее ставиться бандл Ack in project (проще всего через getBundles) и по Cmd+Shift+A у вас появляется окошко, сильно похожее на поиск. Но преимущество Ack проявляется на действительно больших объемах исходников. Там где Find, встроенный в TextMate просто повисает на произвольное число минут. При этом результаты выдаются прямо по мере нахождения. Незаменимая вещь для больших проектов.

Zen Coding

ZenCoding — это плагин для скоростного написания html и css. Плагин был изначально на снипетах текстмэйта, но потом его переписали в один большой питоновский скрипт, который теперь можно приделать к довольно большому числу редакторов. По сути ЗенКодинг позволяет писать html методом css-селекторов =) Синтаксис того, что вы пишете чем-то похож на haml, ну а в результате получается вполне обычный html. Автор этого бандла ведет очень приятный блог.

TextMate. Причины использования

Март 17, 2010

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

Сразу оговорюсь, что я рассуждаю о выборе редактора для удобной работы с обычными веб-языками (php, ruby, python). Когда живешь под линуксом и не используешь всю мощь Vim или Emacs, не подружился с jEdit (который по слухам очень хорош для разработки на surprise-surprise! Java), то остается только Eclipse. Причем кто-то может по ленности сразу взять Aptana, которая по заверениям ее самой прекрасна для php, python и ruby. На мой взгляд, при всех достоинствах этого редактора, построенного на Eclipse, у него плохая совместимость с плагинами для самого эклипса. Поэтому если уж использовать эклипс, то в чистом виде, доставляя куски аптаны(тот же PyDev и RadRails). Для эклипса существует огромное число интересных плагинов, но это уже тема другой статьи =).

На маке эклипс выглядит немного чужеродно и ведет себя не очень хорошо. Not a good citizen. Это все проистекает из самой идеи Java, которая везде одинаковая, а следовательно сама по себе. Ну и какой-то неповоротливый он, но это его фишка уже. Зато на маке полно других смешных редакторов. Я, признаться, был лояльно настроен по отношению к TextMate, поэтому сразу стал осваивать его, но краем глаза видел красиви Espresso, который мне достался в комплекте с MacHeist, но это такой детский редактор. Для очень позитивных html-верстальщиков или типа того. Совсем не для программистов, хотя со своими интересными задумками.

Вообще при выборе любого «инструмента» надо думать о его возможностях и удобстве расширения и настройки. С этой точки зрения Vim и Emacs являются признанными лидерами. Вы редко услышите «мне уже не хватает Vim для ежедневной работы», потому что всегда можно сесть и на встроенном языке реализовать то, что вам необходимо. Их возможности действительно поражают, посмотрите какие-нибудь подкасты от джедаев этих редакторов, чтобы поразиться тому, что происходит с текстом под их умелыми пальцами. Проблема в них в том, что надо потратить реально много времени на освоение. Как писали на Stackoverflow, «я использую vi и vim уже 20 лет и все еще узнаю что-то новое».

В этом отношении TextMate намного проще. У него ненавязчивый интерфейс, который позволяет сразу начать редактировать тексты, и при этом неописуемое число возможностей. Мануала на его сайте хватит на первое время. Если хочется почитать книжку, то можно купить или найти TextMate: Power Editing for the Mac, в которой все довольно подробно описано. При этом надо понимать, что что-нибудь читать придется в любом случае, иначе вы рискуете просто не использовать этот редактор даже на 10%. На этом вводная часть заканчивается. В следующей мы поговорим про самые интересные бандлы, а дальше — посмотрим.

И да, кстати, этот текст подготовлен и опубликован прямо из TextMate =)

Такие разные ОС

Март 16, 2010

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

За свою не самую долгую компьютерную жизнь я перепробовал все основные платформы. Начал с Windows, как и многие из обычных пользователей. Постепенно увлекаясь программированием, я понял что это не лучший выбор, к тому же мне как-то расхотелось воровать софт и я перешел на Linux. Сначала долго читал (подшивка LinuxFormat), выбирал дистрибутив, потом долго пробовал (SuSe, Fedora и даже за пару дождливых дней собрал LFS и, в итоге, остановился на Ubuntu, как на наиболее понятном и действительно дружественном дистрибутиве (дружественный он в том плане, что очень много пользователй и в гугле просто искать ответы). За скоростью я не гнался, поэтому Gentoo и Arch я не рассматривал. Мне просто нужна была удобная среда, которую не надо пилить напильником для любого действия (но если хочется, чтобы всегда было что попилить). Ubuntu казался наиболее подходящим под это определение (ну и диски они рассылают красивые =).

На тот момент я мог любому доказать, что «винда поганая» — это не для людей, а макос просто не нужен, потому что не интересно. Напильник был моим любимым инструментов, времени, видимо, было навалом и всякие «75 способов ускорить ваш любимый дистрибутив» вызывали во мне тонны энтузиазма. Потом я как-то начал посматривать в сторону макоси. Сначала искоса, через всякие скины, иконки (грешил макофильством, по определению ЛОРа), потом установкой хакинтошей и покупкой клавиатур. Закончилось все покупкой ноута и полным безоговорочным счастьем.

Сейчас, по прошествию полутора лет моей жизни на маке, я могу констатировать свое нежелание использовать другие правильные ОС. Просто я не вижу ммм…необходимости менять его на что-то. Виндой я начал пользоваться, потому что она на тот момент была везде и только бородатые одмины знали, что есть что-то кроме нее, линуксом потому что напильник рвался в бой и чесался, а маком потому что мне надоело думать про ОС и хотелось просто работать.

Собственно, так и разделяются пользователи в массе своей. Винда — это мэйнстрим, линукс — удел гиков и им сочуствующих, а макос — удел неформалов, желающих выделиться и тех, кто хочет просто работать.

Конечно, если бы моя программерская деяттельность была связана с разработкой виндовых приложений, то все могло бы сложиться иначе, или если бы я подсел на написание софта под никсы. Сейчас я вспоминаю, что основной причиной, которую я озвучивал при переходе на макос было желание разрабатывать под iPhone. Год прошел, желание осталось желанием, а Ватсон без трубки уже не мог =)

Поэтому я не призываю никого никуда переходить и не говорю, что под макосом самый лучший в мире софт (мне порой приходится запускать в VirtualBox и Windows, и Ubuntu для каких-то узкоспециализированных программ, которых нет под макос). Просто на данный момент, учитывая все возможности виртуализации и то, что на маке есть консоль =) я считаю ее самой адекватной хост-платформой для жизни.

Софт как религия.

Март 16, 2010

Программное обеспечение довольно часто становится объектом религиозных споров. Чаще всего адептов того или иного софта можно встретить в никсовой среде и в маковской. Среди наиболее часто встречающихся споров в никсах можно вспомнить «KDE против Gnome», «Vi против Emacs», «Midnight Commander против всех». Адепты каждой стороны выдвигают «неопровержимые» доказательства свой правоты и кидаются какашками в своих противников. Это все происходит из-за прекрасной штуки, которая называется «отождествление». Т.е. человек какбэ говорит тебе «я есмъ Emacs» и ты понимаешь, что возразить ему нечего. Брендов, которые вызывают у людей подобные эмоции не очень много, зато создать такой бренд мечта любого маркетолога.

В принцип, в этом нет ничего плохого, но не надо забывать, что программное обеспечение – это всего лишь инструмент, как и сам компьютер, как и языки программирования, которые тоже очень часто являются поводом для священных войн. Хороши те инструменты, которые ты освоил, которыми ты умеешь пользоваться. Если перед тобой открыто семь редакторов исходных кодов, про которые ты ничего не знаешь, то тебе понравится тот, которые будет ближе к тому, что ты использовал до этого. Каждый инструмент требует времени, у каждого своя кривая обучения. Именно поэтому люди мира Vi и Emacs с презрением смотрят на других, потому что они знают, что их редакторы имеют вертикальные кривые обучения. Я в свое время с исступлением неделю посвятил изучению vi. Просто потому что этот редактор есть почти везде и в какой-то момент мне надоело просто «бибикать и портить текст».

Так же происходит и с языками программирования. Если у тебя есть некоторые нейронные цепочки, которые называются «программерским складом ума», то тебе, в принципе, пофигу на чем писать. Проблема в том, что без глубокого освоения, ты будешь писать одинаково плохо на всех языках. Не изучая их особенностей, ты везде будешь исопльзовать те конструкции, к которым привык. Так что не важно какой язык исспользовать или в каком текстовом редакторе писать (в разумных пределах, конечно, я не призываю использовать BASIC и Notepad), главное постараться изучить то, что он умеет. Потому что его часто писал не один человек и идей в нем может быть заложено на несколько жизней.

Этой небольшой заметкой я предваряю свои описания всякого рода софта, который я использую в повседневной программерской жизни. Скажу сразу, речь пойдет про маковский софт. И начнем мы с текстового редактора TextMate.